From 935d527532f3a95c024607318e3212f19939b309 Mon Sep 17 00:00:00 2001 From: "Documenter.jl" Date: Mon, 7 Aug 2023 19:35:18 +0000 Subject: [PATCH] delete history --- dev/assets/documenter.js | 331 + dev/assets/search.js | 267 + dev/assets/themes/documenter-dark.css | 7 + dev/assets/themes/documenter-light.css | 9 + dev/assets/themeswap.js | 66 + dev/assets/warner.js | 49 + dev/barotropic/index.html | 12 + dev/conventions/index.html | 12 + dev/development/index.html | 3 + dev/extending/index.html | 2 + dev/functions/index.html | 634 ++ dev/grids/index.html | 7 + dev/how_to_run_speedy/index.html | 57 + dev/index.html | 2 + dev/installation/index.html | 3 + dev/lowertriangularmatrices/index.html | 60 + dev/output/index.html | 32 + dev/parameterizations/index.html | 2 + dev/primitiveequation/index.html | 14 + dev/ringgrids/index.html | 333 + dev/search/index.html | 2 + dev/search_index.js | 3 + dev/shallowwater/index.html | 36 + dev/siteinfo.js | 1 + dev/spectral_transform/index.html | 32 + dev/speedytransforms/index.html | 85 + dev/time_integration/index.html | 2 + index.html | 2 + previews/PR300/assets/documenter.js | 331 + previews/PR300/assets/search.js | 267 + .../PR300/assets/themes/documenter-dark.css | 7702 ++++++++++++++++ .../PR300/assets/themes/documenter-light.css | 7738 +++++++++++++++++ previews/PR300/assets/themeswap.js | 66 + previews/PR300/assets/warner.js | 49 + previews/PR300/boundary_conditions/index.html | 2 + previews/PR300/conventions/index.html | 12 + previews/PR300/development/index.html | 3 + previews/PR300/dynamical_core/index.html | 20 + previews/PR300/functions/index.html | 103 + previews/PR300/grids/index.html | 2 + previews/PR300/how_to_run_speedy/index.html | 7 + previews/PR300/index.html | 2 + .../PR300/literated/basic_example/index.html | 20 + previews/PR300/literated/run-0001/output.nc | Bin 0 -> 4644239 bytes .../PR300/literated/run-0001/parameters.txt | 1 + .../PR300/literated/run-0001/progress.txt | 27 + .../PR300/literated/run-0001/restart.jld2 | Bin 0 -> 44241 bytes previews/PR300/new_model_setups/index.html | 2 + previews/PR300/parametrizations/index.html | 2 + previews/PR300/search/index.html | 2 + previews/PR300/search_index.js | 3 + previews/PR300/siteinfo.js | 1 + previews/PR300/spectral_transform/index.html | 45 + previews/PR300/time_integration/index.html | 2 + previews/PR334/assets/documenter.js | 331 + previews/PR334/assets/search.js | 267 + .../PR334/assets/themes/documenter-dark.css | 7702 ++++++++++++++++ .../PR334/assets/themes/documenter-light.css | 7738 +++++++++++++++++ previews/PR334/assets/themeswap.js | 66 + previews/PR334/assets/warner.js | 49 + previews/PR334/boundary_conditions/index.html | 2 + previews/PR334/conventions/index.html | 12 + previews/PR334/development/index.html | 3 + previews/PR334/dynamical_core/index.html | 20 + previews/PR334/functions/index.html | 180 + previews/PR334/grids/index.html | 2 + previews/PR334/how_to_run_speedy/index.html | 5 + previews/PR334/index.html | 2 + previews/PR334/new_model_setups/index.html | 2 + previews/PR334/parametrizations/index.html | 2 + previews/PR334/search/index.html | 2 + previews/PR334/search_index.js | 3 + previews/PR334/siteinfo.js | 1 + previews/PR334/spectral_transform/index.html | 45 + previews/PR334/time_integration/index.html | 2 + previews/PR341/assets/documenter.js | 331 + previews/PR341/assets/search.js | 267 + .../PR341/assets/themes/documenter-dark.css | 7702 ++++++++++++++++ .../PR341/assets/themes/documenter-light.css | 7738 +++++++++++++++++ previews/PR341/assets/themeswap.js | 66 + previews/PR341/assets/warner.js | 49 + previews/PR341/boundary_conditions/index.html | 2 + previews/PR341/conventions/index.html | 12 + previews/PR341/development/index.html | 3 + previews/PR341/dynamical_core/index.html | 21 + previews/PR341/extending/index.html | 2 + previews/PR341/functions/index.html | 180 + previews/PR341/grids/index.html | 7 + previews/PR341/how_to_run_speedy/index.html | 5 + previews/PR341/index.html | 2 + previews/PR341/installation/index.html | 3 + .../PR341/lowertriangularmatrices/index.html | 60 + previews/PR341/output/index.html | 31 + previews/PR341/parametrizations/index.html | 2 + previews/PR341/ringgrids/index.html | 232 + previews/PR341/search/index.html | 2 + previews/PR341/search_index.js | 3 + previews/PR341/siteinfo.js | 1 + previews/PR341/spectral_transform/index.html | 45 + previews/PR341/speedytransforms/index.html | 2 + previews/PR341/time_integration/index.html | 2 + previews/PR345/assets/documenter.js | 331 + previews/PR345/assets/search.js | 267 + .../PR345/assets/themes/documenter-dark.css | 7702 ++++++++++++++++ .../PR345/assets/themes/documenter-light.css | 7738 +++++++++++++++++ previews/PR345/assets/themeswap.js | 66 + previews/PR345/assets/warner.js | 49 + previews/PR345/boundary_conditions/index.html | 2 + previews/PR345/conventions/index.html | 12 + previews/PR345/development/index.html | 3 + previews/PR345/dynamical_core/index.html | 21 + previews/PR345/extending/index.html | 2 + previews/PR345/functions/index.html | 180 + previews/PR345/grids/index.html | 7 + previews/PR345/how_to_run_speedy/index.html | 293 + previews/PR345/index.html | 2 + previews/PR345/installation/index.html | 3 + .../PR345/lowertriangularmatrices/index.html | 60 + previews/PR345/output/index.html | 31 + previews/PR345/parametrizations/index.html | 2 + previews/PR345/ringgrids/index.html | 298 + previews/PR345/run_0001/output.nc | Bin 0 -> 1663322 bytes previews/PR345/run_0001/parameters.txt | 96 + previews/PR345/run_0001/progress.txt | 33 + previews/PR345/run_0001/restart.jld2 | Bin 0 -> 122320 bytes previews/PR345/search/index.html | 2 + previews/PR345/search_index.js | 3 + previews/PR345/siteinfo.js | 1 + previews/PR345/spectral_transform/index.html | 45 + previews/PR345/speedytransforms/index.html | 2 + previews/PR345/time_integration/index.html | 2 + previews/PR349/assets/documenter.js | 331 + previews/PR349/assets/search.js | 267 + .../PR349/assets/themes/documenter-dark.css | 7702 ++++++++++++++++ .../PR349/assets/themes/documenter-light.css | 7738 +++++++++++++++++ previews/PR349/assets/themeswap.js | 66 + previews/PR349/assets/warner.js | 49 + previews/PR349/boundary_conditions/index.html | 2 + previews/PR349/conventions/index.html | 12 + previews/PR349/development/index.html | 3 + previews/PR349/dynamical_core/index.html | 21 + previews/PR349/extending/index.html | 2 + previews/PR349/functions/index.html | 180 + previews/PR349/grids/index.html | 7 + previews/PR349/how_to_run_speedy/index.html | 57 + previews/PR349/index.html | 2 + previews/PR349/installation/index.html | 3 + .../PR349/lowertriangularmatrices/index.html | 60 + previews/PR349/output/index.html | 31 + previews/PR349/parametrizations/index.html | 2 + previews/PR349/ringgrids/index.html | 298 + previews/PR349/search/index.html | 2 + previews/PR349/search_index.js | 3 + previews/PR349/siteinfo.js | 1 + previews/PR349/spectral_transform/index.html | 45 + previews/PR349/speedytransforms/index.html | 2 + previews/PR349/time_integration/index.html | 2 + previews/PR360/assets/documenter.js | 331 + previews/PR360/assets/search.js | 267 + .../PR360/assets/themes/documenter-dark.css | 7702 ++++++++++++++++ .../PR360/assets/themes/documenter-light.css | 7738 +++++++++++++++++ previews/PR360/assets/themeswap.js | 66 + previews/PR360/assets/warner.js | 49 + previews/PR360/barotropic/index.html | 12 + previews/PR360/conventions/index.html | 12 + previews/PR360/development/index.html | 3 + previews/PR360/extending/index.html | 2 + previews/PR360/functions/index.html | 634 ++ previews/PR360/grids/index.html | 7 + previews/PR360/how_to_run_speedy/index.html | 57 + previews/PR360/index.html | 2 + previews/PR360/installation/index.html | 3 + .../PR360/lowertriangularmatrices/index.html | 60 + previews/PR360/output/index.html | 32 + previews/PR360/parameterizations/index.html | 2 + previews/PR360/primitiveequation/index.html | 14 + previews/PR360/ringgrids/index.html | 333 + previews/PR360/search/index.html | 2 + previews/PR360/search_index.js | 3 + previews/PR360/shallowwater/index.html | 36 + previews/PR360/siteinfo.js | 1 + previews/PR360/spectral_transform/index.html | 32 + previews/PR360/speedytransforms/index.html | 76 + previews/PR360/time_integration/index.html | 2 + previews/PR362/assets/documenter.js | 331 + previews/PR362/assets/search.js | 267 + .../PR362/assets/themes/documenter-dark.css | 7 + .../PR362/assets/themes/documenter-light.css | 9 + previews/PR362/assets/themeswap.js | 66 + previews/PR362/assets/warner.js | 49 + previews/PR362/barotropic/index.html | 12 + previews/PR362/conventions/index.html | 12 + previews/PR362/development/index.html | 3 + previews/PR362/extending/index.html | 2 + previews/PR362/functions/index.html | 634 ++ previews/PR362/grids/index.html | 7 + previews/PR362/how_to_run_speedy/index.html | 57 + previews/PR362/index.html | 2 + previews/PR362/installation/index.html | 3 + .../PR362/lowertriangularmatrices/index.html | 60 + previews/PR362/output/index.html | 32 + previews/PR362/parameterizations/index.html | 2 + previews/PR362/primitiveequation/index.html | 14 + previews/PR362/ringgrids/index.html | 333 + previews/PR362/search/index.html | 2 + previews/PR362/search_index.js | 3 + previews/PR362/shallowwater/index.html | 36 + previews/PR362/siteinfo.js | 1 + previews/PR362/spectral_transform/index.html | 32 + previews/PR362/speedytransforms/index.html | 85 + previews/PR362/time_integration/index.html | 2 + stable | 1 + v0.5 | 1 + v0.5.0/assets/documenter.js | 331 + v0.5.0/assets/search.js | 267 + v0.5.0/assets/themes/documenter-dark.css | 7702 ++++++++++++++++ v0.5.0/assets/themes/documenter-light.css | 7738 +++++++++++++++++ v0.5.0/assets/themeswap.js | 66 + v0.5.0/assets/warner.js | 49 + v0.5.0/boundary_conditions/index.html | 2 + v0.5.0/conventions/index.html | 12 + v0.5.0/development/index.html | 3 + v0.5.0/dynamical_core/index.html | 20 + v0.5.0/functions/index.html | 103 + v0.5.0/grids/index.html | 2 + v0.5.0/how_to_run_speedy/index.html | 7 + v0.5.0/index.html | 2 + v0.5.0/new_model_setups/index.html | 2 + v0.5.0/parametrizations/index.html | 2 + v0.5.0/search/index.html | 2 + v0.5.0/search_index.js | 3 + v0.5.0/siteinfo.js | 1 + v0.5.0/spectral_transform/index.html | 45 + v0.5.0/time_integration/index.html | 2 + versions.js | 7 + 235 files changed, 121732 insertions(+) create mode 100644 dev/assets/documenter.js create mode 100644 dev/assets/search.js create mode 100644 dev/assets/themes/documenter-dark.css create mode 100644 dev/assets/themes/documenter-light.css create mode 100644 dev/assets/themeswap.js create mode 100644 dev/assets/warner.js create mode 100644 dev/barotropic/index.html create mode 100644 dev/conventions/index.html create mode 100644 dev/development/index.html create mode 100644 dev/extending/index.html create mode 100644 dev/functions/index.html create mode 100644 dev/grids/index.html create mode 100644 dev/how_to_run_speedy/index.html create mode 100644 dev/index.html create mode 100644 dev/installation/index.html create mode 100644 dev/lowertriangularmatrices/index.html create mode 100644 dev/output/index.html create mode 100644 dev/parameterizations/index.html create mode 100644 dev/primitiveequation/index.html create mode 100644 dev/ringgrids/index.html create mode 100644 dev/search/index.html create mode 100644 dev/search_index.js create mode 100644 dev/shallowwater/index.html create mode 100644 dev/siteinfo.js create mode 100644 dev/spectral_transform/index.html create mode 100644 dev/speedytransforms/index.html create mode 100644 dev/time_integration/index.html create mode 100644 index.html create mode 100644 previews/PR300/assets/documenter.js create mode 100644 previews/PR300/assets/search.js create mode 100644 previews/PR300/assets/themes/documenter-dark.css create mode 100644 previews/PR300/assets/themes/documenter-light.css create mode 100644 previews/PR300/assets/themeswap.js create mode 100644 previews/PR300/assets/warner.js create mode 100644 previews/PR300/boundary_conditions/index.html create mode 100644 previews/PR300/conventions/index.html create mode 100644 previews/PR300/development/index.html create mode 100644 previews/PR300/dynamical_core/index.html create mode 100644 previews/PR300/functions/index.html create mode 100644 previews/PR300/grids/index.html create mode 100644 previews/PR300/how_to_run_speedy/index.html create mode 100644 previews/PR300/index.html create mode 100644 previews/PR300/literated/basic_example/index.html create mode 100644 previews/PR300/literated/run-0001/output.nc create mode 100644 previews/PR300/literated/run-0001/parameters.txt create mode 100644 previews/PR300/literated/run-0001/progress.txt create mode 100644 previews/PR300/literated/run-0001/restart.jld2 create mode 100644 previews/PR300/new_model_setups/index.html create mode 100644 previews/PR300/parametrizations/index.html create mode 100644 previews/PR300/search/index.html create mode 100644 previews/PR300/search_index.js create mode 100644 previews/PR300/siteinfo.js create mode 100644 previews/PR300/spectral_transform/index.html create mode 100644 previews/PR300/time_integration/index.html create mode 100644 previews/PR334/assets/documenter.js create mode 100644 previews/PR334/assets/search.js create mode 100644 previews/PR334/assets/themes/documenter-dark.css create mode 100644 previews/PR334/assets/themes/documenter-light.css create mode 100644 previews/PR334/assets/themeswap.js create mode 100644 previews/PR334/assets/warner.js create mode 100644 previews/PR334/boundary_conditions/index.html create mode 100644 previews/PR334/conventions/index.html create mode 100644 previews/PR334/development/index.html create mode 100644 previews/PR334/dynamical_core/index.html create mode 100644 previews/PR334/functions/index.html create mode 100644 previews/PR334/grids/index.html create mode 100644 previews/PR334/how_to_run_speedy/index.html create mode 100644 previews/PR334/index.html create mode 100644 previews/PR334/new_model_setups/index.html create mode 100644 previews/PR334/parametrizations/index.html create mode 100644 previews/PR334/search/index.html create mode 100644 previews/PR334/search_index.js create mode 100644 previews/PR334/siteinfo.js create mode 100644 previews/PR334/spectral_transform/index.html create mode 100644 previews/PR334/time_integration/index.html create mode 100644 previews/PR341/assets/documenter.js create mode 100644 previews/PR341/assets/search.js create mode 100644 previews/PR341/assets/themes/documenter-dark.css create mode 100644 previews/PR341/assets/themes/documenter-light.css create mode 100644 previews/PR341/assets/themeswap.js create mode 100644 previews/PR341/assets/warner.js create mode 100644 previews/PR341/boundary_conditions/index.html create mode 100644 previews/PR341/conventions/index.html create mode 100644 previews/PR341/development/index.html create mode 100644 previews/PR341/dynamical_core/index.html create mode 100644 previews/PR341/extending/index.html create mode 100644 previews/PR341/functions/index.html create mode 100644 previews/PR341/grids/index.html create mode 100644 previews/PR341/how_to_run_speedy/index.html create mode 100644 previews/PR341/index.html create mode 100644 previews/PR341/installation/index.html create mode 100644 previews/PR341/lowertriangularmatrices/index.html create mode 100644 previews/PR341/output/index.html create mode 100644 previews/PR341/parametrizations/index.html create mode 100644 previews/PR341/ringgrids/index.html create mode 100644 previews/PR341/search/index.html create mode 100644 previews/PR341/search_index.js create mode 100644 previews/PR341/siteinfo.js create mode 100644 previews/PR341/spectral_transform/index.html create mode 100644 previews/PR341/speedytransforms/index.html create mode 100644 previews/PR341/time_integration/index.html create mode 100644 previews/PR345/assets/documenter.js create mode 100644 previews/PR345/assets/search.js create mode 100644 previews/PR345/assets/themes/documenter-dark.css create mode 100644 previews/PR345/assets/themes/documenter-light.css create mode 100644 previews/PR345/assets/themeswap.js create mode 100644 previews/PR345/assets/warner.js create mode 100644 previews/PR345/boundary_conditions/index.html create mode 100644 previews/PR345/conventions/index.html create mode 100644 previews/PR345/development/index.html create mode 100644 previews/PR345/dynamical_core/index.html create mode 100644 previews/PR345/extending/index.html create mode 100644 previews/PR345/functions/index.html create mode 100644 previews/PR345/grids/index.html create mode 100644 previews/PR345/how_to_run_speedy/index.html create mode 100644 previews/PR345/index.html create mode 100644 previews/PR345/installation/index.html create mode 100644 previews/PR345/lowertriangularmatrices/index.html create mode 100644 previews/PR345/output/index.html create mode 100644 previews/PR345/parametrizations/index.html create mode 100644 previews/PR345/ringgrids/index.html create mode 100644 previews/PR345/run_0001/output.nc create mode 100644 previews/PR345/run_0001/parameters.txt create mode 100644 previews/PR345/run_0001/progress.txt create mode 100644 previews/PR345/run_0001/restart.jld2 create mode 100644 previews/PR345/search/index.html create mode 100644 previews/PR345/search_index.js create mode 100644 previews/PR345/siteinfo.js create mode 100644 previews/PR345/spectral_transform/index.html create mode 100644 previews/PR345/speedytransforms/index.html create mode 100644 previews/PR345/time_integration/index.html create mode 100644 previews/PR349/assets/documenter.js create mode 100644 previews/PR349/assets/search.js create mode 100644 previews/PR349/assets/themes/documenter-dark.css create mode 100644 previews/PR349/assets/themes/documenter-light.css create mode 100644 previews/PR349/assets/themeswap.js create mode 100644 previews/PR349/assets/warner.js create mode 100644 previews/PR349/boundary_conditions/index.html create mode 100644 previews/PR349/conventions/index.html create mode 100644 previews/PR349/development/index.html create mode 100644 previews/PR349/dynamical_core/index.html create mode 100644 previews/PR349/extending/index.html create mode 100644 previews/PR349/functions/index.html create mode 100644 previews/PR349/grids/index.html create mode 100644 previews/PR349/how_to_run_speedy/index.html create mode 100644 previews/PR349/index.html create mode 100644 previews/PR349/installation/index.html create mode 100644 previews/PR349/lowertriangularmatrices/index.html create mode 100644 previews/PR349/output/index.html create mode 100644 previews/PR349/parametrizations/index.html create mode 100644 previews/PR349/ringgrids/index.html create mode 100644 previews/PR349/search/index.html create mode 100644 previews/PR349/search_index.js create mode 100644 previews/PR349/siteinfo.js create mode 100644 previews/PR349/spectral_transform/index.html create mode 100644 previews/PR349/speedytransforms/index.html create mode 100644 previews/PR349/time_integration/index.html create mode 100644 previews/PR360/assets/documenter.js create mode 100644 previews/PR360/assets/search.js create mode 100644 previews/PR360/assets/themes/documenter-dark.css create mode 100644 previews/PR360/assets/themes/documenter-light.css create mode 100644 previews/PR360/assets/themeswap.js create mode 100644 previews/PR360/assets/warner.js create mode 100644 previews/PR360/barotropic/index.html create mode 100644 previews/PR360/conventions/index.html create mode 100644 previews/PR360/development/index.html create mode 100644 previews/PR360/extending/index.html create mode 100644 previews/PR360/functions/index.html create mode 100644 previews/PR360/grids/index.html create mode 100644 previews/PR360/how_to_run_speedy/index.html create mode 100644 previews/PR360/index.html create mode 100644 previews/PR360/installation/index.html create mode 100644 previews/PR360/lowertriangularmatrices/index.html create mode 100644 previews/PR360/output/index.html create mode 100644 previews/PR360/parameterizations/index.html create mode 100644 previews/PR360/primitiveequation/index.html create mode 100644 previews/PR360/ringgrids/index.html create mode 100644 previews/PR360/search/index.html create mode 100644 previews/PR360/search_index.js create mode 100644 previews/PR360/shallowwater/index.html create mode 100644 previews/PR360/siteinfo.js create mode 100644 previews/PR360/spectral_transform/index.html create mode 100644 previews/PR360/speedytransforms/index.html create mode 100644 previews/PR360/time_integration/index.html create mode 100644 previews/PR362/assets/documenter.js create mode 100644 previews/PR362/assets/search.js create mode 100644 previews/PR362/assets/themes/documenter-dark.css create mode 100644 previews/PR362/assets/themes/documenter-light.css create mode 100644 previews/PR362/assets/themeswap.js create mode 100644 previews/PR362/assets/warner.js create mode 100644 previews/PR362/barotropic/index.html create mode 100644 previews/PR362/conventions/index.html create mode 100644 previews/PR362/development/index.html create mode 100644 previews/PR362/extending/index.html create mode 100644 previews/PR362/functions/index.html create mode 100644 previews/PR362/grids/index.html create mode 100644 previews/PR362/how_to_run_speedy/index.html create mode 100644 previews/PR362/index.html create mode 100644 previews/PR362/installation/index.html create mode 100644 previews/PR362/lowertriangularmatrices/index.html create mode 100644 previews/PR362/output/index.html create mode 100644 previews/PR362/parameterizations/index.html create mode 100644 previews/PR362/primitiveequation/index.html create mode 100644 previews/PR362/ringgrids/index.html create mode 100644 previews/PR362/search/index.html create mode 100644 previews/PR362/search_index.js create mode 100644 previews/PR362/shallowwater/index.html create mode 100644 previews/PR362/siteinfo.js create mode 100644 previews/PR362/spectral_transform/index.html create mode 100644 previews/PR362/speedytransforms/index.html create mode 100644 previews/PR362/time_integration/index.html create mode 120000 stable create mode 120000 v0.5 create mode 100644 v0.5.0/assets/documenter.js create mode 100644 v0.5.0/assets/search.js create mode 100644 v0.5.0/assets/themes/documenter-dark.css create mode 100644 v0.5.0/assets/themes/documenter-light.css create mode 100644 v0.5.0/assets/themeswap.js create mode 100644 v0.5.0/assets/warner.js create mode 100644 v0.5.0/boundary_conditions/index.html create mode 100644 v0.5.0/conventions/index.html create mode 100644 v0.5.0/development/index.html create mode 100644 v0.5.0/dynamical_core/index.html create mode 100644 v0.5.0/functions/index.html create mode 100644 v0.5.0/grids/index.html create mode 100644 v0.5.0/how_to_run_speedy/index.html create mode 100644 v0.5.0/index.html create mode 100644 v0.5.0/new_model_setups/index.html create mode 100644 v0.5.0/parametrizations/index.html create mode 100644 v0.5.0/search/index.html create mode 100644 v0.5.0/search_index.js create mode 100644 v0.5.0/siteinfo.js create mode 100644 v0.5.0/spectral_transform/index.html create mode 100644 v0.5.0/time_integration/index.html create mode 100644 versions.js diff --git a/dev/assets/documenter.js b/dev/assets/documenter.js new file mode 100644 index 000000000..6adfbbbf4 --- /dev/null +++ b/dev/assets/documenter.js @@ -0,0 +1,331 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'highlight-julia': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia.min', + 'headroom': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/headroom.min', + 'jqueryui': 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min', + 'katex-auto-render': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/contrib/auto-render.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + 'headroom-jquery': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/jQuery.headroom.min', + 'katex': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/katex.min', + 'highlight': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/highlight.min', + 'highlight-julia-repl': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia-repl.min', + }, + shim: { + "highlight-julia": { + "deps": [ + "highlight" + ] + }, + "katex-auto-render": { + "deps": [ + "katex" + ] + }, + "headroom-jquery": { + "deps": [ + "jquery", + "headroom" + ] + }, + "highlight-julia-repl": { + "deps": [ + "highlight" + ] + } +} +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'katex', 'katex-auto-render'], function($, katex, renderMathInElement) { +$(document).ready(function() { + renderMathInElement( + document.body, + { + "delimiters": [ + { + "left": "$", + "right": "$", + "display": false + }, + { + "left": "$$", + "right": "$$", + "display": true + }, + { + "left": "\\[", + "right": "\\]", + "display": true + } + ] +} + + ); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'highlight', 'highlight-julia', 'highlight-julia-repl'], function($) { +$(document).ready(function() { + hljs.highlightAll(); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require([], function() { +function addCopyButtonCallbacks() { + for (const el of document.getElementsByTagName("pre")) { + const button = document.createElement("button"); + button.classList.add("copy-button", "fas", "fa-copy"); + el.appendChild(button); + + const success = function () { + button.classList.add("success", "fa-check"); + button.classList.remove("fa-copy"); + }; + + const failure = function () { + button.classList.add("error", "fa-times"); + button.classList.remove("fa-copy"); + }; + + button.addEventListener("click", function () { + copyToClipboard(el.innerText).then(success, failure); + + setTimeout(function () { + button.classList.add("fa-copy"); + button.classList.remove("success", "fa-check", "fa-times"); + }, 5000); + }); + } +} + +function copyToClipboard(text) { + // clipboard API is only available in secure contexts + if (window.navigator && window.navigator.clipboard) { + return window.navigator.clipboard.writeText(text); + } else { + return new Promise(function (resolve, reject) { + try { + const el = document.createElement("textarea"); + el.textContent = text; + el.style.position = "fixed"; + el.style.opacity = 0; + document.body.appendChild(el); + el.select(); + document.execCommand("copy"); + + resolve(); + } catch (err) { + reject(err); + } finally { + document.body.removeChild(el); + } + }); + } +} + +if (document.readyState === "loading") { + document.addEventListener("DOMContentLoaded", addCopyButtonCallbacks); +} else { + addCopyButtonCallbacks(); +} + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'headroom', 'headroom-jquery'], function($, Headroom) { + +// Manages the top navigation bar (hides it when the user starts scrolling down on the +// mobile). +window.Headroom = Headroom; // work around buggy module loading? +$(document).ready(function() { + $('#documenter .docs-navbar').headroom({ + "tolerance": {"up": 10, "down": 10}, + }); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Modal settings dialog +$(document).ready(function() { + var settings = $('#documenter-settings'); + $('#documenter-settings-button').click(function(){ + settings.toggleClass('is-active'); + }); + // Close the dialog if X is clicked + $('#documenter-settings button.delete').click(function(){ + settings.removeClass('is-active'); + }); + // Close dialog if ESC is pressed + $(document).keyup(function(e) { + if (e.keyCode == 27) settings.removeClass('is-active'); + }); +}); + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Manages the showing and hiding of the sidebar. +$(document).ready(function() { + var sidebar = $("#documenter > .docs-sidebar"); + var sidebar_button = $("#documenter-sidebar-button") + sidebar_button.click(function(ev) { + ev.preventDefault(); + sidebar.toggleClass('visible'); + if (sidebar.hasClass('visible')) { + // Makes sure that the current menu item is visible in the sidebar. + $("#documenter .docs-menu a.is-active").focus(); + } + }); + $("#documenter > .docs-main").bind('click', function(ev) { + if ($(ev.target).is(sidebar_button)) { + return; + } + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + }); +}) + +// Resizes the package name / sitename in the sidebar if it is too wide. +// Inspired by: https://github.com/davatron5000/FitText.js +$(document).ready(function() { + e = $("#documenter .docs-autofit"); + function resize() { + var L = parseInt(e.css('max-width'), 10); + var L0 = e.width(); + if(L0 > L) { + var h0 = parseInt(e.css('font-size'), 10); + e.css('font-size', L * h0 / L0); + // TODO: make sure it survives resizes? + } + } + // call once and then register events + resize(); + $(window).resize(resize); + $(window).on('orientationchange', resize); +}); + +// Scroll the navigation bar to the currently selected menu item +$(document).ready(function() { + var sidebar = $("#documenter .docs-menu").get(0); + var active = $("#documenter .docs-menu .is-active").get(0); + if(typeof active !== 'undefined') { + sidebar.scrollTop = active.offsetTop - sidebar.offsetTop - 15; + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +function set_theme(theme) { + var active = null; + var disabled = []; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + var themename = ss.ownerNode.getAttribute("data-theme-name"); + if(themename === null) continue; // ignore non-theme stylesheets + // Find the active theme + if(themename === theme) active = ss; + else disabled.push(ss); + } + if(active !== null) { + active.disabled = false; + if(active.ownerNode.getAttribute("data-theme-primary") === null) { + document.getElementsByTagName('html')[0].className = "theme--" + theme; + } else { + document.getElementsByTagName('html')[0].className = ""; + } + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + + // Store the theme in localStorage + if(typeof(window.localStorage) !== "undefined") { + window.localStorage.setItem("documenter-theme", theme); + } else { + console.error("Browser does not support window.localStorage"); + } +} + +// Theme picker setup +$(document).ready(function() { + // onchange callback + $('#documenter-themepicker').change(function themepick_callback(ev){ + var themename = $('#documenter-themepicker option:selected').attr('value'); + set_theme(themename); + }); + + // Make sure that the themepicker displays the correct theme when the theme is retrieved + // from localStorage + if(typeof(window.localStorage) !== "undefined") { + var theme = window.localStorage.getItem("documenter-theme"); + if(theme !== null) { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = (e.value === theme); + }) + } else { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = $("html").hasClass(`theme--${e.value}`); + }) + } + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// update the version selector with info from the siteinfo.js and ../versions.js files +$(document).ready(function() { + // If the version selector is disabled with DOCUMENTER_VERSION_SELECTOR_DISABLED in the + // siteinfo.js file, we just return immediately and not display the version selector. + if (typeof DOCUMENTER_VERSION_SELECTOR_DISABLED === 'boolean' && DOCUMENTER_VERSION_SELECTOR_DISABLED) { + return; + } + + var version_selector = $("#documenter .docs-version-selector"); + var version_selector_select = $("#documenter .docs-version-selector select"); + + version_selector_select.change(function(x) { + target_href = version_selector_select.children("option:selected").get(0).value; + window.location.href = target_href; + }); + + // add the current version to the selector based on siteinfo.js, but only if the selector is empty + if (typeof DOCUMENTER_CURRENT_VERSION !== 'undefined' && $('#version-selector > option').length == 0) { + var option = $(""); + version_selector_select.append(option); + } + + if (typeof DOC_VERSIONS !== 'undefined') { + var existing_versions = version_selector_select.children("option"); + var existing_versions_texts = existing_versions.map(function(i,x){return x.text}); + DOC_VERSIONS.forEach(function(each) { + var version_url = documenterBaseURL + "/../" + each; + var existing_id = $.inArray(each, existing_versions_texts); + // if not already in the version selector, add it as a new option, + // otherwise update the old option with the URL and enable it + if (existing_id == -1) { + var option = $(""); + version_selector_select.append(option); + } else { + var option = existing_versions[existing_id]; + option.value = version_url; + option.disabled = false; + } + }); + } + + // only show the version selector if the selector has been populated + if (version_selector_select.children("option").length > 0) { + version_selector.toggleClass("visible"); + } +}) + +}) diff --git a/dev/assets/search.js b/dev/assets/search.js new file mode 100644 index 000000000..c133f7410 --- /dev/null +++ b/dev/assets/search.js @@ -0,0 +1,267 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'lunr': 'https://cdnjs.cloudflare.com/ajax/libs/lunr.js/2.3.9/lunr.min', + 'lodash': 'https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + } +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'lunr', 'lodash'], function($, lunr, _) { + +$(document).ready(function() { + // parseUri 1.2.2 + // (c) Steven Levithan + // MIT License + function parseUri (str) { + var o = parseUri.options, + m = o.parser[o.strictMode ? "strict" : "loose"].exec(str), + uri = {}, + i = 14; + + while (i--) uri[o.key[i]] = m[i] || ""; + + uri[o.q.name] = {}; + uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) { + if ($1) uri[o.q.name][$1] = $2; + }); + + return uri; + }; + parseUri.options = { + strictMode: false, + key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"], + q: { + name: "queryKey", + parser: /(?:^|&)([^&=]*)=?([^&]*)/g + }, + parser: { + strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, + loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ + } + }; + + $("#search-form").submit(function(e) { + e.preventDefault() + }) + + // list below is the lunr 2.1.3 list minus the intersect with names(Base) + // (all, any, get, in, is, only, which) and (do, else, for, let, where, while, with) + // ideally we'd just filter the original list but it's not available as a variable + lunr.stopWordFilter = lunr.generateStopWordFilter([ + 'a', + 'able', + 'about', + 'across', + 'after', + 'almost', + 'also', + 'am', + 'among', + 'an', + 'and', + 'are', + 'as', + 'at', + 'be', + 'because', + 'been', + 'but', + 'by', + 'can', + 'cannot', + 'could', + 'dear', + 'did', + 'does', + 'either', + 'ever', + 'every', + 'from', + 'got', + 'had', + 'has', + 'have', + 'he', + 'her', + 'hers', + 'him', + 'his', + 'how', + 'however', + 'i', + 'if', + 'into', + 'it', + 'its', + 'just', + 'least', + 'like', + 'likely', + 'may', + 'me', + 'might', + 'most', + 'must', + 'my', + 'neither', + 'no', + 'nor', + 'not', + 'of', + 'off', + 'often', + 'on', + 'or', + 'other', + 'our', + 'own', + 'rather', + 'said', + 'say', + 'says', + 'she', + 'should', + 'since', + 'so', + 'some', + 'than', + 'that', + 'the', + 'their', + 'them', + 'then', + 'there', + 'these', + 'they', + 'this', + 'tis', + 'to', + 'too', + 'twas', + 'us', + 'wants', + 'was', + 'we', + 'were', + 'what', + 'when', + 'who', + 'whom', + 'why', + 'will', + 'would', + 'yet', + 'you', + 'your' + ]) + + // add . as a separator, because otherwise "title": "Documenter.Anchors.add!" + // would not find anything if searching for "add!", only for the entire qualification + lunr.tokenizer.separator = /[\s\-\.]+/ + + // custom trimmer that doesn't strip @ and !, which are used in julia macro and function names + lunr.trimmer = function (token) { + return token.update(function (s) { + return s.replace(/^[^a-zA-Z0-9@!]+/, '').replace(/[^a-zA-Z0-9@!]+$/, '') + }) + } + + lunr.Pipeline.registerFunction(lunr.stopWordFilter, 'juliaStopWordFilter') + lunr.Pipeline.registerFunction(lunr.trimmer, 'juliaTrimmer') + + var index = lunr(function () { + this.ref('location') + this.field('title',{boost: 100}) + this.field('text') + documenterSearchIndex['docs'].forEach(function(e) { + this.add(e) + }, this) + }) + var store = {} + + documenterSearchIndex['docs'].forEach(function(e) { + store[e.location] = {title: e.title, category: e.category, page: e.page} + }) + + $(function(){ + searchresults = $('#documenter-search-results'); + searchinfo = $('#documenter-search-info'); + searchbox = $('#documenter-search-query'); + searchform = $('.docs-search'); + sidebar = $('.docs-sidebar'); + function update_search(querystring) { + tokens = lunr.tokenizer(querystring) + results = index.query(function (q) { + tokens.forEach(function (t) { + q.term(t.toString(), { + fields: ["title"], + boost: 100, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["title"], + boost: 10, + usePipeline: true, + editDistance: 2, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["text"], + boost: 1, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + }) + }) + searchinfo.text("Number of results: " + results.length) + searchresults.empty() + results.forEach(function(result) { + data = store[result.ref] + link = $(''+data.title+'') + link.attr('href', documenterBaseURL+'/'+result.ref) + if (data.category != "page"){ + cat = $('('+data.category+', '+data.page+')') + } else { + cat = $('('+data.category+')') + } + li = $('
  • ').append(link).append(" ").append(cat) + searchresults.append(li) + }) + } + + function update_search_box() { + querystring = searchbox.val() + update_search(querystring) + } + + searchbox.keyup(_.debounce(update_search_box, 250)) + searchbox.change(update_search_box) + + // Disable enter-key form submission for the searchbox on the search page + // and just re-run search rather than refresh the whole page. + searchform.keypress( + function(event){ + if (event.which == '13') { + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + update_search_box(); + event.preventDefault(); + } + } + ); + + search_query_uri = parseUri(window.location).queryKey["q"] + if(search_query_uri !== undefined) { + search_query = decodeURIComponent(search_query_uri.replace(/\+/g, '%20')) + searchbox.val(search_query) + } + update_search_box(); + }) +}) + +}) diff --git a/dev/assets/themes/documenter-dark.css b/dev/assets/themes/documenter-dark.css new file mode 100644 index 000000000..c94a294dc --- /dev/null +++ b/dev/assets/themes/documenter-dark.css @@ -0,0 +1,7 @@ +@keyframes spinAround{from{transform:rotate(0deg)}to{transform:rotate(359deg)}}html.theme--documenter-dark .tabs,html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .breadcrumb,html.theme--documenter-dark .file,html.theme--documenter-dark .button,.is-unselectable,html.theme--documenter-dark .modal-close,html.theme--documenter-dark .delete{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after,html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after{border:3px solid rgba(0,0,0,0);border-radius:2px;border-right:0;border-top:0;content:" ";display:block;height:0.625em;margin-top:-0.4375em;pointer-events:none;position:absolute;top:50%;transform:rotate(-45deg);transform-origin:center;width:0.625em}html.theme--documenter-dark .admonition:not(:last-child),html.theme--documenter-dark .tabs:not(:last-child),html.theme--documenter-dark .message:not(:last-child),html.theme--documenter-dark .list:not(:last-child),html.theme--documenter-dark .level:not(:last-child),html.theme--documenter-dark .breadcrumb:not(:last-child),html.theme--documenter-dark .highlight:not(:last-child),html.theme--documenter-dark .block:not(:last-child),html.theme--documenter-dark .title:not(:last-child),html.theme--documenter-dark .subtitle:not(:last-child),html.theme--documenter-dark .table-container:not(:last-child),html.theme--documenter-dark .table:not(:last-child),html.theme--documenter-dark .progress:not(:last-child),html.theme--documenter-dark .notification:not(:last-child),html.theme--documenter-dark .content:not(:last-child),html.theme--documenter-dark .box:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .modal-close,html.theme--documenter-dark .delete{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,0.2);border:none;border-radius:290486px;cursor:pointer;pointer-events:auto;display:inline-block;flex-grow:0;flex-shrink:0;font-size:0;height:20px;max-height:20px;max-width:20px;min-height:20px;min-width:20px;outline:none;position:relative;vertical-align:top;width:20px}html.theme--documenter-dark .modal-close::before,html.theme--documenter-dark .delete::before,html.theme--documenter-dark .modal-close::after,html.theme--documenter-dark .delete::after{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}html.theme--documenter-dark .modal-close::before,html.theme--documenter-dark .delete::before{height:2px;width:50%}html.theme--documenter-dark .modal-close::after,html.theme--documenter-dark .delete::after{height:50%;width:2px}html.theme--documenter-dark .modal-close:hover,html.theme--documenter-dark .delete:hover,html.theme--documenter-dark .modal-close:focus,html.theme--documenter-dark .delete:focus{background-color:rgba(10,10,10,0.3)}html.theme--documenter-dark .modal-close:active,html.theme--documenter-dark .delete:active{background-color:rgba(10,10,10,0.4)}html.theme--documenter-dark .is-small.modal-close,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.modal-close,html.theme--documenter-dark .is-small.delete,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.delete{height:16px;max-height:16px;max-width:16px;min-height:16px;min-width:16px;width:16px}html.theme--documenter-dark .is-medium.modal-close,html.theme--documenter-dark .is-medium.delete{height:24px;max-height:24px;max-width:24px;min-height:24px;min-width:24px;width:24px}html.theme--documenter-dark .is-large.modal-close,html.theme--documenter-dark .is-large.delete{height:32px;max-height:32px;max-width:32px;min-height:32px;min-width:32px;width:32px}html.theme--documenter-dark .control.is-loading::after,html.theme--documenter-dark .select.is-loading::after,html.theme--documenter-dark .loader,html.theme--documenter-dark .button.is-loading::after{animation:spinAround 500ms infinite linear;border:2px solid #dbdee0;border-radius:290486px;border-right-color:transparent;border-top-color:transparent;content:"";display:block;height:1em;position:relative;width:1em}html.theme--documenter-dark .hero-video,html.theme--documenter-dark .modal-background,html.theme--documenter-dark .modal,html.theme--documenter-dark .image.is-square img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square img,html.theme--documenter-dark .image.is-square .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,html.theme--documenter-dark .image.is-1by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 img,html.theme--documenter-dark .image.is-1by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,html.theme--documenter-dark .image.is-5by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 img,html.theme--documenter-dark .image.is-5by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,html.theme--documenter-dark .image.is-4by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 img,html.theme--documenter-dark .image.is-4by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,html.theme--documenter-dark .image.is-3by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 img,html.theme--documenter-dark .image.is-3by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,html.theme--documenter-dark .image.is-5by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 img,html.theme--documenter-dark .image.is-5by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,html.theme--documenter-dark .image.is-16by9 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 img,html.theme--documenter-dark .image.is-16by9 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,html.theme--documenter-dark .image.is-2by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 img,html.theme--documenter-dark .image.is-2by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,html.theme--documenter-dark .image.is-3by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 img,html.theme--documenter-dark .image.is-3by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,html.theme--documenter-dark .image.is-4by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 img,html.theme--documenter-dark .image.is-4by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,html.theme--documenter-dark .image.is-3by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 img,html.theme--documenter-dark .image.is-3by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,html.theme--documenter-dark .image.is-2by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 img,html.theme--documenter-dark .image.is-2by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,html.theme--documenter-dark .image.is-3by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 img,html.theme--documenter-dark .image.is-3by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,html.theme--documenter-dark .image.is-9by16 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 img,html.theme--documenter-dark .image.is-9by16 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,html.theme--documenter-dark .image.is-1by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 img,html.theme--documenter-dark .image.is-1by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,html.theme--documenter-dark .image.is-1by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 img,html.theme--documenter-dark .image.is-1by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio,.is-overlay{bottom:0;left:0;position:absolute;right:0;top:0}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .file-cta,html.theme--documenter-dark .file-name,html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .button{-moz-appearance:none;-webkit-appearance:none;align-items:center;border:1px solid transparent;border-radius:.4em;box-shadow:none;display:inline-flex;font-size:15px;height:2.25em;justify-content:flex-start;line-height:1.5;padding-bottom:calc(0.375em - 1px);padding-left:calc(0.625em - 1px);padding-right:calc(0.625em - 1px);padding-top:calc(0.375em - 1px);position:relative;vertical-align:top}html.theme--documenter-dark .pagination-previous:focus,html.theme--documenter-dark .pagination-next:focus,html.theme--documenter-dark .pagination-link:focus,html.theme--documenter-dark .pagination-ellipsis:focus,html.theme--documenter-dark .file-cta:focus,html.theme--documenter-dark .file-name:focus,html.theme--documenter-dark .select select:focus,html.theme--documenter-dark .textarea:focus,html.theme--documenter-dark .input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:focus,html.theme--documenter-dark .button:focus,html.theme--documenter-dark .is-focused.pagination-previous,html.theme--documenter-dark .is-focused.pagination-next,html.theme--documenter-dark .is-focused.pagination-link,html.theme--documenter-dark .is-focused.pagination-ellipsis,html.theme--documenter-dark .is-focused.file-cta,html.theme--documenter-dark .is-focused.file-name,html.theme--documenter-dark .select select.is-focused,html.theme--documenter-dark .is-focused.textarea,html.theme--documenter-dark .is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-focused.button,html.theme--documenter-dark .pagination-previous:active,html.theme--documenter-dark .pagination-next:active,html.theme--documenter-dark .pagination-link:active,html.theme--documenter-dark .pagination-ellipsis:active,html.theme--documenter-dark .file-cta:active,html.theme--documenter-dark .file-name:active,html.theme--documenter-dark .select select:active,html.theme--documenter-dark .textarea:active,html.theme--documenter-dark .input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:active,html.theme--documenter-dark .button:active,html.theme--documenter-dark .is-active.pagination-previous,html.theme--documenter-dark .is-active.pagination-next,html.theme--documenter-dark .is-active.pagination-link,html.theme--documenter-dark .is-active.pagination-ellipsis,html.theme--documenter-dark .is-active.file-cta,html.theme--documenter-dark .is-active.file-name,html.theme--documenter-dark .select select.is-active,html.theme--documenter-dark .is-active.textarea,html.theme--documenter-dark .is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .is-active.button{outline:none}html.theme--documenter-dark .pagination-previous[disabled],html.theme--documenter-dark .pagination-next[disabled],html.theme--documenter-dark .pagination-link[disabled],html.theme--documenter-dark .pagination-ellipsis[disabled],html.theme--documenter-dark .file-cta[disabled],html.theme--documenter-dark .file-name[disabled],html.theme--documenter-dark .select select[disabled],html.theme--documenter-dark .textarea[disabled],html.theme--documenter-dark .input[disabled],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled],html.theme--documenter-dark .button[disabled],fieldset[disabled] html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark fieldset[disabled] .pagination-previous,fieldset[disabled] html.theme--documenter-dark .pagination-next,html.theme--documenter-dark fieldset[disabled] .pagination-next,fieldset[disabled] html.theme--documenter-dark .pagination-link,html.theme--documenter-dark fieldset[disabled] .pagination-link,fieldset[disabled] html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark fieldset[disabled] .pagination-ellipsis,fieldset[disabled] html.theme--documenter-dark .file-cta,html.theme--documenter-dark fieldset[disabled] .file-cta,fieldset[disabled] html.theme--documenter-dark .file-name,html.theme--documenter-dark fieldset[disabled] .file-name,fieldset[disabled] html.theme--documenter-dark .select select,fieldset[disabled] html.theme--documenter-dark .textarea,fieldset[disabled] html.theme--documenter-dark .input,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark fieldset[disabled] .select select,html.theme--documenter-dark .select fieldset[disabled] select,html.theme--documenter-dark fieldset[disabled] .textarea,html.theme--documenter-dark fieldset[disabled] .input,html.theme--documenter-dark fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar fieldset[disabled] form.docs-search>input,fieldset[disabled] html.theme--documenter-dark .button,html.theme--documenter-dark fieldset[disabled] .button{cursor:not-allowed}/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */html,body,p,ol,ul,li,dl,dt,dd,blockquote,figure,fieldset,legend,textarea,pre,iframe,hr,h1,h2,h3,h4,h5,h6{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}ul{list-style:none}button,input,select,textarea{margin:0}html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}img,embed,iframe,object,video{height:auto;max-width:100%}audio{max-width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}td:not([align]),th:not([align]){text-align:left}.is-clearfix::after{clear:both;content:" ";display:table}.is-pulled-left{float:left !important}.is-pulled-right{float:right !important}.is-clipped{overflow:hidden !important}.is-size-1{font-size:3rem !important}.is-size-2{font-size:2.5rem !important}.is-size-3{font-size:2rem !important}.is-size-4{font-size:1.5rem !important}.is-size-5{font-size:1.25rem !important}.is-size-6{font-size:15px !important}.is-size-7,html.theme--documenter-dark .docstring>section>a.docs-sourcelink{font-size:.85em !important}@media screen and (max-width: 768px){.is-size-1-mobile{font-size:3rem !important}.is-size-2-mobile{font-size:2.5rem !important}.is-size-3-mobile{font-size:2rem !important}.is-size-4-mobile{font-size:1.5rem !important}.is-size-5-mobile{font-size:1.25rem !important}.is-size-6-mobile{font-size:15px !important}.is-size-7-mobile{font-size:.85em !important}}@media screen and (min-width: 769px),print{.is-size-1-tablet{font-size:3rem !important}.is-size-2-tablet{font-size:2.5rem !important}.is-size-3-tablet{font-size:2rem !important}.is-size-4-tablet{font-size:1.5rem !important}.is-size-5-tablet{font-size:1.25rem !important}.is-size-6-tablet{font-size:15px !important}.is-size-7-tablet{font-size:.85em !important}}@media screen and (max-width: 1055px){.is-size-1-touch{font-size:3rem !important}.is-size-2-touch{font-size:2.5rem !important}.is-size-3-touch{font-size:2rem !important}.is-size-4-touch{font-size:1.5rem !important}.is-size-5-touch{font-size:1.25rem !important}.is-size-6-touch{font-size:15px !important}.is-size-7-touch{font-size:.85em !important}}@media screen and (min-width: 1056px){.is-size-1-desktop{font-size:3rem !important}.is-size-2-desktop{font-size:2.5rem !important}.is-size-3-desktop{font-size:2rem !important}.is-size-4-desktop{font-size:1.5rem !important}.is-size-5-desktop{font-size:1.25rem !important}.is-size-6-desktop{font-size:15px !important}.is-size-7-desktop{font-size:.85em !important}}@media screen and (min-width: 1216px){.is-size-1-widescreen{font-size:3rem !important}.is-size-2-widescreen{font-size:2.5rem !important}.is-size-3-widescreen{font-size:2rem !important}.is-size-4-widescreen{font-size:1.5rem !important}.is-size-5-widescreen{font-size:1.25rem !important}.is-size-6-widescreen{font-size:15px !important}.is-size-7-widescreen{font-size:.85em !important}}@media screen and (min-width: 1408px){.is-size-1-fullhd{font-size:3rem !important}.is-size-2-fullhd{font-size:2.5rem !important}.is-size-3-fullhd{font-size:2rem !important}.is-size-4-fullhd{font-size:1.5rem !important}.is-size-5-fullhd{font-size:1.25rem !important}.is-size-6-fullhd{font-size:15px !important}.is-size-7-fullhd{font-size:.85em !important}}.has-text-centered{text-align:center !important}.has-text-justified{text-align:justify !important}.has-text-left{text-align:left !important}.has-text-right{text-align:right !important}@media screen and (max-width: 768px){.has-text-centered-mobile{text-align:center !important}}@media screen and (min-width: 769px),print{.has-text-centered-tablet{text-align:center !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-centered-tablet-only{text-align:center !important}}@media screen and (max-width: 1055px){.has-text-centered-touch{text-align:center !important}}@media screen and (min-width: 1056px){.has-text-centered-desktop{text-align:center !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-centered-desktop-only{text-align:center !important}}@media screen and (min-width: 1216px){.has-text-centered-widescreen{text-align:center !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-centered-widescreen-only{text-align:center !important}}@media screen and (min-width: 1408px){.has-text-centered-fullhd{text-align:center !important}}@media screen and (max-width: 768px){.has-text-justified-mobile{text-align:justify !important}}@media screen and (min-width: 769px),print{.has-text-justified-tablet{text-align:justify !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-justified-tablet-only{text-align:justify !important}}@media screen and (max-width: 1055px){.has-text-justified-touch{text-align:justify !important}}@media screen and (min-width: 1056px){.has-text-justified-desktop{text-align:justify !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-justified-desktop-only{text-align:justify !important}}@media screen and (min-width: 1216px){.has-text-justified-widescreen{text-align:justify !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-justified-widescreen-only{text-align:justify !important}}@media screen and (min-width: 1408px){.has-text-justified-fullhd{text-align:justify !important}}@media screen and (max-width: 768px){.has-text-left-mobile{text-align:left !important}}@media screen and (min-width: 769px),print{.has-text-left-tablet{text-align:left !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-left-tablet-only{text-align:left !important}}@media screen and (max-width: 1055px){.has-text-left-touch{text-align:left !important}}@media screen and (min-width: 1056px){.has-text-left-desktop{text-align:left !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-left-desktop-only{text-align:left !important}}@media screen and (min-width: 1216px){.has-text-left-widescreen{text-align:left !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-left-widescreen-only{text-align:left !important}}@media screen and (min-width: 1408px){.has-text-left-fullhd{text-align:left !important}}@media screen and (max-width: 768px){.has-text-right-mobile{text-align:right !important}}@media screen and (min-width: 769px),print{.has-text-right-tablet{text-align:right !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-right-tablet-only{text-align:right !important}}@media screen and (max-width: 1055px){.has-text-right-touch{text-align:right !important}}@media screen and (min-width: 1056px){.has-text-right-desktop{text-align:right !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-right-desktop-only{text-align:right !important}}@media screen and (min-width: 1216px){.has-text-right-widescreen{text-align:right !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-right-widescreen-only{text-align:right !important}}@media screen and (min-width: 1408px){.has-text-right-fullhd{text-align:right !important}}.is-capitalized{text-transform:capitalize !important}.is-lowercase{text-transform:lowercase !important}.is-uppercase{text-transform:uppercase !important}.is-italic{font-style:italic !important}.has-text-white{color:#fff !important}a.has-text-white:hover,a.has-text-white:focus{color:#e6e6e6 !important}.has-background-white{background-color:#fff !important}.has-text-black{color:#0a0a0a !important}a.has-text-black:hover,a.has-text-black:focus{color:#000 !important}.has-background-black{background-color:#0a0a0a !important}.has-text-light{color:#ecf0f1 !important}a.has-text-light:hover,a.has-text-light:focus{color:#cfd9db !important}.has-background-light{background-color:#ecf0f1 !important}.has-text-dark{color:#282f2f !important}a.has-text-dark:hover,a.has-text-dark:focus{color:#111414 !important}.has-background-dark{background-color:#282f2f !important}.has-text-primary{color:#375a7f !important}a.has-text-primary:hover,a.has-text-primary:focus{color:#28415b !important}.has-background-primary{background-color:#375a7f !important}.has-text-link{color:#1abc9c !important}a.has-text-link:hover,a.has-text-link:focus{color:#148f77 !important}.has-background-link{background-color:#1abc9c !important}.has-text-info{color:#024c7d !important}a.has-text-info:hover,a.has-text-info:focus{color:#012d4b !important}.has-background-info{background-color:#024c7d !important}.has-text-success{color:#008438 !important}a.has-text-success:hover,a.has-text-success:focus{color:#005122 !important}.has-background-success{background-color:#008438 !important}.has-text-warning{color:#ad8100 !important}a.has-text-warning:hover,a.has-text-warning:focus{color:#7a5b00 !important}.has-background-warning{background-color:#ad8100 !important}.has-text-danger{color:#9e1b0d !important}a.has-text-danger:hover,a.has-text-danger:focus{color:#6f1309 !important}.has-background-danger{background-color:#9e1b0d !important}.has-text-black-bis{color:#121212 !important}.has-background-black-bis{background-color:#121212 !important}.has-text-black-ter{color:#242424 !important}.has-background-black-ter{background-color:#242424 !important}.has-text-grey-darker{color:#282f2f !important}.has-background-grey-darker{background-color:#282f2f !important}.has-text-grey-dark{color:#343c3d !important}.has-background-grey-dark{background-color:#343c3d !important}.has-text-grey{color:#5e6d6f !important}.has-background-grey{background-color:#5e6d6f !important}.has-text-grey-light{color:#8c9b9d !important}.has-background-grey-light{background-color:#8c9b9d !important}.has-text-grey-lighter{color:#dbdee0 !important}.has-background-grey-lighter{background-color:#dbdee0 !important}.has-text-white-ter{color:#ecf0f1 !important}.has-background-white-ter{background-color:#ecf0f1 !important}.has-text-white-bis{color:#fafafa !important}.has-background-white-bis{background-color:#fafafa !important}.has-text-weight-light{font-weight:300 !important}.has-text-weight-normal{font-weight:400 !important}.has-text-weight-medium{font-weight:500 !important}.has-text-weight-semibold{font-weight:600 !important}.has-text-weight-bold{font-weight:700 !important}.is-family-primary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-secondary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-sans-serif{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-monospace{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-family-code{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-block{display:block !important}@media screen and (max-width: 768px){.is-block-mobile{display:block !important}}@media screen and (min-width: 769px),print{.is-block-tablet{display:block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-block-tablet-only{display:block !important}}@media screen and (max-width: 1055px){.is-block-touch{display:block !important}}@media screen and (min-width: 1056px){.is-block-desktop{display:block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-block-desktop-only{display:block !important}}@media screen and (min-width: 1216px){.is-block-widescreen{display:block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-block-widescreen-only{display:block !important}}@media screen and (min-width: 1408px){.is-block-fullhd{display:block !important}}.is-flex{display:flex !important}@media screen and (max-width: 768px){.is-flex-mobile{display:flex !important}}@media screen and (min-width: 769px),print{.is-flex-tablet{display:flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-flex-tablet-only{display:flex !important}}@media screen and (max-width: 1055px){.is-flex-touch{display:flex !important}}@media screen and (min-width: 1056px){.is-flex-desktop{display:flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-flex-desktop-only{display:flex !important}}@media screen and (min-width: 1216px){.is-flex-widescreen{display:flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-flex-widescreen-only{display:flex !important}}@media screen and (min-width: 1408px){.is-flex-fullhd{display:flex !important}}.is-inline{display:inline !important}@media screen and (max-width: 768px){.is-inline-mobile{display:inline !important}}@media screen and (min-width: 769px),print{.is-inline-tablet{display:inline !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-tablet-only{display:inline !important}}@media screen and (max-width: 1055px){.is-inline-touch{display:inline !important}}@media screen and (min-width: 1056px){.is-inline-desktop{display:inline !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-desktop-only{display:inline !important}}@media screen and (min-width: 1216px){.is-inline-widescreen{display:inline !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-widescreen-only{display:inline !important}}@media screen and (min-width: 1408px){.is-inline-fullhd{display:inline !important}}.is-inline-block{display:inline-block !important}@media screen and (max-width: 768px){.is-inline-block-mobile{display:inline-block !important}}@media screen and (min-width: 769px),print{.is-inline-block-tablet{display:inline-block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-block-tablet-only{display:inline-block !important}}@media screen and (max-width: 1055px){.is-inline-block-touch{display:inline-block !important}}@media screen and (min-width: 1056px){.is-inline-block-desktop{display:inline-block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-block-desktop-only{display:inline-block !important}}@media screen and (min-width: 1216px){.is-inline-block-widescreen{display:inline-block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-block-widescreen-only{display:inline-block !important}}@media screen and (min-width: 1408px){.is-inline-block-fullhd{display:inline-block !important}}.is-inline-flex{display:inline-flex !important}@media screen and (max-width: 768px){.is-inline-flex-mobile{display:inline-flex !important}}@media screen and (min-width: 769px),print{.is-inline-flex-tablet{display:inline-flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-flex-tablet-only{display:inline-flex !important}}@media screen and (max-width: 1055px){.is-inline-flex-touch{display:inline-flex !important}}@media screen and (min-width: 1056px){.is-inline-flex-desktop{display:inline-flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-flex-desktop-only{display:inline-flex !important}}@media screen and (min-width: 1216px){.is-inline-flex-widescreen{display:inline-flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-flex-widescreen-only{display:inline-flex !important}}@media screen and (min-width: 1408px){.is-inline-flex-fullhd{display:inline-flex !important}}.is-hidden{display:none !important}.is-sr-only{border:none !important;clip:rect(0, 0, 0, 0) !important;height:0.01em !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:0.01em !important}@media screen and (max-width: 768px){.is-hidden-mobile{display:none !important}}@media screen and (min-width: 769px),print{.is-hidden-tablet{display:none !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-hidden-tablet-only{display:none !important}}@media screen and (max-width: 1055px){.is-hidden-touch{display:none !important}}@media screen and (min-width: 1056px){.is-hidden-desktop{display:none !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-hidden-desktop-only{display:none !important}}@media screen and (min-width: 1216px){.is-hidden-widescreen{display:none !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-hidden-widescreen-only{display:none !important}}@media screen and (min-width: 1408px){.is-hidden-fullhd{display:none !important}}.is-invisible{visibility:hidden !important}@media screen and (max-width: 768px){.is-invisible-mobile{visibility:hidden !important}}@media screen and (min-width: 769px),print{.is-invisible-tablet{visibility:hidden !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-invisible-tablet-only{visibility:hidden !important}}@media screen and (max-width: 1055px){.is-invisible-touch{visibility:hidden !important}}@media screen and (min-width: 1056px){.is-invisible-desktop{visibility:hidden !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-invisible-desktop-only{visibility:hidden !important}}@media screen and (min-width: 1216px){.is-invisible-widescreen{visibility:hidden !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-invisible-widescreen-only{visibility:hidden !important}}@media screen and (min-width: 1408px){.is-invisible-fullhd{visibility:hidden !important}}.is-marginless{margin:0 !important}.is-paddingless{padding:0 !important}.is-radiusless{border-radius:0 !important}.is-shadowless{box-shadow:none !important}.is-relative{position:relative !important}html.theme--documenter-dark{/*! + Theme: a11y-dark + Author: @ericwbailey + Maintainer: @ericwbailey + + Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css +*/}html.theme--documenter-dark html{background-color:#1f2424;font-size:16px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}html.theme--documenter-dark article,html.theme--documenter-dark aside,html.theme--documenter-dark figure,html.theme--documenter-dark footer,html.theme--documenter-dark header,html.theme--documenter-dark hgroup,html.theme--documenter-dark section{display:block}html.theme--documenter-dark body,html.theme--documenter-dark button,html.theme--documenter-dark input,html.theme--documenter-dark select,html.theme--documenter-dark textarea{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif}html.theme--documenter-dark code,html.theme--documenter-dark pre{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto;font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace}html.theme--documenter-dark body{color:#fff;font-size:1em;font-weight:400;line-height:1.5}html.theme--documenter-dark a{color:#1abc9c;cursor:pointer;text-decoration:none}html.theme--documenter-dark a strong{color:currentColor}html.theme--documenter-dark a:hover{color:#1dd2af}html.theme--documenter-dark code{background-color:rgba(255,255,255,0.05);color:#ececec;font-size:.875em;font-weight:normal;padding:.1em}html.theme--documenter-dark hr{background-color:#282f2f;border:none;display:block;height:2px;margin:1.5rem 0}html.theme--documenter-dark img{height:auto;max-width:100%}html.theme--documenter-dark input[type="checkbox"],html.theme--documenter-dark input[type="radio"]{vertical-align:baseline}html.theme--documenter-dark small{font-size:.875em}html.theme--documenter-dark span{font-style:inherit;font-weight:inherit}html.theme--documenter-dark strong{color:#f2f2f2;font-weight:700}html.theme--documenter-dark fieldset{border:none}html.theme--documenter-dark pre{-webkit-overflow-scrolling:touch;background-color:#282f2f;color:#fff;font-size:.875em;overflow-x:auto;padding:1.25rem 1.5rem;white-space:pre;word-wrap:normal}html.theme--documenter-dark pre code{background-color:transparent;color:currentColor;font-size:1em;padding:0}html.theme--documenter-dark table td,html.theme--documenter-dark table th{vertical-align:top}html.theme--documenter-dark table td:not([align]),html.theme--documenter-dark table th:not([align]){text-align:left}html.theme--documenter-dark table th{color:#f2f2f2}html.theme--documenter-dark .box{background-color:#343c3d;border-radius:8px;box-shadow:none;color:#fff;display:block;padding:1.25rem}html.theme--documenter-dark a.box:hover,html.theme--documenter-dark a.box:focus{box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px #1abc9c}html.theme--documenter-dark a.box:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2),0 0 0 1px #1abc9c}html.theme--documenter-dark .button{background-color:#282f2f;border-color:#4c5759;border-width:1px;color:#375a7f;cursor:pointer;justify-content:center;padding-bottom:calc(0.375em - 1px);padding-left:.75em;padding-right:.75em;padding-top:calc(0.375em - 1px);text-align:center;white-space:nowrap}html.theme--documenter-dark .button strong{color:inherit}html.theme--documenter-dark .button .icon,html.theme--documenter-dark .button .icon.is-small,html.theme--documenter-dark .button #documenter .docs-sidebar form.docs-search>input.icon,html.theme--documenter-dark #documenter .docs-sidebar .button form.docs-search>input.icon,html.theme--documenter-dark .button .icon.is-medium,html.theme--documenter-dark .button .icon.is-large{height:1.5em;width:1.5em}html.theme--documenter-dark .button .icon:first-child:not(:last-child){margin-left:calc(-0.375em - 1px);margin-right:0.1875em}html.theme--documenter-dark .button .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:calc(-0.375em - 1px)}html.theme--documenter-dark .button .icon:first-child:last-child{margin-left:calc(-0.375em - 1px);margin-right:calc(-0.375em - 1px)}html.theme--documenter-dark .button:hover,html.theme--documenter-dark .button.is-hovered{border-color:#8c9b9d;color:#f2f2f2}html.theme--documenter-dark .button:focus,html.theme--documenter-dark .button.is-focused{border-color:#8c9b9d;color:#17a689}html.theme--documenter-dark .button:focus:not(:active),html.theme--documenter-dark .button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .button:active,html.theme--documenter-dark .button.is-active{border-color:#343c3d;color:#f2f2f2}html.theme--documenter-dark .button.is-text{background-color:transparent;border-color:transparent;color:#fff;text-decoration:underline}html.theme--documenter-dark .button.is-text:hover,html.theme--documenter-dark .button.is-text.is-hovered,html.theme--documenter-dark .button.is-text:focus,html.theme--documenter-dark .button.is-text.is-focused{background-color:#282f2f;color:#f2f2f2}html.theme--documenter-dark .button.is-text:active,html.theme--documenter-dark .button.is-text.is-active{background-color:#1d2122;color:#f2f2f2}html.theme--documenter-dark .button.is-text[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-text{background-color:transparent;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-white{background-color:#fff;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:hover,html.theme--documenter-dark .button.is-white.is-hovered{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:focus,html.theme--documenter-dark .button.is-white.is-focused{border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:focus:not(:active),html.theme--documenter-dark .button.is-white.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .button.is-white:active,html.theme--documenter-dark .button.is-white.is-active{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white{background-color:#fff;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-white.is-inverted{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted:hover,html.theme--documenter-dark .button.is-white.is-inverted.is-hovered{background-color:#000}html.theme--documenter-dark .button.is-white.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted{background-color:#0a0a0a;border-color:transparent;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-white.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-white.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-white.is-outlined:hover,html.theme--documenter-dark .button.is-white.is-outlined.is-hovered,html.theme--documenter-dark .button.is-white.is-outlined:focus,html.theme--documenter-dark .button.is-white.is-outlined.is-focused{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-white.is-outlined.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-white.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-white.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-focused{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black{background-color:#0a0a0a;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:hover,html.theme--documenter-dark .button.is-black.is-hovered{background-color:#040404;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:focus,html.theme--documenter-dark .button.is-black.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:focus:not(:active),html.theme--documenter-dark .button.is-black.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .button.is-black:active,html.theme--documenter-dark .button.is-black.is-active{background-color:#000;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black{background-color:#0a0a0a;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-black.is-inverted{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted:hover,html.theme--documenter-dark .button.is-black.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-black.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-outlined:hover,html.theme--documenter-dark .button.is-black.is-outlined.is-hovered,html.theme--documenter-dark .button.is-black.is-outlined:focus,html.theme--documenter-dark .button.is-black.is-outlined.is-focused{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-black.is-outlined.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-black.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-black.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-focused{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-light{background-color:#ecf0f1;border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light:hover,html.theme--documenter-dark .button.is-light.is-hovered{background-color:#e5eaec;border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light:focus,html.theme--documenter-dark .button.is-light.is-focused{border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light:focus:not(:active),html.theme--documenter-dark .button.is-light.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .button.is-light:active,html.theme--documenter-dark .button.is-light.is-active{background-color:#dde4e6;border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light{background-color:#ecf0f1;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-light.is-inverted{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted:hover,html.theme--documenter-dark .button.is-light.is-inverted.is-hovered{background-color:#1d2122}html.theme--documenter-dark .button.is-light.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted{background-color:#282f2f;border-color:transparent;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-loading::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-light.is-outlined{background-color:transparent;border-color:#ecf0f1;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-outlined:hover,html.theme--documenter-dark .button.is-light.is-outlined.is-hovered,html.theme--documenter-dark .button.is-light.is-outlined:focus,html.theme--documenter-dark .button.is-light.is-outlined.is-focused{background-color:#ecf0f1;border-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .button.is-light.is-outlined.is-loading::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-light.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-light.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-outlined{background-color:transparent;border-color:#ecf0f1;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#282f2f;color:#282f2f}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-focused{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#282f2f;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark,html.theme--documenter-dark .content kbd.button{background-color:#282f2f;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark:hover,html.theme--documenter-dark .content kbd.button:hover,html.theme--documenter-dark .button.is-dark.is-hovered,html.theme--documenter-dark .content kbd.button.is-hovered{background-color:#232829;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark:focus,html.theme--documenter-dark .content kbd.button:focus,html.theme--documenter-dark .button.is-dark.is-focused,html.theme--documenter-dark .content kbd.button.is-focused{border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark:focus:not(:active),html.theme--documenter-dark .content kbd.button:focus:not(:active),html.theme--documenter-dark .button.is-dark.is-focused:not(:active),html.theme--documenter-dark .content kbd.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .button.is-dark:active,html.theme--documenter-dark .content kbd.button:active,html.theme--documenter-dark .button.is-dark.is-active,html.theme--documenter-dark .content kbd.button.is-active{background-color:#1d2122;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark[disabled],html.theme--documenter-dark .content kbd.button[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark,fieldset[disabled] html.theme--documenter-dark .content kbd.button{background-color:#282f2f;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-dark.is-inverted,html.theme--documenter-dark .content kbd.button.is-inverted{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted:hover,html.theme--documenter-dark .content kbd.button.is-inverted:hover,html.theme--documenter-dark .button.is-dark.is-inverted.is-hovered,html.theme--documenter-dark .content kbd.button.is-inverted.is-hovered{background-color:#dde4e6}html.theme--documenter-dark .button.is-dark.is-inverted[disabled],html.theme--documenter-dark .content kbd.button.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted{background-color:#ecf0f1;border-color:transparent;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-loading::after,html.theme--documenter-dark .content kbd.button.is-loading::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-dark.is-outlined,html.theme--documenter-dark .content kbd.button.is-outlined{background-color:transparent;border-color:#282f2f;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-outlined:hover,html.theme--documenter-dark .content kbd.button.is-outlined:hover,html.theme--documenter-dark .button.is-dark.is-outlined.is-hovered,html.theme--documenter-dark .content kbd.button.is-outlined.is-hovered,html.theme--documenter-dark .button.is-dark.is-outlined:focus,html.theme--documenter-dark .content kbd.button.is-outlined:focus,html.theme--documenter-dark .button.is-dark.is-outlined.is-focused,html.theme--documenter-dark .content kbd.button.is-outlined.is-focused{background-color:#282f2f;border-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .button.is-dark.is-outlined.is-loading::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:hover::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:focus::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-dark.is-outlined[disabled],html.theme--documenter-dark .content kbd.button.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-outlined,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-outlined{background-color:transparent;border-color:#282f2f;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#ecf0f1;color:#ecf0f1}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:hover,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:focus,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-focused,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-focused{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined[disabled],html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#ecf0f1;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-primary,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink{background-color:#375a7f;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:hover,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-hovered.docs-sourcelink{background-color:#335476;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:focus,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:focus:not(:active),html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus:not(:active),html.theme--documenter-dark .button.is-primary.is-focused:not(:active),html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink:not(:active){box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .button.is-primary:active,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:active,html.theme--documenter-dark .button.is-primary.is-active,html.theme--documenter-dark .docstring>section>a.button.is-active.docs-sourcelink{background-color:#2f4d6d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary[disabled],html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink{background-color:#375a7f;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-primary.is-inverted,html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted:hover,html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-inverted.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-hovered.docs-sourcelink{background-color:#f2f2f2}html.theme--documenter-dark .button.is-primary.is-inverted[disabled],html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;border-color:transparent;box-shadow:none;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-loading::after,html.theme--documenter-dark .docstring>section>a.button.is-loading.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-primary.is-outlined,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#375a7f;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-outlined:hover,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-outlined.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-outlined:focus,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-outlined.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-focused.docs-sourcelink{background-color:#375a7f;border-color:#375a7f;color:#fff}html.theme--documenter-dark .button.is-primary.is-outlined.is-loading::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink::after{border-color:transparent transparent #375a7f #375a7f !important}html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:hover::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:hover::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:focus::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:focus::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-primary.is-outlined[disabled],html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-outlined,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#375a7f;box-shadow:none;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:hover,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:focus,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-focused.docs-sourcelink{background-color:#fff;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #375a7f #375a7f !important}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined[disabled],html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-link{background-color:#1abc9c;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:hover,html.theme--documenter-dark .button.is-link.is-hovered{background-color:#18b193;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:focus,html.theme--documenter-dark .button.is-link.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:focus:not(:active),html.theme--documenter-dark .button.is-link.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .button.is-link:active,html.theme--documenter-dark .button.is-link.is-active{background-color:#17a689;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link{background-color:#1abc9c;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-link.is-inverted{background-color:#fff;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted:hover,html.theme--documenter-dark .button.is-link.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-link.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-link.is-outlined{background-color:transparent;border-color:#1abc9c;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-outlined:hover,html.theme--documenter-dark .button.is-link.is-outlined.is-hovered,html.theme--documenter-dark .button.is-link.is-outlined:focus,html.theme--documenter-dark .button.is-link.is-outlined.is-focused{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .button.is-link.is-outlined.is-loading::after{border-color:transparent transparent #1abc9c #1abc9c !important}html.theme--documenter-dark .button.is-link.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-link.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-outlined{background-color:transparent;border-color:#1abc9c;box-shadow:none;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-focused{background-color:#fff;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #1abc9c #1abc9c !important}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-info{background-color:#024c7d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:hover,html.theme--documenter-dark .button.is-info.is-hovered{background-color:#024470;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:focus,html.theme--documenter-dark .button.is-info.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:focus:not(:active),html.theme--documenter-dark .button.is-info.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .button.is-info:active,html.theme--documenter-dark .button.is-info.is-active{background-color:#023d64;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info{background-color:#024c7d;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-info.is-inverted{background-color:#fff;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted:hover,html.theme--documenter-dark .button.is-info.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-info.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#024c7d}html.theme--documenter-dark .button.is-info.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-info.is-outlined{background-color:transparent;border-color:#024c7d;color:#024c7d}html.theme--documenter-dark .button.is-info.is-outlined:hover,html.theme--documenter-dark .button.is-info.is-outlined.is-hovered,html.theme--documenter-dark .button.is-info.is-outlined:focus,html.theme--documenter-dark .button.is-info.is-outlined.is-focused{background-color:#024c7d;border-color:#024c7d;color:#fff}html.theme--documenter-dark .button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #024c7d #024c7d !important}html.theme--documenter-dark .button.is-info.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-info.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-outlined{background-color:transparent;border-color:#024c7d;box-shadow:none;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-focused{background-color:#fff;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #024c7d #024c7d !important}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-success{background-color:#008438;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:hover,html.theme--documenter-dark .button.is-success.is-hovered{background-color:#073;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:focus,html.theme--documenter-dark .button.is-success.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:focus:not(:active),html.theme--documenter-dark .button.is-success.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .button.is-success:active,html.theme--documenter-dark .button.is-success.is-active{background-color:#006b2d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success{background-color:#008438;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-success.is-inverted{background-color:#fff;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted:hover,html.theme--documenter-dark .button.is-success.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-success.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#008438}html.theme--documenter-dark .button.is-success.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-success.is-outlined{background-color:transparent;border-color:#008438;color:#008438}html.theme--documenter-dark .button.is-success.is-outlined:hover,html.theme--documenter-dark .button.is-success.is-outlined.is-hovered,html.theme--documenter-dark .button.is-success.is-outlined:focus,html.theme--documenter-dark .button.is-success.is-outlined.is-focused{background-color:#008438;border-color:#008438;color:#fff}html.theme--documenter-dark .button.is-success.is-outlined.is-loading::after{border-color:transparent transparent #008438 #008438 !important}html.theme--documenter-dark .button.is-success.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-success.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-outlined{background-color:transparent;border-color:#008438;box-shadow:none;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-focused{background-color:#fff;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #008438 #008438 !important}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-warning{background-color:#ad8100;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:hover,html.theme--documenter-dark .button.is-warning.is-hovered{background-color:#a07700;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:focus,html.theme--documenter-dark .button.is-warning.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:focus:not(:active),html.theme--documenter-dark .button.is-warning.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .button.is-warning:active,html.theme--documenter-dark .button.is-warning.is-active{background-color:#946e00;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning{background-color:#ad8100;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-warning.is-inverted{background-color:#fff;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted:hover,html.theme--documenter-dark .button.is-warning.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-warning.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-warning.is-outlined{background-color:transparent;border-color:#ad8100;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-outlined:hover,html.theme--documenter-dark .button.is-warning.is-outlined.is-hovered,html.theme--documenter-dark .button.is-warning.is-outlined:focus,html.theme--documenter-dark .button.is-warning.is-outlined.is-focused{background-color:#ad8100;border-color:#ad8100;color:#fff}html.theme--documenter-dark .button.is-warning.is-outlined.is-loading::after{border-color:transparent transparent #ad8100 #ad8100 !important}html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-warning.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-outlined{background-color:transparent;border-color:#ad8100;box-shadow:none;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-focused{background-color:#fff;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ad8100 #ad8100 !important}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-danger{background-color:#9e1b0d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:hover,html.theme--documenter-dark .button.is-danger.is-hovered{background-color:#92190c;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:focus,html.theme--documenter-dark .button.is-danger.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:focus:not(:active),html.theme--documenter-dark .button.is-danger.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .button.is-danger:active,html.theme--documenter-dark .button.is-danger.is-active{background-color:#86170b;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger{background-color:#9e1b0d;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-danger.is-inverted{background-color:#fff;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted:hover,html.theme--documenter-dark .button.is-danger.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-danger.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-danger.is-outlined{background-color:transparent;border-color:#9e1b0d;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-outlined:hover,html.theme--documenter-dark .button.is-danger.is-outlined.is-hovered,html.theme--documenter-dark .button.is-danger.is-outlined:focus,html.theme--documenter-dark .button.is-danger.is-outlined.is-focused{background-color:#9e1b0d;border-color:#9e1b0d;color:#fff}html.theme--documenter-dark .button.is-danger.is-outlined.is-loading::after{border-color:transparent transparent #9e1b0d #9e1b0d !important}html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-danger.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-outlined{background-color:transparent;border-color:#9e1b0d;box-shadow:none;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-focused{background-color:#fff;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #9e1b0d #9e1b0d !important}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.button{border-radius:3px;font-size:.85em}html.theme--documenter-dark .button.is-normal{font-size:15px}html.theme--documenter-dark .button.is-medium{font-size:1.25rem}html.theme--documenter-dark .button.is-large{font-size:1.5rem}html.theme--documenter-dark .button[disabled],fieldset[disabled] html.theme--documenter-dark .button{background-color:#8c9b9d;border-color:#dbdee0;box-shadow:none;opacity:.5}html.theme--documenter-dark .button.is-fullwidth{display:flex;width:100%}html.theme--documenter-dark .button.is-loading{color:transparent !important;pointer-events:none}html.theme--documenter-dark .button.is-loading::after{position:absolute;left:calc(50% - (1em / 2));top:calc(50% - (1em / 2));position:absolute !important}html.theme--documenter-dark .button.is-static{background-color:#282f2f;border-color:#5e6d6f;color:#dbdee0;box-shadow:none;pointer-events:none}html.theme--documenter-dark .button.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.button{border-radius:290486px;padding-left:1em;padding-right:1em}html.theme--documenter-dark .buttons{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .buttons .button{margin-bottom:0.5rem}html.theme--documenter-dark .buttons .button:not(:last-child):not(.is-fullwidth){margin-right:0.5rem}html.theme--documenter-dark .buttons:last-child{margin-bottom:-0.5rem}html.theme--documenter-dark .buttons:not(:last-child){margin-bottom:1rem}html.theme--documenter-dark .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large){border-radius:3px;font-size:.85em}html.theme--documenter-dark .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large){font-size:1.25rem}html.theme--documenter-dark .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium){font-size:1.5rem}html.theme--documenter-dark .buttons.has-addons .button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .buttons.has-addons .button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}html.theme--documenter-dark .buttons.has-addons .button:last-child{margin-right:0}html.theme--documenter-dark .buttons.has-addons .button:hover,html.theme--documenter-dark .buttons.has-addons .button.is-hovered{z-index:2}html.theme--documenter-dark .buttons.has-addons .button:focus,html.theme--documenter-dark .buttons.has-addons .button.is-focused,html.theme--documenter-dark .buttons.has-addons .button:active,html.theme--documenter-dark .buttons.has-addons .button.is-active,html.theme--documenter-dark .buttons.has-addons .button.is-selected{z-index:3}html.theme--documenter-dark .buttons.has-addons .button:focus:hover,html.theme--documenter-dark .buttons.has-addons .button.is-focused:hover,html.theme--documenter-dark .buttons.has-addons .button:active:hover,html.theme--documenter-dark .buttons.has-addons .button.is-active:hover,html.theme--documenter-dark .buttons.has-addons .button.is-selected:hover{z-index:4}html.theme--documenter-dark .buttons.has-addons .button.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .buttons.is-centered{justify-content:center}html.theme--documenter-dark .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}html.theme--documenter-dark .buttons.is-right{justify-content:flex-end}html.theme--documenter-dark .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}html.theme--documenter-dark .container{flex-grow:1;margin:0 auto;position:relative;width:auto}@media screen and (min-width: 1056px){html.theme--documenter-dark .container{max-width:992px}html.theme--documenter-dark .container.is-fluid{margin-left:32px;margin-right:32px;max-width:none}}@media screen and (max-width: 1215px){html.theme--documenter-dark .container.is-widescreen{max-width:1152px}}@media screen and (max-width: 1407px){html.theme--documenter-dark .container.is-fullhd{max-width:1344px}}@media screen and (min-width: 1216px){html.theme--documenter-dark .container{max-width:1152px}}@media screen and (min-width: 1408px){html.theme--documenter-dark .container{max-width:1344px}}html.theme--documenter-dark .content li+li{margin-top:0.25em}html.theme--documenter-dark .content p:not(:last-child),html.theme--documenter-dark .content dl:not(:last-child),html.theme--documenter-dark .content ol:not(:last-child),html.theme--documenter-dark .content ul:not(:last-child),html.theme--documenter-dark .content blockquote:not(:last-child),html.theme--documenter-dark .content pre:not(:last-child),html.theme--documenter-dark .content table:not(:last-child){margin-bottom:1em}html.theme--documenter-dark .content h1,html.theme--documenter-dark .content h2,html.theme--documenter-dark .content h3,html.theme--documenter-dark .content h4,html.theme--documenter-dark .content h5,html.theme--documenter-dark .content h6{color:#f2f2f2;font-weight:600;line-height:1.125}html.theme--documenter-dark .content h1{font-size:2em;margin-bottom:0.5em}html.theme--documenter-dark .content h1:not(:first-child){margin-top:1em}html.theme--documenter-dark .content h2{font-size:1.75em;margin-bottom:0.5714em}html.theme--documenter-dark .content h2:not(:first-child){margin-top:1.1428em}html.theme--documenter-dark .content h3{font-size:1.5em;margin-bottom:0.6666em}html.theme--documenter-dark .content h3:not(:first-child){margin-top:1.3333em}html.theme--documenter-dark .content h4{font-size:1.25em;margin-bottom:0.8em}html.theme--documenter-dark .content h5{font-size:1.125em;margin-bottom:0.8888em}html.theme--documenter-dark .content h6{font-size:1em;margin-bottom:1em}html.theme--documenter-dark .content blockquote{background-color:#282f2f;border-left:5px solid #5e6d6f;padding:1.25em 1.5em}html.theme--documenter-dark .content ol{list-style-position:outside;margin-left:2em;margin-top:1em}html.theme--documenter-dark .content ol:not([type]){list-style-type:decimal}html.theme--documenter-dark .content ol.is-lower-alpha:not([type]){list-style-type:lower-alpha}html.theme--documenter-dark .content ol.is-lower-roman:not([type]){list-style-type:lower-roman}html.theme--documenter-dark .content ol.is-upper-alpha:not([type]){list-style-type:upper-alpha}html.theme--documenter-dark .content ol.is-upper-roman:not([type]){list-style-type:upper-roman}html.theme--documenter-dark .content ul{list-style:disc outside;margin-left:2em;margin-top:1em}html.theme--documenter-dark .content ul ul{list-style-type:circle;margin-top:0.5em}html.theme--documenter-dark .content ul ul ul{list-style-type:square}html.theme--documenter-dark .content dd{margin-left:2em}html.theme--documenter-dark .content figure{margin-left:2em;margin-right:2em;text-align:center}html.theme--documenter-dark .content figure:not(:first-child){margin-top:2em}html.theme--documenter-dark .content figure:not(:last-child){margin-bottom:2em}html.theme--documenter-dark .content figure img{display:inline-block}html.theme--documenter-dark .content figure figcaption{font-style:italic}html.theme--documenter-dark .content pre{-webkit-overflow-scrolling:touch;overflow-x:auto;padding:0;white-space:pre;word-wrap:normal}html.theme--documenter-dark .content sup,html.theme--documenter-dark .content sub{font-size:75%}html.theme--documenter-dark .content table{width:100%}html.theme--documenter-dark .content table td,html.theme--documenter-dark .content table th{border:1px solid #5e6d6f;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}html.theme--documenter-dark .content table th{color:#f2f2f2}html.theme--documenter-dark .content table th:not([align]){text-align:left}html.theme--documenter-dark .content table thead td,html.theme--documenter-dark .content table thead th{border-width:0 0 2px;color:#f2f2f2}html.theme--documenter-dark .content table tfoot td,html.theme--documenter-dark .content table tfoot th{border-width:2px 0 0;color:#f2f2f2}html.theme--documenter-dark .content table tbody tr:last-child td,html.theme--documenter-dark .content table tbody tr:last-child th{border-bottom-width:0}html.theme--documenter-dark .content .tabs li+li{margin-top:0}html.theme--documenter-dark .content.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.content{font-size:.85em}html.theme--documenter-dark .content.is-medium{font-size:1.25rem}html.theme--documenter-dark .content.is-large{font-size:1.5rem}html.theme--documenter-dark .icon{align-items:center;display:inline-flex;justify-content:center;height:1.5rem;width:1.5rem}html.theme--documenter-dark .icon.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.icon{height:1rem;width:1rem}html.theme--documenter-dark .icon.is-medium{height:2rem;width:2rem}html.theme--documenter-dark .icon.is-large{height:3rem;width:3rem}html.theme--documenter-dark .image,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img{display:block;position:relative}html.theme--documenter-dark .image img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img img{display:block;height:auto;width:100%}html.theme--documenter-dark .image img.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img img.is-rounded{border-radius:290486px}html.theme--documenter-dark .image.is-square img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square img,html.theme--documenter-dark .image.is-square .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,html.theme--documenter-dark .image.is-1by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 img,html.theme--documenter-dark .image.is-1by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,html.theme--documenter-dark .image.is-5by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 img,html.theme--documenter-dark .image.is-5by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,html.theme--documenter-dark .image.is-4by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 img,html.theme--documenter-dark .image.is-4by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,html.theme--documenter-dark .image.is-3by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 img,html.theme--documenter-dark .image.is-3by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,html.theme--documenter-dark .image.is-5by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 img,html.theme--documenter-dark .image.is-5by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,html.theme--documenter-dark .image.is-16by9 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 img,html.theme--documenter-dark .image.is-16by9 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,html.theme--documenter-dark .image.is-2by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 img,html.theme--documenter-dark .image.is-2by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,html.theme--documenter-dark .image.is-3by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 img,html.theme--documenter-dark .image.is-3by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,html.theme--documenter-dark .image.is-4by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 img,html.theme--documenter-dark .image.is-4by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,html.theme--documenter-dark .image.is-3by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 img,html.theme--documenter-dark .image.is-3by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,html.theme--documenter-dark .image.is-2by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 img,html.theme--documenter-dark .image.is-2by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,html.theme--documenter-dark .image.is-3by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 img,html.theme--documenter-dark .image.is-3by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,html.theme--documenter-dark .image.is-9by16 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 img,html.theme--documenter-dark .image.is-9by16 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,html.theme--documenter-dark .image.is-1by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 img,html.theme--documenter-dark .image.is-1by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,html.theme--documenter-dark .image.is-1by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 img,html.theme--documenter-dark .image.is-1by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio{height:100%;width:100%}html.theme--documenter-dark .image.is-square,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square,html.theme--documenter-dark .image.is-1by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1{padding-top:100%}html.theme--documenter-dark .image.is-5by4,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4{padding-top:80%}html.theme--documenter-dark .image.is-4by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3{padding-top:75%}html.theme--documenter-dark .image.is-3by2,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2{padding-top:66.6666%}html.theme--documenter-dark .image.is-5by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3{padding-top:60%}html.theme--documenter-dark .image.is-16by9,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9{padding-top:56.25%}html.theme--documenter-dark .image.is-2by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1{padding-top:50%}html.theme--documenter-dark .image.is-3by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1{padding-top:33.3333%}html.theme--documenter-dark .image.is-4by5,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5{padding-top:125%}html.theme--documenter-dark .image.is-3by4,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4{padding-top:133.3333%}html.theme--documenter-dark .image.is-2by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3{padding-top:150%}html.theme--documenter-dark .image.is-3by5,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5{padding-top:166.6666%}html.theme--documenter-dark .image.is-9by16,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16{padding-top:177.7777%}html.theme--documenter-dark .image.is-1by2,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2{padding-top:200%}html.theme--documenter-dark .image.is-1by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3{padding-top:300%}html.theme--documenter-dark .image.is-16x16,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16x16{height:16px;width:16px}html.theme--documenter-dark .image.is-24x24,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-24x24{height:24px;width:24px}html.theme--documenter-dark .image.is-32x32,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-32x32{height:32px;width:32px}html.theme--documenter-dark .image.is-48x48,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-48x48{height:48px;width:48px}html.theme--documenter-dark .image.is-64x64,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-64x64{height:64px;width:64px}html.theme--documenter-dark .image.is-96x96,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-96x96{height:96px;width:96px}html.theme--documenter-dark .image.is-128x128,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-128x128{height:128px;width:128px}html.theme--documenter-dark .notification{background-color:#282f2f;border-radius:.4em;padding:1.25rem 2.5rem 1.25rem 1.5rem;position:relative}html.theme--documenter-dark .notification a:not(.button):not(.dropdown-item){color:currentColor;text-decoration:underline}html.theme--documenter-dark .notification strong{color:currentColor}html.theme--documenter-dark .notification code,html.theme--documenter-dark .notification pre{background:#fff}html.theme--documenter-dark .notification pre code{background:transparent}html.theme--documenter-dark .notification>.delete{position:absolute;right:0.5rem;top:0.5rem}html.theme--documenter-dark .notification .title,html.theme--documenter-dark .notification .subtitle,html.theme--documenter-dark .notification .content{color:currentColor}html.theme--documenter-dark .notification.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .notification.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .notification.is-light{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .notification.is-dark,html.theme--documenter-dark .content kbd.notification{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .notification.is-primary,html.theme--documenter-dark .docstring>section>a.notification.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .notification.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .notification.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .notification.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .notification.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .notification.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:290486px;display:block;height:15px;overflow:hidden;padding:0;width:100%}html.theme--documenter-dark .progress::-webkit-progress-bar{background-color:#5e6d6f}html.theme--documenter-dark .progress::-webkit-progress-value{background-color:#dbdee0}html.theme--documenter-dark .progress::-moz-progress-bar{background-color:#dbdee0}html.theme--documenter-dark .progress::-ms-fill{background-color:#dbdee0;border:none}html.theme--documenter-dark .progress.is-white::-webkit-progress-value{background-color:#fff}html.theme--documenter-dark .progress.is-white::-moz-progress-bar{background-color:#fff}html.theme--documenter-dark .progress.is-white::-ms-fill{background-color:#fff}html.theme--documenter-dark .progress.is-white:indeterminate{background-image:linear-gradient(to right, #fff 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-black::-webkit-progress-value{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black::-moz-progress-bar{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black::-ms-fill{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black:indeterminate{background-image:linear-gradient(to right, #0a0a0a 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-light::-webkit-progress-value{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light::-moz-progress-bar{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light::-ms-fill{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light:indeterminate{background-image:linear-gradient(to right, #ecf0f1 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-dark::-webkit-progress-value,html.theme--documenter-dark .content kbd.progress::-webkit-progress-value{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark::-moz-progress-bar,html.theme--documenter-dark .content kbd.progress::-moz-progress-bar{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark::-ms-fill,html.theme--documenter-dark .content kbd.progress::-ms-fill{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark:indeterminate,html.theme--documenter-dark .content kbd.progress:indeterminate{background-image:linear-gradient(to right, #282f2f 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-primary::-webkit-progress-value,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-webkit-progress-value{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary::-moz-progress-bar,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-moz-progress-bar{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary::-ms-fill,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-ms-fill{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary:indeterminate,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink:indeterminate{background-image:linear-gradient(to right, #375a7f 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-link::-webkit-progress-value{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link::-moz-progress-bar{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link::-ms-fill{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link:indeterminate{background-image:linear-gradient(to right, #1abc9c 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-info::-webkit-progress-value{background-color:#024c7d}html.theme--documenter-dark .progress.is-info::-moz-progress-bar{background-color:#024c7d}html.theme--documenter-dark .progress.is-info::-ms-fill{background-color:#024c7d}html.theme--documenter-dark .progress.is-info:indeterminate{background-image:linear-gradient(to right, #024c7d 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-success::-webkit-progress-value{background-color:#008438}html.theme--documenter-dark .progress.is-success::-moz-progress-bar{background-color:#008438}html.theme--documenter-dark .progress.is-success::-ms-fill{background-color:#008438}html.theme--documenter-dark .progress.is-success:indeterminate{background-image:linear-gradient(to right, #008438 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-warning::-webkit-progress-value{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning::-moz-progress-bar{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning::-ms-fill{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning:indeterminate{background-image:linear-gradient(to right, #ad8100 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-danger::-webkit-progress-value{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger::-moz-progress-bar{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger::-ms-fill{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger:indeterminate{background-image:linear-gradient(to right, #9e1b0d 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress:indeterminate{animation-duration:1.5s;animation-iteration-count:infinite;animation-name:moveIndeterminate;animation-timing-function:linear;background-color:#5e6d6f;background-image:linear-gradient(to right, #fff 30%, #5e6d6f 30%);background-position:top left;background-repeat:no-repeat;background-size:150% 150%}html.theme--documenter-dark .progress:indeterminate::-webkit-progress-bar{background-color:transparent}html.theme--documenter-dark .progress:indeterminate::-moz-progress-bar{background-color:transparent}html.theme--documenter-dark .progress.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.progress{height:.85em}html.theme--documenter-dark .progress.is-medium{height:1.25rem}html.theme--documenter-dark .progress.is-large{height:1.5rem}@keyframes moveIndeterminate{from{background-position:200% 0}to{background-position:-200% 0}}html.theme--documenter-dark .table{background-color:#343c3d;color:#fff}html.theme--documenter-dark .table td,html.theme--documenter-dark .table th{border:1px solid #5e6d6f;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}html.theme--documenter-dark .table td.is-white,html.theme--documenter-dark .table th.is-white{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .table td.is-black,html.theme--documenter-dark .table th.is-black{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .table td.is-light,html.theme--documenter-dark .table th.is-light{background-color:#ecf0f1;border-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .table td.is-dark,html.theme--documenter-dark .table th.is-dark{background-color:#282f2f;border-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .table td.is-primary,html.theme--documenter-dark .table th.is-primary{background-color:#375a7f;border-color:#375a7f;color:#fff}html.theme--documenter-dark .table td.is-link,html.theme--documenter-dark .table th.is-link{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .table td.is-info,html.theme--documenter-dark .table th.is-info{background-color:#024c7d;border-color:#024c7d;color:#fff}html.theme--documenter-dark .table td.is-success,html.theme--documenter-dark .table th.is-success{background-color:#008438;border-color:#008438;color:#fff}html.theme--documenter-dark .table td.is-warning,html.theme--documenter-dark .table th.is-warning{background-color:#ad8100;border-color:#ad8100;color:#fff}html.theme--documenter-dark .table td.is-danger,html.theme--documenter-dark .table th.is-danger{background-color:#9e1b0d;border-color:#9e1b0d;color:#fff}html.theme--documenter-dark .table td.is-narrow,html.theme--documenter-dark .table th.is-narrow{white-space:nowrap;width:1%}html.theme--documenter-dark .table td.is-selected,html.theme--documenter-dark .table th.is-selected{background-color:#375a7f;color:#fff}html.theme--documenter-dark .table td.is-selected a,html.theme--documenter-dark .table td.is-selected strong,html.theme--documenter-dark .table th.is-selected a,html.theme--documenter-dark .table th.is-selected strong{color:currentColor}html.theme--documenter-dark .table th{color:#f2f2f2}html.theme--documenter-dark .table th:not([align]){text-align:left}html.theme--documenter-dark .table tr.is-selected{background-color:#375a7f;color:#fff}html.theme--documenter-dark .table tr.is-selected a,html.theme--documenter-dark .table tr.is-selected strong{color:currentColor}html.theme--documenter-dark .table tr.is-selected td,html.theme--documenter-dark .table tr.is-selected th{border-color:#fff;color:currentColor}html.theme--documenter-dark .table thead{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table thead td,html.theme--documenter-dark .table thead th{border-width:0 0 2px;color:#f2f2f2}html.theme--documenter-dark .table tfoot{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table tfoot td,html.theme--documenter-dark .table tfoot th{border-width:2px 0 0;color:#f2f2f2}html.theme--documenter-dark .table tbody{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table tbody tr:last-child td,html.theme--documenter-dark .table tbody tr:last-child th{border-bottom-width:0}html.theme--documenter-dark .table.is-bordered td,html.theme--documenter-dark .table.is-bordered th{border-width:1px}html.theme--documenter-dark .table.is-bordered tr:last-child td,html.theme--documenter-dark .table.is-bordered tr:last-child th{border-bottom-width:1px}html.theme--documenter-dark .table.is-fullwidth{width:100%}html.theme--documenter-dark .table.is-hoverable tbody tr:not(.is-selected):hover{background-color:#282f2f}html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover{background-color:#282f2f}html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even){background-color:#2d3435}html.theme--documenter-dark .table.is-narrow td,html.theme--documenter-dark .table.is-narrow th{padding:0.25em 0.5em}html.theme--documenter-dark .table.is-striped tbody tr:not(.is-selected):nth-child(even){background-color:#282f2f}html.theme--documenter-dark .table-container{-webkit-overflow-scrolling:touch;overflow:auto;overflow-y:hidden;max-width:100%}html.theme--documenter-dark .tags{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .tags .tag,html.theme--documenter-dark .tags .content kbd,html.theme--documenter-dark .content .tags kbd,html.theme--documenter-dark .tags .docstring>section>a.docs-sourcelink{margin-bottom:0.5rem}html.theme--documenter-dark .tags .tag:not(:last-child),html.theme--documenter-dark .tags .content kbd:not(:last-child),html.theme--documenter-dark .content .tags kbd:not(:last-child),html.theme--documenter-dark .tags .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0.5rem}html.theme--documenter-dark .tags:last-child{margin-bottom:-0.5rem}html.theme--documenter-dark .tags:not(:last-child){margin-bottom:1rem}html.theme--documenter-dark .tags.are-medium .tag:not(.is-normal):not(.is-large),html.theme--documenter-dark .tags.are-medium .content kbd:not(.is-normal):not(.is-large),html.theme--documenter-dark .content .tags.are-medium kbd:not(.is-normal):not(.is-large),html.theme--documenter-dark .tags.are-medium .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-large){font-size:15px}html.theme--documenter-dark .tags.are-large .tag:not(.is-normal):not(.is-medium),html.theme--documenter-dark .tags.are-large .content kbd:not(.is-normal):not(.is-medium),html.theme--documenter-dark .content .tags.are-large kbd:not(.is-normal):not(.is-medium),html.theme--documenter-dark .tags.are-large .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-medium){font-size:1.25rem}html.theme--documenter-dark .tags.is-centered{justify-content:center}html.theme--documenter-dark .tags.is-centered .tag,html.theme--documenter-dark .tags.is-centered .content kbd,html.theme--documenter-dark .content .tags.is-centered kbd,html.theme--documenter-dark .tags.is-centered .docstring>section>a.docs-sourcelink{margin-right:0.25rem;margin-left:0.25rem}html.theme--documenter-dark .tags.is-right{justify-content:flex-end}html.theme--documenter-dark .tags.is-right .tag:not(:first-child),html.theme--documenter-dark .tags.is-right .content kbd:not(:first-child),html.theme--documenter-dark .content .tags.is-right kbd:not(:first-child),html.theme--documenter-dark .tags.is-right .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0.5rem}html.theme--documenter-dark .tags.is-right .tag:not(:last-child),html.theme--documenter-dark .tags.is-right .content kbd:not(:last-child),html.theme--documenter-dark .content .tags.is-right kbd:not(:last-child),html.theme--documenter-dark .tags.is-right .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0}html.theme--documenter-dark .tags.has-addons .tag,html.theme--documenter-dark .tags.has-addons .content kbd,html.theme--documenter-dark .content .tags.has-addons kbd,html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink{margin-right:0}html.theme--documenter-dark .tags.has-addons .tag:not(:first-child),html.theme--documenter-dark .tags.has-addons .content kbd:not(:first-child),html.theme--documenter-dark .content .tags.has-addons kbd:not(:first-child),html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0;border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .tags.has-addons .tag:not(:last-child),html.theme--documenter-dark .tags.has-addons .content kbd:not(:last-child),html.theme--documenter-dark .content .tags.has-addons kbd:not(:last-child),html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .tag:not(body),html.theme--documenter-dark .content kbd:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body){align-items:center;background-color:#282f2f;border-radius:.4em;color:#fff;display:inline-flex;font-size:.85em;height:2em;justify-content:center;line-height:1.5;padding-left:0.75em;padding-right:0.75em;white-space:nowrap}html.theme--documenter-dark .tag:not(body) .delete,html.theme--documenter-dark .content kbd:not(body) .delete,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .delete{margin-left:0.25rem;margin-right:-0.375rem}html.theme--documenter-dark .tag.is-white:not(body),html.theme--documenter-dark .content kbd.is-white:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-white:not(body){background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .tag.is-black:not(body),html.theme--documenter-dark .content kbd.is-black:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-black:not(body){background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .tag.is-light:not(body),html.theme--documenter-dark .content kbd.is-light:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-light:not(body){background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .tag.is-dark:not(body),html.theme--documenter-dark .content kbd:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-dark:not(body),html.theme--documenter-dark .content .docstring>section>kbd:not(body){background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .tag.is-primary:not(body),html.theme--documenter-dark .content kbd.is-primary:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body){background-color:#375a7f;color:#fff}html.theme--documenter-dark .tag.is-link:not(body),html.theme--documenter-dark .content kbd.is-link:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-link:not(body){background-color:#1abc9c;color:#fff}html.theme--documenter-dark .tag.is-info:not(body),html.theme--documenter-dark .content kbd.is-info:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-info:not(body){background-color:#024c7d;color:#fff}html.theme--documenter-dark .tag.is-success:not(body),html.theme--documenter-dark .content kbd.is-success:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-success:not(body){background-color:#008438;color:#fff}html.theme--documenter-dark .tag.is-warning:not(body),html.theme--documenter-dark .content kbd.is-warning:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-warning:not(body){background-color:#ad8100;color:#fff}html.theme--documenter-dark .tag.is-danger:not(body),html.theme--documenter-dark .content kbd.is-danger:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-danger:not(body){background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .tag.is-normal:not(body),html.theme--documenter-dark .content kbd.is-normal:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-normal:not(body){font-size:.85em}html.theme--documenter-dark .tag.is-medium:not(body),html.theme--documenter-dark .content kbd.is-medium:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-medium:not(body){font-size:15px}html.theme--documenter-dark .tag.is-large:not(body),html.theme--documenter-dark .content kbd.is-large:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-large:not(body){font-size:1.25rem}html.theme--documenter-dark .tag:not(body) .icon:first-child:not(:last-child),html.theme--documenter-dark .content kbd:not(body) .icon:first-child:not(:last-child),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:first-child:not(:last-child){margin-left:-0.375em;margin-right:0.1875em}html.theme--documenter-dark .tag:not(body) .icon:last-child:not(:first-child),html.theme--documenter-dark .content kbd:not(body) .icon:last-child:not(:first-child),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:-0.375em}html.theme--documenter-dark .tag:not(body) .icon:first-child:last-child,html.theme--documenter-dark .content kbd:not(body) .icon:first-child:last-child,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:first-child:last-child{margin-left:-0.375em;margin-right:-0.375em}html.theme--documenter-dark .tag.is-delete:not(body),html.theme--documenter-dark .content kbd.is-delete:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body){margin-left:1px;padding:0;position:relative;width:2em}html.theme--documenter-dark .tag.is-delete:not(body)::before,html.theme--documenter-dark .content kbd.is-delete:not(body)::before,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::before,html.theme--documenter-dark .tag.is-delete:not(body)::after,html.theme--documenter-dark .content kbd.is-delete:not(body)::after,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::after{background-color:currentColor;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}html.theme--documenter-dark .tag.is-delete:not(body)::before,html.theme--documenter-dark .content kbd.is-delete:not(body)::before,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::before{height:1px;width:50%}html.theme--documenter-dark .tag.is-delete:not(body)::after,html.theme--documenter-dark .content kbd.is-delete:not(body)::after,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::after{height:50%;width:1px}html.theme--documenter-dark .tag.is-delete:not(body):hover,html.theme--documenter-dark .content kbd.is-delete:not(body):hover,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):hover,html.theme--documenter-dark .tag.is-delete:not(body):focus,html.theme--documenter-dark .content kbd.is-delete:not(body):focus,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):focus{background-color:#1d2122}html.theme--documenter-dark .tag.is-delete:not(body):active,html.theme--documenter-dark .content kbd.is-delete:not(body):active,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):active{background-color:#111414}html.theme--documenter-dark .tag.is-rounded:not(body),html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:not(body),html.theme--documenter-dark .content kbd.is-rounded:not(body),html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-rounded:not(body){border-radius:290486px}html.theme--documenter-dark a.tag:hover,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:hover{text-decoration:underline}html.theme--documenter-dark .title,html.theme--documenter-dark .subtitle{word-break:break-word}html.theme--documenter-dark .title em,html.theme--documenter-dark .title span,html.theme--documenter-dark .subtitle em,html.theme--documenter-dark .subtitle span{font-weight:inherit}html.theme--documenter-dark .title sub,html.theme--documenter-dark .subtitle sub{font-size:.75em}html.theme--documenter-dark .title sup,html.theme--documenter-dark .subtitle sup{font-size:.75em}html.theme--documenter-dark .title .tag,html.theme--documenter-dark .title .content kbd,html.theme--documenter-dark .content .title kbd,html.theme--documenter-dark .title .docstring>section>a.docs-sourcelink,html.theme--documenter-dark .subtitle .tag,html.theme--documenter-dark .subtitle .content kbd,html.theme--documenter-dark .content .subtitle kbd,html.theme--documenter-dark .subtitle .docstring>section>a.docs-sourcelink{vertical-align:middle}html.theme--documenter-dark .title{color:#fff;font-size:2rem;font-weight:500;line-height:1.125}html.theme--documenter-dark .title strong{color:inherit;font-weight:inherit}html.theme--documenter-dark .title+.highlight{margin-top:-0.75rem}html.theme--documenter-dark .title:not(.is-spaced)+.subtitle{margin-top:-1.25rem}html.theme--documenter-dark .title.is-1{font-size:3rem}html.theme--documenter-dark .title.is-2{font-size:2.5rem}html.theme--documenter-dark .title.is-3{font-size:2rem}html.theme--documenter-dark .title.is-4{font-size:1.5rem}html.theme--documenter-dark .title.is-5{font-size:1.25rem}html.theme--documenter-dark .title.is-6{font-size:15px}html.theme--documenter-dark .title.is-7{font-size:.85em}html.theme--documenter-dark .subtitle{color:#8c9b9d;font-size:1.25rem;font-weight:400;line-height:1.25}html.theme--documenter-dark .subtitle strong{color:#8c9b9d;font-weight:600}html.theme--documenter-dark .subtitle:not(.is-spaced)+.title{margin-top:-1.25rem}html.theme--documenter-dark .subtitle.is-1{font-size:3rem}html.theme--documenter-dark .subtitle.is-2{font-size:2.5rem}html.theme--documenter-dark .subtitle.is-3{font-size:2rem}html.theme--documenter-dark .subtitle.is-4{font-size:1.5rem}html.theme--documenter-dark .subtitle.is-5{font-size:1.25rem}html.theme--documenter-dark .subtitle.is-6{font-size:15px}html.theme--documenter-dark .subtitle.is-7{font-size:.85em}html.theme--documenter-dark .heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}html.theme--documenter-dark .highlight{font-weight:400;max-width:100%;overflow:hidden;padding:0}html.theme--documenter-dark .highlight pre{overflow:auto;max-width:100%}html.theme--documenter-dark .number{align-items:center;background-color:#282f2f;border-radius:290486px;display:inline-flex;font-size:1.25rem;height:2em;justify-content:center;margin-right:1.5rem;min-width:2.5em;padding:0.25rem 0.5rem;text-align:center;vertical-align:top}html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{background-color:#1f2424;border-color:#5e6d6f;border-radius:.4em;color:#dbdee0}html.theme--documenter-dark .select select::-moz-placeholder,html.theme--documenter-dark .textarea::-moz-placeholder,html.theme--documenter-dark .input::-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select::-webkit-input-placeholder,html.theme--documenter-dark .textarea::-webkit-input-placeholder,html.theme--documenter-dark .input::-webkit-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select:-moz-placeholder,html.theme--documenter-dark .textarea:-moz-placeholder,html.theme--documenter-dark .input:-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select:-ms-input-placeholder,html.theme--documenter-dark .textarea:-ms-input-placeholder,html.theme--documenter-dark .input:-ms-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select:hover,html.theme--documenter-dark .textarea:hover,html.theme--documenter-dark .input:hover,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:hover,html.theme--documenter-dark .select select.is-hovered,html.theme--documenter-dark .is-hovered.textarea,html.theme--documenter-dark .is-hovered.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-hovered{border-color:#8c9b9d}html.theme--documenter-dark .select select:focus,html.theme--documenter-dark .textarea:focus,html.theme--documenter-dark .input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:focus,html.theme--documenter-dark .select select.is-focused,html.theme--documenter-dark .is-focused.textarea,html.theme--documenter-dark .is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .select select:active,html.theme--documenter-dark .textarea:active,html.theme--documenter-dark .input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:active,html.theme--documenter-dark .select select.is-active,html.theme--documenter-dark .is-active.textarea,html.theme--documenter-dark .is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{border-color:#1abc9c;box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .select select[disabled],html.theme--documenter-dark .textarea[disabled],html.theme--documenter-dark .input[disabled],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled],fieldset[disabled] html.theme--documenter-dark .select select,fieldset[disabled] html.theme--documenter-dark .textarea,fieldset[disabled] html.theme--documenter-dark .input,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{background-color:#8c9b9d;border-color:#282f2f;box-shadow:none;color:#fff}html.theme--documenter-dark .select select[disabled]::-moz-placeholder,html.theme--documenter-dark .textarea[disabled]::-moz-placeholder,html.theme--documenter-dark .input[disabled]::-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .select select::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .input::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]::-webkit-input-placeholder,html.theme--documenter-dark .textarea[disabled]::-webkit-input-placeholder,html.theme--documenter-dark .input[disabled]::-webkit-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .select select::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .input::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]:-moz-placeholder,html.theme--documenter-dark .textarea[disabled]:-moz-placeholder,html.theme--documenter-dark .input[disabled]:-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .select select:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .input:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]:-ms-input-placeholder,html.theme--documenter-dark .textarea[disabled]:-ms-input-placeholder,html.theme--documenter-dark .input[disabled]:-ms-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .select select:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .input:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{box-shadow:inset 0 1px 2px rgba(10,10,10,0.1);max-width:100%;width:100%}html.theme--documenter-dark .textarea[readonly],html.theme--documenter-dark .input[readonly],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[readonly]{box-shadow:none}html.theme--documenter-dark .is-white.textarea,html.theme--documenter-dark .is-white.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white{border-color:#fff}html.theme--documenter-dark .is-white.textarea:focus,html.theme--documenter-dark .is-white.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white:focus,html.theme--documenter-dark .is-white.is-focused.textarea,html.theme--documenter-dark .is-white.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-white.textarea:active,html.theme--documenter-dark .is-white.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white:active,html.theme--documenter-dark .is-white.is-active.textarea,html.theme--documenter-dark .is-white.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .is-black.textarea,html.theme--documenter-dark .is-black.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black{border-color:#0a0a0a}html.theme--documenter-dark .is-black.textarea:focus,html.theme--documenter-dark .is-black.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black:focus,html.theme--documenter-dark .is-black.is-focused.textarea,html.theme--documenter-dark .is-black.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-black.textarea:active,html.theme--documenter-dark .is-black.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black:active,html.theme--documenter-dark .is-black.is-active.textarea,html.theme--documenter-dark .is-black.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .is-light.textarea,html.theme--documenter-dark .is-light.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light{border-color:#ecf0f1}html.theme--documenter-dark .is-light.textarea:focus,html.theme--documenter-dark .is-light.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light:focus,html.theme--documenter-dark .is-light.is-focused.textarea,html.theme--documenter-dark .is-light.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-light.textarea:active,html.theme--documenter-dark .is-light.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light:active,html.theme--documenter-dark .is-light.is-active.textarea,html.theme--documenter-dark .is-light.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .is-dark.textarea,html.theme--documenter-dark .content kbd.textarea,html.theme--documenter-dark .is-dark.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark,html.theme--documenter-dark .content kbd.input{border-color:#282f2f}html.theme--documenter-dark .is-dark.textarea:focus,html.theme--documenter-dark .content kbd.textarea:focus,html.theme--documenter-dark .is-dark.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark:focus,html.theme--documenter-dark .content kbd.input:focus,html.theme--documenter-dark .is-dark.is-focused.textarea,html.theme--documenter-dark .content kbd.is-focused.textarea,html.theme--documenter-dark .is-dark.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .content kbd.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input.is-focused,html.theme--documenter-dark .is-dark.textarea:active,html.theme--documenter-dark .content kbd.textarea:active,html.theme--documenter-dark .is-dark.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark:active,html.theme--documenter-dark .content kbd.input:active,html.theme--documenter-dark .is-dark.is-active.textarea,html.theme--documenter-dark .content kbd.is-active.textarea,html.theme--documenter-dark .is-dark.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .content kbd.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .is-primary.textarea,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink{border-color:#375a7f}html.theme--documenter-dark .is-primary.textarea:focus,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink:focus,html.theme--documenter-dark .is-primary.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary:focus,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink:focus,html.theme--documenter-dark .is-primary.is-focused.textarea,html.theme--documenter-dark .docstring>section>a.is-focused.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .docstring>section>a.is-focused.input.docs-sourcelink,html.theme--documenter-dark .is-primary.textarea:active,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink:active,html.theme--documenter-dark .is-primary.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary:active,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink:active,html.theme--documenter-dark .is-primary.is-active.textarea,html.theme--documenter-dark .docstring>section>a.is-active.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .docstring>section>a.is-active.input.docs-sourcelink{box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .is-link.textarea,html.theme--documenter-dark .is-link.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link{border-color:#1abc9c}html.theme--documenter-dark .is-link.textarea:focus,html.theme--documenter-dark .is-link.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link:focus,html.theme--documenter-dark .is-link.is-focused.textarea,html.theme--documenter-dark .is-link.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-link.textarea:active,html.theme--documenter-dark .is-link.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link:active,html.theme--documenter-dark .is-link.is-active.textarea,html.theme--documenter-dark .is-link.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .is-info.textarea,html.theme--documenter-dark .is-info.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info{border-color:#024c7d}html.theme--documenter-dark .is-info.textarea:focus,html.theme--documenter-dark .is-info.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info:focus,html.theme--documenter-dark .is-info.is-focused.textarea,html.theme--documenter-dark .is-info.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-info.textarea:active,html.theme--documenter-dark .is-info.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info:active,html.theme--documenter-dark .is-info.is-active.textarea,html.theme--documenter-dark .is-info.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .is-success.textarea,html.theme--documenter-dark .is-success.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success{border-color:#008438}html.theme--documenter-dark .is-success.textarea:focus,html.theme--documenter-dark .is-success.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success:focus,html.theme--documenter-dark .is-success.is-focused.textarea,html.theme--documenter-dark .is-success.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-success.textarea:active,html.theme--documenter-dark .is-success.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success:active,html.theme--documenter-dark .is-success.is-active.textarea,html.theme--documenter-dark .is-success.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .is-warning.textarea,html.theme--documenter-dark .is-warning.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning{border-color:#ad8100}html.theme--documenter-dark .is-warning.textarea:focus,html.theme--documenter-dark .is-warning.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning:focus,html.theme--documenter-dark .is-warning.is-focused.textarea,html.theme--documenter-dark .is-warning.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-warning.textarea:active,html.theme--documenter-dark .is-warning.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning:active,html.theme--documenter-dark .is-warning.is-active.textarea,html.theme--documenter-dark .is-warning.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .is-danger.textarea,html.theme--documenter-dark .is-danger.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger{border-color:#9e1b0d}html.theme--documenter-dark .is-danger.textarea:focus,html.theme--documenter-dark .is-danger.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger:focus,html.theme--documenter-dark .is-danger.is-focused.textarea,html.theme--documenter-dark .is-danger.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-danger.textarea:active,html.theme--documenter-dark .is-danger.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger:active,html.theme--documenter-dark .is-danger.is-active.textarea,html.theme--documenter-dark .is-danger.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .is-small.textarea,html.theme--documenter-dark .is-small.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{border-radius:3px;font-size:.85em}html.theme--documenter-dark .is-medium.textarea,html.theme--documenter-dark .is-medium.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-medium{font-size:1.25rem}html.theme--documenter-dark .is-large.textarea,html.theme--documenter-dark .is-large.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-large{font-size:1.5rem}html.theme--documenter-dark .is-fullwidth.textarea,html.theme--documenter-dark .is-fullwidth.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-fullwidth{display:block;width:100%}html.theme--documenter-dark .is-inline.textarea,html.theme--documenter-dark .is-inline.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-inline{display:inline;width:auto}html.theme--documenter-dark .input.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{border-radius:290486px;padding-left:1em;padding-right:1em}html.theme--documenter-dark .input.is-static,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-static{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0}html.theme--documenter-dark .textarea{display:block;max-width:100%;min-width:100%;padding:0.625em;resize:vertical}html.theme--documenter-dark .textarea:not([rows]){max-height:600px;min-height:120px}html.theme--documenter-dark .textarea[rows]{height:initial}html.theme--documenter-dark .textarea.has-fixed-size{resize:none}html.theme--documenter-dark .radio,html.theme--documenter-dark .checkbox{cursor:pointer;display:inline-block;line-height:1.25;position:relative}html.theme--documenter-dark .radio input,html.theme--documenter-dark .checkbox input{cursor:pointer}html.theme--documenter-dark .radio:hover,html.theme--documenter-dark .checkbox:hover{color:#8c9b9d}html.theme--documenter-dark .radio[disabled],html.theme--documenter-dark .checkbox[disabled],fieldset[disabled] html.theme--documenter-dark .radio,fieldset[disabled] html.theme--documenter-dark .checkbox{color:#fff;cursor:not-allowed}html.theme--documenter-dark .radio+.radio{margin-left:0.5em}html.theme--documenter-dark .select{display:inline-block;max-width:100%;position:relative;vertical-align:top}html.theme--documenter-dark .select:not(.is-multiple){height:2.25em}html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after{border-color:#1abc9c;right:1.125em;z-index:4}html.theme--documenter-dark .select.is-rounded select,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.select select{border-radius:290486px;padding-left:1em}html.theme--documenter-dark .select select{cursor:pointer;display:block;font-size:1em;max-width:100%;outline:none}html.theme--documenter-dark .select select::-ms-expand{display:none}html.theme--documenter-dark .select select[disabled]:hover,fieldset[disabled] html.theme--documenter-dark .select select:hover{border-color:#282f2f}html.theme--documenter-dark .select select:not([multiple]){padding-right:2.5em}html.theme--documenter-dark .select select[multiple]{height:auto;padding:0}html.theme--documenter-dark .select select[multiple] option{padding:0.5em 1em}html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading):hover::after{border-color:#8c9b9d}html.theme--documenter-dark .select.is-white:not(:hover)::after{border-color:#fff}html.theme--documenter-dark .select.is-white select{border-color:#fff}html.theme--documenter-dark .select.is-white select:hover,html.theme--documenter-dark .select.is-white select.is-hovered{border-color:#f2f2f2}html.theme--documenter-dark .select.is-white select:focus,html.theme--documenter-dark .select.is-white select.is-focused,html.theme--documenter-dark .select.is-white select:active,html.theme--documenter-dark .select.is-white select.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .select.is-black:not(:hover)::after{border-color:#0a0a0a}html.theme--documenter-dark .select.is-black select{border-color:#0a0a0a}html.theme--documenter-dark .select.is-black select:hover,html.theme--documenter-dark .select.is-black select.is-hovered{border-color:#000}html.theme--documenter-dark .select.is-black select:focus,html.theme--documenter-dark .select.is-black select.is-focused,html.theme--documenter-dark .select.is-black select:active,html.theme--documenter-dark .select.is-black select.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .select.is-light:not(:hover)::after{border-color:#ecf0f1}html.theme--documenter-dark .select.is-light select{border-color:#ecf0f1}html.theme--documenter-dark .select.is-light select:hover,html.theme--documenter-dark .select.is-light select.is-hovered{border-color:#dde4e6}html.theme--documenter-dark .select.is-light select:focus,html.theme--documenter-dark .select.is-light select.is-focused,html.theme--documenter-dark .select.is-light select:active,html.theme--documenter-dark .select.is-light select.is-active{box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .select.is-dark:not(:hover)::after,html.theme--documenter-dark .content kbd.select:not(:hover)::after{border-color:#282f2f}html.theme--documenter-dark .select.is-dark select,html.theme--documenter-dark .content kbd.select select{border-color:#282f2f}html.theme--documenter-dark .select.is-dark select:hover,html.theme--documenter-dark .content kbd.select select:hover,html.theme--documenter-dark .select.is-dark select.is-hovered,html.theme--documenter-dark .content kbd.select select.is-hovered{border-color:#1d2122}html.theme--documenter-dark .select.is-dark select:focus,html.theme--documenter-dark .content kbd.select select:focus,html.theme--documenter-dark .select.is-dark select.is-focused,html.theme--documenter-dark .content kbd.select select.is-focused,html.theme--documenter-dark .select.is-dark select:active,html.theme--documenter-dark .content kbd.select select:active,html.theme--documenter-dark .select.is-dark select.is-active,html.theme--documenter-dark .content kbd.select select.is-active{box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .select.is-primary:not(:hover)::after,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink:not(:hover)::after{border-color:#375a7f}html.theme--documenter-dark .select.is-primary select,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select{border-color:#375a7f}html.theme--documenter-dark .select.is-primary select:hover,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:hover,html.theme--documenter-dark .select.is-primary select.is-hovered,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-hovered{border-color:#2f4d6d}html.theme--documenter-dark .select.is-primary select:focus,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:focus,html.theme--documenter-dark .select.is-primary select.is-focused,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-focused,html.theme--documenter-dark .select.is-primary select:active,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:active,html.theme--documenter-dark .select.is-primary select.is-active,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-active{box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .select.is-link:not(:hover)::after{border-color:#1abc9c}html.theme--documenter-dark .select.is-link select{border-color:#1abc9c}html.theme--documenter-dark .select.is-link select:hover,html.theme--documenter-dark .select.is-link select.is-hovered{border-color:#17a689}html.theme--documenter-dark .select.is-link select:focus,html.theme--documenter-dark .select.is-link select.is-focused,html.theme--documenter-dark .select.is-link select:active,html.theme--documenter-dark .select.is-link select.is-active{box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .select.is-info:not(:hover)::after{border-color:#024c7d}html.theme--documenter-dark .select.is-info select{border-color:#024c7d}html.theme--documenter-dark .select.is-info select:hover,html.theme--documenter-dark .select.is-info select.is-hovered{border-color:#023d64}html.theme--documenter-dark .select.is-info select:focus,html.theme--documenter-dark .select.is-info select.is-focused,html.theme--documenter-dark .select.is-info select:active,html.theme--documenter-dark .select.is-info select.is-active{box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .select.is-success:not(:hover)::after{border-color:#008438}html.theme--documenter-dark .select.is-success select{border-color:#008438}html.theme--documenter-dark .select.is-success select:hover,html.theme--documenter-dark .select.is-success select.is-hovered{border-color:#006b2d}html.theme--documenter-dark .select.is-success select:focus,html.theme--documenter-dark .select.is-success select.is-focused,html.theme--documenter-dark .select.is-success select:active,html.theme--documenter-dark .select.is-success select.is-active{box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .select.is-warning:not(:hover)::after{border-color:#ad8100}html.theme--documenter-dark .select.is-warning select{border-color:#ad8100}html.theme--documenter-dark .select.is-warning select:hover,html.theme--documenter-dark .select.is-warning select.is-hovered{border-color:#946e00}html.theme--documenter-dark .select.is-warning select:focus,html.theme--documenter-dark .select.is-warning select.is-focused,html.theme--documenter-dark .select.is-warning select:active,html.theme--documenter-dark .select.is-warning select.is-active{box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .select.is-danger:not(:hover)::after{border-color:#9e1b0d}html.theme--documenter-dark .select.is-danger select{border-color:#9e1b0d}html.theme--documenter-dark .select.is-danger select:hover,html.theme--documenter-dark .select.is-danger select.is-hovered{border-color:#86170b}html.theme--documenter-dark .select.is-danger select:focus,html.theme--documenter-dark .select.is-danger select.is-focused,html.theme--documenter-dark .select.is-danger select:active,html.theme--documenter-dark .select.is-danger select.is-active{box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .select.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.select{border-radius:3px;font-size:.85em}html.theme--documenter-dark .select.is-medium{font-size:1.25rem}html.theme--documenter-dark .select.is-large{font-size:1.5rem}html.theme--documenter-dark .select.is-disabled::after{border-color:#fff}html.theme--documenter-dark .select.is-fullwidth{width:100%}html.theme--documenter-dark .select.is-fullwidth select{width:100%}html.theme--documenter-dark .select.is-loading::after{margin-top:0;position:absolute;right:0.625em;top:0.625em;transform:none}html.theme--documenter-dark .select.is-loading.is-small:after,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.85em}html.theme--documenter-dark .select.is-loading.is-medium:after{font-size:1.25rem}html.theme--documenter-dark .select.is-loading.is-large:after{font-size:1.5rem}html.theme--documenter-dark .file{align-items:stretch;display:flex;justify-content:flex-start;position:relative}html.theme--documenter-dark .file.is-white .file-cta{background-color:#fff;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-white:hover .file-cta,html.theme--documenter-dark .file.is-white.is-hovered .file-cta{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-white:focus .file-cta,html.theme--documenter-dark .file.is-white.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,255,255,0.25);color:#0a0a0a}html.theme--documenter-dark .file.is-white:active .file-cta,html.theme--documenter-dark .file.is-white.is-active .file-cta{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-black .file-cta{background-color:#0a0a0a;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-black:hover .file-cta,html.theme--documenter-dark .file.is-black.is-hovered .file-cta{background-color:#040404;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-black:focus .file-cta,html.theme--documenter-dark .file.is-black.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(10,10,10,0.25);color:#fff}html.theme--documenter-dark .file.is-black:active .file-cta,html.theme--documenter-dark .file.is-black.is-active .file-cta{background-color:#000;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-light .file-cta{background-color:#ecf0f1;border-color:transparent;color:#282f2f}html.theme--documenter-dark .file.is-light:hover .file-cta,html.theme--documenter-dark .file.is-light.is-hovered .file-cta{background-color:#e5eaec;border-color:transparent;color:#282f2f}html.theme--documenter-dark .file.is-light:focus .file-cta,html.theme--documenter-dark .file.is-light.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(236,240,241,0.25);color:#282f2f}html.theme--documenter-dark .file.is-light:active .file-cta,html.theme--documenter-dark .file.is-light.is-active .file-cta{background-color:#dde4e6;border-color:transparent;color:#282f2f}html.theme--documenter-dark .file.is-dark .file-cta,html.theme--documenter-dark .content kbd.file .file-cta{background-color:#282f2f;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .file.is-dark:hover .file-cta,html.theme--documenter-dark .content kbd.file:hover .file-cta,html.theme--documenter-dark .file.is-dark.is-hovered .file-cta,html.theme--documenter-dark .content kbd.file.is-hovered .file-cta{background-color:#232829;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .file.is-dark:focus .file-cta,html.theme--documenter-dark .content kbd.file:focus .file-cta,html.theme--documenter-dark .file.is-dark.is-focused .file-cta,html.theme--documenter-dark .content kbd.file.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(40,47,47,0.25);color:#ecf0f1}html.theme--documenter-dark .file.is-dark:active .file-cta,html.theme--documenter-dark .content kbd.file:active .file-cta,html.theme--documenter-dark .file.is-dark.is-active .file-cta,html.theme--documenter-dark .content kbd.file.is-active .file-cta{background-color:#1d2122;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .file.is-primary .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink .file-cta{background-color:#375a7f;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-primary:hover .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:hover .file-cta,html.theme--documenter-dark .file.is-primary.is-hovered .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-hovered.docs-sourcelink .file-cta{background-color:#335476;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-primary:focus .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:focus .file-cta,html.theme--documenter-dark .file.is-primary.is-focused .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-focused.docs-sourcelink .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(55,90,127,0.25);color:#fff}html.theme--documenter-dark .file.is-primary:active .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:active .file-cta,html.theme--documenter-dark .file.is-primary.is-active .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-active.docs-sourcelink .file-cta{background-color:#2f4d6d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link .file-cta{background-color:#1abc9c;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link:hover .file-cta,html.theme--documenter-dark .file.is-link.is-hovered .file-cta{background-color:#18b193;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link:focus .file-cta,html.theme--documenter-dark .file.is-link.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(26,188,156,0.25);color:#fff}html.theme--documenter-dark .file.is-link:active .file-cta,html.theme--documenter-dark .file.is-link.is-active .file-cta{background-color:#17a689;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info .file-cta{background-color:#024c7d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info:hover .file-cta,html.theme--documenter-dark .file.is-info.is-hovered .file-cta{background-color:#024470;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info:focus .file-cta,html.theme--documenter-dark .file.is-info.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(2,76,125,0.25);color:#fff}html.theme--documenter-dark .file.is-info:active .file-cta,html.theme--documenter-dark .file.is-info.is-active .file-cta{background-color:#023d64;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success .file-cta{background-color:#008438;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success:hover .file-cta,html.theme--documenter-dark .file.is-success.is-hovered .file-cta{background-color:#073;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success:focus .file-cta,html.theme--documenter-dark .file.is-success.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(0,132,56,0.25);color:#fff}html.theme--documenter-dark .file.is-success:active .file-cta,html.theme--documenter-dark .file.is-success.is-active .file-cta{background-color:#006b2d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning .file-cta{background-color:#ad8100;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning:hover .file-cta,html.theme--documenter-dark .file.is-warning.is-hovered .file-cta{background-color:#a07700;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning:focus .file-cta,html.theme--documenter-dark .file.is-warning.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(173,129,0,0.25);color:#fff}html.theme--documenter-dark .file.is-warning:active .file-cta,html.theme--documenter-dark .file.is-warning.is-active .file-cta{background-color:#946e00;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger .file-cta{background-color:#9e1b0d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger:hover .file-cta,html.theme--documenter-dark .file.is-danger.is-hovered .file-cta{background-color:#92190c;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger:focus .file-cta,html.theme--documenter-dark .file.is-danger.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(158,27,13,0.25);color:#fff}html.theme--documenter-dark .file.is-danger:active .file-cta,html.theme--documenter-dark .file.is-danger.is-active .file-cta{background-color:#86170b;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.file{font-size:.85em}html.theme--documenter-dark .file.is-medium{font-size:1.25rem}html.theme--documenter-dark .file.is-medium .file-icon .fa{font-size:21px}html.theme--documenter-dark .file.is-large{font-size:1.5rem}html.theme--documenter-dark .file.is-large .file-icon .fa{font-size:28px}html.theme--documenter-dark .file.has-name .file-cta{border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .file.has-name .file-name{border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .file.has-name.is-empty .file-cta{border-radius:.4em}html.theme--documenter-dark .file.has-name.is-empty .file-name{display:none}html.theme--documenter-dark .file.is-boxed .file-label{flex-direction:column}html.theme--documenter-dark .file.is-boxed .file-cta{flex-direction:column;height:auto;padding:1em 3em}html.theme--documenter-dark .file.is-boxed .file-name{border-width:0 1px 1px}html.theme--documenter-dark .file.is-boxed .file-icon{height:1.5em;width:1.5em}html.theme--documenter-dark .file.is-boxed .file-icon .fa{font-size:21px}html.theme--documenter-dark .file.is-boxed.is-small .file-icon .fa,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-boxed .file-icon .fa{font-size:14px}html.theme--documenter-dark .file.is-boxed.is-medium .file-icon .fa{font-size:28px}html.theme--documenter-dark .file.is-boxed.is-large .file-icon .fa{font-size:35px}html.theme--documenter-dark .file.is-boxed.has-name .file-cta{border-radius:.4em .4em 0 0}html.theme--documenter-dark .file.is-boxed.has-name .file-name{border-radius:0 0 .4em .4em;border-width:0 1px 1px}html.theme--documenter-dark .file.is-centered{justify-content:center}html.theme--documenter-dark .file.is-fullwidth .file-label{width:100%}html.theme--documenter-dark .file.is-fullwidth .file-name{flex-grow:1;max-width:none}html.theme--documenter-dark .file.is-right{justify-content:flex-end}html.theme--documenter-dark .file.is-right .file-cta{border-radius:0 .4em .4em 0}html.theme--documenter-dark .file.is-right .file-name{border-radius:.4em 0 0 .4em;border-width:1px 0 1px 1px;order:-1}html.theme--documenter-dark .file-label{align-items:stretch;display:flex;cursor:pointer;justify-content:flex-start;overflow:hidden;position:relative}html.theme--documenter-dark .file-label:hover .file-cta{background-color:#e5eaec;color:#282f2f}html.theme--documenter-dark .file-label:hover .file-name{border-color:#596668}html.theme--documenter-dark .file-label:active .file-cta{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .file-label:active .file-name{border-color:#535f61}html.theme--documenter-dark .file-input{height:100%;left:0;opacity:0;outline:none;position:absolute;top:0;width:100%}html.theme--documenter-dark .file-cta,html.theme--documenter-dark .file-name{border-color:#5e6d6f;border-radius:.4em;font-size:1em;padding-left:1em;padding-right:1em;white-space:nowrap}html.theme--documenter-dark .file-cta{background-color:#ecf0f1;color:#343c3d}html.theme--documenter-dark .file-name{border-color:#5e6d6f;border-style:solid;border-width:1px 1px 1px 0;display:block;max-width:16em;overflow:hidden;text-align:left;text-overflow:ellipsis}html.theme--documenter-dark .file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-right:0.5em;width:1em}html.theme--documenter-dark .file-icon .fa{font-size:14px}html.theme--documenter-dark .label{color:#282f2f;display:block;font-size:15px;font-weight:700}html.theme--documenter-dark .label:not(:last-child){margin-bottom:0.5em}html.theme--documenter-dark .label.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.label{font-size:.85em}html.theme--documenter-dark .label.is-medium{font-size:1.25rem}html.theme--documenter-dark .label.is-large{font-size:1.5rem}html.theme--documenter-dark .help{display:block;font-size:.85em;margin-top:0.25rem}html.theme--documenter-dark .help.is-white{color:#fff}html.theme--documenter-dark .help.is-black{color:#0a0a0a}html.theme--documenter-dark .help.is-light{color:#ecf0f1}html.theme--documenter-dark .help.is-dark,html.theme--documenter-dark .content kbd.help{color:#282f2f}html.theme--documenter-dark .help.is-primary,html.theme--documenter-dark .docstring>section>a.help.docs-sourcelink{color:#375a7f}html.theme--documenter-dark .help.is-link{color:#1abc9c}html.theme--documenter-dark .help.is-info{color:#024c7d}html.theme--documenter-dark .help.is-success{color:#008438}html.theme--documenter-dark .help.is-warning{color:#ad8100}html.theme--documenter-dark .help.is-danger{color:#9e1b0d}html.theme--documenter-dark .field:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .field.has-addons{display:flex;justify-content:flex-start}html.theme--documenter-dark .field.has-addons .control:not(:last-child){margin-right:-1px}html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .button,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .input,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .select select{border-radius:0}html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .button,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .input,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .select select{border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .button,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .input,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .select select{border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .button.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-hovered:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select.is-hovered:not([disabled]){z-index:2}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]){z-index:3}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus:hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active:hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]):hover{z-index:4}html.theme--documenter-dark .field.has-addons .control.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .field.has-addons.has-addons-centered{justify-content:center}html.theme--documenter-dark .field.has-addons.has-addons-right{justify-content:flex-end}html.theme--documenter-dark .field.has-addons.has-addons-fullwidth .control{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .field.is-grouped{display:flex;justify-content:flex-start}html.theme--documenter-dark .field.is-grouped>.control{flex-shrink:0}html.theme--documenter-dark .field.is-grouped>.control:not(:last-child){margin-bottom:0;margin-right:0.75rem}html.theme--documenter-dark .field.is-grouped>.control.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .field.is-grouped.is-grouped-centered{justify-content:center}html.theme--documenter-dark .field.is-grouped.is-grouped-right{justify-content:flex-end}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline{flex-wrap:wrap}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline>.control:last-child,html.theme--documenter-dark .field.is-grouped.is-grouped-multiline>.control:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:last-child{margin-bottom:-0.75rem}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:not(:last-child){margin-bottom:0}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field.is-horizontal{display:flex}}html.theme--documenter-dark .field-label .label{font-size:inherit}@media screen and (max-width: 768px){html.theme--documenter-dark .field-label{margin-bottom:0.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field-label{flex-basis:0;flex-grow:1;flex-shrink:0;margin-right:1.5rem;text-align:right}html.theme--documenter-dark .field-label.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.field-label{font-size:.85em;padding-top:0.375em}html.theme--documenter-dark .field-label.is-normal{padding-top:0.375em}html.theme--documenter-dark .field-label.is-medium{font-size:1.25rem;padding-top:0.375em}html.theme--documenter-dark .field-label.is-large{font-size:1.5rem;padding-top:0.375em}}html.theme--documenter-dark .field-body .field .field{margin-bottom:0}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field-body{display:flex;flex-basis:0;flex-grow:5;flex-shrink:1}html.theme--documenter-dark .field-body .field{margin-bottom:0}html.theme--documenter-dark .field-body>.field{flex-shrink:1}html.theme--documenter-dark .field-body>.field:not(.is-narrow){flex-grow:1}html.theme--documenter-dark .field-body>.field:not(:last-child){margin-right:0.75rem}}html.theme--documenter-dark .control{box-sizing:border-box;clear:both;font-size:15px;position:relative;text-align:left}html.theme--documenter-dark .control.has-icons-left .input:focus~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input:focus~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input:focus~.icon,html.theme--documenter-dark .control.has-icons-left .select:focus~.icon,html.theme--documenter-dark .control.has-icons-right .input:focus~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input:focus~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input:focus~.icon,html.theme--documenter-dark .control.has-icons-right .select:focus~.icon{color:#5e6d6f}html.theme--documenter-dark .control.has-icons-left .input.is-small~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-small~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-small~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-small~.icon{font-size:.85em}html.theme--documenter-dark .control.has-icons-left .input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-medium~.icon{font-size:1.25rem}html.theme--documenter-dark .control.has-icons-left .input.is-large~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-large~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-large~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-large~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-large~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-large~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-large~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-large~.icon{font-size:1.5rem}html.theme--documenter-dark .control.has-icons-left .icon,html.theme--documenter-dark .control.has-icons-right .icon{color:#dbdee0;height:2.25em;pointer-events:none;position:absolute;top:0;width:2.25em;z-index:4}html.theme--documenter-dark .control.has-icons-left .input,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input,html.theme--documenter-dark .control.has-icons-left .select select{padding-left:2.25em}html.theme--documenter-dark .control.has-icons-left .icon.is-left{left:0}html.theme--documenter-dark .control.has-icons-right .input,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input,html.theme--documenter-dark .control.has-icons-right .select select{padding-right:2.25em}html.theme--documenter-dark .control.has-icons-right .icon.is-right{right:0}html.theme--documenter-dark .control.is-loading::after{position:absolute !important;right:0.625em;top:0.625em;z-index:4}html.theme--documenter-dark .control.is-loading.is-small:after,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.85em}html.theme--documenter-dark .control.is-loading.is-medium:after{font-size:1.25rem}html.theme--documenter-dark .control.is-loading.is-large:after{font-size:1.5rem}html.theme--documenter-dark .breadcrumb{font-size:15px;white-space:nowrap}html.theme--documenter-dark .breadcrumb a{align-items:center;color:#1abc9c;display:flex;justify-content:center;padding:0 .75em}html.theme--documenter-dark .breadcrumb a:hover{color:#1dd2af}html.theme--documenter-dark .breadcrumb li{align-items:center;display:flex}html.theme--documenter-dark .breadcrumb li:first-child a{padding-left:0}html.theme--documenter-dark .breadcrumb li.is-active a{color:#f2f2f2;cursor:default;pointer-events:none}html.theme--documenter-dark .breadcrumb li+li::before{color:#8c9b9d;content:"\0002f"}html.theme--documenter-dark .breadcrumb ul,html.theme--documenter-dark .breadcrumb ol{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .breadcrumb .icon:first-child{margin-right:0.5em}html.theme--documenter-dark .breadcrumb .icon:last-child{margin-left:0.5em}html.theme--documenter-dark .breadcrumb.is-centered ol,html.theme--documenter-dark .breadcrumb.is-centered ul{justify-content:center}html.theme--documenter-dark .breadcrumb.is-right ol,html.theme--documenter-dark .breadcrumb.is-right ul{justify-content:flex-end}html.theme--documenter-dark .breadcrumb.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.breadcrumb{font-size:.85em}html.theme--documenter-dark .breadcrumb.is-medium{font-size:1.25rem}html.theme--documenter-dark .breadcrumb.is-large{font-size:1.5rem}html.theme--documenter-dark .breadcrumb.has-arrow-separator li+li::before{content:"\02192"}html.theme--documenter-dark .breadcrumb.has-bullet-separator li+li::before{content:"\02022"}html.theme--documenter-dark .breadcrumb.has-dot-separator li+li::before{content:"\000b7"}html.theme--documenter-dark .breadcrumb.has-succeeds-separator li+li::before{content:"\0227B"}html.theme--documenter-dark .card{background-color:#fff;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);color:#fff;max-width:100%;position:relative}html.theme--documenter-dark .card-header{background-color:rgba(0,0,0,0);align-items:stretch;box-shadow:0 1px 2px rgba(10,10,10,0.1);display:flex}html.theme--documenter-dark .card-header-title{align-items:center;color:#f2f2f2;display:flex;flex-grow:1;font-weight:700;padding:.75rem}html.theme--documenter-dark .card-header-title.is-centered{justify-content:center}html.theme--documenter-dark .card-header-icon{align-items:center;cursor:pointer;display:flex;justify-content:center;padding:.75rem}html.theme--documenter-dark .card-image{display:block;position:relative}html.theme--documenter-dark .card-content{background-color:rgba(0,0,0,0);padding:1.5rem}html.theme--documenter-dark .card-footer{background-color:rgba(0,0,0,0);border-top:1px solid #5e6d6f;align-items:stretch;display:flex}html.theme--documenter-dark .card-footer-item{align-items:center;display:flex;flex-basis:0;flex-grow:1;flex-shrink:0;justify-content:center;padding:.75rem}html.theme--documenter-dark .card-footer-item:not(:last-child){border-right:1px solid #5e6d6f}html.theme--documenter-dark .card .media:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .dropdown{display:inline-flex;position:relative;vertical-align:top}html.theme--documenter-dark .dropdown.is-active .dropdown-menu,html.theme--documenter-dark .dropdown.is-hoverable:hover .dropdown-menu{display:block}html.theme--documenter-dark .dropdown.is-right .dropdown-menu{left:auto;right:0}html.theme--documenter-dark .dropdown.is-up .dropdown-menu{bottom:100%;padding-bottom:4px;padding-top:initial;top:auto}html.theme--documenter-dark .dropdown-menu{display:none;left:0;min-width:12rem;padding-top:4px;position:absolute;top:100%;z-index:20}html.theme--documenter-dark .dropdown-content{background-color:#282f2f;border-radius:.4em;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);padding-bottom:.5rem;padding-top:.5rem}html.theme--documenter-dark .dropdown-item{color:#fff;display:block;font-size:0.875rem;line-height:1.5;padding:0.375rem 1rem;position:relative}html.theme--documenter-dark a.dropdown-item,html.theme--documenter-dark button.dropdown-item{padding-right:3rem;text-align:left;white-space:nowrap;width:100%}html.theme--documenter-dark a.dropdown-item:hover,html.theme--documenter-dark button.dropdown-item:hover{background-color:#282f2f;color:#0a0a0a}html.theme--documenter-dark a.dropdown-item.is-active,html.theme--documenter-dark button.dropdown-item.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .dropdown-divider{background-color:#5e6d6f;border:none;display:block;height:1px;margin:0.5rem 0}html.theme--documenter-dark .level{align-items:center;justify-content:space-between}html.theme--documenter-dark .level code{border-radius:.4em}html.theme--documenter-dark .level img{display:inline-block;vertical-align:top}html.theme--documenter-dark .level.is-mobile{display:flex}html.theme--documenter-dark .level.is-mobile .level-left,html.theme--documenter-dark .level.is-mobile .level-right{display:flex}html.theme--documenter-dark .level.is-mobile .level-left+.level-right{margin-top:0}html.theme--documenter-dark .level.is-mobile .level-item:not(:last-child){margin-bottom:0;margin-right:.75rem}html.theme--documenter-dark .level.is-mobile .level-item:not(.is-narrow){flex-grow:1}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level{display:flex}html.theme--documenter-dark .level>.level-item:not(.is-narrow){flex-grow:1}}html.theme--documenter-dark .level-item{align-items:center;display:flex;flex-basis:auto;flex-grow:0;flex-shrink:0;justify-content:center}html.theme--documenter-dark .level-item .title,html.theme--documenter-dark .level-item .subtitle{margin-bottom:0}@media screen and (max-width: 768px){html.theme--documenter-dark .level-item:not(:last-child){margin-bottom:.75rem}}html.theme--documenter-dark .level-left,html.theme--documenter-dark .level-right{flex-basis:auto;flex-grow:0;flex-shrink:0}html.theme--documenter-dark .level-left .level-item.is-flexible,html.theme--documenter-dark .level-right .level-item.is-flexible{flex-grow:1}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-left .level-item:not(:last-child),html.theme--documenter-dark .level-right .level-item:not(:last-child){margin-right:.75rem}}html.theme--documenter-dark .level-left{align-items:center;justify-content:flex-start}@media screen and (max-width: 768px){html.theme--documenter-dark .level-left+.level-right{margin-top:1.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-left{display:flex}}html.theme--documenter-dark .level-right{align-items:center;justify-content:flex-end}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-right{display:flex}}html.theme--documenter-dark .list{background-color:#fff;border-radius:.4em;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1)}html.theme--documenter-dark .list-item{display:block;padding:0.5em 1em}html.theme--documenter-dark .list-item:not(a){color:#fff}html.theme--documenter-dark .list-item:first-child{border-top-left-radius:.4em;border-top-right-radius:.4em}html.theme--documenter-dark .list-item:last-child{border-bottom-left-radius:.4em;border-bottom-right-radius:.4em}html.theme--documenter-dark .list-item:not(:last-child){border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .list-item.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark a.list-item{background-color:#282f2f;cursor:pointer}html.theme--documenter-dark .media{align-items:flex-start;display:flex;text-align:left}html.theme--documenter-dark .media .content:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .media .media{border-top:1px solid rgba(94,109,111,0.5);display:flex;padding-top:0.75rem}html.theme--documenter-dark .media .media .content:not(:last-child),html.theme--documenter-dark .media .media .control:not(:last-child){margin-bottom:0.5rem}html.theme--documenter-dark .media .media .media{padding-top:0.5rem}html.theme--documenter-dark .media .media .media+.media{margin-top:0.5rem}html.theme--documenter-dark .media+.media{border-top:1px solid rgba(94,109,111,0.5);margin-top:1rem;padding-top:1rem}html.theme--documenter-dark .media.is-large+.media{margin-top:1.5rem;padding-top:1.5rem}html.theme--documenter-dark .media-left,html.theme--documenter-dark .media-right{flex-basis:auto;flex-grow:0;flex-shrink:0}html.theme--documenter-dark .media-left{margin-right:1rem}html.theme--documenter-dark .media-right{margin-left:1rem}html.theme--documenter-dark .media-content{flex-basis:auto;flex-grow:1;flex-shrink:1;text-align:left}@media screen and (max-width: 768px){html.theme--documenter-dark .media-content{overflow-x:auto}}html.theme--documenter-dark .menu{font-size:15px}html.theme--documenter-dark .menu.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.menu{font-size:.85em}html.theme--documenter-dark .menu.is-medium{font-size:1.25rem}html.theme--documenter-dark .menu.is-large{font-size:1.5rem}html.theme--documenter-dark .menu-list{line-height:1.25}html.theme--documenter-dark .menu-list a{border-radius:3px;color:#fff;display:block;padding:0.5em 0.75em}html.theme--documenter-dark .menu-list a:hover{background-color:#282f2f;color:#f2f2f2}html.theme--documenter-dark .menu-list a.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .menu-list li ul{border-left:1px solid #5e6d6f;margin:.75em;padding-left:.75em}html.theme--documenter-dark .menu-label{color:#fff;font-size:.75em;letter-spacing:.1em;text-transform:uppercase}html.theme--documenter-dark .menu-label:not(:first-child){margin-top:1em}html.theme--documenter-dark .menu-label:not(:last-child){margin-bottom:1em}html.theme--documenter-dark .message{background-color:#282f2f;border-radius:.4em;font-size:15px}html.theme--documenter-dark .message strong{color:currentColor}html.theme--documenter-dark .message a:not(.button):not(.tag):not(.dropdown-item){color:currentColor;text-decoration:underline}html.theme--documenter-dark .message.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.message{font-size:.85em}html.theme--documenter-dark .message.is-medium{font-size:1.25rem}html.theme--documenter-dark .message.is-large{font-size:1.5rem}html.theme--documenter-dark .message.is-white{background-color:#fff}html.theme--documenter-dark .message.is-white .message-header{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .message.is-white .message-body{border-color:#fff;color:#4d4d4d}html.theme--documenter-dark .message.is-black{background-color:#fafafa}html.theme--documenter-dark .message.is-black .message-header{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .message.is-black .message-body{border-color:#0a0a0a;color:#090909}html.theme--documenter-dark .message.is-light{background-color:#f9fafb}html.theme--documenter-dark .message.is-light .message-header{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .message.is-light .message-body{border-color:#ecf0f1;color:#505050}html.theme--documenter-dark .message.is-dark,html.theme--documenter-dark .content kbd.message{background-color:#f9fafa}html.theme--documenter-dark .message.is-dark .message-header,html.theme--documenter-dark .content kbd.message .message-header{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .message.is-dark .message-body,html.theme--documenter-dark .content kbd.message .message-body{border-color:#282f2f;color:#212526}html.theme--documenter-dark .message.is-primary,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink{background-color:#f8fafc}html.theme--documenter-dark .message.is-primary .message-header,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink .message-header{background-color:#375a7f;color:#fff}html.theme--documenter-dark .message.is-primary .message-body,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink .message-body{border-color:#375a7f;color:#2b4159}html.theme--documenter-dark .message.is-link{background-color:#f6fefc}html.theme--documenter-dark .message.is-link .message-header{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .message.is-link .message-body{border-color:#1abc9c;color:#0b2f28}html.theme--documenter-dark .message.is-info{background-color:#f5fbff}html.theme--documenter-dark .message.is-info .message-header{background-color:#024c7d;color:#fff}html.theme--documenter-dark .message.is-info .message-body{border-color:#024c7d;color:#033659}html.theme--documenter-dark .message.is-success{background-color:#f5fff9}html.theme--documenter-dark .message.is-success .message-header{background-color:#008438;color:#fff}html.theme--documenter-dark .message.is-success .message-body{border-color:#008438;color:#023518}html.theme--documenter-dark .message.is-warning{background-color:#fffcf5}html.theme--documenter-dark .message.is-warning .message-header{background-color:#ad8100;color:#fff}html.theme--documenter-dark .message.is-warning .message-body{border-color:#ad8100;color:#3d2e03}html.theme--documenter-dark .message.is-danger{background-color:#fef6f6}html.theme--documenter-dark .message.is-danger .message-header{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .message.is-danger .message-body{border-color:#9e1b0d;color:#7a170c}html.theme--documenter-dark .message-header{align-items:center;background-color:#fff;border-radius:.4em .4em 0 0;color:rgba(0,0,0,0.7);display:flex;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.75em 1em;position:relative}html.theme--documenter-dark .message-header .delete{flex-grow:0;flex-shrink:0;margin-left:0.75em}html.theme--documenter-dark .message-header+.message-body{border-width:0;border-top-left-radius:0;border-top-right-radius:0}html.theme--documenter-dark .message-body{border-color:#5e6d6f;border-radius:.4em;border-style:solid;border-width:0 0 0 4px;color:#fff;padding:1.25em 1.5em}html.theme--documenter-dark .message-body code,html.theme--documenter-dark .message-body pre{background-color:#fff}html.theme--documenter-dark .message-body pre code{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .modal{align-items:center;display:none;flex-direction:column;justify-content:center;overflow:hidden;position:fixed;z-index:40}html.theme--documenter-dark .modal.is-active{display:flex}html.theme--documenter-dark .modal-background{background-color:rgba(10,10,10,0.86)}html.theme--documenter-dark .modal-content,html.theme--documenter-dark .modal-card{margin:0 20px;max-height:calc(100vh - 160px);overflow:auto;position:relative;width:100%}@media screen and (min-width: 769px),print{html.theme--documenter-dark .modal-content,html.theme--documenter-dark .modal-card{margin:0 auto;max-height:calc(100vh - 40px);width:640px}}html.theme--documenter-dark .modal-close{background:none;height:40px;position:fixed;right:20px;top:20px;width:40px}html.theme--documenter-dark .modal-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden;-ms-overflow-y:visible}html.theme--documenter-dark .modal-card-head,html.theme--documenter-dark .modal-card-foot{align-items:center;background-color:#282f2f;display:flex;flex-shrink:0;justify-content:flex-start;padding:20px;position:relative}html.theme--documenter-dark .modal-card-head{border-bottom:1px solid #5e6d6f;border-top-left-radius:8px;border-top-right-radius:8px}html.theme--documenter-dark .modal-card-title{color:#f2f2f2;flex-grow:1;flex-shrink:0;font-size:1.5rem;line-height:1}html.theme--documenter-dark .modal-card-foot{border-bottom-left-radius:8px;border-bottom-right-radius:8px;border-top:1px solid #5e6d6f}html.theme--documenter-dark .modal-card-foot .button:not(:last-child){margin-right:0.5em}html.theme--documenter-dark .modal-card-body{-webkit-overflow-scrolling:touch;background-color:#fff;flex-grow:1;flex-shrink:1;overflow:auto;padding:20px}html.theme--documenter-dark .navbar{background-color:#375a7f;min-height:4rem;position:relative;z-index:30}html.theme--documenter-dark .navbar.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link{color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link::after{border-color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-burger{color:#0a0a0a}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-white .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link{color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link::after{border-color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-dropdown a.navbar-item.is-active{background-color:#fff;color:#0a0a0a}}html.theme--documenter-dark .navbar.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-black .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-dropdown a.navbar-item.is-active{background-color:#0a0a0a;color:#fff}}html.theme--documenter-dark .navbar.is-light{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link{color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link.is-active{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link::after{border-color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-burger{color:#282f2f}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-light .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link{color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link.is-active{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link::after{border-color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#ecf0f1;color:#282f2f}}html.theme--documenter-dark .navbar.is-dark,html.theme--documenter-dark .content kbd.navbar{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-brand>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link{color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link.is-active{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link::after{border-color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-burger,html.theme--documenter-dark .content kbd.navbar .navbar-burger{color:#ecf0f1}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-dark .navbar-start>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-end>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link{color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link.is-active{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link::after{border-color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-dropdown a.navbar-item.is-active{background-color:#282f2f;color:#ecf0f1}}html.theme--documenter-dark .navbar.is-primary,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-burger,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-primary .navbar-start>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-end>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#375a7f;color:#fff}}html.theme--documenter-dark .navbar.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-link .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-dropdown a.navbar-item.is-active{background-color:#1abc9c;color:#fff}}html.theme--documenter-dark .navbar.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-info .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#024c7d;color:#fff}}html.theme--documenter-dark .navbar.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-success .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-dropdown a.navbar-item.is-active{background-color:#008438;color:#fff}}html.theme--documenter-dark .navbar.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-warning .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-dropdown a.navbar-item.is-active{background-color:#ad8100;color:#fff}}html.theme--documenter-dark .navbar.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-danger .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-dropdown a.navbar-item.is-active{background-color:#9e1b0d;color:#fff}}html.theme--documenter-dark .navbar>.container{align-items:stretch;display:flex;min-height:4rem;width:100%}html.theme--documenter-dark .navbar.has-shadow{box-shadow:0 2px 0 0 #282f2f}html.theme--documenter-dark .navbar.is-fixed-bottom,html.theme--documenter-dark .navbar.is-fixed-top{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom.has-shadow{box-shadow:0 -2px 0 0 #282f2f}html.theme--documenter-dark .navbar.is-fixed-top{top:0}html.theme--documenter-dark html.has-navbar-fixed-top,html.theme--documenter-dark body.has-navbar-fixed-top{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom,html.theme--documenter-dark body.has-navbar-fixed-bottom{padding-bottom:4rem}html.theme--documenter-dark .navbar-brand,html.theme--documenter-dark .navbar-tabs{align-items:stretch;display:flex;flex-shrink:0;min-height:4rem}html.theme--documenter-dark .navbar-brand a.navbar-item:focus,html.theme--documenter-dark .navbar-brand a.navbar-item:hover{background-color:transparent}html.theme--documenter-dark .navbar-tabs{-webkit-overflow-scrolling:touch;max-width:100vw;overflow-x:auto;overflow-y:hidden}html.theme--documenter-dark .navbar-burger{color:#fff;cursor:pointer;display:block;height:4rem;position:relative;width:4rem;margin-left:auto}html.theme--documenter-dark .navbar-burger span{background-color:currentColor;display:block;height:1px;left:calc(50% - 8px);position:absolute;transform-origin:center;transition-duration:86ms;transition-property:background-color, opacity, transform;transition-timing-function:ease-out;width:16px}html.theme--documenter-dark .navbar-burger span:nth-child(1){top:calc(50% - 6px)}html.theme--documenter-dark .navbar-burger span:nth-child(2){top:calc(50% - 1px)}html.theme--documenter-dark .navbar-burger span:nth-child(3){top:calc(50% + 4px)}html.theme--documenter-dark .navbar-burger:hover{background-color:rgba(0,0,0,0.05)}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(1){transform:translateY(5px) rotate(45deg)}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(2){opacity:0}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}html.theme--documenter-dark .navbar-menu{display:none}html.theme--documenter-dark .navbar-item,html.theme--documenter-dark .navbar-link{color:#fff;display:block;line-height:1.5;padding:0.5rem 0.75rem;position:relative}html.theme--documenter-dark .navbar-item .icon:only-child,html.theme--documenter-dark .navbar-link .icon:only-child{margin-left:-0.25rem;margin-right:-0.25rem}html.theme--documenter-dark a.navbar-item,html.theme--documenter-dark .navbar-link{cursor:pointer}html.theme--documenter-dark a.navbar-item:focus,html.theme--documenter-dark a.navbar-item:focus-within,html.theme--documenter-dark a.navbar-item:hover,html.theme--documenter-dark a.navbar-item.is-active,html.theme--documenter-dark .navbar-link:focus,html.theme--documenter-dark .navbar-link:focus-within,html.theme--documenter-dark .navbar-link:hover,html.theme--documenter-dark .navbar-link.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}html.theme--documenter-dark .navbar-item{display:block;flex-grow:0;flex-shrink:0}html.theme--documenter-dark .navbar-item img{max-height:1.75rem}html.theme--documenter-dark .navbar-item.has-dropdown{padding:0}html.theme--documenter-dark .navbar-item.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .navbar-item.is-tab{border-bottom:1px solid transparent;min-height:4rem;padding-bottom:calc(0.5rem - 1px)}html.theme--documenter-dark .navbar-item.is-tab:focus,html.theme--documenter-dark .navbar-item.is-tab:hover{background-color:rgba(0,0,0,0);border-bottom-color:#1abc9c}html.theme--documenter-dark .navbar-item.is-tab.is-active{background-color:rgba(0,0,0,0);border-bottom-color:#1abc9c;border-bottom-style:solid;border-bottom-width:3px;color:#1abc9c;padding-bottom:calc(0.5rem - 3px)}html.theme--documenter-dark .navbar-content{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .navbar-link:not(.is-arrowless){padding-right:2.5em}html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after{border-color:#fff;margin-top:-0.375em;right:1.125em}html.theme--documenter-dark .navbar-dropdown{font-size:0.875rem;padding-bottom:0.5rem;padding-top:0.5rem}html.theme--documenter-dark .navbar-dropdown .navbar-item{padding-left:1.5rem;padding-right:1.5rem}html.theme--documenter-dark .navbar-divider{background-color:rgba(0,0,0,0.2);border:none;display:none;height:2px;margin:0.5rem 0}@media screen and (max-width: 1055px){html.theme--documenter-dark .navbar>.container{display:block}html.theme--documenter-dark .navbar-brand .navbar-item,html.theme--documenter-dark .navbar-tabs .navbar-item{align-items:center;display:flex}html.theme--documenter-dark .navbar-link::after{display:none}html.theme--documenter-dark .navbar-menu{background-color:#375a7f;box-shadow:0 8px 16px rgba(10,10,10,0.1);padding:0.5rem 0}html.theme--documenter-dark .navbar-menu.is-active{display:block}html.theme--documenter-dark .navbar.is-fixed-bottom-touch,html.theme--documenter-dark .navbar.is-fixed-top-touch{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom-touch{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom-touch.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}html.theme--documenter-dark .navbar.is-fixed-top-touch{top:0}html.theme--documenter-dark .navbar.is-fixed-top .navbar-menu,html.theme--documenter-dark .navbar.is-fixed-top-touch .navbar-menu{-webkit-overflow-scrolling:touch;max-height:calc(100vh - 4rem);overflow:auto}html.theme--documenter-dark html.has-navbar-fixed-top-touch,html.theme--documenter-dark body.has-navbar-fixed-top-touch{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom-touch,html.theme--documenter-dark body.has-navbar-fixed-bottom-touch{padding-bottom:4rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar,html.theme--documenter-dark .navbar-menu,html.theme--documenter-dark .navbar-start,html.theme--documenter-dark .navbar-end{align-items:stretch;display:flex}html.theme--documenter-dark .navbar{min-height:4rem}html.theme--documenter-dark .navbar.is-spaced{padding:1rem 2rem}html.theme--documenter-dark .navbar.is-spaced .navbar-start,html.theme--documenter-dark .navbar.is-spaced .navbar-end{align-items:center}html.theme--documenter-dark .navbar.is-spaced a.navbar-item,html.theme--documenter-dark .navbar.is-spaced .navbar-link{border-radius:.4em}html.theme--documenter-dark .navbar.is-transparent a.navbar-item:focus,html.theme--documenter-dark .navbar.is-transparent a.navbar-item:hover,html.theme--documenter-dark .navbar.is-transparent a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-transparent .navbar-link:focus,html.theme--documenter-dark .navbar.is-transparent .navbar-link:hover,html.theme--documenter-dark .navbar.is-transparent .navbar-link.is-active{background-color:transparent !important}html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link{background-color:transparent !important}html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:focus,html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:hover{background-color:rgba(0,0,0,0);color:#dbdee0}html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}html.theme--documenter-dark .navbar-burger{display:none}html.theme--documenter-dark .navbar-item,html.theme--documenter-dark .navbar-link{align-items:center;display:flex}html.theme--documenter-dark .navbar-item{display:flex}html.theme--documenter-dark .navbar-item.has-dropdown{align-items:stretch}html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-link::after{transform:rotate(135deg) translate(0.25em, -0.25em)}html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-dropdown{border-bottom:1px solid rgba(0,0,0,0.2);border-radius:8px 8px 0 0;border-top:none;bottom:100%;box-shadow:0 -8px 8px rgba(10,10,10,0.1);top:auto}html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown{display:block}.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed{opacity:1;pointer-events:auto;transform:translateY(0)}html.theme--documenter-dark .navbar-menu{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .navbar-start{justify-content:flex-start;margin-right:auto}html.theme--documenter-dark .navbar-end{justify-content:flex-end;margin-left:auto}html.theme--documenter-dark .navbar-dropdown{background-color:#375a7f;border-bottom-left-radius:8px;border-bottom-right-radius:8px;border-top:1px solid rgba(0,0,0,0.2);box-shadow:0 8px 8px rgba(10,10,10,0.1);display:none;font-size:0.875rem;left:0;min-width:100%;position:absolute;top:100%;z-index:20}html.theme--documenter-dark .navbar-dropdown .navbar-item{padding:0.375rem 1rem;white-space:nowrap}html.theme--documenter-dark .navbar-dropdown a.navbar-item{padding-right:3rem}html.theme--documenter-dark .navbar-dropdown a.navbar-item:focus,html.theme--documenter-dark .navbar-dropdown a.navbar-item:hover{background-color:rgba(0,0,0,0);color:#dbdee0}html.theme--documenter-dark .navbar-dropdown a.navbar-item.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}.navbar.is-spaced html.theme--documenter-dark .navbar-dropdown,html.theme--documenter-dark .navbar-dropdown.is-boxed{border-radius:8px;border-top:none;box-shadow:0 8px 8px rgba(10,10,10,0.1), 0 0 0 1px rgba(10,10,10,0.1);display:block;opacity:0;pointer-events:none;top:calc(100% + (-4px));transform:translateY(-5px);transition-duration:86ms;transition-property:opacity, transform}html.theme--documenter-dark .navbar-dropdown.is-right{left:auto;right:0}html.theme--documenter-dark .navbar-divider{display:block}html.theme--documenter-dark .navbar>.container .navbar-brand,html.theme--documenter-dark .container>.navbar .navbar-brand{margin-left:-.75rem}html.theme--documenter-dark .navbar>.container .navbar-menu,html.theme--documenter-dark .container>.navbar .navbar-menu{margin-right:-.75rem}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop,html.theme--documenter-dark .navbar.is-fixed-top-desktop{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}html.theme--documenter-dark .navbar.is-fixed-top-desktop{top:0}html.theme--documenter-dark html.has-navbar-fixed-top-desktop,html.theme--documenter-dark body.has-navbar-fixed-top-desktop{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom-desktop,html.theme--documenter-dark body.has-navbar-fixed-bottom-desktop{padding-bottom:4rem}html.theme--documenter-dark html.has-spaced-navbar-fixed-top,html.theme--documenter-dark body.has-spaced-navbar-fixed-top{padding-top:6rem}html.theme--documenter-dark html.has-spaced-navbar-fixed-bottom,html.theme--documenter-dark body.has-spaced-navbar-fixed-bottom{padding-bottom:6rem}html.theme--documenter-dark a.navbar-item.is-active,html.theme--documenter-dark .navbar-link.is-active{color:#1abc9c}html.theme--documenter-dark a.navbar-item.is-active:not(:focus):not(:hover),html.theme--documenter-dark .navbar-link.is-active:not(:focus):not(:hover){background-color:rgba(0,0,0,0)}html.theme--documenter-dark .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar-item.has-dropdown.is-active .navbar-link{background-color:rgba(0,0,0,0)}}html.theme--documenter-dark .hero.is-fullheight-with-navbar{min-height:calc(100vh - 4rem)}html.theme--documenter-dark .pagination{font-size:15px;margin:-.25rem}html.theme--documenter-dark .pagination.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination{font-size:.85em}html.theme--documenter-dark .pagination.is-medium{font-size:1.25rem}html.theme--documenter-dark .pagination.is-large{font-size:1.5rem}html.theme--documenter-dark .pagination.is-rounded .pagination-previous,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-previous,html.theme--documenter-dark .pagination.is-rounded .pagination-next,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-next{padding-left:1em;padding-right:1em;border-radius:290486px}html.theme--documenter-dark .pagination.is-rounded .pagination-link,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-link{border-radius:290486px}html.theme--documenter-dark .pagination,html.theme--documenter-dark .pagination-list{align-items:center;display:flex;justify-content:center;text-align:center}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis{font-size:1em;justify-content:center;margin:.25rem;padding-left:.5em;padding-right:.5em;text-align:center}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link{border-color:#5e6d6f;color:#1abc9c;min-width:2.25em}html.theme--documenter-dark .pagination-previous:hover,html.theme--documenter-dark .pagination-next:hover,html.theme--documenter-dark .pagination-link:hover{border-color:#8c9b9d;color:#1dd2af}html.theme--documenter-dark .pagination-previous:focus,html.theme--documenter-dark .pagination-next:focus,html.theme--documenter-dark .pagination-link:focus{border-color:#8c9b9d}html.theme--documenter-dark .pagination-previous:active,html.theme--documenter-dark .pagination-next:active,html.theme--documenter-dark .pagination-link:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2)}html.theme--documenter-dark .pagination-previous[disabled],html.theme--documenter-dark .pagination-next[disabled],html.theme--documenter-dark .pagination-link[disabled]{background-color:#dbdee0;border-color:#dbdee0;box-shadow:none;color:#5e6d6f;opacity:0.5}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next{padding-left:0.75em;padding-right:0.75em;white-space:nowrap}html.theme--documenter-dark .pagination-link.is-current{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .pagination-ellipsis{color:#8c9b9d;pointer-events:none}html.theme--documenter-dark .pagination-list{flex-wrap:wrap}@media screen and (max-width: 768px){html.theme--documenter-dark .pagination{flex-wrap:wrap}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .pagination-list li{flex-grow:1;flex-shrink:1}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .pagination-list{flex-grow:1;flex-shrink:1;justify-content:flex-start;order:1}html.theme--documenter-dark .pagination-previous{order:2}html.theme--documenter-dark .pagination-next{order:3}html.theme--documenter-dark .pagination{justify-content:space-between}html.theme--documenter-dark .pagination.is-centered .pagination-previous{order:1}html.theme--documenter-dark .pagination.is-centered .pagination-list{justify-content:center;order:2}html.theme--documenter-dark .pagination.is-centered .pagination-next{order:3}html.theme--documenter-dark .pagination.is-right .pagination-previous{order:1}html.theme--documenter-dark .pagination.is-right .pagination-next{order:2}html.theme--documenter-dark .pagination.is-right .pagination-list{justify-content:flex-end;order:3}}html.theme--documenter-dark .panel{font-size:15px}html.theme--documenter-dark .panel:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .panel-heading,html.theme--documenter-dark .panel-tabs,html.theme--documenter-dark .panel-block{border-bottom:1px solid #5e6d6f;border-left:1px solid #5e6d6f;border-right:1px solid #5e6d6f}html.theme--documenter-dark .panel-heading:first-child,html.theme--documenter-dark .panel-tabs:first-child,html.theme--documenter-dark .panel-block:first-child{border-top:1px solid #5e6d6f}html.theme--documenter-dark .panel-heading{background-color:#282f2f;border-radius:.4em .4em 0 0;color:#f2f2f2;font-size:1.25em;font-weight:300;line-height:1.25;padding:0.5em 0.75em}html.theme--documenter-dark .panel-tabs{align-items:flex-end;display:flex;font-size:.875em;justify-content:center}html.theme--documenter-dark .panel-tabs a{border-bottom:1px solid #5e6d6f;margin-bottom:-1px;padding:0.5em}html.theme--documenter-dark .panel-tabs a.is-active{border-bottom-color:#343c3d;color:#17a689}html.theme--documenter-dark .panel-list a{color:#fff}html.theme--documenter-dark .panel-list a:hover{color:#1abc9c}html.theme--documenter-dark .panel-block{align-items:center;color:#f2f2f2;display:flex;justify-content:flex-start;padding:0.5em 0.75em}html.theme--documenter-dark .panel-block input[type="checkbox"]{margin-right:0.75em}html.theme--documenter-dark .panel-block>.control{flex-grow:1;flex-shrink:1;width:100%}html.theme--documenter-dark .panel-block.is-wrapped{flex-wrap:wrap}html.theme--documenter-dark .panel-block.is-active{border-left-color:#1abc9c;color:#17a689}html.theme--documenter-dark .panel-block.is-active .panel-icon{color:#1abc9c}html.theme--documenter-dark a.panel-block,html.theme--documenter-dark label.panel-block{cursor:pointer}html.theme--documenter-dark a.panel-block:hover,html.theme--documenter-dark label.panel-block:hover{background-color:#282f2f}html.theme--documenter-dark .panel-icon{display:inline-block;font-size:14px;height:1em;line-height:1em;text-align:center;vertical-align:top;width:1em;color:#fff;margin-right:0.75em}html.theme--documenter-dark .panel-icon .fa{font-size:inherit;line-height:inherit}html.theme--documenter-dark .tabs{-webkit-overflow-scrolling:touch;align-items:stretch;display:flex;font-size:15px;justify-content:space-between;overflow:hidden;overflow-x:auto;white-space:nowrap}html.theme--documenter-dark .tabs a{align-items:center;border-bottom-color:#5e6d6f;border-bottom-style:solid;border-bottom-width:1px;color:#fff;display:flex;justify-content:center;margin-bottom:-1px;padding:0.5em 1em;vertical-align:top}html.theme--documenter-dark .tabs a:hover{border-bottom-color:#f2f2f2;color:#f2f2f2}html.theme--documenter-dark .tabs li{display:block}html.theme--documenter-dark .tabs li.is-active a{border-bottom-color:#1abc9c;color:#1abc9c}html.theme--documenter-dark .tabs ul{align-items:center;border-bottom-color:#5e6d6f;border-bottom-style:solid;border-bottom-width:1px;display:flex;flex-grow:1;flex-shrink:0;justify-content:flex-start}html.theme--documenter-dark .tabs ul.is-left{padding-right:0.75em}html.theme--documenter-dark .tabs ul.is-center{flex:none;justify-content:center;padding-left:0.75em;padding-right:0.75em}html.theme--documenter-dark .tabs ul.is-right{justify-content:flex-end;padding-left:0.75em}html.theme--documenter-dark .tabs .icon:first-child{margin-right:0.5em}html.theme--documenter-dark .tabs .icon:last-child{margin-left:0.5em}html.theme--documenter-dark .tabs.is-centered ul{justify-content:center}html.theme--documenter-dark .tabs.is-right ul{justify-content:flex-end}html.theme--documenter-dark .tabs.is-boxed a{border:1px solid transparent;border-radius:.4em .4em 0 0}html.theme--documenter-dark .tabs.is-boxed a:hover{background-color:#282f2f;border-bottom-color:#5e6d6f}html.theme--documenter-dark .tabs.is-boxed li.is-active a{background-color:#fff;border-color:#5e6d6f;border-bottom-color:rgba(0,0,0,0) !important}html.theme--documenter-dark .tabs.is-fullwidth li{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .tabs.is-toggle a{border-color:#5e6d6f;border-style:solid;border-width:1px;margin-bottom:0;position:relative}html.theme--documenter-dark .tabs.is-toggle a:hover{background-color:#282f2f;border-color:#8c9b9d;z-index:2}html.theme--documenter-dark .tabs.is-toggle li+li{margin-left:-1px}html.theme--documenter-dark .tabs.is-toggle li:first-child a{border-radius:.4em 0 0 .4em}html.theme--documenter-dark .tabs.is-toggle li:last-child a{border-radius:0 .4em .4em 0}html.theme--documenter-dark .tabs.is-toggle li.is-active a{background-color:#1abc9c;border-color:#1abc9c;color:#fff;z-index:1}html.theme--documenter-dark .tabs.is-toggle ul{border-bottom:none}html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:first-child a{border-bottom-left-radius:290486px;border-top-left-radius:290486px;padding-left:1.25em}html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:last-child a{border-bottom-right-radius:290486px;border-top-right-radius:290486px;padding-right:1.25em}html.theme--documenter-dark .tabs.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.tabs{font-size:.85em}html.theme--documenter-dark .tabs.is-medium{font-size:1.25rem}html.theme--documenter-dark .tabs.is-large{font-size:1.5rem}html.theme--documenter-dark .column{display:block;flex-basis:0;flex-grow:1;flex-shrink:1;padding:.75rem}.columns.is-mobile>html.theme--documenter-dark .column.is-narrow{flex:none}.columns.is-mobile>html.theme--documenter-dark .column.is-full{flex:none;width:100%}.columns.is-mobile>html.theme--documenter-dark .column.is-three-quarters{flex:none;width:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-two-thirds{flex:none;width:66.6666%}.columns.is-mobile>html.theme--documenter-dark .column.is-half{flex:none;width:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-third{flex:none;width:33.3333%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-quarter{flex:none;width:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-fifth{flex:none;width:20%}.columns.is-mobile>html.theme--documenter-dark .column.is-two-fifths{flex:none;width:40%}.columns.is-mobile>html.theme--documenter-dark .column.is-three-fifths{flex:none;width:60%}.columns.is-mobile>html.theme--documenter-dark .column.is-four-fifths{flex:none;width:80%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-three-quarters{margin-left:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-two-thirds{margin-left:66.6666%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-half{margin-left:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-third{margin-left:33.3333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-quarter{margin-left:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-fifth{margin-left:20%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-two-fifths{margin-left:40%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-three-fifths{margin-left:60%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-four-fifths{margin-left:80%}.columns.is-mobile>html.theme--documenter-dark .column.is-0{flex:none;width:0%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-0{margin-left:0%}.columns.is-mobile>html.theme--documenter-dark .column.is-1{flex:none;width:8.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-1{margin-left:8.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-2{flex:none;width:16.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-2{margin-left:16.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-3{flex:none;width:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-3{margin-left:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-4{flex:none;width:33.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-4{margin-left:33.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-5{flex:none;width:41.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-5{margin-left:41.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-6{flex:none;width:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-6{margin-left:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-7{flex:none;width:58.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-7{margin-left:58.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-8{flex:none;width:66.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-8{margin-left:66.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-9{flex:none;width:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-9{margin-left:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-10{flex:none;width:83.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-10{margin-left:83.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-11{flex:none;width:91.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-11{margin-left:91.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-12{flex:none;width:100%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-12{margin-left:100%}@media screen and (max-width: 768px){html.theme--documenter-dark .column.is-narrow-mobile{flex:none}html.theme--documenter-dark .column.is-full-mobile{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-mobile{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-mobile{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-mobile{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-mobile{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-mobile{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-mobile{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-mobile{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-mobile{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-mobile{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-mobile{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-mobile{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-mobile{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-mobile{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-mobile{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-mobile{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-mobile{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-mobile{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-mobile{margin-left:80%}html.theme--documenter-dark .column.is-0-mobile{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-mobile{margin-left:0%}html.theme--documenter-dark .column.is-1-mobile{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-mobile{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-mobile{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-mobile{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-mobile{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-mobile{margin-left:25%}html.theme--documenter-dark .column.is-4-mobile{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-mobile{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-mobile{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-mobile{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-mobile{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-mobile{margin-left:50%}html.theme--documenter-dark .column.is-7-mobile{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-mobile{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-mobile{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-mobile{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-mobile{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-mobile{margin-left:75%}html.theme--documenter-dark .column.is-10-mobile{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-mobile{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-mobile{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-mobile{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-mobile{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-mobile{margin-left:100%}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .column.is-narrow,html.theme--documenter-dark .column.is-narrow-tablet{flex:none}html.theme--documenter-dark .column.is-full,html.theme--documenter-dark .column.is-full-tablet{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters,html.theme--documenter-dark .column.is-three-quarters-tablet{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds,html.theme--documenter-dark .column.is-two-thirds-tablet{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half,html.theme--documenter-dark .column.is-half-tablet{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third,html.theme--documenter-dark .column.is-one-third-tablet{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter,html.theme--documenter-dark .column.is-one-quarter-tablet{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth,html.theme--documenter-dark .column.is-one-fifth-tablet{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths,html.theme--documenter-dark .column.is-two-fifths-tablet{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths,html.theme--documenter-dark .column.is-three-fifths-tablet{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths,html.theme--documenter-dark .column.is-four-fifths-tablet{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters,html.theme--documenter-dark .column.is-offset-three-quarters-tablet{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds,html.theme--documenter-dark .column.is-offset-two-thirds-tablet{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half,html.theme--documenter-dark .column.is-offset-half-tablet{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third,html.theme--documenter-dark .column.is-offset-one-third-tablet{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter,html.theme--documenter-dark .column.is-offset-one-quarter-tablet{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth,html.theme--documenter-dark .column.is-offset-one-fifth-tablet{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths,html.theme--documenter-dark .column.is-offset-two-fifths-tablet{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths,html.theme--documenter-dark .column.is-offset-three-fifths-tablet{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths,html.theme--documenter-dark .column.is-offset-four-fifths-tablet{margin-left:80%}html.theme--documenter-dark .column.is-0,html.theme--documenter-dark .column.is-0-tablet{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0,html.theme--documenter-dark .column.is-offset-0-tablet{margin-left:0%}html.theme--documenter-dark .column.is-1,html.theme--documenter-dark .column.is-1-tablet{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1,html.theme--documenter-dark .column.is-offset-1-tablet{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2,html.theme--documenter-dark .column.is-2-tablet{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2,html.theme--documenter-dark .column.is-offset-2-tablet{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3,html.theme--documenter-dark .column.is-3-tablet{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3,html.theme--documenter-dark .column.is-offset-3-tablet{margin-left:25%}html.theme--documenter-dark .column.is-4,html.theme--documenter-dark .column.is-4-tablet{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4,html.theme--documenter-dark .column.is-offset-4-tablet{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5,html.theme--documenter-dark .column.is-5-tablet{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5,html.theme--documenter-dark .column.is-offset-5-tablet{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6,html.theme--documenter-dark .column.is-6-tablet{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6,html.theme--documenter-dark .column.is-offset-6-tablet{margin-left:50%}html.theme--documenter-dark .column.is-7,html.theme--documenter-dark .column.is-7-tablet{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7,html.theme--documenter-dark .column.is-offset-7-tablet{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8,html.theme--documenter-dark .column.is-8-tablet{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8,html.theme--documenter-dark .column.is-offset-8-tablet{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9,html.theme--documenter-dark .column.is-9-tablet{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9,html.theme--documenter-dark .column.is-offset-9-tablet{margin-left:75%}html.theme--documenter-dark .column.is-10,html.theme--documenter-dark .column.is-10-tablet{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10,html.theme--documenter-dark .column.is-offset-10-tablet{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11,html.theme--documenter-dark .column.is-11-tablet{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11,html.theme--documenter-dark .column.is-offset-11-tablet{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12,html.theme--documenter-dark .column.is-12-tablet{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12,html.theme--documenter-dark .column.is-offset-12-tablet{margin-left:100%}}@media screen and (max-width: 1055px){html.theme--documenter-dark .column.is-narrow-touch{flex:none}html.theme--documenter-dark .column.is-full-touch{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-touch{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-touch{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-touch{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-touch{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-touch{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-touch{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-touch{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-touch{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-touch{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-touch{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-touch{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-touch{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-touch{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-touch{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-touch{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-touch{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-touch{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-touch{margin-left:80%}html.theme--documenter-dark .column.is-0-touch{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-touch{margin-left:0%}html.theme--documenter-dark .column.is-1-touch{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-touch{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-touch{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-touch{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-touch{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-touch{margin-left:25%}html.theme--documenter-dark .column.is-4-touch{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-touch{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-touch{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-touch{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-touch{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-touch{margin-left:50%}html.theme--documenter-dark .column.is-7-touch{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-touch{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-touch{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-touch{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-touch{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-touch{margin-left:75%}html.theme--documenter-dark .column.is-10-touch{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-touch{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-touch{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-touch{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-touch{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-touch{margin-left:100%}}@media screen and (min-width: 1056px){html.theme--documenter-dark .column.is-narrow-desktop{flex:none}html.theme--documenter-dark .column.is-full-desktop{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-desktop{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-desktop{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-desktop{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-desktop{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-desktop{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-desktop{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-desktop{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-desktop{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-desktop{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-desktop{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-desktop{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-desktop{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-desktop{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-desktop{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-desktop{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-desktop{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-desktop{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-desktop{margin-left:80%}html.theme--documenter-dark .column.is-0-desktop{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-desktop{margin-left:0%}html.theme--documenter-dark .column.is-1-desktop{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-desktop{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-desktop{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-desktop{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-desktop{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-desktop{margin-left:25%}html.theme--documenter-dark .column.is-4-desktop{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-desktop{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-desktop{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-desktop{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-desktop{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-desktop{margin-left:50%}html.theme--documenter-dark .column.is-7-desktop{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-desktop{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-desktop{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-desktop{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-desktop{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-desktop{margin-left:75%}html.theme--documenter-dark .column.is-10-desktop{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-desktop{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-desktop{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-desktop{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-desktop{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-desktop{margin-left:100%}}@media screen and (min-width: 1216px){html.theme--documenter-dark .column.is-narrow-widescreen{flex:none}html.theme--documenter-dark .column.is-full-widescreen{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-widescreen{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-widescreen{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-widescreen{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-widescreen{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-widescreen{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-widescreen{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-widescreen{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-widescreen{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-widescreen{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-widescreen{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-widescreen{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-widescreen{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-widescreen{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-widescreen{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-widescreen{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-widescreen{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-widescreen{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-widescreen{margin-left:80%}html.theme--documenter-dark .column.is-0-widescreen{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-widescreen{margin-left:0%}html.theme--documenter-dark .column.is-1-widescreen{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-widescreen{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-widescreen{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-widescreen{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-widescreen{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-widescreen{margin-left:25%}html.theme--documenter-dark .column.is-4-widescreen{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-widescreen{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-widescreen{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-widescreen{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-widescreen{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-widescreen{margin-left:50%}html.theme--documenter-dark .column.is-7-widescreen{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-widescreen{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-widescreen{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-widescreen{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-widescreen{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-widescreen{margin-left:75%}html.theme--documenter-dark .column.is-10-widescreen{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-widescreen{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-widescreen{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-widescreen{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-widescreen{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-widescreen{margin-left:100%}}@media screen and (min-width: 1408px){html.theme--documenter-dark .column.is-narrow-fullhd{flex:none}html.theme--documenter-dark .column.is-full-fullhd{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-fullhd{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-fullhd{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-fullhd{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-fullhd{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-fullhd{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-fullhd{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-fullhd{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-fullhd{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-fullhd{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-fullhd{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-fullhd{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-fullhd{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-fullhd{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-fullhd{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-fullhd{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-fullhd{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-fullhd{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-fullhd{margin-left:80%}html.theme--documenter-dark .column.is-0-fullhd{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-fullhd{margin-left:0%}html.theme--documenter-dark .column.is-1-fullhd{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-fullhd{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-fullhd{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-fullhd{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-fullhd{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-fullhd{margin-left:25%}html.theme--documenter-dark .column.is-4-fullhd{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-fullhd{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-fullhd{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-fullhd{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-fullhd{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-fullhd{margin-left:50%}html.theme--documenter-dark .column.is-7-fullhd{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-fullhd{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-fullhd{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-fullhd{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-fullhd{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-fullhd{margin-left:75%}html.theme--documenter-dark .column.is-10-fullhd{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-fullhd{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-fullhd{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-fullhd{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-fullhd{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-fullhd{margin-left:100%}}html.theme--documenter-dark .columns{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}html.theme--documenter-dark .columns:last-child{margin-bottom:-.75rem}html.theme--documenter-dark .columns:not(:last-child){margin-bottom:calc(1.5rem - .75rem)}html.theme--documenter-dark .columns.is-centered{justify-content:center}html.theme--documenter-dark .columns.is-gapless{margin-left:0;margin-right:0;margin-top:0}html.theme--documenter-dark .columns.is-gapless>.column{margin:0;padding:0 !important}html.theme--documenter-dark .columns.is-gapless:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .columns.is-gapless:last-child{margin-bottom:0}html.theme--documenter-dark .columns.is-mobile{display:flex}html.theme--documenter-dark .columns.is-multiline{flex-wrap:wrap}html.theme--documenter-dark .columns.is-vcentered{align-items:center}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns:not(.is-desktop){display:flex}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-desktop{display:flex}}html.theme--documenter-dark .columns.is-variable{--columnGap: 0.75rem;margin-left:calc(-1 * var(--columnGap));margin-right:calc(-1 * var(--columnGap))}html.theme--documenter-dark .columns.is-variable .column{padding-left:var(--columnGap);padding-right:var(--columnGap)}html.theme--documenter-dark .columns.is-variable.is-0{--columnGap: 0rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-0-mobile{--columnGap: 0rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-0-tablet{--columnGap: 0rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-0-tablet-only{--columnGap: 0rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-0-touch{--columnGap: 0rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-0-desktop{--columnGap: 0rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-0-desktop-only{--columnGap: 0rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-0-widescreen{--columnGap: 0rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-0-widescreen-only{--columnGap: 0rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-0-fullhd{--columnGap: 0rem}}html.theme--documenter-dark .columns.is-variable.is-1{--columnGap: .25rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-1-mobile{--columnGap: .25rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-1-tablet{--columnGap: .25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-1-tablet-only{--columnGap: .25rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-1-touch{--columnGap: .25rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-1-desktop{--columnGap: .25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-1-desktop-only{--columnGap: .25rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-1-widescreen{--columnGap: .25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-1-widescreen-only{--columnGap: .25rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-1-fullhd{--columnGap: .25rem}}html.theme--documenter-dark .columns.is-variable.is-2{--columnGap: .5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-2-mobile{--columnGap: .5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-2-tablet{--columnGap: .5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-2-tablet-only{--columnGap: .5rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-2-touch{--columnGap: .5rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-2-desktop{--columnGap: .5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-2-desktop-only{--columnGap: .5rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-2-widescreen{--columnGap: .5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-2-widescreen-only{--columnGap: .5rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-2-fullhd{--columnGap: .5rem}}html.theme--documenter-dark .columns.is-variable.is-3{--columnGap: .75rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-3-mobile{--columnGap: .75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-3-tablet{--columnGap: .75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-3-tablet-only{--columnGap: .75rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-3-touch{--columnGap: .75rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-3-desktop{--columnGap: .75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-3-desktop-only{--columnGap: .75rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-3-widescreen{--columnGap: .75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-3-widescreen-only{--columnGap: .75rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-3-fullhd{--columnGap: .75rem}}html.theme--documenter-dark .columns.is-variable.is-4{--columnGap: 1rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-4-mobile{--columnGap: 1rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-4-tablet{--columnGap: 1rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-4-tablet-only{--columnGap: 1rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-4-touch{--columnGap: 1rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-4-desktop{--columnGap: 1rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-4-desktop-only{--columnGap: 1rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-4-widescreen{--columnGap: 1rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-4-widescreen-only{--columnGap: 1rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-4-fullhd{--columnGap: 1rem}}html.theme--documenter-dark .columns.is-variable.is-5{--columnGap: 1.25rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-5-mobile{--columnGap: 1.25rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-5-tablet{--columnGap: 1.25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-5-tablet-only{--columnGap: 1.25rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-5-touch{--columnGap: 1.25rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-5-desktop{--columnGap: 1.25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-5-desktop-only{--columnGap: 1.25rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-5-widescreen{--columnGap: 1.25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-5-widescreen-only{--columnGap: 1.25rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-5-fullhd{--columnGap: 1.25rem}}html.theme--documenter-dark .columns.is-variable.is-6{--columnGap: 1.5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-6-mobile{--columnGap: 1.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-6-tablet{--columnGap: 1.5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-6-tablet-only{--columnGap: 1.5rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-6-touch{--columnGap: 1.5rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-6-desktop{--columnGap: 1.5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-6-desktop-only{--columnGap: 1.5rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-6-widescreen{--columnGap: 1.5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-6-widescreen-only{--columnGap: 1.5rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-6-fullhd{--columnGap: 1.5rem}}html.theme--documenter-dark .columns.is-variable.is-7{--columnGap: 1.75rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-7-mobile{--columnGap: 1.75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-7-tablet{--columnGap: 1.75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-7-tablet-only{--columnGap: 1.75rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-7-touch{--columnGap: 1.75rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-7-desktop{--columnGap: 1.75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-7-desktop-only{--columnGap: 1.75rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-7-widescreen{--columnGap: 1.75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-7-widescreen-only{--columnGap: 1.75rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-7-fullhd{--columnGap: 1.75rem}}html.theme--documenter-dark .columns.is-variable.is-8{--columnGap: 2rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-8-mobile{--columnGap: 2rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-8-tablet{--columnGap: 2rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-8-tablet-only{--columnGap: 2rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-8-touch{--columnGap: 2rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-8-desktop{--columnGap: 2rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-8-desktop-only{--columnGap: 2rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-8-widescreen{--columnGap: 2rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-8-widescreen-only{--columnGap: 2rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-8-fullhd{--columnGap: 2rem}}html.theme--documenter-dark .tile{align-items:stretch;display:block;flex-basis:0;flex-grow:1;flex-shrink:1;min-height:min-content}html.theme--documenter-dark .tile.is-ancestor{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}html.theme--documenter-dark .tile.is-ancestor:last-child{margin-bottom:-.75rem}html.theme--documenter-dark .tile.is-ancestor:not(:last-child){margin-bottom:.75rem}html.theme--documenter-dark .tile.is-child{margin:0 !important}html.theme--documenter-dark .tile.is-parent{padding:.75rem}html.theme--documenter-dark .tile.is-vertical{flex-direction:column}html.theme--documenter-dark .tile.is-vertical>.tile.is-child:not(:last-child){margin-bottom:1.5rem !important}@media screen and (min-width: 769px),print{html.theme--documenter-dark .tile:not(.is-child){display:flex}html.theme--documenter-dark .tile.is-1{flex:none;width:8.3333333333%}html.theme--documenter-dark .tile.is-2{flex:none;width:16.6666666667%}html.theme--documenter-dark .tile.is-3{flex:none;width:25%}html.theme--documenter-dark .tile.is-4{flex:none;width:33.3333333333%}html.theme--documenter-dark .tile.is-5{flex:none;width:41.6666666667%}html.theme--documenter-dark .tile.is-6{flex:none;width:50%}html.theme--documenter-dark .tile.is-7{flex:none;width:58.3333333333%}html.theme--documenter-dark .tile.is-8{flex:none;width:66.6666666667%}html.theme--documenter-dark .tile.is-9{flex:none;width:75%}html.theme--documenter-dark .tile.is-10{flex:none;width:83.3333333333%}html.theme--documenter-dark .tile.is-11{flex:none;width:91.6666666667%}html.theme--documenter-dark .tile.is-12{flex:none;width:100%}}html.theme--documenter-dark .hero{align-items:stretch;display:flex;flex-direction:column;justify-content:space-between}html.theme--documenter-dark .hero .navbar{background:none}html.theme--documenter-dark .hero .tabs ul{border-bottom:none}html.theme--documenter-dark .hero.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-white strong{color:inherit}html.theme--documenter-dark .hero.is-white .title{color:#0a0a0a}html.theme--documenter-dark .hero.is-white .subtitle{color:rgba(10,10,10,0.9)}html.theme--documenter-dark .hero.is-white .subtitle a:not(.button),html.theme--documenter-dark .hero.is-white .subtitle strong{color:#0a0a0a}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-white .navbar-menu{background-color:#fff}}html.theme--documenter-dark .hero.is-white .navbar-item,html.theme--documenter-dark .hero.is-white .navbar-link{color:rgba(10,10,10,0.7)}html.theme--documenter-dark .hero.is-white a.navbar-item:hover,html.theme--documenter-dark .hero.is-white a.navbar-item.is-active,html.theme--documenter-dark .hero.is-white .navbar-link:hover,html.theme--documenter-dark .hero.is-white .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .hero.is-white .tabs a{color:#0a0a0a;opacity:0.9}html.theme--documenter-dark .hero.is-white .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-white .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-white .tabs.is-boxed a,html.theme--documenter-dark .hero.is-white .tabs.is-toggle a{color:#0a0a0a}html.theme--documenter-dark .hero.is-white .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-white .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .hero.is-white.is-bold{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-white.is-bold .navbar-menu{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}}html.theme--documenter-dark .hero.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-black strong{color:inherit}html.theme--documenter-dark .hero.is-black .title{color:#fff}html.theme--documenter-dark .hero.is-black .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-black .subtitle a:not(.button),html.theme--documenter-dark .hero.is-black .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-black .navbar-menu{background-color:#0a0a0a}}html.theme--documenter-dark .hero.is-black .navbar-item,html.theme--documenter-dark .hero.is-black .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-black a.navbar-item:hover,html.theme--documenter-dark .hero.is-black a.navbar-item.is-active,html.theme--documenter-dark .hero.is-black .navbar-link:hover,html.theme--documenter-dark .hero.is-black .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .hero.is-black .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-black .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-black .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-black .tabs.is-boxed a,html.theme--documenter-dark .hero.is-black .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-black .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-black .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .hero.is-black.is-bold{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-black.is-bold .navbar-menu{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}}html.theme--documenter-dark .hero.is-light{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-light strong{color:inherit}html.theme--documenter-dark .hero.is-light .title{color:#282f2f}html.theme--documenter-dark .hero.is-light .subtitle{color:rgba(40,47,47,0.9)}html.theme--documenter-dark .hero.is-light .subtitle a:not(.button),html.theme--documenter-dark .hero.is-light .subtitle strong{color:#282f2f}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-light .navbar-menu{background-color:#ecf0f1}}html.theme--documenter-dark .hero.is-light .navbar-item,html.theme--documenter-dark .hero.is-light .navbar-link{color:rgba(40,47,47,0.7)}html.theme--documenter-dark .hero.is-light a.navbar-item:hover,html.theme--documenter-dark .hero.is-light a.navbar-item.is-active,html.theme--documenter-dark .hero.is-light .navbar-link:hover,html.theme--documenter-dark .hero.is-light .navbar-link.is-active{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .hero.is-light .tabs a{color:#282f2f;opacity:0.9}html.theme--documenter-dark .hero.is-light .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-light .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-light .tabs.is-boxed a,html.theme--documenter-dark .hero.is-light .tabs.is-toggle a{color:#282f2f}html.theme--documenter-dark .hero.is-light .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-light .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a:hover{background-color:#282f2f;border-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .hero.is-light.is-bold{background-image:linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-light.is-bold .navbar-menu{background-image:linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%)}}html.theme--documenter-dark .hero.is-dark,html.theme--documenter-dark .content kbd.hero{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-dark strong,html.theme--documenter-dark .content kbd.hero strong{color:inherit}html.theme--documenter-dark .hero.is-dark .title,html.theme--documenter-dark .content kbd.hero .title{color:#ecf0f1}html.theme--documenter-dark .hero.is-dark .subtitle,html.theme--documenter-dark .content kbd.hero .subtitle{color:rgba(236,240,241,0.9)}html.theme--documenter-dark .hero.is-dark .subtitle a:not(.button),html.theme--documenter-dark .content kbd.hero .subtitle a:not(.button),html.theme--documenter-dark .hero.is-dark .subtitle strong,html.theme--documenter-dark .content kbd.hero .subtitle strong{color:#ecf0f1}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-dark .navbar-menu,html.theme--documenter-dark .content kbd.hero .navbar-menu{background-color:#282f2f}}html.theme--documenter-dark .hero.is-dark .navbar-item,html.theme--documenter-dark .content kbd.hero .navbar-item,html.theme--documenter-dark .hero.is-dark .navbar-link,html.theme--documenter-dark .content kbd.hero .navbar-link{color:rgba(236,240,241,0.7)}html.theme--documenter-dark .hero.is-dark a.navbar-item:hover,html.theme--documenter-dark .content kbd.hero a.navbar-item:hover,html.theme--documenter-dark .hero.is-dark a.navbar-item.is-active,html.theme--documenter-dark .content kbd.hero a.navbar-item.is-active,html.theme--documenter-dark .hero.is-dark .navbar-link:hover,html.theme--documenter-dark .content kbd.hero .navbar-link:hover,html.theme--documenter-dark .hero.is-dark .navbar-link.is-active,html.theme--documenter-dark .content kbd.hero .navbar-link.is-active{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .hero.is-dark .tabs a,html.theme--documenter-dark .content kbd.hero .tabs a{color:#ecf0f1;opacity:0.9}html.theme--documenter-dark .hero.is-dark .tabs a:hover,html.theme--documenter-dark .content kbd.hero .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-dark .tabs li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a{color:#ecf0f1}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a:hover,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a:hover,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a:hover{background-color:#ecf0f1;border-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .hero.is-dark.is-bold,html.theme--documenter-dark .content kbd.hero.is-bold{background-image:linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-dark.is-bold .navbar-menu,html.theme--documenter-dark .content kbd.hero.is-bold .navbar-menu{background-image:linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%)}}html.theme--documenter-dark .hero.is-primary,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-primary strong,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink strong{color:inherit}html.theme--documenter-dark .hero.is-primary .title,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .title{color:#fff}html.theme--documenter-dark .hero.is-primary .subtitle,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-primary .subtitle a:not(.button),html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle a:not(.button),html.theme--documenter-dark .hero.is-primary .subtitle strong,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-primary .navbar-menu,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-menu{background-color:#375a7f}}html.theme--documenter-dark .hero.is-primary .navbar-item,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-item,html.theme--documenter-dark .hero.is-primary .navbar-link,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-primary a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a.navbar-item:hover,html.theme--documenter-dark .hero.is-primary a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a.navbar-item.is-active,html.theme--documenter-dark .hero.is-primary .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link:hover,html.theme--documenter-dark .hero.is-primary .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .hero.is-primary .tabs a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-primary .tabs a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-primary .tabs li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#375a7f}html.theme--documenter-dark .hero.is-primary.is-bold,html.theme--documenter-dark .docstring>section>a.hero.is-bold.docs-sourcelink{background-image:linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-primary.is-bold .navbar-menu,html.theme--documenter-dark .docstring>section>a.hero.is-bold.docs-sourcelink .navbar-menu{background-image:linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%)}}html.theme--documenter-dark .hero.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-link strong{color:inherit}html.theme--documenter-dark .hero.is-link .title{color:#fff}html.theme--documenter-dark .hero.is-link .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-link .subtitle a:not(.button),html.theme--documenter-dark .hero.is-link .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-link .navbar-menu{background-color:#1abc9c}}html.theme--documenter-dark .hero.is-link .navbar-item,html.theme--documenter-dark .hero.is-link .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-link a.navbar-item:hover,html.theme--documenter-dark .hero.is-link a.navbar-item.is-active,html.theme--documenter-dark .hero.is-link .navbar-link:hover,html.theme--documenter-dark .hero.is-link .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .hero.is-link .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-link .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-link .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-link .tabs.is-boxed a,html.theme--documenter-dark .hero.is-link .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-link .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-link .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#1abc9c}html.theme--documenter-dark .hero.is-link.is-bold{background-image:linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-link.is-bold .navbar-menu{background-image:linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%)}}html.theme--documenter-dark .hero.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-info strong{color:inherit}html.theme--documenter-dark .hero.is-info .title{color:#fff}html.theme--documenter-dark .hero.is-info .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-info .subtitle a:not(.button),html.theme--documenter-dark .hero.is-info .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-info .navbar-menu{background-color:#024c7d}}html.theme--documenter-dark .hero.is-info .navbar-item,html.theme--documenter-dark .hero.is-info .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-info a.navbar-item:hover,html.theme--documenter-dark .hero.is-info a.navbar-item.is-active,html.theme--documenter-dark .hero.is-info .navbar-link:hover,html.theme--documenter-dark .hero.is-info .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .hero.is-info .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-info .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-info .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-info .tabs.is-boxed a,html.theme--documenter-dark .hero.is-info .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-info .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-info .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#024c7d}html.theme--documenter-dark .hero.is-info.is-bold{background-image:linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%)}}html.theme--documenter-dark .hero.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-success strong{color:inherit}html.theme--documenter-dark .hero.is-success .title{color:#fff}html.theme--documenter-dark .hero.is-success .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-success .subtitle a:not(.button),html.theme--documenter-dark .hero.is-success .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-success .navbar-menu{background-color:#008438}}html.theme--documenter-dark .hero.is-success .navbar-item,html.theme--documenter-dark .hero.is-success .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-success a.navbar-item:hover,html.theme--documenter-dark .hero.is-success a.navbar-item.is-active,html.theme--documenter-dark .hero.is-success .navbar-link:hover,html.theme--documenter-dark .hero.is-success .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .hero.is-success .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-success .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-success .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-success .tabs.is-boxed a,html.theme--documenter-dark .hero.is-success .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-success .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-success .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#008438}html.theme--documenter-dark .hero.is-success.is-bold{background-image:linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-success.is-bold .navbar-menu{background-image:linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%)}}html.theme--documenter-dark .hero.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-warning strong{color:inherit}html.theme--documenter-dark .hero.is-warning .title{color:#fff}html.theme--documenter-dark .hero.is-warning .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-warning .subtitle a:not(.button),html.theme--documenter-dark .hero.is-warning .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-warning .navbar-menu{background-color:#ad8100}}html.theme--documenter-dark .hero.is-warning .navbar-item,html.theme--documenter-dark .hero.is-warning .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-warning a.navbar-item:hover,html.theme--documenter-dark .hero.is-warning a.navbar-item.is-active,html.theme--documenter-dark .hero.is-warning .navbar-link:hover,html.theme--documenter-dark .hero.is-warning .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .hero.is-warning .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-warning .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-warning .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#ad8100}html.theme--documenter-dark .hero.is-warning.is-bold{background-image:linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-warning.is-bold .navbar-menu{background-image:linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%)}}html.theme--documenter-dark .hero.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-danger strong{color:inherit}html.theme--documenter-dark .hero.is-danger .title{color:#fff}html.theme--documenter-dark .hero.is-danger .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-danger .subtitle a:not(.button),html.theme--documenter-dark .hero.is-danger .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-danger .navbar-menu{background-color:#9e1b0d}}html.theme--documenter-dark .hero.is-danger .navbar-item,html.theme--documenter-dark .hero.is-danger .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-danger a.navbar-item:hover,html.theme--documenter-dark .hero.is-danger a.navbar-item.is-active,html.theme--documenter-dark .hero.is-danger .navbar-link:hover,html.theme--documenter-dark .hero.is-danger .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .hero.is-danger .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-danger .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-danger .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#9e1b0d}html.theme--documenter-dark .hero.is-danger.is-bold{background-image:linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-danger.is-bold .navbar-menu{background-image:linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%)}}html.theme--documenter-dark .hero.is-small .hero-body,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.hero .hero-body{padding-bottom:1.5rem;padding-top:1.5rem}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero.is-medium .hero-body{padding-bottom:9rem;padding-top:9rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero.is-large .hero-body{padding-bottom:18rem;padding-top:18rem}}html.theme--documenter-dark .hero.is-halfheight .hero-body,html.theme--documenter-dark .hero.is-fullheight .hero-body,html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body{align-items:center;display:flex}html.theme--documenter-dark .hero.is-halfheight .hero-body>.container,html.theme--documenter-dark .hero.is-fullheight .hero-body>.container,html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body>.container{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .hero.is-halfheight{min-height:50vh}html.theme--documenter-dark .hero.is-fullheight{min-height:100vh}html.theme--documenter-dark .hero-video{overflow:hidden}html.theme--documenter-dark .hero-video video{left:50%;min-height:100%;min-width:100%;position:absolute;top:50%;transform:translate3d(-50%, -50%, 0)}html.theme--documenter-dark .hero-video.is-transparent{opacity:0.3}@media screen and (max-width: 768px){html.theme--documenter-dark .hero-video{display:none}}html.theme--documenter-dark .hero-buttons{margin-top:1.5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .hero-buttons .button{display:flex}html.theme--documenter-dark .hero-buttons .button:not(:last-child){margin-bottom:0.75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero-buttons{display:flex;justify-content:center}html.theme--documenter-dark .hero-buttons .button:not(:last-child){margin-right:1.5rem}}html.theme--documenter-dark .hero-head,html.theme--documenter-dark .hero-foot{flex-grow:0;flex-shrink:0}html.theme--documenter-dark .hero-body{flex-grow:1;flex-shrink:0;padding:3rem 1.5rem}html.theme--documenter-dark .section{padding:3rem 1.5rem}@media screen and (min-width: 1056px){html.theme--documenter-dark .section.is-medium{padding:9rem 1.5rem}html.theme--documenter-dark .section.is-large{padding:18rem 1.5rem}}html.theme--documenter-dark .footer{background-color:#282f2f;padding:3rem 1.5rem 6rem}html.theme--documenter-dark hr{height:1px}html.theme--documenter-dark h6{text-transform:uppercase;letter-spacing:0.5px}html.theme--documenter-dark .hero{background-color:#343c3d}html.theme--documenter-dark a{transition:all 200ms ease}html.theme--documenter-dark .button{transition:all 200ms ease;border-width:1px;color:#fff}html.theme--documenter-dark .button.is-active,html.theme--documenter-dark .button.is-focused,html.theme--documenter-dark .button:active,html.theme--documenter-dark .button:focus{box-shadow:0 0 0 2px rgba(140,155,157,0.5)}html.theme--documenter-dark .button.is-white.is-hovered,html.theme--documenter-dark .button.is-white:hover{background-color:#fff}html.theme--documenter-dark .button.is-white.is-active,html.theme--documenter-dark .button.is-white.is-focused,html.theme--documenter-dark .button.is-white:active,html.theme--documenter-dark .button.is-white:focus{border-color:#fff;box-shadow:0 0 0 2px rgba(255,255,255,0.5)}html.theme--documenter-dark .button.is-black.is-hovered,html.theme--documenter-dark .button.is-black:hover{background-color:#1d1d1d}html.theme--documenter-dark .button.is-black.is-active,html.theme--documenter-dark .button.is-black.is-focused,html.theme--documenter-dark .button.is-black:active,html.theme--documenter-dark .button.is-black:focus{border-color:#0a0a0a;box-shadow:0 0 0 2px rgba(10,10,10,0.5)}html.theme--documenter-dark .button.is-light.is-hovered,html.theme--documenter-dark .button.is-light:hover{background-color:#fff}html.theme--documenter-dark .button.is-light.is-active,html.theme--documenter-dark .button.is-light.is-focused,html.theme--documenter-dark .button.is-light:active,html.theme--documenter-dark .button.is-light:focus{border-color:#ecf0f1;box-shadow:0 0 0 2px rgba(236,240,241,0.5)}html.theme--documenter-dark .button.is-dark.is-hovered,html.theme--documenter-dark .content kbd.button.is-hovered,html.theme--documenter-dark .button.is-dark:hover,html.theme--documenter-dark .content kbd.button:hover{background-color:#3a4344}html.theme--documenter-dark .button.is-dark.is-active,html.theme--documenter-dark .content kbd.button.is-active,html.theme--documenter-dark .button.is-dark.is-focused,html.theme--documenter-dark .content kbd.button.is-focused,html.theme--documenter-dark .button.is-dark:active,html.theme--documenter-dark .content kbd.button:active,html.theme--documenter-dark .button.is-dark:focus,html.theme--documenter-dark .content kbd.button:focus{border-color:#282f2f;box-shadow:0 0 0 2px rgba(40,47,47,0.5)}html.theme--documenter-dark .button.is-primary.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary:hover,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:hover{background-color:#436d9a}html.theme--documenter-dark .button.is-primary.is-active,html.theme--documenter-dark .docstring>section>a.button.is-active.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink,html.theme--documenter-dark .button.is-primary:active,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:active,html.theme--documenter-dark .button.is-primary:focus,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus{border-color:#375a7f;box-shadow:0 0 0 2px rgba(55,90,127,0.5)}html.theme--documenter-dark .button.is-link.is-hovered,html.theme--documenter-dark .button.is-link:hover{background-color:#1fdeb8}html.theme--documenter-dark .button.is-link.is-active,html.theme--documenter-dark .button.is-link.is-focused,html.theme--documenter-dark .button.is-link:active,html.theme--documenter-dark .button.is-link:focus{border-color:#1abc9c;box-shadow:0 0 0 2px rgba(26,188,156,0.5)}html.theme--documenter-dark .button.is-info.is-hovered,html.theme--documenter-dark .button.is-info:hover{background-color:#0363a3}html.theme--documenter-dark .button.is-info.is-active,html.theme--documenter-dark .button.is-info.is-focused,html.theme--documenter-dark .button.is-info:active,html.theme--documenter-dark .button.is-info:focus{border-color:#024c7d;box-shadow:0 0 0 2px rgba(2,76,125,0.5)}html.theme--documenter-dark .button.is-success.is-hovered,html.theme--documenter-dark .button.is-success:hover{background-color:#00aa48}html.theme--documenter-dark .button.is-success.is-active,html.theme--documenter-dark .button.is-success.is-focused,html.theme--documenter-dark .button.is-success:active,html.theme--documenter-dark .button.is-success:focus{border-color:#008438;box-shadow:0 0 0 2px rgba(0,132,56,0.5)}html.theme--documenter-dark .button.is-warning.is-hovered,html.theme--documenter-dark .button.is-warning:hover{background-color:#d39e00}html.theme--documenter-dark .button.is-warning.is-active,html.theme--documenter-dark .button.is-warning.is-focused,html.theme--documenter-dark .button.is-warning:active,html.theme--documenter-dark .button.is-warning:focus{border-color:#ad8100;box-shadow:0 0 0 2px rgba(173,129,0,0.5)}html.theme--documenter-dark .button.is-danger.is-hovered,html.theme--documenter-dark .button.is-danger:hover{background-color:#c12110}html.theme--documenter-dark .button.is-danger.is-active,html.theme--documenter-dark .button.is-danger.is-focused,html.theme--documenter-dark .button.is-danger:active,html.theme--documenter-dark .button.is-danger:focus{border-color:#9e1b0d;box-shadow:0 0 0 2px rgba(158,27,13,0.5)}html.theme--documenter-dark .label{color:#dbdee0}html.theme--documenter-dark .button,html.theme--documenter-dark .control.has-icons-left .icon,html.theme--documenter-dark .control.has-icons-right .icon,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .select,html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea{height:2.5em}html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .textarea{transition:all 200ms ease;box-shadow:none;border-width:1px;padding-left:1em;padding-right:1em}html.theme--documenter-dark .select:after,html.theme--documenter-dark .select select{border-width:1px}html.theme--documenter-dark .control.has-addons .button,html.theme--documenter-dark .control.has-addons .input,html.theme--documenter-dark .control.has-addons #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-addons form.docs-search>input,html.theme--documenter-dark .control.has-addons .select{margin-right:-1px}html.theme--documenter-dark .notification{background-color:#343c3d}html.theme--documenter-dark .card{box-shadow:none;border:1px solid #343c3d;background-color:#282f2f;border-radius:.4em}html.theme--documenter-dark .card .card-image img{border-radius:.4em .4em 0 0}html.theme--documenter-dark .card .card-header{box-shadow:none;background-color:rgba(18,18,18,0.2);border-radius:.4em .4em 0 0}html.theme--documenter-dark .card .card-footer{background-color:rgba(18,18,18,0.2)}html.theme--documenter-dark .card .card-footer,html.theme--documenter-dark .card .card-footer-item{border-width:1px;border-color:#343c3d}html.theme--documenter-dark .notification.is-white a:not(.button){color:#0a0a0a;text-decoration:underline}html.theme--documenter-dark .notification.is-black a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-light a:not(.button){color:#282f2f;text-decoration:underline}html.theme--documenter-dark .notification.is-dark a:not(.button),html.theme--documenter-dark .content kbd.notification a:not(.button){color:#ecf0f1;text-decoration:underline}html.theme--documenter-dark .notification.is-primary a:not(.button),html.theme--documenter-dark .docstring>section>a.notification.docs-sourcelink a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-link a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-info a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-success a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-warning a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-danger a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .tag,html.theme--documenter-dark .content kbd,html.theme--documenter-dark .docstring>section>a.docs-sourcelink{border-radius:.4em}html.theme--documenter-dark .menu-list a{transition:all 300ms ease}html.theme--documenter-dark .modal-card-body{background-color:#282f2f}html.theme--documenter-dark .modal-card-foot,html.theme--documenter-dark .modal-card-head{border-color:#343c3d}html.theme--documenter-dark .message-header{font-weight:700;background-color:#343c3d;color:#fff}html.theme--documenter-dark .message-body{border-width:1px;border-color:#343c3d}html.theme--documenter-dark .navbar{border-radius:.4em}html.theme--documenter-dark .navbar.is-transparent{background:none}html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#1abc9c}@media screen and (max-width: 1055px){html.theme--documenter-dark .navbar .navbar-menu{background-color:#375a7f;border-radius:0 0 .4em .4em}}html.theme--documenter-dark .hero .navbar,html.theme--documenter-dark body>.navbar{border-radius:0}html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-previous{border-width:1px}html.theme--documenter-dark .panel-block,html.theme--documenter-dark .panel-heading,html.theme--documenter-dark .panel-tabs{border-width:1px}html.theme--documenter-dark .panel-block:first-child,html.theme--documenter-dark .panel-heading:first-child,html.theme--documenter-dark .panel-tabs:first-child{border-top-width:1px}html.theme--documenter-dark .panel-heading{font-weight:700}html.theme--documenter-dark .panel-tabs a{border-width:1px;margin-bottom:-1px}html.theme--documenter-dark .panel-tabs a.is-active{border-bottom-color:#17a689}html.theme--documenter-dark .panel-block:hover{color:#1dd2af}html.theme--documenter-dark .panel-block:hover .panel-icon{color:#1dd2af}html.theme--documenter-dark .panel-block.is-active .panel-icon{color:#17a689}html.theme--documenter-dark .tabs a{border-bottom-width:1px;margin-bottom:-1px}html.theme--documenter-dark .tabs ul{border-bottom-width:1px}html.theme--documenter-dark .tabs.is-boxed a{border-width:1px}html.theme--documenter-dark .tabs.is-boxed li.is-active a{background-color:#1f2424}html.theme--documenter-dark .tabs.is-toggle li a{border-width:1px;margin-bottom:0}html.theme--documenter-dark .tabs.is-toggle li+li{margin-left:-1px}html.theme--documenter-dark .hero.is-white .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-black .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-light .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-dark .navbar .navbar-dropdown .navbar-item:hover,html.theme--documenter-dark .content kbd.hero .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-primary .navbar .navbar-dropdown .navbar-item:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-link .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-info .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-success .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-warning .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-danger .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark h1 .docs-heading-anchor,html.theme--documenter-dark h1 .docs-heading-anchor:hover,html.theme--documenter-dark h1 .docs-heading-anchor:visited,html.theme--documenter-dark h2 .docs-heading-anchor,html.theme--documenter-dark h2 .docs-heading-anchor:hover,html.theme--documenter-dark h2 .docs-heading-anchor:visited,html.theme--documenter-dark h3 .docs-heading-anchor,html.theme--documenter-dark h3 .docs-heading-anchor:hover,html.theme--documenter-dark h3 .docs-heading-anchor:visited,html.theme--documenter-dark h4 .docs-heading-anchor,html.theme--documenter-dark h4 .docs-heading-anchor:hover,html.theme--documenter-dark h4 .docs-heading-anchor:visited,html.theme--documenter-dark h5 .docs-heading-anchor,html.theme--documenter-dark h5 .docs-heading-anchor:hover,html.theme--documenter-dark h5 .docs-heading-anchor:visited,html.theme--documenter-dark h6 .docs-heading-anchor,html.theme--documenter-dark h6 .docs-heading-anchor:hover,html.theme--documenter-dark h6 .docs-heading-anchor:visited{color:#f2f2f2}html.theme--documenter-dark h1 .docs-heading-anchor-permalink,html.theme--documenter-dark h2 .docs-heading-anchor-permalink,html.theme--documenter-dark h3 .docs-heading-anchor-permalink,html.theme--documenter-dark h4 .docs-heading-anchor-permalink,html.theme--documenter-dark h5 .docs-heading-anchor-permalink,html.theme--documenter-dark h6 .docs-heading-anchor-permalink{visibility:hidden;vertical-align:middle;margin-left:0.5em;font-size:0.7rem}html.theme--documenter-dark h1 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h2 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h3 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h4 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h5 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h6 .docs-heading-anchor-permalink::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f0c1"}html.theme--documenter-dark h1:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h2:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h3:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h4:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h5:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h6:hover .docs-heading-anchor-permalink{visibility:visible}html.theme--documenter-dark .docs-light-only{display:none !important}html.theme--documenter-dark pre{position:relative;overflow:hidden}html.theme--documenter-dark pre code,html.theme--documenter-dark pre code.hljs{padding:0 .75rem !important;overflow:auto;display:block}html.theme--documenter-dark pre code:first-of-type,html.theme--documenter-dark pre code.hljs:first-of-type{padding-top:0.5rem !important}html.theme--documenter-dark pre code:last-of-type,html.theme--documenter-dark pre code.hljs:last-of-type{padding-bottom:0.5rem !important}html.theme--documenter-dark pre .copy-button{opacity:0.2;transition:opacity 0.2s;position:absolute;right:0em;top:0em;padding:0.5em;width:2.5em;height:2.5em;background:transparent;border:none;font-family:"Font Awesome 5 Free";color:#fff;cursor:pointer;text-align:center}html.theme--documenter-dark pre .copy-button:focus,html.theme--documenter-dark pre .copy-button:hover{opacity:1;background:rgba(255,255,255,0.1);color:#1abc9c}html.theme--documenter-dark pre .copy-button.success{color:#259a12;opacity:1}html.theme--documenter-dark pre .copy-button.error{color:#cb3c33;opacity:1}html.theme--documenter-dark pre:hover .copy-button{opacity:1}html.theme--documenter-dark .admonition{background-color:#282f2f;border-style:solid;border-width:1px;border-color:#5e6d6f;border-radius:.4em;font-size:15px}html.theme--documenter-dark .admonition strong{color:currentColor}html.theme--documenter-dark .admonition.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.admonition{font-size:.85em}html.theme--documenter-dark .admonition.is-medium{font-size:1.25rem}html.theme--documenter-dark .admonition.is-large{font-size:1.5rem}html.theme--documenter-dark .admonition.is-default{background-color:#282f2f;border-color:#5e6d6f}html.theme--documenter-dark .admonition.is-default>.admonition-header{background-color:#5e6d6f;color:#fff}html.theme--documenter-dark .admonition.is-default>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-info{background-color:#282f2f;border-color:#024c7d}html.theme--documenter-dark .admonition.is-info>.admonition-header{background-color:#024c7d;color:#fff}html.theme--documenter-dark .admonition.is-info>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-success{background-color:#282f2f;border-color:#008438}html.theme--documenter-dark .admonition.is-success>.admonition-header{background-color:#008438;color:#fff}html.theme--documenter-dark .admonition.is-success>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-warning{background-color:#282f2f;border-color:#ad8100}html.theme--documenter-dark .admonition.is-warning>.admonition-header{background-color:#ad8100;color:#fff}html.theme--documenter-dark .admonition.is-warning>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-danger{background-color:#282f2f;border-color:#9e1b0d}html.theme--documenter-dark .admonition.is-danger>.admonition-header{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .admonition.is-danger>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-compat{background-color:#282f2f;border-color:#137886}html.theme--documenter-dark .admonition.is-compat>.admonition-header{background-color:#137886;color:#fff}html.theme--documenter-dark .admonition.is-compat>.admonition-body{color:#fff}html.theme--documenter-dark .admonition-header{color:#fff;background-color:#5e6d6f;align-items:center;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.5rem .75rem;position:relative}html.theme--documenter-dark .admonition-header:before{font-family:"Font Awesome 5 Free";font-weight:900;margin-right:.75rem;content:"\f06a"}html.theme--documenter-dark .admonition-body{color:#fff;padding:0.5rem .75rem}html.theme--documenter-dark .admonition-body pre{background-color:#282f2f}html.theme--documenter-dark .admonition-body code{background-color:rgba(255,255,255,0.05)}html.theme--documenter-dark .docstring{margin-bottom:1em;background-color:rgba(0,0,0,0);border:1px solid #5e6d6f;box-shadow:none;max-width:100%}html.theme--documenter-dark .docstring>header{display:flex;flex-grow:1;align-items:stretch;padding:0.5rem .75rem;background-color:#282f2f;box-shadow:0 1px 2px rgba(10,10,10,0.1);box-shadow:none;border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .docstring>header code{background-color:transparent}html.theme--documenter-dark .docstring>header .docstring-binding{margin-right:0.3em}html.theme--documenter-dark .docstring>header .docstring-category{margin-left:0.3em}html.theme--documenter-dark .docstring>section{position:relative;padding:.75rem .75rem;border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .docstring>section:last-child{border-bottom:none}html.theme--documenter-dark .docstring>section>a.docs-sourcelink{transition:opacity 0.3s;opacity:0;position:absolute;right:.375rem;bottom:.375rem}html.theme--documenter-dark .docstring>section>a.docs-sourcelink:focus{opacity:1 !important}html.theme--documenter-dark .docstring:hover>section>a.docs-sourcelink{opacity:0.2}html.theme--documenter-dark .docstring:focus-within>section>a.docs-sourcelink{opacity:0.2}html.theme--documenter-dark .docstring>section:hover a.docs-sourcelink{opacity:1}html.theme--documenter-dark .documenter-example-output{background-color:#1f2424}html.theme--documenter-dark .outdated-warning-overlay{position:fixed;top:0;left:0;right:0;box-shadow:0 0 10px rgba(0,0,0,0.3);z-index:999;background-color:#282f2f;color:#fff;border-bottom:3px solid #9e1b0d;padding:10px 35px;text-align:center;font-size:15px}html.theme--documenter-dark .outdated-warning-overlay .outdated-warning-closer{position:absolute;top:calc(50% - 10px);right:18px;cursor:pointer;width:12px}html.theme--documenter-dark .outdated-warning-overlay a{color:#1abc9c}html.theme--documenter-dark .outdated-warning-overlay a:hover{color:#1dd2af}html.theme--documenter-dark .content pre{border:1px solid #5e6d6f}html.theme--documenter-dark .content code{font-weight:inherit}html.theme--documenter-dark .content a code{color:#1abc9c}html.theme--documenter-dark .content h1 code,html.theme--documenter-dark .content h2 code,html.theme--documenter-dark .content h3 code,html.theme--documenter-dark .content h4 code,html.theme--documenter-dark .content h5 code,html.theme--documenter-dark .content h6 code{color:#f2f2f2}html.theme--documenter-dark .content table{display:block;width:initial;max-width:100%;overflow-x:auto}html.theme--documenter-dark .content blockquote>ul:first-child,html.theme--documenter-dark .content blockquote>ol:first-child,html.theme--documenter-dark .content .admonition-body>ul:first-child,html.theme--documenter-dark .content .admonition-body>ol:first-child{margin-top:0}html.theme--documenter-dark pre,html.theme--documenter-dark code{font-variant-ligatures:no-contextual}html.theme--documenter-dark .breadcrumb a.is-disabled{cursor:default;pointer-events:none}html.theme--documenter-dark .breadcrumb a.is-disabled,html.theme--documenter-dark .breadcrumb a.is-disabled:hover{color:#f2f2f2}html.theme--documenter-dark .hljs{background:initial !important}html.theme--documenter-dark .katex .katex-mathml{top:0;right:0}html.theme--documenter-dark .katex-display,html.theme--documenter-dark mjx-container,html.theme--documenter-dark .MathJax_Display{margin:0.5em 0 !important}html.theme--documenter-dark html{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto}html.theme--documenter-dark li.no-marker{list-style:none}html.theme--documenter-dark #documenter .docs-main>article{overflow-wrap:break-word}html.theme--documenter-dark #documenter .docs-main>article .math-container{overflow-x:auto;overflow-y:hidden}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-main{max-width:52rem;margin-left:20rem;padding-right:1rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main{width:100%}html.theme--documenter-dark #documenter .docs-main>article{max-width:52rem;margin-left:auto;margin-right:auto;margin-bottom:1rem;padding:0 1rem}html.theme--documenter-dark #documenter .docs-main>header,html.theme--documenter-dark #documenter .docs-main>nav{max-width:100%;width:100%;margin:0}}html.theme--documenter-dark #documenter .docs-main header.docs-navbar{background-color:#1f2424;border-bottom:1px solid #5e6d6f;z-index:2;min-height:4rem;margin-bottom:1rem;display:flex}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .breadcrumb{flex-grow:1}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right{display:flex;white-space:nowrap}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-icon,html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label,html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{display:inline-block}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label{padding:0;margin-left:0.3em}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button{margin:auto 0 auto 1rem}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{font-size:1.5rem;margin:auto 0 auto 1rem}html.theme--documenter-dark #documenter .docs-main header.docs-navbar>*{margin:auto 0}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main header.docs-navbar{position:sticky;top:0;padding:0 1rem;transition-property:top, box-shadow;-webkit-transition-property:top, box-shadow;transition-duration:0.3s;-webkit-transition-duration:0.3s}html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--not-top{box-shadow:.2rem 0rem .4rem #171717;transition-duration:0.7s;-webkit-transition-duration:0.7s}html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom{top:-4.5rem;transition-duration:0.7s;-webkit-transition-duration:0.7s}}html.theme--documenter-dark #documenter .docs-main section.footnotes{border-top:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-main section.footnotes li .tag:first-child,html.theme--documenter-dark #documenter .docs-main section.footnotes li .docstring>section>a.docs-sourcelink:first-child,html.theme--documenter-dark #documenter .docs-main section.footnotes li .content kbd:first-child,html.theme--documenter-dark .content #documenter .docs-main section.footnotes li kbd:first-child{margin-right:1em;margin-bottom:0.4em}html.theme--documenter-dark #documenter .docs-main .docs-footer{display:flex;flex-wrap:wrap;margin-left:0;margin-right:0;border-top:1px solid #5e6d6f;padding-top:1rem;padding-bottom:1rem}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main .docs-footer{padding-left:1rem;padding-right:1rem}}html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage,html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-prevpage{flex-grow:1}html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage{text-align:right}html.theme--documenter-dark #documenter .docs-main .docs-footer .flexbox-break{flex-basis:100%;height:0}html.theme--documenter-dark #documenter .docs-main .docs-footer .footer-message{font-size:0.8em;margin:0.5em auto 0 auto;text-align:center}html.theme--documenter-dark #documenter .docs-sidebar{display:flex;flex-direction:column;color:#fff;background-color:#282f2f;border-right:1px solid #5e6d6f;padding:0;flex:0 0 18rem;z-index:5;font-size:15px;position:fixed;left:-18rem;width:18rem;height:100%;transition:left 0.3s}html.theme--documenter-dark #documenter .docs-sidebar.visible{left:0;box-shadow:.4rem 0rem .8rem #171717}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar.visible{box-shadow:none}}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar{left:0;top:0}}html.theme--documenter-dark #documenter .docs-sidebar .docs-logo{margin-top:1rem;padding:0 1rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img{max-height:6rem;margin:auto}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name{flex-shrink:0;font-size:1.5rem;font-weight:700;text-align:center;white-space:nowrap;overflow:hidden;padding:0.5rem 0}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name .docs-autofit{max-width:16.2rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a,html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a:hover{color:#fff}html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector{border-top:1px solid #5e6d6f;display:none;padding:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector.visible{display:flex}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu{flex-grow:1;user-select:none;border-top:1px solid #5e6d6f;padding-bottom:1.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li>.tocitem{font-weight:bold}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li li{font-size:14.25px;margin-left:1em;border-left:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input.collapse-toggle{display:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.collapsed{display:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked~ul.collapsed{display:block}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem{display:flex}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label{flex-grow:2}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron{display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;font-size:11.25px;margin-left:1rem;margin-top:auto;margin-bottom:auto}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f054"}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked~label.tocitem .docs-chevron::before{content:"\f078"}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem{display:block;padding:0.5rem 0.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem:hover{color:#fff;background:#282f2f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu a.tocitem:hover,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem:hover{color:#fff;background-color:#32393a}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active{border-top:1px solid #5e6d6f;border-bottom:1px solid #5e6d6f;background-color:#1f2424}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover{background-color:#1f2424;color:#fff}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover{background-color:#32393a;color:#fff}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li.is-active:first-child{border-top:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal{margin:0 0.5rem 0.5rem;border-top:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal li{font-size:12.75px;border-left:none;margin-left:0;margin-top:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem{width:100%;padding:0}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before{content:"⚬";margin-right:0.4em}html.theme--documenter-dark #documenter .docs-sidebar form.docs-search{margin:auto;margin-top:0.5rem;margin-bottom:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{width:14.4rem}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu{overflow-y:auto;-webkit-overflow-scroll:touch}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar{width:.3rem;background:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#3b4445}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover{background:#4e5a5c}}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-sidebar{overflow-y:auto;-webkit-overflow-scroll:touch}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar{width:.3rem;background:none}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#3b4445}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover{background:#4e5a5c}}html.theme--documenter-dark #documenter .docs-main #documenter-search-info{margin-bottom:1rem}html.theme--documenter-dark #documenter .docs-main #documenter-search-results{list-style-type:circle;list-style-position:outside}html.theme--documenter-dark #documenter .docs-main #documenter-search-results li{margin-left:2rem}html.theme--documenter-dark #documenter .docs-main #documenter-search-results .docs-highlight{background-color:yellow}html.theme--documenter-dark{background-color:#1f2424;font-size:16px;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}html.theme--documenter-dark .ansi span.sgr1{font-weight:bolder}html.theme--documenter-dark .ansi span.sgr2{font-weight:lighter}html.theme--documenter-dark .ansi span.sgr3{font-style:italic}html.theme--documenter-dark .ansi span.sgr4{text-decoration:underline}html.theme--documenter-dark .ansi span.sgr7{color:#1f2424;background-color:#fff}html.theme--documenter-dark .ansi span.sgr8{color:transparent}html.theme--documenter-dark .ansi span.sgr8 span{color:transparent}html.theme--documenter-dark .ansi span.sgr9{text-decoration:line-through}html.theme--documenter-dark .ansi span.sgr30{color:#242424}html.theme--documenter-dark .ansi span.sgr31{color:#f6705f}html.theme--documenter-dark .ansi span.sgr32{color:#4fb43a}html.theme--documenter-dark .ansi span.sgr33{color:#f4c72f}html.theme--documenter-dark .ansi span.sgr34{color:#7587f0}html.theme--documenter-dark .ansi span.sgr35{color:#bc89d3}html.theme--documenter-dark .ansi span.sgr36{color:#49b6ca}html.theme--documenter-dark .ansi span.sgr37{color:#b3bdbe}html.theme--documenter-dark .ansi span.sgr40{background-color:#242424}html.theme--documenter-dark .ansi span.sgr41{background-color:#f6705f}html.theme--documenter-dark .ansi span.sgr42{background-color:#4fb43a}html.theme--documenter-dark .ansi span.sgr43{background-color:#f4c72f}html.theme--documenter-dark .ansi span.sgr44{background-color:#7587f0}html.theme--documenter-dark .ansi span.sgr45{background-color:#bc89d3}html.theme--documenter-dark .ansi span.sgr46{background-color:#49b6ca}html.theme--documenter-dark .ansi span.sgr47{background-color:#b3bdbe}html.theme--documenter-dark .ansi span.sgr90{color:#92a0a2}html.theme--documenter-dark .ansi span.sgr91{color:#ff8674}html.theme--documenter-dark .ansi span.sgr92{color:#79d462}html.theme--documenter-dark .ansi span.sgr93{color:#ffe76b}html.theme--documenter-dark .ansi span.sgr94{color:#8a98ff}html.theme--documenter-dark .ansi span.sgr95{color:#d2a4e6}html.theme--documenter-dark .ansi span.sgr96{color:#6bc8db}html.theme--documenter-dark .ansi span.sgr97{color:#ecf0f1}html.theme--documenter-dark .ansi span.sgr100{background-color:#92a0a2}html.theme--documenter-dark .ansi span.sgr101{background-color:#ff8674}html.theme--documenter-dark .ansi span.sgr102{background-color:#79d462}html.theme--documenter-dark .ansi span.sgr103{background-color:#ffe76b}html.theme--documenter-dark .ansi span.sgr104{background-color:#8a98ff}html.theme--documenter-dark .ansi span.sgr105{background-color:#d2a4e6}html.theme--documenter-dark .ansi span.sgr106{background-color:#6bc8db}html.theme--documenter-dark .ansi span.sgr107{background-color:#ecf0f1}html.theme--documenter-dark code.language-julia-repl>span.hljs-meta{color:#4fb43a;font-weight:bolder}html.theme--documenter-dark .hljs{background:#2b2b2b;color:#f8f8f2}html.theme--documenter-dark .hljs-comment,html.theme--documenter-dark .hljs-quote{color:#d4d0ab}html.theme--documenter-dark .hljs-variable,html.theme--documenter-dark .hljs-template-variable,html.theme--documenter-dark .hljs-tag,html.theme--documenter-dark .hljs-name,html.theme--documenter-dark .hljs-selector-id,html.theme--documenter-dark .hljs-selector-class,html.theme--documenter-dark .hljs-regexp,html.theme--documenter-dark .hljs-deletion{color:#ffa07a}html.theme--documenter-dark .hljs-number,html.theme--documenter-dark .hljs-built_in,html.theme--documenter-dark .hljs-literal,html.theme--documenter-dark .hljs-type,html.theme--documenter-dark .hljs-params,html.theme--documenter-dark .hljs-meta,html.theme--documenter-dark .hljs-link{color:#f5ab35}html.theme--documenter-dark .hljs-attribute{color:#ffd700}html.theme--documenter-dark .hljs-string,html.theme--documenter-dark .hljs-symbol,html.theme--documenter-dark .hljs-bullet,html.theme--documenter-dark .hljs-addition{color:#abe338}html.theme--documenter-dark .hljs-title,html.theme--documenter-dark .hljs-section{color:#00e0e0}html.theme--documenter-dark .hljs-keyword,html.theme--documenter-dark .hljs-selector-tag{color:#dcc6e0}html.theme--documenter-dark .hljs-emphasis{font-style:italic}html.theme--documenter-dark .hljs-strong{font-weight:bold}@media screen and (-ms-high-contrast: active){html.theme--documenter-dark .hljs-addition,html.theme--documenter-dark .hljs-attribute,html.theme--documenter-dark .hljs-built_in,html.theme--documenter-dark .hljs-bullet,html.theme--documenter-dark .hljs-comment,html.theme--documenter-dark .hljs-link,html.theme--documenter-dark .hljs-literal,html.theme--documenter-dark .hljs-meta,html.theme--documenter-dark .hljs-number,html.theme--documenter-dark .hljs-params,html.theme--documenter-dark .hljs-string,html.theme--documenter-dark .hljs-symbol,html.theme--documenter-dark .hljs-type,html.theme--documenter-dark .hljs-quote{color:highlight}html.theme--documenter-dark .hljs-keyword,html.theme--documenter-dark .hljs-selector-tag{font-weight:bold}}html.theme--documenter-dark .hljs-subst{color:#f8f8f2} diff --git a/dev/assets/themes/documenter-light.css b/dev/assets/themes/documenter-light.css new file mode 100644 index 000000000..9b9a14b04 --- /dev/null +++ b/dev/assets/themes/documenter-light.css @@ -0,0 +1,9 @@ +@keyframes spinAround{from{transform:rotate(0deg)}to{transform:rotate(359deg)}}.tabs,.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis,.breadcrumb,.file,.button,.is-unselectable,.modal-close,.delete{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.navbar-link:not(.is-arrowless)::after,.select:not(.is-multiple):not(.is-loading)::after{border:3px solid rgba(0,0,0,0);border-radius:2px;border-right:0;border-top:0;content:" ";display:block;height:0.625em;margin-top:-0.4375em;pointer-events:none;position:absolute;top:50%;transform:rotate(-45deg);transform-origin:center;width:0.625em}.admonition:not(:last-child),.tabs:not(:last-child),.message:not(:last-child),.list:not(:last-child),.level:not(:last-child),.breadcrumb:not(:last-child),.highlight:not(:last-child),.block:not(:last-child),.title:not(:last-child),.subtitle:not(:last-child),.table-container:not(:last-child),.table:not(:last-child),.progress:not(:last-child),.notification:not(:last-child),.content:not(:last-child),.box:not(:last-child){margin-bottom:1.5rem}.modal-close,.delete{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,0.2);border:none;border-radius:290486px;cursor:pointer;pointer-events:auto;display:inline-block;flex-grow:0;flex-shrink:0;font-size:0;height:20px;max-height:20px;max-width:20px;min-height:20px;min-width:20px;outline:none;position:relative;vertical-align:top;width:20px}.modal-close::before,.delete::before,.modal-close::after,.delete::after{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.modal-close::before,.delete::before{height:2px;width:50%}.modal-close::after,.delete::after{height:50%;width:2px}.modal-close:hover,.delete:hover,.modal-close:focus,.delete:focus{background-color:rgba(10,10,10,0.3)}.modal-close:active,.delete:active{background-color:rgba(10,10,10,0.4)}.is-small.modal-close,#documenter .docs-sidebar form.docs-search>input.modal-close,.is-small.delete,#documenter .docs-sidebar form.docs-search>input.delete{height:16px;max-height:16px;max-width:16px;min-height:16px;min-width:16px;width:16px}.is-medium.modal-close,.is-medium.delete{height:24px;max-height:24px;max-width:24px;min-height:24px;min-width:24px;width:24px}.is-large.modal-close,.is-large.delete{height:32px;max-height:32px;max-width:32px;min-height:32px;min-width:32px;width:32px}.control.is-loading::after,.select.is-loading::after,.loader,.button.is-loading::after{animation:spinAround 500ms infinite linear;border:2px solid #dbdbdb;border-radius:290486px;border-right-color:transparent;border-top-color:transparent;content:"";display:block;height:1em;position:relative;width:1em}.hero-video,.modal-background,.modal,.image.is-square img,#documenter .docs-sidebar .docs-logo>img.is-square img,.image.is-square .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,.image.is-1by1 img,#documenter .docs-sidebar .docs-logo>img.is-1by1 img,.image.is-1by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,.image.is-5by4 img,#documenter .docs-sidebar .docs-logo>img.is-5by4 img,.image.is-5by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,.image.is-4by3 img,#documenter .docs-sidebar .docs-logo>img.is-4by3 img,.image.is-4by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,.image.is-3by2 img,#documenter .docs-sidebar .docs-logo>img.is-3by2 img,.image.is-3by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,.image.is-5by3 img,#documenter .docs-sidebar .docs-logo>img.is-5by3 img,.image.is-5by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,.image.is-16by9 img,#documenter .docs-sidebar .docs-logo>img.is-16by9 img,.image.is-16by9 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,.image.is-2by1 img,#documenter .docs-sidebar .docs-logo>img.is-2by1 img,.image.is-2by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,.image.is-3by1 img,#documenter .docs-sidebar .docs-logo>img.is-3by1 img,.image.is-3by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,.image.is-4by5 img,#documenter .docs-sidebar .docs-logo>img.is-4by5 img,.image.is-4by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,.image.is-3by4 img,#documenter .docs-sidebar .docs-logo>img.is-3by4 img,.image.is-3by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,.image.is-2by3 img,#documenter .docs-sidebar .docs-logo>img.is-2by3 img,.image.is-2by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,.image.is-3by5 img,#documenter .docs-sidebar .docs-logo>img.is-3by5 img,.image.is-3by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,.image.is-9by16 img,#documenter .docs-sidebar .docs-logo>img.is-9by16 img,.image.is-9by16 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,.image.is-1by2 img,#documenter .docs-sidebar .docs-logo>img.is-1by2 img,.image.is-1by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,.image.is-1by3 img,#documenter .docs-sidebar .docs-logo>img.is-1by3 img,.image.is-1by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio,.is-overlay{bottom:0;left:0;position:absolute;right:0;top:0}.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis,.file-cta,.file-name,.select select,.textarea,.input,#documenter .docs-sidebar form.docs-search>input,.button{-moz-appearance:none;-webkit-appearance:none;align-items:center;border:1px solid transparent;border-radius:4px;box-shadow:none;display:inline-flex;font-size:1rem;height:2.25em;justify-content:flex-start;line-height:1.5;padding-bottom:calc(0.375em - 1px);padding-left:calc(0.625em - 1px);padding-right:calc(0.625em - 1px);padding-top:calc(0.375em - 1px);position:relative;vertical-align:top}.pagination-previous:focus,.pagination-next:focus,.pagination-link:focus,.pagination-ellipsis:focus,.file-cta:focus,.file-name:focus,.select select:focus,.textarea:focus,.input:focus,#documenter .docs-sidebar form.docs-search>input:focus,.button:focus,.is-focused.pagination-previous,.is-focused.pagination-next,.is-focused.pagination-link,.is-focused.pagination-ellipsis,.is-focused.file-cta,.is-focused.file-name,.select select.is-focused,.is-focused.textarea,.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-focused.button,.pagination-previous:active,.pagination-next:active,.pagination-link:active,.pagination-ellipsis:active,.file-cta:active,.file-name:active,.select select:active,.textarea:active,.input:active,#documenter .docs-sidebar form.docs-search>input:active,.button:active,.is-active.pagination-previous,.is-active.pagination-next,.is-active.pagination-link,.is-active.pagination-ellipsis,.is-active.file-cta,.is-active.file-name,.select select.is-active,.is-active.textarea,.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.is-active.button{outline:none}.pagination-previous[disabled],.pagination-next[disabled],.pagination-link[disabled],.pagination-ellipsis[disabled],.file-cta[disabled],.file-name[disabled],.select select[disabled],.textarea[disabled],.input[disabled],#documenter .docs-sidebar form.docs-search>input[disabled],.button[disabled],fieldset[disabled] .pagination-previous,fieldset[disabled] .pagination-next,fieldset[disabled] .pagination-link,fieldset[disabled] .pagination-ellipsis,fieldset[disabled] .file-cta,fieldset[disabled] .file-name,fieldset[disabled] .select select,.select fieldset[disabled] select,fieldset[disabled] .textarea,fieldset[disabled] .input,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input,fieldset[disabled] .button{cursor:not-allowed}/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */html,body,p,ol,ul,li,dl,dt,dd,blockquote,figure,fieldset,legend,textarea,pre,iframe,hr,h1,h2,h3,h4,h5,h6{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}ul{list-style:none}button,input,select,textarea{margin:0}html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}img,embed,iframe,object,video{height:auto;max-width:100%}audio{max-width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}td:not([align]),th:not([align]){text-align:left}html{background-color:#fff;font-size:16px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}article,aside,figure,footer,header,hgroup,section{display:block}body,button,input,select,textarea{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif}code,pre{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto;font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace}body{color:#222;font-size:1em;font-weight:400;line-height:1.5}a{color:#2e63b8;cursor:pointer;text-decoration:none}a strong{color:currentColor}a:hover{color:#363636}code{background-color:rgba(0,0,0,0.05);color:#000;font-size:.875em;font-weight:normal;padding:.1em}hr{background-color:#f5f5f5;border:none;display:block;height:2px;margin:1.5rem 0}img{height:auto;max-width:100%}input[type="checkbox"],input[type="radio"]{vertical-align:baseline}small{font-size:.875em}span{font-style:inherit;font-weight:inherit}strong{color:#222;font-weight:700}fieldset{border:none}pre{-webkit-overflow-scrolling:touch;background-color:#f5f5f5;color:#222;font-size:.875em;overflow-x:auto;padding:1.25rem 1.5rem;white-space:pre;word-wrap:normal}pre code{background-color:transparent;color:currentColor;font-size:1em;padding:0}table td,table th{vertical-align:top}table td:not([align]),table th:not([align]){text-align:left}table th{color:#222}.is-clearfix::after{clear:both;content:" ";display:table}.is-pulled-left{float:left !important}.is-pulled-right{float:right !important}.is-clipped{overflow:hidden !important}.is-size-1{font-size:3rem !important}.is-size-2{font-size:2.5rem !important}.is-size-3{font-size:2rem !important}.is-size-4{font-size:1.5rem !important}.is-size-5{font-size:1.25rem !important}.is-size-6{font-size:1rem !important}.is-size-7,.docstring>section>a.docs-sourcelink{font-size:.75rem !important}@media screen and (max-width: 768px){.is-size-1-mobile{font-size:3rem !important}.is-size-2-mobile{font-size:2.5rem !important}.is-size-3-mobile{font-size:2rem !important}.is-size-4-mobile{font-size:1.5rem !important}.is-size-5-mobile{font-size:1.25rem !important}.is-size-6-mobile{font-size:1rem !important}.is-size-7-mobile{font-size:.75rem !important}}@media screen and (min-width: 769px),print{.is-size-1-tablet{font-size:3rem !important}.is-size-2-tablet{font-size:2.5rem !important}.is-size-3-tablet{font-size:2rem !important}.is-size-4-tablet{font-size:1.5rem !important}.is-size-5-tablet{font-size:1.25rem !important}.is-size-6-tablet{font-size:1rem !important}.is-size-7-tablet{font-size:.75rem !important}}@media screen and (max-width: 1055px){.is-size-1-touch{font-size:3rem !important}.is-size-2-touch{font-size:2.5rem !important}.is-size-3-touch{font-size:2rem !important}.is-size-4-touch{font-size:1.5rem !important}.is-size-5-touch{font-size:1.25rem !important}.is-size-6-touch{font-size:1rem !important}.is-size-7-touch{font-size:.75rem !important}}@media screen and (min-width: 1056px){.is-size-1-desktop{font-size:3rem !important}.is-size-2-desktop{font-size:2.5rem !important}.is-size-3-desktop{font-size:2rem !important}.is-size-4-desktop{font-size:1.5rem !important}.is-size-5-desktop{font-size:1.25rem !important}.is-size-6-desktop{font-size:1rem !important}.is-size-7-desktop{font-size:.75rem !important}}@media screen and (min-width: 1216px){.is-size-1-widescreen{font-size:3rem !important}.is-size-2-widescreen{font-size:2.5rem !important}.is-size-3-widescreen{font-size:2rem !important}.is-size-4-widescreen{font-size:1.5rem !important}.is-size-5-widescreen{font-size:1.25rem !important}.is-size-6-widescreen{font-size:1rem !important}.is-size-7-widescreen{font-size:.75rem !important}}@media screen and (min-width: 1408px){.is-size-1-fullhd{font-size:3rem !important}.is-size-2-fullhd{font-size:2.5rem !important}.is-size-3-fullhd{font-size:2rem !important}.is-size-4-fullhd{font-size:1.5rem !important}.is-size-5-fullhd{font-size:1.25rem !important}.is-size-6-fullhd{font-size:1rem !important}.is-size-7-fullhd{font-size:.75rem !important}}.has-text-centered{text-align:center !important}.has-text-justified{text-align:justify !important}.has-text-left{text-align:left !important}.has-text-right{text-align:right !important}@media screen and (max-width: 768px){.has-text-centered-mobile{text-align:center !important}}@media screen and (min-width: 769px),print{.has-text-centered-tablet{text-align:center !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-centered-tablet-only{text-align:center !important}}@media screen and (max-width: 1055px){.has-text-centered-touch{text-align:center !important}}@media screen and (min-width: 1056px){.has-text-centered-desktop{text-align:center !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-centered-desktop-only{text-align:center !important}}@media screen and (min-width: 1216px){.has-text-centered-widescreen{text-align:center !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-centered-widescreen-only{text-align:center !important}}@media screen and (min-width: 1408px){.has-text-centered-fullhd{text-align:center !important}}@media screen and (max-width: 768px){.has-text-justified-mobile{text-align:justify !important}}@media screen and (min-width: 769px),print{.has-text-justified-tablet{text-align:justify !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-justified-tablet-only{text-align:justify !important}}@media screen and (max-width: 1055px){.has-text-justified-touch{text-align:justify !important}}@media screen and (min-width: 1056px){.has-text-justified-desktop{text-align:justify !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-justified-desktop-only{text-align:justify !important}}@media screen and (min-width: 1216px){.has-text-justified-widescreen{text-align:justify !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-justified-widescreen-only{text-align:justify !important}}@media screen and (min-width: 1408px){.has-text-justified-fullhd{text-align:justify !important}}@media screen and (max-width: 768px){.has-text-left-mobile{text-align:left !important}}@media screen and (min-width: 769px),print{.has-text-left-tablet{text-align:left !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-left-tablet-only{text-align:left !important}}@media screen and (max-width: 1055px){.has-text-left-touch{text-align:left !important}}@media screen and (min-width: 1056px){.has-text-left-desktop{text-align:left !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-left-desktop-only{text-align:left !important}}@media screen and (min-width: 1216px){.has-text-left-widescreen{text-align:left !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-left-widescreen-only{text-align:left !important}}@media screen and (min-width: 1408px){.has-text-left-fullhd{text-align:left !important}}@media screen and (max-width: 768px){.has-text-right-mobile{text-align:right !important}}@media screen and (min-width: 769px),print{.has-text-right-tablet{text-align:right !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-right-tablet-only{text-align:right !important}}@media screen and (max-width: 1055px){.has-text-right-touch{text-align:right !important}}@media screen and (min-width: 1056px){.has-text-right-desktop{text-align:right !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-right-desktop-only{text-align:right !important}}@media screen and (min-width: 1216px){.has-text-right-widescreen{text-align:right !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-right-widescreen-only{text-align:right !important}}@media screen and (min-width: 1408px){.has-text-right-fullhd{text-align:right !important}}.is-capitalized{text-transform:capitalize !important}.is-lowercase{text-transform:lowercase !important}.is-uppercase{text-transform:uppercase !important}.is-italic{font-style:italic !important}.has-text-white{color:#fff !important}a.has-text-white:hover,a.has-text-white:focus{color:#e6e6e6 !important}.has-background-white{background-color:#fff !important}.has-text-black{color:#0a0a0a !important}a.has-text-black:hover,a.has-text-black:focus{color:#000 !important}.has-background-black{background-color:#0a0a0a !important}.has-text-light{color:#f5f5f5 !important}a.has-text-light:hover,a.has-text-light:focus{color:#dbdbdb !important}.has-background-light{background-color:#f5f5f5 !important}.has-text-dark{color:#363636 !important}a.has-text-dark:hover,a.has-text-dark:focus{color:#1c1c1c !important}.has-background-dark{background-color:#363636 !important}.has-text-primary{color:#4eb5de !important}a.has-text-primary:hover,a.has-text-primary:focus{color:#27a1d2 !important}.has-background-primary{background-color:#4eb5de !important}.has-text-link{color:#2e63b8 !important}a.has-text-link:hover,a.has-text-link:focus{color:#244d8f !important}.has-background-link{background-color:#2e63b8 !important}.has-text-info{color:#209cee !important}a.has-text-info:hover,a.has-text-info:focus{color:#1081cb !important}.has-background-info{background-color:#209cee !important}.has-text-success{color:#22c35b !important}a.has-text-success:hover,a.has-text-success:focus{color:#1a9847 !important}.has-background-success{background-color:#22c35b !important}.has-text-warning{color:#ffdd57 !important}a.has-text-warning:hover,a.has-text-warning:focus{color:#ffd324 !important}.has-background-warning{background-color:#ffdd57 !important}.has-text-danger{color:#da0b00 !important}a.has-text-danger:hover,a.has-text-danger:focus{color:#a70800 !important}.has-background-danger{background-color:#da0b00 !important}.has-text-black-bis{color:#121212 !important}.has-background-black-bis{background-color:#121212 !important}.has-text-black-ter{color:#242424 !important}.has-background-black-ter{background-color:#242424 !important}.has-text-grey-darker{color:#363636 !important}.has-background-grey-darker{background-color:#363636 !important}.has-text-grey-dark{color:#4a4a4a !important}.has-background-grey-dark{background-color:#4a4a4a !important}.has-text-grey{color:#6b6b6b !important}.has-background-grey{background-color:#6b6b6b !important}.has-text-grey-light{color:#b5b5b5 !important}.has-background-grey-light{background-color:#b5b5b5 !important}.has-text-grey-lighter{color:#dbdbdb !important}.has-background-grey-lighter{background-color:#dbdbdb !important}.has-text-white-ter{color:#f5f5f5 !important}.has-background-white-ter{background-color:#f5f5f5 !important}.has-text-white-bis{color:#fafafa !important}.has-background-white-bis{background-color:#fafafa !important}.has-text-weight-light{font-weight:300 !important}.has-text-weight-normal{font-weight:400 !important}.has-text-weight-medium{font-weight:500 !important}.has-text-weight-semibold{font-weight:600 !important}.has-text-weight-bold{font-weight:700 !important}.is-family-primary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-secondary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-sans-serif{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-monospace{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-family-code{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-block{display:block !important}@media screen and (max-width: 768px){.is-block-mobile{display:block !important}}@media screen and (min-width: 769px),print{.is-block-tablet{display:block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-block-tablet-only{display:block !important}}@media screen and (max-width: 1055px){.is-block-touch{display:block !important}}@media screen and (min-width: 1056px){.is-block-desktop{display:block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-block-desktop-only{display:block !important}}@media screen and (min-width: 1216px){.is-block-widescreen{display:block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-block-widescreen-only{display:block !important}}@media screen and (min-width: 1408px){.is-block-fullhd{display:block !important}}.is-flex{display:flex !important}@media screen and (max-width: 768px){.is-flex-mobile{display:flex !important}}@media screen and (min-width: 769px),print{.is-flex-tablet{display:flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-flex-tablet-only{display:flex !important}}@media screen and (max-width: 1055px){.is-flex-touch{display:flex !important}}@media screen and (min-width: 1056px){.is-flex-desktop{display:flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-flex-desktop-only{display:flex !important}}@media screen and (min-width: 1216px){.is-flex-widescreen{display:flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-flex-widescreen-only{display:flex !important}}@media screen and (min-width: 1408px){.is-flex-fullhd{display:flex !important}}.is-inline{display:inline !important}@media screen and (max-width: 768px){.is-inline-mobile{display:inline !important}}@media screen and (min-width: 769px),print{.is-inline-tablet{display:inline !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-tablet-only{display:inline !important}}@media screen and (max-width: 1055px){.is-inline-touch{display:inline !important}}@media screen and (min-width: 1056px){.is-inline-desktop{display:inline !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-desktop-only{display:inline !important}}@media screen and (min-width: 1216px){.is-inline-widescreen{display:inline !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-widescreen-only{display:inline !important}}@media screen and (min-width: 1408px){.is-inline-fullhd{display:inline !important}}.is-inline-block{display:inline-block !important}@media screen and (max-width: 768px){.is-inline-block-mobile{display:inline-block !important}}@media screen and (min-width: 769px),print{.is-inline-block-tablet{display:inline-block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-block-tablet-only{display:inline-block !important}}@media screen and (max-width: 1055px){.is-inline-block-touch{display:inline-block !important}}@media screen and (min-width: 1056px){.is-inline-block-desktop{display:inline-block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-block-desktop-only{display:inline-block !important}}@media screen and (min-width: 1216px){.is-inline-block-widescreen{display:inline-block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-block-widescreen-only{display:inline-block !important}}@media screen and (min-width: 1408px){.is-inline-block-fullhd{display:inline-block !important}}.is-inline-flex{display:inline-flex !important}@media screen and (max-width: 768px){.is-inline-flex-mobile{display:inline-flex !important}}@media screen and (min-width: 769px),print{.is-inline-flex-tablet{display:inline-flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-flex-tablet-only{display:inline-flex !important}}@media screen and (max-width: 1055px){.is-inline-flex-touch{display:inline-flex !important}}@media screen and (min-width: 1056px){.is-inline-flex-desktop{display:inline-flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-flex-desktop-only{display:inline-flex !important}}@media screen and (min-width: 1216px){.is-inline-flex-widescreen{display:inline-flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-flex-widescreen-only{display:inline-flex !important}}@media screen and (min-width: 1408px){.is-inline-flex-fullhd{display:inline-flex !important}}.is-hidden{display:none !important}.is-sr-only{border:none !important;clip:rect(0, 0, 0, 0) !important;height:0.01em !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:0.01em !important}@media screen and (max-width: 768px){.is-hidden-mobile{display:none !important}}@media screen and (min-width: 769px),print{.is-hidden-tablet{display:none !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-hidden-tablet-only{display:none !important}}@media screen and (max-width: 1055px){.is-hidden-touch{display:none !important}}@media screen and (min-width: 1056px){.is-hidden-desktop{display:none !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-hidden-desktop-only{display:none !important}}@media screen and (min-width: 1216px){.is-hidden-widescreen{display:none !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-hidden-widescreen-only{display:none !important}}@media screen and (min-width: 1408px){.is-hidden-fullhd{display:none !important}}.is-invisible{visibility:hidden !important}@media screen and (max-width: 768px){.is-invisible-mobile{visibility:hidden !important}}@media screen and (min-width: 769px),print{.is-invisible-tablet{visibility:hidden !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-invisible-tablet-only{visibility:hidden !important}}@media screen and (max-width: 1055px){.is-invisible-touch{visibility:hidden !important}}@media screen and (min-width: 1056px){.is-invisible-desktop{visibility:hidden !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-invisible-desktop-only{visibility:hidden !important}}@media screen and (min-width: 1216px){.is-invisible-widescreen{visibility:hidden !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-invisible-widescreen-only{visibility:hidden !important}}@media screen and (min-width: 1408px){.is-invisible-fullhd{visibility:hidden !important}}.is-marginless{margin:0 !important}.is-paddingless{padding:0 !important}.is-radiusless{border-radius:0 !important}.is-shadowless{box-shadow:none !important}.is-relative{position:relative !important}.box{background-color:#fff;border-radius:6px;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);color:#222;display:block;padding:1.25rem}a.box:hover,a.box:focus{box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px #2e63b8}a.box:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2),0 0 0 1px #2e63b8}.button{background-color:#fff;border-color:#dbdbdb;border-width:1px;color:#363636;cursor:pointer;justify-content:center;padding-bottom:calc(0.375em - 1px);padding-left:.75em;padding-right:.75em;padding-top:calc(0.375em - 1px);text-align:center;white-space:nowrap}.button strong{color:inherit}.button .icon,.button .icon.is-small,.button #documenter .docs-sidebar form.docs-search>input.icon,#documenter .docs-sidebar .button form.docs-search>input.icon,.button .icon.is-medium,.button .icon.is-large{height:1.5em;width:1.5em}.button .icon:first-child:not(:last-child){margin-left:calc(-0.375em - 1px);margin-right:0.1875em}.button .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:calc(-0.375em - 1px)}.button .icon:first-child:last-child{margin-left:calc(-0.375em - 1px);margin-right:calc(-0.375em - 1px)}.button:hover,.button.is-hovered{border-color:#b5b5b5;color:#363636}.button:focus,.button.is-focused{border-color:#3c5dcd;color:#363636}.button:focus:not(:active),.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.button:active,.button.is-active{border-color:#4a4a4a;color:#363636}.button.is-text{background-color:transparent;border-color:transparent;color:#222;text-decoration:underline}.button.is-text:hover,.button.is-text.is-hovered,.button.is-text:focus,.button.is-text.is-focused{background-color:#f5f5f5;color:#222}.button.is-text:active,.button.is-text.is-active{background-color:#e8e8e8;color:#222}.button.is-text[disabled],fieldset[disabled] .button.is-text{background-color:transparent;border-color:transparent;box-shadow:none}.button.is-white{background-color:#fff;border-color:transparent;color:#0a0a0a}.button.is-white:hover,.button.is-white.is-hovered{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.button.is-white:focus,.button.is-white.is-focused{border-color:transparent;color:#0a0a0a}.button.is-white:focus:not(:active),.button.is-white.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.button.is-white:active,.button.is-white.is-active{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.button.is-white[disabled],fieldset[disabled] .button.is-white{background-color:#fff;border-color:transparent;box-shadow:none}.button.is-white.is-inverted{background-color:#0a0a0a;color:#fff}.button.is-white.is-inverted:hover,.button.is-white.is-inverted.is-hovered{background-color:#000}.button.is-white.is-inverted[disabled],fieldset[disabled] .button.is-white.is-inverted{background-color:#0a0a0a;border-color:transparent;box-shadow:none;color:#fff}.button.is-white.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-white.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-white.is-outlined:hover,.button.is-white.is-outlined.is-hovered,.button.is-white.is-outlined:focus,.button.is-white.is-outlined.is-focused{background-color:#fff;border-color:#fff;color:#0a0a0a}.button.is-white.is-outlined.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-white.is-outlined.is-loading:hover::after,.button.is-white.is-outlined.is-loading.is-hovered::after,.button.is-white.is-outlined.is-loading:focus::after,.button.is-white.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-white.is-outlined[disabled],fieldset[disabled] .button.is-white.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.button.is-white.is-inverted.is-outlined:hover,.button.is-white.is-inverted.is-outlined.is-hovered,.button.is-white.is-inverted.is-outlined:focus,.button.is-white.is-inverted.is-outlined.is-focused{background-color:#0a0a0a;color:#fff}.button.is-white.is-inverted.is-outlined.is-loading:hover::after,.button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-white.is-inverted.is-outlined.is-loading:focus::after,.button.is-white.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-white.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.button.is-black{background-color:#0a0a0a;border-color:transparent;color:#fff}.button.is-black:hover,.button.is-black.is-hovered{background-color:#040404;border-color:transparent;color:#fff}.button.is-black:focus,.button.is-black.is-focused{border-color:transparent;color:#fff}.button.is-black:focus:not(:active),.button.is-black.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.button.is-black:active,.button.is-black.is-active{background-color:#000;border-color:transparent;color:#fff}.button.is-black[disabled],fieldset[disabled] .button.is-black{background-color:#0a0a0a;border-color:transparent;box-shadow:none}.button.is-black.is-inverted{background-color:#fff;color:#0a0a0a}.button.is-black.is-inverted:hover,.button.is-black.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-black.is-inverted[disabled],fieldset[disabled] .button.is-black.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#0a0a0a}.button.is-black.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.button.is-black.is-outlined:hover,.button.is-black.is-outlined.is-hovered,.button.is-black.is-outlined:focus,.button.is-black.is-outlined.is-focused{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.button.is-black.is-outlined.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-black.is-outlined.is-loading:hover::after,.button.is-black.is-outlined.is-loading.is-hovered::after,.button.is-black.is-outlined.is-loading:focus::after,.button.is-black.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-black.is-outlined[disabled],fieldset[disabled] .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-black.is-inverted.is-outlined:hover,.button.is-black.is-inverted.is-outlined.is-hovered,.button.is-black.is-inverted.is-outlined:focus,.button.is-black.is-inverted.is-outlined.is-focused{background-color:#fff;color:#0a0a0a}.button.is-black.is-inverted.is-outlined.is-loading:hover::after,.button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-black.is-inverted.is-outlined.is-loading:focus::after,.button.is-black.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-black.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-light{background-color:#f5f5f5;border-color:transparent;color:#363636}.button.is-light:hover,.button.is-light.is-hovered{background-color:#eee;border-color:transparent;color:#363636}.button.is-light:focus,.button.is-light.is-focused{border-color:transparent;color:#363636}.button.is-light:focus:not(:active),.button.is-light.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.button.is-light:active,.button.is-light.is-active{background-color:#e8e8e8;border-color:transparent;color:#363636}.button.is-light[disabled],fieldset[disabled] .button.is-light{background-color:#f5f5f5;border-color:transparent;box-shadow:none}.button.is-light.is-inverted{background-color:#363636;color:#f5f5f5}.button.is-light.is-inverted:hover,.button.is-light.is-inverted.is-hovered{background-color:#292929}.button.is-light.is-inverted[disabled],fieldset[disabled] .button.is-light.is-inverted{background-color:#363636;border-color:transparent;box-shadow:none;color:#f5f5f5}.button.is-light.is-loading::after{border-color:transparent transparent #363636 #363636 !important}.button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;color:#f5f5f5}.button.is-light.is-outlined:hover,.button.is-light.is-outlined.is-hovered,.button.is-light.is-outlined:focus,.button.is-light.is-outlined.is-focused{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.button.is-light.is-outlined.is-loading::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-light.is-outlined.is-loading:hover::after,.button.is-light.is-outlined.is-loading.is-hovered::after,.button.is-light.is-outlined.is-loading:focus::after,.button.is-light.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #363636 #363636 !important}.button.is-light.is-outlined[disabled],fieldset[disabled] .button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;box-shadow:none;color:#f5f5f5}.button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#363636;color:#363636}.button.is-light.is-inverted.is-outlined:hover,.button.is-light.is-inverted.is-outlined.is-hovered,.button.is-light.is-inverted.is-outlined:focus,.button.is-light.is-inverted.is-outlined.is-focused{background-color:#363636;color:#f5f5f5}.button.is-light.is-inverted.is-outlined.is-loading:hover::after,.button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-light.is-inverted.is-outlined.is-loading:focus::after,.button.is-light.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-light.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#363636;box-shadow:none;color:#363636}.button.is-dark,.content kbd.button{background-color:#363636;border-color:transparent;color:#f5f5f5}.button.is-dark:hover,.content kbd.button:hover,.button.is-dark.is-hovered,.content kbd.button.is-hovered{background-color:#2f2f2f;border-color:transparent;color:#f5f5f5}.button.is-dark:focus,.content kbd.button:focus,.button.is-dark.is-focused,.content kbd.button.is-focused{border-color:transparent;color:#f5f5f5}.button.is-dark:focus:not(:active),.content kbd.button:focus:not(:active),.button.is-dark.is-focused:not(:active),.content kbd.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.button.is-dark:active,.content kbd.button:active,.button.is-dark.is-active,.content kbd.button.is-active{background-color:#292929;border-color:transparent;color:#f5f5f5}.button.is-dark[disabled],.content kbd.button[disabled],fieldset[disabled] .button.is-dark,fieldset[disabled] .content kbd.button,.content fieldset[disabled] kbd.button{background-color:#363636;border-color:transparent;box-shadow:none}.button.is-dark.is-inverted,.content kbd.button.is-inverted{background-color:#f5f5f5;color:#363636}.button.is-dark.is-inverted:hover,.content kbd.button.is-inverted:hover,.button.is-dark.is-inverted.is-hovered,.content kbd.button.is-inverted.is-hovered{background-color:#e8e8e8}.button.is-dark.is-inverted[disabled],.content kbd.button.is-inverted[disabled],fieldset[disabled] .button.is-dark.is-inverted,fieldset[disabled] .content kbd.button.is-inverted,.content fieldset[disabled] kbd.button.is-inverted{background-color:#f5f5f5;border-color:transparent;box-shadow:none;color:#363636}.button.is-dark.is-loading::after,.content kbd.button.is-loading::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-dark.is-outlined,.content kbd.button.is-outlined{background-color:transparent;border-color:#363636;color:#363636}.button.is-dark.is-outlined:hover,.content kbd.button.is-outlined:hover,.button.is-dark.is-outlined.is-hovered,.content kbd.button.is-outlined.is-hovered,.button.is-dark.is-outlined:focus,.content kbd.button.is-outlined:focus,.button.is-dark.is-outlined.is-focused,.content kbd.button.is-outlined.is-focused{background-color:#363636;border-color:#363636;color:#f5f5f5}.button.is-dark.is-outlined.is-loading::after,.content kbd.button.is-outlined.is-loading::after{border-color:transparent transparent #363636 #363636 !important}.button.is-dark.is-outlined.is-loading:hover::after,.content kbd.button.is-outlined.is-loading:hover::after,.button.is-dark.is-outlined.is-loading.is-hovered::after,.content kbd.button.is-outlined.is-loading.is-hovered::after,.button.is-dark.is-outlined.is-loading:focus::after,.content kbd.button.is-outlined.is-loading:focus::after,.button.is-dark.is-outlined.is-loading.is-focused::after,.content kbd.button.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-dark.is-outlined[disabled],.content kbd.button.is-outlined[disabled],fieldset[disabled] .button.is-dark.is-outlined,fieldset[disabled] .content kbd.button.is-outlined,.content fieldset[disabled] kbd.button.is-outlined{background-color:transparent;border-color:#363636;box-shadow:none;color:#363636}.button.is-dark.is-inverted.is-outlined,.content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#f5f5f5;color:#f5f5f5}.button.is-dark.is-inverted.is-outlined:hover,.content kbd.button.is-inverted.is-outlined:hover,.button.is-dark.is-inverted.is-outlined.is-hovered,.content kbd.button.is-inverted.is-outlined.is-hovered,.button.is-dark.is-inverted.is-outlined:focus,.content kbd.button.is-inverted.is-outlined:focus,.button.is-dark.is-inverted.is-outlined.is-focused,.content kbd.button.is-inverted.is-outlined.is-focused{background-color:#f5f5f5;color:#363636}.button.is-dark.is-inverted.is-outlined.is-loading:hover::after,.content kbd.button.is-inverted.is-outlined.is-loading:hover::after,.button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after,.content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-dark.is-inverted.is-outlined.is-loading:focus::after,.content kbd.button.is-inverted.is-outlined.is-loading:focus::after,.button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after,.content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #363636 #363636 !important}.button.is-dark.is-inverted.is-outlined[disabled],.content kbd.button.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-dark.is-inverted.is-outlined,fieldset[disabled] .content kbd.button.is-inverted.is-outlined,.content fieldset[disabled] kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#f5f5f5;box-shadow:none;color:#f5f5f5}.button.is-primary,.docstring>section>a.button.docs-sourcelink{background-color:#4eb5de;border-color:transparent;color:#fff}.button.is-primary:hover,.docstring>section>a.button.docs-sourcelink:hover,.button.is-primary.is-hovered,.docstring>section>a.button.is-hovered.docs-sourcelink{background-color:#43b1dc;border-color:transparent;color:#fff}.button.is-primary:focus,.docstring>section>a.button.docs-sourcelink:focus,.button.is-primary.is-focused,.docstring>section>a.button.is-focused.docs-sourcelink{border-color:transparent;color:#fff}.button.is-primary:focus:not(:active),.docstring>section>a.button.docs-sourcelink:focus:not(:active),.button.is-primary.is-focused:not(:active),.docstring>section>a.button.is-focused.docs-sourcelink:not(:active){box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.button.is-primary:active,.docstring>section>a.button.docs-sourcelink:active,.button.is-primary.is-active,.docstring>section>a.button.is-active.docs-sourcelink{background-color:#39acda;border-color:transparent;color:#fff}.button.is-primary[disabled],.docstring>section>a.button.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary,fieldset[disabled] .docstring>section>a.button.docs-sourcelink{background-color:#4eb5de;border-color:transparent;box-shadow:none}.button.is-primary.is-inverted,.docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;color:#4eb5de}.button.is-primary.is-inverted:hover,.docstring>section>a.button.is-inverted.docs-sourcelink:hover,.button.is-primary.is-inverted.is-hovered,.docstring>section>a.button.is-inverted.is-hovered.docs-sourcelink{background-color:#f2f2f2}.button.is-primary.is-inverted[disabled],.docstring>section>a.button.is-inverted.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-inverted,fieldset[disabled] .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;border-color:transparent;box-shadow:none;color:#4eb5de}.button.is-primary.is-loading::after,.docstring>section>a.button.is-loading.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}.button.is-primary.is-outlined,.docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#4eb5de;color:#4eb5de}.button.is-primary.is-outlined:hover,.docstring>section>a.button.is-outlined.docs-sourcelink:hover,.button.is-primary.is-outlined.is-hovered,.docstring>section>a.button.is-outlined.is-hovered.docs-sourcelink,.button.is-primary.is-outlined:focus,.docstring>section>a.button.is-outlined.docs-sourcelink:focus,.button.is-primary.is-outlined.is-focused,.docstring>section>a.button.is-outlined.is-focused.docs-sourcelink{background-color:#4eb5de;border-color:#4eb5de;color:#fff}.button.is-primary.is-outlined.is-loading::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink::after{border-color:transparent transparent #4eb5de #4eb5de !important}.button.is-primary.is-outlined.is-loading:hover::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:hover::after,.button.is-primary.is-outlined.is-loading.is-hovered::after,.docstring>section>a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after,.button.is-primary.is-outlined.is-loading:focus::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:focus::after,.button.is-primary.is-outlined.is-loading.is-focused::after,.docstring>section>a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}.button.is-primary.is-outlined[disabled],.docstring>section>a.button.is-outlined.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-outlined,fieldset[disabled] .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#4eb5de;box-shadow:none;color:#4eb5de}.button.is-primary.is-inverted.is-outlined,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;color:#fff}.button.is-primary.is-inverted.is-outlined:hover,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:hover,.button.is-primary.is-inverted.is-outlined.is-hovered,.docstring>section>a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink,.button.is-primary.is-inverted.is-outlined:focus,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:focus,.button.is-primary.is-inverted.is-outlined.is-focused,.docstring>section>a.button.is-inverted.is-outlined.is-focused.docs-sourcelink{background-color:#fff;color:#4eb5de}.button.is-primary.is-inverted.is-outlined.is-loading:hover::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after,.button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after,.button.is-primary.is-inverted.is-outlined.is-loading:focus::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after,.button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #4eb5de #4eb5de !important}.button.is-primary.is-inverted.is-outlined[disabled],.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-inverted.is-outlined,fieldset[disabled] .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-link{background-color:#2e63b8;border-color:transparent;color:#fff}.button.is-link:hover,.button.is-link.is-hovered{background-color:#2b5eae;border-color:transparent;color:#fff}.button.is-link:focus,.button.is-link.is-focused{border-color:transparent;color:#fff}.button.is-link:focus:not(:active),.button.is-link.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.button.is-link:active,.button.is-link.is-active{background-color:#2958a4;border-color:transparent;color:#fff}.button.is-link[disabled],fieldset[disabled] .button.is-link{background-color:#2e63b8;border-color:transparent;box-shadow:none}.button.is-link.is-inverted{background-color:#fff;color:#2e63b8}.button.is-link.is-inverted:hover,.button.is-link.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-link.is-inverted[disabled],fieldset[disabled] .button.is-link.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#2e63b8}.button.is-link.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-link.is-outlined{background-color:transparent;border-color:#2e63b8;color:#2e63b8}.button.is-link.is-outlined:hover,.button.is-link.is-outlined.is-hovered,.button.is-link.is-outlined:focus,.button.is-link.is-outlined.is-focused{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.button.is-link.is-outlined.is-loading::after{border-color:transparent transparent #2e63b8 #2e63b8 !important}.button.is-link.is-outlined.is-loading:hover::after,.button.is-link.is-outlined.is-loading.is-hovered::after,.button.is-link.is-outlined.is-loading:focus::after,.button.is-link.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-link.is-outlined[disabled],fieldset[disabled] .button.is-link.is-outlined{background-color:transparent;border-color:#2e63b8;box-shadow:none;color:#2e63b8}.button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-link.is-inverted.is-outlined:hover,.button.is-link.is-inverted.is-outlined.is-hovered,.button.is-link.is-inverted.is-outlined:focus,.button.is-link.is-inverted.is-outlined.is-focused{background-color:#fff;color:#2e63b8}.button.is-link.is-inverted.is-outlined.is-loading:hover::after,.button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-link.is-inverted.is-outlined.is-loading:focus::after,.button.is-link.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #2e63b8 #2e63b8 !important}.button.is-link.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-info{background-color:#209cee;border-color:transparent;color:#fff}.button.is-info:hover,.button.is-info.is-hovered{background-color:#1497ed;border-color:transparent;color:#fff}.button.is-info:focus,.button.is-info.is-focused{border-color:transparent;color:#fff}.button.is-info:focus:not(:active),.button.is-info.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.button.is-info:active,.button.is-info.is-active{background-color:#1190e3;border-color:transparent;color:#fff}.button.is-info[disabled],fieldset[disabled] .button.is-info{background-color:#209cee;border-color:transparent;box-shadow:none}.button.is-info.is-inverted{background-color:#fff;color:#209cee}.button.is-info.is-inverted:hover,.button.is-info.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-info.is-inverted[disabled],fieldset[disabled] .button.is-info.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#209cee}.button.is-info.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-info.is-outlined{background-color:transparent;border-color:#209cee;color:#209cee}.button.is-info.is-outlined:hover,.button.is-info.is-outlined.is-hovered,.button.is-info.is-outlined:focus,.button.is-info.is-outlined.is-focused{background-color:#209cee;border-color:#209cee;color:#fff}.button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #209cee #209cee !important}.button.is-info.is-outlined.is-loading:hover::after,.button.is-info.is-outlined.is-loading.is-hovered::after,.button.is-info.is-outlined.is-loading:focus::after,.button.is-info.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-info.is-outlined[disabled],fieldset[disabled] .button.is-info.is-outlined{background-color:transparent;border-color:#209cee;box-shadow:none;color:#209cee}.button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-info.is-inverted.is-outlined:hover,.button.is-info.is-inverted.is-outlined.is-hovered,.button.is-info.is-inverted.is-outlined:focus,.button.is-info.is-inverted.is-outlined.is-focused{background-color:#fff;color:#209cee}.button.is-info.is-inverted.is-outlined.is-loading:hover::after,.button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-info.is-inverted.is-outlined.is-loading:focus::after,.button.is-info.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #209cee #209cee !important}.button.is-info.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-success{background-color:#22c35b;border-color:transparent;color:#fff}.button.is-success:hover,.button.is-success.is-hovered{background-color:#20b856;border-color:transparent;color:#fff}.button.is-success:focus,.button.is-success.is-focused{border-color:transparent;color:#fff}.button.is-success:focus:not(:active),.button.is-success.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.button.is-success:active,.button.is-success.is-active{background-color:#1ead51;border-color:transparent;color:#fff}.button.is-success[disabled],fieldset[disabled] .button.is-success{background-color:#22c35b;border-color:transparent;box-shadow:none}.button.is-success.is-inverted{background-color:#fff;color:#22c35b}.button.is-success.is-inverted:hover,.button.is-success.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-success.is-inverted[disabled],fieldset[disabled] .button.is-success.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#22c35b}.button.is-success.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-success.is-outlined{background-color:transparent;border-color:#22c35b;color:#22c35b}.button.is-success.is-outlined:hover,.button.is-success.is-outlined.is-hovered,.button.is-success.is-outlined:focus,.button.is-success.is-outlined.is-focused{background-color:#22c35b;border-color:#22c35b;color:#fff}.button.is-success.is-outlined.is-loading::after{border-color:transparent transparent #22c35b #22c35b !important}.button.is-success.is-outlined.is-loading:hover::after,.button.is-success.is-outlined.is-loading.is-hovered::after,.button.is-success.is-outlined.is-loading:focus::after,.button.is-success.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-success.is-outlined[disabled],fieldset[disabled] .button.is-success.is-outlined{background-color:transparent;border-color:#22c35b;box-shadow:none;color:#22c35b}.button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-success.is-inverted.is-outlined:hover,.button.is-success.is-inverted.is-outlined.is-hovered,.button.is-success.is-inverted.is-outlined:focus,.button.is-success.is-inverted.is-outlined.is-focused{background-color:#fff;color:#22c35b}.button.is-success.is-inverted.is-outlined.is-loading:hover::after,.button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-success.is-inverted.is-outlined.is-loading:focus::after,.button.is-success.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #22c35b #22c35b !important}.button.is-success.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-warning{background-color:#ffdd57;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:hover,.button.is-warning.is-hovered{background-color:#ffda4a;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:focus,.button.is-warning.is-focused{border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:focus:not(:active),.button.is-warning.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.button.is-warning:active,.button.is-warning.is-active{background-color:#ffd83e;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning[disabled],fieldset[disabled] .button.is-warning{background-color:#ffdd57;border-color:transparent;box-shadow:none}.button.is-warning.is-inverted{background-color:rgba(0,0,0,0.7);color:#ffdd57}.button.is-warning.is-inverted:hover,.button.is-warning.is-inverted.is-hovered{background-color:rgba(0,0,0,0.7)}.button.is-warning.is-inverted[disabled],fieldset[disabled] .button.is-warning.is-inverted{background-color:rgba(0,0,0,0.7);border-color:transparent;box-shadow:none;color:#ffdd57}.button.is-warning.is-loading::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}.button.is-warning.is-outlined{background-color:transparent;border-color:#ffdd57;color:#ffdd57}.button.is-warning.is-outlined:hover,.button.is-warning.is-outlined.is-hovered,.button.is-warning.is-outlined:focus,.button.is-warning.is-outlined.is-focused{background-color:#ffdd57;border-color:#ffdd57;color:rgba(0,0,0,0.7)}.button.is-warning.is-outlined.is-loading::after{border-color:transparent transparent #ffdd57 #ffdd57 !important}.button.is-warning.is-outlined.is-loading:hover::after,.button.is-warning.is-outlined.is-loading.is-hovered::after,.button.is-warning.is-outlined.is-loading:focus::after,.button.is-warning.is-outlined.is-loading.is-focused::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}.button.is-warning.is-outlined[disabled],fieldset[disabled] .button.is-warning.is-outlined{background-color:transparent;border-color:#ffdd57;box-shadow:none;color:#ffdd57}.button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);color:rgba(0,0,0,0.7)}.button.is-warning.is-inverted.is-outlined:hover,.button.is-warning.is-inverted.is-outlined.is-hovered,.button.is-warning.is-inverted.is-outlined:focus,.button.is-warning.is-inverted.is-outlined.is-focused{background-color:rgba(0,0,0,0.7);color:#ffdd57}.button.is-warning.is-inverted.is-outlined.is-loading:hover::after,.button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-warning.is-inverted.is-outlined.is-loading:focus::after,.button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ffdd57 #ffdd57 !important}.button.is-warning.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);box-shadow:none;color:rgba(0,0,0,0.7)}.button.is-danger{background-color:#da0b00;border-color:transparent;color:#fff}.button.is-danger:hover,.button.is-danger.is-hovered{background-color:#cd0a00;border-color:transparent;color:#fff}.button.is-danger:focus,.button.is-danger.is-focused{border-color:transparent;color:#fff}.button.is-danger:focus:not(:active),.button.is-danger.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.button.is-danger:active,.button.is-danger.is-active{background-color:#c10a00;border-color:transparent;color:#fff}.button.is-danger[disabled],fieldset[disabled] .button.is-danger{background-color:#da0b00;border-color:transparent;box-shadow:none}.button.is-danger.is-inverted{background-color:#fff;color:#da0b00}.button.is-danger.is-inverted:hover,.button.is-danger.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-danger.is-inverted[disabled],fieldset[disabled] .button.is-danger.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#da0b00}.button.is-danger.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-danger.is-outlined{background-color:transparent;border-color:#da0b00;color:#da0b00}.button.is-danger.is-outlined:hover,.button.is-danger.is-outlined.is-hovered,.button.is-danger.is-outlined:focus,.button.is-danger.is-outlined.is-focused{background-color:#da0b00;border-color:#da0b00;color:#fff}.button.is-danger.is-outlined.is-loading::after{border-color:transparent transparent #da0b00 #da0b00 !important}.button.is-danger.is-outlined.is-loading:hover::after,.button.is-danger.is-outlined.is-loading.is-hovered::after,.button.is-danger.is-outlined.is-loading:focus::after,.button.is-danger.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-danger.is-outlined[disabled],fieldset[disabled] .button.is-danger.is-outlined{background-color:transparent;border-color:#da0b00;box-shadow:none;color:#da0b00}.button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-danger.is-inverted.is-outlined:hover,.button.is-danger.is-inverted.is-outlined.is-hovered,.button.is-danger.is-inverted.is-outlined:focus,.button.is-danger.is-inverted.is-outlined.is-focused{background-color:#fff;color:#da0b00}.button.is-danger.is-inverted.is-outlined.is-loading:hover::after,.button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-danger.is-inverted.is-outlined.is-loading:focus::after,.button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #da0b00 #da0b00 !important}.button.is-danger.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-small,#documenter .docs-sidebar form.docs-search>input.button{border-radius:2px;font-size:.75rem}.button.is-normal{font-size:1rem}.button.is-medium{font-size:1.25rem}.button.is-large{font-size:1.5rem}.button[disabled],fieldset[disabled] .button{background-color:#fff;border-color:#dbdbdb;box-shadow:none;opacity:.5}.button.is-fullwidth{display:flex;width:100%}.button.is-loading{color:transparent !important;pointer-events:none}.button.is-loading::after{position:absolute;left:calc(50% - (1em / 2));top:calc(50% - (1em / 2));position:absolute !important}.button.is-static{background-color:#f5f5f5;border-color:#dbdbdb;color:#6b6b6b;box-shadow:none;pointer-events:none}.button.is-rounded,#documenter .docs-sidebar form.docs-search>input.button{border-radius:290486px;padding-left:1em;padding-right:1em}.buttons{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.buttons .button{margin-bottom:0.5rem}.buttons .button:not(:last-child):not(.is-fullwidth){margin-right:0.5rem}.buttons:last-child{margin-bottom:-0.5rem}.buttons:not(:last-child){margin-bottom:1rem}.buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large){border-radius:2px;font-size:.75rem}.buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large){font-size:1.25rem}.buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium){font-size:1.5rem}.buttons.has-addons .button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.buttons.has-addons .button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}.buttons.has-addons .button:last-child{margin-right:0}.buttons.has-addons .button:hover,.buttons.has-addons .button.is-hovered{z-index:2}.buttons.has-addons .button:focus,.buttons.has-addons .button.is-focused,.buttons.has-addons .button:active,.buttons.has-addons .button.is-active,.buttons.has-addons .button.is-selected{z-index:3}.buttons.has-addons .button:focus:hover,.buttons.has-addons .button.is-focused:hover,.buttons.has-addons .button:active:hover,.buttons.has-addons .button.is-active:hover,.buttons.has-addons .button.is-selected:hover{z-index:4}.buttons.has-addons .button.is-expanded{flex-grow:1;flex-shrink:1}.buttons.is-centered{justify-content:center}.buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}.buttons.is-right{justify-content:flex-end}.buttons.is-right:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}.container{flex-grow:1;margin:0 auto;position:relative;width:auto}@media screen and (min-width: 1056px){.container{max-width:992px}.container.is-fluid{margin-left:32px;margin-right:32px;max-width:none}}@media screen and (max-width: 1215px){.container.is-widescreen{max-width:1152px}}@media screen and (max-width: 1407px){.container.is-fullhd{max-width:1344px}}@media screen and (min-width: 1216px){.container{max-width:1152px}}@media screen and (min-width: 1408px){.container{max-width:1344px}}.content li+li{margin-top:0.25em}.content p:not(:last-child),.content dl:not(:last-child),.content ol:not(:last-child),.content ul:not(:last-child),.content blockquote:not(:last-child),.content pre:not(:last-child),.content table:not(:last-child){margin-bottom:1em}.content h1,.content h2,.content h3,.content h4,.content h5,.content h6{color:#222;font-weight:600;line-height:1.125}.content h1{font-size:2em;margin-bottom:0.5em}.content h1:not(:first-child){margin-top:1em}.content h2{font-size:1.75em;margin-bottom:0.5714em}.content h2:not(:first-child){margin-top:1.1428em}.content h3{font-size:1.5em;margin-bottom:0.6666em}.content h3:not(:first-child){margin-top:1.3333em}.content h4{font-size:1.25em;margin-bottom:0.8em}.content h5{font-size:1.125em;margin-bottom:0.8888em}.content h6{font-size:1em;margin-bottom:1em}.content blockquote{background-color:#f5f5f5;border-left:5px solid #dbdbdb;padding:1.25em 1.5em}.content ol{list-style-position:outside;margin-left:2em;margin-top:1em}.content ol:not([type]){list-style-type:decimal}.content ol.is-lower-alpha:not([type]){list-style-type:lower-alpha}.content ol.is-lower-roman:not([type]){list-style-type:lower-roman}.content ol.is-upper-alpha:not([type]){list-style-type:upper-alpha}.content ol.is-upper-roman:not([type]){list-style-type:upper-roman}.content ul{list-style:disc outside;margin-left:2em;margin-top:1em}.content ul ul{list-style-type:circle;margin-top:0.5em}.content ul ul ul{list-style-type:square}.content dd{margin-left:2em}.content figure{margin-left:2em;margin-right:2em;text-align:center}.content figure:not(:first-child){margin-top:2em}.content figure:not(:last-child){margin-bottom:2em}.content figure img{display:inline-block}.content figure figcaption{font-style:italic}.content pre{-webkit-overflow-scrolling:touch;overflow-x:auto;padding:0;white-space:pre;word-wrap:normal}.content sup,.content sub{font-size:75%}.content table{width:100%}.content table td,.content table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}.content table th{color:#222}.content table th:not([align]){text-align:left}.content table thead td,.content table thead th{border-width:0 0 2px;color:#222}.content table tfoot td,.content table tfoot th{border-width:2px 0 0;color:#222}.content table tbody tr:last-child td,.content table tbody tr:last-child th{border-bottom-width:0}.content .tabs li+li{margin-top:0}.content.is-small,#documenter .docs-sidebar form.docs-search>input.content{font-size:.75rem}.content.is-medium{font-size:1.25rem}.content.is-large{font-size:1.5rem}.icon{align-items:center;display:inline-flex;justify-content:center;height:1.5rem;width:1.5rem}.icon.is-small,#documenter .docs-sidebar form.docs-search>input.icon{height:1rem;width:1rem}.icon.is-medium{height:2rem;width:2rem}.icon.is-large{height:3rem;width:3rem}.image,#documenter .docs-sidebar .docs-logo>img{display:block;position:relative}.image img,#documenter .docs-sidebar .docs-logo>img img{display:block;height:auto;width:100%}.image img.is-rounded,#documenter .docs-sidebar .docs-logo>img img.is-rounded{border-radius:290486px}.image.is-square img,#documenter .docs-sidebar .docs-logo>img.is-square img,.image.is-square .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,.image.is-1by1 img,#documenter .docs-sidebar .docs-logo>img.is-1by1 img,.image.is-1by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,.image.is-5by4 img,#documenter .docs-sidebar .docs-logo>img.is-5by4 img,.image.is-5by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,.image.is-4by3 img,#documenter .docs-sidebar .docs-logo>img.is-4by3 img,.image.is-4by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,.image.is-3by2 img,#documenter .docs-sidebar .docs-logo>img.is-3by2 img,.image.is-3by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,.image.is-5by3 img,#documenter .docs-sidebar .docs-logo>img.is-5by3 img,.image.is-5by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,.image.is-16by9 img,#documenter .docs-sidebar .docs-logo>img.is-16by9 img,.image.is-16by9 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,.image.is-2by1 img,#documenter .docs-sidebar .docs-logo>img.is-2by1 img,.image.is-2by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,.image.is-3by1 img,#documenter .docs-sidebar .docs-logo>img.is-3by1 img,.image.is-3by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,.image.is-4by5 img,#documenter .docs-sidebar .docs-logo>img.is-4by5 img,.image.is-4by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,.image.is-3by4 img,#documenter .docs-sidebar .docs-logo>img.is-3by4 img,.image.is-3by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,.image.is-2by3 img,#documenter .docs-sidebar .docs-logo>img.is-2by3 img,.image.is-2by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,.image.is-3by5 img,#documenter .docs-sidebar .docs-logo>img.is-3by5 img,.image.is-3by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,.image.is-9by16 img,#documenter .docs-sidebar .docs-logo>img.is-9by16 img,.image.is-9by16 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,.image.is-1by2 img,#documenter .docs-sidebar .docs-logo>img.is-1by2 img,.image.is-1by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,.image.is-1by3 img,#documenter .docs-sidebar .docs-logo>img.is-1by3 img,.image.is-1by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio{height:100%;width:100%}.image.is-square,#documenter .docs-sidebar .docs-logo>img.is-square,.image.is-1by1,#documenter .docs-sidebar .docs-logo>img.is-1by1{padding-top:100%}.image.is-5by4,#documenter .docs-sidebar .docs-logo>img.is-5by4{padding-top:80%}.image.is-4by3,#documenter .docs-sidebar .docs-logo>img.is-4by3{padding-top:75%}.image.is-3by2,#documenter .docs-sidebar .docs-logo>img.is-3by2{padding-top:66.6666%}.image.is-5by3,#documenter .docs-sidebar .docs-logo>img.is-5by3{padding-top:60%}.image.is-16by9,#documenter .docs-sidebar .docs-logo>img.is-16by9{padding-top:56.25%}.image.is-2by1,#documenter .docs-sidebar .docs-logo>img.is-2by1{padding-top:50%}.image.is-3by1,#documenter .docs-sidebar .docs-logo>img.is-3by1{padding-top:33.3333%}.image.is-4by5,#documenter .docs-sidebar .docs-logo>img.is-4by5{padding-top:125%}.image.is-3by4,#documenter .docs-sidebar .docs-logo>img.is-3by4{padding-top:133.3333%}.image.is-2by3,#documenter .docs-sidebar .docs-logo>img.is-2by3{padding-top:150%}.image.is-3by5,#documenter .docs-sidebar .docs-logo>img.is-3by5{padding-top:166.6666%}.image.is-9by16,#documenter .docs-sidebar .docs-logo>img.is-9by16{padding-top:177.7777%}.image.is-1by2,#documenter .docs-sidebar .docs-logo>img.is-1by2{padding-top:200%}.image.is-1by3,#documenter .docs-sidebar .docs-logo>img.is-1by3{padding-top:300%}.image.is-16x16,#documenter .docs-sidebar .docs-logo>img.is-16x16{height:16px;width:16px}.image.is-24x24,#documenter .docs-sidebar .docs-logo>img.is-24x24{height:24px;width:24px}.image.is-32x32,#documenter .docs-sidebar .docs-logo>img.is-32x32{height:32px;width:32px}.image.is-48x48,#documenter .docs-sidebar .docs-logo>img.is-48x48{height:48px;width:48px}.image.is-64x64,#documenter .docs-sidebar .docs-logo>img.is-64x64{height:64px;width:64px}.image.is-96x96,#documenter .docs-sidebar .docs-logo>img.is-96x96{height:96px;width:96px}.image.is-128x128,#documenter .docs-sidebar .docs-logo>img.is-128x128{height:128px;width:128px}.notification{background-color:#f5f5f5;border-radius:4px;padding:1.25rem 2.5rem 1.25rem 1.5rem;position:relative}.notification a:not(.button):not(.dropdown-item){color:currentColor;text-decoration:underline}.notification strong{color:currentColor}.notification code,.notification pre{background:#fff}.notification pre code{background:transparent}.notification>.delete{position:absolute;right:0.5rem;top:0.5rem}.notification .title,.notification .subtitle,.notification .content{color:currentColor}.notification.is-white{background-color:#fff;color:#0a0a0a}.notification.is-black{background-color:#0a0a0a;color:#fff}.notification.is-light{background-color:#f5f5f5;color:#363636}.notification.is-dark,.content kbd.notification{background-color:#363636;color:#f5f5f5}.notification.is-primary,.docstring>section>a.notification.docs-sourcelink{background-color:#4eb5de;color:#fff}.notification.is-link{background-color:#2e63b8;color:#fff}.notification.is-info{background-color:#209cee;color:#fff}.notification.is-success{background-color:#22c35b;color:#fff}.notification.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.notification.is-danger{background-color:#da0b00;color:#fff}.progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:290486px;display:block;height:1rem;overflow:hidden;padding:0;width:100%}.progress::-webkit-progress-bar{background-color:#dbdbdb}.progress::-webkit-progress-value{background-color:#222}.progress::-moz-progress-bar{background-color:#222}.progress::-ms-fill{background-color:#222;border:none}.progress.is-white::-webkit-progress-value{background-color:#fff}.progress.is-white::-moz-progress-bar{background-color:#fff}.progress.is-white::-ms-fill{background-color:#fff}.progress.is-white:indeterminate{background-image:linear-gradient(to right, #fff 30%, #dbdbdb 30%)}.progress.is-black::-webkit-progress-value{background-color:#0a0a0a}.progress.is-black::-moz-progress-bar{background-color:#0a0a0a}.progress.is-black::-ms-fill{background-color:#0a0a0a}.progress.is-black:indeterminate{background-image:linear-gradient(to right, #0a0a0a 30%, #dbdbdb 30%)}.progress.is-light::-webkit-progress-value{background-color:#f5f5f5}.progress.is-light::-moz-progress-bar{background-color:#f5f5f5}.progress.is-light::-ms-fill{background-color:#f5f5f5}.progress.is-light:indeterminate{background-image:linear-gradient(to right, #f5f5f5 30%, #dbdbdb 30%)}.progress.is-dark::-webkit-progress-value,.content kbd.progress::-webkit-progress-value{background-color:#363636}.progress.is-dark::-moz-progress-bar,.content kbd.progress::-moz-progress-bar{background-color:#363636}.progress.is-dark::-ms-fill,.content kbd.progress::-ms-fill{background-color:#363636}.progress.is-dark:indeterminate,.content kbd.progress:indeterminate{background-image:linear-gradient(to right, #363636 30%, #dbdbdb 30%)}.progress.is-primary::-webkit-progress-value,.docstring>section>a.progress.docs-sourcelink::-webkit-progress-value{background-color:#4eb5de}.progress.is-primary::-moz-progress-bar,.docstring>section>a.progress.docs-sourcelink::-moz-progress-bar{background-color:#4eb5de}.progress.is-primary::-ms-fill,.docstring>section>a.progress.docs-sourcelink::-ms-fill{background-color:#4eb5de}.progress.is-primary:indeterminate,.docstring>section>a.progress.docs-sourcelink:indeterminate{background-image:linear-gradient(to right, #4eb5de 30%, #dbdbdb 30%)}.progress.is-link::-webkit-progress-value{background-color:#2e63b8}.progress.is-link::-moz-progress-bar{background-color:#2e63b8}.progress.is-link::-ms-fill{background-color:#2e63b8}.progress.is-link:indeterminate{background-image:linear-gradient(to right, #2e63b8 30%, #dbdbdb 30%)}.progress.is-info::-webkit-progress-value{background-color:#209cee}.progress.is-info::-moz-progress-bar{background-color:#209cee}.progress.is-info::-ms-fill{background-color:#209cee}.progress.is-info:indeterminate{background-image:linear-gradient(to right, #209cee 30%, #dbdbdb 30%)}.progress.is-success::-webkit-progress-value{background-color:#22c35b}.progress.is-success::-moz-progress-bar{background-color:#22c35b}.progress.is-success::-ms-fill{background-color:#22c35b}.progress.is-success:indeterminate{background-image:linear-gradient(to right, #22c35b 30%, #dbdbdb 30%)}.progress.is-warning::-webkit-progress-value{background-color:#ffdd57}.progress.is-warning::-moz-progress-bar{background-color:#ffdd57}.progress.is-warning::-ms-fill{background-color:#ffdd57}.progress.is-warning:indeterminate{background-image:linear-gradient(to right, #ffdd57 30%, #dbdbdb 30%)}.progress.is-danger::-webkit-progress-value{background-color:#da0b00}.progress.is-danger::-moz-progress-bar{background-color:#da0b00}.progress.is-danger::-ms-fill{background-color:#da0b00}.progress.is-danger:indeterminate{background-image:linear-gradient(to right, #da0b00 30%, #dbdbdb 30%)}.progress:indeterminate{animation-duration:1.5s;animation-iteration-count:infinite;animation-name:moveIndeterminate;animation-timing-function:linear;background-color:#dbdbdb;background-image:linear-gradient(to right, #222 30%, #dbdbdb 30%);background-position:top left;background-repeat:no-repeat;background-size:150% 150%}.progress:indeterminate::-webkit-progress-bar{background-color:transparent}.progress:indeterminate::-moz-progress-bar{background-color:transparent}.progress.is-small,#documenter .docs-sidebar form.docs-search>input.progress{height:.75rem}.progress.is-medium{height:1.25rem}.progress.is-large{height:1.5rem}@keyframes moveIndeterminate{from{background-position:200% 0}to{background-position:-200% 0}}.table{background-color:#fff;color:#363636}.table td,.table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}.table td.is-white,.table th.is-white{background-color:#fff;border-color:#fff;color:#0a0a0a}.table td.is-black,.table th.is-black{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.table td.is-light,.table th.is-light{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.table td.is-dark,.table th.is-dark{background-color:#363636;border-color:#363636;color:#f5f5f5}.table td.is-primary,.table th.is-primary{background-color:#4eb5de;border-color:#4eb5de;color:#fff}.table td.is-link,.table th.is-link{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.table td.is-info,.table th.is-info{background-color:#209cee;border-color:#209cee;color:#fff}.table td.is-success,.table th.is-success{background-color:#22c35b;border-color:#22c35b;color:#fff}.table td.is-warning,.table th.is-warning{background-color:#ffdd57;border-color:#ffdd57;color:rgba(0,0,0,0.7)}.table td.is-danger,.table th.is-danger{background-color:#da0b00;border-color:#da0b00;color:#fff}.table td.is-narrow,.table th.is-narrow{white-space:nowrap;width:1%}.table td.is-selected,.table th.is-selected{background-color:#4eb5de;color:#fff}.table td.is-selected a,.table td.is-selected strong,.table th.is-selected a,.table th.is-selected strong{color:currentColor}.table th{color:#222}.table th:not([align]){text-align:left}.table tr.is-selected{background-color:#4eb5de;color:#fff}.table tr.is-selected a,.table tr.is-selected strong{color:currentColor}.table tr.is-selected td,.table tr.is-selected th{border-color:#fff;color:currentColor}.table thead{background-color:rgba(0,0,0,0)}.table thead td,.table thead th{border-width:0 0 2px;color:#222}.table tfoot{background-color:rgba(0,0,0,0)}.table tfoot td,.table tfoot th{border-width:2px 0 0;color:#222}.table tbody{background-color:rgba(0,0,0,0)}.table tbody tr:last-child td,.table tbody tr:last-child th{border-bottom-width:0}.table.is-bordered td,.table.is-bordered th{border-width:1px}.table.is-bordered tr:last-child td,.table.is-bordered tr:last-child th{border-bottom-width:1px}.table.is-fullwidth{width:100%}.table.is-hoverable tbody tr:not(.is-selected):hover{background-color:#fafafa}.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover{background-color:#fafafa}.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even){background-color:#f5f5f5}.table.is-narrow td,.table.is-narrow th{padding:0.25em 0.5em}.table.is-striped tbody tr:not(.is-selected):nth-child(even){background-color:#fafafa}.table-container{-webkit-overflow-scrolling:touch;overflow:auto;overflow-y:hidden;max-width:100%}.tags{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.tags .tag,.tags .content kbd,.content .tags kbd,.tags .docstring>section>a.docs-sourcelink{margin-bottom:0.5rem}.tags .tag:not(:last-child),.tags .content kbd:not(:last-child),.content .tags kbd:not(:last-child),.tags .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0.5rem}.tags:last-child{margin-bottom:-0.5rem}.tags:not(:last-child){margin-bottom:1rem}.tags.are-medium .tag:not(.is-normal):not(.is-large),.tags.are-medium .content kbd:not(.is-normal):not(.is-large),.content .tags.are-medium kbd:not(.is-normal):not(.is-large),.tags.are-medium .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-large){font-size:1rem}.tags.are-large .tag:not(.is-normal):not(.is-medium),.tags.are-large .content kbd:not(.is-normal):not(.is-medium),.content .tags.are-large kbd:not(.is-normal):not(.is-medium),.tags.are-large .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-medium){font-size:1.25rem}.tags.is-centered{justify-content:center}.tags.is-centered .tag,.tags.is-centered .content kbd,.content .tags.is-centered kbd,.tags.is-centered .docstring>section>a.docs-sourcelink{margin-right:0.25rem;margin-left:0.25rem}.tags.is-right{justify-content:flex-end}.tags.is-right .tag:not(:first-child),.tags.is-right .content kbd:not(:first-child),.content .tags.is-right kbd:not(:first-child),.tags.is-right .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0.5rem}.tags.is-right .tag:not(:last-child),.tags.is-right .content kbd:not(:last-child),.content .tags.is-right kbd:not(:last-child),.tags.is-right .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0}.tags.has-addons .tag,.tags.has-addons .content kbd,.content .tags.has-addons kbd,.tags.has-addons .docstring>section>a.docs-sourcelink{margin-right:0}.tags.has-addons .tag:not(:first-child),.tags.has-addons .content kbd:not(:first-child),.content .tags.has-addons kbd:not(:first-child),.tags.has-addons .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0;border-bottom-left-radius:0;border-top-left-radius:0}.tags.has-addons .tag:not(:last-child),.tags.has-addons .content kbd:not(:last-child),.content .tags.has-addons kbd:not(:last-child),.tags.has-addons .docstring>section>a.docs-sourcelink:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.tag:not(body),.content kbd:not(body),.docstring>section>a.docs-sourcelink:not(body){align-items:center;background-color:#f5f5f5;border-radius:4px;color:#222;display:inline-flex;font-size:.75rem;height:2em;justify-content:center;line-height:1.5;padding-left:0.75em;padding-right:0.75em;white-space:nowrap}.tag:not(body) .delete,.content kbd:not(body) .delete,.docstring>section>a.docs-sourcelink:not(body) .delete{margin-left:0.25rem;margin-right:-0.375rem}.tag.is-white:not(body),.content kbd.is-white:not(body),.docstring>section>a.docs-sourcelink.is-white:not(body){background-color:#fff;color:#0a0a0a}.tag.is-black:not(body),.content kbd.is-black:not(body),.docstring>section>a.docs-sourcelink.is-black:not(body){background-color:#0a0a0a;color:#fff}.tag.is-light:not(body),.content kbd.is-light:not(body),.docstring>section>a.docs-sourcelink.is-light:not(body){background-color:#f5f5f5;color:#363636}.tag.is-dark:not(body),.content kbd:not(body),.docstring>section>a.docs-sourcelink.is-dark:not(body),.content .docstring>section>kbd:not(body){background-color:#363636;color:#f5f5f5}.tag.is-primary:not(body),.content kbd.is-primary:not(body),.docstring>section>a.docs-sourcelink:not(body){background-color:#4eb5de;color:#fff}.tag.is-link:not(body),.content kbd.is-link:not(body),.docstring>section>a.docs-sourcelink.is-link:not(body){background-color:#2e63b8;color:#fff}.tag.is-info:not(body),.content kbd.is-info:not(body),.docstring>section>a.docs-sourcelink.is-info:not(body){background-color:#209cee;color:#fff}.tag.is-success:not(body),.content kbd.is-success:not(body),.docstring>section>a.docs-sourcelink.is-success:not(body){background-color:#22c35b;color:#fff}.tag.is-warning:not(body),.content kbd.is-warning:not(body),.docstring>section>a.docs-sourcelink.is-warning:not(body){background-color:#ffdd57;color:rgba(0,0,0,0.7)}.tag.is-danger:not(body),.content kbd.is-danger:not(body),.docstring>section>a.docs-sourcelink.is-danger:not(body){background-color:#da0b00;color:#fff}.tag.is-normal:not(body),.content kbd.is-normal:not(body),.docstring>section>a.docs-sourcelink.is-normal:not(body){font-size:.75rem}.tag.is-medium:not(body),.content kbd.is-medium:not(body),.docstring>section>a.docs-sourcelink.is-medium:not(body){font-size:1rem}.tag.is-large:not(body),.content kbd.is-large:not(body),.docstring>section>a.docs-sourcelink.is-large:not(body){font-size:1.25rem}.tag:not(body) .icon:first-child:not(:last-child),.content kbd:not(body) .icon:first-child:not(:last-child),.docstring>section>a.docs-sourcelink:not(body) .icon:first-child:not(:last-child){margin-left:-0.375em;margin-right:0.1875em}.tag:not(body) .icon:last-child:not(:first-child),.content kbd:not(body) .icon:last-child:not(:first-child),.docstring>section>a.docs-sourcelink:not(body) .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:-0.375em}.tag:not(body) .icon:first-child:last-child,.content kbd:not(body) .icon:first-child:last-child,.docstring>section>a.docs-sourcelink:not(body) .icon:first-child:last-child{margin-left:-0.375em;margin-right:-0.375em}.tag.is-delete:not(body),.content kbd.is-delete:not(body),.docstring>section>a.docs-sourcelink.is-delete:not(body){margin-left:1px;padding:0;position:relative;width:2em}.tag.is-delete:not(body)::before,.content kbd.is-delete:not(body)::before,.docstring>section>a.docs-sourcelink.is-delete:not(body)::before,.tag.is-delete:not(body)::after,.content kbd.is-delete:not(body)::after,.docstring>section>a.docs-sourcelink.is-delete:not(body)::after{background-color:currentColor;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.tag.is-delete:not(body)::before,.content kbd.is-delete:not(body)::before,.docstring>section>a.docs-sourcelink.is-delete:not(body)::before{height:1px;width:50%}.tag.is-delete:not(body)::after,.content kbd.is-delete:not(body)::after,.docstring>section>a.docs-sourcelink.is-delete:not(body)::after{height:50%;width:1px}.tag.is-delete:not(body):hover,.content kbd.is-delete:not(body):hover,.docstring>section>a.docs-sourcelink.is-delete:not(body):hover,.tag.is-delete:not(body):focus,.content kbd.is-delete:not(body):focus,.docstring>section>a.docs-sourcelink.is-delete:not(body):focus{background-color:#e8e8e8}.tag.is-delete:not(body):active,.content kbd.is-delete:not(body):active,.docstring>section>a.docs-sourcelink.is-delete:not(body):active{background-color:#dbdbdb}.tag.is-rounded:not(body),#documenter .docs-sidebar form.docs-search>input:not(body),.content kbd.is-rounded:not(body),#documenter .docs-sidebar .content form.docs-search>input:not(body),.docstring>section>a.docs-sourcelink.is-rounded:not(body){border-radius:290486px}a.tag:hover,.docstring>section>a.docs-sourcelink:hover{text-decoration:underline}.title,.subtitle{word-break:break-word}.title em,.title span,.subtitle em,.subtitle span{font-weight:inherit}.title sub,.subtitle sub{font-size:.75em}.title sup,.subtitle sup{font-size:.75em}.title .tag,.title .content kbd,.content .title kbd,.title .docstring>section>a.docs-sourcelink,.subtitle .tag,.subtitle .content kbd,.content .subtitle kbd,.subtitle .docstring>section>a.docs-sourcelink{vertical-align:middle}.title{color:#363636;font-size:2rem;font-weight:600;line-height:1.125}.title strong{color:inherit;font-weight:inherit}.title+.highlight{margin-top:-0.75rem}.title:not(.is-spaced)+.subtitle{margin-top:-1.25rem}.title.is-1{font-size:3rem}.title.is-2{font-size:2.5rem}.title.is-3{font-size:2rem}.title.is-4{font-size:1.5rem}.title.is-5{font-size:1.25rem}.title.is-6{font-size:1rem}.title.is-7{font-size:.75rem}.subtitle{color:#4a4a4a;font-size:1.25rem;font-weight:400;line-height:1.25}.subtitle strong{color:#363636;font-weight:600}.subtitle:not(.is-spaced)+.title{margin-top:-1.25rem}.subtitle.is-1{font-size:3rem}.subtitle.is-2{font-size:2.5rem}.subtitle.is-3{font-size:2rem}.subtitle.is-4{font-size:1.5rem}.subtitle.is-5{font-size:1.25rem}.subtitle.is-6{font-size:1rem}.subtitle.is-7{font-size:.75rem}.heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}.highlight{font-weight:400;max-width:100%;overflow:hidden;padding:0}.highlight pre{overflow:auto;max-width:100%}.number{align-items:center;background-color:#f5f5f5;border-radius:290486px;display:inline-flex;font-size:1.25rem;height:2em;justify-content:center;margin-right:1.5rem;min-width:2.5em;padding:0.25rem 0.5rem;text-align:center;vertical-align:top}.select select,.textarea,.input,#documenter .docs-sidebar form.docs-search>input{background-color:#fff;border-color:#dbdbdb;border-radius:4px;color:#363636}.select select::-moz-placeholder,.textarea::-moz-placeholder,.input::-moz-placeholder,#documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(54,54,54,0.3)}.select select::-webkit-input-placeholder,.textarea::-webkit-input-placeholder,.input::-webkit-input-placeholder,#documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(54,54,54,0.3)}.select select:-moz-placeholder,.textarea:-moz-placeholder,.input:-moz-placeholder,#documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(54,54,54,0.3)}.select select:-ms-input-placeholder,.textarea:-ms-input-placeholder,.input:-ms-input-placeholder,#documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(54,54,54,0.3)}.select select:hover,.textarea:hover,.input:hover,#documenter .docs-sidebar form.docs-search>input:hover,.select select.is-hovered,.is-hovered.textarea,.is-hovered.input,#documenter .docs-sidebar form.docs-search>input.is-hovered{border-color:#b5b5b5}.select select:focus,.textarea:focus,.input:focus,#documenter .docs-sidebar form.docs-search>input:focus,.select select.is-focused,.is-focused.textarea,.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.select select:active,.textarea:active,.input:active,#documenter .docs-sidebar form.docs-search>input:active,.select select.is-active,.is-active.textarea,.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{border-color:#2e63b8;box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.select select[disabled],.textarea[disabled],.input[disabled],#documenter .docs-sidebar form.docs-search>input[disabled],fieldset[disabled] .select select,.select fieldset[disabled] select,fieldset[disabled] .textarea,fieldset[disabled] .input,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input{background-color:#f5f5f5;border-color:#f5f5f5;box-shadow:none;color:#6b6b6b}.select select[disabled]::-moz-placeholder,.textarea[disabled]::-moz-placeholder,.input[disabled]::-moz-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]::-moz-placeholder,fieldset[disabled] .select select::-moz-placeholder,.select fieldset[disabled] select::-moz-placeholder,fieldset[disabled] .textarea::-moz-placeholder,fieldset[disabled] .input::-moz-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input::-moz-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input::-moz-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]::-webkit-input-placeholder,.textarea[disabled]::-webkit-input-placeholder,.input[disabled]::-webkit-input-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]::-webkit-input-placeholder,fieldset[disabled] .select select::-webkit-input-placeholder,.select fieldset[disabled] select::-webkit-input-placeholder,fieldset[disabled] .textarea::-webkit-input-placeholder,fieldset[disabled] .input::-webkit-input-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input::-webkit-input-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]:-moz-placeholder,.textarea[disabled]:-moz-placeholder,.input[disabled]:-moz-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]:-moz-placeholder,fieldset[disabled] .select select:-moz-placeholder,.select fieldset[disabled] select:-moz-placeholder,fieldset[disabled] .textarea:-moz-placeholder,fieldset[disabled] .input:-moz-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input:-moz-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input:-moz-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]:-ms-input-placeholder,.textarea[disabled]:-ms-input-placeholder,.input[disabled]:-ms-input-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]:-ms-input-placeholder,fieldset[disabled] .select select:-ms-input-placeholder,.select fieldset[disabled] select:-ms-input-placeholder,fieldset[disabled] .textarea:-ms-input-placeholder,fieldset[disabled] .input:-ms-input-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input:-ms-input-placeholder{color:rgba(107,107,107,0.3)}.textarea,.input,#documenter .docs-sidebar form.docs-search>input{box-shadow:inset 0 1px 2px rgba(10,10,10,0.1);max-width:100%;width:100%}.textarea[readonly],.input[readonly],#documenter .docs-sidebar form.docs-search>input[readonly]{box-shadow:none}.is-white.textarea,.is-white.input,#documenter .docs-sidebar form.docs-search>input.is-white{border-color:#fff}.is-white.textarea:focus,.is-white.input:focus,#documenter .docs-sidebar form.docs-search>input.is-white:focus,.is-white.is-focused.textarea,.is-white.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-white.textarea:active,.is-white.input:active,#documenter .docs-sidebar form.docs-search>input.is-white:active,.is-white.is-active.textarea,.is-white.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.is-black.textarea,.is-black.input,#documenter .docs-sidebar form.docs-search>input.is-black{border-color:#0a0a0a}.is-black.textarea:focus,.is-black.input:focus,#documenter .docs-sidebar form.docs-search>input.is-black:focus,.is-black.is-focused.textarea,.is-black.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-black.textarea:active,.is-black.input:active,#documenter .docs-sidebar form.docs-search>input.is-black:active,.is-black.is-active.textarea,.is-black.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.is-light.textarea,.is-light.input,#documenter .docs-sidebar form.docs-search>input.is-light{border-color:#f5f5f5}.is-light.textarea:focus,.is-light.input:focus,#documenter .docs-sidebar form.docs-search>input.is-light:focus,.is-light.is-focused.textarea,.is-light.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-light.textarea:active,.is-light.input:active,#documenter .docs-sidebar form.docs-search>input.is-light:active,.is-light.is-active.textarea,.is-light.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.is-dark.textarea,.content kbd.textarea,.is-dark.input,#documenter .docs-sidebar form.docs-search>input.is-dark,.content kbd.input{border-color:#363636}.is-dark.textarea:focus,.content kbd.textarea:focus,.is-dark.input:focus,#documenter .docs-sidebar form.docs-search>input.is-dark:focus,.content kbd.input:focus,.is-dark.is-focused.textarea,.content kbd.is-focused.textarea,.is-dark.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.content kbd.is-focused.input,#documenter .docs-sidebar .content form.docs-search>input.is-focused,.is-dark.textarea:active,.content kbd.textarea:active,.is-dark.input:active,#documenter .docs-sidebar form.docs-search>input.is-dark:active,.content kbd.input:active,.is-dark.is-active.textarea,.content kbd.is-active.textarea,.is-dark.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.content kbd.is-active.input,#documenter .docs-sidebar .content form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.is-primary.textarea,.docstring>section>a.textarea.docs-sourcelink,.is-primary.input,#documenter .docs-sidebar form.docs-search>input.is-primary,.docstring>section>a.input.docs-sourcelink{border-color:#4eb5de}.is-primary.textarea:focus,.docstring>section>a.textarea.docs-sourcelink:focus,.is-primary.input:focus,#documenter .docs-sidebar form.docs-search>input.is-primary:focus,.docstring>section>a.input.docs-sourcelink:focus,.is-primary.is-focused.textarea,.docstring>section>a.is-focused.textarea.docs-sourcelink,.is-primary.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.docstring>section>a.is-focused.input.docs-sourcelink,.is-primary.textarea:active,.docstring>section>a.textarea.docs-sourcelink:active,.is-primary.input:active,#documenter .docs-sidebar form.docs-search>input.is-primary:active,.docstring>section>a.input.docs-sourcelink:active,.is-primary.is-active.textarea,.docstring>section>a.is-active.textarea.docs-sourcelink,.is-primary.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.docstring>section>a.is-active.input.docs-sourcelink{box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.is-link.textarea,.is-link.input,#documenter .docs-sidebar form.docs-search>input.is-link{border-color:#2e63b8}.is-link.textarea:focus,.is-link.input:focus,#documenter .docs-sidebar form.docs-search>input.is-link:focus,.is-link.is-focused.textarea,.is-link.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-link.textarea:active,.is-link.input:active,#documenter .docs-sidebar form.docs-search>input.is-link:active,.is-link.is-active.textarea,.is-link.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.is-info.textarea,.is-info.input,#documenter .docs-sidebar form.docs-search>input.is-info{border-color:#209cee}.is-info.textarea:focus,.is-info.input:focus,#documenter .docs-sidebar form.docs-search>input.is-info:focus,.is-info.is-focused.textarea,.is-info.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-info.textarea:active,.is-info.input:active,#documenter .docs-sidebar form.docs-search>input.is-info:active,.is-info.is-active.textarea,.is-info.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.is-success.textarea,.is-success.input,#documenter .docs-sidebar form.docs-search>input.is-success{border-color:#22c35b}.is-success.textarea:focus,.is-success.input:focus,#documenter .docs-sidebar form.docs-search>input.is-success:focus,.is-success.is-focused.textarea,.is-success.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-success.textarea:active,.is-success.input:active,#documenter .docs-sidebar form.docs-search>input.is-success:active,.is-success.is-active.textarea,.is-success.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.is-warning.textarea,.is-warning.input,#documenter .docs-sidebar form.docs-search>input.is-warning{border-color:#ffdd57}.is-warning.textarea:focus,.is-warning.input:focus,#documenter .docs-sidebar form.docs-search>input.is-warning:focus,.is-warning.is-focused.textarea,.is-warning.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-warning.textarea:active,.is-warning.input:active,#documenter .docs-sidebar form.docs-search>input.is-warning:active,.is-warning.is-active.textarea,.is-warning.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.is-danger.textarea,.is-danger.input,#documenter .docs-sidebar form.docs-search>input.is-danger{border-color:#da0b00}.is-danger.textarea:focus,.is-danger.input:focus,#documenter .docs-sidebar form.docs-search>input.is-danger:focus,.is-danger.is-focused.textarea,.is-danger.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-danger.textarea:active,.is-danger.input:active,#documenter .docs-sidebar form.docs-search>input.is-danger:active,.is-danger.is-active.textarea,.is-danger.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.is-small.textarea,.is-small.input,#documenter .docs-sidebar form.docs-search>input{border-radius:2px;font-size:.75rem}.is-medium.textarea,.is-medium.input,#documenter .docs-sidebar form.docs-search>input.is-medium{font-size:1.25rem}.is-large.textarea,.is-large.input,#documenter .docs-sidebar form.docs-search>input.is-large{font-size:1.5rem}.is-fullwidth.textarea,.is-fullwidth.input,#documenter .docs-sidebar form.docs-search>input.is-fullwidth{display:block;width:100%}.is-inline.textarea,.is-inline.input,#documenter .docs-sidebar form.docs-search>input.is-inline{display:inline;width:auto}.input.is-rounded,#documenter .docs-sidebar form.docs-search>input{border-radius:290486px;padding-left:1em;padding-right:1em}.input.is-static,#documenter .docs-sidebar form.docs-search>input.is-static{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0}.textarea{display:block;max-width:100%;min-width:100%;padding:0.625em;resize:vertical}.textarea:not([rows]){max-height:600px;min-height:120px}.textarea[rows]{height:initial}.textarea.has-fixed-size{resize:none}.radio,.checkbox{cursor:pointer;display:inline-block;line-height:1.25;position:relative}.radio input,.checkbox input{cursor:pointer}.radio:hover,.checkbox:hover{color:#363636}.radio[disabled],.checkbox[disabled],fieldset[disabled] .radio,fieldset[disabled] .checkbox{color:#6b6b6b;cursor:not-allowed}.radio+.radio{margin-left:0.5em}.select{display:inline-block;max-width:100%;position:relative;vertical-align:top}.select:not(.is-multiple){height:2.25em}.select:not(.is-multiple):not(.is-loading)::after{border-color:#2e63b8;right:1.125em;z-index:4}.select.is-rounded select,#documenter .docs-sidebar form.docs-search>input.select select{border-radius:290486px;padding-left:1em}.select select{cursor:pointer;display:block;font-size:1em;max-width:100%;outline:none}.select select::-ms-expand{display:none}.select select[disabled]:hover,fieldset[disabled] .select select:hover{border-color:#f5f5f5}.select select:not([multiple]){padding-right:2.5em}.select select[multiple]{height:auto;padding:0}.select select[multiple] option{padding:0.5em 1em}.select:not(.is-multiple):not(.is-loading):hover::after{border-color:#363636}.select.is-white:not(:hover)::after{border-color:#fff}.select.is-white select{border-color:#fff}.select.is-white select:hover,.select.is-white select.is-hovered{border-color:#f2f2f2}.select.is-white select:focus,.select.is-white select.is-focused,.select.is-white select:active,.select.is-white select.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.select.is-black:not(:hover)::after{border-color:#0a0a0a}.select.is-black select{border-color:#0a0a0a}.select.is-black select:hover,.select.is-black select.is-hovered{border-color:#000}.select.is-black select:focus,.select.is-black select.is-focused,.select.is-black select:active,.select.is-black select.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.select.is-light:not(:hover)::after{border-color:#f5f5f5}.select.is-light select{border-color:#f5f5f5}.select.is-light select:hover,.select.is-light select.is-hovered{border-color:#e8e8e8}.select.is-light select:focus,.select.is-light select.is-focused,.select.is-light select:active,.select.is-light select.is-active{box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.select.is-dark:not(:hover)::after,.content kbd.select:not(:hover)::after{border-color:#363636}.select.is-dark select,.content kbd.select select{border-color:#363636}.select.is-dark select:hover,.content kbd.select select:hover,.select.is-dark select.is-hovered,.content kbd.select select.is-hovered{border-color:#292929}.select.is-dark select:focus,.content kbd.select select:focus,.select.is-dark select.is-focused,.content kbd.select select.is-focused,.select.is-dark select:active,.content kbd.select select:active,.select.is-dark select.is-active,.content kbd.select select.is-active{box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.select.is-primary:not(:hover)::after,.docstring>section>a.select.docs-sourcelink:not(:hover)::after{border-color:#4eb5de}.select.is-primary select,.docstring>section>a.select.docs-sourcelink select{border-color:#4eb5de}.select.is-primary select:hover,.docstring>section>a.select.docs-sourcelink select:hover,.select.is-primary select.is-hovered,.docstring>section>a.select.docs-sourcelink select.is-hovered{border-color:#39acda}.select.is-primary select:focus,.docstring>section>a.select.docs-sourcelink select:focus,.select.is-primary select.is-focused,.docstring>section>a.select.docs-sourcelink select.is-focused,.select.is-primary select:active,.docstring>section>a.select.docs-sourcelink select:active,.select.is-primary select.is-active,.docstring>section>a.select.docs-sourcelink select.is-active{box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.select.is-link:not(:hover)::after{border-color:#2e63b8}.select.is-link select{border-color:#2e63b8}.select.is-link select:hover,.select.is-link select.is-hovered{border-color:#2958a4}.select.is-link select:focus,.select.is-link select.is-focused,.select.is-link select:active,.select.is-link select.is-active{box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.select.is-info:not(:hover)::after{border-color:#209cee}.select.is-info select{border-color:#209cee}.select.is-info select:hover,.select.is-info select.is-hovered{border-color:#1190e3}.select.is-info select:focus,.select.is-info select.is-focused,.select.is-info select:active,.select.is-info select.is-active{box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.select.is-success:not(:hover)::after{border-color:#22c35b}.select.is-success select{border-color:#22c35b}.select.is-success select:hover,.select.is-success select.is-hovered{border-color:#1ead51}.select.is-success select:focus,.select.is-success select.is-focused,.select.is-success select:active,.select.is-success select.is-active{box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.select.is-warning:not(:hover)::after{border-color:#ffdd57}.select.is-warning select{border-color:#ffdd57}.select.is-warning select:hover,.select.is-warning select.is-hovered{border-color:#ffd83e}.select.is-warning select:focus,.select.is-warning select.is-focused,.select.is-warning select:active,.select.is-warning select.is-active{box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.select.is-danger:not(:hover)::after{border-color:#da0b00}.select.is-danger select{border-color:#da0b00}.select.is-danger select:hover,.select.is-danger select.is-hovered{border-color:#c10a00}.select.is-danger select:focus,.select.is-danger select.is-focused,.select.is-danger select:active,.select.is-danger select.is-active{box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.select.is-small,#documenter .docs-sidebar form.docs-search>input.select{border-radius:2px;font-size:.75rem}.select.is-medium{font-size:1.25rem}.select.is-large{font-size:1.5rem}.select.is-disabled::after{border-color:#6b6b6b}.select.is-fullwidth{width:100%}.select.is-fullwidth select{width:100%}.select.is-loading::after{margin-top:0;position:absolute;right:0.625em;top:0.625em;transform:none}.select.is-loading.is-small:after,#documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.75rem}.select.is-loading.is-medium:after{font-size:1.25rem}.select.is-loading.is-large:after{font-size:1.5rem}.file{align-items:stretch;display:flex;justify-content:flex-start;position:relative}.file.is-white .file-cta{background-color:#fff;border-color:transparent;color:#0a0a0a}.file.is-white:hover .file-cta,.file.is-white.is-hovered .file-cta{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.file.is-white:focus .file-cta,.file.is-white.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,255,255,0.25);color:#0a0a0a}.file.is-white:active .file-cta,.file.is-white.is-active .file-cta{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.file.is-black .file-cta{background-color:#0a0a0a;border-color:transparent;color:#fff}.file.is-black:hover .file-cta,.file.is-black.is-hovered .file-cta{background-color:#040404;border-color:transparent;color:#fff}.file.is-black:focus .file-cta,.file.is-black.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(10,10,10,0.25);color:#fff}.file.is-black:active .file-cta,.file.is-black.is-active .file-cta{background-color:#000;border-color:transparent;color:#fff}.file.is-light .file-cta{background-color:#f5f5f5;border-color:transparent;color:#363636}.file.is-light:hover .file-cta,.file.is-light.is-hovered .file-cta{background-color:#eee;border-color:transparent;color:#363636}.file.is-light:focus .file-cta,.file.is-light.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(245,245,245,0.25);color:#363636}.file.is-light:active .file-cta,.file.is-light.is-active .file-cta{background-color:#e8e8e8;border-color:transparent;color:#363636}.file.is-dark .file-cta,.content kbd.file .file-cta{background-color:#363636;border-color:transparent;color:#f5f5f5}.file.is-dark:hover .file-cta,.content kbd.file:hover .file-cta,.file.is-dark.is-hovered .file-cta,.content kbd.file.is-hovered .file-cta{background-color:#2f2f2f;border-color:transparent;color:#f5f5f5}.file.is-dark:focus .file-cta,.content kbd.file:focus .file-cta,.file.is-dark.is-focused .file-cta,.content kbd.file.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(54,54,54,0.25);color:#f5f5f5}.file.is-dark:active .file-cta,.content kbd.file:active .file-cta,.file.is-dark.is-active .file-cta,.content kbd.file.is-active .file-cta{background-color:#292929;border-color:transparent;color:#f5f5f5}.file.is-primary .file-cta,.docstring>section>a.file.docs-sourcelink .file-cta{background-color:#4eb5de;border-color:transparent;color:#fff}.file.is-primary:hover .file-cta,.docstring>section>a.file.docs-sourcelink:hover .file-cta,.file.is-primary.is-hovered .file-cta,.docstring>section>a.file.is-hovered.docs-sourcelink .file-cta{background-color:#43b1dc;border-color:transparent;color:#fff}.file.is-primary:focus .file-cta,.docstring>section>a.file.docs-sourcelink:focus .file-cta,.file.is-primary.is-focused .file-cta,.docstring>section>a.file.is-focused.docs-sourcelink .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(78,181,222,0.25);color:#fff}.file.is-primary:active .file-cta,.docstring>section>a.file.docs-sourcelink:active .file-cta,.file.is-primary.is-active .file-cta,.docstring>section>a.file.is-active.docs-sourcelink .file-cta{background-color:#39acda;border-color:transparent;color:#fff}.file.is-link .file-cta{background-color:#2e63b8;border-color:transparent;color:#fff}.file.is-link:hover .file-cta,.file.is-link.is-hovered .file-cta{background-color:#2b5eae;border-color:transparent;color:#fff}.file.is-link:focus .file-cta,.file.is-link.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(46,99,184,0.25);color:#fff}.file.is-link:active .file-cta,.file.is-link.is-active .file-cta{background-color:#2958a4;border-color:transparent;color:#fff}.file.is-info .file-cta{background-color:#209cee;border-color:transparent;color:#fff}.file.is-info:hover .file-cta,.file.is-info.is-hovered .file-cta{background-color:#1497ed;border-color:transparent;color:#fff}.file.is-info:focus .file-cta,.file.is-info.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(32,156,238,0.25);color:#fff}.file.is-info:active .file-cta,.file.is-info.is-active .file-cta{background-color:#1190e3;border-color:transparent;color:#fff}.file.is-success .file-cta{background-color:#22c35b;border-color:transparent;color:#fff}.file.is-success:hover .file-cta,.file.is-success.is-hovered .file-cta{background-color:#20b856;border-color:transparent;color:#fff}.file.is-success:focus .file-cta,.file.is-success.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(34,195,91,0.25);color:#fff}.file.is-success:active .file-cta,.file.is-success.is-active .file-cta{background-color:#1ead51;border-color:transparent;color:#fff}.file.is-warning .file-cta{background-color:#ffdd57;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-warning:hover .file-cta,.file.is-warning.is-hovered .file-cta{background-color:#ffda4a;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-warning:focus .file-cta,.file.is-warning.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,221,87,0.25);color:rgba(0,0,0,0.7)}.file.is-warning:active .file-cta,.file.is-warning.is-active .file-cta{background-color:#ffd83e;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-danger .file-cta{background-color:#da0b00;border-color:transparent;color:#fff}.file.is-danger:hover .file-cta,.file.is-danger.is-hovered .file-cta{background-color:#cd0a00;border-color:transparent;color:#fff}.file.is-danger:focus .file-cta,.file.is-danger.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(218,11,0,0.25);color:#fff}.file.is-danger:active .file-cta,.file.is-danger.is-active .file-cta{background-color:#c10a00;border-color:transparent;color:#fff}.file.is-small,#documenter .docs-sidebar form.docs-search>input.file{font-size:.75rem}.file.is-medium{font-size:1.25rem}.file.is-medium .file-icon .fa{font-size:21px}.file.is-large{font-size:1.5rem}.file.is-large .file-icon .fa{font-size:28px}.file.has-name .file-cta{border-bottom-right-radius:0;border-top-right-radius:0}.file.has-name .file-name{border-bottom-left-radius:0;border-top-left-radius:0}.file.has-name.is-empty .file-cta{border-radius:4px}.file.has-name.is-empty .file-name{display:none}.file.is-boxed .file-label{flex-direction:column}.file.is-boxed .file-cta{flex-direction:column;height:auto;padding:1em 3em}.file.is-boxed .file-name{border-width:0 1px 1px}.file.is-boxed .file-icon{height:1.5em;width:1.5em}.file.is-boxed .file-icon .fa{font-size:21px}.file.is-boxed.is-small .file-icon .fa,#documenter .docs-sidebar form.docs-search>input.is-boxed .file-icon .fa{font-size:14px}.file.is-boxed.is-medium .file-icon .fa{font-size:28px}.file.is-boxed.is-large .file-icon .fa{font-size:35px}.file.is-boxed.has-name .file-cta{border-radius:4px 4px 0 0}.file.is-boxed.has-name .file-name{border-radius:0 0 4px 4px;border-width:0 1px 1px}.file.is-centered{justify-content:center}.file.is-fullwidth .file-label{width:100%}.file.is-fullwidth .file-name{flex-grow:1;max-width:none}.file.is-right{justify-content:flex-end}.file.is-right .file-cta{border-radius:0 4px 4px 0}.file.is-right .file-name{border-radius:4px 0 0 4px;border-width:1px 0 1px 1px;order:-1}.file-label{align-items:stretch;display:flex;cursor:pointer;justify-content:flex-start;overflow:hidden;position:relative}.file-label:hover .file-cta{background-color:#eee;color:#363636}.file-label:hover .file-name{border-color:#d5d5d5}.file-label:active .file-cta{background-color:#e8e8e8;color:#363636}.file-label:active .file-name{border-color:#cfcfcf}.file-input{height:100%;left:0;opacity:0;outline:none;position:absolute;top:0;width:100%}.file-cta,.file-name{border-color:#dbdbdb;border-radius:4px;font-size:1em;padding-left:1em;padding-right:1em;white-space:nowrap}.file-cta{background-color:#f5f5f5;color:#4a4a4a}.file-name{border-color:#dbdbdb;border-style:solid;border-width:1px 1px 1px 0;display:block;max-width:16em;overflow:hidden;text-align:left;text-overflow:ellipsis}.file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-right:0.5em;width:1em}.file-icon .fa{font-size:14px}.label{color:#363636;display:block;font-size:1rem;font-weight:700}.label:not(:last-child){margin-bottom:0.5em}.label.is-small,#documenter .docs-sidebar form.docs-search>input.label{font-size:.75rem}.label.is-medium{font-size:1.25rem}.label.is-large{font-size:1.5rem}.help{display:block;font-size:.75rem;margin-top:0.25rem}.help.is-white{color:#fff}.help.is-black{color:#0a0a0a}.help.is-light{color:#f5f5f5}.help.is-dark,.content kbd.help{color:#363636}.help.is-primary,.docstring>section>a.help.docs-sourcelink{color:#4eb5de}.help.is-link{color:#2e63b8}.help.is-info{color:#209cee}.help.is-success{color:#22c35b}.help.is-warning{color:#ffdd57}.help.is-danger{color:#da0b00}.field:not(:last-child){margin-bottom:0.75rem}.field.has-addons{display:flex;justify-content:flex-start}.field.has-addons .control:not(:last-child){margin-right:-1px}.field.has-addons .control:not(:first-child):not(:last-child) .button,.field.has-addons .control:not(:first-child):not(:last-child) .input,.field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search>input,.field.has-addons .control:not(:first-child):not(:last-child) .select select{border-radius:0}.field.has-addons .control:first-child:not(:only-child) .button,.field.has-addons .control:first-child:not(:only-child) .input,.field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search>input,.field.has-addons .control:first-child:not(:only-child) .select select{border-bottom-right-radius:0;border-top-right-radius:0}.field.has-addons .control:last-child:not(:only-child) .button,.field.has-addons .control:last-child:not(:only-child) .input,.field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search>input,.field.has-addons .control:last-child:not(:only-child) .select select{border-bottom-left-radius:0;border-top-left-radius:0}.field.has-addons .control .button:not([disabled]):hover,.field.has-addons .control .button.is-hovered:not([disabled]),.field.has-addons .control .input:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):hover,.field.has-addons .control .input.is-hovered:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-hovered:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-hovered:not([disabled]),.field.has-addons .control .select select:not([disabled]):hover,.field.has-addons .control .select select.is-hovered:not([disabled]){z-index:2}.field.has-addons .control .button:not([disabled]):focus,.field.has-addons .control .button.is-focused:not([disabled]),.field.has-addons .control .button:not([disabled]):active,.field.has-addons .control .button.is-active:not([disabled]),.field.has-addons .control .input:not([disabled]):focus,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus,.field.has-addons .control .input.is-focused:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]),.field.has-addons .control .input:not([disabled]):active,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active,.field.has-addons .control .input.is-active:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]),.field.has-addons .control .select select:not([disabled]):focus,.field.has-addons .control .select select.is-focused:not([disabled]),.field.has-addons .control .select select:not([disabled]):active,.field.has-addons .control .select select.is-active:not([disabled]){z-index:3}.field.has-addons .control .button:not([disabled]):focus:hover,.field.has-addons .control .button.is-focused:not([disabled]):hover,.field.has-addons .control .button:not([disabled]):active:hover,.field.has-addons .control .button.is-active:not([disabled]):hover,.field.has-addons .control .input:not([disabled]):focus:hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus:hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus:hover,.field.has-addons .control .input.is-focused:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]):hover,.field.has-addons .control .input:not([disabled]):active:hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active:hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active:hover,.field.has-addons .control .input.is-active:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]):hover,.field.has-addons .control .select select:not([disabled]):focus:hover,.field.has-addons .control .select select.is-focused:not([disabled]):hover,.field.has-addons .control .select select:not([disabled]):active:hover,.field.has-addons .control .select select.is-active:not([disabled]):hover{z-index:4}.field.has-addons .control.is-expanded{flex-grow:1;flex-shrink:1}.field.has-addons.has-addons-centered{justify-content:center}.field.has-addons.has-addons-right{justify-content:flex-end}.field.has-addons.has-addons-fullwidth .control{flex-grow:1;flex-shrink:0}.field.is-grouped{display:flex;justify-content:flex-start}.field.is-grouped>.control{flex-shrink:0}.field.is-grouped>.control:not(:last-child){margin-bottom:0;margin-right:0.75rem}.field.is-grouped>.control.is-expanded{flex-grow:1;flex-shrink:1}.field.is-grouped.is-grouped-centered{justify-content:center}.field.is-grouped.is-grouped-right{justify-content:flex-end}.field.is-grouped.is-grouped-multiline{flex-wrap:wrap}.field.is-grouped.is-grouped-multiline>.control:last-child,.field.is-grouped.is-grouped-multiline>.control:not(:last-child){margin-bottom:0.75rem}.field.is-grouped.is-grouped-multiline:last-child{margin-bottom:-0.75rem}.field.is-grouped.is-grouped-multiline:not(:last-child){margin-bottom:0}@media screen and (min-width: 769px),print{.field.is-horizontal{display:flex}}.field-label .label{font-size:inherit}@media screen and (max-width: 768px){.field-label{margin-bottom:0.5rem}}@media screen and (min-width: 769px),print{.field-label{flex-basis:0;flex-grow:1;flex-shrink:0;margin-right:1.5rem;text-align:right}.field-label.is-small,#documenter .docs-sidebar form.docs-search>input.field-label{font-size:.75rem;padding-top:0.375em}.field-label.is-normal{padding-top:0.375em}.field-label.is-medium{font-size:1.25rem;padding-top:0.375em}.field-label.is-large{font-size:1.5rem;padding-top:0.375em}}.field-body .field .field{margin-bottom:0}@media screen and (min-width: 769px),print{.field-body{display:flex;flex-basis:0;flex-grow:5;flex-shrink:1}.field-body .field{margin-bottom:0}.field-body>.field{flex-shrink:1}.field-body>.field:not(.is-narrow){flex-grow:1}.field-body>.field:not(:last-child){margin-right:0.75rem}}.control{box-sizing:border-box;clear:both;font-size:1rem;position:relative;text-align:left}.control.has-icons-left .input:focus~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input:focus~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input:focus~.icon,.control.has-icons-left .select:focus~.icon,.control.has-icons-right .input:focus~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input:focus~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input:focus~.icon,.control.has-icons-right .select:focus~.icon{color:#6b6b6b}.control.has-icons-left .input.is-small~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input~.icon,.control.has-icons-left .select.is-small~.icon,.control.has-icons-right .input.is-small~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input~.icon,.control.has-icons-right .select.is-small~.icon{font-size:.75rem}.control.has-icons-left .input.is-medium~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-medium~.icon,.control.has-icons-left .select.is-medium~.icon,.control.has-icons-right .input.is-medium~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-medium~.icon,.control.has-icons-right .select.is-medium~.icon{font-size:1.25rem}.control.has-icons-left .input.is-large~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-large~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-large~.icon,.control.has-icons-left .select.is-large~.icon,.control.has-icons-right .input.is-large~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-large~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-large~.icon,.control.has-icons-right .select.is-large~.icon{font-size:1.5rem}.control.has-icons-left .icon,.control.has-icons-right .icon{color:#dbdbdb;height:2.25em;pointer-events:none;position:absolute;top:0;width:2.25em;z-index:4}.control.has-icons-left .input,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input,.control.has-icons-left .select select{padding-left:2.25em}.control.has-icons-left .icon.is-left{left:0}.control.has-icons-right .input,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input,.control.has-icons-right .select select{padding-right:2.25em}.control.has-icons-right .icon.is-right{right:0}.control.is-loading::after{position:absolute !important;right:0.625em;top:0.625em;z-index:4}.control.is-loading.is-small:after,#documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.75rem}.control.is-loading.is-medium:after{font-size:1.25rem}.control.is-loading.is-large:after{font-size:1.5rem}.breadcrumb{font-size:1rem;white-space:nowrap}.breadcrumb a{align-items:center;color:#2e63b8;display:flex;justify-content:center;padding:0 .75em}.breadcrumb a:hover{color:#363636}.breadcrumb li{align-items:center;display:flex}.breadcrumb li:first-child a{padding-left:0}.breadcrumb li.is-active a{color:#222;cursor:default;pointer-events:none}.breadcrumb li+li::before{color:#b5b5b5;content:"\0002f"}.breadcrumb ul,.breadcrumb ol{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start}.breadcrumb .icon:first-child{margin-right:0.5em}.breadcrumb .icon:last-child{margin-left:0.5em}.breadcrumb.is-centered ol,.breadcrumb.is-centered ul{justify-content:center}.breadcrumb.is-right ol,.breadcrumb.is-right ul{justify-content:flex-end}.breadcrumb.is-small,#documenter .docs-sidebar form.docs-search>input.breadcrumb{font-size:.75rem}.breadcrumb.is-medium{font-size:1.25rem}.breadcrumb.is-large{font-size:1.5rem}.breadcrumb.has-arrow-separator li+li::before{content:"\02192"}.breadcrumb.has-bullet-separator li+li::before{content:"\02022"}.breadcrumb.has-dot-separator li+li::before{content:"\000b7"}.breadcrumb.has-succeeds-separator li+li::before{content:"\0227B"}.card{background-color:#fff;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);color:#222;max-width:100%;position:relative}.card-header{background-color:rgba(0,0,0,0);align-items:stretch;box-shadow:0 1px 2px rgba(10,10,10,0.1);display:flex}.card-header-title{align-items:center;color:#222;display:flex;flex-grow:1;font-weight:700;padding:.75rem}.card-header-title.is-centered{justify-content:center}.card-header-icon{align-items:center;cursor:pointer;display:flex;justify-content:center;padding:.75rem}.card-image{display:block;position:relative}.card-content{background-color:rgba(0,0,0,0);padding:1.5rem}.card-footer{background-color:rgba(0,0,0,0);border-top:1px solid #dbdbdb;align-items:stretch;display:flex}.card-footer-item{align-items:center;display:flex;flex-basis:0;flex-grow:1;flex-shrink:0;justify-content:center;padding:.75rem}.card-footer-item:not(:last-child){border-right:1px solid #dbdbdb}.card .media:not(:last-child){margin-bottom:1.5rem}.dropdown{display:inline-flex;position:relative;vertical-align:top}.dropdown.is-active .dropdown-menu,.dropdown.is-hoverable:hover .dropdown-menu{display:block}.dropdown.is-right .dropdown-menu{left:auto;right:0}.dropdown.is-up .dropdown-menu{bottom:100%;padding-bottom:4px;padding-top:initial;top:auto}.dropdown-menu{display:none;left:0;min-width:12rem;padding-top:4px;position:absolute;top:100%;z-index:20}.dropdown-content{background-color:#fff;border-radius:4px;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);padding-bottom:.5rem;padding-top:.5rem}.dropdown-item{color:#4a4a4a;display:block;font-size:0.875rem;line-height:1.5;padding:0.375rem 1rem;position:relative}a.dropdown-item,button.dropdown-item{padding-right:3rem;text-align:left;white-space:nowrap;width:100%}a.dropdown-item:hover,button.dropdown-item:hover{background-color:#f5f5f5;color:#0a0a0a}a.dropdown-item.is-active,button.dropdown-item.is-active{background-color:#2e63b8;color:#fff}.dropdown-divider{background-color:#dbdbdb;border:none;display:block;height:1px;margin:0.5rem 0}.level{align-items:center;justify-content:space-between}.level code{border-radius:4px}.level img{display:inline-block;vertical-align:top}.level.is-mobile{display:flex}.level.is-mobile .level-left,.level.is-mobile .level-right{display:flex}.level.is-mobile .level-left+.level-right{margin-top:0}.level.is-mobile .level-item:not(:last-child){margin-bottom:0;margin-right:.75rem}.level.is-mobile .level-item:not(.is-narrow){flex-grow:1}@media screen and (min-width: 769px),print{.level{display:flex}.level>.level-item:not(.is-narrow){flex-grow:1}}.level-item{align-items:center;display:flex;flex-basis:auto;flex-grow:0;flex-shrink:0;justify-content:center}.level-item .title,.level-item .subtitle{margin-bottom:0}@media screen and (max-width: 768px){.level-item:not(:last-child){margin-bottom:.75rem}}.level-left,.level-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.level-left .level-item.is-flexible,.level-right .level-item.is-flexible{flex-grow:1}@media screen and (min-width: 769px),print{.level-left .level-item:not(:last-child),.level-right .level-item:not(:last-child){margin-right:.75rem}}.level-left{align-items:center;justify-content:flex-start}@media screen and (max-width: 768px){.level-left+.level-right{margin-top:1.5rem}}@media screen and (min-width: 769px),print{.level-left{display:flex}}.level-right{align-items:center;justify-content:flex-end}@media screen and (min-width: 769px),print{.level-right{display:flex}}.list{background-color:#fff;border-radius:4px;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1)}.list-item{display:block;padding:0.5em 1em}.list-item:not(a){color:#222}.list-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-item:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px}.list-item:not(:last-child){border-bottom:1px solid #dbdbdb}.list-item.is-active{background-color:#2e63b8;color:#fff}a.list-item{background-color:#f5f5f5;cursor:pointer}.media{align-items:flex-start;display:flex;text-align:left}.media .content:not(:last-child){margin-bottom:0.75rem}.media .media{border-top:1px solid rgba(219,219,219,0.5);display:flex;padding-top:0.75rem}.media .media .content:not(:last-child),.media .media .control:not(:last-child){margin-bottom:0.5rem}.media .media .media{padding-top:0.5rem}.media .media .media+.media{margin-top:0.5rem}.media+.media{border-top:1px solid rgba(219,219,219,0.5);margin-top:1rem;padding-top:1rem}.media.is-large+.media{margin-top:1.5rem;padding-top:1.5rem}.media-left,.media-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.media-left{margin-right:1rem}.media-right{margin-left:1rem}.media-content{flex-basis:auto;flex-grow:1;flex-shrink:1;text-align:left}@media screen and (max-width: 768px){.media-content{overflow-x:auto}}.menu{font-size:1rem}.menu.is-small,#documenter .docs-sidebar form.docs-search>input.menu{font-size:.75rem}.menu.is-medium{font-size:1.25rem}.menu.is-large{font-size:1.5rem}.menu-list{line-height:1.25}.menu-list a{border-radius:2px;color:#222;display:block;padding:0.5em 0.75em}.menu-list a:hover{background-color:#f5f5f5;color:#222}.menu-list a.is-active{background-color:#2e63b8;color:#fff}.menu-list li ul{border-left:1px solid #dbdbdb;margin:.75em;padding-left:.75em}.menu-label{color:#6b6b6b;font-size:.75em;letter-spacing:.1em;text-transform:uppercase}.menu-label:not(:first-child){margin-top:1em}.menu-label:not(:last-child){margin-bottom:1em}.message{background-color:#f5f5f5;border-radius:4px;font-size:1rem}.message strong{color:currentColor}.message a:not(.button):not(.tag):not(.dropdown-item){color:currentColor;text-decoration:underline}.message.is-small,#documenter .docs-sidebar form.docs-search>input.message{font-size:.75rem}.message.is-medium{font-size:1.25rem}.message.is-large{font-size:1.5rem}.message.is-white{background-color:#fff}.message.is-white .message-header{background-color:#fff;color:#0a0a0a}.message.is-white .message-body{border-color:#fff;color:#4d4d4d}.message.is-black{background-color:#fafafa}.message.is-black .message-header{background-color:#0a0a0a;color:#fff}.message.is-black .message-body{border-color:#0a0a0a;color:#090909}.message.is-light{background-color:#fafafa}.message.is-light .message-header{background-color:#f5f5f5;color:#363636}.message.is-light .message-body{border-color:#f5f5f5;color:#505050}.message.is-dark,.content kbd.message{background-color:#fafafa}.message.is-dark .message-header,.content kbd.message .message-header{background-color:#363636;color:#f5f5f5}.message.is-dark .message-body,.content kbd.message .message-body{border-color:#363636;color:#2a2a2a}.message.is-primary,.docstring>section>a.message.docs-sourcelink{background-color:#f6fbfd}.message.is-primary .message-header,.docstring>section>a.message.docs-sourcelink .message-header{background-color:#4eb5de;color:#fff}.message.is-primary .message-body,.docstring>section>a.message.docs-sourcelink .message-body{border-color:#4eb5de;color:#1f556a}.message.is-link{background-color:#f7f9fd}.message.is-link .message-header{background-color:#2e63b8;color:#fff}.message.is-link .message-body{border-color:#2e63b8;color:#264981}.message.is-info{background-color:#f6fbfe}.message.is-info .message-header{background-color:#209cee;color:#fff}.message.is-info .message-body{border-color:#209cee;color:#12537d}.message.is-success{background-color:#f6fdf9}.message.is-success .message-header{background-color:#22c35b;color:#fff}.message.is-success .message-body{border-color:#22c35b;color:#0f361d}.message.is-warning{background-color:#fffdf5}.message.is-warning .message-header{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.message.is-warning .message-body{border-color:#ffdd57;color:#3c3108}.message.is-danger{background-color:#fff5f5}.message.is-danger .message-header{background-color:#da0b00;color:#fff}.message.is-danger .message-body{border-color:#da0b00;color:#9b0c04}.message-header{align-items:center;background-color:#222;border-radius:4px 4px 0 0;color:#fff;display:flex;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.75em 1em;position:relative}.message-header .delete{flex-grow:0;flex-shrink:0;margin-left:0.75em}.message-header+.message-body{border-width:0;border-top-left-radius:0;border-top-right-radius:0}.message-body{border-color:#dbdbdb;border-radius:4px;border-style:solid;border-width:0 0 0 4px;color:#222;padding:1.25em 1.5em}.message-body code,.message-body pre{background-color:#fff}.message-body pre code{background-color:rgba(0,0,0,0)}.modal{align-items:center;display:none;flex-direction:column;justify-content:center;overflow:hidden;position:fixed;z-index:40}.modal.is-active{display:flex}.modal-background{background-color:rgba(10,10,10,0.86)}.modal-content,.modal-card{margin:0 20px;max-height:calc(100vh - 160px);overflow:auto;position:relative;width:100%}@media screen and (min-width: 769px),print{.modal-content,.modal-card{margin:0 auto;max-height:calc(100vh - 40px);width:640px}}.modal-close{background:none;height:40px;position:fixed;right:20px;top:20px;width:40px}.modal-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden;-ms-overflow-y:visible}.modal-card-head,.modal-card-foot{align-items:center;background-color:#f5f5f5;display:flex;flex-shrink:0;justify-content:flex-start;padding:20px;position:relative}.modal-card-head{border-bottom:1px solid #dbdbdb;border-top-left-radius:6px;border-top-right-radius:6px}.modal-card-title{color:#222;flex-grow:1;flex-shrink:0;font-size:1.5rem;line-height:1}.modal-card-foot{border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:1px solid #dbdbdb}.modal-card-foot .button:not(:last-child){margin-right:0.5em}.modal-card-body{-webkit-overflow-scrolling:touch;background-color:#fff;flex-grow:1;flex-shrink:1;overflow:auto;padding:20px}.navbar{background-color:#fff;min-height:3.25rem;position:relative;z-index:30}.navbar.is-white{background-color:#fff;color:#0a0a0a}.navbar.is-white .navbar-brand>.navbar-item,.navbar.is-white .navbar-brand .navbar-link{color:#0a0a0a}.navbar.is-white .navbar-brand>a.navbar-item:focus,.navbar.is-white .navbar-brand>a.navbar-item:hover,.navbar.is-white .navbar-brand>a.navbar-item.is-active,.navbar.is-white .navbar-brand .navbar-link:focus,.navbar.is-white .navbar-brand .navbar-link:hover,.navbar.is-white .navbar-brand .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-brand .navbar-link::after{border-color:#0a0a0a}.navbar.is-white .navbar-burger{color:#0a0a0a}@media screen and (min-width: 1056px){.navbar.is-white .navbar-start>.navbar-item,.navbar.is-white .navbar-start .navbar-link,.navbar.is-white .navbar-end>.navbar-item,.navbar.is-white .navbar-end .navbar-link{color:#0a0a0a}.navbar.is-white .navbar-start>a.navbar-item:focus,.navbar.is-white .navbar-start>a.navbar-item:hover,.navbar.is-white .navbar-start>a.navbar-item.is-active,.navbar.is-white .navbar-start .navbar-link:focus,.navbar.is-white .navbar-start .navbar-link:hover,.navbar.is-white .navbar-start .navbar-link.is-active,.navbar.is-white .navbar-end>a.navbar-item:focus,.navbar.is-white .navbar-end>a.navbar-item:hover,.navbar.is-white .navbar-end>a.navbar-item.is-active,.navbar.is-white .navbar-end .navbar-link:focus,.navbar.is-white .navbar-end .navbar-link:hover,.navbar.is-white .navbar-end .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-start .navbar-link::after,.navbar.is-white .navbar-end .navbar-link::after{border-color:#0a0a0a}.navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-dropdown a.navbar-item.is-active{background-color:#fff;color:#0a0a0a}}.navbar.is-black{background-color:#0a0a0a;color:#fff}.navbar.is-black .navbar-brand>.navbar-item,.navbar.is-black .navbar-brand .navbar-link{color:#fff}.navbar.is-black .navbar-brand>a.navbar-item:focus,.navbar.is-black .navbar-brand>a.navbar-item:hover,.navbar.is-black .navbar-brand>a.navbar-item.is-active,.navbar.is-black .navbar-brand .navbar-link:focus,.navbar.is-black .navbar-brand .navbar-link:hover,.navbar.is-black .navbar-brand .navbar-link.is-active{background-color:#000;color:#fff}.navbar.is-black .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-black .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-black .navbar-start>.navbar-item,.navbar.is-black .navbar-start .navbar-link,.navbar.is-black .navbar-end>.navbar-item,.navbar.is-black .navbar-end .navbar-link{color:#fff}.navbar.is-black .navbar-start>a.navbar-item:focus,.navbar.is-black .navbar-start>a.navbar-item:hover,.navbar.is-black .navbar-start>a.navbar-item.is-active,.navbar.is-black .navbar-start .navbar-link:focus,.navbar.is-black .navbar-start .navbar-link:hover,.navbar.is-black .navbar-start .navbar-link.is-active,.navbar.is-black .navbar-end>a.navbar-item:focus,.navbar.is-black .navbar-end>a.navbar-item:hover,.navbar.is-black .navbar-end>a.navbar-item.is-active,.navbar.is-black .navbar-end .navbar-link:focus,.navbar.is-black .navbar-end .navbar-link:hover,.navbar.is-black .navbar-end .navbar-link.is-active{background-color:#000;color:#fff}.navbar.is-black .navbar-start .navbar-link::after,.navbar.is-black .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link{background-color:#000;color:#fff}.navbar.is-black .navbar-dropdown a.navbar-item.is-active{background-color:#0a0a0a;color:#fff}}.navbar.is-light{background-color:#f5f5f5;color:#363636}.navbar.is-light .navbar-brand>.navbar-item,.navbar.is-light .navbar-brand .navbar-link{color:#363636}.navbar.is-light .navbar-brand>a.navbar-item:focus,.navbar.is-light .navbar-brand>a.navbar-item:hover,.navbar.is-light .navbar-brand>a.navbar-item.is-active,.navbar.is-light .navbar-brand .navbar-link:focus,.navbar.is-light .navbar-brand .navbar-link:hover,.navbar.is-light .navbar-brand .navbar-link.is-active{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-brand .navbar-link::after{border-color:#363636}.navbar.is-light .navbar-burger{color:#363636}@media screen and (min-width: 1056px){.navbar.is-light .navbar-start>.navbar-item,.navbar.is-light .navbar-start .navbar-link,.navbar.is-light .navbar-end>.navbar-item,.navbar.is-light .navbar-end .navbar-link{color:#363636}.navbar.is-light .navbar-start>a.navbar-item:focus,.navbar.is-light .navbar-start>a.navbar-item:hover,.navbar.is-light .navbar-start>a.navbar-item.is-active,.navbar.is-light .navbar-start .navbar-link:focus,.navbar.is-light .navbar-start .navbar-link:hover,.navbar.is-light .navbar-start .navbar-link.is-active,.navbar.is-light .navbar-end>a.navbar-item:focus,.navbar.is-light .navbar-end>a.navbar-item:hover,.navbar.is-light .navbar-end>a.navbar-item.is-active,.navbar.is-light .navbar-end .navbar-link:focus,.navbar.is-light .navbar-end .navbar-link:hover,.navbar.is-light .navbar-end .navbar-link.is-active{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-start .navbar-link::after,.navbar.is-light .navbar-end .navbar-link::after{border-color:#363636}.navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#363636}}.navbar.is-dark,.content kbd.navbar{background-color:#363636;color:#f5f5f5}.navbar.is-dark .navbar-brand>.navbar-item,.content kbd.navbar .navbar-brand>.navbar-item,.navbar.is-dark .navbar-brand .navbar-link,.content kbd.navbar .navbar-brand .navbar-link{color:#f5f5f5}.navbar.is-dark .navbar-brand>a.navbar-item:focus,.content kbd.navbar .navbar-brand>a.navbar-item:focus,.navbar.is-dark .navbar-brand>a.navbar-item:hover,.content kbd.navbar .navbar-brand>a.navbar-item:hover,.navbar.is-dark .navbar-brand>a.navbar-item.is-active,.content kbd.navbar .navbar-brand>a.navbar-item.is-active,.navbar.is-dark .navbar-brand .navbar-link:focus,.content kbd.navbar .navbar-brand .navbar-link:focus,.navbar.is-dark .navbar-brand .navbar-link:hover,.content kbd.navbar .navbar-brand .navbar-link:hover,.navbar.is-dark .navbar-brand .navbar-link.is-active,.content kbd.navbar .navbar-brand .navbar-link.is-active{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-brand .navbar-link::after,.content kbd.navbar .navbar-brand .navbar-link::after{border-color:#f5f5f5}.navbar.is-dark .navbar-burger,.content kbd.navbar .navbar-burger{color:#f5f5f5}@media screen and (min-width: 1056px){.navbar.is-dark .navbar-start>.navbar-item,.content kbd.navbar .navbar-start>.navbar-item,.navbar.is-dark .navbar-start .navbar-link,.content kbd.navbar .navbar-start .navbar-link,.navbar.is-dark .navbar-end>.navbar-item,.content kbd.navbar .navbar-end>.navbar-item,.navbar.is-dark .navbar-end .navbar-link,.content kbd.navbar .navbar-end .navbar-link{color:#f5f5f5}.navbar.is-dark .navbar-start>a.navbar-item:focus,.content kbd.navbar .navbar-start>a.navbar-item:focus,.navbar.is-dark .navbar-start>a.navbar-item:hover,.content kbd.navbar .navbar-start>a.navbar-item:hover,.navbar.is-dark .navbar-start>a.navbar-item.is-active,.content kbd.navbar .navbar-start>a.navbar-item.is-active,.navbar.is-dark .navbar-start .navbar-link:focus,.content kbd.navbar .navbar-start .navbar-link:focus,.navbar.is-dark .navbar-start .navbar-link:hover,.content kbd.navbar .navbar-start .navbar-link:hover,.navbar.is-dark .navbar-start .navbar-link.is-active,.content kbd.navbar .navbar-start .navbar-link.is-active,.navbar.is-dark .navbar-end>a.navbar-item:focus,.content kbd.navbar .navbar-end>a.navbar-item:focus,.navbar.is-dark .navbar-end>a.navbar-item:hover,.content kbd.navbar .navbar-end>a.navbar-item:hover,.navbar.is-dark .navbar-end>a.navbar-item.is-active,.content kbd.navbar .navbar-end>a.navbar-item.is-active,.navbar.is-dark .navbar-end .navbar-link:focus,.content kbd.navbar .navbar-end .navbar-link:focus,.navbar.is-dark .navbar-end .navbar-link:hover,.content kbd.navbar .navbar-end .navbar-link:hover,.navbar.is-dark .navbar-end .navbar-link.is-active,.content kbd.navbar .navbar-end .navbar-link.is-active{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-start .navbar-link::after,.content kbd.navbar .navbar-start .navbar-link::after,.navbar.is-dark .navbar-end .navbar-link::after,.content kbd.navbar .navbar-end .navbar-link::after{border-color:#f5f5f5}.navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link,.content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,.content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,.content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-dropdown a.navbar-item.is-active,.content kbd.navbar .navbar-dropdown a.navbar-item.is-active{background-color:#363636;color:#f5f5f5}}.navbar.is-primary,.docstring>section>a.navbar.docs-sourcelink{background-color:#4eb5de;color:#fff}.navbar.is-primary .navbar-brand>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>.navbar-item,.navbar.is-primary .navbar-brand .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link{color:#fff}.navbar.is-primary .navbar-brand>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:focus,.navbar.is-primary .navbar-brand>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:hover,.navbar.is-primary .navbar-brand>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item.is-active,.navbar.is-primary .navbar-brand .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus,.navbar.is-primary .navbar-brand .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover,.navbar.is-primary .navbar-brand .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-brand .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-primary .navbar-burger,.docstring>section>a.navbar.docs-sourcelink .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-primary .navbar-start>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-start>.navbar-item,.navbar.is-primary .navbar-start .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link,.navbar.is-primary .navbar-end>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-end>.navbar-item,.navbar.is-primary .navbar-end .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link{color:#fff}.navbar.is-primary .navbar-start>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:focus,.navbar.is-primary .navbar-start>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:hover,.navbar.is-primary .navbar-start>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item.is-active,.navbar.is-primary .navbar-start .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:focus,.navbar.is-primary .navbar-start .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:hover,.navbar.is-primary .navbar-start .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active,.navbar.is-primary .navbar-end>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:focus,.navbar.is-primary .navbar-end>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:hover,.navbar.is-primary .navbar-end>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item.is-active,.navbar.is-primary .navbar-end .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:focus,.navbar.is-primary .navbar-end .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:hover,.navbar.is-primary .navbar-end .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-start .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link::after,.navbar.is-primary .navbar-end .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-dropdown a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#4eb5de;color:#fff}}.navbar.is-link{background-color:#2e63b8;color:#fff}.navbar.is-link .navbar-brand>.navbar-item,.navbar.is-link .navbar-brand .navbar-link{color:#fff}.navbar.is-link .navbar-brand>a.navbar-item:focus,.navbar.is-link .navbar-brand>a.navbar-item:hover,.navbar.is-link .navbar-brand>a.navbar-item.is-active,.navbar.is-link .navbar-brand .navbar-link:focus,.navbar.is-link .navbar-brand .navbar-link:hover,.navbar.is-link .navbar-brand .navbar-link.is-active{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-link .navbar-start>.navbar-item,.navbar.is-link .navbar-start .navbar-link,.navbar.is-link .navbar-end>.navbar-item,.navbar.is-link .navbar-end .navbar-link{color:#fff}.navbar.is-link .navbar-start>a.navbar-item:focus,.navbar.is-link .navbar-start>a.navbar-item:hover,.navbar.is-link .navbar-start>a.navbar-item.is-active,.navbar.is-link .navbar-start .navbar-link:focus,.navbar.is-link .navbar-start .navbar-link:hover,.navbar.is-link .navbar-start .navbar-link.is-active,.navbar.is-link .navbar-end>a.navbar-item:focus,.navbar.is-link .navbar-end>a.navbar-item:hover,.navbar.is-link .navbar-end>a.navbar-item.is-active,.navbar.is-link .navbar-end .navbar-link:focus,.navbar.is-link .navbar-end .navbar-link:hover,.navbar.is-link .navbar-end .navbar-link.is-active{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-start .navbar-link::after,.navbar.is-link .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-dropdown a.navbar-item.is-active{background-color:#2e63b8;color:#fff}}.navbar.is-info{background-color:#209cee;color:#fff}.navbar.is-info .navbar-brand>.navbar-item,.navbar.is-info .navbar-brand .navbar-link{color:#fff}.navbar.is-info .navbar-brand>a.navbar-item:focus,.navbar.is-info .navbar-brand>a.navbar-item:hover,.navbar.is-info .navbar-brand>a.navbar-item.is-active,.navbar.is-info .navbar-brand .navbar-link:focus,.navbar.is-info .navbar-brand .navbar-link:hover,.navbar.is-info .navbar-brand .navbar-link.is-active{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-info .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-info .navbar-start>.navbar-item,.navbar.is-info .navbar-start .navbar-link,.navbar.is-info .navbar-end>.navbar-item,.navbar.is-info .navbar-end .navbar-link{color:#fff}.navbar.is-info .navbar-start>a.navbar-item:focus,.navbar.is-info .navbar-start>a.navbar-item:hover,.navbar.is-info .navbar-start>a.navbar-item.is-active,.navbar.is-info .navbar-start .navbar-link:focus,.navbar.is-info .navbar-start .navbar-link:hover,.navbar.is-info .navbar-start .navbar-link.is-active,.navbar.is-info .navbar-end>a.navbar-item:focus,.navbar.is-info .navbar-end>a.navbar-item:hover,.navbar.is-info .navbar-end>a.navbar-item.is-active,.navbar.is-info .navbar-end .navbar-link:focus,.navbar.is-info .navbar-end .navbar-link:hover,.navbar.is-info .navbar-end .navbar-link.is-active{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-start .navbar-link::after,.navbar.is-info .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#209cee;color:#fff}}.navbar.is-success{background-color:#22c35b;color:#fff}.navbar.is-success .navbar-brand>.navbar-item,.navbar.is-success .navbar-brand .navbar-link{color:#fff}.navbar.is-success .navbar-brand>a.navbar-item:focus,.navbar.is-success .navbar-brand>a.navbar-item:hover,.navbar.is-success .navbar-brand>a.navbar-item.is-active,.navbar.is-success .navbar-brand .navbar-link:focus,.navbar.is-success .navbar-brand .navbar-link:hover,.navbar.is-success .navbar-brand .navbar-link.is-active{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-success .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-success .navbar-start>.navbar-item,.navbar.is-success .navbar-start .navbar-link,.navbar.is-success .navbar-end>.navbar-item,.navbar.is-success .navbar-end .navbar-link{color:#fff}.navbar.is-success .navbar-start>a.navbar-item:focus,.navbar.is-success .navbar-start>a.navbar-item:hover,.navbar.is-success .navbar-start>a.navbar-item.is-active,.navbar.is-success .navbar-start .navbar-link:focus,.navbar.is-success .navbar-start .navbar-link:hover,.navbar.is-success .navbar-start .navbar-link.is-active,.navbar.is-success .navbar-end>a.navbar-item:focus,.navbar.is-success .navbar-end>a.navbar-item:hover,.navbar.is-success .navbar-end>a.navbar-item.is-active,.navbar.is-success .navbar-end .navbar-link:focus,.navbar.is-success .navbar-end .navbar-link:hover,.navbar.is-success .navbar-end .navbar-link.is-active{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-start .navbar-link::after,.navbar.is-success .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-dropdown a.navbar-item.is-active{background-color:#22c35b;color:#fff}}.navbar.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand>.navbar-item,.navbar.is-warning .navbar-brand .navbar-link{color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand>a.navbar-item:focus,.navbar.is-warning .navbar-brand>a.navbar-item:hover,.navbar.is-warning .navbar-brand>a.navbar-item.is-active,.navbar.is-warning .navbar-brand .navbar-link:focus,.navbar.is-warning .navbar-brand .navbar-link:hover,.navbar.is-warning .navbar-brand .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-burger{color:rgba(0,0,0,0.7)}@media screen and (min-width: 1056px){.navbar.is-warning .navbar-start>.navbar-item,.navbar.is-warning .navbar-start .navbar-link,.navbar.is-warning .navbar-end>.navbar-item,.navbar.is-warning .navbar-end .navbar-link{color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-start>a.navbar-item:focus,.navbar.is-warning .navbar-start>a.navbar-item:hover,.navbar.is-warning .navbar-start>a.navbar-item.is-active,.navbar.is-warning .navbar-start .navbar-link:focus,.navbar.is-warning .navbar-start .navbar-link:hover,.navbar.is-warning .navbar-start .navbar-link.is-active,.navbar.is-warning .navbar-end>a.navbar-item:focus,.navbar.is-warning .navbar-end>a.navbar-item:hover,.navbar.is-warning .navbar-end>a.navbar-item.is-active,.navbar.is-warning .navbar-end .navbar-link:focus,.navbar.is-warning .navbar-end .navbar-link:hover,.navbar.is-warning .navbar-end .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-start .navbar-link::after,.navbar.is-warning .navbar-end .navbar-link::after{border-color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-dropdown a.navbar-item.is-active{background-color:#ffdd57;color:rgba(0,0,0,0.7)}}.navbar.is-danger{background-color:#da0b00;color:#fff}.navbar.is-danger .navbar-brand>.navbar-item,.navbar.is-danger .navbar-brand .navbar-link{color:#fff}.navbar.is-danger .navbar-brand>a.navbar-item:focus,.navbar.is-danger .navbar-brand>a.navbar-item:hover,.navbar.is-danger .navbar-brand>a.navbar-item.is-active,.navbar.is-danger .navbar-brand .navbar-link:focus,.navbar.is-danger .navbar-brand .navbar-link:hover,.navbar.is-danger .navbar-brand .navbar-link.is-active{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-danger .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-danger .navbar-start>.navbar-item,.navbar.is-danger .navbar-start .navbar-link,.navbar.is-danger .navbar-end>.navbar-item,.navbar.is-danger .navbar-end .navbar-link{color:#fff}.navbar.is-danger .navbar-start>a.navbar-item:focus,.navbar.is-danger .navbar-start>a.navbar-item:hover,.navbar.is-danger .navbar-start>a.navbar-item.is-active,.navbar.is-danger .navbar-start .navbar-link:focus,.navbar.is-danger .navbar-start .navbar-link:hover,.navbar.is-danger .navbar-start .navbar-link.is-active,.navbar.is-danger .navbar-end>a.navbar-item:focus,.navbar.is-danger .navbar-end>a.navbar-item:hover,.navbar.is-danger .navbar-end>a.navbar-item.is-active,.navbar.is-danger .navbar-end .navbar-link:focus,.navbar.is-danger .navbar-end .navbar-link:hover,.navbar.is-danger .navbar-end .navbar-link.is-active{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-start .navbar-link::after,.navbar.is-danger .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-dropdown a.navbar-item.is-active{background-color:#da0b00;color:#fff}}.navbar>.container{align-items:stretch;display:flex;min-height:3.25rem;width:100%}.navbar.has-shadow{box-shadow:0 2px 0 0 #f5f5f5}.navbar.is-fixed-bottom,.navbar.is-fixed-top{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom{bottom:0}.navbar.is-fixed-bottom.has-shadow{box-shadow:0 -2px 0 0 #f5f5f5}.navbar.is-fixed-top{top:0}html.has-navbar-fixed-top,body.has-navbar-fixed-top{padding-top:3.25rem}html.has-navbar-fixed-bottom,body.has-navbar-fixed-bottom{padding-bottom:3.25rem}.navbar-brand,.navbar-tabs{align-items:stretch;display:flex;flex-shrink:0;min-height:3.25rem}.navbar-brand a.navbar-item:focus,.navbar-brand a.navbar-item:hover{background-color:transparent}.navbar-tabs{-webkit-overflow-scrolling:touch;max-width:100vw;overflow-x:auto;overflow-y:hidden}.navbar-burger{color:#4a4a4a;cursor:pointer;display:block;height:3.25rem;position:relative;width:3.25rem;margin-left:auto}.navbar-burger span{background-color:currentColor;display:block;height:1px;left:calc(50% - 8px);position:absolute;transform-origin:center;transition-duration:86ms;transition-property:background-color, opacity, transform;transition-timing-function:ease-out;width:16px}.navbar-burger span:nth-child(1){top:calc(50% - 6px)}.navbar-burger span:nth-child(2){top:calc(50% - 1px)}.navbar-burger span:nth-child(3){top:calc(50% + 4px)}.navbar-burger:hover{background-color:rgba(0,0,0,0.05)}.navbar-burger.is-active span:nth-child(1){transform:translateY(5px) rotate(45deg)}.navbar-burger.is-active span:nth-child(2){opacity:0}.navbar-burger.is-active span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}.navbar-menu{display:none}.navbar-item,.navbar-link{color:#4a4a4a;display:block;line-height:1.5;padding:0.5rem 0.75rem;position:relative}.navbar-item .icon:only-child,.navbar-link .icon:only-child{margin-left:-0.25rem;margin-right:-0.25rem}a.navbar-item,.navbar-link{cursor:pointer}a.navbar-item:focus,a.navbar-item:focus-within,a.navbar-item:hover,a.navbar-item.is-active,.navbar-link:focus,.navbar-link:focus-within,.navbar-link:hover,.navbar-link.is-active{background-color:#fafafa;color:#2e63b8}.navbar-item{display:block;flex-grow:0;flex-shrink:0}.navbar-item img{max-height:1.75rem}.navbar-item.has-dropdown{padding:0}.navbar-item.is-expanded{flex-grow:1;flex-shrink:1}.navbar-item.is-tab{border-bottom:1px solid transparent;min-height:3.25rem;padding-bottom:calc(0.5rem - 1px)}.navbar-item.is-tab:focus,.navbar-item.is-tab:hover{background-color:rgba(0,0,0,0);border-bottom-color:#2e63b8}.navbar-item.is-tab.is-active{background-color:rgba(0,0,0,0);border-bottom-color:#2e63b8;border-bottom-style:solid;border-bottom-width:3px;color:#2e63b8;padding-bottom:calc(0.5rem - 3px)}.navbar-content{flex-grow:1;flex-shrink:1}.navbar-link:not(.is-arrowless){padding-right:2.5em}.navbar-link:not(.is-arrowless)::after{border-color:#2e63b8;margin-top:-0.375em;right:1.125em}.navbar-dropdown{font-size:0.875rem;padding-bottom:0.5rem;padding-top:0.5rem}.navbar-dropdown .navbar-item{padding-left:1.5rem;padding-right:1.5rem}.navbar-divider{background-color:#f5f5f5;border:none;display:none;height:2px;margin:0.5rem 0}@media screen and (max-width: 1055px){.navbar>.container{display:block}.navbar-brand .navbar-item,.navbar-tabs .navbar-item{align-items:center;display:flex}.navbar-link::after{display:none}.navbar-menu{background-color:#fff;box-shadow:0 8px 16px rgba(10,10,10,0.1);padding:0.5rem 0}.navbar-menu.is-active{display:block}.navbar.is-fixed-bottom-touch,.navbar.is-fixed-top-touch{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom-touch{bottom:0}.navbar.is-fixed-bottom-touch.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}.navbar.is-fixed-top-touch{top:0}.navbar.is-fixed-top .navbar-menu,.navbar.is-fixed-top-touch .navbar-menu{-webkit-overflow-scrolling:touch;max-height:calc(100vh - 3.25rem);overflow:auto}html.has-navbar-fixed-top-touch,body.has-navbar-fixed-top-touch{padding-top:3.25rem}html.has-navbar-fixed-bottom-touch,body.has-navbar-fixed-bottom-touch{padding-bottom:3.25rem}}@media screen and (min-width: 1056px){.navbar,.navbar-menu,.navbar-start,.navbar-end{align-items:stretch;display:flex}.navbar{min-height:3.25rem}.navbar.is-spaced{padding:1rem 2rem}.navbar.is-spaced .navbar-start,.navbar.is-spaced .navbar-end{align-items:center}.navbar.is-spaced a.navbar-item,.navbar.is-spaced .navbar-link{border-radius:4px}.navbar.is-transparent a.navbar-item:focus,.navbar.is-transparent a.navbar-item:hover,.navbar.is-transparent a.navbar-item.is-active,.navbar.is-transparent .navbar-link:focus,.navbar.is-transparent .navbar-link:hover,.navbar.is-transparent .navbar-link.is-active{background-color:transparent !important}.navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link{background-color:transparent !important}.navbar.is-transparent .navbar-dropdown a.navbar-item:focus,.navbar.is-transparent .navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar.is-transparent .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#2e63b8}.navbar-burger{display:none}.navbar-item,.navbar-link{align-items:center;display:flex}.navbar-item{display:flex}.navbar-item.has-dropdown{align-items:stretch}.navbar-item.has-dropdown-up .navbar-link::after{transform:rotate(135deg) translate(0.25em, -0.25em)}.navbar-item.has-dropdown-up .navbar-dropdown{border-bottom:2px solid #dbdbdb;border-radius:6px 6px 0 0;border-top:none;bottom:100%;box-shadow:0 -8px 8px rgba(10,10,10,0.1);top:auto}.navbar-item.is-active .navbar-dropdown,.navbar-item.is-hoverable:focus .navbar-dropdown,.navbar-item.is-hoverable:focus-within .navbar-dropdown,.navbar-item.is-hoverable:hover .navbar-dropdown{display:block}.navbar.is-spaced .navbar-item.is-active .navbar-dropdown,.navbar-item.is-active .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown,.navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown,.navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown,.navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed{opacity:1;pointer-events:auto;transform:translateY(0)}.navbar-menu{flex-grow:1;flex-shrink:0}.navbar-start{justify-content:flex-start;margin-right:auto}.navbar-end{justify-content:flex-end;margin-left:auto}.navbar-dropdown{background-color:#fff;border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:2px solid #dbdbdb;box-shadow:0 8px 8px rgba(10,10,10,0.1);display:none;font-size:0.875rem;left:0;min-width:100%;position:absolute;top:100%;z-index:20}.navbar-dropdown .navbar-item{padding:0.375rem 1rem;white-space:nowrap}.navbar-dropdown a.navbar-item{padding-right:3rem}.navbar-dropdown a.navbar-item:focus,.navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#2e63b8}.navbar.is-spaced .navbar-dropdown,.navbar-dropdown.is-boxed{border-radius:6px;border-top:none;box-shadow:0 8px 8px rgba(10,10,10,0.1), 0 0 0 1px rgba(10,10,10,0.1);display:block;opacity:0;pointer-events:none;top:calc(100% + (-4px));transform:translateY(-5px);transition-duration:86ms;transition-property:opacity, transform}.navbar-dropdown.is-right{left:auto;right:0}.navbar-divider{display:block}.navbar>.container .navbar-brand,.container>.navbar .navbar-brand{margin-left:-.75rem}.navbar>.container .navbar-menu,.container>.navbar .navbar-menu{margin-right:-.75rem}.navbar.is-fixed-bottom-desktop,.navbar.is-fixed-top-desktop{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom-desktop{bottom:0}.navbar.is-fixed-bottom-desktop.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}.navbar.is-fixed-top-desktop{top:0}html.has-navbar-fixed-top-desktop,body.has-navbar-fixed-top-desktop{padding-top:3.25rem}html.has-navbar-fixed-bottom-desktop,body.has-navbar-fixed-bottom-desktop{padding-bottom:3.25rem}html.has-spaced-navbar-fixed-top,body.has-spaced-navbar-fixed-top{padding-top:5.25rem}html.has-spaced-navbar-fixed-bottom,body.has-spaced-navbar-fixed-bottom{padding-bottom:5.25rem}a.navbar-item.is-active,.navbar-link.is-active{color:#0a0a0a}a.navbar-item.is-active:not(:focus):not(:hover),.navbar-link.is-active:not(:focus):not(:hover){background-color:rgba(0,0,0,0)}.navbar-item.has-dropdown:focus .navbar-link,.navbar-item.has-dropdown:hover .navbar-link,.navbar-item.has-dropdown.is-active .navbar-link{background-color:#fafafa}}.hero.is-fullheight-with-navbar{min-height:calc(100vh - 3.25rem)}.pagination{font-size:1rem;margin:-.25rem}.pagination.is-small,#documenter .docs-sidebar form.docs-search>input.pagination{font-size:.75rem}.pagination.is-medium{font-size:1.25rem}.pagination.is-large{font-size:1.5rem}.pagination.is-rounded .pagination-previous,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-previous,.pagination.is-rounded .pagination-next,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-next{padding-left:1em;padding-right:1em;border-radius:290486px}.pagination.is-rounded .pagination-link,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-link{border-radius:290486px}.pagination,.pagination-list{align-items:center;display:flex;justify-content:center;text-align:center}.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis{font-size:1em;justify-content:center;margin:.25rem;padding-left:.5em;padding-right:.5em;text-align:center}.pagination-previous,.pagination-next,.pagination-link{border-color:#dbdbdb;color:#363636;min-width:2.25em}.pagination-previous:hover,.pagination-next:hover,.pagination-link:hover{border-color:#b5b5b5;color:#363636}.pagination-previous:focus,.pagination-next:focus,.pagination-link:focus{border-color:#3c5dcd}.pagination-previous:active,.pagination-next:active,.pagination-link:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2)}.pagination-previous[disabled],.pagination-next[disabled],.pagination-link[disabled]{background-color:#dbdbdb;border-color:#dbdbdb;box-shadow:none;color:#6b6b6b;opacity:0.5}.pagination-previous,.pagination-next{padding-left:0.75em;padding-right:0.75em;white-space:nowrap}.pagination-link.is-current{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.pagination-ellipsis{color:#b5b5b5;pointer-events:none}.pagination-list{flex-wrap:wrap}@media screen and (max-width: 768px){.pagination{flex-wrap:wrap}.pagination-previous,.pagination-next{flex-grow:1;flex-shrink:1}.pagination-list li{flex-grow:1;flex-shrink:1}}@media screen and (min-width: 769px),print{.pagination-list{flex-grow:1;flex-shrink:1;justify-content:flex-start;order:1}.pagination-previous{order:2}.pagination-next{order:3}.pagination{justify-content:space-between}.pagination.is-centered .pagination-previous{order:1}.pagination.is-centered .pagination-list{justify-content:center;order:2}.pagination.is-centered .pagination-next{order:3}.pagination.is-right .pagination-previous{order:1}.pagination.is-right .pagination-next{order:2}.pagination.is-right .pagination-list{justify-content:flex-end;order:3}}.panel{font-size:1rem}.panel:not(:last-child){margin-bottom:1.5rem}.panel-heading,.panel-tabs,.panel-block{border-bottom:1px solid #dbdbdb;border-left:1px solid #dbdbdb;border-right:1px solid #dbdbdb}.panel-heading:first-child,.panel-tabs:first-child,.panel-block:first-child{border-top:1px solid #dbdbdb}.panel-heading{background-color:#f5f5f5;border-radius:4px 4px 0 0;color:#222;font-size:1.25em;font-weight:300;line-height:1.25;padding:0.5em 0.75em}.panel-tabs{align-items:flex-end;display:flex;font-size:.875em;justify-content:center}.panel-tabs a{border-bottom:1px solid #dbdbdb;margin-bottom:-1px;padding:0.5em}.panel-tabs a.is-active{border-bottom-color:#4a4a4a;color:#363636}.panel-list a{color:#222}.panel-list a:hover{color:#2e63b8}.panel-block{align-items:center;color:#222;display:flex;justify-content:flex-start;padding:0.5em 0.75em}.panel-block input[type="checkbox"]{margin-right:0.75em}.panel-block>.control{flex-grow:1;flex-shrink:1;width:100%}.panel-block.is-wrapped{flex-wrap:wrap}.panel-block.is-active{border-left-color:#2e63b8;color:#363636}.panel-block.is-active .panel-icon{color:#2e63b8}a.panel-block,label.panel-block{cursor:pointer}a.panel-block:hover,label.panel-block:hover{background-color:#f5f5f5}.panel-icon{display:inline-block;font-size:14px;height:1em;line-height:1em;text-align:center;vertical-align:top;width:1em;color:#6b6b6b;margin-right:0.75em}.panel-icon .fa{font-size:inherit;line-height:inherit}.tabs{-webkit-overflow-scrolling:touch;align-items:stretch;display:flex;font-size:1rem;justify-content:space-between;overflow:hidden;overflow-x:auto;white-space:nowrap}.tabs a{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;color:#222;display:flex;justify-content:center;margin-bottom:-1px;padding:0.5em 1em;vertical-align:top}.tabs a:hover{border-bottom-color:#222;color:#222}.tabs li{display:block}.tabs li.is-active a{border-bottom-color:#2e63b8;color:#2e63b8}.tabs ul{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;display:flex;flex-grow:1;flex-shrink:0;justify-content:flex-start}.tabs ul.is-left{padding-right:0.75em}.tabs ul.is-center{flex:none;justify-content:center;padding-left:0.75em;padding-right:0.75em}.tabs ul.is-right{justify-content:flex-end;padding-left:0.75em}.tabs .icon:first-child{margin-right:0.5em}.tabs .icon:last-child{margin-left:0.5em}.tabs.is-centered ul{justify-content:center}.tabs.is-right ul{justify-content:flex-end}.tabs.is-boxed a{border:1px solid transparent;border-radius:4px 4px 0 0}.tabs.is-boxed a:hover{background-color:#f5f5f5;border-bottom-color:#dbdbdb}.tabs.is-boxed li.is-active a{background-color:#fff;border-color:#dbdbdb;border-bottom-color:rgba(0,0,0,0) !important}.tabs.is-fullwidth li{flex-grow:1;flex-shrink:0}.tabs.is-toggle a{border-color:#dbdbdb;border-style:solid;border-width:1px;margin-bottom:0;position:relative}.tabs.is-toggle a:hover{background-color:#f5f5f5;border-color:#b5b5b5;z-index:2}.tabs.is-toggle li+li{margin-left:-1px}.tabs.is-toggle li:first-child a{border-radius:4px 0 0 4px}.tabs.is-toggle li:last-child a{border-radius:0 4px 4px 0}.tabs.is-toggle li.is-active a{background-color:#2e63b8;border-color:#2e63b8;color:#fff;z-index:1}.tabs.is-toggle ul{border-bottom:none}.tabs.is-toggle.is-toggle-rounded li:first-child a{border-bottom-left-radius:290486px;border-top-left-radius:290486px;padding-left:1.25em}.tabs.is-toggle.is-toggle-rounded li:last-child a{border-bottom-right-radius:290486px;border-top-right-radius:290486px;padding-right:1.25em}.tabs.is-small,#documenter .docs-sidebar form.docs-search>input.tabs{font-size:.75rem}.tabs.is-medium{font-size:1.25rem}.tabs.is-large{font-size:1.5rem}.column{display:block;flex-basis:0;flex-grow:1;flex-shrink:1;padding:.75rem}.columns.is-mobile>.column.is-narrow{flex:none}.columns.is-mobile>.column.is-full{flex:none;width:100%}.columns.is-mobile>.column.is-three-quarters{flex:none;width:75%}.columns.is-mobile>.column.is-two-thirds{flex:none;width:66.6666%}.columns.is-mobile>.column.is-half{flex:none;width:50%}.columns.is-mobile>.column.is-one-third{flex:none;width:33.3333%}.columns.is-mobile>.column.is-one-quarter{flex:none;width:25%}.columns.is-mobile>.column.is-one-fifth{flex:none;width:20%}.columns.is-mobile>.column.is-two-fifths{flex:none;width:40%}.columns.is-mobile>.column.is-three-fifths{flex:none;width:60%}.columns.is-mobile>.column.is-four-fifths{flex:none;width:80%}.columns.is-mobile>.column.is-offset-three-quarters{margin-left:75%}.columns.is-mobile>.column.is-offset-two-thirds{margin-left:66.6666%}.columns.is-mobile>.column.is-offset-half{margin-left:50%}.columns.is-mobile>.column.is-offset-one-third{margin-left:33.3333%}.columns.is-mobile>.column.is-offset-one-quarter{margin-left:25%}.columns.is-mobile>.column.is-offset-one-fifth{margin-left:20%}.columns.is-mobile>.column.is-offset-two-fifths{margin-left:40%}.columns.is-mobile>.column.is-offset-three-fifths{margin-left:60%}.columns.is-mobile>.column.is-offset-four-fifths{margin-left:80%}.columns.is-mobile>.column.is-0{flex:none;width:0%}.columns.is-mobile>.column.is-offset-0{margin-left:0%}.columns.is-mobile>.column.is-1{flex:none;width:8.3333333333%}.columns.is-mobile>.column.is-offset-1{margin-left:8.3333333333%}.columns.is-mobile>.column.is-2{flex:none;width:16.6666666667%}.columns.is-mobile>.column.is-offset-2{margin-left:16.6666666667%}.columns.is-mobile>.column.is-3{flex:none;width:25%}.columns.is-mobile>.column.is-offset-3{margin-left:25%}.columns.is-mobile>.column.is-4{flex:none;width:33.3333333333%}.columns.is-mobile>.column.is-offset-4{margin-left:33.3333333333%}.columns.is-mobile>.column.is-5{flex:none;width:41.6666666667%}.columns.is-mobile>.column.is-offset-5{margin-left:41.6666666667%}.columns.is-mobile>.column.is-6{flex:none;width:50%}.columns.is-mobile>.column.is-offset-6{margin-left:50%}.columns.is-mobile>.column.is-7{flex:none;width:58.3333333333%}.columns.is-mobile>.column.is-offset-7{margin-left:58.3333333333%}.columns.is-mobile>.column.is-8{flex:none;width:66.6666666667%}.columns.is-mobile>.column.is-offset-8{margin-left:66.6666666667%}.columns.is-mobile>.column.is-9{flex:none;width:75%}.columns.is-mobile>.column.is-offset-9{margin-left:75%}.columns.is-mobile>.column.is-10{flex:none;width:83.3333333333%}.columns.is-mobile>.column.is-offset-10{margin-left:83.3333333333%}.columns.is-mobile>.column.is-11{flex:none;width:91.6666666667%}.columns.is-mobile>.column.is-offset-11{margin-left:91.6666666667%}.columns.is-mobile>.column.is-12{flex:none;width:100%}.columns.is-mobile>.column.is-offset-12{margin-left:100%}@media screen and (max-width: 768px){.column.is-narrow-mobile{flex:none}.column.is-full-mobile{flex:none;width:100%}.column.is-three-quarters-mobile{flex:none;width:75%}.column.is-two-thirds-mobile{flex:none;width:66.6666%}.column.is-half-mobile{flex:none;width:50%}.column.is-one-third-mobile{flex:none;width:33.3333%}.column.is-one-quarter-mobile{flex:none;width:25%}.column.is-one-fifth-mobile{flex:none;width:20%}.column.is-two-fifths-mobile{flex:none;width:40%}.column.is-three-fifths-mobile{flex:none;width:60%}.column.is-four-fifths-mobile{flex:none;width:80%}.column.is-offset-three-quarters-mobile{margin-left:75%}.column.is-offset-two-thirds-mobile{margin-left:66.6666%}.column.is-offset-half-mobile{margin-left:50%}.column.is-offset-one-third-mobile{margin-left:33.3333%}.column.is-offset-one-quarter-mobile{margin-left:25%}.column.is-offset-one-fifth-mobile{margin-left:20%}.column.is-offset-two-fifths-mobile{margin-left:40%}.column.is-offset-three-fifths-mobile{margin-left:60%}.column.is-offset-four-fifths-mobile{margin-left:80%}.column.is-0-mobile{flex:none;width:0%}.column.is-offset-0-mobile{margin-left:0%}.column.is-1-mobile{flex:none;width:8.3333333333%}.column.is-offset-1-mobile{margin-left:8.3333333333%}.column.is-2-mobile{flex:none;width:16.6666666667%}.column.is-offset-2-mobile{margin-left:16.6666666667%}.column.is-3-mobile{flex:none;width:25%}.column.is-offset-3-mobile{margin-left:25%}.column.is-4-mobile{flex:none;width:33.3333333333%}.column.is-offset-4-mobile{margin-left:33.3333333333%}.column.is-5-mobile{flex:none;width:41.6666666667%}.column.is-offset-5-mobile{margin-left:41.6666666667%}.column.is-6-mobile{flex:none;width:50%}.column.is-offset-6-mobile{margin-left:50%}.column.is-7-mobile{flex:none;width:58.3333333333%}.column.is-offset-7-mobile{margin-left:58.3333333333%}.column.is-8-mobile{flex:none;width:66.6666666667%}.column.is-offset-8-mobile{margin-left:66.6666666667%}.column.is-9-mobile{flex:none;width:75%}.column.is-offset-9-mobile{margin-left:75%}.column.is-10-mobile{flex:none;width:83.3333333333%}.column.is-offset-10-mobile{margin-left:83.3333333333%}.column.is-11-mobile{flex:none;width:91.6666666667%}.column.is-offset-11-mobile{margin-left:91.6666666667%}.column.is-12-mobile{flex:none;width:100%}.column.is-offset-12-mobile{margin-left:100%}}@media screen and (min-width: 769px),print{.column.is-narrow,.column.is-narrow-tablet{flex:none}.column.is-full,.column.is-full-tablet{flex:none;width:100%}.column.is-three-quarters,.column.is-three-quarters-tablet{flex:none;width:75%}.column.is-two-thirds,.column.is-two-thirds-tablet{flex:none;width:66.6666%}.column.is-half,.column.is-half-tablet{flex:none;width:50%}.column.is-one-third,.column.is-one-third-tablet{flex:none;width:33.3333%}.column.is-one-quarter,.column.is-one-quarter-tablet{flex:none;width:25%}.column.is-one-fifth,.column.is-one-fifth-tablet{flex:none;width:20%}.column.is-two-fifths,.column.is-two-fifths-tablet{flex:none;width:40%}.column.is-three-fifths,.column.is-three-fifths-tablet{flex:none;width:60%}.column.is-four-fifths,.column.is-four-fifths-tablet{flex:none;width:80%}.column.is-offset-three-quarters,.column.is-offset-three-quarters-tablet{margin-left:75%}.column.is-offset-two-thirds,.column.is-offset-two-thirds-tablet{margin-left:66.6666%}.column.is-offset-half,.column.is-offset-half-tablet{margin-left:50%}.column.is-offset-one-third,.column.is-offset-one-third-tablet{margin-left:33.3333%}.column.is-offset-one-quarter,.column.is-offset-one-quarter-tablet{margin-left:25%}.column.is-offset-one-fifth,.column.is-offset-one-fifth-tablet{margin-left:20%}.column.is-offset-two-fifths,.column.is-offset-two-fifths-tablet{margin-left:40%}.column.is-offset-three-fifths,.column.is-offset-three-fifths-tablet{margin-left:60%}.column.is-offset-four-fifths,.column.is-offset-four-fifths-tablet{margin-left:80%}.column.is-0,.column.is-0-tablet{flex:none;width:0%}.column.is-offset-0,.column.is-offset-0-tablet{margin-left:0%}.column.is-1,.column.is-1-tablet{flex:none;width:8.3333333333%}.column.is-offset-1,.column.is-offset-1-tablet{margin-left:8.3333333333%}.column.is-2,.column.is-2-tablet{flex:none;width:16.6666666667%}.column.is-offset-2,.column.is-offset-2-tablet{margin-left:16.6666666667%}.column.is-3,.column.is-3-tablet{flex:none;width:25%}.column.is-offset-3,.column.is-offset-3-tablet{margin-left:25%}.column.is-4,.column.is-4-tablet{flex:none;width:33.3333333333%}.column.is-offset-4,.column.is-offset-4-tablet{margin-left:33.3333333333%}.column.is-5,.column.is-5-tablet{flex:none;width:41.6666666667%}.column.is-offset-5,.column.is-offset-5-tablet{margin-left:41.6666666667%}.column.is-6,.column.is-6-tablet{flex:none;width:50%}.column.is-offset-6,.column.is-offset-6-tablet{margin-left:50%}.column.is-7,.column.is-7-tablet{flex:none;width:58.3333333333%}.column.is-offset-7,.column.is-offset-7-tablet{margin-left:58.3333333333%}.column.is-8,.column.is-8-tablet{flex:none;width:66.6666666667%}.column.is-offset-8,.column.is-offset-8-tablet{margin-left:66.6666666667%}.column.is-9,.column.is-9-tablet{flex:none;width:75%}.column.is-offset-9,.column.is-offset-9-tablet{margin-left:75%}.column.is-10,.column.is-10-tablet{flex:none;width:83.3333333333%}.column.is-offset-10,.column.is-offset-10-tablet{margin-left:83.3333333333%}.column.is-11,.column.is-11-tablet{flex:none;width:91.6666666667%}.column.is-offset-11,.column.is-offset-11-tablet{margin-left:91.6666666667%}.column.is-12,.column.is-12-tablet{flex:none;width:100%}.column.is-offset-12,.column.is-offset-12-tablet{margin-left:100%}}@media screen and (max-width: 1055px){.column.is-narrow-touch{flex:none}.column.is-full-touch{flex:none;width:100%}.column.is-three-quarters-touch{flex:none;width:75%}.column.is-two-thirds-touch{flex:none;width:66.6666%}.column.is-half-touch{flex:none;width:50%}.column.is-one-third-touch{flex:none;width:33.3333%}.column.is-one-quarter-touch{flex:none;width:25%}.column.is-one-fifth-touch{flex:none;width:20%}.column.is-two-fifths-touch{flex:none;width:40%}.column.is-three-fifths-touch{flex:none;width:60%}.column.is-four-fifths-touch{flex:none;width:80%}.column.is-offset-three-quarters-touch{margin-left:75%}.column.is-offset-two-thirds-touch{margin-left:66.6666%}.column.is-offset-half-touch{margin-left:50%}.column.is-offset-one-third-touch{margin-left:33.3333%}.column.is-offset-one-quarter-touch{margin-left:25%}.column.is-offset-one-fifth-touch{margin-left:20%}.column.is-offset-two-fifths-touch{margin-left:40%}.column.is-offset-three-fifths-touch{margin-left:60%}.column.is-offset-four-fifths-touch{margin-left:80%}.column.is-0-touch{flex:none;width:0%}.column.is-offset-0-touch{margin-left:0%}.column.is-1-touch{flex:none;width:8.3333333333%}.column.is-offset-1-touch{margin-left:8.3333333333%}.column.is-2-touch{flex:none;width:16.6666666667%}.column.is-offset-2-touch{margin-left:16.6666666667%}.column.is-3-touch{flex:none;width:25%}.column.is-offset-3-touch{margin-left:25%}.column.is-4-touch{flex:none;width:33.3333333333%}.column.is-offset-4-touch{margin-left:33.3333333333%}.column.is-5-touch{flex:none;width:41.6666666667%}.column.is-offset-5-touch{margin-left:41.6666666667%}.column.is-6-touch{flex:none;width:50%}.column.is-offset-6-touch{margin-left:50%}.column.is-7-touch{flex:none;width:58.3333333333%}.column.is-offset-7-touch{margin-left:58.3333333333%}.column.is-8-touch{flex:none;width:66.6666666667%}.column.is-offset-8-touch{margin-left:66.6666666667%}.column.is-9-touch{flex:none;width:75%}.column.is-offset-9-touch{margin-left:75%}.column.is-10-touch{flex:none;width:83.3333333333%}.column.is-offset-10-touch{margin-left:83.3333333333%}.column.is-11-touch{flex:none;width:91.6666666667%}.column.is-offset-11-touch{margin-left:91.6666666667%}.column.is-12-touch{flex:none;width:100%}.column.is-offset-12-touch{margin-left:100%}}@media screen and (min-width: 1056px){.column.is-narrow-desktop{flex:none}.column.is-full-desktop{flex:none;width:100%}.column.is-three-quarters-desktop{flex:none;width:75%}.column.is-two-thirds-desktop{flex:none;width:66.6666%}.column.is-half-desktop{flex:none;width:50%}.column.is-one-third-desktop{flex:none;width:33.3333%}.column.is-one-quarter-desktop{flex:none;width:25%}.column.is-one-fifth-desktop{flex:none;width:20%}.column.is-two-fifths-desktop{flex:none;width:40%}.column.is-three-fifths-desktop{flex:none;width:60%}.column.is-four-fifths-desktop{flex:none;width:80%}.column.is-offset-three-quarters-desktop{margin-left:75%}.column.is-offset-two-thirds-desktop{margin-left:66.6666%}.column.is-offset-half-desktop{margin-left:50%}.column.is-offset-one-third-desktop{margin-left:33.3333%}.column.is-offset-one-quarter-desktop{margin-left:25%}.column.is-offset-one-fifth-desktop{margin-left:20%}.column.is-offset-two-fifths-desktop{margin-left:40%}.column.is-offset-three-fifths-desktop{margin-left:60%}.column.is-offset-four-fifths-desktop{margin-left:80%}.column.is-0-desktop{flex:none;width:0%}.column.is-offset-0-desktop{margin-left:0%}.column.is-1-desktop{flex:none;width:8.3333333333%}.column.is-offset-1-desktop{margin-left:8.3333333333%}.column.is-2-desktop{flex:none;width:16.6666666667%}.column.is-offset-2-desktop{margin-left:16.6666666667%}.column.is-3-desktop{flex:none;width:25%}.column.is-offset-3-desktop{margin-left:25%}.column.is-4-desktop{flex:none;width:33.3333333333%}.column.is-offset-4-desktop{margin-left:33.3333333333%}.column.is-5-desktop{flex:none;width:41.6666666667%}.column.is-offset-5-desktop{margin-left:41.6666666667%}.column.is-6-desktop{flex:none;width:50%}.column.is-offset-6-desktop{margin-left:50%}.column.is-7-desktop{flex:none;width:58.3333333333%}.column.is-offset-7-desktop{margin-left:58.3333333333%}.column.is-8-desktop{flex:none;width:66.6666666667%}.column.is-offset-8-desktop{margin-left:66.6666666667%}.column.is-9-desktop{flex:none;width:75%}.column.is-offset-9-desktop{margin-left:75%}.column.is-10-desktop{flex:none;width:83.3333333333%}.column.is-offset-10-desktop{margin-left:83.3333333333%}.column.is-11-desktop{flex:none;width:91.6666666667%}.column.is-offset-11-desktop{margin-left:91.6666666667%}.column.is-12-desktop{flex:none;width:100%}.column.is-offset-12-desktop{margin-left:100%}}@media screen and (min-width: 1216px){.column.is-narrow-widescreen{flex:none}.column.is-full-widescreen{flex:none;width:100%}.column.is-three-quarters-widescreen{flex:none;width:75%}.column.is-two-thirds-widescreen{flex:none;width:66.6666%}.column.is-half-widescreen{flex:none;width:50%}.column.is-one-third-widescreen{flex:none;width:33.3333%}.column.is-one-quarter-widescreen{flex:none;width:25%}.column.is-one-fifth-widescreen{flex:none;width:20%}.column.is-two-fifths-widescreen{flex:none;width:40%}.column.is-three-fifths-widescreen{flex:none;width:60%}.column.is-four-fifths-widescreen{flex:none;width:80%}.column.is-offset-three-quarters-widescreen{margin-left:75%}.column.is-offset-two-thirds-widescreen{margin-left:66.6666%}.column.is-offset-half-widescreen{margin-left:50%}.column.is-offset-one-third-widescreen{margin-left:33.3333%}.column.is-offset-one-quarter-widescreen{margin-left:25%}.column.is-offset-one-fifth-widescreen{margin-left:20%}.column.is-offset-two-fifths-widescreen{margin-left:40%}.column.is-offset-three-fifths-widescreen{margin-left:60%}.column.is-offset-four-fifths-widescreen{margin-left:80%}.column.is-0-widescreen{flex:none;width:0%}.column.is-offset-0-widescreen{margin-left:0%}.column.is-1-widescreen{flex:none;width:8.3333333333%}.column.is-offset-1-widescreen{margin-left:8.3333333333%}.column.is-2-widescreen{flex:none;width:16.6666666667%}.column.is-offset-2-widescreen{margin-left:16.6666666667%}.column.is-3-widescreen{flex:none;width:25%}.column.is-offset-3-widescreen{margin-left:25%}.column.is-4-widescreen{flex:none;width:33.3333333333%}.column.is-offset-4-widescreen{margin-left:33.3333333333%}.column.is-5-widescreen{flex:none;width:41.6666666667%}.column.is-offset-5-widescreen{margin-left:41.6666666667%}.column.is-6-widescreen{flex:none;width:50%}.column.is-offset-6-widescreen{margin-left:50%}.column.is-7-widescreen{flex:none;width:58.3333333333%}.column.is-offset-7-widescreen{margin-left:58.3333333333%}.column.is-8-widescreen{flex:none;width:66.6666666667%}.column.is-offset-8-widescreen{margin-left:66.6666666667%}.column.is-9-widescreen{flex:none;width:75%}.column.is-offset-9-widescreen{margin-left:75%}.column.is-10-widescreen{flex:none;width:83.3333333333%}.column.is-offset-10-widescreen{margin-left:83.3333333333%}.column.is-11-widescreen{flex:none;width:91.6666666667%}.column.is-offset-11-widescreen{margin-left:91.6666666667%}.column.is-12-widescreen{flex:none;width:100%}.column.is-offset-12-widescreen{margin-left:100%}}@media screen and (min-width: 1408px){.column.is-narrow-fullhd{flex:none}.column.is-full-fullhd{flex:none;width:100%}.column.is-three-quarters-fullhd{flex:none;width:75%}.column.is-two-thirds-fullhd{flex:none;width:66.6666%}.column.is-half-fullhd{flex:none;width:50%}.column.is-one-third-fullhd{flex:none;width:33.3333%}.column.is-one-quarter-fullhd{flex:none;width:25%}.column.is-one-fifth-fullhd{flex:none;width:20%}.column.is-two-fifths-fullhd{flex:none;width:40%}.column.is-three-fifths-fullhd{flex:none;width:60%}.column.is-four-fifths-fullhd{flex:none;width:80%}.column.is-offset-three-quarters-fullhd{margin-left:75%}.column.is-offset-two-thirds-fullhd{margin-left:66.6666%}.column.is-offset-half-fullhd{margin-left:50%}.column.is-offset-one-third-fullhd{margin-left:33.3333%}.column.is-offset-one-quarter-fullhd{margin-left:25%}.column.is-offset-one-fifth-fullhd{margin-left:20%}.column.is-offset-two-fifths-fullhd{margin-left:40%}.column.is-offset-three-fifths-fullhd{margin-left:60%}.column.is-offset-four-fifths-fullhd{margin-left:80%}.column.is-0-fullhd{flex:none;width:0%}.column.is-offset-0-fullhd{margin-left:0%}.column.is-1-fullhd{flex:none;width:8.3333333333%}.column.is-offset-1-fullhd{margin-left:8.3333333333%}.column.is-2-fullhd{flex:none;width:16.6666666667%}.column.is-offset-2-fullhd{margin-left:16.6666666667%}.column.is-3-fullhd{flex:none;width:25%}.column.is-offset-3-fullhd{margin-left:25%}.column.is-4-fullhd{flex:none;width:33.3333333333%}.column.is-offset-4-fullhd{margin-left:33.3333333333%}.column.is-5-fullhd{flex:none;width:41.6666666667%}.column.is-offset-5-fullhd{margin-left:41.6666666667%}.column.is-6-fullhd{flex:none;width:50%}.column.is-offset-6-fullhd{margin-left:50%}.column.is-7-fullhd{flex:none;width:58.3333333333%}.column.is-offset-7-fullhd{margin-left:58.3333333333%}.column.is-8-fullhd{flex:none;width:66.6666666667%}.column.is-offset-8-fullhd{margin-left:66.6666666667%}.column.is-9-fullhd{flex:none;width:75%}.column.is-offset-9-fullhd{margin-left:75%}.column.is-10-fullhd{flex:none;width:83.3333333333%}.column.is-offset-10-fullhd{margin-left:83.3333333333%}.column.is-11-fullhd{flex:none;width:91.6666666667%}.column.is-offset-11-fullhd{margin-left:91.6666666667%}.column.is-12-fullhd{flex:none;width:100%}.column.is-offset-12-fullhd{margin-left:100%}}.columns{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.columns:last-child{margin-bottom:-.75rem}.columns:not(:last-child){margin-bottom:calc(1.5rem - .75rem)}.columns.is-centered{justify-content:center}.columns.is-gapless{margin-left:0;margin-right:0;margin-top:0}.columns.is-gapless>.column{margin:0;padding:0 !important}.columns.is-gapless:not(:last-child){margin-bottom:1.5rem}.columns.is-gapless:last-child{margin-bottom:0}.columns.is-mobile{display:flex}.columns.is-multiline{flex-wrap:wrap}.columns.is-vcentered{align-items:center}@media screen and (min-width: 769px),print{.columns:not(.is-desktop){display:flex}}@media screen and (min-width: 1056px){.columns.is-desktop{display:flex}}.columns.is-variable{--columnGap: 0.75rem;margin-left:calc(-1 * var(--columnGap));margin-right:calc(-1 * var(--columnGap))}.columns.is-variable .column{padding-left:var(--columnGap);padding-right:var(--columnGap)}.columns.is-variable.is-0{--columnGap: 0rem}@media screen and (max-width: 768px){.columns.is-variable.is-0-mobile{--columnGap: 0rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-0-tablet{--columnGap: 0rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-0-tablet-only{--columnGap: 0rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-0-touch{--columnGap: 0rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-0-desktop{--columnGap: 0rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-0-desktop-only{--columnGap: 0rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-0-widescreen{--columnGap: 0rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-0-widescreen-only{--columnGap: 0rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-0-fullhd{--columnGap: 0rem}}.columns.is-variable.is-1{--columnGap: .25rem}@media screen and (max-width: 768px){.columns.is-variable.is-1-mobile{--columnGap: .25rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-1-tablet{--columnGap: .25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-1-tablet-only{--columnGap: .25rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-1-touch{--columnGap: .25rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-1-desktop{--columnGap: .25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-1-desktop-only{--columnGap: .25rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-1-widescreen{--columnGap: .25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-1-widescreen-only{--columnGap: .25rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-1-fullhd{--columnGap: .25rem}}.columns.is-variable.is-2{--columnGap: .5rem}@media screen and (max-width: 768px){.columns.is-variable.is-2-mobile{--columnGap: .5rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-2-tablet{--columnGap: .5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-2-tablet-only{--columnGap: .5rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-2-touch{--columnGap: .5rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-2-desktop{--columnGap: .5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-2-desktop-only{--columnGap: .5rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-2-widescreen{--columnGap: .5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-2-widescreen-only{--columnGap: .5rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-2-fullhd{--columnGap: .5rem}}.columns.is-variable.is-3{--columnGap: .75rem}@media screen and (max-width: 768px){.columns.is-variable.is-3-mobile{--columnGap: .75rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-3-tablet{--columnGap: .75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-3-tablet-only{--columnGap: .75rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-3-touch{--columnGap: .75rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-3-desktop{--columnGap: .75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-3-desktop-only{--columnGap: .75rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-3-widescreen{--columnGap: .75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-3-widescreen-only{--columnGap: .75rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-3-fullhd{--columnGap: .75rem}}.columns.is-variable.is-4{--columnGap: 1rem}@media screen and (max-width: 768px){.columns.is-variable.is-4-mobile{--columnGap: 1rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-4-tablet{--columnGap: 1rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-4-tablet-only{--columnGap: 1rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-4-touch{--columnGap: 1rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-4-desktop{--columnGap: 1rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-4-desktop-only{--columnGap: 1rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-4-widescreen{--columnGap: 1rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-4-widescreen-only{--columnGap: 1rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-4-fullhd{--columnGap: 1rem}}.columns.is-variable.is-5{--columnGap: 1.25rem}@media screen and (max-width: 768px){.columns.is-variable.is-5-mobile{--columnGap: 1.25rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-5-tablet{--columnGap: 1.25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-5-tablet-only{--columnGap: 1.25rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-5-touch{--columnGap: 1.25rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-5-desktop{--columnGap: 1.25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-5-desktop-only{--columnGap: 1.25rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-5-widescreen{--columnGap: 1.25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-5-widescreen-only{--columnGap: 1.25rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-5-fullhd{--columnGap: 1.25rem}}.columns.is-variable.is-6{--columnGap: 1.5rem}@media screen and (max-width: 768px){.columns.is-variable.is-6-mobile{--columnGap: 1.5rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-6-tablet{--columnGap: 1.5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-6-tablet-only{--columnGap: 1.5rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-6-touch{--columnGap: 1.5rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-6-desktop{--columnGap: 1.5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-6-desktop-only{--columnGap: 1.5rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-6-widescreen{--columnGap: 1.5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-6-widescreen-only{--columnGap: 1.5rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-6-fullhd{--columnGap: 1.5rem}}.columns.is-variable.is-7{--columnGap: 1.75rem}@media screen and (max-width: 768px){.columns.is-variable.is-7-mobile{--columnGap: 1.75rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-7-tablet{--columnGap: 1.75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-7-tablet-only{--columnGap: 1.75rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-7-touch{--columnGap: 1.75rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-7-desktop{--columnGap: 1.75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-7-desktop-only{--columnGap: 1.75rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-7-widescreen{--columnGap: 1.75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-7-widescreen-only{--columnGap: 1.75rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-7-fullhd{--columnGap: 1.75rem}}.columns.is-variable.is-8{--columnGap: 2rem}@media screen and (max-width: 768px){.columns.is-variable.is-8-mobile{--columnGap: 2rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-8-tablet{--columnGap: 2rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-8-tablet-only{--columnGap: 2rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-8-touch{--columnGap: 2rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-8-desktop{--columnGap: 2rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-8-desktop-only{--columnGap: 2rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-8-widescreen{--columnGap: 2rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-8-widescreen-only{--columnGap: 2rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-8-fullhd{--columnGap: 2rem}}.tile{align-items:stretch;display:block;flex-basis:0;flex-grow:1;flex-shrink:1;min-height:min-content}.tile.is-ancestor{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.tile.is-ancestor:last-child{margin-bottom:-.75rem}.tile.is-ancestor:not(:last-child){margin-bottom:.75rem}.tile.is-child{margin:0 !important}.tile.is-parent{padding:.75rem}.tile.is-vertical{flex-direction:column}.tile.is-vertical>.tile.is-child:not(:last-child){margin-bottom:1.5rem !important}@media screen and (min-width: 769px),print{.tile:not(.is-child){display:flex}.tile.is-1{flex:none;width:8.3333333333%}.tile.is-2{flex:none;width:16.6666666667%}.tile.is-3{flex:none;width:25%}.tile.is-4{flex:none;width:33.3333333333%}.tile.is-5{flex:none;width:41.6666666667%}.tile.is-6{flex:none;width:50%}.tile.is-7{flex:none;width:58.3333333333%}.tile.is-8{flex:none;width:66.6666666667%}.tile.is-9{flex:none;width:75%}.tile.is-10{flex:none;width:83.3333333333%}.tile.is-11{flex:none;width:91.6666666667%}.tile.is-12{flex:none;width:100%}}.hero{align-items:stretch;display:flex;flex-direction:column;justify-content:space-between}.hero .navbar{background:none}.hero .tabs ul{border-bottom:none}.hero.is-white{background-color:#fff;color:#0a0a0a}.hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-white strong{color:inherit}.hero.is-white .title{color:#0a0a0a}.hero.is-white .subtitle{color:rgba(10,10,10,0.9)}.hero.is-white .subtitle a:not(.button),.hero.is-white .subtitle strong{color:#0a0a0a}@media screen and (max-width: 1055px){.hero.is-white .navbar-menu{background-color:#fff}}.hero.is-white .navbar-item,.hero.is-white .navbar-link{color:rgba(10,10,10,0.7)}.hero.is-white a.navbar-item:hover,.hero.is-white a.navbar-item.is-active,.hero.is-white .navbar-link:hover,.hero.is-white .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.hero.is-white .tabs a{color:#0a0a0a;opacity:0.9}.hero.is-white .tabs a:hover{opacity:1}.hero.is-white .tabs li.is-active a{opacity:1}.hero.is-white .tabs.is-boxed a,.hero.is-white .tabs.is-toggle a{color:#0a0a0a}.hero.is-white .tabs.is-boxed a:hover,.hero.is-white .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-white .tabs.is-boxed li.is-active a,.hero.is-white .tabs.is-boxed li.is-active a:hover,.hero.is-white .tabs.is-toggle li.is-active a,.hero.is-white .tabs.is-toggle li.is-active a:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.hero.is-white.is-bold{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}@media screen and (max-width: 768px){.hero.is-white.is-bold .navbar-menu{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}}.hero.is-black{background-color:#0a0a0a;color:#fff}.hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-black strong{color:inherit}.hero.is-black .title{color:#fff}.hero.is-black .subtitle{color:rgba(255,255,255,0.9)}.hero.is-black .subtitle a:not(.button),.hero.is-black .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-black .navbar-menu{background-color:#0a0a0a}}.hero.is-black .navbar-item,.hero.is-black .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-black a.navbar-item:hover,.hero.is-black a.navbar-item.is-active,.hero.is-black .navbar-link:hover,.hero.is-black .navbar-link.is-active{background-color:#000;color:#fff}.hero.is-black .tabs a{color:#fff;opacity:0.9}.hero.is-black .tabs a:hover{opacity:1}.hero.is-black .tabs li.is-active a{opacity:1}.hero.is-black .tabs.is-boxed a,.hero.is-black .tabs.is-toggle a{color:#fff}.hero.is-black .tabs.is-boxed a:hover,.hero.is-black .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-black .tabs.is-boxed li.is-active a,.hero.is-black .tabs.is-boxed li.is-active a:hover,.hero.is-black .tabs.is-toggle li.is-active a,.hero.is-black .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}.hero.is-black.is-bold{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}@media screen and (max-width: 768px){.hero.is-black.is-bold .navbar-menu{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}}.hero.is-light{background-color:#f5f5f5;color:#363636}.hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-light strong{color:inherit}.hero.is-light .title{color:#363636}.hero.is-light .subtitle{color:rgba(54,54,54,0.9)}.hero.is-light .subtitle a:not(.button),.hero.is-light .subtitle strong{color:#363636}@media screen and (max-width: 1055px){.hero.is-light .navbar-menu{background-color:#f5f5f5}}.hero.is-light .navbar-item,.hero.is-light .navbar-link{color:rgba(54,54,54,0.7)}.hero.is-light a.navbar-item:hover,.hero.is-light a.navbar-item.is-active,.hero.is-light .navbar-link:hover,.hero.is-light .navbar-link.is-active{background-color:#e8e8e8;color:#363636}.hero.is-light .tabs a{color:#363636;opacity:0.9}.hero.is-light .tabs a:hover{opacity:1}.hero.is-light .tabs li.is-active a{opacity:1}.hero.is-light .tabs.is-boxed a,.hero.is-light .tabs.is-toggle a{color:#363636}.hero.is-light .tabs.is-boxed a:hover,.hero.is-light .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-light .tabs.is-boxed li.is-active a,.hero.is-light .tabs.is-boxed li.is-active a:hover,.hero.is-light .tabs.is-toggle li.is-active a,.hero.is-light .tabs.is-toggle li.is-active a:hover{background-color:#363636;border-color:#363636;color:#f5f5f5}.hero.is-light.is-bold{background-image:linear-gradient(141deg, #dfd8d9 0%, #f5f5f5 71%, #fff 100%)}@media screen and (max-width: 768px){.hero.is-light.is-bold .navbar-menu{background-image:linear-gradient(141deg, #dfd8d9 0%, #f5f5f5 71%, #fff 100%)}}.hero.is-dark,.content kbd.hero{background-color:#363636;color:#f5f5f5}.hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-dark strong,.content kbd.hero strong{color:inherit}.hero.is-dark .title,.content kbd.hero .title{color:#f5f5f5}.hero.is-dark .subtitle,.content kbd.hero .subtitle{color:rgba(245,245,245,0.9)}.hero.is-dark .subtitle a:not(.button),.content kbd.hero .subtitle a:not(.button),.hero.is-dark .subtitle strong,.content kbd.hero .subtitle strong{color:#f5f5f5}@media screen and (max-width: 1055px){.hero.is-dark .navbar-menu,.content kbd.hero .navbar-menu{background-color:#363636}}.hero.is-dark .navbar-item,.content kbd.hero .navbar-item,.hero.is-dark .navbar-link,.content kbd.hero .navbar-link{color:rgba(245,245,245,0.7)}.hero.is-dark a.navbar-item:hover,.content kbd.hero a.navbar-item:hover,.hero.is-dark a.navbar-item.is-active,.content kbd.hero a.navbar-item.is-active,.hero.is-dark .navbar-link:hover,.content kbd.hero .navbar-link:hover,.hero.is-dark .navbar-link.is-active,.content kbd.hero .navbar-link.is-active{background-color:#292929;color:#f5f5f5}.hero.is-dark .tabs a,.content kbd.hero .tabs a{color:#f5f5f5;opacity:0.9}.hero.is-dark .tabs a:hover,.content kbd.hero .tabs a:hover{opacity:1}.hero.is-dark .tabs li.is-active a,.content kbd.hero .tabs li.is-active a{opacity:1}.hero.is-dark .tabs.is-boxed a,.content kbd.hero .tabs.is-boxed a,.hero.is-dark .tabs.is-toggle a,.content kbd.hero .tabs.is-toggle a{color:#f5f5f5}.hero.is-dark .tabs.is-boxed a:hover,.content kbd.hero .tabs.is-boxed a:hover,.hero.is-dark .tabs.is-toggle a:hover,.content kbd.hero .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-dark .tabs.is-boxed li.is-active a,.content kbd.hero .tabs.is-boxed li.is-active a,.hero.is-dark .tabs.is-boxed li.is-active a:hover,.hero.is-dark .tabs.is-toggle li.is-active a,.content kbd.hero .tabs.is-toggle li.is-active a,.hero.is-dark .tabs.is-toggle li.is-active a:hover{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.hero.is-dark.is-bold,.content kbd.hero.is-bold{background-image:linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%)}@media screen and (max-width: 768px){.hero.is-dark.is-bold .navbar-menu,.content kbd.hero.is-bold .navbar-menu{background-image:linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%)}}.hero.is-primary,.docstring>section>a.hero.docs-sourcelink{background-color:#4eb5de;color:#fff}.hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.docstring>section>a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-primary strong,.docstring>section>a.hero.docs-sourcelink strong{color:inherit}.hero.is-primary .title,.docstring>section>a.hero.docs-sourcelink .title{color:#fff}.hero.is-primary .subtitle,.docstring>section>a.hero.docs-sourcelink .subtitle{color:rgba(255,255,255,0.9)}.hero.is-primary .subtitle a:not(.button),.docstring>section>a.hero.docs-sourcelink .subtitle a:not(.button),.hero.is-primary .subtitle strong,.docstring>section>a.hero.docs-sourcelink .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-primary .navbar-menu,.docstring>section>a.hero.docs-sourcelink .navbar-menu{background-color:#4eb5de}}.hero.is-primary .navbar-item,.docstring>section>a.hero.docs-sourcelink .navbar-item,.hero.is-primary .navbar-link,.docstring>section>a.hero.docs-sourcelink .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-primary a.navbar-item:hover,.docstring>section>a.hero.docs-sourcelink a.navbar-item:hover,.hero.is-primary a.navbar-item.is-active,.docstring>section>a.hero.docs-sourcelink a.navbar-item.is-active,.hero.is-primary .navbar-link:hover,.docstring>section>a.hero.docs-sourcelink .navbar-link:hover,.hero.is-primary .navbar-link.is-active,.docstring>section>a.hero.docs-sourcelink .navbar-link.is-active{background-color:#39acda;color:#fff}.hero.is-primary .tabs a,.docstring>section>a.hero.docs-sourcelink .tabs a{color:#fff;opacity:0.9}.hero.is-primary .tabs a:hover,.docstring>section>a.hero.docs-sourcelink .tabs a:hover{opacity:1}.hero.is-primary .tabs li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs li.is-active a{opacity:1}.hero.is-primary .tabs.is-boxed a,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a,.hero.is-primary .tabs.is-toggle a,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a{color:#fff}.hero.is-primary .tabs.is-boxed a:hover,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a:hover,.hero.is-primary .tabs.is-toggle a:hover,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-primary .tabs.is-boxed li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed li.is-active a,.hero.is-primary .tabs.is-boxed li.is-active a:hover,.hero.is-primary .tabs.is-toggle li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle li.is-active a,.hero.is-primary .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#4eb5de}.hero.is-primary.is-bold,.docstring>section>a.hero.is-bold.docs-sourcelink{background-image:linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%)}@media screen and (max-width: 768px){.hero.is-primary.is-bold .navbar-menu,.docstring>section>a.hero.is-bold.docs-sourcelink .navbar-menu{background-image:linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%)}}.hero.is-link{background-color:#2e63b8;color:#fff}.hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-link strong{color:inherit}.hero.is-link .title{color:#fff}.hero.is-link .subtitle{color:rgba(255,255,255,0.9)}.hero.is-link .subtitle a:not(.button),.hero.is-link .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-link .navbar-menu{background-color:#2e63b8}}.hero.is-link .navbar-item,.hero.is-link .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-link a.navbar-item:hover,.hero.is-link a.navbar-item.is-active,.hero.is-link .navbar-link:hover,.hero.is-link .navbar-link.is-active{background-color:#2958a4;color:#fff}.hero.is-link .tabs a{color:#fff;opacity:0.9}.hero.is-link .tabs a:hover{opacity:1}.hero.is-link .tabs li.is-active a{opacity:1}.hero.is-link .tabs.is-boxed a,.hero.is-link .tabs.is-toggle a{color:#fff}.hero.is-link .tabs.is-boxed a:hover,.hero.is-link .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-link .tabs.is-boxed li.is-active a,.hero.is-link .tabs.is-boxed li.is-active a:hover,.hero.is-link .tabs.is-toggle li.is-active a,.hero.is-link .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#2e63b8}.hero.is-link.is-bold{background-image:linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%)}@media screen and (max-width: 768px){.hero.is-link.is-bold .navbar-menu{background-image:linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%)}}.hero.is-info{background-color:#209cee;color:#fff}.hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-info strong{color:inherit}.hero.is-info .title{color:#fff}.hero.is-info .subtitle{color:rgba(255,255,255,0.9)}.hero.is-info .subtitle a:not(.button),.hero.is-info .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-info .navbar-menu{background-color:#209cee}}.hero.is-info .navbar-item,.hero.is-info .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-info a.navbar-item:hover,.hero.is-info a.navbar-item.is-active,.hero.is-info .navbar-link:hover,.hero.is-info .navbar-link.is-active{background-color:#1190e3;color:#fff}.hero.is-info .tabs a{color:#fff;opacity:0.9}.hero.is-info .tabs a:hover{opacity:1}.hero.is-info .tabs li.is-active a{opacity:1}.hero.is-info .tabs.is-boxed a,.hero.is-info .tabs.is-toggle a{color:#fff}.hero.is-info .tabs.is-boxed a:hover,.hero.is-info .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-info .tabs.is-boxed li.is-active a,.hero.is-info .tabs.is-boxed li.is-active a:hover,.hero.is-info .tabs.is-toggle li.is-active a,.hero.is-info .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#209cee}.hero.is-info.is-bold{background-image:linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%)}@media screen and (max-width: 768px){.hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%)}}.hero.is-success{background-color:#22c35b;color:#fff}.hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-success strong{color:inherit}.hero.is-success .title{color:#fff}.hero.is-success .subtitle{color:rgba(255,255,255,0.9)}.hero.is-success .subtitle a:not(.button),.hero.is-success .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-success .navbar-menu{background-color:#22c35b}}.hero.is-success .navbar-item,.hero.is-success .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-success a.navbar-item:hover,.hero.is-success a.navbar-item.is-active,.hero.is-success .navbar-link:hover,.hero.is-success .navbar-link.is-active{background-color:#1ead51;color:#fff}.hero.is-success .tabs a{color:#fff;opacity:0.9}.hero.is-success .tabs a:hover{opacity:1}.hero.is-success .tabs li.is-active a{opacity:1}.hero.is-success .tabs.is-boxed a,.hero.is-success .tabs.is-toggle a{color:#fff}.hero.is-success .tabs.is-boxed a:hover,.hero.is-success .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-success .tabs.is-boxed li.is-active a,.hero.is-success .tabs.is-boxed li.is-active a:hover,.hero.is-success .tabs.is-toggle li.is-active a,.hero.is-success .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#22c35b}.hero.is-success.is-bold{background-image:linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%)}@media screen and (max-width: 768px){.hero.is-success.is-bold .navbar-menu{background-image:linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%)}}.hero.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-warning strong{color:inherit}.hero.is-warning .title{color:rgba(0,0,0,0.7)}.hero.is-warning .subtitle{color:rgba(0,0,0,0.9)}.hero.is-warning .subtitle a:not(.button),.hero.is-warning .subtitle strong{color:rgba(0,0,0,0.7)}@media screen and (max-width: 1055px){.hero.is-warning .navbar-menu{background-color:#ffdd57}}.hero.is-warning .navbar-item,.hero.is-warning .navbar-link{color:rgba(0,0,0,0.7)}.hero.is-warning a.navbar-item:hover,.hero.is-warning a.navbar-item.is-active,.hero.is-warning .navbar-link:hover,.hero.is-warning .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.hero.is-warning .tabs a{color:rgba(0,0,0,0.7);opacity:0.9}.hero.is-warning .tabs a:hover{opacity:1}.hero.is-warning .tabs li.is-active a{opacity:1}.hero.is-warning .tabs.is-boxed a,.hero.is-warning .tabs.is-toggle a{color:rgba(0,0,0,0.7)}.hero.is-warning .tabs.is-boxed a:hover,.hero.is-warning .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-warning .tabs.is-boxed li.is-active a,.hero.is-warning .tabs.is-boxed li.is-active a:hover,.hero.is-warning .tabs.is-toggle li.is-active a,.hero.is-warning .tabs.is-toggle li.is-active a:hover{background-color:rgba(0,0,0,0.7);border-color:rgba(0,0,0,0.7);color:#ffdd57}.hero.is-warning.is-bold{background-image:linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%)}@media screen and (max-width: 768px){.hero.is-warning.is-bold .navbar-menu{background-image:linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%)}}.hero.is-danger{background-color:#da0b00;color:#fff}.hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-danger strong{color:inherit}.hero.is-danger .title{color:#fff}.hero.is-danger .subtitle{color:rgba(255,255,255,0.9)}.hero.is-danger .subtitle a:not(.button),.hero.is-danger .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-danger .navbar-menu{background-color:#da0b00}}.hero.is-danger .navbar-item,.hero.is-danger .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-danger a.navbar-item:hover,.hero.is-danger a.navbar-item.is-active,.hero.is-danger .navbar-link:hover,.hero.is-danger .navbar-link.is-active{background-color:#c10a00;color:#fff}.hero.is-danger .tabs a{color:#fff;opacity:0.9}.hero.is-danger .tabs a:hover{opacity:1}.hero.is-danger .tabs li.is-active a{opacity:1}.hero.is-danger .tabs.is-boxed a,.hero.is-danger .tabs.is-toggle a{color:#fff}.hero.is-danger .tabs.is-boxed a:hover,.hero.is-danger .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-danger .tabs.is-boxed li.is-active a,.hero.is-danger .tabs.is-boxed li.is-active a:hover,.hero.is-danger .tabs.is-toggle li.is-active a,.hero.is-danger .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#da0b00}.hero.is-danger.is-bold{background-image:linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%)}@media screen and (max-width: 768px){.hero.is-danger.is-bold .navbar-menu{background-image:linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%)}}.hero.is-small .hero-body,#documenter .docs-sidebar form.docs-search>input.hero .hero-body{padding-bottom:1.5rem;padding-top:1.5rem}@media screen and (min-width: 769px),print{.hero.is-medium .hero-body{padding-bottom:9rem;padding-top:9rem}}@media screen and (min-width: 769px),print{.hero.is-large .hero-body{padding-bottom:18rem;padding-top:18rem}}.hero.is-halfheight .hero-body,.hero.is-fullheight .hero-body,.hero.is-fullheight-with-navbar .hero-body{align-items:center;display:flex}.hero.is-halfheight .hero-body>.container,.hero.is-fullheight .hero-body>.container,.hero.is-fullheight-with-navbar .hero-body>.container{flex-grow:1;flex-shrink:1}.hero.is-halfheight{min-height:50vh}.hero.is-fullheight{min-height:100vh}.hero-video{overflow:hidden}.hero-video video{left:50%;min-height:100%;min-width:100%;position:absolute;top:50%;transform:translate3d(-50%, -50%, 0)}.hero-video.is-transparent{opacity:0.3}@media screen and (max-width: 768px){.hero-video{display:none}}.hero-buttons{margin-top:1.5rem}@media screen and (max-width: 768px){.hero-buttons .button{display:flex}.hero-buttons .button:not(:last-child){margin-bottom:0.75rem}}@media screen and (min-width: 769px),print{.hero-buttons{display:flex;justify-content:center}.hero-buttons .button:not(:last-child){margin-right:1.5rem}}.hero-head,.hero-foot{flex-grow:0;flex-shrink:0}.hero-body{flex-grow:1;flex-shrink:0;padding:3rem 1.5rem}.section{padding:3rem 1.5rem}@media screen and (min-width: 1056px){.section.is-medium{padding:9rem 1.5rem}.section.is-large{padding:18rem 1.5rem}}.footer{background-color:#fafafa;padding:3rem 1.5rem 6rem}h1 .docs-heading-anchor,h1 .docs-heading-anchor:hover,h1 .docs-heading-anchor:visited,h2 .docs-heading-anchor,h2 .docs-heading-anchor:hover,h2 .docs-heading-anchor:visited,h3 .docs-heading-anchor,h3 .docs-heading-anchor:hover,h3 .docs-heading-anchor:visited,h4 .docs-heading-anchor,h4 .docs-heading-anchor:hover,h4 .docs-heading-anchor:visited,h5 .docs-heading-anchor,h5 .docs-heading-anchor:hover,h5 .docs-heading-anchor:visited,h6 .docs-heading-anchor,h6 .docs-heading-anchor:hover,h6 .docs-heading-anchor:visited{color:#222}h1 .docs-heading-anchor-permalink,h2 .docs-heading-anchor-permalink,h3 .docs-heading-anchor-permalink,h4 .docs-heading-anchor-permalink,h5 .docs-heading-anchor-permalink,h6 .docs-heading-anchor-permalink{visibility:hidden;vertical-align:middle;margin-left:0.5em;font-size:0.7rem}h1 .docs-heading-anchor-permalink::before,h2 .docs-heading-anchor-permalink::before,h3 .docs-heading-anchor-permalink::before,h4 .docs-heading-anchor-permalink::before,h5 .docs-heading-anchor-permalink::before,h6 .docs-heading-anchor-permalink::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f0c1"}h1:hover .docs-heading-anchor-permalink,h2:hover .docs-heading-anchor-permalink,h3:hover .docs-heading-anchor-permalink,h4:hover .docs-heading-anchor-permalink,h5:hover .docs-heading-anchor-permalink,h6:hover .docs-heading-anchor-permalink{visibility:visible}.docs-dark-only{display:none !important}pre{position:relative;overflow:hidden}pre code,pre code.hljs{padding:0 .75rem !important;overflow:auto;display:block}pre code:first-of-type,pre code.hljs:first-of-type{padding-top:0.5rem !important}pre code:last-of-type,pre code.hljs:last-of-type{padding-bottom:0.5rem !important}pre .copy-button{opacity:0.2;transition:opacity 0.2s;position:absolute;right:0em;top:0em;padding:0.5em;width:2.5em;height:2.5em;background:transparent;border:none;font-family:"Font Awesome 5 Free";color:#222;cursor:pointer;text-align:center}pre .copy-button:focus,pre .copy-button:hover{opacity:1;background:rgba(34,34,34,0.1);color:#2e63b8}pre .copy-button.success{color:#259a12;opacity:1}pre .copy-button.error{color:#cb3c33;opacity:1}pre:hover .copy-button{opacity:1}.admonition{background-color:#b5b5b5;border-style:solid;border-width:1px;border-color:#363636;border-radius:4px;font-size:1rem}.admonition strong{color:currentColor}.admonition.is-small,#documenter .docs-sidebar form.docs-search>input.admonition{font-size:.75rem}.admonition.is-medium{font-size:1.25rem}.admonition.is-large{font-size:1.5rem}.admonition.is-default{background-color:#b5b5b5;border-color:#363636}.admonition.is-default>.admonition-header{background-color:#363636;color:#fff}.admonition.is-default>.admonition-body{color:#fff}.admonition.is-info{background-color:#def0fc;border-color:#209cee}.admonition.is-info>.admonition-header{background-color:#209cee;color:#fff}.admonition.is-info>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-success{background-color:#bdf4d1;border-color:#22c35b}.admonition.is-success>.admonition-header{background-color:#22c35b;color:#fff}.admonition.is-success>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-warning{background-color:#fff3c5;border-color:#ffdd57}.admonition.is-warning>.admonition-header{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.admonition.is-warning>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-danger{background-color:#ffaba7;border-color:#da0b00}.admonition.is-danger>.admonition-header{background-color:#da0b00;color:#fff}.admonition.is-danger>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-compat{background-color:#bdeff5;border-color:#1db5c9}.admonition.is-compat>.admonition-header{background-color:#1db5c9;color:#fff}.admonition.is-compat>.admonition-body{color:rgba(0,0,0,0.7)}.admonition-header{color:#fff;background-color:#363636;align-items:center;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.5rem .75rem;position:relative}.admonition-header:before{font-family:"Font Awesome 5 Free";font-weight:900;margin-right:.75rem;content:"\f06a"}.admonition-body{color:#222;padding:0.5rem .75rem}.admonition-body pre{background-color:#f5f5f5}.admonition-body code{background-color:rgba(0,0,0,0.05)}.docstring{margin-bottom:1em;background-color:rgba(0,0,0,0);border:1px solid #dbdbdb;box-shadow:2px 2px 3px rgba(10,10,10,0.1);max-width:100%}.docstring>header{display:flex;flex-grow:1;align-items:stretch;padding:0.5rem .75rem;background-color:#f5f5f5;box-shadow:0 1px 2px rgba(10,10,10,0.1);box-shadow:none;border-bottom:1px solid #dbdbdb}.docstring>header code{background-color:transparent}.docstring>header .docstring-binding{margin-right:0.3em}.docstring>header .docstring-category{margin-left:0.3em}.docstring>section{position:relative;padding:.75rem .75rem;border-bottom:1px solid #dbdbdb}.docstring>section:last-child{border-bottom:none}.docstring>section>a.docs-sourcelink{transition:opacity 0.3s;opacity:0;position:absolute;right:.375rem;bottom:.375rem}.docstring>section>a.docs-sourcelink:focus{opacity:1 !important}.docstring:hover>section>a.docs-sourcelink{opacity:0.2}.docstring:focus-within>section>a.docs-sourcelink{opacity:0.2}.docstring>section:hover a.docs-sourcelink{opacity:1}.documenter-example-output{background-color:#fff}.outdated-warning-overlay{position:fixed;top:0;left:0;right:0;box-shadow:0 0 10px rgba(0,0,0,0.3);z-index:999;background-color:#ffaba7;color:rgba(0,0,0,0.7);border-bottom:3px solid #da0b00;padding:10px 35px;text-align:center;font-size:15px}.outdated-warning-overlay .outdated-warning-closer{position:absolute;top:calc(50% - 10px);right:18px;cursor:pointer;width:12px}.outdated-warning-overlay a{color:#2e63b8}.outdated-warning-overlay a:hover{color:#363636}.content pre{border:1px solid #dbdbdb}.content code{font-weight:inherit}.content a code{color:#2e63b8}.content h1 code,.content h2 code,.content h3 code,.content h4 code,.content h5 code,.content h6 code{color:#222}.content table{display:block;width:initial;max-width:100%;overflow-x:auto}.content blockquote>ul:first-child,.content blockquote>ol:first-child,.content .admonition-body>ul:first-child,.content .admonition-body>ol:first-child{margin-top:0}pre,code{font-variant-ligatures:no-contextual}.breadcrumb a.is-disabled{cursor:default;pointer-events:none}.breadcrumb a.is-disabled,.breadcrumb a.is-disabled:hover{color:#222}.hljs{background:initial !important}.katex .katex-mathml{top:0;right:0}.katex-display,mjx-container,.MathJax_Display{margin:0.5em 0 !important}html{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto}li.no-marker{list-style:none}#documenter .docs-main>article{overflow-wrap:break-word}#documenter .docs-main>article .math-container{overflow-x:auto;overflow-y:hidden}@media screen and (min-width: 1056px){#documenter .docs-main{max-width:52rem;margin-left:20rem;padding-right:1rem}}@media screen and (max-width: 1055px){#documenter .docs-main{width:100%}#documenter .docs-main>article{max-width:52rem;margin-left:auto;margin-right:auto;margin-bottom:1rem;padding:0 1rem}#documenter .docs-main>header,#documenter .docs-main>nav{max-width:100%;width:100%;margin:0}}#documenter .docs-main header.docs-navbar{background-color:#fff;border-bottom:1px solid #dbdbdb;z-index:2;min-height:4rem;margin-bottom:1rem;display:flex}#documenter .docs-main header.docs-navbar .breadcrumb{flex-grow:1}#documenter .docs-main header.docs-navbar .docs-right{display:flex;white-space:nowrap}#documenter .docs-main header.docs-navbar .docs-right .docs-icon,#documenter .docs-main header.docs-navbar .docs-right .docs-label,#documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{display:inline-block}#documenter .docs-main header.docs-navbar .docs-right .docs-label{padding:0;margin-left:0.3em}#documenter .docs-main header.docs-navbar .docs-right .docs-settings-button{margin:auto 0 auto 1rem}#documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{font-size:1.5rem;margin:auto 0 auto 1rem}#documenter .docs-main header.docs-navbar>*{margin:auto 0}@media screen and (max-width: 1055px){#documenter .docs-main header.docs-navbar{position:sticky;top:0;padding:0 1rem;transition-property:top, box-shadow;-webkit-transition-property:top, box-shadow;transition-duration:0.3s;-webkit-transition-duration:0.3s}#documenter .docs-main header.docs-navbar.headroom--not-top{box-shadow:.2rem 0rem .4rem #bbb;transition-duration:0.7s;-webkit-transition-duration:0.7s}#documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom{top:-4.5rem;transition-duration:0.7s;-webkit-transition-duration:0.7s}}#documenter .docs-main section.footnotes{border-top:1px solid #dbdbdb}#documenter .docs-main section.footnotes li .tag:first-child,#documenter .docs-main section.footnotes li .docstring>section>a.docs-sourcelink:first-child,#documenter .docs-main section.footnotes li .content kbd:first-child,.content #documenter .docs-main section.footnotes li kbd:first-child{margin-right:1em;margin-bottom:0.4em}#documenter .docs-main .docs-footer{display:flex;flex-wrap:wrap;margin-left:0;margin-right:0;border-top:1px solid #dbdbdb;padding-top:1rem;padding-bottom:1rem}@media screen and (max-width: 1055px){#documenter .docs-main .docs-footer{padding-left:1rem;padding-right:1rem}}#documenter .docs-main .docs-footer .docs-footer-nextpage,#documenter .docs-main .docs-footer .docs-footer-prevpage{flex-grow:1}#documenter .docs-main .docs-footer .docs-footer-nextpage{text-align:right}#documenter .docs-main .docs-footer .flexbox-break{flex-basis:100%;height:0}#documenter .docs-main .docs-footer .footer-message{font-size:0.8em;margin:0.5em auto 0 auto;text-align:center}#documenter .docs-sidebar{display:flex;flex-direction:column;color:#0a0a0a;background-color:#f5f5f5;border-right:1px solid #dbdbdb;padding:0;flex:0 0 18rem;z-index:5;font-size:1rem;position:fixed;left:-18rem;width:18rem;height:100%;transition:left 0.3s}#documenter .docs-sidebar.visible{left:0;box-shadow:.4rem 0rem .8rem #bbb}@media screen and (min-width: 1056px){#documenter .docs-sidebar.visible{box-shadow:none}}@media screen and (min-width: 1056px){#documenter .docs-sidebar{left:0;top:0}}#documenter .docs-sidebar .docs-logo{margin-top:1rem;padding:0 1rem}#documenter .docs-sidebar .docs-logo>img{max-height:6rem;margin:auto}#documenter .docs-sidebar .docs-package-name{flex-shrink:0;font-size:1.5rem;font-weight:700;text-align:center;white-space:nowrap;overflow:hidden;padding:0.5rem 0}#documenter .docs-sidebar .docs-package-name .docs-autofit{max-width:16.2rem}#documenter .docs-sidebar .docs-package-name a,#documenter .docs-sidebar .docs-package-name a:hover{color:#0a0a0a}#documenter .docs-sidebar .docs-version-selector{border-top:1px solid #dbdbdb;display:none;padding:0.5rem}#documenter .docs-sidebar .docs-version-selector.visible{display:flex}#documenter .docs-sidebar ul.docs-menu{flex-grow:1;user-select:none;border-top:1px solid #dbdbdb;padding-bottom:1.5rem}#documenter .docs-sidebar ul.docs-menu>li>.tocitem{font-weight:bold}#documenter .docs-sidebar ul.docs-menu>li li{font-size:.95rem;margin-left:1em;border-left:1px solid #dbdbdb}#documenter .docs-sidebar ul.docs-menu input.collapse-toggle{display:none}#documenter .docs-sidebar ul.docs-menu ul.collapsed{display:none}#documenter .docs-sidebar ul.docs-menu input:checked~ul.collapsed{display:block}#documenter .docs-sidebar ul.docs-menu label.tocitem{display:flex}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label{flex-grow:2}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron{display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;font-size:.75rem;margin-left:1rem;margin-top:auto;margin-bottom:auto}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f054"}#documenter .docs-sidebar ul.docs-menu input:checked~label.tocitem .docs-chevron::before{content:"\f078"}#documenter .docs-sidebar ul.docs-menu .tocitem{display:block;padding:0.5rem 0.5rem}#documenter .docs-sidebar ul.docs-menu .tocitem,#documenter .docs-sidebar ul.docs-menu .tocitem:hover{color:#0a0a0a;background:#f5f5f5}#documenter .docs-sidebar ul.docs-menu a.tocitem:hover,#documenter .docs-sidebar ul.docs-menu label.tocitem:hover{color:#0a0a0a;background-color:#ebebeb}#documenter .docs-sidebar ul.docs-menu li.is-active{border-top:1px solid #dbdbdb;border-bottom:1px solid #dbdbdb;background-color:#fff}#documenter .docs-sidebar ul.docs-menu li.is-active .tocitem,#documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover{background-color:#fff;color:#0a0a0a}#documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover{background-color:#ebebeb;color:#0a0a0a}#documenter .docs-sidebar ul.docs-menu>li.is-active:first-child{border-top:none}#documenter .docs-sidebar ul.docs-menu ul.internal{margin:0 0.5rem 0.5rem;border-top:1px solid #dbdbdb}#documenter .docs-sidebar ul.docs-menu ul.internal li{font-size:.85rem;border-left:none;margin-left:0;margin-top:0.5rem}#documenter .docs-sidebar ul.docs-menu ul.internal .tocitem{width:100%;padding:0}#documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before{content:"⚬";margin-right:0.4em}#documenter .docs-sidebar form.docs-search{margin:auto;margin-top:0.5rem;margin-bottom:0.5rem}#documenter .docs-sidebar form.docs-search>input{width:14.4rem}@media screen and (min-width: 1056px){#documenter .docs-sidebar ul.docs-menu{overflow-y:auto;-webkit-overflow-scroll:touch}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar{width:.3rem;background:none}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#e0e0e0}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover{background:#ccc}}@media screen and (max-width: 1055px){#documenter .docs-sidebar{overflow-y:auto;-webkit-overflow-scroll:touch}#documenter .docs-sidebar::-webkit-scrollbar{width:.3rem;background:none}#documenter .docs-sidebar::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#e0e0e0}#documenter .docs-sidebar::-webkit-scrollbar-thumb:hover{background:#ccc}}#documenter .docs-main #documenter-search-info{margin-bottom:1rem}#documenter .docs-main #documenter-search-results{list-style-type:circle;list-style-position:outside}#documenter .docs-main #documenter-search-results li{margin-left:2rem}#documenter .docs-main #documenter-search-results .docs-highlight{background-color:yellow}.ansi span.sgr1{font-weight:bolder}.ansi span.sgr2{font-weight:lighter}.ansi span.sgr3{font-style:italic}.ansi span.sgr4{text-decoration:underline}.ansi span.sgr7{color:#fff;background-color:#222}.ansi span.sgr8{color:transparent}.ansi span.sgr8 span{color:transparent}.ansi span.sgr9{text-decoration:line-through}.ansi span.sgr30{color:#242424}.ansi span.sgr31{color:#a7201f}.ansi span.sgr32{color:#066f00}.ansi span.sgr33{color:#856b00}.ansi span.sgr34{color:#2149b0}.ansi span.sgr35{color:#7d4498}.ansi span.sgr36{color:#007989}.ansi span.sgr37{color:gray}.ansi span.sgr40{background-color:#242424}.ansi span.sgr41{background-color:#a7201f}.ansi span.sgr42{background-color:#066f00}.ansi span.sgr43{background-color:#856b00}.ansi span.sgr44{background-color:#2149b0}.ansi span.sgr45{background-color:#7d4498}.ansi span.sgr46{background-color:#007989}.ansi span.sgr47{background-color:gray}.ansi span.sgr90{color:#616161}.ansi span.sgr91{color:#cb3c33}.ansi span.sgr92{color:#0e8300}.ansi span.sgr93{color:#a98800}.ansi span.sgr94{color:#3c5dcd}.ansi span.sgr95{color:#9256af}.ansi span.sgr96{color:#008fa3}.ansi span.sgr97{color:#f5f5f5}.ansi span.sgr100{background-color:#616161}.ansi span.sgr101{background-color:#cb3c33}.ansi span.sgr102{background-color:#0e8300}.ansi span.sgr103{background-color:#a98800}.ansi span.sgr104{background-color:#3c5dcd}.ansi span.sgr105{background-color:#9256af}.ansi span.sgr106{background-color:#008fa3}.ansi span.sgr107{background-color:#f5f5f5}code.language-julia-repl>span.hljs-meta{color:#066f00;font-weight:bolder}/*! + Theme: Default + Description: Original highlight.js style + Author: (c) Ivan Sagalaev + Maintainer: @highlightjs/core-team + Website: https://highlightjs.org/ + License: see project LICENSE + Touched: 2021 +*/pre code.hljs{display:block;overflow-x:auto}code.hljs{padding:3px 5px}.hljs{background:#F0F0F0;color:#444}.hljs-comment{color:#888888}.hljs-tag,.hljs-punctuation{color:#444a}.hljs-tag .hljs-name,.hljs-tag .hljs-attr{color:#444}.hljs-keyword,.hljs-attribute,.hljs-selector-tag,.hljs-meta .hljs-keyword,.hljs-doctag,.hljs-name{font-weight:bold}.hljs-type,.hljs-string,.hljs-number,.hljs-selector-id,.hljs-selector-class,.hljs-quote,.hljs-template-tag,.hljs-deletion{color:#880000}.hljs-title,.hljs-section{color:#880000;font-weight:bold}.hljs-regexp,.hljs-symbol,.hljs-variable,.hljs-template-variable,.hljs-link,.hljs-selector-attr,.hljs-operator,.hljs-selector-pseudo{color:#BC6060}.hljs-literal{color:#78A960}.hljs-built_in,.hljs-bullet,.hljs-code,.hljs-addition{color:#397300}.hljs-meta{color:#1f7199}.hljs-meta .hljs-string{color:#4d99bf}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:bold} diff --git a/dev/assets/themeswap.js b/dev/assets/themeswap.js new file mode 100644 index 000000000..c58e993e3 --- /dev/null +++ b/dev/assets/themeswap.js @@ -0,0 +1,66 @@ +// Small function to quickly swap out themes. Gets put into the tag.. +function set_theme_from_local_storage() { + // Intialize the theme to null, which means default + var theme = null; + // If the browser supports the localstorage and is not disabled then try to get the + // documenter theme + if(window.localStorage != null) { + // Get the user-picked theme from localStorage. May be `null`, which means the default + // theme. + theme = window.localStorage.getItem("documenter-theme"); + } + // Check if the browser supports user color preference + var darkPreference = false; + // Check if the users preference is for dark color scheme + if(window.matchMedia('(prefers-color-scheme: dark)').matches === true) { + darkPreference = true; + } + // Initialize a few variables for the loop: + // + // - active: will contain the index of the theme that should be active. Note that there + // is no guarantee that localStorage contains sane values. If `active` stays `null` + // we either could not find the theme or it is the default (primary) theme anyway. + // Either way, we then need to stick to the primary theme. + // + // - disabled: style sheets that should be disabled (i.e. all the theme style sheets + // that are not the currently active theme) + var active = null; var disabled = []; var darkTheme = null; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + // The tag of each style sheet is expected to have a data-theme-name attribute + // which must contain the name of the theme. The names in localStorage much match this. + var themename = ss.ownerNode.getAttribute("data-theme-name"); + // attribute not set => non-theme stylesheet => ignore + if(themename === null) continue; + // To distinguish the default (primary) theme, it needs to have the data-theme-primary + // attribute set. + var isprimary = (ss.ownerNode.getAttribute("data-theme-primary") !== null); + // Check if the theme is primary dark theme + var isDarkTheme = (ss.ownerNode.getAttribute("data-theme-primary-dark") !== null); + // If ss is for dark theme then set the value of darkTheme to the name of the theme + if(isDarkTheme) darkTheme = themename; + // If we find a matching theme (and it's not the default), we'll set active to non-null + if(themename === theme) active = i; + // Store the style sheets of inactive themes so that we could disable them + if(themename !== theme) disabled.push(ss); + } + if(active !== null) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + theme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + else if(darkTheme !== null && darkPreference === true) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + darkTheme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + if (ss.ownerNode.getAttribute("data-theme-name") !== darkTheme) { + ss.disabled = true; + } + }); + } +} +set_theme_from_local_storage(); diff --git a/dev/assets/warner.js b/dev/assets/warner.js new file mode 100644 index 000000000..5531c8851 --- /dev/null +++ b/dev/assets/warner.js @@ -0,0 +1,49 @@ +function maybeAddWarning () { + // DOCUMENTER_NEWEST is defined in versions.js, DOCUMENTER_CURRENT_VERSION and DOCUMENTER_STABLE + // in siteinfo.js. + // If either of these are undefined something went horribly wrong, so we abort. + if ( + window.DOCUMENTER_NEWEST === undefined || + window.DOCUMENTER_CURRENT_VERSION === undefined || + window.DOCUMENTER_STABLE === undefined + ) { + return + }; + + // Current version is not a version number, so we can't tell if it's the newest version. Abort. + if (!/v(\d+\.)*\d+/.test(window.DOCUMENTER_CURRENT_VERSION)) { + return + }; + + // Current version is newest version, so no need to add a warning. + if (window.DOCUMENTER_NEWEST === window.DOCUMENTER_CURRENT_VERSION) { + return + }; + + // Add a noindex meta tag (unless one exists) so that search engines don't index this version of the docs. + if (document.body.querySelector('meta[name="robots"]') === null) { + const meta = document.createElement('meta'); + meta.name = 'robots'; + meta.content = 'noindex'; + + document.getElementsByTagName('head')[0].appendChild(meta); + }; + + const div = document.createElement('div'); + div.classList.add('outdated-warning-overlay'); + const closer = document.createElement('button'); + closer.classList.add('outdated-warning-closer', 'delete'); + closer.addEventListener('click', function () { + document.body.removeChild(div); + }); + const href = window.documenterBaseURL + '/../' + window.DOCUMENTER_STABLE; + div.innerHTML = 'This documentation is not for the latest stable release, but for either the development version or an older release.
    Click here to go to the documentation for the latest stable release.'; + div.appendChild(closer); + document.body.appendChild(div); +}; + +if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', maybeAddWarning); +} else { + maybeAddWarning(); +}; diff --git a/dev/barotropic/index.html b/dev/barotropic/index.html new file mode 100644 index 000000000..aad931d21 --- /dev/null +++ b/dev/barotropic/index.html @@ -0,0 +1,12 @@ + +Barotropic model · SpeedyWeather.jl

    Barotropic vorticity model

    The barotropic vorticity model describes the evolution of a 2D non-divergent flow with velocity components $\mathbf{u} = (u,v)$ through self-advection, forces and dissipation. Due to the non-divergent nature of the flow, it can be described by (the vertical component) of the relative vorticity $\zeta = \nabla \times \mathbf{u}$.

    The dynamical core presented here to solve the barotropic vorticity equations largely follows the idealized models with spectral dynamics developed at the Geophysical Fluid Dynamics Laboratory[1]: A barotropic vorticity model[2].

    Many concepts of the Shallow water model and the Primitive equation model are similar, such that for example horizontal diffusion and the Time integration are only explained here.

    Barotropic vorticity equation

    The barotropic vorticity equation is the prognostic equation that describes the time evolution of relative vorticity $\zeta$ with advection, Coriolis force, forcing and diffusion in a single global layer on the sphere.

    \[\frac{\partial \zeta}{\partial t} + \nabla \cdot (\mathbf{u}(\zeta + f)) = +\nabla \times \mathbf{F} + (-1)^{n+1}\nu\nabla^{2n}\zeta\]

    We denote time$t$, velocity vector $\mathbf{u} = (u, v)$, Coriolis parameter $f$, and hyperdiffusion $(-1)^{n+1} \nu \nabla^{2n} \zeta$ ($n$ is the hyperdiffusion order, see Horizontal diffusion). We also include a forcing vector $\mathbf{F} = (F_u,F_v)$ which acts on the zonal velocity $u$ and the meridional velocity $v$ and hence its curl $\nabla \times \mathbf{F}$ is a tendency for relative vorticity $\zeta$.

    Starting with some relative vorticity $\zeta$, the Laplacian is inverted to obtain the stream function $\Psi$

    \[\Psi = \nabla^{-2}\zeta\]

    The zonal velocity $u$ and meridional velocity $v$ are then the (negative) meridional gradient and zonal gradient of $\Psi$

    \[\begin{aligned} +u &= -\frac{1}{R} \frac{\partial \Psi}{\partial \theta} \\ +v &= \frac{1}{R\cos(\theta)} \frac{\partial \Psi}{\partial \phi} \\ +\end{aligned}\]

    which is described in Derivatives in spherical coordinates. Using $u$ and $v$ we can then advect the absolute vorticity $\zeta + f$. In order to avoid to calculate both the curl and the divergence of a flux we rewrite the barotropic vorticity equation as

    \[\frac{\partial \zeta}{\partial t} = +\nabla \times (\mathbf{F} + \mathbf{u}_\perp(\zeta + f)) + (-1)^{n+1}\nu\nabla^{2n}\zeta\]

    with $\mathbf{u}_\perp = (v,-u)$ the rotated velocity vector, because $-\nabla\cdot\mathbf{u} = \nabla \times \mathbf{u}_\perp$. This is the form that is solved in the BarotropicModel, as outlined in the following section.

    Algorithm

    We briefly outline the algorithm that SpeedyWeather.jl uses in order to integrate the barotropic vorticity equation. As an initial step

    0. Start with initial conditions of $\zeta_{lm}$ in spectral space and transform this model state to grid-point space:

    • Invert the Laplacian of vorticity $\zeta_{lm}$ to obtain the stream function $\Psi_{lm}$ in spectral space
    • obtain zonal velocity $(\cos(\theta)u)_{lm}$ through a Meridional derivative
    • obtain meridional velocity $(\cos(\theta)v)_{lm}$ through a Zonal derivative
    • Transform zonal and meridional velocity $(\cos(\theta)u)_{lm}$, $(\cos(\theta)v)_{lm}$ to grid-point space
    • Unscale the $\cos(\theta)$ factor to obtain $u,v$
    • Transform $\zeta_{lm}$ to $\zeta$ in grid-point space

    Now loop over

    1. Compute the forcing vector $\mathbf{F} = (F_u,F_v)$ for $u$ and $v$
    2. Multiply $u,v$ with $\zeta+f$ in grid-point space
    3. Add $A = F_u + v(\zeta + f)$ and $B = F_v - u(\zeta + f)$
    4. Transform these vector components to spectral space $A_{lm}$, $B_{lm}$
    5. Compute the curl of $(A,B)_{lm}$ in spectral space which is the tendency of $\zeta_{lm}$
    6. Compute the horizontal diffusion based on that tendency
    7. Compute a leapfrog time step as described in Time integration with a Robert-Asselin and Williams filter
    8. Transform the new spectral state of $\zeta_{lm}$ to grid-point $u,v,\zeta$ as described in 0.
    9. Possibly do some output
    10. Repeat from 1.

    Horizontal diffusion

    In SpeedyWeather.jl we use hyerdiffusion through an $n$-th power Laplacian $(-1)^{n+1}\nabla^{2n}$ (hyper when $n>1$) which can be implemented as a multiplication of the spectral coefficients $\Psi_{lm}$ with $(-l(l+1))^nR^{-2n}$ (see spectral Laplacian) It is therefore computationally not more expensive to apply hyperdiffusion over diffusion as the $(-l(l+1))^nR^{-2n}$ can be precomputed. Note the sign change $(-1)^{n+1}$ here is such that the dissipative nature of the diffusion operator is retained for $n$ odd and even.

    In SpeedyWeather.jl the diffusion is applied implicitly. For that, consider a leapfrog scheme with time step $\Delta t$ of variable $\zeta$ to obtain from time steps $i-1$ and $i$, the next time step $i+1$

    \[\zeta_{i+1} = \zeta_{i-1} + 2\Delta t d\zeta,\]

    with $d\zeta$ being some tendency evaluated from $\zeta_i$. Now we want to add a diffusion term $(-1)^{n+1}\nu \nabla^{2n}\zeta$ with coefficient $\nu$, which however, is implicitly calculated from $\zeta_{i+1}$, then

    \[\zeta_{i+1} = \zeta_{i-1} + 2\Delta t (d\zeta + (-1)^{n+1} \nu\nabla^{2n}\zeta_{i+1})\]

    As the application of $(-1)^{n+1}\nu\nabla^{2n}$ is, for every spectral mode, equivalent to a multiplication of a constant, we can rewrite this to

    \[\zeta_{i+1} = \frac{\zeta_{i-1} + 2\Delta t d\zeta}{1 - 2\Delta (-1)^{n+1}\nu\nabla^{2n}},\]

    and expand the numerator to

    \[\zeta_{i+1} = \zeta_{i-1} + 2\Delta t \frac{d\zeta + (-1)^{n+1} \nu\nabla^{2n}\zeta_{i-1}}{1 - 2\Delta t (-1)^{n+1}\nu \nabla^{2n}},\]

    Hence the diffusion can be applied implicitly by updating the tendency $d\zeta$ as

    \[d\zeta \to \frac{d\zeta + (-1)^{n+1}\nu\nabla^{2n}\zeta_{i-1}}{1 - 2\Delta t \nu \nabla^{2n}}\]

    which only depends on $\zeta_{i-1}$. Now let $D_\text{explicit} = (-1)^{n+1}\nu\nabla^{2n}$ be the explicit part and $D_\text{implicit} = 1 - (-1)^{n+1} 2\Delta t \nu\nabla^{2n}$ the implicit part. Both parts can be precomputed and are $D_\text{implicit} = 1 - 2\Delta t \nu\nabla^{2n}$ the implicit part. Both parts can be precomputed and are only an element-wise multiplication in spectral space. For every spectral harmonic $l,m$ we do

    \[d\zeta \to D_\text{implicit}^{-1}(d\zeta + D_\text{explicit}\zeta_{i-1}).\]

    Hence 2 multiplications and 1 subtraction with precomputed constants. However, we will normalize the (hyper-)Laplacians as described in the following. This also will take care of the alternating sign such that the diffusion operation is dissipative regardless the power $n$.

    Normalization of diffusion

    In physics, the Laplace operator $\nabla^2$ is often used to represent diffusion due to viscosity in a fluid or diffusion that needs to be added to retain numerical stability. In both cases, the coefficient is $\nu$ of units $\text{m}^2\text{s}^{-1}$ and the full operator reads as $\nu \nabla^2$ with units $(\text{m}^2\text{s}^{-1})(\text{m}^{-2}) = \text{s}^{-1}$. This motivates us to normalize the Laplace operator by a constant of units $\text{m}^{-2}$ and the coefficient by its inverse such that it becomes a damping timescale of unit $\text{s}^{-1}$. Given the application in spectral space we decide to normalize by the largest eigenvalue $-l_\text{max}(l_\text{max}+1)$ such that all entries in the discrete spectral Laplace operator are in $[0,1]$. This also has the effect that the alternating sign drops out, such that higher wavenumbers are always dampened and not amplified. The normalized coefficient $\nu^* = l_\text{max}(l_\text{max}+1)\nu$ (always positive) is therefore reinterpreted as the (inverse) time scale at which the highest wavenumber is dampened to zero due to diffusion. Together we have

    \[D^\text{explicit}_{l,m} = -\nu^* \frac{l(l+1)}{l_\text{max}(l_\text{max}+1)}\]

    and the hyper-Laplacian of power $n$ follows as

    \[D^\text{explicit,n}_{l,m} = -\nu^* \left(\frac{l(l+1)}{l_\text{max}(l_\text{max}+1)}\right)^n\]

    and the implicit part is accordingly $D^\text{implicit,n}_{l,m} = 1 - 2\Delta t D^\text{explicit,n}_{l,m}$. Note that the diffusion time scale $\nu^*$ is then also scaled by the radius, see next section.

    Radius scaling

    Similar to a non-dimensionalization of the equations, SpeedyWeather.jl scales the barotropic vorticity equation with $R^2$ to obtain normalized gradient operators as follows. A scaling for vorticity $\zeta$ and stream function $\Psi$ is used that is

    \[\tilde{\zeta} = \zeta R, \tilde{\Psi} = \Psi R^{-1}.\]

    This is also convenient as vorticity is often $10^{-5}\text{ s}^{-1}$ in the atmosphere, but the streamfunction more like $10^5\text{ m}^2\text{ s}^{-1}$ and so this scaling brings both closer to 1 with a typical radius of the Earth of 6371km. The inversion of the Laplacians in order to obtain $\Psi$ from $\zeta$ therefore becomes

    \[\tilde{\zeta} = \tilde{\nabla}^2 \tilde{\Psi}\]

    where the dimensionless gradients simply omit the scaling with $1/R$, $\tilde{\nabla} = R\nabla$. The Barotropic vorticity equation scaled with $R^2$ is

    \[\partial_{\tilde{t}}\tilde{\zeta} + \tilde{\nabla} \cdot (\mathbf{u}(\tilde{\zeta} + \tilde{f})) = +\nabla \times \tilde{\mathbf{F}} + (-1)^{n+1}\tilde{\nu}\tilde{\nabla}^{2n}\tilde{\zeta}\]

    with

    • $\tilde{t} = tR^{-1}$, the scaled time $t$
    • $\mathbf{u} = (u,v)$, the velocity vector (no scaling applied)
    • $\tilde{f} = fR$, the scaled Coriolis parameter $f$
    • $\tilde{\mathbf{F}} = R\mathbf{F}$, the scaled forcing vector $\mathbf{F}$
    • $\tilde{\nu} = \nu^* R$, the scaled diffusion coefficient $\nu^*$, which itself is normalized to a damping time scale, see Normalization of diffusion.

    So scaling with the radius squared means we can use dimensionless operators, however, this comes at the cost of needing to deal with both a time step in seconds as well as a scaled time step in seconds per meter, which can be confusing. Furthermore, some constants like Coriolis or the diffusion coefficient need to be scaled too during initialisation, which may be confusing too because values are not what users expect them to be. SpeedyWeather.jl follows the logic that the scaling to the prognostic variables is only applied just before the time integration and variables are unscaled for output and after the time integration finished. That way, the scaling is hidden as much as possible from the user. In hopefully many other cases it is clearly denoted that a variable or constant is scaled.

    Time integration

    SpeedyWeather.jl is based on the Leapfrog time integration, which, for relative vorticity $\zeta$, is in its simplest form

    \[\frac{\zeta_{i+1} - \zeta_{i-1}}{2\Delta t} = RHS(\zeta_i),\]

    meaning we step from the previous time step $i-1$, leapfrogging over the current time step$i$ to the next time step $i+1$ by evaluating the tendencies on the right-hand side $RHS$ at the current time step $i$. The time stepping is done in spectral space. Once the right-hand side $RHS$ is evaluated, leapfrogging is a linear operation, meaning that its simply applied to every spectral coefficient $\zeta_{lm}$ as one would evaluate it on every grid point in grid-point models.

    For the Leapfrog time integration two time steps of the prognostic variables have to be stored, $i-1$ and $i$. Time step $i$ is used to evaluate the tendencies which are then added to $i-1$ in a step that also swaps the indices for the next time step $i \to i-1$ and $i+1 \to i$, so that no additional memory than two time steps have to be stored at the same time.

    The Leapfrog time integration has to be initialised with an Euler forward step in order to have a second time step $i+1$ available when starting from $i$ to actually leapfrog over. SpeedyWeather.jl therefore does two initial time steps that are different from the leapfrog time steps that follow and that have been described above.

    1. an Euler forward step with $\Delta t/2$, then
    2. one leapfrog time step with $\Delta t$, then
    3. leapfrog with $2 \Delta t$ till the end

    This is particularly done in a way that after 2. we have $t=0$ at $i-1$ and $t=\Delta t$ at $i$ available so that 3. can start the leapfrogging without any offset from the intuitive spacing $0,\Delta t, 2\Delta t, 3\Delta t,...$. The following schematic can be useful

    time at step $i-1$time at step $i$time step at $i+1$
    Initial conditions$t = 0$
    1: Euler(T) $\quad t = 0$$t=\Delta t/2$
    2: Leapfrog with $\Delta t$$t = 0$(T) $\quad t = \Delta t/2$$t = \Delta t$
    3 to $n$: Leapfrog with $2\Delta t$$t-\Delta t$(T) $\qquad \quad \quad t$$t+\Delta t$

    The time step that is used to evaluate the tendencies is denoted with (T). It is always the time step furthest in time that is available.

    Robert-Asselin and Williams filter

    The standard leapfrog time integration is often combined with a Robert-Asselin filter[Robert66][Asselin72] to dampen a computational mode. The idea is to start with a standard leapfrog step to obtain the next time step $i+1$ but then to correct the current time step $i$ by applying a filter which dampens the computational mode. The filter looks like a discrete Laplacian in time with a $(1, -2, 1)$ stencil, and so, maybe unsurprisingly, is efficient to filter out a "grid-scale oscillation" in time, aka the computational mode. Let $v$ be the unfiltered variable and $u$ be the filtered variable, $F$ the right-hand side tendency, then the standard leapfrog step is

    \[v_{i+1} = u_{i-1} + 2\Delta tF(v_i)\]

    Meaning we start with a filtered variable $u$ at the previous time step $i-1$, evaluate the tendency $F(v_i)$ based on the current time step $i$ to obtain an unfiltered next time step $v_{i+1}$. We then filter the current time step $i$ (which will become $i-1$ on the next iteration)

    \[u_i = v_i + \frac{\nu}{2}(v_{i+1} - 2v_i + u_{i-1})\]

    by adding a discrete Laplacian with coefficient $\tfrac{\nu}{2}$ to it, evaluated from the available filtered and unfiltered time steps centred around $i$: $v_{i-1}$ is not available anymore because it was overwritten by the filtering at the previous iteration, $u_i, u_{i+1}$ are not filtered yet when applying the Laplacian. The filter parameter $\nu$ is typically chosen between 0.01-0.2, with stronger filtering for higher values.

    Williams[Williams2009] then proposed an additional filter step to regain accuracy that is otherwise lost with a strong Robert-Asselin filter[Amezcua2011][Williams2011]. Now let $w$ be unfiltered, $v$ be once filtered, and $u$ twice filtered, then

    \[\begin{aligned} +w_{i+1} &= u_{i-1} + 2\Delta tF(v_i) \\ +u_i &= v_i + \frac{\nu\alpha}{2}(w_{i+1} - 2v_i + u_{i-1}) \\ +v_{i+1} &= w_{i+1} - \frac{\nu(1-\alpha)}{2}(w_{i+1} - 2v_i + u_{i-1}) +\end{aligned}\]

    with the Williams filter parameter $\alpha \in [0.5,1]$. For $\alpha=1$ we're back with the Robert-Asselin filter (the first two lines).

    The Laplacian in the parentheses is often called a displacement, meaning that the filtered value is displaced (or corrected) in the direction of the two surrounding time steps. The Williams filter now also applies the same displacement, but in the opposite direction to the next time step $i+1$ as a correction step (line 3 above) for a once-filtered value $v_{i+1}$ which will then be twice-filtered by the Robert-Asselin filter on the next iteration. For more details see the referenced publications.

    The initial Euler step (see Time integration, Table) is not filtered. Both the the Robert-Asselin and Williams filter are then switched on for all following leapfrog time steps.

    References

    diff --git a/dev/conventions/index.html b/dev/conventions/index.html new file mode 100644 index 000000000..6ab01c099 --- /dev/null +++ b/dev/conventions/index.html @@ -0,0 +1,12 @@ + +Style and convention guide · SpeedyWeather.jl

    Style and convention guide

    In SpeedyWeather.jl we've been following the several conventions that are documented here.

    Variable naming

    The prognostic variables in spectral space are called

        vor         # Vorticity of horizontal wind field
    +    div         # Divergence of horizontal wind field
    +    temp        # Absolute temperature [K]
    +    pres_surf   # Logarithm of surface pressure [log(Pa)]
    +    humid       # Specific humidity [g/kg]

    their transforms into grid-point space get a _grid suffix, their tendencies a _tend suffix. Further derived diagnostic dynamic variables are

        u
    +    v
    +    geopot
    +    ...

    Preallocation

    All arrays representing variables are preallocated and grouped into two structs

        Prog::PrognosticVariables
    +    Diag::DiagnosticVariables

    The Diag struct contains further structs which represent the grid-point transformations of the prognostic variables and their tendencies.

        gridvars::GridVariables
    +    tendencies::Tendencies
    +    ...

    Constant arrays are grouped into several structs

    Boundaries

    Julian conventions

    We follow Julia's style guide and highlight here some important aspects of it.

    • Bang (!) convention. A function func does not change its input arguments, however, func! does.

    Hence, func! is often the in-place version of func, avoiding as much memory allocation as possible and often changing its first argument, e.g. func!(out,in) so that argument in is used to calculate out which has been preallocated before function call.

    • Number format flexibility. Numeric literals such as 2.0 or 1/3 are only used in the model setup

    but avoided throughout the code to obtain a fully number format-flexible package using the number format NF as a compile-time variable throughout the code. This often leads to overly specific code whereas a Real would generally suffice. However, this is done to avoid any implicit type conversions.

    diff --git a/dev/development/index.html b/dev/development/index.html new file mode 100644 index 000000000..8723356b1 --- /dev/null +++ b/dev/development/index.html @@ -0,0 +1,3 @@ + +Development notes · SpeedyWeather.jl

    Development notes

    To run tests, from the path of your local clone of the repository do:

    julia --project=. -e 'import Pkg; Pkg.test()'

    To install dependencies:

    julia --project -e 'import Pkg; Pkg.instantiate()`

    then opening:

    julia --project

    you are able to using SpeedyWeather.

    To generate the docs:

    julia --project=docs -e 'import Pkg; Pkg.develop(path="."); Pkg.instantiate()'
    +julia --project=docs docs/make.jl

    If the docs are generated successfully, you view them by opening docs/build/index.html in your favorite browser.

    diff --git a/dev/extending/index.html b/dev/extending/index.html new file mode 100644 index 000000000..ee99d3a47 --- /dev/null +++ b/dev/extending/index.html @@ -0,0 +1,2 @@ + +Extending SpeedyWeather · SpeedyWeather.jl diff --git a/dev/functions/index.html b/dev/functions/index.html new file mode 100644 index 000000000..84c9599a8 --- /dev/null +++ b/dev/functions/index.html @@ -0,0 +1,634 @@ + +Function and type index · SpeedyWeather.jl

    Function and type index

    SpeedyWeather.BarotropicModelType

    The BarotropicModel struct holds all other structs that contain precalculated constants, whether scalars or arrays that do not change throughout model integration.

    • spectral_grid::SpectralGrid: dictates resolution for many other components

    • planet::SpeedyWeather.AbstractPlanet: contains physical and orbital characteristics

    • atmosphere::SpeedyWeather.AbstractAtmosphere

    • forcing::SpeedyWeather.AbstractForcing{NF} where NF<:AbstractFloat

    • initial_conditions::SpeedyWeather.InitialConditions

    • time_stepping::SpeedyWeather.TimeStepper{NF} where NF<:AbstractFloat

    • spectral_transform::SpectralTransform

    • horizontal_diffusion::SpeedyWeather.HorizontalDiffusion{NF} where NF<:AbstractFloat

    • implicit::SpeedyWeather.AbstractImplicit{NF} where NF<:AbstractFloat

    • geometry::Geometry

    • constants::DynamicsConstants

    • device_setup::SpeedyWeather.DeviceSetup

    • output::SpeedyWeather.AbstractOutputWriter

    • feedback::SpeedyWeather.AbstractFeedback

    source
    SpeedyWeather.ClockType

    Clock struct keeps track of the model time, how many days to integrate for and how many time steps this takes

    • time::Dates.DateTime: current model time

    • n_days::Float64: number of days to integrate for, set in run!(::Simulation)

    • n_timesteps::Int64: number of time steps to integrate for, set in initialize!(::Clock,::TimeStepper)

    .

    source
    SpeedyWeather.ColumnVariablesType

    Mutable struct that contains all prognostic (copies thereof) and diagnostic variables in a single column needed to evaluate the physical parametrizations. For now the struct is mutable as we will reuse the struct to iterate over horizontal grid points. Every column vector has nlev entries, from [1] at the top to [end] at the lowermost model level at the planetary boundary layer.

    • nlev::Int64

    • nband::Int64

    • n_stratosphere_levels::Int64

    • jring::Int64

    • lond::AbstractFloat

    • latd::AbstractFloat

    • u::Vector{NF} where NF<:AbstractFloat

    • v::Vector{NF} where NF<:AbstractFloat

    • temp::Vector{NF} where NF<:AbstractFloat

    • humid::Vector{NF} where NF<:AbstractFloat

    • ln_pres::Vector{NF} where NF<:AbstractFloat

    • pres::Vector{NF} where NF<:AbstractFloat

    • u_tend::Vector{NF} where NF<:AbstractFloat

    • v_tend::Vector{NF} where NF<:AbstractFloat

    • temp_tend::Vector{NF} where NF<:AbstractFloat

    • humid_tend::Vector{NF} where NF<:AbstractFloat

    • geopot::Vector{NF} where NF<:AbstractFloat

    • flux_u_upward::Vector{NF} where NF<:AbstractFloat

    • flux_u_downward::Vector{NF} where NF<:AbstractFloat

    • flux_v_upward::Vector{NF} where NF<:AbstractFloat

    • flux_v_downward::Vector{NF} where NF<:AbstractFloat

    • flux_temp_upward::Vector{NF} where NF<:AbstractFloat

    • flux_temp_downward::Vector{NF} where NF<:AbstractFloat

    • flux_humid_upward::Vector{NF} where NF<:AbstractFloat

    • flux_humid_downward::Vector{NF} where NF<:AbstractFloat

    • sat_humid::Vector{NF} where NF<:AbstractFloat

    • sat_vap_pres::Vector{NF} where NF<:AbstractFloat

    • dry_static_energy::Vector{NF} where NF<:AbstractFloat

    • moist_static_energy::Vector{NF} where NF<:AbstractFloat

    • humid_half::Vector{NF} where NF<:AbstractFloat

    • sat_humid_half::Vector{NF} where NF<:AbstractFloat

    • sat_moist_static_energy::Vector{NF} where NF<:AbstractFloat

    • dry_static_energy_half::Vector{NF} where NF<:AbstractFloat

    • sat_moist_static_energy_half::Vector{NF} where NF<:AbstractFloat

    • conditional_instability::Bool

    • activate_convection::Bool

    • cloud_top::Int64

    • excess_humidity::AbstractFloat

    • cloud_base_mass_flux::AbstractFloat

    • precip_convection::AbstractFloat

    • net_flux_humid::Vector{NF} where NF<:AbstractFloat

    • net_flux_dry_static_energy::Vector{NF} where NF<:AbstractFloat

    • entrainment_profile::Vector{NF} where NF<:AbstractFloat

    • precip_large_scale::AbstractFloat

    • wvi::Matrix{NF} where NF<:AbstractFloat

    • tau2::Matrix{NF} where NF<:AbstractFloat

    • dfabs::Vector{NF} where NF<:AbstractFloat

    • fsfcd::AbstractFloat

    • st4a::Matrix{NF} where NF<:AbstractFloat

    • flux::Vector{NF} where NF<:AbstractFloat

    • fsfcu::AbstractFloat

    • ts::AbstractFloat

    • fsfc::AbstractFloat

    • ftop::AbstractFloat

    • stratc::Vector{NF} where NF<:AbstractFloat

    • tyear::AbstractFloat

    • csol::AbstractFloat

    • topsr::AbstractFloat

    • fsol::AbstractFloat

    • ozupp::AbstractFloat

    • ozone::AbstractFloat

    • zenit::AbstractFloat

    • stratz::AbstractFloat

    • albsfc::AbstractFloat

    • ssrd::AbstractFloat

    • ssr::AbstractFloat

    • tsr::AbstractFloat

    • tend_t_rsw::Vector{NF} where NF<:AbstractFloat

    • norm_pres::AbstractFloat

    • icltop::Int64

    • cloudc::AbstractFloat

    • clstr::AbstractFloat

    • qcloud::AbstractFloat

    • fmask::AbstractFloat

    • rel_hum::Vector{NF} where NF<:AbstractFloat

    • grad_dry_static_energy::AbstractFloat

    source
    SpeedyWeather.DeviceSetupType
    DeviceSetup{S<:AbstractDevice}

    Holds information about the device the model is running on and workgroup size.

    • device::AbstractDevice: Device the model is running on
    • device_KA::KernelAbstractions.Device: Device for use with KernelAbstractions
    • n: workgroup size
    source
    SpeedyWeather.DynamicsConstantsType

    Struct holding constants needed at runtime for the dynamical core in number format NF.

    • radius::AbstractFloat: Radius of Planet [m]

    • rotation::AbstractFloat: Angular frequency of Planet's rotation [1/s]

    • gravity::AbstractFloat: Gravitational acceleration [m/s^2]

    • layer_thickness::AbstractFloat: shallow water layer thickness [m]

    • R_dry::AbstractFloat: specific gas constant for dry air [J/kg/K]

    • R_vapour::AbstractFloat: specific gas constant for water vapour [J/kg/K]

    • μ_virt_temp::AbstractFloat: used in Tv = T(1+μq) for virt temp Tv(T,q) calculation

    • cₚ::AbstractFloat: specific heat at constant pressure [J/K/kg]

    • κ::AbstractFloat: = R_dry/cₚ, gas const for air over heat capacity

    • water_density::AbstractFloat: water density [kg/m³]

    • f_coriolis::Vector{NF} where NF<:AbstractFloat: coriolis frequency 1/s = 2Ωsin(lat)radius

    • σ_lnp_A::Vector{NF} where NF<:AbstractFloat: σ-related factor A needed for adiabatic terms

    • σ_lnp_B::Vector{NF} where NF<:AbstractFloat: σ-related factor B needed for adiabatic terms

    • Δp_geopot_half::Vector{NF} where NF<:AbstractFloat: = R*(ln(pk+1) - ln(pk+1/2)), for half level geopotential

    • Δp_geopot_full::Vector{NF} where NF<:AbstractFloat: = R*(ln(pk+1/2) - ln(pk)), for full level geopotential

    • temp_ref_profile::Vector{NF} where NF<:AbstractFloat: reference temperature profile

    source
    SpeedyWeather.DynamicsConstantsMethod
    DynamicsConstants(
    +    spectral_grid::SpectralGrid,
    +    planet::SpeedyWeather.AbstractPlanet,
    +    atmosphere::SpeedyWeather.AbstractAtmosphere,
    +    geometry::Geometry
    +) -> Any
    +

    Generator function for a DynamicsConstants struct.

    source
    SpeedyWeather.EarthType

    Create a struct Earth<:AbstractPlanet, with the following physical/orbital characteristics. Note that radius is not part of it as this should be chosen in SpectralGrid. Keyword arguments are

    • rotation::Float64: angular frequency of Earth's rotation [rad/s]

    • gravity::Float64: gravitational acceleration [m/s^2]

    • daily_cycle::Bool: switch on/off daily cycle

    • length_of_day::Float64: [hrs] in a day

    • seasonal_cycle::Bool: switch on/off seasonal cycle

    • length_of_year::Float64: [days] in a year

    • equinox::Dates.DateTime: time of spring equinox (year irrelevant)

    • axial_tilt::Float64: angle [˚] rotation axis tilt wrt to orbit

    source
    SpeedyWeather.EarthAtmosphereType

    Create a struct EarthAtmosphere<:AbstractPlanet, with the following physical/chemical characteristics. Note that radius is not part of it as this should be chosen in SpectralGrid. Keyword arguments are

    • mol_mass_dry_air::Float64: molar mass of dry air [g/mol]

    • mol_mass_vapour::Float64: molar mass of water vapour [g/mol]

    • cₚ::Float64: specific heat at constant pressure [J/K/kg]

    • R_gas::Float64: universal gas constant [J/K/mol]

    • R_dry::Float64: specific gas constant for dry air [J/kg/K]

    • R_vapour::Float64: specific gas constant for water vapour [J/kg/K]

    • water_density::Float64: water density [kg/m³]

    • latent_heat_condensation::Float64: latent heat of condensation [J/g] for consistency with specific humidity [g/Kg], also called alhc

    • latent_heat_sublimation::Float64: latent heat of sublimation [J/g], also called alhs

    • stefan_boltzmann::Float64: stefan-Boltzmann constant [W/m²/K⁴]

    • lapse_rate::Float64: moist adiabatic temperature lapse rate $-dT/dz$ [K/km]

    • temp_ref::Float64: absolute temperature at surface $z=0$ [K]

    • temp_top::Float64: absolute temperature in stratosphere [K]

    • ΔT_stratosphere::Float64: for stratospheric lapse rate [K] after Jablonowski

    • σ_tropopause::Float64: start of the stratosphere in sigma coordinates

    • σ_boundary_layer::Float64: top of the planetary boundary layer in sigma coordinates

    • scale_height::Float64: scale height for pressure [km]

    • pres_ref::Float64: surface pressure [hPa]

    • scale_height_humid::Float64: scale height for specific humidity [km]

    • relhumid_ref::Float64: relative humidity of near-surface air [1]

    • water_pres_ref::Float64: saturation water vapour pressure [Pa]

    • layer_thickness::Float64: layer thickness for the shallow water model [km]

    source
    SpeedyWeather.EarthOrographyType

    Earth's orography read from file, with smoothing.

    • path::String: path to the folder containing the orography file, pkg path default

    • file::String: filename of orography

    • file_Grid::Type{<:SpeedyWeather.RingGrids.AbstractGrid}: Grid the orography file comes on

    • scale::Float64: scale orography by a factor

    • smoothing::Bool: smooth the orography field?

    • smoothing_power::Float64: power of Laplacian for smoothing

    • smoothing_strength::Float64: highest degree l is multiplied by

    • smoothing_truncation::Int64: resolution of orography in spectral trunc

    • orography::SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat: height [m] on grid-point space.

    • geopot_surf::LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat: surface geopotential, height*gravity [m²/s²]

    source
    SpeedyWeather.EarthOrographyMethod
    EarthOrography(
    +    spectral_grid::SpectralGrid;
    +    kwargs...
    +) -> Any
    +

    Generator function pulling the resolution information from spectral_grid.

    source
    SpeedyWeather.FeedbackType
    Feedback() -> Feedback
    +Feedback(verbose::Bool) -> Feedback
    +Feedback(verbose::Bool, debug::Bool) -> Feedback
    +

    Generator function for a Feedback struct.

    source
    SpeedyWeather.FeedbackType

    Feedback struct that contains options and object for command-line feedback like the progress meter.

    • verbose::Bool: print feedback to REPL?

    • debug::Bool: check for NaRs in the prognostic variables

    • output::Bool: write a progress.txt file? State synced with OutputWriter.output

    • id::Union{Int64, String}: identification of run, taken from ::OutputWriter

    • run_path::String: path to run folder, taken from ::OutputWriter

    • progress_meter::ProgressMeter.Progress: struct containing everything progress related

    • progress_txt::Union{Nothing, IOStream}: txt is a Nothing in case of no output

    • nars_detected::Bool: did Infs/NaNs occur in the simulation?

    source
    SpeedyWeather.GeometryType

    Construct Geometry struct containing parameters and arrays describing an iso-latitude grid <:AbstractGrid and the vertical levels. Pass on SpectralGrid to calculate the following fields

    • spectral_grid::SpectralGrid: SpectralGrid that defines spectral and grid resolution

    • Grid::Type{<:SpeedyWeather.RingGrids.AbstractGrid}: grid of the dynamical core

    • nlat_half::Int64: resolution parameter nlat_half of Grid, # of latitudes on one hemisphere (incl Equator)

    • nlon_max::Int64: maximum number of longitudes (at/around Equator)

    • nlon::Int64: =nlon_max, same (used for compatibility), TODO: still needed?

    • nlat::Int64: number of latitude rings

    • nlev::Int64: number of vertical levels

    • npoints::Int64: total number of grid points

    • radius::AbstractFloat: Planet's radius [m]

    • latd::Vector{Float64}: array of latitudes in degrees (90˚...-90˚)

    • lond::Vector{Float64}: array of longitudes in degrees (0...360˚), empty for non-full grids

    • londs::Vector{NF} where NF<:AbstractFloat: longitude (-180˚...180˚) for each grid point in ring order

    • latds::Vector{NF} where NF<:AbstractFloat: latitude (-90˚...˚90) for each grid point in ring order

    • sinlat::Vector{NF} where NF<:AbstractFloat: sin of latitudes

    • coslat::Vector{NF} where NF<:AbstractFloat: cos of latitudes

    • coslat⁻¹::Vector{NF} where NF<:AbstractFloat: = 1/cos(lat)

    • coslat²::Vector{NF} where NF<:AbstractFloat: = cos²(lat)

    • coslat⁻²::Vector{NF} where NF<:AbstractFloat: # = 1/cos²(lat)

    • σ_levels_half::Vector{NF} where NF<:AbstractFloat: σ at half levels, σ_k+1/2

    • σ_levels_full::Vector{NF} where NF<:AbstractFloat: σ at full levels, σₖ

    • σ_levels_thick::Vector{NF} where NF<:AbstractFloat: σ level thicknesses, σₖ₊₁ - σₖ

    • ln_σ_levels_full::Vector{NF} where NF<:AbstractFloat: log of σ at full levels, include surface (σ=1) as last element

    source
    SpeedyWeather.GeometryMethod
    Geometry(spectral_grid::SpectralGrid) -> Any
    +

    Generator function for Geometry struct based on spectral_grid.

    source
    SpeedyWeather.HeldSuarezType

    Struct that defines the temperature relaxation from Held and Suarez, 1996 BAMS

    • nlat::Int64: number of latitude rings

    • nlev::Int64: number of vertical levels

    • σb::Float64: sigma coordinate below which faster surface relaxation is applied

    • relax_time_slow::Float64: time scale [hrs] for slow global relaxation

    • relax_time_fast::Float64: time scale [hrs] for faster tropical surface relaxation

    • Tmin::Float64: minimum equilibrium temperature [K]

    • Tmax::Float64: maximum equilibrium temperature [K]

    • ΔTy::Float64: meridional temperature gradient [K]

    • Δθz::Float64: vertical temperature gradient [K]

    • κ::Base.RefValue{NF} where NF<:AbstractFloat

    • p₀::Base.RefValue{NF} where NF<:AbstractFloat

    • temp_relax_freq::Matrix{NF} where NF<:AbstractFloat

    • temp_equil_a::Vector{NF} where NF<:AbstractFloat

    • temp_equil_b::Vector{NF} where NF<:AbstractFloat

    source
    SpeedyWeather.HeldSuarezMethod
    HeldSuarez(SG::SpectralGrid; kwargs...) -> Any
    +

    create a HeldSuarez temperature relaxation with arrays allocated given spectral_grid

    source
    SpeedyWeather.HyperDiffusionType

    Struct for horizontal hyper diffusion of vor, div, temp; implicitly in spectral space with a power of the Laplacian (default=4) and the strength controlled by time_scale. Options exist to scale the diffusion by resolution, and adaptive depending on the current vorticity maximum to increase diffusion in active layers. Furthermore the power can be decreased above the tapering_σ to power_stratosphere (default 2). For Barotropic, ShallowWater, the default non-adaptive constant-time scale hyper diffusion is used. Options are

    • trunc::Int64: spectral resolution

    • nlev::Int64: number of vertical levels

    • power::Float64: power of Laplacian

    • time_scale::Float64: diffusion time scales [hrs]

    • resolution_scaling::Float64: stronger diffusion with resolution? 0: constant with trunc, 1: (inverse) linear with trunc, etc

    • power_stratosphere::Float64: different power for tropopause/stratosphere

    • tapering_σ::Float64: linearly scale towards power_stratosphere above this σ

    • adaptive::Bool: adaptive = higher diffusion for layers with higher vorticity levels.

    • vor_max::Float64: above this (absolute) vorticity level [1/s], diffusion is increased

    • adaptive_strength::Float64: increase strength above vor_max by this factor times max(abs(vor))/vor_max

    • ∇²ⁿ_2D::Vector

    • ∇²ⁿ_2D_implicit::Vector

    • ∇²ⁿ::Array{Vector{NF}, 1} where NF

    • ∇²ⁿ_implicit::Array{Vector{NF}, 1} where NF

    source
    SpeedyWeather.HyperDiffusionMethod
    HyperDiffusion(
    +    spectral_grid::SpectralGrid;
    +    kwargs...
    +) -> Any
    +

    Generator function based on the resolutin in spectral_grid. Passes on keyword arguments.

    source
    SpeedyWeather.ImplicitPrimitiveEqType

    Struct that holds various precomputed arrays for the semi-implicit correction to prevent gravity waves from amplifying in the primitive equation model.

    • trunc::Int64: spectral resolution

    • nlev::Int64: number of vertical levels

    • α::Float64: time-step coefficient: 0=explicit, 0.5=centred implicit, 1=backward implicit

    • temp_profile::Vector{NF} where NF<:AbstractFloat: vertical temperature profile, obtained from diagn

    • ξ::Base.RefValue{NF} where NF<:AbstractFloat: time step 2α*Δt packed in RefValue for mutability

    • R::Matrix{NF} where NF<:AbstractFloat: divergence: operator for the geopotential calculation

    • U::Vector{NF} where NF<:AbstractFloat: divergence: the -RdTₖ∇² term excl the eigenvalues from ∇² for divergence

    • L::Matrix{NF} where NF<:AbstractFloat: temperature: operator for the TₖD + κTₖDlnps/Dt term

    • W::Vector{NF} where NF<:AbstractFloat: pressure: vertical averaging of the -D̄ term in the log surface pres equation

    • L0::Vector{NF} where NF<:AbstractFloat: components to construct L, 1/ 2Δσ

    • L1::Matrix{NF} where NF<:AbstractFloat: vert advection term in the temperature equation (below+above)

    • L2::Vector{NF} where NF<:AbstractFloat: factor in front of the divsumabove term

    • L3::Matrix{NF} where NF<:AbstractFloat: sumabove operator itself

    • L4::Vector{NF} where NF<:AbstractFloat: factor in front of div term in Dlnps/Dt

    • S::Matrix{NF} where NF<:AbstractFloat: for every l the matrix to be inverted

    • S⁻¹::Array{NF, 3} where NF<:AbstractFloat: combined inverted operator: S = 1 - ξ²(RL + UW)

    source
    SpeedyWeather.ImplicitShallowWaterType

    Struct that holds various precomputed arrays for the semi-implicit correction to prevent gravity waves from amplifying in the shallow water model.

    • trunc::Int64

    • α::Float64: coefficient for semi-implicit computations to filter gravity waves

    • H::Base.RefValue{NF} where NF<:AbstractFloat

    • ξH::Base.RefValue{NF} where NF<:AbstractFloat

    • g∇²::Vector{NF} where NF<:AbstractFloat

    • ξg∇²::Vector{NF} where NF<:AbstractFloat

    • S⁻¹::Vector{NF} where NF<:AbstractFloat

    source
    SpeedyWeather.JablonowskiRelaxationMethod
    JablonowskiRelaxation(SG::SpectralGrid; kwargs...) -> Any
    +

    create a JablonowskiRelaxation temperature relaxation with arrays allocated given spectral_grid

    source
    SpeedyWeather.KeepbitsType

    Number of mantissa bits to keep for each prognostic variable when compressed for netCDF and .jld2 data output.

    • u::Int64

    • v::Int64

    • vor::Int64

    • div::Int64

    • temp::Int64

    • pres::Int64

    • humid::Int64

    • precip_cond::Int64

    • precip_conv::Int64

    source
    SpeedyWeather.LeapfrogType

    Leapfrog time stepping defined by the following fields

    • trunc::Int64: spectral resolution (max degree of spherical harmonics)

    • Δt_at_T31::Float64: time step in minutes for T31, scale linearly to trunc

    • radius::Any: radius of sphere [m], used for scaling

    • robert_filter::Any: Robert (1966) time filter coefficeint to suppress comput. mode

    • williams_filter::Any: Williams time filter (Amezcua 2011) coefficient for 3rd order acc

    • Δt_sec::Int64: time step Δt [s] at specified resolution

    • Δt::Any: time step Δt [s/m] at specified resolution, scaled by 1/radius

    • Δt_hrs::Float64: convert time step Δt from minutes to hours

    source
    SpeedyWeather.LeapfrogMethod
    Leapfrog(spectral_grid::SpectralGrid; kwargs...) -> Any
    +

    Generator function for a Leapfrog struct using spectral_grid for the resolution information.

    source
    SpeedyWeather.LinearDragType

    Linear boundary layer drag Following Held and Suarez, 1996 BAMS

    • σb::Float64

    • time_scale::Float64

    • nlev::Int64

    • drag_coefs::Vector{NF} where NF<:AbstractFloat

    source
    SpeedyWeather.MagnusCoefsType

    Parameters for computing saturation vapour pressure using the August-Roche-Magnus formula,

    eᵢ(T) = e₀ * exp(Cᵢ * (T - T₀) / (T - Tᵢ)),

    where T is in Kelvin and i = 1,2 for saturation with respect to water and ice, respectively.

    • e₀::AbstractFloat: Saturation vapour pressure at 0°C [Pa]

    • T₀::AbstractFloat: 0°C in Kelvin

    • T₁::AbstractFloat

    • T₂::AbstractFloat

    • C₁::AbstractFloat

    • C₂::AbstractFloat

    source
    SpeedyWeather.NoOrographyType

    Orography with zero height in orography and zero surface geopotential geopot_surf.

    • orography::SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat: height [m] on grid-point space.

    • geopot_surf::LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat: surface geopotential, height*gravity [m²/s²]

    source
    SpeedyWeather.NoOrographyMethod
    NoOrography(spectral_grid::SpectralGrid) -> NoOrography
    +

    Generator function pulling the resolution information from spectral_grid.

    source
    SpeedyWeather.OutputWriterType

    NetCDF output writer. Contains all output options and auxiliary fields for output interpolation. To be initialised with OutputWriter(::SpectralGrid,::Type{<:ModelSetup},kwargs...) to pass on the resolution information and the model type which chooses which variables to output. Options include

    • spectral_grid::SpectralGrid

    • output::Bool

    • path::String: [OPTION] path to output folder, run_???? will be created within

    • id::String: [OPTION] run identification number/string

    • run_path::String

    • filename::String: [OPTION] name of the output netcdf file

    • write_restart::Bool: [OPTION] also write restart file if output==true?

    • pkg_version::VersionNumber

    • startdate::Dates.DateTime

    • output_dt::Float64: [OPTION] output frequency, time step [hrs]

    • output_dt_sec::Int64: actual output time step [sec]

    • output_vars::Vector{Symbol}: [OPTION] which variables to output, u, v, vor, div, pres, temp, humid

    • missing_value::Union{Float32, Float64}: [OPTION] missing value to be used in netcdf output

    • compression_level::Int64: [OPTION] lossless compression level; 1=low but fast, 9=high but slow

    • keepbits::SpeedyWeather.Keepbits: [OPTION] mantissa bits to keep for every variable

    • output_every_n_steps::Int64

    • timestep_counter::Int64

    • output_counter::Int64

    • netcdf_file::Union{Nothing, NetCDF.NcFile}

    • input_Grid::Type{<:SpeedyWeather.RingGrids.AbstractGrid}

    • as_matrix::Bool: [OPTION] sort grid points into a matrix (interpolation-free), for OctahedralClenshawGrid, OctaHEALPixGrid only

    • quadrant_rotation::NTuple{4, Int64}

    • matrix_quadrant::NTuple{4, Tuple{Int64, Int64}}

    • output_Grid::Type{<:SpeedyWeather.RingGrids.AbstractFullGrid}: [OPTION] the grid used for output, full grids only

    • nlat_half::Int64: [OPTION] the resolution of the output grid, default: same nlat_half as in the dynamical core

    • nlon::Int64

    • nlat::Int64

    • npoints::Int64

    • nlev::Int64

    • interpolator::SpeedyWeather.RingGrids.AbstractInterpolator

    • u::Matrix{NF} where NF<:Union{Float32, Float64}

    • v::Matrix{NF} where NF<:Union{Float32, Float64}

    • vor::Matrix{NF} where NF<:Union{Float32, Float64}

    • div::Matrix{NF} where NF<:Union{Float32, Float64}

    • temp::Matrix{NF} where NF<:Union{Float32, Float64}

    • pres::Matrix{NF} where NF<:Union{Float32, Float64}

    • humid::Matrix{NF} where NF<:Union{Float32, Float64}

    • precip_cond::Matrix{NF} where NF<:Union{Float32, Float64}

    • precip_conv::Matrix{NF} where NF<:Union{Float32, Float64}

    source
    SpeedyWeather.PrimitiveDryModelType

    The PrimitiveDryModel struct holds all other structs that contain precalculated constants, whether scalars or arrays that do not change throughout model integration.

    • spectral_grid::SpectralGrid: dictates resolution for many other components

    • planet::SpeedyWeather.AbstractPlanet: contains physical and orbital characteristics

    • atmosphere::SpeedyWeather.AbstractAtmosphere

    • initial_conditions::SpeedyWeather.InitialConditions

    • orography::SpeedyWeather.AbstractOrography{NF} where NF<:AbstractFloat

    • physics::Bool

    • boundary_layer_drag::SpeedyWeather.BoundaryLayerDrag{NF} where NF<:AbstractFloat

    • temperature_relaxation::SpeedyWeather.TemperatureRelaxation{NF} where NF<:AbstractFloat

    • static_energy_diffusion::SpeedyWeather.VerticalDiffusion{NF} where NF<:AbstractFloat

    • time_stepping::SpeedyWeather.TimeStepper{NF} where NF<:AbstractFloat

    • spectral_transform::SpectralTransform

    • horizontal_diffusion::SpeedyWeather.HorizontalDiffusion{NF} where NF<:AbstractFloat

    • implicit::SpeedyWeather.AbstractImplicit{NF} where NF<:AbstractFloat

    • geometry::Geometry

    • constants::DynamicsConstants

    • device_setup::SpeedyWeather.DeviceSetup

    • output::SpeedyWeather.AbstractOutputWriter

    • feedback::SpeedyWeather.AbstractFeedback

    source
    SpeedyWeather.PrimitiveWetModelType

    The PrimitiveDryModel struct holds all other structs that contain precalculated constants, whether scalars or arrays that do not change throughout model integration.

    • spectral_grid::SpectralGrid: dictates resolution for many other components

    • planet::SpeedyWeather.AbstractPlanet: contains physical and orbital characteristics

    • atmosphere::SpeedyWeather.AbstractAtmosphere

    • initial_conditions::SpeedyWeather.InitialConditions

    • orography::SpeedyWeather.AbstractOrography{NF} where NF<:AbstractFloat

    • physics::Bool

    • thermodynamics::SpeedyWeather.Thermodynamics{NF} where NF<:AbstractFloat

    • boundary_layer_drag::SpeedyWeather.BoundaryLayerDrag{NF} where NF<:AbstractFloat

    • temperature_relaxation::SpeedyWeather.TemperatureRelaxation{NF} where NF<:AbstractFloat

    • static_energy_diffusion::SpeedyWeather.VerticalDiffusion{NF} where NF<:AbstractFloat

    • large_scale_condensation::SpeedyWeather.AbstractCondensation{NF} where NF<:AbstractFloat

    • time_stepping::SpeedyWeather.TimeStepper{NF} where NF<:AbstractFloat

    • spectral_transform::SpectralTransform

    • horizontal_diffusion::SpeedyWeather.HorizontalDiffusion{NF} where NF<:AbstractFloat

    • implicit::SpeedyWeather.AbstractImplicit{NF} where NF<:AbstractFloat

    • geometry::Geometry

    • constants::DynamicsConstants

    • device_setup::SpeedyWeather.DeviceSetup

    • output::SpeedyWeather.AbstractOutputWriter

    • feedback::SpeedyWeather.AbstractFeedback

    source
    SpeedyWeather.ShallowWaterModelType

    The ShallowWaterModel struct holds all other structs that contain precalculated constants, whether scalars or arrays that do not change throughout model integration.

    • spectral_grid::SpectralGrid: dictates resolution for many other components

    • planet::SpeedyWeather.AbstractPlanet: contains physical and orbital characteristics

    • atmosphere::SpeedyWeather.AbstractAtmosphere

    • forcing::SpeedyWeather.AbstractForcing{NF} where NF<:AbstractFloat

    • initial_conditions::SpeedyWeather.InitialConditions

    • orography::SpeedyWeather.AbstractOrography{NF} where NF<:AbstractFloat

    • time_stepping::SpeedyWeather.TimeStepper{NF} where NF<:AbstractFloat

    • spectral_transform::SpectralTransform

    • horizontal_diffusion::SpeedyWeather.HorizontalDiffusion{NF} where NF<:AbstractFloat

    • implicit::SpeedyWeather.AbstractImplicit{NF} where NF<:AbstractFloat

    • geometry::Geometry

    • constants::DynamicsConstants

    • device_setup::SpeedyWeather.DeviceSetup

    • output::SpeedyWeather.AbstractOutputWriter

    • feedback::SpeedyWeather.AbstractFeedback

    source
    SpeedyWeather.SimulationType

    Simulation is a container struct to be used with run!(::Simulation). It contains

    • prognostic_variables::PrognosticVariables: define the current state of the model

    • diagnostic_variables::DiagnosticVariables: contain the tendencies and auxiliary arrays to compute them

    • model::SpeedyWeather.ModelSetup: all parameters, constant at runtime

    source
    SpeedyWeather.SpectralGridType

    Defines the horizontal spectral resolution and corresponding grid and the vertical coordinate for SpeedyWeather.jl. Options are

    • NF::Type{<:AbstractFloat}: number format used throughout the model

    • trunc::Int64: horizontal resolution as the maximum degree of spherical harmonics

    • Grid::Type{<:SpeedyWeather.RingGrids.AbstractGrid}: horizontal grid used for calculations in grid-point space

    • dealiasing::Float64: how to match spectral with grid resolution: dealiasing factor, 1=linear, 2=quadratic, 3=cubic grid

    • radius::Float64: radius of the sphere [m]

    • nlat_half::Int64: number of latitude rings on one hemisphere (Equator incl)

    • npoints::Int64: total number of grid points in the horizontal

    • nlev::Int64: number of vertical levels

    • vertical_coordinates::SpeedyWeather.VerticalCoordinates: coordinates used to discretize the vertical

    nlat_half and npoints should not be chosen but are derived from trunc, Grid and dealiasing.

    source
    SpeedyWeather.SpeedyCondensationType

    Large scale condensation as in Fortran SPEEDY with default values from therein.

    • nlev::Int64: number of vertical levels

    • threshold_boundary_layer::Float64: Relative humidity threshold for boundary layer

    • threshold_range::Float64: Vertical range of relative humidity threshold

    • threshold_max::Float64: Maximum relative humidity threshold [1]

    • time_scale::Float64: Relaxation time for humidity [hrs]

    • n_stratosphere_levels::Base.RefValue{Int64}

    • humid_tend_max::Vector{NF} where NF<:AbstractFloat

    • relative_threshold::Vector{NF} where NF<:AbstractFloat

    source
    SpeedyWeather.SpeedyTransforms.SpectralTransformMethod
    SpectralTransform(
    +    spectral_grid::SpectralGrid;
    +    recompute_legendre,
    +    kwargs...
    +) -> SpectralTransform
    +

    Generator function for a SpectralTransform struct pulling in parameters from a SpectralGrid struct.

    source
    SpeedyWeather.StartFromFileType

    Restart from a previous SpeedyWeather.jl simulation via the restart file restart.jld2 Applies interpolation in the horizontal but not in the vertical. restart.jld2 is identified by

    • path::String: path for restart file

    • id::Union{Int64, String}: run_id of restart file in run_????/restart.jld2

    source
    SpeedyWeather.StartWithRandomVorticityType

    Start with random vorticity as initial conditions

    • power::Float64: Power of the spectral distribution k^power

    • amplitude::Float64: (approximate) amplitude in [1/s], used as standard deviation of spherical harmonic coefficients

    source
    SpeedyWeather.StaticEnergyDiffusionType

    Diffusion of dry static energy: A relaxation towards a reference gradient of static energy wrt to geopotential, see Fortran SPEEDY documentation.

    • time_scale::Float64: time scale [hrs] for strength

    • static_energy_lapse_rate::Float64: [1] ∂SE/∂Φ, vertical gradient of static energy SE with geopotential Φ

    • Fstar::Base.RefValue{NF} where NF<:AbstractFloat

    source
    SpeedyWeather.TendenciesType
    Tendencies{Grid<:AbstractGrid,NF<:AbstractFloat}

    Struct holding the tendencies of the prognostic spectral variables for a given layer.

    source
    SpeedyWeather.ZonalJetType

    Create a struct that contains all parameters for the Galewsky et al, 2004 zonal jet intitial conditions for the shallow water model. Default values as in Galewsky.

    • latitude::Float64: jet latitude [˚N]

    • width::Float64: jet width [˚], default ≈ 19.29˚

    • umax::Float64: jet maximum velocity [m/s]

    • perturb_lat::Float64: perturbation latitude [˚N], position in jet by default

    • perturb_lon::Float64: perturbation longitude [˚E]

    • perturb_xwidth::Float64: perturbation zonal extent [˚], default ≈ 19.1˚

    • perturb_ywidth::Float64: perturbation meridinoal extent [˚], default ≈ 3.8˚

    • perturb_height::Float64: perturbation amplitude [m]

    source
    SpeedyWeather.ZonalRidgeType

    Zonal ridge orography after Jablonowski and Williamson, 2006.

    • η₀::Float64: conversion from σ to Jablonowski's ηᵥ-coordinates

    • u₀::Float64: max amplitude of zonal wind [m/s] that scales orography height

    • orography::SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat: height [m] on grid-point space.

    • geopot_surf::LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat: surface geopotential, height*gravity [m²/s²]

    source
    SpeedyWeather.ZonalRidgeMethod
    ZonalRidge(spectral_grid::SpectralGrid; kwargs...) -> Any
    +

    Generator function pulling the resolution information from spectral_grid.

    source
    SpeedyWeather.ZonalWindType

    Create a struct that contains all parameters for the Jablonowski and Williamson, 2006 intitial conditions for the primitive equation model. Default values as in Jablonowski.

    • η₀::Float64: conversion from σ to Jablonowski's ηᵥ-coordinates

    • u₀::Float64: max amplitude of zonal wind [m/s]

    • perturb_lat::Float64: perturbation centred at [˚N]

    • perturb_lon::Float64: perturbation centred at [˚E]

    • perturb_uₚ::Float64: perturbation strength [m/s]

    • perturb_radius::Float64: radius of Gaussian perturbation in units of Earth's radius [1]

    • ΔT::Float64: temperature difference used for stratospheric lapse rate [K], Jablonowski uses ΔT = 4.8e5 [K]

    • Tmin::Float64: minimum temperature [K] of profile

    • pressure_on_orography::Bool: initialize pressure given the atmosphere.lapse_rate on orography?

    source
    Base.copy!Method
    copy!(progn_new::PrognosticVariables, progn_old::PrognosticVariables)

    Copies entries of progn_old into progn_new. Only copies those variables that are present in the model of both progn_new and progn_old.

    source
    SpeedyWeather.DeviceMethod
    Device()

    Return default used device for internal purposes, either CPUDevice or GPUDevice if a GPU is available.

    source
    SpeedyWeather.DeviceArrayMethod
    DeviceArray(device::AbstractDevice, x)

    Adapts x to a CuArray when device<:GPUDevice is used, otherwise a regular Array. Uses adapt, thus also can return SubArrays etc.

    source
    SpeedyWeather.DeviceArrayNotAdaptMethod
    DeviceArrayNotAdapt(device::AbstractDevice, x)

    Returns a CuArray when device<:GPUDevice is used, otherwise a regular Array. Doesn't uses adapt, therefore always returns CuArray/Array

    source
    SpeedyWeather.SpeedyTransforms.gridded!Method
    gridded!(
    +    diagn::DiagnosticVariables,
    +    progn::PrognosticVariables,
    +    lf::Int64,
    +    model::SpeedyWeather.ModelSetup
    +)
    +

    Propagate the spectral state of progn to diagn using time step/leapfrog index lf. Function barrier that calls gridded! for the respective model.

    source
    SpeedyWeather.SpeedyTransforms.gridded!Method
    gridded!(
    +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
    +    progn::SpeedyWeather.PrognosticLayerTimesteps,
    +    lf::Int64,
    +    model::Barotropic
    +)
    +

    Propagate the spectral state of the prognostic variables progn to the diagnostic variables in diagn for the barotropic vorticity model. Updates grid vorticity, spectral stream function and spectral and grid velocities u,v.

    source
    SpeedyWeather.SpeedyTransforms.gridded!Method
    gridded!(
    +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
    +    progn::SpeedyWeather.PrognosticLayerTimesteps,
    +    lf::Int64,
    +    model::PrimitiveEquation
    +)
    +

    Propagate the spectral state of the prognostic variables progn to the diagnostic variables in diagn for primitive equation models. Updates grid vorticity, grid divergence, grid temperature, pressure (pres_grid) and the velocities u,v.

    source
    SpeedyWeather.SpeedyTransforms.gridded!Method
    gridded!(
    +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
    +    progn::SpeedyWeather.PrognosticLayerTimesteps,
    +    lf::Int64,
    +    model::ShallowWater
    +)
    +

    Propagate the spectral state of the prognostic variables progn to the diagnostic variables in diagn for the shallow water model. Updates grid vorticity, grid divergence, grid interface displacement (pres_grid) and the velocities u,v.

    source
    SpeedyWeather._scale_lat!Method
    _scale_lat!(
    +    A::SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},
    +    v::AbstractVector
    +)
    +

    Generic latitude scaling applied to A in-place with latitude-like vector v.

    source
    SpeedyWeather.allocateMethod
    allocate(
    +    _::Type{PrognosticVariables},
    +    spectral_grid::SpectralGrid,
    +    _::Type{Model<:SpeedyWeather.ModelSetup}
    +) -> PrognosticVariables
    +
    source
    SpeedyWeather.bernoulli_potential!Method
    bernoulli_potential!(
    +    diagn::SpeedyWeather.DiagnosticVariablesLayer{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF},
    +    S::SpectralTransform
    +) -> LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat
    +

    Computes the Laplace operator ∇² of the Bernoulli potential B in spectral space.

    1. computes the kinetic energy KE = ½(u²+v²) on the grid
    2. transforms KE to spectral space
    3. adds geopotential for the Bernoulli potential in spectral space
    4. takes the Laplace operator.

    This version is used for both ShallowWater and PrimitiveEquation, only the geopotential calculation in geopotential! differs.

    source
    SpeedyWeather.boundary_layer_drag!Method
    boundary_layer_drag!(
    +    column::ColumnVariables,
    +    scheme::LinearDrag
    +)
    +

    Compute tendency for boundary layer drag of a column and add to its tendencies fields

    source
    SpeedyWeather.create_output_folderMethod
    create_output_folder(
    +    path::String,
    +    id::Union{Int64, String}
    +) -> String
    +

    Creates a new folder run_* with the identification id. Also returns the full path run_path of that folder.

    source
    SpeedyWeather.default_sigma_coordinatesMethod
    default_sigma_coordinates(nlev::Integer) -> Any
    +

    Vertical sigma coordinates defined by their nlev+1 half levels σ_levels_half. Sigma coordinates are fraction of surface pressure (p/p0) and are sorted from top (stratosphere) to bottom (surface). The first half level is at 0 the last at 1. Evaluate a generalised logistic function with coefficients in P for the distribution of values in between. Default coefficients follow the L31 configuration historically used at ECMWF.

    source
    SpeedyWeather.dry_static_energy!Method
    dry_static_energy!(
    +    column::ColumnVariables,
    +    constants::DynamicsConstants
    +)
    +

    Compute the dry static energy SE = cₚT + Φ (latent heat times temperature plus geopotential) for the column.

    source
    SpeedyWeather.dynamics_tendencies!Function
    dynamics_tendencies!(
    +    diagn::DiagnosticVariables,
    +    progn::PrognosticVariables,
    +    model::PrimitiveEquation
    +) -> Any
    +dynamics_tendencies!(
    +    diagn::DiagnosticVariables,
    +    progn::PrognosticVariables,
    +    model::PrimitiveEquation,
    +    lf::Int64
    +) -> Any
    +

    Calculate all tendencies for the PrimitiveEquation model (wet or dry).

    source
    SpeedyWeather.dynamics_tendencies!Method
    dynamics_tendencies!(
    +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
    +    time::Dates.DateTime,
    +    model::Barotropic
    +)
    +

    Calculate all tendencies for the BarotropicModel.

    source
    SpeedyWeather.dynamics_tendencies!Method
    dynamics_tendencies!(
    +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
    +    surface::SpeedyWeather.SurfaceVariables,
    +    pres::LowerTriangularMatrix,
    +    time::Dates.DateTime,
    +    model::ShallowWater
    +)
    +

    Calculate all tendencies for the ShallowWaterModel.

    source
    SpeedyWeather.first_timesteps!Method
    first_timesteps!(
    +    progn::PrognosticVariables,
    +    diagn::DiagnosticVariables,
    +    model::SpeedyWeather.ModelSetup,
    +    output::SpeedyWeather.AbstractOutputWriter
    +) -> typeof(time)
    +

    Performs the first two initial time steps (Euler forward, unfiltered leapfrog) to populate the prognostic variables with two time steps (t=0,Δt) that can then be used in the normal leap frogging.

    source
    SpeedyWeather.flux_divergence!Method
    flux_divergence!(
    +    A_tend::LowerTriangularMatrix{Complex{NF}},
    +    A_grid::SpeedyWeather.RingGrids.AbstractGrid{NF},
    +    diagn::SpeedyWeather.DiagnosticVariablesLayer{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF},
    +    G::Geometry{NF},
    +    S::SpectralTransform{NF};
    +    add,
    +    flipsign
    +)
    +

    Computes ∇⋅((u,v)*A) with the option to add/overwrite A_tend and to flip_sign of the flux divergence by doing so.

    • A_tend = ∇⋅((u,v)*A) for add=false, flip_sign=false
    • A_tend = -∇⋅((u,v)*A) for add=false, flip_sign=true
    • A_tend += ∇⋅((u,v)*A) for add=true, flip_sign=false
    • A_tend -= ∇⋅((u,v)*A) for add=true, flip_sign=true
    source
    SpeedyWeather.fluxes_to_tendencies!Method
    fluxes_to_tendencies!(
    +    column::ColumnVariables,
    +    geometry::Geometry,
    +    constants::DynamicsConstants
    +)
    +

    Convert the fluxes on half levels to tendencies on full levels.

    source
    SpeedyWeather.geopotential!Method
    geopotential!(
    +    diagn::DiagnosticVariables,
    +    O::SpeedyWeather.AbstractOrography,
    +    C::DynamicsConstants
    +)
    +

    Compute spectral geopotential geopot from spectral temperature temp and spectral surface geopotential geopot_surf (orography*gravity).

    source
    SpeedyWeather.geopotential!Method
    geopotential!(
    +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
    +    pres::LowerTriangularMatrix,
    +    C::DynamicsConstants
    +) -> Any
    +

    calculates the geopotential in the ShallowWaterModel as g*η, i.e. gravity times the interface displacement (field pres)

    source
    SpeedyWeather.geopotential!Method
    geopotential!(temp::Vector, C::DynamicsConstants) -> Vector
    +

    Calculate the geopotential based on temp in a single column. This exclues the surface geopotential that would need to be added to the returned vector. Function not used in the dynamical core but for post-processing and analysis.

    source
    SpeedyWeather.get_column!Method
    get_column!(
    +    C::ColumnVariables,
    +    D::DiagnosticVariables,
    +    ij::Integer,
    +    jring::Integer,
    +    G::Geometry
    +)
    +

    Update C::ColumnVariables by copying the prognostic variables from D::DiagnosticVariables at gridpoint index ij. Provide G::Geometry for coordinate information.

    source
    SpeedyWeather.get_run_idMethod
    get_run_id(path::String, id::String) -> String
    +

    Checks existing run_???? folders in path to determine a 4-digit id number by counting up. E.g. if folder run_0001 exists it will return the string "0002". Does not create a folder for the returned run id.

    source
    SpeedyWeather.get_thermodynamics!Method
    get_thermodynamics!(
    +    column::ColumnVariables,
    +    model::PrimitiveWet
    +)
    +

    Calculate thermodynamic quantities like saturation vapour pressure, saturation specific humidity, dry static energy, moist static energy and saturation moist static energy from the prognostic column variables.

    source
    SpeedyWeather.get_varMethod
    get_var(progn::PrognosticVariables, var_name::Symbol; lf::Integer=1)

    Returns the prognostic variable var_name at leapfrog index lf as a Vector{LowerTriangularMatrices}.

    source
    SpeedyWeather.hasMethod
    has(
    +    M::Type{<:SpeedyWeather.ModelSetup},
    +    var_name::Symbol
    +) -> Bool
    +

    Returns true if the model M has a prognostic variable var_name, false otherwise. The default fallback is that all variables are included.

    source
    SpeedyWeather.horizontal_diffusion!Function
    horizontal_diffusion!(
    +    progn::SpeedyWeather.PrognosticLayerTimesteps,
    +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
    +    model::ShallowWater
    +)
    +horizontal_diffusion!(
    +    progn::SpeedyWeather.PrognosticLayerTimesteps,
    +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
    +    model::ShallowWater,
    +    lf::Int64
    +)
    +

    Apply horizontal diffusion to vorticity and diffusion in the ShallowWater models.

    source
    SpeedyWeather.horizontal_diffusion!Function
    horizontal_diffusion!(
    +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
    +    progn::SpeedyWeather.PrognosticLayerTimesteps,
    +    model::Barotropic
    +)
    +horizontal_diffusion!(
    +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
    +    progn::SpeedyWeather.PrognosticLayerTimesteps,
    +    model::Barotropic,
    +    lf::Int64
    +)
    +

    Apply horizontal diffusion to vorticity in the Barotropic models.

    source
    SpeedyWeather.horizontal_diffusion!Function
    horizontal_diffusion!(
    +    progn::SpeedyWeather.PrognosticLayerTimesteps,
    +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
    +    model::PrimitiveEquation
    +) -> Union{Nothing, Bool}
    +horizontal_diffusion!(
    +    progn::SpeedyWeather.PrognosticLayerTimesteps,
    +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
    +    model::PrimitiveEquation,
    +    lf::Int64
    +) -> Union{Nothing, Bool}
    +

    Apply horizontal diffusion applied to vorticity, diffusion and temperature in the PrimitiveEquation models. Uses the constant diffusion for temperature but possibly adaptive diffusion for vorticity and divergence.

    source
    SpeedyWeather.horizontal_diffusion!Method
    horizontal_diffusion!(
    +    tendency::LowerTriangularMatrix{Complex{NF<:AbstractFloat}},
    +    A::LowerTriangularMatrix{Complex{NF<:AbstractFloat}},
    +    ∇²ⁿ_expl::AbstractArray{NF<:AbstractFloat, 1},
    +    ∇²ⁿ_impl::AbstractArray{NF<:AbstractFloat, 1}
    +)
    +

    Apply horizontal diffusion to a 2D field A in spectral space by updating its tendency tendency with an implicitly calculated diffusion term. The implicit diffusion of the next time step is split into an explicit part ∇²ⁿ_expl and an implicit part ∇²ⁿ_impl, such that both can be calculated in a single forward step by using A as well as its tendency tendency.

    source
    SpeedyWeather.implicit_correction!Method
    implicit_correction!(
    +    diagn::DiagnosticVariables,
    +    implicit::SpeedyWeather.ImplicitPrimitiveEq,
    +    progn::PrognosticVariables
    +) -> Any
    +

    Apply the implicit corrections to dampen gravity waves in the primitive equation models.

    source
    SpeedyWeather.implicit_correction!Method
    implicit_correction!(
    +    diagn::SpeedyWeather.DiagnosticVariablesLayer{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF},
    +    progn::SpeedyWeather.PrognosticLayerTimesteps{NF},
    +    diagn_surface::SpeedyWeather.SurfaceVariables{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF},
    +    progn_surface::SpeedyWeather.PrognosticSurfaceTimesteps{NF},
    +    implicit::SpeedyWeather.ImplicitShallowWater
    +)
    +

    Apply correction to the tendencies in diagn to prevent the gravity waves from amplifying. The correction is implicitly evaluated using the parameter implicit.α to switch between forward, centered implicit or backward evaluation of the gravity wave terms.

    source
    SpeedyWeather.initial_conditions!Method
    initial_conditions!(
    +    progn_new::PrognosticVariables,
    +    initial_conditions::StartFromFile,
    +    model::SpeedyWeather.ModelSetup
    +) -> PrognosticVariables
    +

    Restart from a previous SpeedyWeather.jl simulation via the restart file restart.jld2 Applies interpolation in the horizontal but not in the vertical.

    source
    SpeedyWeather.initial_conditions!Method
    initial_conditions!(
    +    progn::PrognosticVariables,
    +    initial_conditions::ZonalJet,
    +    model::ShallowWater
    +) -> LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat
    +

    Initial conditions from Galewsky, 2004, Tellus

    source
    SpeedyWeather.initial_conditions!Method
    initial_conditions!(
    +    progn::PrognosticVariables{NF},
    +    initial_conditions::StartWithRandomVorticity,
    +    model::SpeedyWeather.ModelSetup
    +)
    +

    Start with random vorticity as initial conditions

    source
    SpeedyWeather.initial_conditions!Method
    initial_conditions!(
    +    progn::PrognosticVariables{NF},
    +    initial_conditions::ZonalWind,
    +    model::PrimitiveEquation
    +)
    +

    Initial conditions from Jablonowski and Williamson, 2006, QJR Meteorol. Soc

    source
    SpeedyWeather.initialize!Function
    initialize!(
    +    scheme::HyperDiffusion,
    +    k::Int64,
    +    G::Geometry,
    +    L::SpeedyWeather.TimeStepper
    +)
    +initialize!(
    +    scheme::HyperDiffusion,
    +    k::Int64,
    +    G::Geometry,
    +    L::SpeedyWeather.TimeStepper,
    +    vor_max::Real
    +)
    +

    Precomputes the hyper diffusion terms in scheme for layer k based on the model time step in L, the vertical level sigma level in G, and the current (absolute) vorticity maximum level vor_max

    source
    SpeedyWeather.initialize!Method
    initialize!(model::Barotropic) -> SpeedyWeather.Simulation
    +

    Calls all initialize! functions for components of model, except for model.output and model.feedback which are always called at in time_stepping!.

    source
    SpeedyWeather.initialize!Method
    initialize!(
    +    orog::EarthOrography,
    +    P::SpeedyWeather.AbstractPlanet,
    +    S::SpectralTransform,
    +    G::Geometry
    +) -> LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat
    +

    Initialize the arrays orography,geopot_surf in orog by reading the orography field from file.

    source
    SpeedyWeather.initialize!Method
    initialize!(
    +    feedback::Feedback,
    +    clock::SpeedyWeather.Clock,
    +    model::SpeedyWeather.ModelSetup
    +) -> Union{Nothing, IOStream}
    +

    Initializes the a Feedback struct.

    source
    SpeedyWeather.initialize!Method
    initialize!(scheme::HeldSuarez, model::PrimitiveEquation)
    +

    initialize the HeldSuarez temperature relaxation by precomputing terms for the equilibrium temperature Teq.

    source
    SpeedyWeather.initialize!Method
    initialize!(
    +    scheme::HyperDiffusion,
    +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
    +    G::Geometry,
    +    L::SpeedyWeather.TimeStepper
    +)
    +

    Pre-function to other initialize!(::HyperDiffusion) initialisors that calculates the (absolute) vorticity maximum for the layer of diagn.

    source
    SpeedyWeather.initialize!Method
    initialize!(
    +    scheme::HyperDiffusion,
    +    model::SpeedyWeather.ModelSetup
    +)
    +

    Precomputes the hyper diffusion terms in scheme based on the model time step, and possibly with a changing strength/power in the vertical.

    source
    SpeedyWeather.initialize!Method
    initialize!(
    +    scheme::HyperDiffusion,
    +    L::SpeedyWeather.TimeStepper
    +)
    +

    Precomputes the 2D hyper diffusion terms in scheme based on the model time step.

    source
    SpeedyWeather.initialize!Method
    initialize!(
    +    scheme::JablonowskiRelaxation,
    +    model::PrimitiveEquation
    +)
    +

    initialize the JablonowskiRelaxation temperature relaxation by precomputing terms for the equilibrium temperature Teq and the frequency (strength of relaxation).

    source
    SpeedyWeather.initialize!Method
    initialize!(scheme::LinearDrag, model::PrimitiveEquation)
    +

    Precomputes the drag coefficients for this BoundaryLayerDrag scheme.

    source
    SpeedyWeather.initialize!Method
    initialize!(
    +    scheme::NoTemperatureRelaxation,
    +    model::PrimitiveEquation
    +)
    +

    just passes, does not need any initialization.

    source
    SpeedyWeather.initialize!Method
    initialize!(model::PrimitiveDry) -> SpeedyWeather.Simulation
    +

    Calls all initialize! functions for components of model, except for model.output and model.feedback which are always called at in time_stepping! and model.implicit which is done in first_timesteps!.

    source
    SpeedyWeather.initialize!Method
    initialize!(model::PrimitiveWet) -> SpeedyWeather.Simulation
    +

    Calls all initialize! functions for components of model, except for model.output and model.feedback which are always called at in time_stepping! and model.implicit which is done in first_timesteps!.

    source
    SpeedyWeather.initialize!Method
    initialize!(model::ShallowWater) -> SpeedyWeather.Simulation
    +

    Calls all initialize! functions for components of model, except for model.output and model.feedback which are always called at in time_stepping! and model.implicit which is done in first_timesteps!.

    source
    SpeedyWeather.initialize!Method
    initialize!(
    +    scheme::SpeedyCondensation,
    +    model::PrimitiveEquation
    +)
    +

    Initialize the SpeedyCondensation scheme.

    source
    SpeedyWeather.initialize!Method
    initialize!(
    +    clock::SpeedyWeather.Clock,
    +    time_stepping::SpeedyWeather.TimeStepper
    +) -> SpeedyWeather.Clock
    +

    Initialize the clock with the time step Δt in the time_stepping.

    source
    SpeedyWeather.initialize!Method
    initialize!(
    +    implicit::SpeedyWeather.ImplicitPrimitiveEq,
    +    i::Integer,
    +    dt::Real,
    +    diagn::DiagnosticVariables,
    +    geometry::Geometry,
    +    constants::DynamicsConstants
    +)
    +

    Reinitialize implicit occasionally based on time step i and implicit.recalculate.

    source
    SpeedyWeather.initialize!Method
    initialize!(
    +    implicit::SpeedyWeather.ImplicitPrimitiveEq,
    +    dt::Real,
    +    diagn::DiagnosticVariables,
    +    geometry::Geometry,
    +    constants::DynamicsConstants
    +)
    +

    Initialize the implicit terms for the PrimitiveEquation models.

    source
    SpeedyWeather.initialize!Method
    initialize!(
    +    implicit::SpeedyWeather.ImplicitShallowWater,
    +    dt::Real,
    +    constants::DynamicsConstants
    +)
    +

    Update the implicit terms in implicit for the shallow water model as they depend on the time step dt.

    source
    SpeedyWeather.initialize!Method
    initialize!(
    +    orog::ZonalRidge,
    +    P::SpeedyWeather.AbstractPlanet,
    +    S::SpectralTransform,
    +    G::Geometry
    +) -> LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat
    +

    Initialize the arrays orography,geopot_surf in orog following Jablonowski and Williamson, 2006.

    source
    SpeedyWeather.initialize!Method
    initialize!(
    +    output::OutputWriter{output_NF, Model},
    +    feedback::SpeedyWeather.AbstractFeedback,
    +    time_stepping::SpeedyWeather.TimeStepper,
    +    diagn::DiagnosticVariables,
    +    model
    +)
    +

    Creates a netcdf file on disk and the corresponding netcdf_file object preallocated with output variables and dimensions. write_output! then writes consecuitive time steps into this file.

    source
    SpeedyWeather.initialize!Method
    initialize!(
    +    scheme::SpeedyWeather.StaticEnergyDiffusion{NF},
    +    model::PrimitiveEquation
    +) -> Any
    +

    Initialize dry static energy diffusion.

    source
    SpeedyWeather.initialize_geopotentialMethod
    initialize_geopotential(
    +    σ_levels_full::Vector,
    +    σ_levels_half::Vector,
    +    R_dry::Real
    +) -> Tuple{Vector{Float64}, Vector{Float64}}
    +

    Precomputes constants for the vertical integration of the geopotential, defined as

    Φ_{k+1/2} = Φ_{k+1} + R*T_{k+1}*(ln(p_{k+1}) - ln(p_{k+1/2})) (half levels) Φ_k = Φ_{k+1/2} + R*T_k*(ln(p_{k+1/2}) - ln(p_k)) (full levels)

    Same formula but k → k-1/2.

    source
    SpeedyWeather.large_scale_condensation!Method
    large_scale_condensation!(
    +    column::ColumnVariables{NF},
    +    scheme::SpeedyCondensation,
    +    geometry::Geometry,
    +    constants::DynamicsConstants,
    +    atmosphere::SpeedyWeather.AbstractAtmosphere,
    +    time_stepping::SpeedyWeather.TimeStepper
    +)
    +

    Large-scale condensation for a column by relaxation back to a reference relative humidity if larger than that. Calculates the tendencies for specific humidity and temperature and integrates the large-scale precipitation vertically for output.

    source
    SpeedyWeather.launch_kernel!Method
    launch_kernel!(device_setup::DeviceSetup, kernel!, ndrange, kernel_args...)

    Launches the kernel! on the device_setup with ndrange computations over the kernel and arguments kernel_args

    source
    SpeedyWeather.leapfrog!Method
    leapfrog!(
    +    A_old::LowerTriangularMatrix{Complex{NF<:AbstractFloat}},
    +    A_new::LowerTriangularMatrix{Complex{NF<:AbstractFloat}},
    +    tendency::LowerTriangularMatrix{Complex{NF<:AbstractFloat}},
    +    dt::Real,
    +    lf::Int64,
    +    L::Leapfrog{NF<:AbstractFloat}
    +)
    +

    Performs one leapfrog time step with (lf=2) or without (lf=1) Robert+Williams filter (see Williams (2009), Montly Weather Review, Eq. 7-9).

    source
    SpeedyWeather.linear_pressure_gradient!Method
    linear_pressure_gradient!(
    +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
    +    surface::SpeedyWeather.PrognosticSurfaceTimesteps,
    +    lf::Int64,
    +    C::DynamicsConstants,
    +    I::SpeedyWeather.ImplicitPrimitiveEq
    +) -> LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat
    +

    Add the linear contribution of the pressure gradient to the geopotential. The pressure gradient in the divergence equation takes the form

    -∇⋅(Rd*Tᵥ*∇lnpₛ) = -∇⋅(Rd*Tᵥ'*∇lnpₛ) - ∇²(Rd*Tₖ*lnpₛ)

    So that the second term inside the Laplace operator can be added to the geopotential. Rd is the gas constant, Tᵥ the virtual temperature and Tᵥ' its anomaly wrt to the average or reference temperature Tₖ, lnpₛ is the logarithm of surface pressure.

    source
    SpeedyWeather.linear_virtual_temperature!Method
    linear_virtual_temperature!(
    +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
    +    progn::SpeedyWeather.PrognosticLayerTimesteps,
    +    constants::DynamicsConstants,
    +    lf::Int64
    +) -> Any
    +

    Calculates a linearised virtual temperature Tᵥ as

    Tᵥ = T + Tₖμq

    With absolute temperature T, layer-average temperarture Tₖ (computed in temperature_average!), specific humidity q and

    μ = (1-ξ)/ξ, ξ = R_dry/R_vapour.

    in spectral space.

    source
    SpeedyWeather.linear_virtual_temperature!Method
    linear_virtual_temperature!(
    +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
    +    progn::SpeedyWeather.PrognosticLayerTimesteps,
    +    model::PrimitiveDry,
    +    lf::Integer
    +) -> LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat
    +

    Linear virtual temperature for model::PrimitiveDry: Just copy over arrays from temp to temp_virt at timestep lf in spectral space as humidity is zero in this model.

    source
    SpeedyWeather.load_trajectoryMethod
    load_trajectory(
    +    var_name::Union{String, Symbol},
    +    model::SpeedyWeather.ModelSetup
    +) -> Any
    +

    Loads a var_name trajectory of the model M that has been saved in a netCDF file during the time stepping.

    source
    SpeedyWeather.moist_static_energy!Method
    moist_static_energy!(
    +    column::ColumnVariables,
    +    thermodynamics::SpeedyWeather.Thermodynamics
    +)
    +

    Compute the moist static energy

    MSE = SE + Lc*Q = cₚT + Φ + Lc*Q

    with the static energy SE, the latent heat of condensation Lc, the geopotential Φ. As well as the saturation moist static energy which replaces Q with Q_sat

    source
    SpeedyWeather.nansMethod
    A = nans(T,dims...)

    Allocate array A with NaNs of type T. Similar to zeros(T,dims...).

    source
    SpeedyWeather.nar_detection!Method
    nar_detection!(
    +    feedback::Feedback,
    +    progn::PrognosticVariables
    +) -> Union{Nothing, Bool}
    +

    Detect NaR (Not-a-Real) in the prognostic variables.

    source
    SpeedyWeather.parameterization_tendencies!Method
    parameterization_tendencies!(
    +    diagn::DiagnosticVariables,
    +    time::Dates.DateTime,
    +    model::PrimitiveEquation
    +) -> Any
    +

    Compute tendencies for u,v,temp,humid from physical parametrizations. Extract for each vertical atmospheric column the prognostic variables (stored in diagn as they are grid-point transformed), loop over all grid-points, compute all parametrizations on a single-column basis, then write the tendencies back into a horizontal field of tendencies.

    source
    SpeedyWeather.pressure_on_orography!Method
    pressure_on_orography!(
    +    progn::PrognosticVariables,
    +    model::PrimitiveEquation
    +)
    +

    Initialize surface pressure on orography by integrating the hydrostatic equation with the reference temperature lapse rate.

    source
    SpeedyWeather.readable_secsMethod
    readable_secs(secs::Real) -> Dates.CompoundPeriod
    +

    Returns Dates.CompoundPeriod rounding to either (days, hours), (hours, minutes), (minutes, seconds), or seconds with 1 decimal place accuracy for >10s and two for less. E.g.

    julia> readable_secs(12345)
    +3 hours, 26 minutes
    source
    SpeedyWeather.remaining_timeMethod
    remaining_time(p::ProgressMeter.Progress) -> String
    +

    Estimates the remaining time from a ProgresssMeter.Progress. Adapted from ProgressMeter.jl

    source
    SpeedyWeather.reset_column!Method
    reset_column!(column::ColumnVariables{NF})
    +

    Set the accumulators (tendencies but also vertical sums and similar) back to zero for column to be reused at other grid points.

    source
    SpeedyWeather.run!Method
    run!(
    +    simulation::SpeedyWeather.Simulation;
    +    initialize,
    +    n_days,
    +    startdate,
    +    output
    +) -> PrognosticVariables
    +

    Run a SpeedyWeather.jl simulation. The simulation.model is assumed to be initialized, otherwise use initialize=true as keyword argument.

    source
    SpeedyWeather.saturation_humidity!Method
    saturation_humidity!(
    +    column::ColumnVariables,
    +    thermodynamics::SpeedyWeather.Thermodynamics
    +)
    +

    Compute (1) the saturation vapour pressure as a function of temperature using the August-Roche-Magnus formula,

    eᵢ(T) = e₀ * exp(Cᵢ * (T - T₀) / (T - Tᵢ)),

    where T is in Kelvin and i = 1,2 for saturation with respect to water and ice, respectively. And (2) the saturation specific humidity according to the formula,

    0.622 * e / (p - (1 - 0.622) * e),

    where e is the saturation vapour pressure, p is the pressure, and 0.622 is the ratio of the molecular weight of water to dry air.

    source
    SpeedyWeather.scale!Method
    scale!(progn::PrognosticVariables, scale::Real) -> Real
    +

    Scales the prognostic variables vorticity and divergence with the Earth's radius which is used in the dynamical core.

    source
    SpeedyWeather.scale!Method
    scale!(
    +    progn::PrognosticVariables{NF},
    +    var::Symbol,
    +    scale::Real
    +)
    +

    Scale the variable var inside progn with scalar scale.

    source
    SpeedyWeather.set_pressure!Method
    set_pressure!(progn::PrognosticVariables{NF}, 
    +              pressure::AbstractMatrix, 
    +              Grid::Type{<:AbstractGrid}, 
    +              lf::Integer=1) where NF

    Sets the prognostic variable with the surface pressure in grid space at leapfrog index lf.

    source
    SpeedyWeather.set_pressure!Method
    set_pressure!(progn::PrognosticVariables{NF}, 
    +              pressure::LowerTriangularMatrix;
    +              lf::Integer=1) where NF

    Sets the prognostic variable with the surface pressure in spectral space at leapfrog index lf.

    source
    SpeedyWeather.set_pressure!Method
    set_pressure!(progn::PrognosticVariables{NF}, 
    +              pressure::AbstractGrid, 
    +              M::ModelSetup;
    +              lf::Integer=1) where NF

    Sets the prognostic variable with the surface pressure in grid space at leapfrog index lf.

    source
    SpeedyWeather.set_pressure!Method
    set_pressure!(progn::PrognosticVariables{NF}, 
    +              pressure::AbstractGrid, 
    +              lf::Integer=1) where NF

    Sets the prognostic variable with the surface pressure in grid space at leapfrog index lf.

    source
    SpeedyWeather.set_var!Method
    function set_var!(progn::PrognosticVariables{NF}, 
    +                  varname::Symbol, 
    +                  s::Number;
    +                  lf::Integer=1) where NF

    Sets all values of prognostic variable varname at leapfrog index lf to the scalar s.

    source
    SpeedyWeather.set_var!Method
    set_var!(progn::PrognosticVariables{NF}, 
    +         varname::Symbol, 
    +         var::Vector{<:AbstractMatrix}, 
    +         Grid::Type{<:AbstractGrid}=FullGaussianGrid;
    +         lf::Integer=1) where NF

    Sets the prognostic variable with the name varname in all layers at leapfrog index lf with values given in var a vector with all information for all layers in grid space.

    source
    SpeedyWeather.set_var!Method
    set_var!(progn::PrognosticVariables{NF},        
    +         varname::Symbol, 
    +         var::Vector{<:LowerTriangularMatrix};
    +         lf::Integer=1) where NF

    Sets the prognostic variable with the name varname in all layers at leapfrog index lf with values given in var a vector with all information for all layers in spectral space.

    source
    SpeedyWeather.set_var!Method
    set_var!(progn::PrognosticVariables{NF}, 
    +         varname::Symbol, 
    +         var::Vector{<:AbstractGrid}, 
    +         M::ModelSetup;
    +         lf::Integer=1) where NF

    Sets the prognostic variable with the name varname in all layers at leapfrog index lf with values given in var a vector with all information for all layers in grid space.

    source
    SpeedyWeather.set_var!Method
    set_var!(progn::PrognosticVariables{NF},        
    +         varname::Symbol, 
    +         var::Vector{<:AbstractGrid};
    +         lf::Integer=1) where NF

    Sets the prognostic variable with the name varname in all layers at leapfrog index lf with values given in var a vector with all information for all layers in grid space.

    source
    SpeedyWeather.speedstringMethod
    speedstring(sec_per_iter, dt_in_sec) -> String
    +

    define a ProgressMeter.speedstring method that also takes a time step dt_in_sec to translate sec/iteration to days/days-like speeds.

    source
    SpeedyWeather.surface_pressure_tendency!Method
    surface_pressure_tendency!( Prog::PrognosticVariables,
    +                            Diag::DiagnosticVariables,
    +                            lf::Int,
    +                            M::PrimitiveEquation)

    Computes the tendency of the logarithm of surface pressure as

    -(ū*px + v̄*py) - D̄

    with ū,v̄ being the vertically averaged velocities; px, py the gradients of the logarithm of surface pressure ln(p_s) and D̄ the vertically averaged divergence.

    1. Calculate ∇ln(p_s) in spectral space, convert to grid.
    2. Multiply ū,v̄ with ∇ln(p_s) in grid-point space, convert to spectral.
    3. D̄ is subtracted in spectral space.
    4. Set tendency of the l=m=0 mode to 0 for better mass conservation.
    source
    SpeedyWeather.temperature_average!Method
    temperature_average!(
    +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
    +    temp::LowerTriangularMatrix,
    +    S::SpectralTransform
    +) -> Any
    +

    Calculates the average temperature of a layer from the l=m=0 harmonic and stores the result in diagn.temp_average

    source
    SpeedyWeather.temperature_relaxation!Method
    temperature_relaxation!(
    +    column::ColumnVariables,
    +    scheme::JablonowskiRelaxation
    +)
    +

    Apply HeldSuarez-like temperature relaxation to the Jablonowski and Williamson vertical profile.

    source
    SpeedyWeather.temperature_tendency!Method
    temperature_tendency!(
    +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
    +    C::DynamicsConstants,
    +    G::Geometry,
    +    S::SpectralTransform,
    +    I::SpeedyWeather.ImplicitPrimitiveEq
    +)
    +

    Compute the temperature tendency

    ∂T/∂t += -∇⋅((u,v)*T') + T'D + κTᵥ*Dlnp/Dt

    += because the tendencies already contain parameterizations and vertical advection. T' is the anomaly with respect to the reference/average temperature. Tᵥ is the virtual temperature used in the adiabatic term κTᵥ*Dlnp/Dt.

    source
    SpeedyWeather.time_stepping!Method
    time_stepping!(
    +    progn::PrognosticVariables,
    +    diagn::DiagnosticVariables,
    +    model::SpeedyWeather.ModelSetup
    +) -> PrognosticVariables
    +

    Main time loop that that initializes output and feedback, loops over all time steps and calls the output and feedback functions.

    source
    SpeedyWeather.timestep!Function
    timestep!(
    +    progn::PrognosticVariables,
    +    diagn::DiagnosticVariables,
    +    dt::Real,
    +    i::Integer,
    +    model::Barotropic
    +)
    +timestep!(
    +    progn::PrognosticVariables,
    +    diagn::DiagnosticVariables,
    +    dt::Real,
    +    i::Integer,
    +    model::Barotropic,
    +    lf1::Int64
    +)
    +timestep!(
    +    progn::PrognosticVariables,
    +    diagn::DiagnosticVariables,
    +    dt::Real,
    +    i::Integer,
    +    model::Barotropic,
    +    lf1::Int64,
    +    lf2::Int64
    +)
    +

    Calculate a single time step for the model <: Barotropic.

    source
    SpeedyWeather.timestep!Method
    timestep!(
    +    progn::PrognosticVariables{NF<:AbstractFloat},
    +    diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},
    +    dt::Real,
    +    i::Integer,
    +    model::PrimitiveEquation
    +) -> Any
    +timestep!(
    +    progn::PrognosticVariables{NF<:AbstractFloat},
    +    diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},
    +    dt::Real,
    +    i::Integer,
    +    model::PrimitiveEquation,
    +    lf1::Int64
    +) -> Any
    +timestep!(
    +    progn::PrognosticVariables{NF<:AbstractFloat},
    +    diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},
    +    dt::Real,
    +    i::Integer,
    +    model::PrimitiveEquation,
    +    lf1::Int64,
    +    lf2::Int64
    +) -> Any
    +

    Calculate a single time step for the model<:PrimitiveEquation

    source
    SpeedyWeather.timestep!Method
    timestep!(
    +    progn::PrognosticVariables{NF<:AbstractFloat},
    +    diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},
    +    dt::Real,
    +    i::Integer,
    +    model::ShallowWater
    +) -> Union{Nothing, SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat}
    +timestep!(
    +    progn::PrognosticVariables{NF<:AbstractFloat},
    +    diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},
    +    dt::Real,
    +    i::Integer,
    +    model::ShallowWater,
    +    lf1::Int64
    +) -> Union{Nothing, SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat}
    +timestep!(
    +    progn::PrognosticVariables{NF<:AbstractFloat},
    +    diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},
    +    dt::Real,
    +    i::Integer,
    +    model::ShallowWater,
    +    lf1::Int64,
    +    lf2::Int64
    +) -> Union{Nothing, SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat}
    +

    Calculate a single time step for the model <: ShallowWater.

    source
    SpeedyWeather.unscale!Method
    unscale!(variable::AbstractArray, scale::Real) -> Any
    +

    Undo the radius-scaling for any variable. Method used for netcdf output.

    source
    SpeedyWeather.unscale!Method
    unscale!(progn::PrognosticVariables) -> Int64
    +

    Undo the radius-scaling of vorticity and divergence from scale!(progn,scale::Real).

    source
    SpeedyWeather.vertical_integration!Method
    vertical_integration!(Diag::DiagnosticVariables,G::Geometry)

    Calculates the vertically averaged (weighted by the thickness of the σ level) velocities (*coslat) and divergence. E.g.

    u_mean = ∑_k=1^nlev Δσ_k * u_k

    u,v are averaged in grid-point space, divergence in spectral space.

    source
    SpeedyWeather.virtual_temperature!Method
    virtual_temperature!(
    +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
    +    temp::LowerTriangularMatrix,
    +    constants::DynamicsConstants
    +)
    +

    Calculates the virtual temperature Tᵥ as

    Tᵥ = T(1+μq)

    With absolute temperature T, specific humidity q and

    μ = (1-ξ)/ξ, ξ = R_dry/R_vapour.

    in grid-point space.

    source
    SpeedyWeather.virtual_temperature!Method
    virtual_temperature!(
    +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
    +    temp::LowerTriangularMatrix,
    +    model::PrimitiveDry
    +) -> SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat
    +

    Virtual temperature in grid-point space: For the PrimitiveDry temperature and virtual temperature are the same (humidity=0). Just copy over the arrays.

    source
    SpeedyWeather.volume_flux_divergence!Method
    volume_flux_divergence!(
    +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
    +    surface::SpeedyWeather.SurfaceVariables,
    +    orog::SpeedyWeather.AbstractOrography,
    +    constants::DynamicsConstants,
    +    G::Geometry,
    +    S::SpectralTransform
    +)
    +

    Computes the (negative) divergence of the volume fluxes uh,vh for the continuity equation, -∇⋅(uh,vh).

    source
    SpeedyWeather.vordiv_tendencies!Method
    vordiv_tendencies!(
    +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
    +    surf::SpeedyWeather.SurfaceVariables,
    +    C::DynamicsConstants,
    +    G::Geometry,
    +    S::SpectralTransform
    +)
    +

    Tendencies for vorticity and divergence. Excluding Bernoulli potential with geopotential and linear pressure gradient inside the Laplace operator, which are added later in spectral space.

    u_tend +=  v*(f+ζ) - RTᵥ'*∇lnp_x
    +v_tend += -u*(f+ζ) - RTᵥ'*∇lnp_y

    += because the tendencies already contain the parameterizations and vertical advection. f is coriolis, ζ relative vorticity, R the gas constant Tᵥ' the virtual temperature anomaly, ∇lnp the gradient of surface pressure and _x and _y its zonal/meridional components. The tendencies are then curled/dived to get the tendencies for vorticity/divergence in spectral space

    ∂ζ/∂t = ∇×(u_tend,v_tend)
    +∂D/∂t = ∇⋅(u_tend,v_tend) + ...

    + ... because there's more terms added later for divergence.

    source
    SpeedyWeather.vordiv_tendencies!Method
    vordiv_tendencies!(
    +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
    +    surf::SpeedyWeather.SurfaceVariables,
    +    model::PrimitiveEquation
    +)
    +

    Function barrier to unpack model.

    source
    SpeedyWeather.vorticity_flux!Method
    vorticity_flux!(
    +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
    +    model::Barotropic
    +)
    +

    Vorticity flux tendency in the barotropic vorticity equation

    ∂ζ/∂t = ∇×(u_tend,v_tend)

    with

    u_tend = Fᵤ + v*(ζ+f) v_tend = Fᵥ - u*(ζ+f)

    with Fᵤ,Fᵥ the forcing from forcing! already in u_tend_grid/v_tend_grid and vorticity ζ, coriolis f.

    source
    SpeedyWeather.vorticity_flux!Method
    vorticity_flux!(
    +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
    +    model::ShallowWater
    +)
    +

    Vorticity flux tendency in the shallow water equations

    ∂ζ/∂t = ∇×(u_tend,v_tend) ∂D/∂t = ∇⋅(u_tend,v_tend)

    with

    u_tend = Fᵤ + v*(ζ+f) v_tend = Fᵥ - u*(ζ+f)

    with Fᵤ,Fᵥ the forcing from forcing! already in u_tend_grid/v_tend_grid and vorticity ζ, coriolis f.

    source
    SpeedyWeather.vorticity_flux_curldiv!Method
    vorticity_flux_curldiv!(
    +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
    +    C::DynamicsConstants,
    +    G::Geometry,
    +    S::SpectralTransform;
    +    div
    +)
    +

    Compute the vorticity advection as the curl/div of the vorticity fluxes

    ∂ζ/∂t = ∇×(u_tend,v_tend) ∂D/∂t = ∇⋅(u_tend,v_tend)

    with

    u_tend = Fᵤ + v*(ζ+f) v_tend = Fᵥ - u*(ζ+f)

    with Fᵤ,Fᵥ from u_tend_grid/v_tend_grid that are assumed to be alread set in forcing!. Set div=false for the BarotropicModel which doesn't require the divergence tendency.

    source
    SpeedyWeather.workgroup_sizeMethod
    workgroup_size(dev::AbstractDevice)

    Returns a workgroup size depending on dev. WIP: Will be expanded in the future to also include grid information.

    source
    SpeedyWeather.write_column_tendencies!Method
    write_column_tendencies!(
    +    D::DiagnosticVariables,
    +    C::ColumnVariables,
    +    ij::Int64
    +)
    +

    Write the parametrization tendencies from C::ColumnVariables into the horizontal fields of tendencies stored in D::DiagnosticVariables at gridpoint index ij.

    source
    SpeedyWeather.write_netcdf_time!Method
    write_netcdf_time!(
    +    output::OutputWriter,
    +    time::Dates.DateTime
    +)
    +

    Write the current time time::DateTime to the netCDF file in output::OutputWriter.

    source
    SpeedyWeather.write_netcdf_variables!Method
    write_netcdf_variables!(
    +    output::OutputWriter,
    +    diagn::DiagnosticVariables{NF, Grid, Model}
    +)
    +

    Write diagnostic variables from diagn to the netCDF file in output::OutputWriter.

    source
    SpeedyWeather.write_output!Method
    write_output!(
    +    outputter::OutputWriter,
    +    time::Dates.DateTime,
    +    diagn::DiagnosticVariables
    +)
    +

    Writes the variables from diagn of time step i at time time into outputter.netcdf_file. Simply escapes for no netcdf output of if output shouldn't be written on this time step. Interpolates onto output grid and resolution as specified in outputter, converts to output number format, truncates the mantissa for higher compression and applies lossless compression.

    source
    SpeedyWeather.write_restart_fileMethod
    write_restart_file(
    +    progn::PrognosticVariables,
    +    output::OutputWriter
    +) -> Union{Nothing, String}
    +

    A restart file restart.jld2 with the prognostic variables is written to the output folder (or current path) that can be used to restart the model. restart.jld2 will then be used as initial conditions. The prognostic variables are bitrounded for compression and the 2nd leapfrog time step is discarded. Variables in restart file are unscaled.

    source
    diff --git a/dev/grids/index.html b/dev/grids/index.html new file mode 100644 index 000000000..0c465dd47 --- /dev/null +++ b/dev/grids/index.html @@ -0,0 +1,7 @@ + +Grids · SpeedyWeather.jl

    Grids

    The spectral transform (the Spherical Harmonic Transform) in SpeedyWeather.jl supports any ring-based equi-longitude grid. Several grids are already implemented but other can be added. The following pages will describe an overview of these grids and but let's start but how they can be used

    julia> spectral_grid = SpectralGrid(Grid = FullGaussianGrid)
    +SpectralGrid:
    + Spectral:   T31 LowerTriangularMatrix{Complex{Float32}}, radius = 6.371e6 m
    + Grid:       4608-element, 48-ring FullGaussianGrid{Float32} (quadratic)
    + Resolution: 333km (average)
    + Vertical:   8-level SigmaCoordinates

    The life of every SpeedyWeather.jl simulation starts with a SpectralGrid object which defines the resolution in spectral and in grid-point space. The generator SpectralGrid() can take as a keyword argument Grid which can be any of the grids described below. The resolution of the grid, however, is not directly chosen, but determined from the spectral resolution trunc and the dealiasing factor. More in Matching spectral and grid resolution.

    RingGrids is a module too!

    While RingGrids is the underlying module that SpeedyWeather.jl uses for data structs on the sphere, the module can also be used independently of SpeedyWeather, for example to interpolate between data on different grids. See RingGrids

    Ring-based equi-longitude grids

    SpeedyWeather.jl's spectral transform supports all ring-based equi-longitude grids. These grids have their grid points located on rings with constant latitude and on these rings the points are equi-spaced in longitude. There is technically no constrain on the spacing of the latitude rings, but the Legendre transform requires a quadrature to map those to spectral space and back. Common choices for latitudes are the Gaussian latitudes which use the Gaussian quadrature, or equi-angle latitudes (i.e. just regular latitudes but excluding the poles) that use the Clenshaw-Curtis quadrature. The longitudes have to be equi-spaced on every ring, which is necessary for the fast Fourier transform, as one would otherwise need to use a non-uniform Fourier transform. In SpeedyWeather.jl the first grid point on any ring can have a longitudinal offset though, for example by spacing 4 points around the globe at 45˚E, 135˚E, 225˚E, and 315˚E. In this case the offset is 45˚E as the first point is not at 0˚E.

    Is the FullClenshawGrid a longitude-latitude grid?

    Short answer: Yes. The FullClenshawGrid is a specific longitude-latitude grid with equi-angle spacing. The most common grids for geoscientific data use regular spacings for 0-360˚E in longitude and 90˚N-90˚S. The FullClenshawGrid does that too, but it does not have a point on the North or South pole, and the central latitude ring sits exactly on the Equator. We name it Clenshaw following the Clenshaw-Curtis quadrature that is used in the Legendre transfrom in the same way as Gaussian refers to the Gaussian quadrature.

    Implemented grids

    All grids in SpeedyWeather.jl are a subtype of AbstractGrid, i.e. <: AbstractGrid. We further distinguish between full, and reduced grids. Full grids have the same number of longitude points on every latitude ring (i.e. points converge towards the poles) and reduced grids reduce the number of points towards the poles to have them more evenly spread out across the globe. More evenly does not necessarily mean that a grid is equal-area, meaning that every grid cell covers exactly the same area (although the shape changes).

    Currently the following full grids <: AbstractFullGrid are implemented

    • FullGaussianGrid, a full grid with Gaussian latitudes
    • FullClenshawGrid, a full grid with equi-angle latitudes

    and additionally we have FullHEALPixGrid and FullOctaHEALPixGrid which are the full grid equivalents to the HEALPix grid and the OctaHEALPix grid discussed below. Full grid equivalent means that they have the same latitude rings, but no reduction in the number of points per ring towards the poles and no longitude offset. Other implemented reduced grids are

    • OctahedralGaussianGrid, a reduced grid with Gaussian latitudes based on an octahedron
    • OctahedralClenshawGrid, similar but based on equi-angle latitudes
    • HEALPixGrid, an equal-area grid based on a dodecahedron with 12 faces
    • OctaHEALPixGrid, an equal-area grid from the class of HEALPix grids but based on an octahedron.

    An overview of these grids is visualised here

    Overview of implemented grids in SpeedyWeather.jl

    Visualised are each grid's grid points (white dots) and grid faces (white lines). All grids shown have 16 latitude rings on one hemisphere, Equator included. The total number of grid points is denoted in the top left of every subplot. The sphere is shaded with grey, orange and turquoise regions to denote the hemispheres in a and b, the 8 octahedral faces c, d,f and the 12 dodecahedral faces (or base pixels) in e. Coastlines are added for orientation.

    Grid resolution

    All grids use the same resolution parameter nlat_half, i.e. the number of rings on one hemisphere, Equator included. The Gaussian grids (full and reduced) do not have a ring on the equator, so their total number of rings nlat is always even and twice nlat_half. Clenshaw-Curtis grids and the HEALPix grids have a ring on the equator such their total number of rings is always odd and one less than the Gaussian grids at the same nlat_half.

    HEALPix grids do not use Nside as resolution parameter

    The original formulation for HEALPix grids use $N_{side}$, the number of grid points along the edges of each basepixel (8 in the figure above), SpeedyWeather.jl uses nlat_half, the number of rings on one hemisphere, Equator included, for all grids. This is done for consistency across grids. We may use $N_{side}$ for the documentation or within functions though.

    Related: Effective grid resolution and Available horizontal resolutions.

    Matching spectral and grid resolution

    A given spectral resolution can be matched to a variety of grid resolutions. A cubic grid, for example, combines a spectral truncation $T$ with a grid resolution $N$ (=nlat_half) such that $T + 1 = N$. Using T31 and an O32 is therefore often abbreviated as Tco31 meaning that the spherical harmonics are truncated at $l_{max}=31$ in combination with N=32, i.e. 64 latitude rings in total on an octahedral Gaussian grid. In SpeedyWeather.jl the choice of the order of truncation is controlled with the dealiasing parameter in the SpectralGrid construction.

    Let J be the total number of rings. Then we have

    • $T \approx J$ for linear truncation, i.e. dealiasing = 1
    • $\frac{3}{2}T \approx J$ for quadratic truncation, i.e. dealiasing = 2
    • $2T \approx J$ for cubic truncation, , i.e. dealiasing = 3

    and in general $\frac{m+1}{2}T \approx J$ for m-th order truncation. So the higher the truncation order the more grid points are used in combination with the same spectral resolution. A higher truncation order therefore makes all grid-point calculations more expensive, but can represent products of terms on the grid (which will have higher wavenumber components) to a higher accuracy as more grid points are available within a given wavelength. Using a sufficiently high truncation is therefore one way to avoid aliasing. A quick overview of how the grid resolution changes when dealiasing is passed onto SpectralGrid on the FullGaussianGrid

    truncdealiasingFullGaussianGrid size
    31164x32
    31296x48
    313128x64
    42196x48
    422128x64
    423192x96
    .........

    You will obtain this information every time you create a SpectralGrid(;Grid,trunc,dealiasing).

    Full Gaussian grid

    ...

    Full Clenshaw-Curtis grid

    ...

    Octahedral Gaussian grid

    ...

    HEALPix grid

    Technically, HEALPix grids are a class of grids that tessalate the sphere into faces that are often called basepixels. For each member of this class there are $N_\varphi$ basepixels in zonal direction and $N_\theta$ basepixels in meridional direction. For $N_\varphi = 4$ and $N_\theta = 3$ we obtain the classical HEALPix grid with $N_\varphi N_\theta = 12$ basepixels shown above in Implemented grids. Each basepixel has a quadratic number of grid points in them. There's an equatorial zone where the number of zonal grid points is constant (always $2N$, so 32 at $N=16$) and there are polar caps above and below the equatorial zone with the border at $\cos(\theta) = 2/3$ ($\theta$ in colatitudes).

    Following Górski, 2004[1], the $z=cos(\theta)$ colatitude of the $j$-th ring in the north polar cap, $j=1,...,N_{side}$ with $2N_{side} = N$ is

    \[z = 1 - \frac{j^2}{3N_{side}^2}\]

    and on that ring, the longitude $\phi$ of the $i$-th point ($i$ is the in-ring-index) is at

    \[\phi = \frac{\pi}{2j}(i-\tfrac{1}{2})\]

    The in-ring index $i$ goes from $i=1,...,4$ for the first (i.e. northern-most) ring, $i=1,...,8$ for the second ring and $i = 1,...,4j$ for the $j$-th ring in the northern polar cap.

    In the north equatorial belt $j=N_{side},...,2N_{side}$ this changes to

    \[z = \frac{4}{3} - \frac{2j}{3N_{side}}\]

    and the longitudes change to ($i$ is always $i = 1,...,4N_{side}$ in the equatorial belt meaning the number of longitude points is constant here)

    \[\phi = \frac{\pi}{2N_{side}}(i - \frac{s}{2}), \quad s = (j - N_{side} + 1) \mod 2\]

    The modulo function comes in as there is an alternating longitudinal offset from the prime meridian (see Implemented grids). For the southern hemisphere the grid point locations can be obtained by mirror symmetry.

    Grid cell boundaries

    The cell boundaries are obtained by setting $i = k + 1/2$ or $i = k + 1/2 + j$ (half indices) into the equations above, such that $z(\phi,k)$, a function for the cosine of colatitude $z$ of index $k$ and the longitude $\phi$ is obtained. These are then (northern polar cap)

    \[z = 1 - \frac{k^2}{3N_{side}^2}\left(\frac{\pi}{2\phi_t}\right)^2, \quad z = 1 - \frac{k^2}{3N_{side}^2}\left(\frac{\pi}{2\phi_t - \pi}\right)^2\]

    with $\phi_t = \phi \mod \tfrac{\pi}{2}$ and in the equatorial belt

    \[z = \frac{2}{3}-\frac{4k}{3N_{side}} \pm \frac{8\phi}{3\pi}\]

    OctaHEALPix grid

    While the classic HEALPix grid is based on a dodecahedron, other choices for $N_\varphi$ and $N_\theta$ in the class of HEALPix grids will change the number of faces there are in zonal/meridional direction. With $N_\varphi = 4$ and $N_\theta = 1$ we obtain a HEALPix grid that is based on an octahedron, which has the convenient property that there are twice as many longitude points around the equator than there are latitude rings between the poles. This is a desirable for truncation as this matches the distances too, $2\pi$ around the Equator versus $\pi$ between the poles. $N_\varphi = 6, N_\theta = 2$ or $N_\varphi = 8, N_\theta = 3$ are other possible choices for this, but also more complicated. See Górski, 2004[1] for further examples and visualizations of these grids.

    We call the $N_\varphi = 4, N_\theta = 1$ HEALPix grid the OctaHEALPix grid, which combines the equal-area property of the HEALPix grids with the octahedron that's also used in the OctahedralGaussianGrid or the OctahedralClenshawGrid. As $N_\theta = 1$ there is no equatorial belt which simplifies the grid. The latitude of the $j$-th isolatitude ring on the OctaHEALPixGrid is defined by

    \[z = 1 - \frac{j^2}{N^2},\]

    with $j=1,...,N$, and similarly for the southern hemisphere by symmetry. On this grid $N_{side} = N$ where $N$= nlat_half, the number of latitude rings on one hemisphere, Equator included, because each of the 4 basepixels spans from pole to pole and covers a quarter of the sphere. The longitudes with in-ring- index $i = 1,...,4j$ are

    \[\phi = \frac{\pi}{2j}(i - \tfrac{1}{2})\]

    and again, the southern hemisphere grid points are obtained by symmetry.

    Grid cell boundaries

    Similar to the grid cell boundaries for the HEALPix grid, the OctaHEALPix grid's boundaries are

    \[z = 1 - \frac{k^2}{N^2}\left(\frac{\pi}{2\phi_t}\right)^2, \quad z = 1 - \frac{k^2}{N^2}\left(\frac{\pi}{2\phi_t - \pi}\right)^2\]

    The $3N_{side}^2$ in the denominator of the HEALPix grid came simply $N^2$ for the OctaHEALPix grid and there's no separate equation for the equatorial belt (which doesn't exist in the OctaHEALPix grid).

    References

    • 1Górski, Hivon, Banday, Wandelt, Hansen, Reinecke, Bartelmann, 2004. HEALPix: A FRAMEWORK FOR HIGH-RESOLUTION DISCRETIZATION AND FAST ANALYSIS OF DATA DISTRIBUTED ON THE SPHERE, The Astrophysical Journal. doi:10.1086/427976
    diff --git a/dev/how_to_run_speedy/index.html b/dev/how_to_run_speedy/index.html new file mode 100644 index 000000000..737c7a19e --- /dev/null +++ b/dev/how_to_run_speedy/index.html @@ -0,0 +1,57 @@ + +How to run SpeedyWeather.jl · SpeedyWeather.jl

    How to run SpeedyWeather.jl

    Creating a SpeedyWeather.jl simulation and running it consists conceptually of 4 steps

    1. Create a SpectralGrid which defines the grid and spectral resolution
    2. Create a model
    3. Initialize a model to obtain a Simulation.
    4. Run the simulation.

    In the following we will describe these steps in more detail, but let's start with some examples first.

    Example 1: 2D turbulence on a non-rotating sphere

    We want to use the barotropic model to simulate some free-decaying 2D turbulence on the sphere without rotation. We start by defining the SpectralGrid object. To have a resolution of about 100km, we choose a spectral resolution of T127 (see Available horizontal resolutions) and nlev=1 vertical levels. The SpectralGrid object will provide us with some more information

    julia> spectral_grid = SpectralGrid(trunc=127,nlev=1)
    +SpectralGrid:
    + Spectral:   T127 LowerTriangularMatrix{Complex{Float32}}, radius = 6.371e6 m
    + Grid:       40320-element, 192-ring OctahedralGaussianGrid{Float32} (quadratic)
    + Resolution: 112km (average)
    + Vertical:   1-level SigmaCoordinates

    We could have specified further options, but let's ignore that for now. Next step we create a planet that's like Earth but not rotating

    julia> still_earth = Earth(rotation=0)
    +Main.SpeedyWeather.Earth
    +  rotation: Float64 0.0
    +  gravity: Float64 9.81
    +  daily_cycle: Bool true
    +  length_of_day: Float64 24.0
    +  seasonal_cycle: Bool true
    +  length_of_year: Float64 365.25
    +  equinox: Dates.DateTime
    +  axial_tilt: Float64 23.4

    There are other options to create a planet but they are irrelevant for the barotropic vorticity equations. We also want to specify the initial conditions, randomly distributed vorticity is already defined

    julia> initial_conditions = StartWithRandomVorticity()
    +StartWithRandomVorticity
    +  power_law: Float64 -3.0
    +  amplitude: Float64 1.0e-5

    By default, the power of vorticity is spectrally distributed with $k^{-3}$, $k$ being the horizontal wavenumber, and the amplitude is $10^{-5}\text{ s}^{-1}$.

    Now we want to construct a BarotropicModel with these

    julia> model = BarotropicModel(;spectral_grid, initial_conditions, planet=still_earth);

    The model contains all the parameters, but isn't initialized yet, which we can do with and then run it.

    julia> simulation = initialize!(model);
    +julia> run!(simulation,n_days=30)

    The run! command will always return the prognostic variables, which, by default, are plotted for surface relative vorticity with a unicode plot. The resolution of the plot is not necessarily representative but it lets us have a quick look at the result

    Barotropic vorticity unicode plot

    Woohoo! I can see turbulence! You could pick up where this simulation stopped by simply doing run!(simulation,n_days=50) again. We didn't store any output, which you can do by run!(simulation,output=true), which will switch on NetCDF output with default settings. More options on output in NetCDF output.

    Example 2: Shallow water with mountains

    As a second example, let's investigate the Galewsky et al.[1] test case for the shallow water equations with and without mountains. As the shallow water system has also only one level, we can reuse the SpectralGrid from Example 1.

    julia> spectral_grid = SpectralGrid(trunc=127,nlev=1)

    Now as a first simulation, we want to disable any orography, so we create a NoOrography

    julia> orography = NoOrography(spectral_grid)
    +NoOrography{Float32, OctahedralGaussianGrid{Float32}}

    Although the orography is zero, you have to pass on spectral_grid so that it can still initialize zero-arrays of the right size and element type. Awesome. This time the initial conditions should be set the the Galewsky et al.[1] zonal jet, which is already defined as

    julia> initial_conditions = ZonalJet()
    +ZonalJet
    +  latitude: Float64 45.0
    +  width: Float64 19.28571428571429
    +  umax: Float64 80.0
    +  perturb_lat: Float64 45.0
    +  perturb_lon: Float64 270.0
    +  perturb_xwidth: Float64 19.098593171027442
    +  perturb_ywidth: Float64 3.819718634205488
    +  perturb_height: Float64 120.0

    The jet sits at 45˚N with a maximum velocity of 80m/s and a perturbation as described in their paper. Now we construct a model, but this time a ShallowWaterModel

    julia> model = ShallowWaterModel(;spectral_grid, orography, initial_conditions);
    +julia> simulation = initialize!(model);

    Galewsky jet unicode plot

    Oh yeah. That looks like the wobbly jet in their paper. Let's run it again for another 6 days but this time also store NetCDF output.

    julia> run!(simulation,n_days=6,output=true)
    +Weather is speedy: run 0002 100%|███████████████████████| Time: 0:00:12 (115.37 years/day)

    The progress bar tells us that the simulation run got the identification "0002", meaning that data is stored in the folder /run_0002, so let's plot that data properly (and not just using UnicodePlots).

    julia> using PyPlot, NCDatasets
    +julia> ds = NCDataset("run_0002/output.nc");
    +julia> ds["vor"]
    +vor (384 × 192 × 1 × 25)
    +  Datatype:    Float32
    +  Dimensions:  lon × lat × lev × time
    +  Attributes:
    +   units                = 1/s
    +   missing_value        = NaN
    +   long_name            = relative vorticity
    +   _FillValue           = NaN

    Vorticity vor is stored as a 384x192x1x25 array, we may want to look at the first time step, which is the end of the previous simulation (time=6days) which we didn't store output for.

    julia> vor = ds["vor"][:,:,1,1];
    +julia> lat = ds["lat"][:];
    +julia> lon = ds["lon"][:];
    +julia> pcolormesh(lon,lat,vor')

    Which looks like

    Galewsky jet pyplot

    You see that the unicode plot heavily coarse-grains the simulation, well it's unicode after all! And now the last time step, that means time=12days is

    julia> vor = ds["vor"][:,:,1,25];
    +julia> pcolormesh(lon,lat,vor')

    Galewsky jet pyplot

    The jet broke up into many small eddies, but the turbulence is still confined to the northern hemisphere, cool! How this may change when we add mountains (we had NoOrography above!), say Earth's orography, you may ask? Let's try it out! We create an EarthOrography struct like so

    julia> orography = EarthOrography(spectral_grid)
    +EarthOrography{Float32, OctahedralGaussianGrid{Float32}}:
    + path::String = SpeedyWeather.jl/input_data
    + file::String = orography_F512.nc
    + scale::Float64 = 1.0
    + smoothing::Bool = true
    + smoothing_power::Float64 = 1.0
    + smoothing_strength::Float64 = 0.1
    + smoothing_truncation::Int64 = 85

    It will read the orography from file as shown, and there are some smoothing options too, but let's not change them. Same as before, create a model, initialize into a simulation, run. This time directly for 12 days so that we can compare with the last plot

    julia> model = ShallowWaterModel(;spectral_grid, orography, initial_conditions);
    +julia> simulation = initialize!(model);
    +julia> run!(simulation,n_days=12,output=true)
    +Weather is speedy: run 0003 100%|███████████████████████| Time: 0:00:35 (79.16 years/day)

    This time the run got the id "0003", but otherwise we do as before.

    Galewsky jet pyplot

    Interesting! The initial conditions have zero velocity in the southern hemisphere, but still, one can see some imprint of the orography on vorticity. You can spot the coastline of Antarctica; the Andes and Greenland are somewhat visible too. Mountains also completely changed the flow after 12 days, probably not surprising!

    SpectralGrid

    The life of every SpeedyWeather.jl simulation starts with a SpectralGrid object. We have seen some examples above, now let's look into the details

    Missing docstring.

    Missing docstring for SpectralGrid. Check Documenter's build log for details.

    References

    [1] Galewsky, Scott, Polvani, 2004. An initial-value problem for testing numerical models of the global shallow-water equations, Tellus A. DOI: 10.3402/tellusa.v56i5.14436

    diff --git a/dev/index.html b/dev/index.html new file mode 100644 index 000000000..64985b07c --- /dev/null +++ b/dev/index.html @@ -0,0 +1,2 @@ + +Home · SpeedyWeather.jl

    SpeedyWeather.jl documentation

    Welcome to the documentation for SpeedyWeather.jl a global atmospheric circulation model with simple parametrizations to represent physical processes such as clouds, precipitation and radiation.

    Overview

    SpeedyWeather.jl is a global spectral model that uses a spherical harmonic transform to simulate the general circulation of the atmosphere. The prognostic variables used are vorticity, divergence, temperature, surface pressure and specific humidity. Simple parameterizations represent various climate processes: Radiation, clouds, precipitation, surface fluxes, among others.

    SpeedyWeather.jl defines

    • BarotropicModel for the 2D barotropic vorticity equation
    • ShallowWaterModel for the 2D shallow water equations
    • PrimitiveDryModel for the 3D primitive equations without humidity
    • PrimitiveWetModel for the 3D primitive equations with humidity

    and solves these equations in spherical coordinates as described in this documentation.

    Manual outline

    See the following pages of the documentation for more details

    and the submodules

    and the original documentation by Molteni and Kucharski.

    Developers

    The development of SpeedyWeather.jl is lead by Milan Klöwer and current and past contributors include

    Any contributions are always welcome!

    Funding

    MK received funding by the European Research Council under Horizon 2020 within the ITHACA project, grant agreement number 741112 from 2021-2022. Since 2023 this project is also funded by the National Science Foundation NSF.

    diff --git a/dev/installation/index.html b/dev/installation/index.html new file mode 100644 index 000000000..5ce15a437 --- /dev/null +++ b/dev/installation/index.html @@ -0,0 +1,3 @@ + +Installation · SpeedyWeather.jl

    Installation

    SpeedyWeather.jl is registered in the Julia Registry. In most cases just open the Julia REPL and type

    julia> using Pkg
    +julia> Pkg.add("SpeedyWeather")

    or, equivalently, (] opens the package manager)

    julia>] add SpeedyWeather

    which will automatically install the latest release and all necessary dependencies. If you run into any troubles please raise an issue.

    However, you may want to make use of the latest features, then install directly from the main branch with

    julia> Pkg.add(url="https://github.com/SpeedyWeather/SpeedyWeather.jl",rev="main")

    other branches than main can be similarly installed. You can also type, equivalently,

    julia>] add https://github.com/SpeedyWeather/SpeedyWeather.jl#main

    Compatibility with Julia versions

    SpeedyWeather.jl usually lives on the latest minor release and/or its predecessor. At the moment (June 2023) this means

    • Julia v1.8
    • Julia v1.9

    are supported, but we dropped the support of earlier versions.

    diff --git a/dev/lowertriangularmatrices/index.html b/dev/lowertriangularmatrices/index.html new file mode 100644 index 000000000..4a30f1d5b --- /dev/null +++ b/dev/lowertriangularmatrices/index.html @@ -0,0 +1,60 @@ + +Submodule: LowerTriangularMatrices · SpeedyWeather.jl

    LowerTriangularMatrices

    LowerTriangularMatrices is a submodule that has been developed for SpeedyWeather.jl which is technically independent (SpeedyWeather.jl however imports it and so does SpeedyTransforms) and can also be used without running simulations. It is just not put into its own respective repository.

    This module defines LowerTriangularMatrix, a lower triangular matrix, which in contrast to LinearAlgebra.LowerTriangular does not store the entries above the diagonal. SpeedyWeather.jl uses LowerTriangularMatrix which is defined as a subtype of AbstractMatrix to store the spherical harmonic coefficients (see Spectral packing).

    Creation of LowerTriangularMatrix

    A LowerTriangularMatrix can be created using zeros,ones,rand, or randn

    julia> using SpeedyWeather.LowerTriangularMatrices
    +
    +julia> L = rand(LowerTriangularMatrix{Float32},5,5)
    +5×5 LowerTriangularMatrix{Float32}:
    + 0.912744   0.0        0.0       0.0       0.0
    + 0.0737592  0.230592   0.0       0.0       0.0
    + 0.799679   0.0765255  0.888098  0.0       0.0
    + 0.670835   0.997938   0.505276  0.492966  0.0
    + 0.949321   0.193692   0.793623  0.152817  0.357968

    or the undef initializor LowerTriangularMatrix{Float32}(undef,3,3). The element type is arbitrary though, you can use any type T too.

    Alternatively, it can be created through conversion from Matrix, which drops the upper triangle entries and sets them to zero

    julia> M = rand(Float16,3,3)
    +3×3 Matrix{Float16}:
    + 0.2222  0.694    0.3452
    + 0.2158  0.04443  0.274
    + 0.9746  0.793    0.6294
    +
    +julia> LowerTriangularMatrix(M)
    +3×3 LowerTriangularMatrix{Float16}:
    + 0.2222  0.0      0.0
    + 0.2158  0.04443  0.0
    + 0.9746  0.793    0.6294

    Indexing LowerTriangularMatrix

    LowerTriangularMatrix supports two types of indexing: 1) by denoting two indices, column and row [l,m] or 2) by denoting a single index [lm]. The double index works as expected

    julia> L
    +3×3 LowerTriangularMatrix{Float16}:
    + 0.1499  0.0    0.0
    + 0.1177  0.478  0.0
    + 0.1709  0.756  0.3223
    +
    +julia> L[2,2]
    +Float16(0.478)

    But the single index skips the zero entries in the upper triangle, i.e.

    julia> L[4]
    +Float16(0.478)

    which, important, is different from single indices of an AbstractMatrix

    julia> Matrix(L)[4]
    +Float16(0.0)

    In performance-critical code a single index should be used, as this directly maps to the index of the underlying data vector. The double index is somewhat slower as it first has to be converted to the corresponding single index.

    Consequently, many loops in SpeedyWeather.jl are build with the following structure

    n,m = size(L)
    +ij = 0
    +for j in 1:m
    +    for i in j:n
    +        ij += 1
    +        L[ij] = i+j
    +    end
    +end

    which loops over all lower triangle entries of L::LowerTriangularMatrix and the single index ij is simply counted up. However, one could also use [i,j] as indices in the loop body or to perform any calculation (i+j here). An iterator over all entries in the lower triangle can be created by

    for ij in eachindex(L)
    +    # do something
    +end

    The setindex! functionality of matrixes will throw a BoundsError when trying to write into the upper triangle of a LowerTriangularMatrix, for example

    julia> L[2,1] = 0    # valid index
    +0
    +
    +julia> L[1,2] = 0    # invalid index in the upper triangle
    +ERROR: BoundsError: attempt to access 3×3 LowerTriangularMatrix{Float32} at index [1, 2]

    Linear algebra with LowerTriangularMatrix

    The LowerTriangularMatrices module's main purpose is not linear algebra, and it's implementation may not be efficient, however, many operations work as expected

    julia> L = rand(LowerTriangularMatrix{Float32},3,3)
    +3×3 LowerTriangularMatrix{Float32}:
    + 0.57649   0.0       0.0
    + 0.348685  0.875371  0.0
    + 0.881923  0.850552  0.998306
    +
    +julia> L + L
    +3×3 LowerTriangularMatrix{Float32}:
    + 1.15298   0.0      0.0
    + 0.697371  1.75074  0.0
    + 1.76385   1.7011   1.99661
    +
    +julia> L * L
    +3×3 Matrix{Float32}:
    + 0.332341  0.0       0.0
    + 0.506243  0.766275  0.0
    + 1.68542   1.59366   0.996616

    Note, however, that the latter includes a conversion to Matrix, which is true for many operations, including inv or \. Hence when trying to do more sophisticated linear algebra with LowerTriangularMatrix we quickly leave lower triangular-land and go back to normal matrix-land.

    Function and type index

    SpeedyWeather.LowerTriangularMatrices.LowerTriangularMatrixType
    L = LowerTriangularMatrix{T}(v::Vector{T},m::Int,n::Int)

    A lower triangular matrix implementation that only stores the non-zero entries explicitly. L<:AbstractMatrix although in general we have L[i] != Matrix(L)[i], the former skips zero entries, tha latter includes them.

    source
    Base.fill!Method
    fill!(L::LowerTriangularMatrix,x)

    Fills the elements of L with x. Faster than fill!(::AbstractArray,x) as only the non-zero elements in L are assigned with x.

    source
    SpeedyWeather.LowerTriangularMatrices.eachharmonicMethod
    unit_range = eachharmonic(Ls::LowerTriangularMatrix...)

    creates unit_range::UnitRange to loop over all non-zeros in the LowerTriangularMatrices provided as arguments. Checks bounds first. All LowerTriangularMatrix's need to be of the same size. Like eachindex but skips the upper triangle with zeros in L.

    source
    SpeedyWeather.LowerTriangularMatrices.ij2kMethod
    k = ij2k(   i::Integer,     # row index of matrix
    +            j::Integer,     # column index of matrix
    +            m::Integer)     # number of rows in matrix

    Converts the index pair i,j of an mxn LowerTriangularMatrix L to a single index k that indexes the same element in the corresponding vector that stores only the lower triangle (the non-zero entries) of L.

    source
    diff --git a/dev/output/index.html b/dev/output/index.html new file mode 100644 index 000000000..40c5106b5 --- /dev/null +++ b/dev/output/index.html @@ -0,0 +1,32 @@ + +NetCDF output · SpeedyWeather.jl

    NetCDF output

    SpeedyWeather.jl uses NetCDF to output the data of a simulation. The following describes the details of this and how to change the way in which the NetCDF output is written. There are many options to this available.

    Accessing the NetCDF output writer

    The output writer is a component of every Model, i.e. BarotropicModel, ShallowWaterModel, PrimitiveDryModel and PrimitiveWetModel, hence a non-default output writer can be passed on as a keyword argument to the model constructor

    julia> using SpeedyWeather
    +julia> spectral_grid = SpectralGrid()
    +julia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry)
    +julia> model = PrimitiveDryModel(;spectral_grid, output=my_output_writer)

    So after we have defined the grid through the SpectralGrid object we can use and change the implemented OutputWriter by passing on the following arguments

    julia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry, kwargs...)

    the spectral_grid has to be the first argument then the model type (Barotropic, ShallowWater, PrimitiveDry, PrimitiveWet) which helps the output writer to make default choices on which variables to output. However, we can also pass on further keyword arguments. So let's start with an example.

    Example 1: NetCDF output every hour

    If we want to increase the frequency of the output we can choose output_dt (default =6 in hours) like so

    julia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry, output_dt=1)
    +julia> model = PrimitiveDryModel(;spectral_grid, output=my_output_writer)

    which will now output every hour. It is important to pass on the new output writer my_output_writer to the model constructor, otherwise it will not be part of your model and the default is used instead. Note that output_dt has to be understood as the minimum frequency or maximum output time step. Example, we run the model at a resolution of T85 and the time step is going to be 670s

    julia> spectral_grid = SpectralGrid(trunc=85)
    +julia> time_stepper = Leapfrog(spectral_grid)
    +Leapfrog{Float32}:
    +...
    + Δt_sec::Int64 = 670
    +...

    This means that after 32 time steps 5h 57min and 20s will have passed where output will happen as the next time step would be >6h. The time axis of the NetCDF output will look like

    julia> using NCDatasets
    +julia> ds = NCDataset("run_0001/output.nc");
    +julia> ds["time"][:]
    +5-element Vector{Dates.DateTime}:
    + 2000-01-01T00:00:00
    + 2000-01-01T05:57:20
    + 2000-01-01T11:54:40
    + 2000-01-01T17:52:00
    + 2000-01-01T23:49:20
    +
    +julia> diff(ds["time"][:])
    +4-element Vector{Dates.Millisecond}:
    + 21440000 milliseconds
    + 21440000 milliseconds
    + 21440000 milliseconds
    + 21440000 milliseconds

    This is so that we don't interpolate in time during output to hit exactly every 6 hours, but at the same time have a constant spacing in time between output time steps.

    Example 2: Output onto a higher/lower resolution grid

    Say we want to run the model at a given horizontal resolution but want to output on another resolution, the OutputWriter takes as argument output_Grid<:AbstractFullGrid and nlat_half::Int. So for example output_Grid=FullClenshawGrid and nlat_half=48 will always interpolate onto a regular 192x95 longitude-latitude grid of 1.875˚ resolution, regardless the grid and resolution used for the model integration.

    julia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry, output_Grid=FullClenshawGrid, nlat_half=48)

    Note that by default the output is on the corresponding full of the grid used in the dynamical core so that interpolation only happens at most in the zonal direction as they share the location of the latitude rings. You can check this by

    julia> RingGrids.full_grid(OctahedralGaussianGrid)
    +FullGaussianGrid

    So the corresponding full grid of an OctahedralGaussianGrid is the FullGaussiangrid and the same resolution nlat_half is chosen by default in the output writer (which you can change though as shown above). Overview of the corresponding full grids

    GridCorresponding full grid
    FullGaussianGridFullGaussianGrid
    FullClenshawGridFullClenshawGrid
    OctahadralGaussianGridFullGaussianGrid
    OctahedralClensawhGridFullClenshawGrid
    HEALPixGridFullHEALPixGrid
    OctaHEALPixGridFullOctaHEALPixGrid

    The grids FullHEALPixGrid, FullOctaHEALPixGrid share the same latitude rings as their reduced grids, but have always as many longitude points as they are at most around the equator. These grids are not tested in the dynamical core (but you may use them experimentally) and mostly designed for output purposes.

    Example 3: Changing the output path or identification

    That's easy by passing on path="/my/favourite/path/" and the folder run_* with * the identification of the run (that's the id keyword, which can be manually set but is also automatically determined as a number counting up depending on which folders already exist) will be created within.

    julia> path = pwd()
    +"/Users/milan"
    +julia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry, path=path)

    This folder must already exist. If you want to give your run a name/identification you can pass on id

    julia> my_output_writer = OutputWriter(spectral_grid,PrimitiveDry,id="diffusion_test");

    which will be used instead of a 4 digit number like 0001, 0002 which is automatically determined if id is not provided. You will see the id of the run in the progress bar

    Weather is speedy: run diffusion_test 100%|███████████████████████| Time: 0:00:12 (19.20 years/day)

    and the run folder, here run_diffusion_test, is also named accordingly

    shell> ls
    +...
    +run_diffusion_test
    +...

    Further options

    Further options are described in the OutputWriter docstring, (also accessible via julia>?OutputWriter for example). Note that some fields are actual options, but others are derived from the options you provided or are arrays/objects the output writer needs, but shouldn't be passed on by the user. The actual options are declared as [OPTION] in the following

    Missing docstring.

    Missing docstring for OutputWriter. Check Documenter's build log for details.

    diff --git a/dev/parameterizations/index.html b/dev/parameterizations/index.html new file mode 100644 index 000000000..d4814fde5 --- /dev/null +++ b/dev/parameterizations/index.html @@ -0,0 +1,2 @@ + +Parameterizations · SpeedyWeather.jl diff --git a/dev/primitiveequation/index.html b/dev/primitiveequation/index.html new file mode 100644 index 000000000..1c2655ad8 --- /dev/null +++ b/dev/primitiveequation/index.html @@ -0,0 +1,14 @@ + +Primitive equation model · SpeedyWeather.jl

    Primitive equation model

    The primitive equations are a hydrostatic approximation of the compressible Navier-Stokes equations for an ideal gas on a rotating sphere. We largely follow the idealised spectral dynamical core developed by GFDL[1] and documented therein[2].

    The primitive equations solved by SpeedyWeather.jl for relative vorticity $\zeta$, divergence $\mathcal{D}$, logarithm of surface pressure $\ln p_s$, temperature $T$ and specific humidity $q$ are

    \[\begin{aligned} +\frac{\partial \zeta}{\partial t} &= \nabla \times (\mathbf{\mathcal{P}}_\mathbf{u} ++ (f+\zeta)\mathbf{u}_\perp - W(\mathbf{u}) - R_dT_v\nabla \ln p_s) \\ +\frac{\partial \mathcal{D}}{\partial t} &= \nabla \cdot (\mathcal{P}_\mathbf{u} ++ (f+\zeta)\mathbf{u}_\perp - W(\mathbf{u}) - R_dT_v\nabla \ln p_s) - \nabla^2(\frac{1}{2}(u^2 + v^2) + \Phi) \\ +\frac{\partial \ln p_s}{\partial t} &= -\frac{1}{p_s} \nabla \cdot \int_0^{p_s} \mathbf{u}~dp \\ +\frac{\partial T}{\partial t} &= \mathcal{P}_T -\nabla\cdot(\mathbf{u}T) + T\mathcal{D} - W(T) + \kappa T_v \frac{D \ln p}{Dt} \\ +\frac{\partial q}{\partial t} &= \mathcal{P}_q -\nabla\cdot(\mathbf{u}q) + q\mathcal{D} - W(q)\\ +\end{aligned}\]

    with velocity $\mathbf{u} = (u,v)$, rotated velocity $\mathbf{u}_\perp = (v,-u)$, Coriolis parameter $f$, $W$ the vertical advection operator, dry air gas constant $R_d$, virtual temperature $T_v$, geopotential $\Phi$, pressure $p$, thermodynamic $\kappa = R\_d/c_p$ with $c_p$ the heat capacity at constant pressure. Horizontal hyper diffusion of the form $(-1)^{n+1}\nu\nabla^{2n}$ with coefficient $\nu$ and power $n$ is added for every variable that is advected, meaning $\zeta, \mathcal{D}, T, q$, but left out here for clarity, see Horizontal diffusion.

    The parameterizations for the tendencies of $u,v,T,q$ from physical processes are denoted as $\mathcal{P}_\mathbf{u} = (\mathcal{P}_u, \mathcal{P}_v), \mathcal{P}_T, \mathcal{P}_q$ and are further described in the corresponding sections, see Parameterizations.

    SpeedyWeather.jl implements a PrimitiveWet and a PrimitiveDry dynamical core. For a dry atmosphere, we have $q = 0$ and the virtual temperature $T_v = T$ equals the temperature (often called absolute to distinguish from the virtual temperature). The terms in the primitive equations and their discretizations are discussed in the following sections.

    Virtual temperature

    In short: Virtual temperature

    Virtual temperature is the temperature dry air would need to have to be as light as moist air. It is used in the dynamical core to include the effect of humidity on the density while replacing density through the ideal gas law with temperature.

    We assume the atmosphere to be composed of two ideal gases: Dry air and water vapour. Given a specific humidity $q$ both gases mix, their pressures $p_d$, $p_w$ ($d$ for dry, $w$ for water vapour), and densities $\rho_d, \rho_w$ add in a given air parcel that has temperature $T$. The ideal gas law then holds for both gases

    \[\begin{aligned} +p_d &= \rho_d R_d T \\ +p_w &= \rho_w R_w T \\ +\end{aligned}\]

    with the respective specific gas constants $R_d = R/m_d$ and $R_w = R/m_w$ obtained from the univeral gas constant $R$ divided by the molecular masses of the gas. The total pressure $p$ in the air parcel is

    \[p = p_d + p_w = (\rho_d R_d + \rho_w R_w)T\]

    We ultimately want to replace the density $\rho = \rho_w + \rho_d$ in the dynamical core, using the ideal gas law, with the temperature $T$, so that we never have to calculate the density explicitly. However, in order to not deal with two densities (dry air and water vapour) we would like to replace temperature with a virtual temperature that includes the effect of humidity on the density. So, whereever we use the ideal gas law to replace density with temperature, we would use the virtual temperature, which is a function of the absolute temperature and specific humidity, instead. A higher specific humidity in an air parcel lowers the density as water vapour is lighter than dry air. Consequently, the virtual temperature of moist air is higher than its absolute temperature because warmer air is lighter too at constant pressure. We therefore think of the virtual temperature as the temperature dry air would need to have to be as light as moist air.

    Starting with the last equation, with some manipulation we can write the ideal gas law as total density $rho$ times a gas constant times the virtual temperature that is supposed to be a function of absolute temperature, humidity and some constants

    \[p = (\rho R_d + \rho_w (R_w - R_d)) T = \rho R_d (1 + +\frac{1 - \tfrac{R_d}{R_w}}{\tfrac{R_d}{R_w}} \frac{\rho_w}{\rho_w + \rho_d})T\]

    Now we identify

    \[\mu = \frac{1 - \tfrac{R_d}{R_w}}{\tfrac{R_d}{R_w}}\]

    as some constant that is positive for water vapour being lighter than dry air ($\tfrac{R_d}{R_w} = \tfrac{m_w}{m_d} < 1$) and

    \[q = \frac{\rho_w}{\rho_w + \rho_d}\]

    as the specific humidity. Given temperature $T$ and specific humidity $q$, we can therefore calculate the virtual temperature $T_v$ as

    \[T_v = (1 + \mu q)T\]

    For completeness we want to mention here that the above product, because it is a product of two variables $q,T$ has to be computed in grid-point space, see [Spectral Transform]. To obtain an approximation to the virtual temperature in spectral space without expensive transforms one can linearize

    \[T_v = T + \mu q\bar{T}\]

    With a global constant temperature $\bar{T}$, for example obtained from the $l=m=0$ mode, $\bar{T} = T_{0,0}\frac{1}{\sqrt{4\pi}}$ but depending on the normalization of the spherical harmonics that factor needs adjustment.

    Vertical coordinates

    General

    Let $\Psi(x,y,z,t)$

    SpeedyWeather.jl currently uses sigma coordinates for the vertical.

    \[\sigma = \frac{p}{p_s}\]

    \[p_k = \sigma_kp_s\]

    \[\Delta p_k = p_{k+1} - p_k = \Delta \sigma_k p_s\]

    Geopotential

    In the hydrostatic approximation the vertical momentum equation becomes

    \[\frac{\partial p}{\partial z} = -\rho g,\]

    meaning that the (negative) vertical pressure gradient is given by the density in that layer times the gravitational acceleration. The heavier the fluid the more the pressure will increase below. Inserting the ideal gas law

    \[\frac{\partial gz}{\partial p} = -\frac{R_dT_v}{p},\]

    with the geopotential $\Phi = gz$ we can write this in terms of the logarithm of pressure

    \[\frac{\partial \Phi}{\partial \ln p} = -R_dT_v.\]

    Note that we use the Virtual temperature here as we replaced the density through the ideal gas law with temperature. Given a vertical temperature profile $T_v$ and the (constant) surface geopotential $\Phi_s = gz_s$ where $z_s$ is the orography, we can integrate this equation from the surface to the top to obtain $\Phi_k$ on every layer $k$. The surface is at $k = N+\tfrac{1}{2}$ (see Vertical coordinates) with $N$ vertical levels. We can integrate the geopotential onto half levels as

    \[\Phi_{k-\tfrac{1}{2}} = \Phi_{k+\tfrac{1}{2}} + R_dT^v_k(\ln p_{k+1/2} - \ln p_{k-1/2})\]

    Surface pressure tendency

    Vertical advection

    Pressure gradient force

    Temperature equation

    Semi-implicit time stepping

    Horizontal diffusion

    Algorithm

    Scaled primitive equations

    References

    diff --git a/dev/ringgrids/index.html b/dev/ringgrids/index.html new file mode 100644 index 000000000..b9f638945 --- /dev/null +++ b/dev/ringgrids/index.html @@ -0,0 +1,333 @@ + +Submodule: RingGrids · SpeedyWeather.jl

    RingGrids

    RingGrids is a submodule that has been developed for SpeedyWeather.jl which is technically independent (SpeedyWeather.jl however imports it and so does SpeedyTransforms) and can also be used without running simulations. It is just not put into its own respective repository.

    RingGrids defines several iso-latitude grids, which are mathematically described in the section on Grids. In brief, they include the regular latitude-longitude grids (here called FullClenshawGrid) as well as grids which latitudes are shifted to the Gaussian latitudes and reduced grids, meaning that they have a decreasing number of longitudinal points towards the poles to be more equal-area than full grids.

    RingGrids defines and exports the following grids:

    • full grids: FullClenshawGrid, FullGaussianGrid, FullHEALPix, and FullOctaHEALPix
    • reduced grids: OctahedralGaussianGrid, OctahedralClenshawGrid, OctaHEALPixGrid and HEALPixGrid

    The following explanation of how to use these can be mostly applied to any of them, however, there are certain functions that are not defined, e.g. the full grids can be trivially converted to a Matrix (i.e. they are rectangular grids) but not the OctahedralGaussianGrid.

    What is a ring?

    We use the term ring, short for iso-latitude ring, to refer to a sequence of grid points that all share the same latitude. A latitude-longitude grid is a ring grid, as it organises its grid-points into rings. However, other grids, like the cubed-sphere are not based on iso-latitude rings. SpeedyWeather.jl only works with ring grids because its a requirement for the Spherical Harmonic Transform to be efficient. See Grids.

    Creating data on a RingGrid

    Every grid in RingGrids has a grid.data field, which is a vector containing the data on the grid. The grid points are unravelled west to east then north to south, meaning that it starts at 90˚N and 0˚E then walks eastward for 360˚ before jumping on the next latitude ring further south, this way circling around the sphere till reaching the south pole. This may also be called ring order.

    Data in a Matrix which follows this ring order can be put on a FullGaussianGrid like so

    using SpeedyWeather.RingGrids
    +map = randn(Float32,8,4)
    8×4 Matrix{Float32}:
    +  2.19726   -0.332646   1.97726     0.273783
    + -1.37593    1.1061    -0.0285406   0.731965
    +  0.233074  -1.09609    0.917073   -0.305652
    + -0.948194  -0.906975  -0.453742   -1.22334
    + -1.06677   -1.16861   -1.37027     0.625503
    +  0.409251   0.374915   0.633214    0.354007
    + -0.772139  -1.85352   -0.753541    0.423091
    +  0.142726  -1.28028    0.0401475  -0.310944
    grid = FullGaussianGrid(map)
    32-element, 4-ring FullGaussianGrid{Float32}:
    +  2.197261
    + -1.3759267
    +  0.23307362
    + -0.9481944
    + -1.0667671
    +  0.40925077
    + -0.7721386
    +  0.14272553
    + -0.33264574
    +  1.1061045
    +  ⋮
    +  0.04014749
    +  0.27378267
    +  0.7319653
    + -0.30565187
    + -1.2233361
    +  0.62550324
    +  0.35400668
    +  0.42309138
    + -0.31094396

    A full Gaussian grid has always $2N$ x $N$ grid points, but a FullClenshawGrid has $2N$ x $N-1$, if those dimensions don't match, the creation will throw an error. To reobtain the data from a grid, you can access its data field which returns a normal Vector

    grid.data
    32-element Vector{Float32}:
    +  2.197261
    + -1.3759267
    +  0.23307362
    + -0.9481944
    + -1.0667671
    +  0.40925077
    + -0.7721386
    +  0.14272553
    + -0.33264574
    +  1.1061045
    +  ⋮
    +  0.04014749
    +  0.27378267
    +  0.7319653
    + -0.30565187
    + -1.2233361
    +  0.62550324
    +  0.35400668
    +  0.42309138
    + -0.31094396

    Which can be reshaped to reobtain map from above. Alternatively you can Matrix(grid) to do this in one step

    map == Matrix(FullGaussianGrid(map))
    true

    You can also use zeros,ones,rand,randn to create a grid, whereby nlat_half, i.e. the number of latitude rings on one hemisphere, Equator included, is used as a resolution parameter and here as a second argument.

    nlat_half = 4
    +grid = randn(OctahedralGaussianGrid{Float16},nlat_half)
    208-element, 8-ring OctahedralGaussianGrid{Float16}:
    +  0.2988
    + -0.445
    + -0.2035
    + -0.7007
    +  0.911
    +  0.3845
    +  1.472
    + -1.46
    +  0.1874
    +  0.2292
    +  ⋮
    + -0.0971
    + -1.115
    +  0.0542
    + -1.086
    +  1.7
    +  1.633
    +  0.7666
    +  1.684
    +  0.4727

    and any element type T can be used for OctahedralGaussianGrid{T} and similar for other grid types.

    Visualising RingGrid data

    As only the full grids can be reshaped into a matrix, the underlying data structure of any AbstractGrid is a vector. As shown in the examples above, one can therefore inspect the data as if it was a vector. But as that data has, through its <:AbstractGrid type, all the geometric information available to plot it on a map, RingGrids also exports plot function, based on UnicodePlots' heatmap.

    nlat_half = 24
    +grid = randn(OctahedralGaussianGrid,nlat_half)
    +plot(grid)
                       48-ring OctahedralGaussianGrid{Float64}                
    +       ┌────────────────────────────────────────────────────────────┐  3  
    +    90 ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ┌──┐
    +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄
    +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄
    +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄
    +       ▄▄▄▄▄▄▄▄▄▄ ▄▄
    +       ▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄
    +       ▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄
    +    ˚N ▄▄▄▄▄▄ ▄▄
    +       ▄▄▄▄▄▄ ▄▄
    +       ▄▄▄▄▄▄ ▄▄
    +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄
    +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄
    +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄
    +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄
    +   -90 ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ └──┘
    +       └────────────────────────────────────────────────────────────┘ -3  
    +        0                           ˚E                           360      

    Indexing RingGrids

    All RingGrids have a single index ij which follows the ring order. While this is obviously not super exciting here are some examples how to make better use of the information that the data sits on a grid.

    We obtain the latitudes of the rings of a grid by calling get_latd (get_lond is only defined for full grids, or use get_latdlonds for latitudes, longitudes per grid point not per ring)

    grid = randn(OctahedralClenshawGrid,5)
    +latd = get_latd(grid)
    9-element Vector{Float64}:
    +  72.0
    +  54.0
    +  36.0
    +  18.0
    +   0.0
    + -18.0
    + -36.0
    + -54.0
    + -72.0

    Now we could calculate Coriolis and add it on the grid as follows

    rotation = 7.29e-5                  # angular frequency of Earth's rotation [rad/s]
    +coriolis = 2rotation*sind.(latd)    # vector of coriolis parameters per latitude ring
    +
    +rings = eachring(grid)
    +for (j,ring) in enumerate(rings)
    +    f = coriolis[j]
    +    for ij in ring
    +        grid[ij] += f
    +    end
    +end

    eachring creates a vector of UnitRange indices, such that we can loop over the ring index j (j=1 being closest to the North pole) pull the coriolis parameter at that latitude and then loop over all in-ring indices i (changing longitudes) to do something on the grid. Something similar can be done to scale/unscale with the cosine of latitude for example. We can always loop over all grid-points like so

    for ij in eachgridpoint(grid)
    +    grid[ij]
    +end

    or use eachindex instead.

    Interpolation on RingGrids

    In most cases we will want to use RingGrids so that our data directly comes with the geometric information of where the grid-point is one the sphere. We have seen how to use get_latd, get_lond, ... for that above. This information generally can also be used to interpolate our data from grid to another or to request an interpolated value on some coordinates. Using our data on grid which is an OctahedralGaussianGrid from above we can use the interpolate function to get it onto a FullGaussianGrid (or any other grid for purpose)

    grid = randn(OctahedralGaussianGrid{Float32},4)
    208-element, 8-ring OctahedralGaussianGrid{Float32}:
    +  0.31564108
    +  1.4577
    +  0.24013406
    + -0.49309978
    +  1.1083313
    +  1.0740074
    +  0.059433285
    + -1.1705781
    + -0.521573
    +  2.3676555
    +  ⋮
    +  0.34149837
    +  0.9576716
    +  0.53004676
    +  1.3727595
    + -2.1763747
    + -0.5955148
    + -0.31571564
    + -1.097347
    +  1.1023515
    interpolate(FullGaussianGrid,grid)
    128-element, 8-ring FullGaussianGrid{Float64}:
    +  0.3156410753726959
    +  1.1533085107803345
    + -0.12648284435272217
    +  0.7079735696315765
    +  1.0740073919296265
    + -0.24806958064436913
    + -0.846075564622879
    +  1.6453484296798706
    +  1.2160334587097168
    +  0.324315570294857
    +  ⋮
    +  0.6209814175963402
    + -0.8544390201568604
    +  0.49554167687892914
    +  0.7438591718673706
    +  1.1620812863111483
    + -2.176374673843384
    + -0.5255649909377098
    + -0.7065313160419464
    +  0.552426815032959

    By default this will linearly interpolate (it's an Anvil interpolator, see below) onto a grid with the same nlat_half, but we can also coarse-grain or fine-grain by specifying nlat_half directly as 2nd argument

    interpolate(FullGaussianGrid,6,grid)
    288-element, 12-ring FullGaussianGrid{Float64}:
    +  0.37858995230110637
    +  1.0259582345469984
    +  0.6032967251429308
    +  0.07785206362550673
    +  0.19157900912546755
    +  0.9138959220601276
    +  0.8944396376691038
    +  0.3193353053753986
    + -0.35346443887911927
    + -0.41162336564956936
    +  ⋮
    +  0.49388016454722683
    +  0.5395168111596341
    +  0.5193050609974512
    + -1.4924972333178448
    + -0.5963976571909126
    + -0.2902959682973357
    + -0.49269249897189993
    + -0.2597763539410686
    +  0.6408868976587817

    So we got from an 8-ring OctahedralGaussianGrid{Float16} to a 12-ring FullGaussianGrid{Float64}, so it did a conversion from Float16 to Float64 on the fly too, because the default precision is Float64 unless specified. interpolate(FullGaussianGrid{Float16},6,grid) would have interpolated onto a grid with element type Float16.

    One can also interpolate onto a given coordinate ˚N, ˚E like so

    interpolate(30.0,10.0,grid)
    -1.2619363f0

    we interpolated the data from grid onto 30˚N, 10˚E. To do this simultaneously for many coordinates they can be packed into a vector too

    interpolate([30.0,40.0,50.0],[10.0,10.0,10.0],grid)
    3-element Vector{Float32}:
    + -1.2619363
    + -0.9860039
    + -0.49998623

    which returns the data on grid at 30˚N, 40˚N, 50˚N, and 10˚E respectively. Note how the interpolation here retains the element type of grid.

    Performance for RingGrid interpolation

    Every time an interpolation like interpolate(30.0,10.0,grid) is called, several things happen, which are important to understand to know how to get the fastest interpolation out of this module in a given situation. Under the hood an interpolation takes three arguments

    • output vector
    • input grid
    • interpolator

    The output vector is just an array into which the interpolated data is written, providing this prevents unnecessary allocation of memory in case the destination array of the interpolation already exists. The input grid contains the data which is subject to interpolation, it must come on a ring grid, however, its coordinate information is actually already in the interpolator. The interpolator knows about the geometry of the grid the data is coming on and the coordinates it is supposed to interpolate onto. It has therefore precalculated the indices that are needed to access the right data on the input grid and the weights it needs to apply in the actual interpolation operation. The only thing it does not know is the actual data values of that grid. So in the case you want to interpolate from grid A to grid B many times, you can just reuse the same interpolator. If you want to change the coordinates of the output grid but its total number of points remain constants then you can update the locator inside the interpolator and only else you will need to create a new interpolator. Let's look at this in practice. Say we have two grids an want to interpolate between them

    grid_in = rand(HEALPixGrid,4)
    +grid_out = zeros(FullClenshawGrid,6)
    +interp = RingGrids.interpolator(grid_out,grid_in)
    SpeedyWeather.RingGrids.AnvilInterpolator{Float64, HEALPixGrid{Float64}}(SpeedyWeather.RingGrids.GridGeometry{HEALPixGrid{Float64}}(4, 7, 48, [90.0, 66.44353569089876, 41.8103148957786, 19.471220634490685, 0.0, -19.47122063449071, -41.81031489577862, -66.44353569089876, -90.00000000000001], [45.0, 135.0, 225.0, 315.0, 22.5, 67.5, 112.5, 157.5, 202.5, 247.49999999999997  …  112.5, 157.5, 202.5, 247.49999999999997, 292.5, 337.5, 45.0, 135.0, 225.0, 315.0], UnitRange{Int64}[1:4, 5:12, 13:20, 21:28, 29:36, 37:44, 45:48], [4, 8, 8, 8, 8, 8, 4], [45.0, 22.5, 0.0, 22.5, 0.0, 22.5, 45.0]), SpeedyWeather.RingGrids.AnvilLocator{Float64}(264, [0, 0, 0, 0, 0, 0, 0, 0, 0, 0  …  7, 7, 7, 7, 7, 7, 7, 7, 7, 7], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0  …  46, 46, 47, 47, 47, 47, 47, 48, 48, 48], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0  …  47, 47, 48, 48, 48, 48, 48, 45, 45, 45], [4, 4, 4, 1, 1, 1, 1, 1, 1, 2  …  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1], [1, 1, 1, 2, 2, 2, 2, 2, 2, 3  …  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1], [0.6367678868600251, 0.6367678868600251, 0.6367678868600251, 0.6367678868600251, 0.6367678868600251, 0.6367678868600251, 0.6367678868600251, 0.6367678868600251, 0.6367678868600251, 0.6367678868600251  …  0.3632321131399741, 0.3632321131399741, 0.3632321131399741, 0.3632321131399741, 0.3632321131399741, 0.3632321131399741, 0.3632321131399741, 0.3632321131399741, 0.3632321131399741, 0.3632321131399741], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0  …  0.8333333333333333, 0.9999999999999998, 0.16666666666666652, 0.33333333333333304, 0.5, 0.6666666666666665, 0.8333333333333326, 0.0, 0.16666666666666652, 0.3333333333333326], [0.5, 0.6666666666666667, 0.8333333333333333, 0.0, 0.16666666666666657, 0.33333333333333315, 0.5, 0.6666666666666666, 0.8333333333333331, 0.0  …  0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]))

    Now we have created an interpolator interp which knows about the geometry where to interpolate from and the coordinates there to interpolate to. It is also initialized, meaning it has precomputed the indices to of grid_in that are supposed to be used. It just does not know about the data of grid_in (and neither of grid_out which will be overwritten anyway). We can now do

    interpolate!(grid_out,grid_in,interp)
    +grid_out
    264-element, 11-ring FullClenshawGrid{Float64}:
    + 0.4749027405864188
    + 0.5699961784760366
    + 0.6650896163656542
    + 0.760183054255272
    + 0.6773140822217049
    + 0.5944451101881377
    + 0.5115761381545706
    + 0.4287071661210034
    + 0.3458381940874364
    + 0.2629692220538691
    + ⋮
    + 0.5303342828587586
    + 0.5462760301811335
    + 0.5622177775035083
    + 0.5781595248258832
    + 0.594101272148258
    + 0.6100430194706329
    + 0.6259847667930079
    + 0.6133972614400091
    + 0.6008097560870104

    which is identical to interpolate(grid_out,grid_in) but you can reuse interp for other data. The interpolation can also handle various element types (the interpolator interp does not have to be updated for this either)

    grid_out = zeros(FullClenshawGrid{Float16},6);
    +interpolate!(grid_out,grid_in,interp)
    +grid_out
    264-element, 11-ring FullClenshawGrid{Float16}:
    + 0.4749
    + 0.57
    + 0.665
    + 0.7603
    + 0.6772
    + 0.594
    + 0.5117
    + 0.4287
    + 0.346
    + 0.263
    + ⋮
    + 0.5303
    + 0.5464
    + 0.562
    + 0.578
    + 0.594
    + 0.61
    + 0.626
    + 0.6133
    + 0.6006

    and we have converted data from a HEALPixGrid{Float64} (Float64 is always default if not specified) to a FullClenshawGrid{Float16} including the type conversion Float64-Float16 on the fly. Technically there are three data types and their combinations possible: The input data will come with a type, the output array has an element type and the interpolator has precomputed weights with a given type. Say we want to go from Float16 data on an OctahedralGaussianGrid to Float16 on a FullClenshawGrid but using Float32 precision for the interpolation itself, we would do this by

    grid_in = randn(OctahedralGaussianGrid{Float16},24)
    +grid_out = zeros(FullClenshawGrid{Float16},24)
    +interp = RingGrids.interpolator(Float32,grid_out,grid_in)
    +interpolate!(grid_out,grid_in,interp)
    +grid_out
    4512-element, 47-ring FullClenshawGrid{Float16}:
    + 0.1523
    + 0.1799
    + 0.2075
    + 0.2351
    + 0.2627
    + 0.33
    + 0.3452
    + 0.3606
    + 0.3757
    + 0.321
    + ⋮
    + 0.2922
    + 0.4768
    + 0.598
    + 0.7188
    + 0.84
    + 0.8394
    + 0.719
    + 0.5996
    + 0.4797

    As a last example we want to illustrate a situation where we would always want to interpolate onto 10 coordinates, but their locations may change. In order to avoid recreating an interpolator object we would do (AnvilInterpolator is described in Anvil interpolator)

    npoints = 10    # number of coordinates to interpolate onto
    +interp = AnvilInterpolator(Float32,HEALPixGrid,24,npoints)
    SpeedyWeather.RingGrids.AnvilInterpolator{Float32, HEALPixGrid}(SpeedyWeather.RingGrids.GridGeometry{HEALPixGrid}(24, 47, 1728, [90.0, 86.10076357950555, 82.19700324028634, 78.28414760510762, 74.35752898700072, 70.41233167174659, 66.44353569089876, 62.445854167002665, 58.41366190347208, 54.34091230386124  …  -54.340912303861266, -58.41366190347208, -62.445854167002665, -66.44353569089876, -70.41233167174661, -74.35752898700072, -78.28414760510763, -82.19700324028634, -86.10076357950557, -90.00000000000001], [45.0, 135.0, 225.0, 315.0, 22.5, 67.5, 112.5, 157.5, 202.5, 247.49999999999997  …  112.5, 157.5, 202.5, 247.49999999999997, 292.5, 337.5, 45.0, 135.0, 225.0, 315.0], UnitRange{Int64}[1:4, 5:12, 13:24, 25:40, 41:60, 61:84, 85:112, 113:144, 145:180, 181:220  …  1509:1548, 1549:1584, 1585:1616, 1617:1644, 1645:1668, 1669:1688, 1689:1704, 1705:1716, 1717:1724, 1725:1728], [4, 8, 12, 16, 20, 24, 28, 32, 36, 40  …  40, 36, 32, 28, 24, 20, 16, 12, 8, 4], [45.0, 22.5, 14.999999999999998, 11.25, 9.0, 7.499999999999999, 6.428571428571429, 5.625, 5.0, 4.5  …  4.5, 5.0, 5.625, 6.428571428571429, 7.499999999999999, 9.0, 11.25, 14.999999999999998, 22.5, 45.0]), SpeedyWeather.RingGrids.AnvilLocator{Float32}(10, [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], Float32[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], Float32[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], Float32[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]))

    with the first argument being the number format used during interpolation, then the input grid type, its resolution in terms of nlat_half and then the number of points to interpolate onto. However, interp is not yet initialized as it does not know about the destination coordinates yet. Let's define them, but note that we already decided there's only 10 of them above.

    latds = collect(0.0:5.0:45.0)
    +londs = collect(-10.0:2.0:8.0)

    now we can update the locator inside our interpolator as follows

    RingGrids.update_locator!(interp,latds,londs)

    With data matching the input from above, a nlat_half=24 HEALPixGrid, and allocate 10-element output vector

    output_vec = zeros(10)
    +grid_input = rand(HEALPixGrid,24)

    we can use the interpolator as follows

    interpolate!(output_vec,grid_input,interp)
    10-element Vector{Float64}:
    + 0.8171046909403096
    + 0.4292676696412386
    + 0.7414704019420805
    + 0.6593965639153578
    + 0.4118941223836
    + 0.37779458901286994
    + 0.3616741290540209
    + 0.3973269975130905
    + 0.5760803840887125
    + 0.5432693954676854

    which is the approximately the same as doing it directly without creating an interpolator first and updating its locator

    interpolate(latds,londs,grid_input)
    10-element Vector{Float64}:
    + 0.8171046902509096
    + 0.4292676710534625
    + 0.741470406713566
    + 0.6593965658260028
    + 0.41189412396495584
    + 0.3777945916816148
    + 0.3616741322877952
    + 0.3973269877583334
    + 0.5760803935872991
    + 0.5432693940303727

    but allows for a reuse of the interpolator. Note that the two output arrays are not exactly identical because we manually set our interpolator interp to use Float32 for the interpolation whereas the default is Float64.

    Anvil interpolator

    Currently the only interpolator implemented is a 4-point bilinear interpolator, which schematically works as follows. Anvil interpolation is the bilinear average of a,b,c,d which are values at grid points in an anvil-shaped configuration at location x, which is denoted by Δab,Δcd,Δy, the fraction of distances between a-b,c-d, and ab-cd, respectively. Note that a,c and b,d do not necessarily share the same longitude/x-coordinate.

            0..............1    # fraction of distance Δab between a,b
    +        |<  Δab   >|
    +
    +0^      a -------- o - b    # anvil-shaped average of a,b,c,d at location x
    +.Δy                |
    +.                  |
    +.v                 x 
    +.                  |
    +1         c ------ o ---- d
    +
    +          |<  Δcd >|
    +          0...............1 # fraction of distance Δcd between c,d
    +
    +^ fraction of distance Δy between a-b and c-d.

    This interpolation is chosen as by definition of the ring grids, a and b share the same latitude, so do c and d, but the longitudes can be different for all four, a,b,c,d.

    Function index

    SpeedyWeather.RingGrids.AbstractFullGridType
    abstract type AbstractFullGrid{T} <: AbstractGrid{T} end

    An AbstractFullGrid is a horizontal grid with a constant number of longitude points across latitude rings. Different latitudes can be used, Gaussian latitudes, equi-angle latitdes, or others.

    source
    SpeedyWeather.RingGrids.AbstractGridType
    abstract type AbstractGrid{T} <: AbstractVector{T} end

    The abstract supertype for all spatial grids on the sphere supported by SpeedyWeather.jl. Every new grid has to be of the form

    abstract type AbstractGridClass{T} <: AbstractGrid{T} end
    +struct MyNewGrid{T} <: AbstractGridClass{T}
    +    data::Vector{T}     # all grid points unravelled into a vector
    +    nlat_half::Int      # resolution: latitude rings on one hemisphere (Equator incl)
    +end

    MyNewGrid should belong to a grid class like AbstractFullGrid, AbstractOctahedralGrid or AbstractHEALPixGrid (that already exist but you may introduce a new class of grids) that share certain features such as the number of longitude points per latitude ring and indexing, but may have different latitudes or offset rotations. Each new grid Grid (or grid class) then has to implement the following methods (as an example, see octahedral.jl)

    Fundamental grid properties getnpoints # total number of grid points nlatodd # does the grid have an odd number of latitude rings? getnlat # total number of latitude rings getnlat_half # number of latitude rings on one hemisphere incl Equator

    Indexing getnlonmax # maximum number of longitudes points (at the Equator) getnlonperring # number of longitudes on ring j eachindexinring # a unit range that indexes all longitude points on a ring

    Coordinates getcolat # vector of colatitudes (radians) getcolatlon # vectors of colatitudes, longitudes (both radians)

    Spectral truncation truncationorder # linear, quadratic, cubic = 1,2,3 for grid gettruncation # spectral truncation given a grid resolution get_resolution # grid resolution given a spectral truncation

    Quadrature weights and solid angles getquadratureweights # = sinθ Δθ for grid points on ring j for meridional integration getsolidangle # = sinθ Δθ Δϕ, solid angle of grid points on ring j

    source
    SpeedyWeather.RingGrids.AbstractHEALPixGridType
    abstract type AbstractHEALPixGrid{T} <: AbstractGrid{T} end

    An AbstractHEALPixGrid is a horizontal grid similar to the standard HEALPixGrid, but different latitudes can be used, the default HEALPix latitudes or others.

    source
    SpeedyWeather.RingGrids.AbstractInterpolatorType
    abstract type AbstractInterpolator{NF,G} end

    Supertype for Interpolators. Every Interpolator <: AbstractInterpolator is expected to have two fields,

    • geometry, which describes the grid G to interpolate from
    • locator, which locates the indices on G and their weights to interpolate onto a new grid.

    NF is the number format used to calculate the interpolation, which can be different from the input data and/or the interpolated data on the new grid.

    source
    SpeedyWeather.RingGrids.AbstractLocatorType
    AbstractLocator{NF}

    Supertype of every Locator, which locates the indices on a grid to be used to perform an interpolation. E.g. AnvilLocator uses a 4-point stencil for every new coordinate to interpolate onto. Higher order stencils can be implemented by defining OtherLocator <: AbstractLocactor.

    source
    SpeedyWeather.RingGrids.AbstractOctaHEALPixGridType
    abstract type AbstractOctaHEALPixGrid{T} <: AbstractGrid{T} end

    An AbstractOctaHEALPixGrid is a horizontal grid similar to the standard OctahedralGrid, but the number of points in the ring closest to the Poles starts from 4 instead of 20, and the longitude of the first point in each ring is shifted as in HEALPixGrid. Also, different latitudes can be used.

    source
    SpeedyWeather.RingGrids.AbstractOctahedralGridType
    abstract type AbstractOctahedralGrid{T} <: AbstractGrid{T} end

    An AbstractOctahedralGrid is a horizontal grid with 16+4i longitude points on the latitude ring i starting with i=1 around the pole. Different latitudes can be used, Gaussian latitudes, equi-angle latitdes, or others.

    source
    SpeedyWeather.RingGrids.AnvilLocatorType
    AnvilLocator{NF<:AbstractFloat} <: AbtractLocator

    Contains arrays that locates grid points of a given field to be uses in an interpolation and their weights. This Locator is a 4-point average in an anvil-shaped grid-point arrangement between two latitude rings.

    source
    SpeedyWeather.RingGrids.AnvilLocatorMethod
    L = AnvilLocator(   ::Type{NF},         # number format used for the interpolation
    +                    npoints::Integer    # number of points to interpolate onto
    +                    ) where {NF<:AbstractFloat}

    Zero generator function for the 4-point average AnvilLocator. Use update_locator! to update the grid indices used for interpolation and their weights. The number format NF is the format used for the calculations within the interpolation, the input data and/or output data formats may differ.

    source
    SpeedyWeather.RingGrids.FullClenshawGridType
    G = FullClenshawGrid{T}

    A FullClenshawGrid is a regular latitude-longitude grid with an odd number of nlat equi-spaced latitudes, the central latitude ring is on the Equator. The same nlon longitudes for every latitude ring. The grid points are closer in zonal direction around the poles. The values of all grid points are stored in a vector field data that unravels the data 0 to 360˚, then ring by ring, which are sorted north to south.

    source
    SpeedyWeather.RingGrids.FullGaussianGridType
    G = FullGaussianGrid{T}

    A full Gaussian grid is a regular latitude-longitude grid that uses nlat Gaussian latitudes, and the same nlon longitudes for every latitude ring. The grid points are closer in zonal direction around the poles. The values of all grid points are stored in a vector field v that unravels the data 0 to 360˚, then ring by ring, which are sorted north to south.

    source
    SpeedyWeather.RingGrids.FullHEALPixGridType
    G = FullHEALPixGrid{T}

    A full HEALPix grid is a regular latitude-longitude grid that uses nlat latitudes from the HEALPix grid, and the same nlon longitudes for every latitude ring. The grid points are closer in zonal direction around the poles. The values of all grid points are stored in a vector field v that unravels the data 0 to 360˚, then ring by ring, which are sorted north to south.

    source
    SpeedyWeather.RingGrids.FullOctaHEALPixGridType
    G = FullOctaHEALPixGrid{T}

    A full OctaHEALPix grid is a regular latitude-longitude grid that uses nlat OctaHEALPix latitudes, and the same nlon longitudes for every latitude ring. The grid points are closer in zonal direction around the poles. The values of all grid points are stored in a vector field v that unravels the data 0 to 360˚, then ring by ring, which are sorted north to south.

    source
    SpeedyWeather.RingGrids.GridGeometryMethod
    G = GridGeometry(   Grid::Type{<:AbstractGrid},
    +                    nlat_half::Integer)

    Precomputed arrays describing the geometry of the Grid with resolution nlat_half. Contains latitudes and longitudes of grid points, their ring index j and their unravelled indices ij.

    source
    SpeedyWeather.RingGrids.HEALPixGridType
    H = HEALPixGrid{T}

    A HEALPix grid with 12 faces, each nsidexnside grid points, each covering the same area. The number of latitude rings on one hemisphere (incl Equator) nlat_half is used as resolution parameter. The values of all grid points are stored in a vector field v that unravels the data 0 to 360˚, then ring by ring, which are sorted north to south.

    source
    SpeedyWeather.RingGrids.OctaHEALPixGridType
    H = OctaHEALPixGrid{T}

    A OctaHEALPix grid with 4 base faces, each nlat_halfxnlat_half grid points, each covering the same area. The values of all grid points are stored in a vector field data that unravels the data 0 to 360˚, then ring by ring, which are sorted north to south.

    source
    SpeedyWeather.RingGrids.OctahedralClenshawGridType
    G = OctahedralClenshawGrid{T}

    An Octahedral Clenshaw grid that uses nlat equi-spaced latitudes. Like FullClenshawGrid, the central latitude ring is on the Equator. Like OctahedralGaussianGrid, the number of longitude points per latitude ring decreases towards the poles. Starting with 20 equi-spaced longitude points (starting at 0˚E) on the rings around the poles, each latitude ring towards the equator has consecuitively 4 more points, one for each face of the octahedron. E.g. 20,24,28,32,...nlon-4,nlon,nlon,nlon-4,...,32,28,24,20. The maximum number of longitue points is nlon. The values of all grid points are stored in a vector field v that unravels the data 0 to 360˚, then ring by ring, which are sorted north to south.

    source
    SpeedyWeather.RingGrids.OctahedralGaussianGridType
    G = OctahedralGaussianGrid{T}

    An Octahedral Gaussian grid that uses nlat Gaussian latitudes, but a decreasing number of longitude points per latitude ring towards the poles. Starting with 20 equi-spaced longitude points (starting at 0˚E) on the rings around the poles, each latitude ring towards the equator has consecuitively 4 more points, one for each face of the octahedron. E.g. 20,24,28,32,...nlon-4,nlon,nlon,nlon-4,...,32,28,24,20. The maximum number of longitue points is nlon. The values of all grid points are stored in a vector field v that unravels the data 0 to 360˚, then ring by ring, which are sorted north to south.

    source
    SpeedyWeather.RingGrids.Matrix!Method
    Matrix!(M::AbstractMatrix,
    +        G::OctaHEALPixGrid;
    +        quadrant_rotation=(0,1,2,3),
    +        matrix_quadrant=((2,2),(1,2),(1,1),(2,1)),
    +        )

    Sorts the gridpoints in G into the matrix M without interpolation. Every quadrant of the grid G is rotated as specified in quadrant_rotation, 0 is no rotation, 1 is 90˚ clockwise, 2 is 180˚ etc. Grid quadrants are counted eastward starting from 0˚E. The grid quadrants are moved into the matrix quadrant (i,j) as specified. Defaults are equivalent to centered at 0˚E and a rotation such that the North Pole is at M's midpoint.

    source
    SpeedyWeather.RingGrids.Matrix!Method
    Matrix!(M::AbstractMatrix,
    +        G::OctahedralClenshawGrid;
    +        quadrant_rotation=(0,1,2,3),
    +        matrix_quadrant=((2,2),(1,2),(1,1),(2,1)),
    +        )

    Sorts the gridpoints in G into the matrix M without interpolation. Every quadrant of the grid G is rotated as specified in quadrant_rotation, 0 is no rotation, 1 is 90˚ clockwise, 2 is 180˚ etc. Grid quadrants are counted eastward starting from 0˚E. The grid quadrants are moved into the matrix quadrant (i,j) as specified. Defaults are equivalent to centered at 0˚E and a rotation such that the North Pole is at M's midpoint.

    source
    SpeedyWeather.RingGrids.Matrix!Method
    Matrix!(MGs::Tuple{AbstractMatrix{T},OctaHEALPixGrid}...;kwargs...)

    Like Matrix!(::AbstractMatrix,::OctaHEALPixGrid) but for simultaneous processing of tuples ((M1,G1),(M2,G2),...) with matrices Mi and grids Gi. All matrices and grids have to be of the same size respectively.

    source
    SpeedyWeather.RingGrids.Matrix!Method
    Matrix!(MGs::Tuple{AbstractMatrix{T},OctahedralClenshawGrid}...;kwargs...)

    Like Matrix!(::AbstractMatrix,::OctahedralClenshawGrid) but for simultaneous processing of tuples ((M1,G1),(M2,G2),...) with matrices Mi and grids Gi. All matrices and grids have to be of the same size respectively.

    source
    SpeedyWeather.RingGrids.anvil_averageMethod
    anvil_average(a, b, c, d, Δab, Δcd, Δy) -> Any
    +

    The bilinear average of a,b,c,d which are values at grid points in an anvil-shaped configuration at location x, which is denoted by Δab,Δcd,Δy, the fraction of distances between a-b,c-d, and ab-cd, respectively. Note that a,c and b,d do not necessarily share the same longitude/x-coordinate. See schematic:

                0..............1    # fraction of distance Δab between a,b
    +            |<  Δab   >|
    +
    +    0^      a -------- o - b    # anvil-shaped average of a,b,c,d at location x
    +    .Δy                |
    +    .                  |
    +    .v                 x 
    +    .                  |
    +    1         c ------ o ---- d
    +
    +              |<  Δcd >|
    +              0...............1 # fraction of distance Δcd between c,d

    ^ fraction of distance Δy between a-b and c-d.

    source
    SpeedyWeather.RingGrids.average_on_polesMethod
    average_on_poles(
    +    A::SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},
    +    rings::Vector{<:UnitRange{<:Integer}}
    +) -> Tuple{Any, Any}
    +

    Computes the average at the North and South pole from a given grid A and it's precomputed ring indices rings. The North pole average is an equally weighted average of all grid points on the northern-most ring. Similar for the South pole.

    source
    SpeedyWeather.RingGrids.average_on_polesMethod
    average_on_poles(
    +    A::SpeedyWeather.RingGrids.AbstractGrid{NF<:Integer},
    +    rings::Vector{<:UnitRange{<:Integer}}
    +) -> Tuple{Any, Any}
    +

    Method for A::Abstract{T<:Integer} which rounds the averaged values to return the same number format NF.

    source
    SpeedyWeather.RingGrids.eachringMethod
    eachring(grid::SpeedyWeather.RingGrids.AbstractGrid) -> Any
    +

    Vector{UnitRange} rings to loop over every ring of grid grid and then each grid point per ring. To be used like

    rings = eachring(grid)
    +for ring in rings
    +    for ij in ring
    +        grid[ij]
    source
    SpeedyWeather.RingGrids.eachringMethod
    eachring(
    +    grid1::SpeedyWeather.RingGrids.AbstractGrid,
    +    grids::Grid<:SpeedyWeather.RingGrids.AbstractGrid...
    +) -> Any
    +

    Same as eachring(grid) but performs a bounds check to assess that all grids in grids are of same size.

    source
    SpeedyWeather.RingGrids.get_nlonsMethod
    get_nlons(
    +    Grid::Type{<:SpeedyWeather.RingGrids.AbstractGrid},
    +    nlat_half::Integer;
    +    both_hemispheres
    +) -> Any
    +

    Returns a vector nlons for the number of longitude points per latitude ring, north to south. Provide grid Grid and its resolution parameter nlat_half. For both_hemisphere==false only the northern hemisphere (incl Equator) is returned.

    source
    SpeedyWeather.RingGrids.whichringMethod
    whichring(
    +    ij::Integer,
    +    rings::Vector{UnitRange{Int64}}
    +) -> Int64
    +

    Obtain ring index j from gridpoint ij and Vector{UnitRange} describing rind indices as obtained from eachring(::Grid)

    source
    diff --git a/dev/search/index.html b/dev/search/index.html new file mode 100644 index 000000000..d26cae333 --- /dev/null +++ b/dev/search/index.html @@ -0,0 +1,2 @@ + +Search · SpeedyWeather.jl diff --git a/dev/search_index.js b/dev/search_index.js new file mode 100644 index 000000000..06ae2c750 --- /dev/null +++ b/dev/search_index.js @@ -0,0 +1,3 @@ +var documenterSearchIndex = {"docs": +[{"location":"parameterizations/#parameterizations","page":"Parameterizations","title":"Parameterizations","text":"","category":"section"},{"location":"parameterizations/","page":"Parameterizations","title":"Parameterizations","text":"This page describes the mathematical formulation of the parameterizations used in SpeedyWeather.jl to represent physical processes in the atmosphere. Every section is followed by a brief description of implementation details.","category":"page"},{"location":"parameterizations/#Convection","page":"Parameterizations","title":"Convection","text":"","category":"section"},{"location":"parameterizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"parameterizations/#Large-scale-condensation","page":"Parameterizations","title":"Large-scale condensation","text":"","category":"section"},{"location":"parameterizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"parameterizations/#Clouds","page":"Parameterizations","title":"Clouds","text":"","category":"section"},{"location":"parameterizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"parameterizations/#Short-wave-radiation","page":"Parameterizations","title":"Short-wave radiation","text":"","category":"section"},{"location":"parameterizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"parameterizations/#Long-wave-radiation","page":"Parameterizations","title":"Long-wave radiation","text":"","category":"section"},{"location":"parameterizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"parameterizations/#Surface-fluxes-of-momentum-and-energy","page":"Parameterizations","title":"Surface fluxes of momentum and energy","text":"","category":"section"},{"location":"parameterizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"parameterizations/#Vertical-diffusion","page":"Parameterizations","title":"Vertical diffusion","text":"","category":"section"},{"location":"parameterizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"development/#Development-notes","page":"Development notes","title":"Development notes","text":"","category":"section"},{"location":"development/","page":"Development notes","title":"Development notes","text":"To run tests, from the path of your local clone of the repository do:","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"julia --project=. -e 'import Pkg; Pkg.test()'","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"To install dependencies:","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"julia --project -e 'import Pkg; Pkg.instantiate()`","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"then opening:","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"julia --project","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"you are able to using SpeedyWeather.","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"To generate the docs:","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"julia --project=docs -e 'import Pkg; Pkg.develop(path=\".\"); Pkg.instantiate()'\njulia --project=docs docs/make.jl","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"If the docs are generated successfully, you view them by opening docs/build/index.html in your favorite browser.","category":"page"},{"location":"barotropic/#Barotropic-vorticity-model","page":"Barotropic model","title":"Barotropic vorticity model","text":"","category":"section"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"The barotropic vorticity model describes the evolution of a 2D non-divergent flow with velocity components mathbfu = (uv) through self-advection, forces and dissipation. Due to the non-divergent nature of the flow, it can be described by (the vertical component) of the relative vorticity zeta = nabla times mathbfu.","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"The dynamical core presented here to solve the barotropic vorticity equations largely follows the idealized models with spectral dynamics developed at the Geophysical Fluid Dynamics Laboratory[1]: A barotropic vorticity model[2].","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"Many concepts of the Shallow water model and the Primitive equation model are similar, such that for example horizontal diffusion and the Time integration are only explained here.","category":"page"},{"location":"barotropic/#Barotropic-vorticity-equation","page":"Barotropic model","title":"Barotropic vorticity equation","text":"","category":"section"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"The barotropic vorticity equation is the prognostic equation that describes the time evolution of relative vorticity zeta with advection, Coriolis force, forcing and diffusion in a single global layer on the sphere.","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"fracpartial zetapartial t + nabla cdot (mathbfu(zeta + f)) =\nnabla times mathbfF + (-1)^n+1nunabla^2nzeta","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"We denote timet, velocity vector mathbfu = (u v), Coriolis parameter f, and hyperdiffusion (-1)^n+1 nu nabla^2n zeta (n is the hyperdiffusion order, see Horizontal diffusion). We also include a forcing vector mathbfF = (F_uF_v) which acts on the zonal velocity u and the meridional velocity v and hence its curl nabla times mathbfF is a tendency for relative vorticity zeta.","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"Starting with some relative vorticity zeta, the Laplacian is inverted to obtain the stream function Psi","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"Psi = nabla^-2zeta","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"The zonal velocity u and meridional velocity v are then the (negative) meridional gradient and zonal gradient of Psi","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"beginaligned\nu = -frac1R fracpartial Psipartial theta \nv = frac1Rcos(theta) fracpartial Psipartial phi \nendaligned","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"which is described in Derivatives in spherical coordinates. Using u and v we can then advect the absolute vorticity zeta + f. In order to avoid to calculate both the curl and the divergence of a flux we rewrite the barotropic vorticity equation as","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"fracpartial zetapartial t =\nnabla times (mathbfF + mathbfu_perp(zeta + f)) + (-1)^n+1nunabla^2nzeta","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"with mathbfu_perp = (v-u) the rotated velocity vector, because -nablacdotmathbfu = nabla times mathbfu_perp. This is the form that is solved in the BarotropicModel, as outlined in the following section.","category":"page"},{"location":"barotropic/#Algorithm","page":"Barotropic model","title":"Algorithm","text":"","category":"section"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"We briefly outline the algorithm that SpeedyWeather.jl uses in order to integrate the barotropic vorticity equation. As an initial step","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"0. Start with initial conditions of zeta_lm in spectral space and transform this model state to grid-point space:","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"Invert the Laplacian of vorticity zeta_lm to obtain the stream function Psi_lm in spectral space\nobtain zonal velocity (cos(theta)u)_lm through a Meridional derivative\nobtain meridional velocity (cos(theta)v)_lm through a Zonal derivative\nTransform zonal and meridional velocity (cos(theta)u)_lm, (cos(theta)v)_lm to grid-point space\nUnscale the cos(theta) factor to obtain uv\nTransform zeta_lm to zeta in grid-point space","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"Now loop over","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"Compute the forcing vector mathbfF = (F_uF_v) for u and v\nMultiply uv with zeta+f in grid-point space\nAdd A = F_u + v(zeta + f) and B = F_v - u(zeta + f)\nTransform these vector components to spectral space A_lm, B_lm\nCompute the curl of (AB)_lm in spectral space which is the tendency of zeta_lm\nCompute the horizontal diffusion based on that tendency\nCompute a leapfrog time step as described in Time integration with a Robert-Asselin and Williams filter\nTransform the new spectral state of zeta_lm to grid-point uvzeta as described in 0.\nPossibly do some output\nRepeat from 1.","category":"page"},{"location":"barotropic/#diffusion","page":"Barotropic model","title":"Horizontal diffusion","text":"","category":"section"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"In SpeedyWeather.jl we use hyerdiffusion through an n-th power Laplacian (-1)^n+1nabla^2n (hyper when n1) which can be implemented as a multiplication of the spectral coefficients Psi_lm with (-l(l+1))^nR^-2n (see spectral Laplacian) It is therefore computationally not more expensive to apply hyperdiffusion over diffusion as the (-l(l+1))^nR^-2n can be precomputed. Note the sign change (-1)^n+1 here is such that the dissipative nature of the diffusion operator is retained for n odd and even.","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"In SpeedyWeather.jl the diffusion is applied implicitly. For that, consider a leapfrog scheme with time step Delta t of variable zeta to obtain from time steps i-1 and i, the next time step i+1","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"zeta_i+1 = zeta_i-1 + 2Delta t dzeta","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"with dzeta being some tendency evaluated from zeta_i. Now we want to add a diffusion term (-1)^n+1nu nabla^2nzeta with coefficient nu, which however, is implicitly calculated from zeta_i+1, then","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"zeta_i+1 = zeta_i-1 + 2Delta t (dzeta + (-1)^n+1 nunabla^2nzeta_i+1)","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"As the application of (-1)^n+1nunabla^2n is, for every spectral mode, equivalent to a multiplication of a constant, we can rewrite this to","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"zeta_i+1 = fraczeta_i-1 + 2Delta t dzeta1 - 2Delta (-1)^n+1nunabla^2n","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"and expand the numerator to","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"zeta_i+1 = zeta_i-1 + 2Delta t fracdzeta + (-1)^n+1 nunabla^2nzeta_i-11 - 2Delta t (-1)^n+1nu nabla^2n","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"Hence the diffusion can be applied implicitly by updating the tendency dzeta as","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"dzeta to fracdzeta + (-1)^n+1nunabla^2nzeta_i-11 - 2Delta t nu nabla^2n","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"which only depends on zeta_i-1. Now let D_textexplicit = (-1)^n+1nunabla^2n be the explicit part and D_textimplicit = 1 - (-1)^n+1 2Delta t nunabla^2n the implicit part. Both parts can be precomputed and are D_textimplicit = 1 - 2Delta t nunabla^2n the implicit part. Both parts can be precomputed and are only an element-wise multiplication in spectral space. For every spectral harmonic lm we do","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"dzeta to D_textimplicit^-1(dzeta + D_textexplicitzeta_i-1)","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"Hence 2 multiplications and 1 subtraction with precomputed constants. However, we will normalize the (hyper-)Laplacians as described in the following. This also will take care of the alternating sign such that the diffusion operation is dissipative regardless the power n.","category":"page"},{"location":"barotropic/#Normalization-of-diffusion","page":"Barotropic model","title":"Normalization of diffusion","text":"","category":"section"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"In physics, the Laplace operator nabla^2 is often used to represent diffusion due to viscosity in a fluid or diffusion that needs to be added to retain numerical stability. In both cases, the coefficient is nu of units textm^2texts^-1 and the full operator reads as nu nabla^2 with units (textm^2texts^-1)(textm^-2) = texts^-1. This motivates us to normalize the Laplace operator by a constant of units textm^-2 and the coefficient by its inverse such that it becomes a damping timescale of unit texts^-1. Given the application in spectral space we decide to normalize by the largest eigenvalue -l_textmax(l_textmax+1) such that all entries in the discrete spectral Laplace operator are in 01. This also has the effect that the alternating sign drops out, such that higher wavenumbers are always dampened and not amplified. The normalized coefficient nu^* = l_textmax(l_textmax+1)nu (always positive) is therefore reinterpreted as the (inverse) time scale at which the highest wavenumber is dampened to zero due to diffusion. Together we have ","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"D^textexplicit_lm = -nu^* fracl(l+1)l_textmax(l_textmax+1)","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"and the hyper-Laplacian of power n follows as","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"D^textexplicitn_lm = -nu^* left(fracl(l+1)l_textmax(l_textmax+1)right)^n","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"and the implicit part is accordingly D^textimplicitn_lm = 1 - 2Delta t D^textexplicitn_lm. Note that the diffusion time scale nu^* is then also scaled by the radius, see next section.","category":"page"},{"location":"barotropic/#scaling","page":"Barotropic model","title":"Radius scaling","text":"","category":"section"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"Similar to a non-dimensionalization of the equations, SpeedyWeather.jl scales the barotropic vorticity equation with R^2 to obtain normalized gradient operators as follows. A scaling for vorticity zeta and stream function Psi is used that is","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"tildezeta = zeta R tildePsi = Psi R^-1","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"This is also convenient as vorticity is often 10^-5text s^-1 in the atmosphere, but the streamfunction more like 10^5text m^2text s^-1 and so this scaling brings both closer to 1 with a typical radius of the Earth of 6371km. The inversion of the Laplacians in order to obtain Psi from zeta therefore becomes","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"tildezeta = tildenabla^2 tildePsi","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"where the dimensionless gradients simply omit the scaling with 1R, tildenabla = Rnabla. The Barotropic vorticity equation scaled with R^2 is","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"partial_tildettildezeta + tildenabla cdot (mathbfu(tildezeta + tildef)) =\nnabla times tildemathbfF + (-1)^n+1tildenutildenabla^2ntildezeta","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"with","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"tildet = tR^-1, the scaled time t\nmathbfu = (uv), the velocity vector (no scaling applied)\ntildef = fR, the scaled Coriolis parameter f\ntildemathbfF = RmathbfF, the scaled forcing vector mathbfF\ntildenu = nu^* R, the scaled diffusion coefficient nu^*, which itself is normalized to a damping time scale, see Normalization of diffusion.","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"So scaling with the radius squared means we can use dimensionless operators, however, this comes at the cost of needing to deal with both a time step in seconds as well as a scaled time step in seconds per meter, which can be confusing. Furthermore, some constants like Coriolis or the diffusion coefficient need to be scaled too during initialisation, which may be confusing too because values are not what users expect them to be. SpeedyWeather.jl follows the logic that the scaling to the prognostic variables is only applied just before the time integration and variables are unscaled for output and after the time integration finished. That way, the scaling is hidden as much as possible from the user. In hopefully many other cases it is clearly denoted that a variable or constant is scaled.","category":"page"},{"location":"barotropic/#leapfrog","page":"Barotropic model","title":"Time integration","text":"","category":"section"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"SpeedyWeather.jl is based on the Leapfrog time integration, which, for relative vorticity zeta, is in its simplest form","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"fraczeta_i+1 - zeta_i-12Delta t = RHS(zeta_i)","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"meaning we step from the previous time step i-1, leapfrogging over the current time stepi to the next time step i+1 by evaluating the tendencies on the right-hand side RHS at the current time step i. The time stepping is done in spectral space. Once the right-hand side RHS is evaluated, leapfrogging is a linear operation, meaning that its simply applied to every spectral coefficient zeta_lm as one would evaluate it on every grid point in grid-point models.","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"For the Leapfrog time integration two time steps of the prognostic variables have to be stored, i-1 and i. Time step i is used to evaluate the tendencies which are then added to i-1 in a step that also swaps the indices for the next time step i to i-1 and i+1 to i, so that no additional memory than two time steps have to be stored at the same time.","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"The Leapfrog time integration has to be initialised with an Euler forward step in order to have a second time step i+1 available when starting from i to actually leapfrog over. SpeedyWeather.jl therefore does two initial time steps that are different from the leapfrog time steps that follow and that have been described above.","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"an Euler forward step with Delta t2, then\none leapfrog time step with Delta t, then\nleapfrog with 2 Delta t till the end","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"This is particularly done in a way that after 2. we have t=0 at i-1 and t=Delta t at i available so that 3. can start the leapfrogging without any offset from the intuitive spacing 0Delta t 2Delta t 3Delta t. The following schematic can be useful","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":" time at step i-1 time at step i time step at i+1\nInitial conditions t = 0 \n1: Euler (T) quad t = 0 t=Delta t2 \n2: Leapfrog with Delta t t = 0 (T) quad t = Delta t2 t = Delta t\n3 to n: Leapfrog with 2Delta t t-Delta t (T) qquad quad quad t t+Delta t","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"The time step that is used to evaluate the tendencies is denoted with (T). It is always the time step furthest in time that is available.","category":"page"},{"location":"barotropic/#Robert-Asselin-and-Williams-filter","page":"Barotropic model","title":"Robert-Asselin and Williams filter","text":"","category":"section"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"The standard leapfrog time integration is often combined with a Robert-Asselin filter[Robert66][Asselin72] to dampen a computational mode. The idea is to start with a standard leapfrog step to obtain the next time step i+1 but then to correct the current time step i by applying a filter which dampens the computational mode. The filter looks like a discrete Laplacian in time with a (1 -2 1) stencil, and so, maybe unsurprisingly, is efficient to filter out a \"grid-scale oscillation\" in time, aka the computational mode. Let v be the unfiltered variable and u be the filtered variable, F the right-hand side tendency, then the standard leapfrog step is","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"v_i+1 = u_i-1 + 2Delta tF(v_i)","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"Meaning we start with a filtered variable u at the previous time step i-1, evaluate the tendency F(v_i) based on the current time step i to obtain an unfiltered next time step v_i+1. We then filter the current time step i (which will become i-1 on the next iteration)","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"u_i = v_i + fracnu2(v_i+1 - 2v_i + u_i-1)","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"by adding a discrete Laplacian with coefficient tfracnu2 to it, evaluated from the available filtered and unfiltered time steps centred around i: v_i-1 is not available anymore because it was overwritten by the filtering at the previous iteration, u_i u_i+1 are not filtered yet when applying the Laplacian. The filter parameter nu is typically chosen between 0.01-0.2, with stronger filtering for higher values.","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"Williams[Williams2009] then proposed an additional filter step to regain accuracy that is otherwise lost with a strong Robert-Asselin filter[Amezcua2011][Williams2011]. Now let w be unfiltered, v be once filtered, and u twice filtered, then","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"beginaligned\nw_i+1 = u_i-1 + 2Delta tF(v_i) \nu_i = v_i + fracnualpha2(w_i+1 - 2v_i + u_i-1) \nv_i+1 = w_i+1 - fracnu(1-alpha)2(w_i+1 - 2v_i + u_i-1)\nendaligned","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"with the Williams filter parameter alpha in 051. For alpha=1 we're back with the Robert-Asselin filter (the first two lines).","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"The Laplacian in the parentheses is often called a displacement, meaning that the filtered value is displaced (or corrected) in the direction of the two surrounding time steps. The Williams filter now also applies the same displacement, but in the opposite direction to the next time step i+1 as a correction step (line 3 above) for a once-filtered value v_i+1 which will then be twice-filtered by the Robert-Asselin filter on the next iteration. For more details see the referenced publications.","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"The initial Euler step (see Time integration, Table) is not filtered. Both the the Robert-Asselin and Williams filter are then switched on for all following leapfrog time steps.","category":"page"},{"location":"barotropic/#References","page":"Barotropic model","title":"References","text":"","category":"section"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"[1]: Geophysical Fluid Dynamics Laboratory, Idealized models with spectral dynamics","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"[2]: Geophysical Fluid Dynamics Laboratory, The barotropic vorticity equation.","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"[Robert66]: Robert, André. “The Integration of a Low Order Spectral Form of the Primitive Meteorological Equations.” Journal of the Meteorological Society of Japan 44 (1966): 237-245.","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"[Asselin72]: ASSELIN, R., 1972: Frequency Filter for Time Integrations. Mon. Wea. Rev., 100, 487–490, doi:10.1175/1520-0493(1972)100<0487:FFFTI>2.3.CO;2","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"[Williams2009]: Williams, P. D., 2009: A Proposed Modification to the Robert–Asselin Time Filter. Mon. Wea. Rev., 137, 2538–2546, 10.1175/2009MWR2724.1.","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"[Amezcua2011]: Amezcua, J., E. Kalnay, and P. D. Williams, 2011: The Effects of the RAW Filter on the Climatology and Forecast Skill of the SPEEDY Model. Mon. Wea. Rev., 139, 608–619, doi:10.1175/2010MWR3530.1. ","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"[Williams2011]: Williams, P. D., 2011: The RAW Filter: An Improvement to the Robert–Asselin Filter in Semi-Implicit Integrations. Mon. Wea. Rev., 139, 1996–2007, doi:10.1175/2010MWR3601.1. ","category":"page"},{"location":"installation/#Installation","page":"Installation","title":"Installation","text":"","category":"section"},{"location":"installation/","page":"Installation","title":"Installation","text":"SpeedyWeather.jl is registered in the Julia Registry. In most cases just open the Julia REPL and type","category":"page"},{"location":"installation/","page":"Installation","title":"Installation","text":"julia> using Pkg\njulia> Pkg.add(\"SpeedyWeather\")","category":"page"},{"location":"installation/","page":"Installation","title":"Installation","text":"or, equivalently, (] opens the package manager)","category":"page"},{"location":"installation/","page":"Installation","title":"Installation","text":"julia>] add SpeedyWeather","category":"page"},{"location":"installation/","page":"Installation","title":"Installation","text":"which will automatically install the latest release and all necessary dependencies. If you run into any troubles please raise an issue.","category":"page"},{"location":"installation/","page":"Installation","title":"Installation","text":"However, you may want to make use of the latest features, then install directly from the main branch with","category":"page"},{"location":"installation/","page":"Installation","title":"Installation","text":"julia> Pkg.add(url=\"https://github.com/SpeedyWeather/SpeedyWeather.jl\",rev=\"main\")","category":"page"},{"location":"installation/","page":"Installation","title":"Installation","text":"other branches than main can be similarly installed. You can also type, equivalently,","category":"page"},{"location":"installation/","page":"Installation","title":"Installation","text":"julia>] add https://github.com/SpeedyWeather/SpeedyWeather.jl#main","category":"page"},{"location":"installation/#Compatibility-with-Julia-versions","page":"Installation","title":"Compatibility with Julia versions","text":"","category":"section"},{"location":"installation/","page":"Installation","title":"Installation","text":"SpeedyWeather.jl usually lives on the latest minor release and/or its predecessor. At the moment (June 2023) this means ","category":"page"},{"location":"installation/","page":"Installation","title":"Installation","text":"Julia v1.8\nJulia v1.9","category":"page"},{"location":"installation/","page":"Installation","title":"Installation","text":"are supported, but we dropped the support of earlier versions.","category":"page"},{"location":"output/#NetCDF-output","page":"NetCDF output","title":"NetCDF output","text":"","category":"section"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"SpeedyWeather.jl uses NetCDF to output the data of a simulation. The following describes the details of this and how to change the way in which the NetCDF output is written. There are many options to this available.","category":"page"},{"location":"output/#Accessing-the-NetCDF-output-writer","page":"NetCDF output","title":"Accessing the NetCDF output writer","text":"","category":"section"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"The output writer is a component of every Model, i.e. BarotropicModel, ShallowWaterModel, PrimitiveDryModel and PrimitiveWetModel, hence a non-default output writer can be passed on as a keyword argument to the model constructor","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"julia> using SpeedyWeather\njulia> spectral_grid = SpectralGrid()\njulia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry)\njulia> model = PrimitiveDryModel(;spectral_grid, output=my_output_writer)","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"So after we have defined the grid through the SpectralGrid object we can use and change the implemented OutputWriter by passing on the following arguments","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"julia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry, kwargs...)","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"the spectral_grid has to be the first argument then the model type (Barotropic, ShallowWater, PrimitiveDry, PrimitiveWet) which helps the output writer to make default choices on which variables to output. However, we can also pass on further keyword arguments. So let's start with an example.","category":"page"},{"location":"output/#Example-1:-NetCDF-output-every-hour","page":"NetCDF output","title":"Example 1: NetCDF output every hour","text":"","category":"section"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"If we want to increase the frequency of the output we can choose output_dt (default =6 in hours) like so","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"julia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry, output_dt=1)\njulia> model = PrimitiveDryModel(;spectral_grid, output=my_output_writer)","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"which will now output every hour. It is important to pass on the new output writer my_output_writer to the model constructor, otherwise it will not be part of your model and the default is used instead. Note that output_dt has to be understood as the minimum frequency or maximum output time step. Example, we run the model at a resolution of T85 and the time step is going to be 670s","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"julia> spectral_grid = SpectralGrid(trunc=85)\njulia> time_stepper = Leapfrog(spectral_grid)\nLeapfrog{Float32}:\n...\n Δt_sec::Int64 = 670\n...","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"This means that after 32 time steps 5h 57min and 20s will have passed where output will happen as the next time step would be >6h. The time axis of the NetCDF output will look like","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"julia> using NCDatasets\njulia> ds = NCDataset(\"run_0001/output.nc\");\njulia> ds[\"time\"][:]\n5-element Vector{Dates.DateTime}:\n 2000-01-01T00:00:00\n 2000-01-01T05:57:20\n 2000-01-01T11:54:40\n 2000-01-01T17:52:00\n 2000-01-01T23:49:20\n\njulia> diff(ds[\"time\"][:])\n4-element Vector{Dates.Millisecond}:\n 21440000 milliseconds\n 21440000 milliseconds\n 21440000 milliseconds\n 21440000 milliseconds","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"This is so that we don't interpolate in time during output to hit exactly every 6 hours, but at the same time have a constant spacing in time between output time steps.","category":"page"},{"location":"output/#Example-2:-Output-onto-a-higher/lower-resolution-grid","page":"NetCDF output","title":"Example 2: Output onto a higher/lower resolution grid","text":"","category":"section"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"Say we want to run the model at a given horizontal resolution but want to output on another resolution, the OutputWriter takes as argument output_Grid<:AbstractFullGrid and nlat_half::Int. So for example output_Grid=FullClenshawGrid and nlat_half=48 will always interpolate onto a regular 192x95 longitude-latitude grid of 1.875˚ resolution, regardless the grid and resolution used for the model integration.","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"julia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry, output_Grid=FullClenshawGrid, nlat_half=48)","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"Note that by default the output is on the corresponding full of the grid used in the dynamical core so that interpolation only happens at most in the zonal direction as they share the location of the latitude rings. You can check this by","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"julia> RingGrids.full_grid(OctahedralGaussianGrid)\nFullGaussianGrid","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"So the corresponding full grid of an OctahedralGaussianGrid is the FullGaussiangrid and the same resolution nlat_half is chosen by default in the output writer (which you can change though as shown above). Overview of the corresponding full grids","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"Grid Corresponding full grid\nFullGaussianGrid FullGaussianGrid\nFullClenshawGrid FullClenshawGrid\nOctahadralGaussianGrid FullGaussianGrid\nOctahedralClensawhGrid FullClenshawGrid\nHEALPixGrid FullHEALPixGrid\nOctaHEALPixGrid FullOctaHEALPixGrid","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"The grids FullHEALPixGrid, FullOctaHEALPixGrid share the same latitude rings as their reduced grids, but have always as many longitude points as they are at most around the equator. These grids are not tested in the dynamical core (but you may use them experimentally) and mostly designed for output purposes.","category":"page"},{"location":"output/#Example-3:-Changing-the-output-path-or-identification","page":"NetCDF output","title":"Example 3: Changing the output path or identification","text":"","category":"section"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"That's easy by passing on path=\"/my/favourite/path/\" and the folder run_* with * the identification of the run (that's the id keyword, which can be manually set but is also automatically determined as a number counting up depending on which folders already exist) will be created within.","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"julia> path = pwd()\n\"/Users/milan\"\njulia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry, path=path)","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"This folder must already exist. If you want to give your run a name/identification you can pass on id","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"julia> my_output_writer = OutputWriter(spectral_grid,PrimitiveDry,id=\"diffusion_test\");","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"which will be used instead of a 4 digit number like 0001, 0002 which is automatically determined if id is not provided. You will see the id of the run in the progress bar","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"Weather is speedy: run diffusion_test 100%|███████████████████████| Time: 0:00:12 (19.20 years/day)","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"and the run folder, here run_diffusion_test, is also named accordingly","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"shell> ls\n...\nrun_diffusion_test\n...","category":"page"},{"location":"output/#Further-options","page":"NetCDF output","title":"Further options","text":"","category":"section"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"Further options are described in the OutputWriter docstring, (also accessible via julia>?OutputWriter for example). Note that some fields are actual options, but others are derived from the options you provided or are arrays/objects the output writer needs, but shouldn't be passed on by the user. The actual options are declared as [OPTION] in the following","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"OutputWriter","category":"page"},{"location":"functions/#Function-and-type-index","page":"Function and type index","title":"Function and type index","text":"","category":"section"},{"location":"functions/","page":"Function and type index","title":"Function and type index","text":"Modules = [SpeedyWeather]","category":"page"},{"location":"functions/#SpeedyWeather.AbstractDevice","page":"Function and type index","title":"SpeedyWeather.AbstractDevice","text":"abstract type AbstractDevice\n\nSupertype of all devices SpeedyWeather.jl can ran on\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.BarotropicModel","page":"Function and type index","title":"SpeedyWeather.BarotropicModel","text":"The BarotropicModel struct holds all other structs that contain precalculated constants, whether scalars or arrays that do not change throughout model integration.\n\nspectral_grid::SpectralGrid: dictates resolution for many other components\nplanet::SpeedyWeather.AbstractPlanet: contains physical and orbital characteristics\natmosphere::SpeedyWeather.AbstractAtmosphere\nforcing::SpeedyWeather.AbstractForcing{NF} where NF<:AbstractFloat\ninitial_conditions::SpeedyWeather.InitialConditions\ntime_stepping::SpeedyWeather.TimeStepper{NF} where NF<:AbstractFloat\nspectral_transform::SpectralTransform\nhorizontal_diffusion::SpeedyWeather.HorizontalDiffusion{NF} where NF<:AbstractFloat\nimplicit::SpeedyWeather.AbstractImplicit{NF} where NF<:AbstractFloat\ngeometry::Geometry\nconstants::DynamicsConstants\ndevice_setup::SpeedyWeather.DeviceSetup\noutput::SpeedyWeather.AbstractOutputWriter\nfeedback::SpeedyWeather.AbstractFeedback\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.CPUDevice","page":"Function and type index","title":"SpeedyWeather.CPUDevice","text":"CPUDevice <: AbstractDevice\n\nIndicates that SpeedyWeather.jl runs on a single CPU \n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.Clock","page":"Function and type index","title":"SpeedyWeather.Clock","text":"Clock struct keeps track of the model time, how many days to integrate for and how many time steps this takes\n\ntime::Dates.DateTime: current model time\nn_days::Float64: number of days to integrate for, set in run!(::Simulation)\nn_timesteps::Int64: number of time steps to integrate for, set in initialize!(::Clock,::TimeStepper)\n\n.\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.ColumnVariables","page":"Function and type index","title":"SpeedyWeather.ColumnVariables","text":"Mutable struct that contains all prognostic (copies thereof) and diagnostic variables in a single column needed to evaluate the physical parametrizations. For now the struct is mutable as we will reuse the struct to iterate over horizontal grid points. Every column vector has nlev entries, from [1] at the top to [end] at the lowermost model level at the planetary boundary layer.\n\nnlev::Int64\nnband::Int64\nn_stratosphere_levels::Int64\njring::Int64\nlond::AbstractFloat\nlatd::AbstractFloat\nu::Vector{NF} where NF<:AbstractFloat\nv::Vector{NF} where NF<:AbstractFloat\ntemp::Vector{NF} where NF<:AbstractFloat\nhumid::Vector{NF} where NF<:AbstractFloat\nln_pres::Vector{NF} where NF<:AbstractFloat\npres::Vector{NF} where NF<:AbstractFloat\nu_tend::Vector{NF} where NF<:AbstractFloat\nv_tend::Vector{NF} where NF<:AbstractFloat\ntemp_tend::Vector{NF} where NF<:AbstractFloat\nhumid_tend::Vector{NF} where NF<:AbstractFloat\ngeopot::Vector{NF} where NF<:AbstractFloat\nflux_u_upward::Vector{NF} where NF<:AbstractFloat\nflux_u_downward::Vector{NF} where NF<:AbstractFloat\nflux_v_upward::Vector{NF} where NF<:AbstractFloat\nflux_v_downward::Vector{NF} where NF<:AbstractFloat\nflux_temp_upward::Vector{NF} where NF<:AbstractFloat\nflux_temp_downward::Vector{NF} where NF<:AbstractFloat\nflux_humid_upward::Vector{NF} where NF<:AbstractFloat\nflux_humid_downward::Vector{NF} where NF<:AbstractFloat\nsat_humid::Vector{NF} where NF<:AbstractFloat\nsat_vap_pres::Vector{NF} where NF<:AbstractFloat\ndry_static_energy::Vector{NF} where NF<:AbstractFloat\nmoist_static_energy::Vector{NF} where NF<:AbstractFloat\nhumid_half::Vector{NF} where NF<:AbstractFloat\nsat_humid_half::Vector{NF} where NF<:AbstractFloat\nsat_moist_static_energy::Vector{NF} where NF<:AbstractFloat\ndry_static_energy_half::Vector{NF} where NF<:AbstractFloat\nsat_moist_static_energy_half::Vector{NF} where NF<:AbstractFloat\nconditional_instability::Bool\nactivate_convection::Bool\ncloud_top::Int64\nexcess_humidity::AbstractFloat\ncloud_base_mass_flux::AbstractFloat\nprecip_convection::AbstractFloat\nnet_flux_humid::Vector{NF} where NF<:AbstractFloat\nnet_flux_dry_static_energy::Vector{NF} where NF<:AbstractFloat\nentrainment_profile::Vector{NF} where NF<:AbstractFloat\nprecip_large_scale::AbstractFloat\nwvi::Matrix{NF} where NF<:AbstractFloat\ntau2::Matrix{NF} where NF<:AbstractFloat\ndfabs::Vector{NF} where NF<:AbstractFloat\nfsfcd::AbstractFloat\nst4a::Matrix{NF} where NF<:AbstractFloat\nflux::Vector{NF} where NF<:AbstractFloat\nfsfcu::AbstractFloat\nts::AbstractFloat\nfsfc::AbstractFloat\nftop::AbstractFloat\nstratc::Vector{NF} where NF<:AbstractFloat\ntyear::AbstractFloat\ncsol::AbstractFloat\ntopsr::AbstractFloat\nfsol::AbstractFloat\nozupp::AbstractFloat\nozone::AbstractFloat\nzenit::AbstractFloat\nstratz::AbstractFloat\nalbsfc::AbstractFloat\nssrd::AbstractFloat\nssr::AbstractFloat\ntsr::AbstractFloat\ntend_t_rsw::Vector{NF} where NF<:AbstractFloat\nnorm_pres::AbstractFloat\nicltop::Int64\ncloudc::AbstractFloat\nclstr::AbstractFloat\nqcloud::AbstractFloat\nfmask::AbstractFloat\nrel_hum::Vector{NF} where NF<:AbstractFloat\ngrad_dry_static_energy::AbstractFloat\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.DeviceSetup","page":"Function and type index","title":"SpeedyWeather.DeviceSetup","text":"DeviceSetup{S<:AbstractDevice}\n\nHolds information about the device the model is running on and workgroup size. \n\ndevice::AbstractDevice: Device the model is running on \ndevice_KA::KernelAbstractions.Device: Device for use with KernelAbstractions\nn: workgroup size \n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.DiagnosticVariables","page":"Function and type index","title":"SpeedyWeather.DiagnosticVariables","text":"DiagnosticVariables{Grid<:AbstractGrid,NF<:AbstractFloat}\n\nStruct holding the diagnostic variables.\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.DynamicsConstants","page":"Function and type index","title":"SpeedyWeather.DynamicsConstants","text":"Struct holding constants needed at runtime for the dynamical core in number format NF.\n\nradius::AbstractFloat: Radius of Planet [m]\nrotation::AbstractFloat: Angular frequency of Planet's rotation [1/s]\ngravity::AbstractFloat: Gravitational acceleration [m/s^2]\nlayer_thickness::AbstractFloat: shallow water layer thickness [m]\nR_dry::AbstractFloat: specific gas constant for dry air [J/kg/K]\nR_vapour::AbstractFloat: specific gas constant for water vapour [J/kg/K]\nμ_virt_temp::AbstractFloat: used in Tv = T(1+μq) for virt temp Tv(T,q) calculation\ncₚ::AbstractFloat: specific heat at constant pressure [J/K/kg]\nκ::AbstractFloat: = R_dry/cₚ, gas const for air over heat capacity\nwater_density::AbstractFloat: water density [kg/m³]\nf_coriolis::Vector{NF} where NF<:AbstractFloat: coriolis frequency 1/s = 2Ωsin(lat)radius\nσ_lnp_A::Vector{NF} where NF<:AbstractFloat: σ-related factor A needed for adiabatic terms\nσ_lnp_B::Vector{NF} where NF<:AbstractFloat: σ-related factor B needed for adiabatic terms\nΔp_geopot_half::Vector{NF} where NF<:AbstractFloat: = R*(ln(pk+1) - ln(pk+1/2)), for half level geopotential\nΔp_geopot_full::Vector{NF} where NF<:AbstractFloat: = R*(ln(pk+1/2) - ln(pk)), for full level geopotential\ntemp_ref_profile::Vector{NF} where NF<:AbstractFloat: reference temperature profile\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.DynamicsConstants-Tuple{SpectralGrid, SpeedyWeather.AbstractPlanet, SpeedyWeather.AbstractAtmosphere, Geometry}","page":"Function and type index","title":"SpeedyWeather.DynamicsConstants","text":"DynamicsConstants(\n spectral_grid::SpectralGrid,\n planet::SpeedyWeather.AbstractPlanet,\n atmosphere::SpeedyWeather.AbstractAtmosphere,\n geometry::Geometry\n) -> Any\n\n\nGenerator function for a DynamicsConstants struct.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.DynamicsVariables","page":"Function and type index","title":"SpeedyWeather.DynamicsVariables","text":"DynamicsVariables{Grid<:AbstractGrid,NF<:AbstractFloat}\n\nStruct holding intermediate quantities for the dynamics of a given layer.\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.Earth","page":"Function and type index","title":"SpeedyWeather.Earth","text":"Create a struct Earth<:AbstractPlanet, with the following physical/orbital characteristics. Note that radius is not part of it as this should be chosen in SpectralGrid. Keyword arguments are\n\nrotation::Float64: angular frequency of Earth's rotation [rad/s]\ngravity::Float64: gravitational acceleration [m/s^2]\ndaily_cycle::Bool: switch on/off daily cycle\nlength_of_day::Float64: [hrs] in a day\nseasonal_cycle::Bool: switch on/off seasonal cycle\nlength_of_year::Float64: [days] in a year\nequinox::Dates.DateTime: time of spring equinox (year irrelevant)\naxial_tilt::Float64: angle [˚] rotation axis tilt wrt to orbit\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.EarthAtmosphere","page":"Function and type index","title":"SpeedyWeather.EarthAtmosphere","text":"Create a struct EarthAtmosphere<:AbstractPlanet, with the following physical/chemical characteristics. Note that radius is not part of it as this should be chosen in SpectralGrid. Keyword arguments are\n\nmol_mass_dry_air::Float64: molar mass of dry air [g/mol]\nmol_mass_vapour::Float64: molar mass of water vapour [g/mol]\ncₚ::Float64: specific heat at constant pressure [J/K/kg]\nR_gas::Float64: universal gas constant [J/K/mol]\nR_dry::Float64: specific gas constant for dry air [J/kg/K]\nR_vapour::Float64: specific gas constant for water vapour [J/kg/K]\nwater_density::Float64: water density [kg/m³]\nlatent_heat_condensation::Float64: latent heat of condensation [J/g] for consistency with specific humidity [g/Kg], also called alhc\nlatent_heat_sublimation::Float64: latent heat of sublimation [J/g], also called alhs\nstefan_boltzmann::Float64: stefan-Boltzmann constant [W/m²/K⁴]\nlapse_rate::Float64: moist adiabatic temperature lapse rate -dTdz [K/km]\ntemp_ref::Float64: absolute temperature at surface z=0 [K]\ntemp_top::Float64: absolute temperature in stratosphere [K]\nΔT_stratosphere::Float64: for stratospheric lapse rate [K] after Jablonowski\nσ_tropopause::Float64: start of the stratosphere in sigma coordinates\nσ_boundary_layer::Float64: top of the planetary boundary layer in sigma coordinates\nscale_height::Float64: scale height for pressure [km]\npres_ref::Float64: surface pressure [hPa]\nscale_height_humid::Float64: scale height for specific humidity [km]\nrelhumid_ref::Float64: relative humidity of near-surface air [1]\nwater_pres_ref::Float64: saturation water vapour pressure [Pa]\nlayer_thickness::Float64: layer thickness for the shallow water model [km]\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.EarthOrography","page":"Function and type index","title":"SpeedyWeather.EarthOrography","text":"Earth's orography read from file, with smoothing.\n\npath::String: path to the folder containing the orography file, pkg path default\nfile::String: filename of orography\nfile_Grid::Type{<:SpeedyWeather.RingGrids.AbstractGrid}: Grid the orography file comes on\nscale::Float64: scale orography by a factor\nsmoothing::Bool: smooth the orography field?\nsmoothing_power::Float64: power of Laplacian for smoothing\nsmoothing_strength::Float64: highest degree l is multiplied by\nsmoothing_truncation::Int64: resolution of orography in spectral trunc\norography::SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat: height [m] on grid-point space.\ngeopot_surf::LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat: surface geopotential, height*gravity [m²/s²]\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.EarthOrography-Tuple{SpectralGrid}","page":"Function and type index","title":"SpeedyWeather.EarthOrography","text":"EarthOrography(\n spectral_grid::SpectralGrid;\n kwargs...\n) -> Any\n\n\nGenerator function pulling the resolution information from spectral_grid.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.Feedback","page":"Function and type index","title":"SpeedyWeather.Feedback","text":"Feedback() -> Feedback\nFeedback(verbose::Bool) -> Feedback\nFeedback(verbose::Bool, debug::Bool) -> Feedback\n\n\nGenerator function for a Feedback struct.\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.Feedback-2","page":"Function and type index","title":"SpeedyWeather.Feedback","text":"Feedback struct that contains options and object for command-line feedback like the progress meter.\n\nverbose::Bool: print feedback to REPL?\ndebug::Bool: check for NaRs in the prognostic variables\noutput::Bool: write a progress.txt file? State synced with OutputWriter.output\nid::Union{Int64, String}: identification of run, taken from ::OutputWriter\nrun_path::String: path to run folder, taken from ::OutputWriter\nprogress_meter::ProgressMeter.Progress: struct containing everything progress related\nprogress_txt::Union{Nothing, IOStream}: txt is a Nothing in case of no output\nnars_detected::Bool: did Infs/NaNs occur in the simulation?\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.GPUDevice","page":"Function and type index","title":"SpeedyWeather.GPUDevice","text":"GPUDevice <: AbstractDevice\n\nIndicates that SpeedyWeather.jl runs on a single GPU\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.GenLogisticCoefs","page":"Function and type index","title":"SpeedyWeather.GenLogisticCoefs","text":"Coefficients of the generalised logistic function to describe the vertical coordinate. Default coefficients A,K,C,Q,B,M,ν are fitted to the old L31 configuration at ECMWF.\n\nFollowing the notation of https://en.wikipedia.org/wiki/Generalisedlogisticfunction (Dec 15 2021).\n\nChange default parameters for more/fewer levels in the stratosphere vs troposphere vs boundary layer.\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.Geometry","page":"Function and type index","title":"SpeedyWeather.Geometry","text":"Construct Geometry struct containing parameters and arrays describing an iso-latitude grid <:AbstractGrid and the vertical levels. Pass on SpectralGrid to calculate the following fields\n\nspectral_grid::SpectralGrid: SpectralGrid that defines spectral and grid resolution\nGrid::Type{<:SpeedyWeather.RingGrids.AbstractGrid}: grid of the dynamical core\nnlat_half::Int64: resolution parameter nlat_half of Grid, # of latitudes on one hemisphere (incl Equator)\nnlon_max::Int64: maximum number of longitudes (at/around Equator)\nnlon::Int64: =nlon_max, same (used for compatibility), TODO: still needed?\nnlat::Int64: number of latitude rings\nnlev::Int64: number of vertical levels\nnpoints::Int64: total number of grid points\nradius::AbstractFloat: Planet's radius [m]\nlatd::Vector{Float64}: array of latitudes in degrees (90˚...-90˚)\nlond::Vector{Float64}: array of longitudes in degrees (0...360˚), empty for non-full grids\nlonds::Vector{NF} where NF<:AbstractFloat: longitude (-180˚...180˚) for each grid point in ring order\nlatds::Vector{NF} where NF<:AbstractFloat: latitude (-90˚...˚90) for each grid point in ring order\nsinlat::Vector{NF} where NF<:AbstractFloat: sin of latitudes\ncoslat::Vector{NF} where NF<:AbstractFloat: cos of latitudes\ncoslat⁻¹::Vector{NF} where NF<:AbstractFloat: = 1/cos(lat)\ncoslat²::Vector{NF} where NF<:AbstractFloat: = cos²(lat)\ncoslat⁻²::Vector{NF} where NF<:AbstractFloat: # = 1/cos²(lat)\nσ_levels_half::Vector{NF} where NF<:AbstractFloat: σ at half levels, σ_k+1/2\nσ_levels_full::Vector{NF} where NF<:AbstractFloat: σ at full levels, σₖ\nσ_levels_thick::Vector{NF} where NF<:AbstractFloat: σ level thicknesses, σₖ₊₁ - σₖ\nln_σ_levels_full::Vector{NF} where NF<:AbstractFloat: log of σ at full levels, include surface (σ=1) as last element\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.Geometry-Tuple{SpectralGrid}","page":"Function and type index","title":"SpeedyWeather.Geometry","text":"Geometry(spectral_grid::SpectralGrid) -> Any\n\n\nGenerator function for Geometry struct based on spectral_grid.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.GridVariables","page":"Function and type index","title":"SpeedyWeather.GridVariables","text":"GridVariables{NF<:AbstractFloat}\n\nStruct holding the prognostic spectral variables of a given layer in grid point space.\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.HeldSuarez","page":"Function and type index","title":"SpeedyWeather.HeldSuarez","text":"Struct that defines the temperature relaxation from Held and Suarez, 1996 BAMS\n\nnlat::Int64: number of latitude rings\nnlev::Int64: number of vertical levels\nσb::Float64: sigma coordinate below which faster surface relaxation is applied\nrelax_time_slow::Float64: time scale [hrs] for slow global relaxation\nrelax_time_fast::Float64: time scale [hrs] for faster tropical surface relaxation\nTmin::Float64: minimum equilibrium temperature [K]\nTmax::Float64: maximum equilibrium temperature [K]\nΔTy::Float64: meridional temperature gradient [K]\nΔθz::Float64: vertical temperature gradient [K]\nκ::Base.RefValue{NF} where NF<:AbstractFloat\np₀::Base.RefValue{NF} where NF<:AbstractFloat\ntemp_relax_freq::Matrix{NF} where NF<:AbstractFloat\ntemp_equil_a::Vector{NF} where NF<:AbstractFloat\ntemp_equil_b::Vector{NF} where NF<:AbstractFloat\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.HeldSuarez-Tuple{SpectralGrid}","page":"Function and type index","title":"SpeedyWeather.HeldSuarez","text":"HeldSuarez(SG::SpectralGrid; kwargs...) -> Any\n\n\ncreate a HeldSuarez temperature relaxation with arrays allocated given spectral_grid\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.HyperDiffusion","page":"Function and type index","title":"SpeedyWeather.HyperDiffusion","text":"Struct for horizontal hyper diffusion of vor, div, temp; implicitly in spectral space with a power of the Laplacian (default=4) and the strength controlled by time_scale. Options exist to scale the diffusion by resolution, and adaptive depending on the current vorticity maximum to increase diffusion in active layers. Furthermore the power can be decreased above the tapering_σ to power_stratosphere (default 2). For Barotropic, ShallowWater, the default non-adaptive constant-time scale hyper diffusion is used. Options are\n\ntrunc::Int64: spectral resolution\nnlev::Int64: number of vertical levels\npower::Float64: power of Laplacian\ntime_scale::Float64: diffusion time scales [hrs]\nresolution_scaling::Float64: stronger diffusion with resolution? 0: constant with trunc, 1: (inverse) linear with trunc, etc\npower_stratosphere::Float64: different power for tropopause/stratosphere\ntapering_σ::Float64: linearly scale towards power_stratosphere above this σ\nadaptive::Bool: adaptive = higher diffusion for layers with higher vorticity levels.\nvor_max::Float64: above this (absolute) vorticity level [1/s], diffusion is increased\nadaptive_strength::Float64: increase strength above vor_max by this factor times max(abs(vor))/vor_max\n∇²ⁿ_2D::Vector\n∇²ⁿ_2D_implicit::Vector\n∇²ⁿ::Array{Vector{NF}, 1} where NF\n∇²ⁿ_implicit::Array{Vector{NF}, 1} where NF\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.HyperDiffusion-Tuple{SpectralGrid}","page":"Function and type index","title":"SpeedyWeather.HyperDiffusion","text":"HyperDiffusion(\n spectral_grid::SpectralGrid;\n kwargs...\n) -> Any\n\n\nGenerator function based on the resolutin in spectral_grid. Passes on keyword arguments.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.ImplicitPrimitiveEq","page":"Function and type index","title":"SpeedyWeather.ImplicitPrimitiveEq","text":"Struct that holds various precomputed arrays for the semi-implicit correction to prevent gravity waves from amplifying in the primitive equation model.\n\ntrunc::Int64: spectral resolution\nnlev::Int64: number of vertical levels\nα::Float64: time-step coefficient: 0=explicit, 0.5=centred implicit, 1=backward implicit\ntemp_profile::Vector{NF} where NF<:AbstractFloat: vertical temperature profile, obtained from diagn\nξ::Base.RefValue{NF} where NF<:AbstractFloat: time step 2α*Δt packed in RefValue for mutability\nR::Matrix{NF} where NF<:AbstractFloat: divergence: operator for the geopotential calculation\nU::Vector{NF} where NF<:AbstractFloat: divergence: the -RdTₖ∇² term excl the eigenvalues from ∇² for divergence\nL::Matrix{NF} where NF<:AbstractFloat: temperature: operator for the TₖD + κTₖDlnps/Dt term\nW::Vector{NF} where NF<:AbstractFloat: pressure: vertical averaging of the -D̄ term in the log surface pres equation\nL0::Vector{NF} where NF<:AbstractFloat: components to construct L, 1/ 2Δσ\nL1::Matrix{NF} where NF<:AbstractFloat: vert advection term in the temperature equation (below+above)\nL2::Vector{NF} where NF<:AbstractFloat: factor in front of the divsumabove term\nL3::Matrix{NF} where NF<:AbstractFloat: sumabove operator itself\nL4::Vector{NF} where NF<:AbstractFloat: factor in front of div term in Dlnps/Dt\nS::Matrix{NF} where NF<:AbstractFloat: for every l the matrix to be inverted\nS⁻¹::Array{NF, 3} where NF<:AbstractFloat: combined inverted operator: S = 1 - ξ²(RL + UW)\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.ImplicitPrimitiveEq-Tuple{SpectralGrid, Vararg{Any}}","page":"Function and type index","title":"SpeedyWeather.ImplicitPrimitiveEq","text":"ImplicitPrimitiveEq(\n spectral_grid::SpectralGrid,\n kwargs...\n) -> Any\n\n\nGenerator using the resolution from SpectralGrid.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.ImplicitShallowWater","page":"Function and type index","title":"SpeedyWeather.ImplicitShallowWater","text":"Struct that holds various precomputed arrays for the semi-implicit correction to prevent gravity waves from amplifying in the shallow water model.\n\ntrunc::Int64\nα::Float64: coefficient for semi-implicit computations to filter gravity waves\nH::Base.RefValue{NF} where NF<:AbstractFloat\nξH::Base.RefValue{NF} where NF<:AbstractFloat\ng∇²::Vector{NF} where NF<:AbstractFloat\nξg∇²::Vector{NF} where NF<:AbstractFloat\nS⁻¹::Vector{NF} where NF<:AbstractFloat\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.ImplicitShallowWater-Tuple{SpectralGrid, Vararg{Any}}","page":"Function and type index","title":"SpeedyWeather.ImplicitShallowWater","text":"ImplicitShallowWater(\n spectral_grid::SpectralGrid,\n kwargs...\n) -> Any\n\n\nGenerator using the resolution from spectral_grid.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.JablonowskiRelaxation","page":"Function and type index","title":"SpeedyWeather.JablonowskiRelaxation","text":"HeldSuarez-like temperature relaxation, but towards the Jablonowski temperature profile with increasing temperatures in the stratosphere.\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.JablonowskiRelaxation-Tuple{SpectralGrid}","page":"Function and type index","title":"SpeedyWeather.JablonowskiRelaxation","text":"JablonowskiRelaxation(SG::SpectralGrid; kwargs...) -> Any\n\n\ncreate a JablonowskiRelaxation temperature relaxation with arrays allocated given spectral_grid\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.Keepbits","page":"Function and type index","title":"SpeedyWeather.Keepbits","text":"Number of mantissa bits to keep for each prognostic variable when compressed for netCDF and .jld2 data output.\n\nu::Int64\nv::Int64\nvor::Int64\ndiv::Int64\ntemp::Int64\npres::Int64\nhumid::Int64\nprecip_cond::Int64\nprecip_conv::Int64\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.Leapfrog","page":"Function and type index","title":"SpeedyWeather.Leapfrog","text":"Leapfrog time stepping defined by the following fields\n\ntrunc::Int64: spectral resolution (max degree of spherical harmonics)\nΔt_at_T31::Float64: time step in minutes for T31, scale linearly to trunc\nradius::Any: radius of sphere [m], used for scaling\nrobert_filter::Any: Robert (1966) time filter coefficeint to suppress comput. mode\nwilliams_filter::Any: Williams time filter (Amezcua 2011) coefficient for 3rd order acc\nΔt_sec::Int64: time step Δt [s] at specified resolution\nΔt::Any: time step Δt [s/m] at specified resolution, scaled by 1/radius\nΔt_hrs::Float64: convert time step Δt from minutes to hours\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.Leapfrog-Tuple{SpectralGrid}","page":"Function and type index","title":"SpeedyWeather.Leapfrog","text":"Leapfrog(spectral_grid::SpectralGrid; kwargs...) -> Any\n\n\nGenerator function for a Leapfrog struct using spectral_grid for the resolution information.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.LinearDrag","page":"Function and type index","title":"SpeedyWeather.LinearDrag","text":"Linear boundary layer drag Following Held and Suarez, 1996 BAMS\n\nσb::Float64\ntime_scale::Float64\nnlev::Int64\ndrag_coefs::Vector{NF} where NF<:AbstractFloat\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.LinearDrag-Tuple{SpectralGrid}","page":"Function and type index","title":"SpeedyWeather.LinearDrag","text":"LinearDrag(SG::SpectralGrid; kwargs...) -> Any\n\n\nGenerator function using nlev from SG::SpectralGrid\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.MagnusCoefs","page":"Function and type index","title":"SpeedyWeather.MagnusCoefs","text":"Parameters for computing saturation vapour pressure using the August-Roche-Magnus formula,\n\neᵢ(T) = e₀ * exp(Cᵢ * (T - T₀) / (T - Tᵢ)),\n\nwhere T is in Kelvin and i = 1,2 for saturation with respect to water and ice, respectively.\n\ne₀::AbstractFloat: Saturation vapour pressure at 0°C [Pa]\nT₀::AbstractFloat: 0°C in Kelvin\nT₁::AbstractFloat\nT₂::AbstractFloat\nC₁::AbstractFloat\nC₂::AbstractFloat\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.NoBoundaryLayerDrag","page":"Function and type index","title":"SpeedyWeather.NoBoundaryLayerDrag","text":"Concrete type that disables the boundary layer drag scheme.\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.NoOrography","page":"Function and type index","title":"SpeedyWeather.NoOrography","text":"Orography with zero height in orography and zero surface geopotential geopot_surf.\n\norography::SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat: height [m] on grid-point space.\ngeopot_surf::LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat: surface geopotential, height*gravity [m²/s²]\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.NoOrography-Tuple{SpectralGrid}","page":"Function and type index","title":"SpeedyWeather.NoOrography","text":"NoOrography(spectral_grid::SpectralGrid) -> NoOrography\n\n\nGenerator function pulling the resolution information from spectral_grid.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.OutputWriter","page":"Function and type index","title":"SpeedyWeather.OutputWriter","text":"NetCDF output writer. Contains all output options and auxiliary fields for output interpolation. To be initialised with OutputWriter(::SpectralGrid,::Type{<:ModelSetup},kwargs...) to pass on the resolution information and the model type which chooses which variables to output. Options include\n\nspectral_grid::SpectralGrid\noutput::Bool\npath::String: [OPTION] path to output folder, run_???? will be created within\nid::String: [OPTION] run identification number/string\nrun_path::String\nfilename::String: [OPTION] name of the output netcdf file\nwrite_restart::Bool: [OPTION] also write restart file if output==true?\npkg_version::VersionNumber\nstartdate::Dates.DateTime\noutput_dt::Float64: [OPTION] output frequency, time step [hrs]\noutput_dt_sec::Int64: actual output time step [sec]\noutput_vars::Vector{Symbol}: [OPTION] which variables to output, u, v, vor, div, pres, temp, humid\nmissing_value::Union{Float32, Float64}: [OPTION] missing value to be used in netcdf output\ncompression_level::Int64: [OPTION] lossless compression level; 1=low but fast, 9=high but slow\nkeepbits::SpeedyWeather.Keepbits: [OPTION] mantissa bits to keep for every variable\noutput_every_n_steps::Int64\ntimestep_counter::Int64\noutput_counter::Int64\nnetcdf_file::Union{Nothing, NetCDF.NcFile}\ninput_Grid::Type{<:SpeedyWeather.RingGrids.AbstractGrid}\nas_matrix::Bool: [OPTION] sort grid points into a matrix (interpolation-free), for OctahedralClenshawGrid, OctaHEALPixGrid only\nquadrant_rotation::NTuple{4, Int64}\nmatrix_quadrant::NTuple{4, Tuple{Int64, Int64}}\noutput_Grid::Type{<:SpeedyWeather.RingGrids.AbstractFullGrid}: [OPTION] the grid used for output, full grids only\nnlat_half::Int64: [OPTION] the resolution of the output grid, default: same nlat_half as in the dynamical core\nnlon::Int64\nnlat::Int64\nnpoints::Int64\nnlev::Int64\ninterpolator::SpeedyWeather.RingGrids.AbstractInterpolator\nu::Matrix{NF} where NF<:Union{Float32, Float64}\nv::Matrix{NF} where NF<:Union{Float32, Float64}\nvor::Matrix{NF} where NF<:Union{Float32, Float64}\ndiv::Matrix{NF} where NF<:Union{Float32, Float64}\ntemp::Matrix{NF} where NF<:Union{Float32, Float64}\npres::Matrix{NF} where NF<:Union{Float32, Float64}\nhumid::Matrix{NF} where NF<:Union{Float32, Float64}\nprecip_cond::Matrix{NF} where NF<:Union{Float32, Float64}\nprecip_conv::Matrix{NF} where NF<:Union{Float32, Float64}\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.PrimitiveDryModel","page":"Function and type index","title":"SpeedyWeather.PrimitiveDryModel","text":"The PrimitiveDryModel struct holds all other structs that contain precalculated constants, whether scalars or arrays that do not change throughout model integration.\n\nspectral_grid::SpectralGrid: dictates resolution for many other components\nplanet::SpeedyWeather.AbstractPlanet: contains physical and orbital characteristics\natmosphere::SpeedyWeather.AbstractAtmosphere\ninitial_conditions::SpeedyWeather.InitialConditions\norography::SpeedyWeather.AbstractOrography{NF} where NF<:AbstractFloat\nphysics::Bool\nboundary_layer_drag::SpeedyWeather.BoundaryLayerDrag{NF} where NF<:AbstractFloat\ntemperature_relaxation::SpeedyWeather.TemperatureRelaxation{NF} where NF<:AbstractFloat\nstatic_energy_diffusion::SpeedyWeather.VerticalDiffusion{NF} where NF<:AbstractFloat\ntime_stepping::SpeedyWeather.TimeStepper{NF} where NF<:AbstractFloat\nspectral_transform::SpectralTransform\nhorizontal_diffusion::SpeedyWeather.HorizontalDiffusion{NF} where NF<:AbstractFloat\nimplicit::SpeedyWeather.AbstractImplicit{NF} where NF<:AbstractFloat\ngeometry::Geometry\nconstants::DynamicsConstants\ndevice_setup::SpeedyWeather.DeviceSetup\noutput::SpeedyWeather.AbstractOutputWriter\nfeedback::SpeedyWeather.AbstractFeedback\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.PrimitiveWetModel","page":"Function and type index","title":"SpeedyWeather.PrimitiveWetModel","text":"The PrimitiveDryModel struct holds all other structs that contain precalculated constants, whether scalars or arrays that do not change throughout model integration.\n\nspectral_grid::SpectralGrid: dictates resolution for many other components\nplanet::SpeedyWeather.AbstractPlanet: contains physical and orbital characteristics\natmosphere::SpeedyWeather.AbstractAtmosphere\ninitial_conditions::SpeedyWeather.InitialConditions\norography::SpeedyWeather.AbstractOrography{NF} where NF<:AbstractFloat\nphysics::Bool\nthermodynamics::SpeedyWeather.Thermodynamics{NF} where NF<:AbstractFloat\nboundary_layer_drag::SpeedyWeather.BoundaryLayerDrag{NF} where NF<:AbstractFloat\ntemperature_relaxation::SpeedyWeather.TemperatureRelaxation{NF} where NF<:AbstractFloat\nstatic_energy_diffusion::SpeedyWeather.VerticalDiffusion{NF} where NF<:AbstractFloat\nlarge_scale_condensation::SpeedyWeather.AbstractCondensation{NF} where NF<:AbstractFloat\ntime_stepping::SpeedyWeather.TimeStepper{NF} where NF<:AbstractFloat\nspectral_transform::SpectralTransform\nhorizontal_diffusion::SpeedyWeather.HorizontalDiffusion{NF} where NF<:AbstractFloat\nimplicit::SpeedyWeather.AbstractImplicit{NF} where NF<:AbstractFloat\ngeometry::Geometry\nconstants::DynamicsConstants\ndevice_setup::SpeedyWeather.DeviceSetup\noutput::SpeedyWeather.AbstractOutputWriter\nfeedback::SpeedyWeather.AbstractFeedback\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.ShallowWaterModel","page":"Function and type index","title":"SpeedyWeather.ShallowWaterModel","text":"The ShallowWaterModel struct holds all other structs that contain precalculated constants, whether scalars or arrays that do not change throughout model integration.\n\nspectral_grid::SpectralGrid: dictates resolution for many other components\nplanet::SpeedyWeather.AbstractPlanet: contains physical and orbital characteristics\natmosphere::SpeedyWeather.AbstractAtmosphere\nforcing::SpeedyWeather.AbstractForcing{NF} where NF<:AbstractFloat\ninitial_conditions::SpeedyWeather.InitialConditions\norography::SpeedyWeather.AbstractOrography{NF} where NF<:AbstractFloat\ntime_stepping::SpeedyWeather.TimeStepper{NF} where NF<:AbstractFloat\nspectral_transform::SpectralTransform\nhorizontal_diffusion::SpeedyWeather.HorizontalDiffusion{NF} where NF<:AbstractFloat\nimplicit::SpeedyWeather.AbstractImplicit{NF} where NF<:AbstractFloat\ngeometry::Geometry\nconstants::DynamicsConstants\ndevice_setup::SpeedyWeather.DeviceSetup\noutput::SpeedyWeather.AbstractOutputWriter\nfeedback::SpeedyWeather.AbstractFeedback\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.Simulation","page":"Function and type index","title":"SpeedyWeather.Simulation","text":"Simulation is a container struct to be used with run!(::Simulation). It contains\n\nprognostic_variables::PrognosticVariables: define the current state of the model\ndiagnostic_variables::DiagnosticVariables: contain the tendencies and auxiliary arrays to compute them\nmodel::SpeedyWeather.ModelSetup: all parameters, constant at runtime\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.SpectralGrid","page":"Function and type index","title":"SpeedyWeather.SpectralGrid","text":"Defines the horizontal spectral resolution and corresponding grid and the vertical coordinate for SpeedyWeather.jl. Options are\n\nNF::Type{<:AbstractFloat}: number format used throughout the model\ntrunc::Int64: horizontal resolution as the maximum degree of spherical harmonics\nGrid::Type{<:SpeedyWeather.RingGrids.AbstractGrid}: horizontal grid used for calculations in grid-point space\ndealiasing::Float64: how to match spectral with grid resolution: dealiasing factor, 1=linear, 2=quadratic, 3=cubic grid\nradius::Float64: radius of the sphere [m]\nnlat_half::Int64: number of latitude rings on one hemisphere (Equator incl)\nnpoints::Int64: total number of grid points in the horizontal\nnlev::Int64: number of vertical levels\nvertical_coordinates::SpeedyWeather.VerticalCoordinates: coordinates used to discretize the vertical\n\nnlat_half and npoints should not be chosen but are derived from trunc, Grid and dealiasing.\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.SpeedyCondensation","page":"Function and type index","title":"SpeedyWeather.SpeedyCondensation","text":"Large scale condensation as in Fortran SPEEDY with default values from therein.\n\nnlev::Int64: number of vertical levels\nthreshold_boundary_layer::Float64: Relative humidity threshold for boundary layer\nthreshold_range::Float64: Vertical range of relative humidity threshold\nthreshold_max::Float64: Maximum relative humidity threshold [1]\ntime_scale::Float64: Relaxation time for humidity [hrs]\nn_stratosphere_levels::Base.RefValue{Int64}\nhumid_tend_max::Vector{NF} where NF<:AbstractFloat\nrelative_threshold::Vector{NF} where NF<:AbstractFloat\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.SpectralTransform-Tuple{SpectralGrid}","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.SpectralTransform","text":"SpectralTransform(\n spectral_grid::SpectralGrid;\n recompute_legendre,\n kwargs...\n) -> SpectralTransform\n\n\nGenerator function for a SpectralTransform struct pulling in parameters from a SpectralGrid struct.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.StartFromFile","page":"Function and type index","title":"SpeedyWeather.StartFromFile","text":"Restart from a previous SpeedyWeather.jl simulation via the restart file restart.jld2 Applies interpolation in the horizontal but not in the vertical. restart.jld2 is identified by\n\npath::String: path for restart file\nid::Union{Int64, String}: run_id of restart file in run_????/restart.jld2\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.StartWithRandomVorticity","page":"Function and type index","title":"SpeedyWeather.StartWithRandomVorticity","text":"Start with random vorticity as initial conditions\n\npower::Float64: Power of the spectral distribution k^power\namplitude::Float64: (approximate) amplitude in [1/s], used as standard deviation of spherical harmonic coefficients\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.StaticEnergyDiffusion","page":"Function and type index","title":"SpeedyWeather.StaticEnergyDiffusion","text":"Diffusion of dry static energy: A relaxation towards a reference gradient of static energy wrt to geopotential, see Fortran SPEEDY documentation.\n\ntime_scale::Float64: time scale [hrs] for strength\nstatic_energy_lapse_rate::Float64: [1] ∂SE/∂Φ, vertical gradient of static energy SE with geopotential Φ\nFstar::Base.RefValue{NF} where NF<:AbstractFloat\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.Tendencies","page":"Function and type index","title":"SpeedyWeather.Tendencies","text":"Tendencies{Grid<:AbstractGrid,NF<:AbstractFloat}\n\nStruct holding the tendencies of the prognostic spectral variables for a given layer.\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.ZonalJet","page":"Function and type index","title":"SpeedyWeather.ZonalJet","text":"Create a struct that contains all parameters for the Galewsky et al, 2004 zonal jet intitial conditions for the shallow water model. Default values as in Galewsky.\n\nlatitude::Float64: jet latitude [˚N]\nwidth::Float64: jet width [˚], default ≈ 19.29˚\numax::Float64: jet maximum velocity [m/s]\nperturb_lat::Float64: perturbation latitude [˚N], position in jet by default\nperturb_lon::Float64: perturbation longitude [˚E]\nperturb_xwidth::Float64: perturbation zonal extent [˚], default ≈ 19.1˚\nperturb_ywidth::Float64: perturbation meridinoal extent [˚], default ≈ 3.8˚\nperturb_height::Float64: perturbation amplitude [m]\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.ZonalRidge","page":"Function and type index","title":"SpeedyWeather.ZonalRidge","text":"Zonal ridge orography after Jablonowski and Williamson, 2006.\n\nη₀::Float64: conversion from σ to Jablonowski's ηᵥ-coordinates\nu₀::Float64: max amplitude of zonal wind [m/s] that scales orography height\norography::SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat: height [m] on grid-point space.\ngeopot_surf::LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat: surface geopotential, height*gravity [m²/s²]\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.ZonalRidge-Tuple{SpectralGrid}","page":"Function and type index","title":"SpeedyWeather.ZonalRidge","text":"ZonalRidge(spectral_grid::SpectralGrid; kwargs...) -> Any\n\n\nGenerator function pulling the resolution information from spectral_grid.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.ZonalWind","page":"Function and type index","title":"SpeedyWeather.ZonalWind","text":"Create a struct that contains all parameters for the Jablonowski and Williamson, 2006 intitial conditions for the primitive equation model. Default values as in Jablonowski.\n\nη₀::Float64: conversion from σ to Jablonowski's ηᵥ-coordinates\nu₀::Float64: max amplitude of zonal wind [m/s]\nperturb_lat::Float64: perturbation centred at [˚N]\nperturb_lon::Float64: perturbation centred at [˚E]\nperturb_uₚ::Float64: perturbation strength [m/s]\nperturb_radius::Float64: radius of Gaussian perturbation in units of Earth's radius [1]\nΔT::Float64: temperature difference used for stratospheric lapse rate [K], Jablonowski uses ΔT = 4.8e5 [K]\nTmin::Float64: minimum temperature [K] of profile\npressure_on_orography::Bool: initialize pressure given the atmosphere.lapse_rate on orography?\n\n\n\n\n\n","category":"type"},{"location":"functions/#Base.copy!-Tuple{PrognosticVariables, PrognosticVariables}","page":"Function and type index","title":"Base.copy!","text":"copy!(progn_new::PrognosticVariables, progn_old::PrognosticVariables)\n\nCopies entries of progn_old into progn_new. Only copies those variables that are present in the model of both progn_new and progn_old.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.Device-Tuple{}","page":"Function and type index","title":"SpeedyWeather.Device","text":"Device()\n\nReturn default used device for internal purposes, either CPUDevice or GPUDevice if a GPU is available.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.DeviceArray-Tuple{SpeedyWeather.GPUDevice, Any}","page":"Function and type index","title":"SpeedyWeather.DeviceArray","text":"DeviceArray(device::AbstractDevice, x)\n\nAdapts x to a CuArray when device<:GPUDevice is used, otherwise a regular Array. Uses adapt, thus also can return SubArrays etc.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.DeviceArrayNotAdapt-Tuple{SpeedyWeather.GPUDevice, Any}","page":"Function and type index","title":"SpeedyWeather.DeviceArrayNotAdapt","text":"DeviceArrayNotAdapt(device::AbstractDevice, x)\n\nReturns a CuArray when device<:GPUDevice is used, otherwise a regular Array. Doesn't uses adapt, therefore always returns CuArray/Array\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.Device_KernelAbstractions-Tuple{SpeedyWeather.CPUDevice}","page":"Function and type index","title":"SpeedyWeather.Device_KernelAbstractions","text":"Device_KernelAbstractions(::AbstractDevice)\n\nReturn used device for use with KernelAbstractions\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.Device_KernelAbstractions-Tuple{}","page":"Function and type index","title":"SpeedyWeather.Device_KernelAbstractions","text":"Device_KernelAbstractions()\n\nReturn default used device for KernelAbstractions, either CPU or CUDADevice if a GPU is available\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.gridded!-Tuple{DiagnosticVariables, PrognosticVariables, Int64, SpeedyWeather.ModelSetup}","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.gridded!","text":"gridded!(\n diagn::DiagnosticVariables,\n progn::PrognosticVariables,\n lf::Int64,\n model::SpeedyWeather.ModelSetup\n)\n\n\nPropagate the spectral state of progn to diagn using time step/leapfrog index lf. Function barrier that calls gridded! for the respective model.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.gridded!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, SpeedyWeather.PrognosticLayerTimesteps, Int64, Barotropic}","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.gridded!","text":"gridded!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n progn::SpeedyWeather.PrognosticLayerTimesteps,\n lf::Int64,\n model::Barotropic\n)\n\n\nPropagate the spectral state of the prognostic variables progn to the diagnostic variables in diagn for the barotropic vorticity model. Updates grid vorticity, spectral stream function and spectral and grid velocities u,v.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.gridded!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, SpeedyWeather.PrognosticLayerTimesteps, Int64, PrimitiveEquation}","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.gridded!","text":"gridded!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n progn::SpeedyWeather.PrognosticLayerTimesteps,\n lf::Int64,\n model::PrimitiveEquation\n)\n\n\nPropagate the spectral state of the prognostic variables progn to the diagnostic variables in diagn for primitive equation models. Updates grid vorticity, grid divergence, grid temperature, pressure (pres_grid) and the velocities u,v.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.gridded!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, SpeedyWeather.PrognosticLayerTimesteps, Int64, ShallowWater}","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.gridded!","text":"gridded!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n progn::SpeedyWeather.PrognosticLayerTimesteps,\n lf::Int64,\n model::ShallowWater\n)\n\n\nPropagate the spectral state of the prognostic variables progn to the diagnostic variables in diagn for the shallow water model. Updates grid vorticity, grid divergence, grid interface displacement (pres_grid) and the velocities u,v.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather._scale_lat!-Union{Tuple{NF}, Tuple{SpeedyWeather.RingGrids.AbstractGrid{NF}, AbstractVector}} where NF<:AbstractFloat","page":"Function and type index","title":"SpeedyWeather._scale_lat!","text":"_scale_lat!(\n A::SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},\n v::AbstractVector\n)\n\n\nGeneric latitude scaling applied to A in-place with latitude-like vector v.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.allocate-Union{Tuple{Model}, Tuple{Type{PrognosticVariables}, SpectralGrid, Type{Model}}} where Model<:SpeedyWeather.ModelSetup","page":"Function and type index","title":"SpeedyWeather.allocate","text":"allocate(\n _::Type{PrognosticVariables},\n spectral_grid::SpectralGrid,\n _::Type{Model<:SpeedyWeather.ModelSetup}\n) -> PrognosticVariables\n\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.bernoulli_potential!-Union{Tuple{NF}, Tuple{SpeedyWeather.DiagnosticVariablesLayer{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF}, SpectralTransform}} where NF","page":"Function and type index","title":"SpeedyWeather.bernoulli_potential!","text":"bernoulli_potential!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF},\n S::SpectralTransform\n) -> LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat\n\n\nComputes the Laplace operator ∇² of the Bernoulli potential B in spectral space.\n\ncomputes the kinetic energy KE = ½(u²+v²) on the grid\ntransforms KE to spectral space\nadds geopotential for the Bernoulli potential in spectral space\ntakes the Laplace operator.\n\nThis version is used for both ShallowWater and PrimitiveEquation, only the geopotential calculation in geopotential! differs.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.boundary_layer_drag!-Tuple{ColumnVariables, LinearDrag}","page":"Function and type index","title":"SpeedyWeather.boundary_layer_drag!","text":"boundary_layer_drag!(\n column::ColumnVariables,\n scheme::LinearDrag\n)\n\n\nCompute tendency for boundary layer drag of a column and add to its tendencies fields\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.boundary_layer_drag!-Tuple{ColumnVariables, SpeedyWeather.NoBoundaryLayerDrag, PrimitiveEquation}","page":"Function and type index","title":"SpeedyWeather.boundary_layer_drag!","text":"NoBoundaryLayer scheme just passes.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.clip_negatives!-Union{Tuple{AbstractArray{T}}, Tuple{T}} where T","page":"Function and type index","title":"SpeedyWeather.clip_negatives!","text":"clip_negatives!(A::AbstractArray)\n\nSet all negative entries a in A to zero.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.create_output_folder-Tuple{String, Union{Int64, String}}","page":"Function and type index","title":"SpeedyWeather.create_output_folder","text":"create_output_folder(\n path::String,\n id::Union{Int64, String}\n) -> String\n\n\nCreates a new folder run_* with the identification id. Also returns the full path run_path of that folder.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.default_sigma_coordinates-Tuple{Integer}","page":"Function and type index","title":"SpeedyWeather.default_sigma_coordinates","text":"default_sigma_coordinates(nlev::Integer) -> Any\n\n\nVertical sigma coordinates defined by their nlev+1 half levels σ_levels_half. Sigma coordinates are fraction of surface pressure (p/p0) and are sorted from top (stratosphere) to bottom (surface). The first half level is at 0 the last at 1. Evaluate a generalised logistic function with coefficients in P for the distribution of values in between. Default coefficients follow the L31 configuration historically used at ECMWF.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.dry_static_energy!-Tuple{ColumnVariables, DynamicsConstants}","page":"Function and type index","title":"SpeedyWeather.dry_static_energy!","text":"dry_static_energy!(\n column::ColumnVariables,\n constants::DynamicsConstants\n)\n\n\nCompute the dry static energy SE = cₚT + Φ (latent heat times temperature plus geopotential) for the column.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.dynamics_tendencies!","page":"Function and type index","title":"SpeedyWeather.dynamics_tendencies!","text":"dynamics_tendencies!(\n diagn::DiagnosticVariables,\n progn::PrognosticVariables,\n model::PrimitiveEquation\n) -> Any\ndynamics_tendencies!(\n diagn::DiagnosticVariables,\n progn::PrognosticVariables,\n model::PrimitiveEquation,\n lf::Int64\n) -> Any\n\n\nCalculate all tendencies for the PrimitiveEquation model (wet or dry).\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.dynamics_tendencies!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, Dates.DateTime, Barotropic}","page":"Function and type index","title":"SpeedyWeather.dynamics_tendencies!","text":"dynamics_tendencies!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n time::Dates.DateTime,\n model::Barotropic\n)\n\n\nCalculate all tendencies for the BarotropicModel.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.dynamics_tendencies!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, SpeedyWeather.SurfaceVariables, LowerTriangularMatrix, Dates.DateTime, ShallowWater}","page":"Function and type index","title":"SpeedyWeather.dynamics_tendencies!","text":"dynamics_tendencies!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n surface::SpeedyWeather.SurfaceVariables,\n pres::LowerTriangularMatrix,\n time::Dates.DateTime,\n model::ShallowWater\n)\n\n\nCalculate all tendencies for the ShallowWaterModel.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.first_timesteps!-Tuple{PrognosticVariables, DiagnosticVariables, SpeedyWeather.ModelSetup, SpeedyWeather.AbstractOutputWriter}","page":"Function and type index","title":"SpeedyWeather.first_timesteps!","text":"first_timesteps!(\n progn::PrognosticVariables,\n diagn::DiagnosticVariables,\n model::SpeedyWeather.ModelSetup,\n output::SpeedyWeather.AbstractOutputWriter\n) -> typeof(time)\n\n\nPerforms the first two initial time steps (Euler forward, unfiltered leapfrog) to populate the prognostic variables with two time steps (t=0,Δt) that can then be used in the normal leap frogging.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.flipsign!-Tuple{AbstractArray}","page":"Function and type index","title":"SpeedyWeather.flipsign!","text":"flipgsign!(A::AbstractArray)\n\nLike -A but in-place.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.flux_divergence!-Union{Tuple{NF}, Tuple{LowerTriangularMatrix{Complex{NF}}, SpeedyWeather.RingGrids.AbstractGrid{NF}, SpeedyWeather.DiagnosticVariablesLayer{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF}, Geometry{NF}, SpectralTransform{NF}}} where NF","page":"Function and type index","title":"SpeedyWeather.flux_divergence!","text":"flux_divergence!(\n A_tend::LowerTriangularMatrix{Complex{NF}},\n A_grid::SpeedyWeather.RingGrids.AbstractGrid{NF},\n diagn::SpeedyWeather.DiagnosticVariablesLayer{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF},\n G::Geometry{NF},\n S::SpectralTransform{NF};\n add,\n flipsign\n)\n\n\nComputes ∇⋅((u,v)*A) with the option to add/overwrite A_tend and to flip_sign of the flux divergence by doing so.\n\nA_tend = ∇⋅((u,v)*A) for add=false, flip_sign=false\nA_tend = -∇⋅((u,v)*A) for add=false, flip_sign=true\nA_tend += ∇⋅((u,v)*A) for add=true, flip_sign=false\nA_tend -= ∇⋅((u,v)*A) for add=true, flip_sign=true\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.fluxes_to_tendencies!-Tuple{ColumnVariables, Geometry, DynamicsConstants}","page":"Function and type index","title":"SpeedyWeather.fluxes_to_tendencies!","text":"fluxes_to_tendencies!(\n column::ColumnVariables,\n geometry::Geometry,\n constants::DynamicsConstants\n)\n\n\nConvert the fluxes on half levels to tendencies on full levels.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.generalised_logistic-Tuple{Any, SpeedyWeather.GenLogisticCoefs}","page":"Function and type index","title":"SpeedyWeather.generalised_logistic","text":"Generalised logistic function based on the coefficients in coefs.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.geopotential!-Tuple{DiagnosticVariables, SpeedyWeather.AbstractOrography, DynamicsConstants}","page":"Function and type index","title":"SpeedyWeather.geopotential!","text":"geopotential!(\n diagn::DiagnosticVariables,\n O::SpeedyWeather.AbstractOrography,\n C::DynamicsConstants\n)\n\n\nCompute spectral geopotential geopot from spectral temperature temp and spectral surface geopotential geopot_surf (orography*gravity).\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.geopotential!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, LowerTriangularMatrix, DynamicsConstants}","page":"Function and type index","title":"SpeedyWeather.geopotential!","text":"geopotential!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n pres::LowerTriangularMatrix,\n C::DynamicsConstants\n) -> Any\n\n\ncalculates the geopotential in the ShallowWaterModel as g*η, i.e. gravity times the interface displacement (field pres)\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.geopotential!-Tuple{Vector, DynamicsConstants}","page":"Function and type index","title":"SpeedyWeather.geopotential!","text":"geopotential!(temp::Vector, C::DynamicsConstants) -> Vector\n\n\nCalculate the geopotential based on temp in a single column. This exclues the surface geopotential that would need to be added to the returned vector. Function not used in the dynamical core but for post-processing and analysis.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.get_column!-Tuple{ColumnVariables, DiagnosticVariables, Int64, Geometry}","page":"Function and type index","title":"SpeedyWeather.get_column!","text":"Recalculate ring index if not provided.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.get_column!-Tuple{ColumnVariables, DiagnosticVariables, Integer, Integer, Geometry}","page":"Function and type index","title":"SpeedyWeather.get_column!","text":"get_column!(\n C::ColumnVariables,\n D::DiagnosticVariables,\n ij::Integer,\n jring::Integer,\n G::Geometry\n)\n\n\nUpdate C::ColumnVariables by copying the prognostic variables from D::DiagnosticVariables at gridpoint index ij. Provide G::Geometry for coordinate information.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.get_full_output_file_path-Tuple{OutputWriter}","page":"Function and type index","title":"SpeedyWeather.get_full_output_file_path","text":"get_full_output_file_path(output::OutputWriter) -> String\n\n\nReturns the full path of the output file after it was created.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.get_run_id-Tuple{String, String}","page":"Function and type index","title":"SpeedyWeather.get_run_id","text":"get_run_id(path::String, id::String) -> String\n\n\nChecks existing run_???? folders in path to determine a 4-digit id number by counting up. E.g. if folder run_0001 exists it will return the string \"0002\". Does not create a folder for the returned run id.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.get_thermodynamics!-Tuple{ColumnVariables, PrimitiveDry}","page":"Function and type index","title":"SpeedyWeather.get_thermodynamics!","text":"get_thermodynamics!(\n column::ColumnVariables,\n model::PrimitiveDry\n)\n\n\nCalculate the dry static energy for the primitive dry model.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.get_thermodynamics!-Tuple{ColumnVariables, PrimitiveWet}","page":"Function and type index","title":"SpeedyWeather.get_thermodynamics!","text":"get_thermodynamics!(\n column::ColumnVariables,\n model::PrimitiveWet\n)\n\n\nCalculate thermodynamic quantities like saturation vapour pressure, saturation specific humidity, dry static energy, moist static energy and saturation moist static energy from the prognostic column variables.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.get_var-Tuple{PrognosticVariables, Symbol}","page":"Function and type index","title":"SpeedyWeather.get_var","text":"get_var(progn::PrognosticVariables, var_name::Symbol; lf::Integer=1)\n\nReturns the prognostic variable var_name at leapfrog index lf as a Vector{LowerTriangularMatrices}.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.has-Tuple{Type{<:SpeedyWeather.ModelSetup}, Symbol}","page":"Function and type index","title":"SpeedyWeather.has","text":"has(\n M::Type{<:SpeedyWeather.ModelSetup},\n var_name::Symbol\n) -> Bool\n\n\nReturns true if the model M has a prognostic variable var_name, false otherwise. The default fallback is that all variables are included. \n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.horizontal_diffusion!","page":"Function and type index","title":"SpeedyWeather.horizontal_diffusion!","text":"horizontal_diffusion!(\n progn::SpeedyWeather.PrognosticLayerTimesteps,\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n model::ShallowWater\n)\nhorizontal_diffusion!(\n progn::SpeedyWeather.PrognosticLayerTimesteps,\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n model::ShallowWater,\n lf::Int64\n)\n\n\nApply horizontal diffusion to vorticity and diffusion in the ShallowWater models.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.horizontal_diffusion!-2","page":"Function and type index","title":"SpeedyWeather.horizontal_diffusion!","text":"horizontal_diffusion!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n progn::SpeedyWeather.PrognosticLayerTimesteps,\n model::Barotropic\n)\nhorizontal_diffusion!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n progn::SpeedyWeather.PrognosticLayerTimesteps,\n model::Barotropic,\n lf::Int64\n)\n\n\nApply horizontal diffusion to vorticity in the Barotropic models.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.horizontal_diffusion!-3","page":"Function and type index","title":"SpeedyWeather.horizontal_diffusion!","text":"horizontal_diffusion!(\n progn::SpeedyWeather.PrognosticLayerTimesteps,\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n model::PrimitiveEquation\n) -> Union{Nothing, Bool}\nhorizontal_diffusion!(\n progn::SpeedyWeather.PrognosticLayerTimesteps,\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n model::PrimitiveEquation,\n lf::Int64\n) -> Union{Nothing, Bool}\n\n\nApply horizontal diffusion applied to vorticity, diffusion and temperature in the PrimitiveEquation models. Uses the constant diffusion for temperature but possibly adaptive diffusion for vorticity and divergence.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.horizontal_diffusion!-Union{Tuple{NF}, Tuple{LowerTriangularMatrix{Complex{NF}}, LowerTriangularMatrix{Complex{NF}}, AbstractVector{NF}, AbstractVector{NF}}} where NF<:AbstractFloat","page":"Function and type index","title":"SpeedyWeather.horizontal_diffusion!","text":"horizontal_diffusion!(\n tendency::LowerTriangularMatrix{Complex{NF<:AbstractFloat}},\n A::LowerTriangularMatrix{Complex{NF<:AbstractFloat}},\n ∇²ⁿ_expl::AbstractArray{NF<:AbstractFloat, 1},\n ∇²ⁿ_impl::AbstractArray{NF<:AbstractFloat, 1}\n)\n\n\nApply horizontal diffusion to a 2D field A in spectral space by updating its tendency tendency with an implicitly calculated diffusion term. The implicit diffusion of the next time step is split into an explicit part ∇²ⁿ_expl and an implicit part ∇²ⁿ_impl, such that both can be calculated in a single forward step by using A as well as its tendency tendency.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.implicit_correction!-Tuple{DiagnosticVariables, SpeedyWeather.ImplicitPrimitiveEq, PrognosticVariables}","page":"Function and type index","title":"SpeedyWeather.implicit_correction!","text":"implicit_correction!(\n diagn::DiagnosticVariables,\n implicit::SpeedyWeather.ImplicitPrimitiveEq,\n progn::PrognosticVariables\n) -> Any\n\n\nApply the implicit corrections to dampen gravity waves in the primitive equation models.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.implicit_correction!-Union{Tuple{NF}, Tuple{SpeedyWeather.DiagnosticVariablesLayer{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF}, SpeedyWeather.PrognosticLayerTimesteps{NF}, SpeedyWeather.SurfaceVariables{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF}, SpeedyWeather.PrognosticSurfaceTimesteps{NF}, SpeedyWeather.ImplicitShallowWater}} where NF","page":"Function and type index","title":"SpeedyWeather.implicit_correction!","text":"implicit_correction!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF},\n progn::SpeedyWeather.PrognosticLayerTimesteps{NF},\n diagn_surface::SpeedyWeather.SurfaceVariables{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF},\n progn_surface::SpeedyWeather.PrognosticSurfaceTimesteps{NF},\n implicit::SpeedyWeather.ImplicitShallowWater\n)\n\n\nApply correction to the tendencies in diagn to prevent the gravity waves from amplifying. The correction is implicitly evaluated using the parameter implicit.α to switch between forward, centered implicit or backward evaluation of the gravity wave terms.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initial_conditions!-Tuple{PrognosticVariables, StartFromFile, SpeedyWeather.ModelSetup}","page":"Function and type index","title":"SpeedyWeather.initial_conditions!","text":"initial_conditions!(\n progn_new::PrognosticVariables,\n initial_conditions::StartFromFile,\n model::SpeedyWeather.ModelSetup\n) -> PrognosticVariables\n\n\nRestart from a previous SpeedyWeather.jl simulation via the restart file restart.jld2 Applies interpolation in the horizontal but not in the vertical.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initial_conditions!-Tuple{PrognosticVariables, ZonalJet, ShallowWater}","page":"Function and type index","title":"SpeedyWeather.initial_conditions!","text":"initial_conditions!(\n progn::PrognosticVariables,\n initial_conditions::ZonalJet,\n model::ShallowWater\n) -> LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat\n\n\nInitial conditions from Galewsky, 2004, Tellus\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initial_conditions!-Union{Tuple{NF}, Tuple{PrognosticVariables{NF}, StartWithRandomVorticity, SpeedyWeather.ModelSetup}} where NF","page":"Function and type index","title":"SpeedyWeather.initial_conditions!","text":"initial_conditions!(\n progn::PrognosticVariables{NF},\n initial_conditions::StartWithRandomVorticity,\n model::SpeedyWeather.ModelSetup\n)\n\n\nStart with random vorticity as initial conditions\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initial_conditions!-Union{Tuple{NF}, Tuple{PrognosticVariables{NF}, ZonalWind, PrimitiveEquation}} where NF","page":"Function and type index","title":"SpeedyWeather.initial_conditions!","text":"initial_conditions!(\n progn::PrognosticVariables{NF},\n initial_conditions::ZonalWind,\n model::PrimitiveEquation\n)\n\n\nInitial conditions from Jablonowski and Williamson, 2006, QJR Meteorol. Soc\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initial_conditions-Tuple{Model} where Model","page":"Function and type index","title":"SpeedyWeather.initial_conditions","text":"initial_conditions(model) -> PrognosticVariables\n\n\nAllocate the prognostic variables and then set to initial conditions.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(\n scheme::HyperDiffusion,\n k::Int64,\n G::Geometry,\n L::SpeedyWeather.TimeStepper\n)\ninitialize!(\n scheme::HyperDiffusion,\n k::Int64,\n G::Geometry,\n L::SpeedyWeather.TimeStepper,\n vor_max::Real\n)\n\n\nPrecomputes the hyper diffusion terms in scheme for layer k based on the model time step in L, the vertical level sigma level in G, and the current (absolute) vorticity maximum level vor_max\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{Barotropic}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(model::Barotropic) -> SpeedyWeather.Simulation\n\n\nCalls all initialize! functions for components of model, except for model.output and model.feedback which are always called at in time_stepping!.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{EarthOrography, SpeedyWeather.AbstractPlanet, SpectralTransform, Geometry}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(\n orog::EarthOrography,\n P::SpeedyWeather.AbstractPlanet,\n S::SpectralTransform,\n G::Geometry\n) -> LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat\n\n\nInitialize the arrays orography,geopot_surf in orog by reading the orography field from file.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{Feedback, SpeedyWeather.Clock, SpeedyWeather.ModelSetup}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(\n feedback::Feedback,\n clock::SpeedyWeather.Clock,\n model::SpeedyWeather.ModelSetup\n) -> Union{Nothing, IOStream}\n\n\nInitializes the a Feedback struct.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{HeldSuarez, PrimitiveEquation}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(scheme::HeldSuarez, model::PrimitiveEquation)\n\n\ninitialize the HeldSuarez temperature relaxation by precomputing terms for the equilibrium temperature Teq.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{HyperDiffusion, SpeedyWeather.DiagnosticVariablesLayer, Geometry, SpeedyWeather.TimeStepper}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(\n scheme::HyperDiffusion,\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n G::Geometry,\n L::SpeedyWeather.TimeStepper\n)\n\n\nPre-function to other initialize!(::HyperDiffusion) initialisors that calculates the (absolute) vorticity maximum for the layer of diagn.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{HyperDiffusion, SpeedyWeather.ModelSetup}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(\n scheme::HyperDiffusion,\n model::SpeedyWeather.ModelSetup\n)\n\n\nPrecomputes the hyper diffusion terms in scheme based on the model time step, and possibly with a changing strength/power in the vertical.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{HyperDiffusion, SpeedyWeather.TimeStepper}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(\n scheme::HyperDiffusion,\n L::SpeedyWeather.TimeStepper\n)\n\n\nPrecomputes the 2D hyper diffusion terms in scheme based on the model time step.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{JablonowskiRelaxation, PrimitiveEquation}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(\n scheme::JablonowskiRelaxation,\n model::PrimitiveEquation\n)\n\n\ninitialize the JablonowskiRelaxation temperature relaxation by precomputing terms for the equilibrium temperature Teq and the frequency (strength of relaxation).\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{LinearDrag, PrimitiveEquation}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(scheme::LinearDrag, model::PrimitiveEquation)\n\n\nPrecomputes the drag coefficients for this BoundaryLayerDrag scheme.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{NoTemperatureRelaxation, PrimitiveEquation}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(\n scheme::NoTemperatureRelaxation,\n model::PrimitiveEquation\n)\n\n\njust passes, does not need any initialization.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{PrimitiveDry}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(model::PrimitiveDry) -> SpeedyWeather.Simulation\n\n\nCalls all initialize! functions for components of model, except for model.output and model.feedback which are always called at in time_stepping! and model.implicit which is done in first_timesteps!.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{PrimitiveWet}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(model::PrimitiveWet) -> SpeedyWeather.Simulation\n\n\nCalls all initialize! functions for components of model, except for model.output and model.feedback which are always called at in time_stepping! and model.implicit which is done in first_timesteps!.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{ShallowWater}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(model::ShallowWater) -> SpeedyWeather.Simulation\n\n\nCalls all initialize! functions for components of model, except for model.output and model.feedback which are always called at in time_stepping! and model.implicit which is done in first_timesteps!.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{SpeedyCondensation, PrimitiveEquation}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(\n scheme::SpeedyCondensation,\n model::PrimitiveEquation\n)\n\n\nInitialize the SpeedyCondensation scheme.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{SpeedyWeather.Clock, SpeedyWeather.TimeStepper}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(\n clock::SpeedyWeather.Clock,\n time_stepping::SpeedyWeather.TimeStepper\n) -> SpeedyWeather.Clock\n\n\nInitialize the clock with the time step Δt in the time_stepping.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{SpeedyWeather.ImplicitPrimitiveEq, Integer, Real, DiagnosticVariables, Geometry, DynamicsConstants}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(\n implicit::SpeedyWeather.ImplicitPrimitiveEq,\n i::Integer,\n dt::Real,\n diagn::DiagnosticVariables,\n geometry::Geometry,\n constants::DynamicsConstants\n)\n\n\nReinitialize implicit occasionally based on time step i and implicit.recalculate.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{SpeedyWeather.ImplicitPrimitiveEq, Real, DiagnosticVariables, Geometry, DynamicsConstants}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(\n implicit::SpeedyWeather.ImplicitPrimitiveEq,\n dt::Real,\n diagn::DiagnosticVariables,\n geometry::Geometry,\n constants::DynamicsConstants\n)\n\n\nInitialize the implicit terms for the PrimitiveEquation models.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{SpeedyWeather.ImplicitShallowWater, Real, DynamicsConstants}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(\n implicit::SpeedyWeather.ImplicitShallowWater,\n dt::Real,\n constants::DynamicsConstants\n)\n\n\nUpdate the implicit terms in implicit for the shallow water model as they depend on the time step dt.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{SpeedyWeather.NoBoundaryLayerDrag, PrimitiveEquation}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"NoBoundaryLayer scheme does not need any initialisation.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{ZonalRidge, SpeedyWeather.AbstractPlanet, SpectralTransform, Geometry}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(\n orog::ZonalRidge,\n P::SpeedyWeather.AbstractPlanet,\n S::SpectralTransform,\n G::Geometry\n) -> LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat\n\n\nInitialize the arrays orography,geopot_surf in orog following Jablonowski and Williamson, 2006.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Union{Tuple{Model}, Tuple{output_NF}, Tuple{OutputWriter{output_NF, Model}, SpeedyWeather.AbstractFeedback, SpeedyWeather.TimeStepper, DiagnosticVariables, Model}} where {output_NF, Model}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(\n output::OutputWriter{output_NF, Model},\n feedback::SpeedyWeather.AbstractFeedback,\n time_stepping::SpeedyWeather.TimeStepper,\n diagn::DiagnosticVariables,\n model\n)\n\n\nCreates a netcdf file on disk and the corresponding netcdf_file object preallocated with output variables and dimensions. write_output! then writes consecuitive time steps into this file.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Union{Tuple{NF}, Tuple{SpeedyWeather.StaticEnergyDiffusion{NF}, PrimitiveEquation}} where NF","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(\n scheme::SpeedyWeather.StaticEnergyDiffusion{NF},\n model::PrimitiveEquation\n) -> Any\n\n\nInitialize dry static energy diffusion.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize_geopotential-Tuple{Vector, Vector, Real}","page":"Function and type index","title":"SpeedyWeather.initialize_geopotential","text":"initialize_geopotential(\n σ_levels_full::Vector,\n σ_levels_half::Vector,\n R_dry::Real\n) -> Tuple{Vector{Float64}, Vector{Float64}}\n\n\nPrecomputes constants for the vertical integration of the geopotential, defined as\n\nΦ_{k+1/2} = Φ_{k+1} + R*T_{k+1}*(ln(p_{k+1}) - ln(p_{k+1/2})) (half levels) Φ_k = Φ_{k+1/2} + R*T_k*(ln(p_{k+1/2}) - ln(p_k)) (full levels)\n\nSame formula but k → k-1/2.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.isdecreasing-Tuple{Vector}","page":"Function and type index","title":"SpeedyWeather.isdecreasing","text":"true/false = isdecreasing(v::Vector)\n\nCheck whether elements of a vector v are strictly decreasing.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.isincreasing-Tuple{Vector}","page":"Function and type index","title":"SpeedyWeather.isincreasing","text":"true/false = isincreasing(v::Vector)\n\nCheck whether elements of a vector v are strictly increasing.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.large_scale_condensation!-Tuple{ColumnVariables, PrimitiveDry}","page":"Function and type index","title":"SpeedyWeather.large_scale_condensation!","text":"large_scale_condensation!(\n column::ColumnVariables,\n model::PrimitiveDry\n)\n\n\nNo condensation in a PrimitiveDry model.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.large_scale_condensation!-Tuple{ColumnVariables, PrimitiveWet}","page":"Function and type index","title":"SpeedyWeather.large_scale_condensation!","text":"Function barrier only.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.large_scale_condensation!-Union{Tuple{NF}, Tuple{ColumnVariables{NF}, SpeedyCondensation, Geometry, DynamicsConstants, SpeedyWeather.AbstractAtmosphere, SpeedyWeather.TimeStepper}} where NF","page":"Function and type index","title":"SpeedyWeather.large_scale_condensation!","text":"large_scale_condensation!(\n column::ColumnVariables{NF},\n scheme::SpeedyCondensation,\n geometry::Geometry,\n constants::DynamicsConstants,\n atmosphere::SpeedyWeather.AbstractAtmosphere,\n time_stepping::SpeedyWeather.TimeStepper\n)\n\n\nLarge-scale condensation for a column by relaxation back to a reference relative humidity if larger than that. Calculates the tendencies for specific humidity and temperature and integrates the large-scale precipitation vertically for output.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.launch_kernel!-Tuple{SpeedyWeather.DeviceSetup, Any, Any, Vararg{Any}}","page":"Function and type index","title":"SpeedyWeather.launch_kernel!","text":"launch_kernel!(device_setup::DeviceSetup, kernel!, ndrange, kernel_args...)\n\nLaunches the kernel! on the device_setup with ndrange computations over the kernel and arguments kernel_args\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.leapfrog!-Union{Tuple{NF}, Tuple{LowerTriangularMatrix{Complex{NF}}, LowerTriangularMatrix{Complex{NF}}, LowerTriangularMatrix{Complex{NF}}, Real, Int64, Leapfrog{NF}}} where NF<:AbstractFloat","page":"Function and type index","title":"SpeedyWeather.leapfrog!","text":"leapfrog!(\n A_old::LowerTriangularMatrix{Complex{NF<:AbstractFloat}},\n A_new::LowerTriangularMatrix{Complex{NF<:AbstractFloat}},\n tendency::LowerTriangularMatrix{Complex{NF<:AbstractFloat}},\n dt::Real,\n lf::Int64,\n L::Leapfrog{NF<:AbstractFloat}\n)\n\n\nPerforms one leapfrog time step with (lf=2) or without (lf=1) Robert+Williams filter (see Williams (2009), Montly Weather Review, Eq. 7-9).\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.linear_pressure_gradient!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, SpeedyWeather.PrognosticSurfaceTimesteps, Int64, DynamicsConstants, SpeedyWeather.ImplicitPrimitiveEq}","page":"Function and type index","title":"SpeedyWeather.linear_pressure_gradient!","text":"linear_pressure_gradient!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n surface::SpeedyWeather.PrognosticSurfaceTimesteps,\n lf::Int64,\n C::DynamicsConstants,\n I::SpeedyWeather.ImplicitPrimitiveEq\n) -> LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat\n\n\nAdd the linear contribution of the pressure gradient to the geopotential. The pressure gradient in the divergence equation takes the form\n\n-∇⋅(Rd*Tᵥ*∇lnpₛ) = -∇⋅(Rd*Tᵥ'*∇lnpₛ) - ∇²(Rd*Tₖ*lnpₛ)\n\nSo that the second term inside the Laplace operator can be added to the geopotential. Rd is the gas constant, Tᵥ the virtual temperature and Tᵥ' its anomaly wrt to the average or reference temperature Tₖ, lnpₛ is the logarithm of surface pressure.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.linear_virtual_temperature!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, SpeedyWeather.PrognosticLayerTimesteps, DynamicsConstants, Int64}","page":"Function and type index","title":"SpeedyWeather.linear_virtual_temperature!","text":"linear_virtual_temperature!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n progn::SpeedyWeather.PrognosticLayerTimesteps,\n constants::DynamicsConstants,\n lf::Int64\n) -> Any\n\n\nCalculates a linearised virtual temperature Tᵥ as\n\nTᵥ = T + Tₖμq\n\nWith absolute temperature T, layer-average temperarture Tₖ (computed in temperature_average!), specific humidity q and\n\nμ = (1-ξ)/ξ, ξ = R_dry/R_vapour.\n\nin spectral space.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.linear_virtual_temperature!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, SpeedyWeather.PrognosticLayerTimesteps, PrimitiveDry, Integer}","page":"Function and type index","title":"SpeedyWeather.linear_virtual_temperature!","text":"linear_virtual_temperature!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n progn::SpeedyWeather.PrognosticLayerTimesteps,\n model::PrimitiveDry,\n lf::Integer\n) -> LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat\n\n\nLinear virtual temperature for model::PrimitiveDry: Just copy over arrays from temp to temp_virt at timestep lf in spectral space as humidity is zero in this model.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.load_trajectory-Tuple{Union{String, Symbol}, SpeedyWeather.ModelSetup}","page":"Function and type index","title":"SpeedyWeather.load_trajectory","text":"load_trajectory(\n var_name::Union{String, Symbol},\n model::SpeedyWeather.ModelSetup\n) -> Any\n\n\nLoads a var_name trajectory of the model M that has been saved in a netCDF file during the time stepping.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.moist_static_energy!-Tuple{ColumnVariables, SpeedyWeather.Thermodynamics}","page":"Function and type index","title":"SpeedyWeather.moist_static_energy!","text":"moist_static_energy!(\n column::ColumnVariables,\n thermodynamics::SpeedyWeather.Thermodynamics\n)\n\n\nCompute the moist static energy\n\nMSE = SE + Lc*Q = cₚT + Φ + Lc*Q\n\nwith the static energy SE, the latent heat of condensation Lc, the geopotential Φ. As well as the saturation moist static energy which replaces Q with Q_sat\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.nans-Tuple","page":"Function and type index","title":"SpeedyWeather.nans","text":"A = nans(dims...)\n\nAllocate A::Array{Float64} with NaNs.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.nans-Union{Tuple{T}, Tuple{Type{T}, Vararg{Any}}} where T","page":"Function and type index","title":"SpeedyWeather.nans","text":"A = nans(T,dims...)\n\nAllocate array A with NaNs of type T. Similar to zeros(T,dims...).\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.nar_detection!-Tuple{Feedback, PrognosticVariables}","page":"Function and type index","title":"SpeedyWeather.nar_detection!","text":"nar_detection!(\n feedback::Feedback,\n progn::PrognosticVariables\n) -> Union{Nothing, Bool}\n\n\nDetect NaR (Not-a-Real) in the prognostic variables.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.parameterization_tendencies!-Tuple{DiagnosticVariables, Dates.DateTime, PrimitiveEquation}","page":"Function and type index","title":"SpeedyWeather.parameterization_tendencies!","text":"parameterization_tendencies!(\n diagn::DiagnosticVariables,\n time::Dates.DateTime,\n model::PrimitiveEquation\n) -> Any\n\n\nCompute tendencies for u,v,temp,humid from physical parametrizations. Extract for each vertical atmospheric column the prognostic variables (stored in diagn as they are grid-point transformed), loop over all grid-points, compute all parametrizations on a single-column basis, then write the tendencies back into a horizontal field of tendencies.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.pressure_on_orography!-Tuple{PrognosticVariables, PrimitiveEquation}","page":"Function and type index","title":"SpeedyWeather.pressure_on_orography!","text":"pressure_on_orography!(\n progn::PrognosticVariables,\n model::PrimitiveEquation\n)\n\n\nInitialize surface pressure on orography by integrating the hydrostatic equation with the reference temperature lapse rate.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.progress!-Tuple{Feedback}","page":"Function and type index","title":"SpeedyWeather.progress!","text":"progress!(feedback::Feedback)\n\n\nCalls the progress meter and writes every 5% progress increase to txt.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.progress_finish!-Tuple{Feedback}","page":"Function and type index","title":"SpeedyWeather.progress_finish!","text":"progress_finish!(F::Feedback)\n\n\nFinalises the progress meter and the progress txt file.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.readable_secs-Tuple{Real}","page":"Function and type index","title":"SpeedyWeather.readable_secs","text":"readable_secs(secs::Real) -> Dates.CompoundPeriod\n\n\nReturns Dates.CompoundPeriod rounding to either (days, hours), (hours, minutes), (minutes, seconds), or seconds with 1 decimal place accuracy for >10s and two for less. E.g.\n\njulia> readable_secs(12345)\n3 hours, 26 minutes\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.remaining_time-Tuple{ProgressMeter.Progress}","page":"Function and type index","title":"SpeedyWeather.remaining_time","text":"remaining_time(p::ProgressMeter.Progress) -> String\n\n\nEstimates the remaining time from a ProgresssMeter.Progress. Adapted from ProgressMeter.jl\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.reset_column!-Union{Tuple{ColumnVariables{NF}}, Tuple{NF}} where NF","page":"Function and type index","title":"SpeedyWeather.reset_column!","text":"reset_column!(column::ColumnVariables{NF})\n\n\nSet the accumulators (tendencies but also vertical sums and similar) back to zero for column to be reused at other grid points.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.run!-Tuple{SpeedyWeather.Simulation}","page":"Function and type index","title":"SpeedyWeather.run!","text":"run!(\n simulation::SpeedyWeather.Simulation;\n initialize,\n n_days,\n startdate,\n output\n) -> PrognosticVariables\n\n\nRun a SpeedyWeather.jl simulation. The simulation.model is assumed to be initialized, otherwise use initialize=true as keyword argument.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.saturation_humidity!-Tuple{ColumnVariables, SpeedyWeather.Thermodynamics}","page":"Function and type index","title":"SpeedyWeather.saturation_humidity!","text":"saturation_humidity!(\n column::ColumnVariables,\n thermodynamics::SpeedyWeather.Thermodynamics\n)\n\n\nCompute (1) the saturation vapour pressure as a function of temperature using the August-Roche-Magnus formula,\n\neᵢ(T) = e₀ * exp(Cᵢ * (T - T₀) / (T - Tᵢ)),\n\nwhere T is in Kelvin and i = 1,2 for saturation with respect to water and ice, respectively. And (2) the saturation specific humidity according to the formula,\n\n0.622 * e / (p - (1 - 0.622) * e),\n\nwhere e is the saturation vapour pressure, p is the pressure, and 0.622 is the ratio of the molecular weight of water to dry air.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.scale!-Tuple{PrognosticVariables, Real}","page":"Function and type index","title":"SpeedyWeather.scale!","text":"scale!(progn::PrognosticVariables, scale::Real) -> Real\n\n\nScales the prognostic variables vorticity and divergence with the Earth's radius which is used in the dynamical core.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.scale!-Union{Tuple{NF}, Tuple{PrognosticVariables{NF}, Symbol, Real}} where NF","page":"Function and type index","title":"SpeedyWeather.scale!","text":"scale!(\n progn::PrognosticVariables{NF},\n var::Symbol,\n scale::Real\n)\n\n\nScale the variable var inside progn with scalar scale.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.set_divergence!-Tuple{PrognosticVariables, Vararg{Any}}","page":"Function and type index","title":"SpeedyWeather.set_divergence!","text":"set_divergence!(progn::PrognosticVariables, varargs...; kwargs...)\n\nSee set_var!\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.set_humidity!-Tuple{PrognosticVariables, Vararg{Any}}","page":"Function and type index","title":"SpeedyWeather.set_humidity!","text":"set_humidity!(progn::PrognosticVariables, varargs...; kwargs...)\n\nSee set_var!\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.set_pressure!-Tuple{PrognosticVariables, AbstractMatrix}","page":"Function and type index","title":"SpeedyWeather.set_pressure!","text":"set_pressure!(progn::PrognosticVariables{NF}, \n pressure::AbstractMatrix, \n Grid::Type{<:AbstractGrid}, \n lf::Integer=1) where NF\n\nSets the prognostic variable with the surface pressure in grid space at leapfrog index lf.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.set_pressure!-Tuple{PrognosticVariables, LowerTriangularMatrix}","page":"Function and type index","title":"SpeedyWeather.set_pressure!","text":"set_pressure!(progn::PrognosticVariables{NF}, \n pressure::LowerTriangularMatrix;\n lf::Integer=1) where NF\n\nSets the prognostic variable with the surface pressure in spectral space at leapfrog index lf.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.set_pressure!-Tuple{PrognosticVariables, SpeedyWeather.RingGrids.AbstractGrid, SpeedyWeather.ModelSetup}","page":"Function and type index","title":"SpeedyWeather.set_pressure!","text":"set_pressure!(progn::PrognosticVariables{NF}, \n pressure::AbstractGrid, \n M::ModelSetup;\n lf::Integer=1) where NF\n\nSets the prognostic variable with the surface pressure in grid space at leapfrog index lf.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.set_pressure!-Tuple{PrognosticVariables, SpeedyWeather.RingGrids.AbstractGrid}","page":"Function and type index","title":"SpeedyWeather.set_pressure!","text":"set_pressure!(progn::PrognosticVariables{NF}, \n pressure::AbstractGrid, \n lf::Integer=1) where NF\n\nSets the prognostic variable with the surface pressure in grid space at leapfrog index lf.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.set_temperature!-Tuple{PrognosticVariables, Vararg{Any}}","page":"Function and type index","title":"SpeedyWeather.set_temperature!","text":"set_temperature!(progn::PrognosticVariables, varargs...; kwargs...)\n\nSee set_var!\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.set_var!-Union{Tuple{NF}, Tuple{PrognosticVariables{NF}, Symbol, Number}} where NF","page":"Function and type index","title":"SpeedyWeather.set_var!","text":"function set_var!(progn::PrognosticVariables{NF}, \n varname::Symbol, \n s::Number;\n lf::Integer=1) where NF\n\nSets all values of prognostic variable varname at leapfrog index lf to the scalar s.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.set_var!-Union{Tuple{NF}, Tuple{PrognosticVariables{NF}, Symbol, Vector{<:AbstractMatrix}}, Tuple{PrognosticVariables{NF}, Symbol, Vector{<:AbstractMatrix}, Type{<:SpeedyWeather.RingGrids.AbstractGrid}}} where NF","page":"Function and type index","title":"SpeedyWeather.set_var!","text":"set_var!(progn::PrognosticVariables{NF}, \n varname::Symbol, \n var::Vector{<:AbstractMatrix}, \n Grid::Type{<:AbstractGrid}=FullGaussianGrid;\n lf::Integer=1) where NF\n\nSets the prognostic variable with the name varname in all layers at leapfrog index lf with values given in var a vector with all information for all layers in grid space.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.set_var!-Union{Tuple{NF}, Tuple{PrognosticVariables{NF}, Symbol, Vector{<:LowerTriangularMatrix}}} where NF","page":"Function and type index","title":"SpeedyWeather.set_var!","text":"set_var!(progn::PrognosticVariables{NF}, \n varname::Symbol, \n var::Vector{<:LowerTriangularMatrix};\n lf::Integer=1) where NF\n\nSets the prognostic variable with the name varname in all layers at leapfrog index lf with values given in var a vector with all information for all layers in spectral space.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.set_var!-Union{Tuple{NF}, Tuple{PrognosticVariables{NF}, Symbol, Vector{<:SpeedyWeather.RingGrids.AbstractGrid}, SpeedyWeather.ModelSetup}} where NF","page":"Function and type index","title":"SpeedyWeather.set_var!","text":"set_var!(progn::PrognosticVariables{NF}, \n varname::Symbol, \n var::Vector{<:AbstractGrid}, \n M::ModelSetup;\n lf::Integer=1) where NF\n\nSets the prognostic variable with the name varname in all layers at leapfrog index lf with values given in var a vector with all information for all layers in grid space.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.set_var!-Union{Tuple{NF}, Tuple{PrognosticVariables{NF}, Symbol, Vector{<:SpeedyWeather.RingGrids.AbstractGrid}}} where NF","page":"Function and type index","title":"SpeedyWeather.set_var!","text":"set_var!(progn::PrognosticVariables{NF}, \n varname::Symbol, \n var::Vector{<:AbstractGrid};\n lf::Integer=1) where NF\n\nSets the prognostic variable with the name varname in all layers at leapfrog index lf with values given in var a vector with all information for all layers in grid space.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.set_vorticity!-Tuple{PrognosticVariables, Vararg{Any}}","page":"Function and type index","title":"SpeedyWeather.set_vorticity!","text":"set_vorticity!(progn::PrognosticVariables, varargs...; kwargs...)\n\nSee set_var!\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.sigma_okay-Tuple{Integer, AbstractVector}","page":"Function and type index","title":"SpeedyWeather.sigma_okay","text":"sigma_okay(nlev::Integer, σ_half::AbstractVector) -> Bool\n\n\nCheck that nlev and σ_half match.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.speedstring-Tuple{Any, Any}","page":"Function and type index","title":"SpeedyWeather.speedstring","text":"speedstring(sec_per_iter, dt_in_sec) -> String\n\n\ndefine a ProgressMeter.speedstring method that also takes a time step dt_in_sec to translate sec/iteration to days/days-like speeds.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.static_energy_diffusion!-Union{Tuple{NF}, Tuple{ColumnVariables{NF}, SpeedyWeather.StaticEnergyDiffusion}} where NF","page":"Function and type index","title":"SpeedyWeather.static_energy_diffusion!","text":"static_energy_diffusion!(\n column::ColumnVariables{NF},\n scheme::SpeedyWeather.StaticEnergyDiffusion\n)\n\n\nApply dry static energy diffusion.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.surface_pressure_tendency!-Tuple{SpeedyWeather.SurfaceVariables, SpectralTransform}","page":"Function and type index","title":"SpeedyWeather.surface_pressure_tendency!","text":"surface_pressure_tendency!( Prog::PrognosticVariables,\n Diag::DiagnosticVariables,\n lf::Int,\n M::PrimitiveEquation)\n\nComputes the tendency of the logarithm of surface pressure as\n\n-(ū*px + v̄*py) - D̄\n\nwith ū,v̄ being the vertically averaged velocities; px, py the gradients of the logarithm of surface pressure ln(p_s) and D̄ the vertically averaged divergence.\n\nCalculate ∇ln(p_s) in spectral space, convert to grid.\nMultiply ū,v̄ with ∇ln(p_s) in grid-point space, convert to spectral.\nD̄ is subtracted in spectral space.\nSet tendency of the l=m=0 mode to 0 for better mass conservation.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.temperature_anomaly!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, SpeedyWeather.ImplicitPrimitiveEq}","page":"Function and type index","title":"SpeedyWeather.temperature_anomaly!","text":"Convert absolute and virtual temperature to anomalies wrt to the reference profile\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.temperature_average!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, LowerTriangularMatrix, SpectralTransform}","page":"Function and type index","title":"SpeedyWeather.temperature_average!","text":"temperature_average!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n temp::LowerTriangularMatrix,\n S::SpectralTransform\n) -> Any\n\n\nCalculates the average temperature of a layer from the l=m=0 harmonic and stores the result in diagn.temp_average\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.temperature_relaxation!-Tuple{ColumnVariables, JablonowskiRelaxation}","page":"Function and type index","title":"SpeedyWeather.temperature_relaxation!","text":"temperature_relaxation!(\n column::ColumnVariables,\n scheme::JablonowskiRelaxation\n)\n\n\nApply HeldSuarez-like temperature relaxation to the Jablonowski and Williamson vertical profile.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.temperature_relaxation!-Tuple{ColumnVariables, NoTemperatureRelaxation}","page":"Function and type index","title":"SpeedyWeather.temperature_relaxation!","text":"temperature_relaxation!(\n column::ColumnVariables,\n scheme::NoTemperatureRelaxation\n)\n\n\njust passes.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.temperature_relaxation!-Union{Tuple{NF}, Tuple{ColumnVariables{NF}, HeldSuarez}} where NF","page":"Function and type index","title":"SpeedyWeather.temperature_relaxation!","text":"temperature_relaxation!(\n column::ColumnVariables{NF},\n scheme::HeldSuarez\n)\n\n\nApply temperature relaxation following Held and Suarez 1996, BAMS.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.temperature_tendency!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, DynamicsConstants, Geometry, SpectralTransform, SpeedyWeather.ImplicitPrimitiveEq}","page":"Function and type index","title":"SpeedyWeather.temperature_tendency!","text":"temperature_tendency!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n C::DynamicsConstants,\n G::Geometry,\n S::SpectralTransform,\n I::SpeedyWeather.ImplicitPrimitiveEq\n)\n\n\nCompute the temperature tendency\n\n∂T/∂t += -∇⋅((u,v)*T') + T'D + κTᵥ*Dlnp/Dt\n\n+= because the tendencies already contain parameterizations and vertical advection. T' is the anomaly with respect to the reference/average temperature. Tᵥ is the virtual temperature used in the adiabatic term κTᵥ*Dlnp/Dt.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.temperature_tendency!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, PrimitiveEquation}","page":"Function and type index","title":"SpeedyWeather.temperature_tendency!","text":"temperature_tendency!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n model::PrimitiveEquation\n)\n\n\nFunction barrier to unpack model.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.time_stepping!-Tuple{PrognosticVariables, DiagnosticVariables, SpeedyWeather.ModelSetup}","page":"Function and type index","title":"SpeedyWeather.time_stepping!","text":"time_stepping!(\n progn::PrognosticVariables,\n diagn::DiagnosticVariables,\n model::SpeedyWeather.ModelSetup\n) -> PrognosticVariables\n\n\nMain time loop that that initializes output and feedback, loops over all time steps and calls the output and feedback functions.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.timestep!","page":"Function and type index","title":"SpeedyWeather.timestep!","text":"timestep!(\n progn::PrognosticVariables,\n diagn::DiagnosticVariables,\n dt::Real,\n i::Integer,\n model::Barotropic\n)\ntimestep!(\n progn::PrognosticVariables,\n diagn::DiagnosticVariables,\n dt::Real,\n i::Integer,\n model::Barotropic,\n lf1::Int64\n)\ntimestep!(\n progn::PrognosticVariables,\n diagn::DiagnosticVariables,\n dt::Real,\n i::Integer,\n model::Barotropic,\n lf1::Int64,\n lf2::Int64\n)\n\n\nCalculate a single time step for the model <: Barotropic.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.timestep!-Union{Tuple{NF}, Tuple{PrognosticVariables{NF}, DiagnosticVariables{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF}, Real, Integer, PrimitiveEquation}, Tuple{PrognosticVariables{NF}, DiagnosticVariables{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF}, Real, Integer, PrimitiveEquation, Int64}, Tuple{PrognosticVariables{NF}, DiagnosticVariables{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF}, Real, Integer, PrimitiveEquation, Int64, Int64}} where NF<:AbstractFloat","page":"Function and type index","title":"SpeedyWeather.timestep!","text":"timestep!(\n progn::PrognosticVariables{NF<:AbstractFloat},\n diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},\n dt::Real,\n i::Integer,\n model::PrimitiveEquation\n) -> Any\ntimestep!(\n progn::PrognosticVariables{NF<:AbstractFloat},\n diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},\n dt::Real,\n i::Integer,\n model::PrimitiveEquation,\n lf1::Int64\n) -> Any\ntimestep!(\n progn::PrognosticVariables{NF<:AbstractFloat},\n diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},\n dt::Real,\n i::Integer,\n model::PrimitiveEquation,\n lf1::Int64,\n lf2::Int64\n) -> Any\n\n\nCalculate a single time step for the model<:PrimitiveEquation\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.timestep!-Union{Tuple{NF}, Tuple{PrognosticVariables{NF}, DiagnosticVariables{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF}, Real, Integer, ShallowWater}, Tuple{PrognosticVariables{NF}, DiagnosticVariables{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF}, Real, Integer, ShallowWater, Int64}, Tuple{PrognosticVariables{NF}, DiagnosticVariables{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF}, Real, Integer, ShallowWater, Int64, Int64}} where NF<:AbstractFloat","page":"Function and type index","title":"SpeedyWeather.timestep!","text":"timestep!(\n progn::PrognosticVariables{NF<:AbstractFloat},\n diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},\n dt::Real,\n i::Integer,\n model::ShallowWater\n) -> Union{Nothing, SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat}\ntimestep!(\n progn::PrognosticVariables{NF<:AbstractFloat},\n diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},\n dt::Real,\n i::Integer,\n model::ShallowWater,\n lf1::Int64\n) -> Union{Nothing, SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat}\ntimestep!(\n progn::PrognosticVariables{NF<:AbstractFloat},\n diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},\n dt::Real,\n i::Integer,\n model::ShallowWater,\n lf1::Int64,\n lf2::Int64\n) -> Union{Nothing, SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat}\n\n\nCalculate a single time step for the model <: ShallowWater.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.underflow!-Union{Tuple{T}, Tuple{AbstractArray{T}, Real}} where T","page":"Function and type index","title":"SpeedyWeather.underflow!","text":"underflow!(A::AbstractArray,ϵ::Real)\n\nUnderflows element a in A to zero if abs(a) < ϵ.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.unscale!-Tuple{AbstractArray, Real}","page":"Function and type index","title":"SpeedyWeather.unscale!","text":"unscale!(variable::AbstractArray, scale::Real) -> Any\n\n\nUndo the radius-scaling for any variable. Method used for netcdf output.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.unscale!-Tuple{PrognosticVariables}","page":"Function and type index","title":"SpeedyWeather.unscale!","text":"unscale!(progn::PrognosticVariables) -> Int64\n\n\nUndo the radius-scaling of vorticity and divergence from scale!(progn,scale::Real).\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.vertical_integration!-Union{Tuple{NF}, Tuple{DiagnosticVariables{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF}, PrognosticVariables{NF}, Int64, Geometry{NF}}} where NF","page":"Function and type index","title":"SpeedyWeather.vertical_integration!","text":"vertical_integration!(Diag::DiagnosticVariables,G::Geometry)\n\nCalculates the vertically averaged (weighted by the thickness of the σ level) velocities (*coslat) and divergence. E.g.\n\nu_mean = ∑_k=1^nlev Δσ_k * u_k\n\nu,v are averaged in grid-point space, divergence in spectral space.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.virtual_temperature!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, LowerTriangularMatrix, DynamicsConstants}","page":"Function and type index","title":"SpeedyWeather.virtual_temperature!","text":"virtual_temperature!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n temp::LowerTriangularMatrix,\n constants::DynamicsConstants\n)\n\n\nCalculates the virtual temperature Tᵥ as\n\nTᵥ = T(1+μq)\n\nWith absolute temperature T, specific humidity q and\n\nμ = (1-ξ)/ξ, ξ = R_dry/R_vapour.\n\nin grid-point space.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.virtual_temperature!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, LowerTriangularMatrix, PrimitiveDry}","page":"Function and type index","title":"SpeedyWeather.virtual_temperature!","text":"virtual_temperature!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n temp::LowerTriangularMatrix,\n model::PrimitiveDry\n) -> SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat\n\n\nVirtual temperature in grid-point space: For the PrimitiveDry temperature and virtual temperature are the same (humidity=0). Just copy over the arrays.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.volume_flux_divergence!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, SpeedyWeather.SurfaceVariables, SpeedyWeather.AbstractOrography, DynamicsConstants, Geometry, SpectralTransform}","page":"Function and type index","title":"SpeedyWeather.volume_flux_divergence!","text":"volume_flux_divergence!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n surface::SpeedyWeather.SurfaceVariables,\n orog::SpeedyWeather.AbstractOrography,\n constants::DynamicsConstants,\n G::Geometry,\n S::SpectralTransform\n)\n\n\nComputes the (negative) divergence of the volume fluxes uh,vh for the continuity equation, -∇⋅(uh,vh).\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.vordiv_tendencies!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, SpeedyWeather.SurfaceVariables, DynamicsConstants, Geometry, SpectralTransform}","page":"Function and type index","title":"SpeedyWeather.vordiv_tendencies!","text":"vordiv_tendencies!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n surf::SpeedyWeather.SurfaceVariables,\n C::DynamicsConstants,\n G::Geometry,\n S::SpectralTransform\n)\n\n\nTendencies for vorticity and divergence. Excluding Bernoulli potential with geopotential and linear pressure gradient inside the Laplace operator, which are added later in spectral space.\n\nu_tend += v*(f+ζ) - RTᵥ'*∇lnp_x\nv_tend += -u*(f+ζ) - RTᵥ'*∇lnp_y\n\n+= because the tendencies already contain the parameterizations and vertical advection. f is coriolis, ζ relative vorticity, R the gas constant Tᵥ' the virtual temperature anomaly, ∇lnp the gradient of surface pressure and _x and _y its zonal/meridional components. The tendencies are then curled/dived to get the tendencies for vorticity/divergence in spectral space\n\n∂ζ/∂t = ∇×(u_tend,v_tend)\n∂D/∂t = ∇⋅(u_tend,v_tend) + ...\n\n+ ... because there's more terms added later for divergence.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.vordiv_tendencies!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, SpeedyWeather.SurfaceVariables, PrimitiveEquation}","page":"Function and type index","title":"SpeedyWeather.vordiv_tendencies!","text":"vordiv_tendencies!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n surf::SpeedyWeather.SurfaceVariables,\n model::PrimitiveEquation\n)\n\n\nFunction barrier to unpack model.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.vorticity_flux!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, Barotropic}","page":"Function and type index","title":"SpeedyWeather.vorticity_flux!","text":"vorticity_flux!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n model::Barotropic\n)\n\n\nVorticity flux tendency in the barotropic vorticity equation\n\n∂ζ/∂t = ∇×(u_tend,v_tend)\n\nwith\n\nu_tend = Fᵤ + v*(ζ+f) v_tend = Fᵥ - u*(ζ+f)\n\nwith Fᵤ,Fᵥ the forcing from forcing! already in u_tend_grid/v_tend_grid and vorticity ζ, coriolis f.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.vorticity_flux!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, ShallowWater}","page":"Function and type index","title":"SpeedyWeather.vorticity_flux!","text":"vorticity_flux!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n model::ShallowWater\n)\n\n\nVorticity flux tendency in the shallow water equations\n\n∂ζ/∂t = ∇×(u_tend,v_tend) ∂D/∂t = ∇⋅(u_tend,v_tend)\n\nwith\n\nu_tend = Fᵤ + v*(ζ+f) v_tend = Fᵥ - u*(ζ+f)\n\nwith Fᵤ,Fᵥ the forcing from forcing! already in u_tend_grid/v_tend_grid and vorticity ζ, coriolis f.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.vorticity_flux_curldiv!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, DynamicsConstants, Geometry, SpectralTransform}","page":"Function and type index","title":"SpeedyWeather.vorticity_flux_curldiv!","text":"vorticity_flux_curldiv!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n C::DynamicsConstants,\n G::Geometry,\n S::SpectralTransform;\n div\n)\n\n\nCompute the vorticity advection as the curl/div of the vorticity fluxes\n\n∂ζ/∂t = ∇×(u_tend,v_tend) ∂D/∂t = ∇⋅(u_tend,v_tend)\n\nwith\n\nu_tend = Fᵤ + v*(ζ+f) v_tend = Fᵥ - u*(ζ+f)\n\nwith Fᵤ,Fᵥ from u_tend_grid/v_tend_grid that are assumed to be alread set in forcing!. Set div=false for the BarotropicModel which doesn't require the divergence tendency.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.workgroup_size-Tuple{SpeedyWeather.AbstractDevice}","page":"Function and type index","title":"SpeedyWeather.workgroup_size","text":"workgroup_size(dev::AbstractDevice)\n\nReturns a workgroup size depending on dev. WIP: Will be expanded in the future to also include grid information. \n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.write_column_tendencies!-Tuple{DiagnosticVariables, ColumnVariables, Int64}","page":"Function and type index","title":"SpeedyWeather.write_column_tendencies!","text":"write_column_tendencies!(\n D::DiagnosticVariables,\n C::ColumnVariables,\n ij::Int64\n)\n\n\nWrite the parametrization tendencies from C::ColumnVariables into the horizontal fields of tendencies stored in D::DiagnosticVariables at gridpoint index ij.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.write_netcdf_time!-Tuple{OutputWriter, Dates.DateTime}","page":"Function and type index","title":"SpeedyWeather.write_netcdf_time!","text":"write_netcdf_time!(\n output::OutputWriter,\n time::Dates.DateTime\n)\n\n\nWrite the current time time::DateTime to the netCDF file in output::OutputWriter.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.write_netcdf_variables!-Union{Tuple{Model}, Tuple{Grid}, Tuple{NF}, Tuple{OutputWriter, DiagnosticVariables{NF, Grid, Model}}} where {NF, Grid, Model}","page":"Function and type index","title":"SpeedyWeather.write_netcdf_variables!","text":"write_netcdf_variables!(\n output::OutputWriter,\n diagn::DiagnosticVariables{NF, Grid, Model}\n)\n\n\nWrite diagnostic variables from diagn to the netCDF file in output::OutputWriter.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.write_output!-Tuple{OutputWriter, Dates.DateTime, DiagnosticVariables}","page":"Function and type index","title":"SpeedyWeather.write_output!","text":"write_output!(\n outputter::OutputWriter,\n time::Dates.DateTime,\n diagn::DiagnosticVariables\n)\n\n\nWrites the variables from diagn of time step i at time time into outputter.netcdf_file. Simply escapes for no netcdf output of if output shouldn't be written on this time step. Interpolates onto output grid and resolution as specified in outputter, converts to output number format, truncates the mantissa for higher compression and applies lossless compression.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.write_restart_file-Tuple{PrognosticVariables, OutputWriter}","page":"Function and type index","title":"SpeedyWeather.write_restart_file","text":"write_restart_file(\n progn::PrognosticVariables,\n output::OutputWriter\n) -> Union{Nothing, String}\n\n\nA restart file restart.jld2 with the prognostic variables is written to the output folder (or current path) that can be used to restart the model. restart.jld2 will then be used as initial conditions. The prognostic variables are bitrounded for compression and the 2nd leapfrog time step is discarded. Variables in restart file are unscaled.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.zero_tendencies!-Tuple{DiagnosticVariables}","page":"Function and type index","title":"SpeedyWeather.zero_tendencies!","text":"zero_tendencies!(diagn::DiagnosticVariables)\n\n\nSet the tendencies in diagn to zero.\n\n\n\n\n\n","category":"method"},{"location":"how_to_run_speedy/#How-to-run-SpeedyWeather.jl","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"","category":"section"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"Creating a SpeedyWeather.jl simulation and running it consists conceptually of 4 steps","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"Create a SpectralGrid which defines the grid and spectral resolution\nCreate a model\nInitialize a model to obtain a Simulation.\nRun the simulation.","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"In the following we will describe these steps in more detail, but let's start with some examples first.","category":"page"},{"location":"how_to_run_speedy/#Example-1:-2D-turbulence-on-a-non-rotating-sphere","page":"How to run SpeedyWeather.jl","title":"Example 1: 2D turbulence on a non-rotating sphere","text":"","category":"section"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"We want to use the barotropic model to simulate some free-decaying 2D turbulence on the sphere without rotation. We start by defining the SpectralGrid object. To have a resolution of about 100km, we choose a spectral resolution of T127 (see Available horizontal resolutions) and nlev=1 vertical levels. The SpectralGrid object will provide us with some more information","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> spectral_grid = SpectralGrid(trunc=127,nlev=1)\nSpectralGrid:\n Spectral: T127 LowerTriangularMatrix{Complex{Float32}}, radius = 6.371e6 m\n Grid: 40320-element, 192-ring OctahedralGaussianGrid{Float32} (quadratic)\n Resolution: 112km (average)\n Vertical: 1-level SigmaCoordinates","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"We could have specified further options, but let's ignore that for now. Next step we create a planet that's like Earth but not rotating","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> still_earth = Earth(rotation=0)\nMain.SpeedyWeather.Earth\n rotation: Float64 0.0\n gravity: Float64 9.81\n daily_cycle: Bool true\n length_of_day: Float64 24.0\n seasonal_cycle: Bool true\n length_of_year: Float64 365.25\n equinox: Dates.DateTime\n axial_tilt: Float64 23.4","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"There are other options to create a planet but they are irrelevant for the barotropic vorticity equations. We also want to specify the initial conditions, randomly distributed vorticity is already defined","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> initial_conditions = StartWithRandomVorticity()\nStartWithRandomVorticity\n power_law: Float64 -3.0\n amplitude: Float64 1.0e-5","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"By default, the power of vorticity is spectrally distributed with k^-3, k being the horizontal wavenumber, and the amplitude is 10^-5text s^-1.","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"Now we want to construct a BarotropicModel with these","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> model = BarotropicModel(;spectral_grid, initial_conditions, planet=still_earth);","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"The model contains all the parameters, but isn't initialized yet, which we can do with and then run it.","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> simulation = initialize!(model);\njulia> run!(simulation,n_days=30)","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"The run! command will always return the prognostic variables, which, by default, are plotted for surface relative vorticity with a unicode plot. The resolution of the plot is not necessarily representative but it lets us have a quick look at the result","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"(Image: Barotropic vorticity unicode plot)","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"Woohoo! I can see turbulence! You could pick up where this simulation stopped by simply doing run!(simulation,n_days=50) again. We didn't store any output, which you can do by run!(simulation,output=true), which will switch on NetCDF output with default settings. More options on output in NetCDF output.","category":"page"},{"location":"how_to_run_speedy/#Example-2:-Shallow-water-with-mountains","page":"How to run SpeedyWeather.jl","title":"Example 2: Shallow water with mountains","text":"","category":"section"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"As a second example, let's investigate the Galewsky et al.[1] test case for the shallow water equations with and without mountains. As the shallow water system has also only one level, we can reuse the SpectralGrid from Example 1.","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> spectral_grid = SpectralGrid(trunc=127,nlev=1)","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"Now as a first simulation, we want to disable any orography, so we create a NoOrography","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> orography = NoOrography(spectral_grid)\nNoOrography{Float32, OctahedralGaussianGrid{Float32}}","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"Although the orography is zero, you have to pass on spectral_grid so that it can still initialize zero-arrays of the right size and element type. Awesome. This time the initial conditions should be set the the Galewsky et al.[1] zonal jet, which is already defined as","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> initial_conditions = ZonalJet()\nZonalJet\n latitude: Float64 45.0\n width: Float64 19.28571428571429\n umax: Float64 80.0\n perturb_lat: Float64 45.0\n perturb_lon: Float64 270.0\n perturb_xwidth: Float64 19.098593171027442\n perturb_ywidth: Float64 3.819718634205488\n perturb_height: Float64 120.0","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"The jet sits at 45˚N with a maximum velocity of 80m/s and a perturbation as described in their paper. Now we construct a model, but this time a ShallowWaterModel","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> model = ShallowWaterModel(;spectral_grid, orography, initial_conditions);\njulia> simulation = initialize!(model);","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"(Image: Galewsky jet unicode plot)","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"Oh yeah. That looks like the wobbly jet in their paper. Let's run it again for another 6 days but this time also store NetCDF output.","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> run!(simulation,n_days=6,output=true)\nWeather is speedy: run 0002 100%|███████████████████████| Time: 0:00:12 (115.37 years/day)","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"The progress bar tells us that the simulation run got the identification \"0002\", meaning that data is stored in the folder /run_0002, so let's plot that data properly (and not just using UnicodePlots).","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> using PyPlot, NCDatasets\njulia> ds = NCDataset(\"run_0002/output.nc\");\njulia> ds[\"vor\"]\nvor (384 × 192 × 1 × 25)\n Datatype: Float32\n Dimensions: lon × lat × lev × time\n Attributes:\n units = 1/s\n missing_value = NaN\n long_name = relative vorticity\n _FillValue = NaN","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"Vorticity vor is stored as a 384x192x1x25 array, we may want to look at the first time step, which is the end of the previous simulation (time=6days) which we didn't store output for.","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> vor = ds[\"vor\"][:,:,1,1];\njulia> lat = ds[\"lat\"][:];\njulia> lon = ds[\"lon\"][:];\njulia> pcolormesh(lon,lat,vor')","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"Which looks like","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"(Image: Galewsky jet pyplot)","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"You see that the unicode plot heavily coarse-grains the simulation, well it's unicode after all! And now the last time step, that means time=12days is","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> vor = ds[\"vor\"][:,:,1,25];\njulia> pcolormesh(lon,lat,vor')","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"(Image: Galewsky jet pyplot)","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"The jet broke up into many small eddies, but the turbulence is still confined to the northern hemisphere, cool! How this may change when we add mountains (we had NoOrography above!), say Earth's orography, you may ask? Let's try it out! We create an EarthOrography struct like so","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> orography = EarthOrography(spectral_grid)\nEarthOrography{Float32, OctahedralGaussianGrid{Float32}}:\n path::String = SpeedyWeather.jl/input_data\n file::String = orography_F512.nc\n scale::Float64 = 1.0\n smoothing::Bool = true\n smoothing_power::Float64 = 1.0\n smoothing_strength::Float64 = 0.1\n smoothing_truncation::Int64 = 85","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"It will read the orography from file as shown, and there are some smoothing options too, but let's not change them. Same as before, create a model, initialize into a simulation, run. This time directly for 12 days so that we can compare with the last plot","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> model = ShallowWaterModel(;spectral_grid, orography, initial_conditions);\njulia> simulation = initialize!(model);\njulia> run!(simulation,n_days=12,output=true)\nWeather is speedy: run 0003 100%|███████████████████████| Time: 0:00:35 (79.16 years/day)","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"This time the run got the id \"0003\", but otherwise we do as before.","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"(Image: Galewsky jet pyplot)","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"Interesting! The initial conditions have zero velocity in the southern hemisphere, but still, one can see some imprint of the orography on vorticity. You can spot the coastline of Antarctica; the Andes and Greenland are somewhat visible too. Mountains also completely changed the flow after 12 days, probably not surprising!","category":"page"},{"location":"how_to_run_speedy/#SpectralGrid","page":"How to run SpeedyWeather.jl","title":"SpectralGrid","text":"","category":"section"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"The life of every SpeedyWeather.jl simulation starts with a SpectralGrid object. We have seen some examples above, now let's look into the details","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"SpectralGrid","category":"page"},{"location":"how_to_run_speedy/#References","page":"How to run SpeedyWeather.jl","title":"References","text":"","category":"section"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"[1] Galewsky, Scott, Polvani, 2004. An initial-value problem for testing numerical models of the global shallow-water equations, Tellus A. DOI: 10.3402/tellusa.v56i5.14436","category":"page"},{"location":"speedytransforms/#SpeedyTransforms","page":"Submodule: SpeedyTransforms","title":"SpeedyTransforms","text":"","category":"section"},{"location":"speedytransforms/","page":"Submodule: SpeedyTransforms","title":"Submodule: SpeedyTransforms","text":"SpeedyTransforms is a submodule that has been developed for SpeedyWeather.jl which is technically independent (SpeedyWeather.jl however imports it) and can also be used without running simulations. It is just not put into its own respective repository.","category":"page"},{"location":"speedytransforms/#Example-transforms","page":"Submodule: SpeedyTransforms","title":"Example transforms","text":"","category":"section"},{"location":"speedytransforms/","page":"Submodule: SpeedyTransforms","title":"Submodule: SpeedyTransforms","text":"julia> using SpeedyWeather\njulia> alms = zeros(ComplexF64,3,3) # spectral coefficients\njulia> alms[2,2] = 1 # only l=1,m=1 harmonic\njulia> map = gridded(alms) # convert to grid space\n8×4 Matrix{Float64}:\n -0.324541 -0.600363 -0.600363 -0.324541\n -0.134429 -0.248678 -0.248678 -0.134429\n 0.134429 0.248678 0.248678 0.134429\n 0.324541 0.600363 0.600363 0.324541\n 0.324541 0.600363 0.600363 0.324541\n 0.134429 0.248678 0.248678 0.134429\n -0.134429 -0.248678 -0.248678 -0.134429\n -0.324541 -0.600363 -0.600363 -0.324541\n \njulia> spectral(map) # back to spectral space\n3×3 Matrix{ComplexF64}:\n 0.0+0.0im 0.0+0.0im 0.0+0.0im\n 0.0+0.0im 1.0+3.60727e-17im 0.0+0.0im\n 0.0+0.0im 0.0+0.0im 0.0+0.0im","category":"page"},{"location":"speedytransforms/","page":"Submodule: SpeedyTransforms","title":"Submodule: SpeedyTransforms","text":"and we have successfully reobtained the l=m=1 spherical harmonic.","category":"page"},{"location":"speedytransforms/#Functions-and-type-index","page":"Submodule: SpeedyTransforms","title":"Functions and type index","text":"","category":"section"},{"location":"speedytransforms/","page":"Submodule: SpeedyTransforms","title":"Submodule: SpeedyTransforms","text":"Modules = [SpeedyWeather.SpeedyTransforms]","category":"page"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.SpectralTransform","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.SpectralTransform","text":"S = SpectralTransform{NF<:AbstractFloat}(...)\n\nSpectralTransform struct that contains all parameters and preallocated arrays for the spectral transform.\n\n\n\n\n\n","category":"type"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.SpectralTransform-Union{Tuple{AbstractArray{Complex{NF}, 2}}, Tuple{NF}} where NF","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.SpectralTransform","text":"S = SpectralTransform( alms::AbstractMatrix{Complex{NF}};\n recompute_legendre::Bool=true,\n Grid::Type{<:AbstractGrid}=DEFAULT_GRID)\n\nGenerator function for a SpectralTransform struct based on the size of the spectral coefficients alms and the grid Grid. Recomputes the Legendre polynomials by default.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.SpectralTransform-Union{Tuple{NF}, Tuple{Type{NF}, Type{<:SpeedyWeather.RingGrids.AbstractGrid}, Int64, Int64}} where NF","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.SpectralTransform","text":"SpectralTransform(\n ::Type{NF},\n Grid::Type{<:SpeedyWeather.RingGrids.AbstractGrid},\n lmax::Int64,\n mmax::Int64;\n recompute_legendre,\n legendre_shortcut,\n dealiasing\n) -> SpectralTransform\n\n\nGenerator function for a SpectralTransform struct. With NF the number format, Grid the grid type <:AbstractGrid and spectral truncation lmax,mmax this function sets up necessary constants for the spetral transform. Also plans the Fourier transforms, retrieves the colatitudes, and preallocates the Legendre polynomials (if recompute_legendre == false) and quadrature weights.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.SpectralTransform-Union{Tuple{SpeedyWeather.RingGrids.AbstractGrid{NF}}, Tuple{NF}} where NF","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.SpectralTransform","text":"S = SpectralTransform( map::AbstractGrid;\n recompute_legendre::Bool=true)\n\nGenerator function for a SpectralTransform struct based on the size and grid type of gridded field map. Recomputes the Legendre polynomials by default.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.UV_from_vor!-Union{Tuple{NF}, Tuple{LowerTriangularMatrix{Complex{NF}}, LowerTriangularMatrix{Complex{NF}}, LowerTriangularMatrix{Complex{NF}}, SpectralTransform{NF}}} where NF<:AbstractFloat","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.UV_from_vor!","text":"UV_from_vor!( U::LowerTriangularMatrix,\n V::LowerTriangularMatrix,\n vor::LowerTriangularMatrix,\n S::SpectralTransform)\n\nGet U,V (=(u,v)*coslat) from vorticity ζ spectral space (divergence D=0) Two operations are combined into a single linear operation. First, invert the spherical Laplace ∇² operator to get stream function from vorticity. Then compute zonal and meridional gradients to get U,V.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.UV_from_vordiv!-Union{Tuple{NF}, Tuple{LowerTriangularMatrix{Complex{NF}}, LowerTriangularMatrix{Complex{NF}}, LowerTriangularMatrix{Complex{NF}}, LowerTriangularMatrix{Complex{NF}}, SpectralTransform{NF}}} where NF<:AbstractFloat","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.UV_from_vordiv!","text":"UV_from_vordiv!(U::LowerTriangularMatrix,\n V::LowerTriangularMatrix,\n vor::LowerTriangularMatrix,\n div::LowerTriangularMatrix,\n S::SpectralTransform)\n\nGet U,V (=(u,v)*coslat) from vorticity ζ and divergence D in spectral space. Two operations are combined into a single linear operation. First, invert the spherical Laplace ∇² operator to get stream function from vorticity and velocity potential from divergence. Then compute zonal and meridional gradients to get U,V.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms._divergence!-Union{Tuple{NF}, Tuple{Any, LowerTriangularMatrix{Complex{NF}}, LowerTriangularMatrix{Complex{NF}}, LowerTriangularMatrix{Complex{NF}}, SpectralTransform{NF}}} where NF<:AbstractFloat","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms._divergence!","text":"_divergence!( kernel,\n div::LowerTriangularMatrix,\n u::LowerTriangularMatrix,\n v::LowerTriangularMatrix,\n S::SpectralTransform)\n\nGeneric divergence function of vector u,v that writes into the output into div. Generic as it uses the kernel kernel such that curl, div, add or flipsign options are provided through kernel, but otherwise a single function is used.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.curl!-Tuple{LowerTriangularMatrix, LowerTriangularMatrix, LowerTriangularMatrix, SpectralTransform}","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.curl!","text":"curl!( curl::LowerTriangularMatrix,\n u::LowerTriangularMatrix,\n v::LowerTriangularMatrix,\n S::SpectralTransform;\n flipsign::Bool=false,\n add::Bool=false,\n )\n\nCurl of a vector u,v written into curl, curl = ∇×(u,v). u,v are expected to have a 1/coslat-scaling included, then curl is not scaled. flipsign option calculates -∇×(u,v) instead. add option calculates curl += ∇×(u,v) instead. flipsign and add can be combined. This functions only creates the kernel and calls the generic divergence function _divergence! subsequently with flipped u,v -> v,u for the curl.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.divergence!-Tuple{LowerTriangularMatrix, LowerTriangularMatrix, LowerTriangularMatrix, SpectralTransform}","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.divergence!","text":"divergence!(div::LowerTriangularMatrix,\n u::LowerTriangularMatrix,\n v::LowerTriangularMatrix,\n S::SpectralTransform{NF};\n flipsign::Bool=false,\n add::Bool=false,\n )\n\nDivergence of a vector u,v written into div, div = ∇⋅(u,v). u,v are expected to have a 1/coslat-scaling included, then div is not scaled. flipsign option calculates -∇⋅(u,v) instead. add option calculates div += ∇⋅(u,v) instead. flipsign and add can be combined. This functions only creates the kernel and calls the generic divergence function _divergence! subsequently.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.get_recursion_factors-Union{Tuple{NF}, Tuple{Type{NF}, Int64, Int64}} where NF<:AbstractFloat","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.get_recursion_factors","text":"get_recursion_factors( ::Type{NF}, # number format NF\n lmax::Int, # max degree l of spherical harmonics (0-based here)\n mmax::Int # max order m of spherical harmonics\n ) where {NF<:AbstractFloat}\n\nReturns a matrix of recursion factors ϵ up to degree lmax and order mmax of number format NF.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.gridded!-Union{Tuple{NF}, Tuple{SpeedyWeather.RingGrids.AbstractGrid{NF}, LowerTriangularMatrix{Complex{NF}}, SpectralTransform{NF}}} where NF<:AbstractFloat","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.gridded!","text":"gridded!( map::AbstractGrid,\n alms::LowerTriangularMatrix,\n S::SpectralTransform)\n\nSpectral transform (spectral to grid) of the spherical harmonic coefficients alms to a gridded field map. The spectral transform is number format-flexible as long as the parametric types of map, alms, S are identical. The spectral transform is grid-flexible as long as the typeof(map)<:AbstractGrid. Uses the precalculated arrays, FFT plans and other constants in the SpectralTransform struct S.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.gridded-Union{Tuple{AbstractMatrix{T}}, Tuple{T}, Tuple{NF}} where {NF, T<:Complex{NF}}","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.gridded","text":"map = gridded( alms::AbstractMatrix;\n recompute_legendre::Bool=true,\n grid::Type{<:AbstractGrid}=DEFAULT_GRID)\n\nSpectral transform (spectral to grid space) from spherical coefficients alms to a newly allocated gridded field map. Based on the size of alms the grid type grid, the spatial resolution is retrieved based on the truncation defined for grid. SpectralTransform struct S is allocated to execute gridded(alms,S).\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.gridded-Union{Tuple{NF}, Tuple{AbstractMatrix, SpectralTransform{NF}}} where NF","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.gridded","text":"map = gridded( alms::AbstractMatrix,\n S::SpectralTransform)\n\nSpectral transform (spectral to grid space) from spherical coefficients alms to a newly allocated gridded field map with precalculated properties based on the SpectralTransform struct S. alms is converted to a LowerTriangularMatrix to execute the in-place gridded!.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.is_power_2-Tuple{Integer}","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.is_power_2","text":"true/false = is_power_2(i::Integer)\n\nChecks whether an integer i is a power of 2, i.e. i = 2^k, with k = 0,1,2,3,....\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.roundup_fft-Union{Tuple{Integer}, Tuple{T}} where T<:Integer","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.roundup_fft","text":"m = roundup_fft(n::Int;\n small_primes::Vector{Int}=[2,3,5])\n\nReturns an integer m >= n with only small prime factors 2, 3 (default, others can be specified with the keyword argument small_primes) to obtain an efficiently fourier-transformable number of longitudes, m = 2^i * 3^j * 5^k >= n, with i,j,k >=0.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.spectral!-Union{Tuple{NF}, Tuple{LowerTriangularMatrix{Complex{NF}}, SpeedyWeather.RingGrids.AbstractGrid{NF}, SpectralTransform{NF}}} where NF<:AbstractFloat","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.spectral!","text":"spectral!( alms::LowerTriangularMatrix,\n map::AbstractGrid,\n S::SpectralTransform)\n\nSpectral transform (grid to spectral space) from the gridded field map on a grid<:AbstractGrid to a LowerTriangularMatrix of spherical harmonic coefficients alms. Uses FFT in the zonal direction, and a Legendre Transform in the meridional direction exploiting symmetries. The spectral transform is number format-flexible as long as the parametric types of map, alms, S are identical. The spectral transform is grid-flexible as long as the typeof(map)<:AbstractGrid. Uses the precalculated arrays, FFT plans and other constants in the SpectralTransform struct S.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.spectral-Tuple{AbstractMatrix}","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.spectral","text":"alms = spectral( map::AbstractMatrix;\n Grid::Type{<:AbstractGrid}=DEFAULT_GRID,\n kwargs...)\n\nConverts map to grid(map) to execute spectral(map::AbstractGrid;kwargs...).\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.spectral-Union{Tuple{NF}, Tuple{SpeedyWeather.RingGrids.AbstractGrid{NF}, SpectralTransform{NF}}} where NF","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.spectral","text":"alms = spectral( map::AbstractMatrix;\n Grid::Type{<:AbstractGrid}=DEFAULT_GRID,\n kwargs...)\n\nSpectral transform (grid to spectral) map to grid(map) to execute spectral(map::AbstractGrid;kwargs...).\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.spectral-Union{Tuple{SpeedyWeather.RingGrids.AbstractGrid{NF}}, Tuple{NF}} where NF","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.spectral","text":"alms = spectral( map::AbstractGrid;\n Grid::Type{<:AbstractGrid}=DEFAULT_GRID,\n kwargs...)\n\nConverts map to Grid(map) to execute spectral(map::AbstractGrid;kwargs...).\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.spectral_interpolation-Union{Tuple{NF}, Tuple{Type{NF}, LowerTriangularMatrix, Integer, Integer}} where NF","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.spectral_interpolation","text":"alms_interp = spectral_interpolation( ::Type{NF},\n alms::LowerTriangularMatrix,\n ltrunc::Integer,\n mtrunc::Integer\n ) where NF\n\nReturns a spectral coefficient matrix alms_interp that is alms padded with zeros to interpolate in spectral space. If trunc is smaller or equal to the implicit truncation in alms obtained from its size than spectral_truncation is automatically called instead, returning alms_trunc, a coefficient matrix that is smaller than alms, implicitly setting higher degrees and orders to zero.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.spectral_smoothing!-Tuple{LowerTriangularMatrix, Real}","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.spectral_smoothing!","text":"spectral_smoothing!(A::LowerTriangularMatrix,c;power=1)\n\nSmooth the spectral field A following A = (1-(1-c)∇²ⁿ) with power n of a normalised Laplacian so that the highest degree lmax is dampened by multiplication with c. Anti-diffusion for c>1.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.spectral_smoothing-Tuple{LowerTriangularMatrix, Real}","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.spectral_smoothing","text":"A_smooth = spectral_smoothing(A::LowerTriangularMatrix,c;power=1)\n\nSmooth the spectral field A following A_smooth = (1-c*∇²ⁿ)A with power n of a normalised Laplacian so that the highest degree lmax is dampened by multiplication with c. Anti-diffusion for c<0.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.spectral_truncation!-Tuple{AbstractMatrix, Int64}","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.spectral_truncation!","text":"spectral_truncation!(alms,trunc)\n\nTruncate spectral coefficients alms in-place by setting (a) the upper right triangle to zero and (b) all coefficients for which the degree l is larger than the truncation trunc.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.spectral_truncation!-Tuple{AbstractMatrix}","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.spectral_truncation!","text":"spectral_truncation!(alms)\n\nTruncate spectral coefficients alms in-place by setting the upper right triangle to zero. This is to enforce that all coefficients for which the degree l is larger than order m are zero.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.spectral_truncation!-Union{Tuple{NF}, Tuple{AbstractMatrix{NF}, Integer, Integer}} where NF","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.spectral_truncation!","text":"spectral_truncation!(alms::AbstractMatrix,ltrunc::Integer,mtrunc::Integer)\n\nTruncate spectral coefficients alms in-place by setting (a) the upper right triangle to zero and (b) all coefficients for which the degree l is larger than the truncation ltrunc or order m larger than the truncaction mtrunc.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.spectral_truncation!-Union{Tuple{NF}, Tuple{LowerTriangularMatrix{NF}, Integer, Integer}} where NF","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.spectral_truncation!","text":"spectral_truncation!(alms::LowerTriangularMatrix,ltrunc::Integer,mtrunc::Integer)\n\nTruncate spectral coefficients alms in-place by setting all coefficients for which the degree l is larger than the truncation ltrunc or order m larger than the truncaction mtrunc. Similar to spectral_truncation!(::AbstractMatrix, ...) but skips the upper triangle which is zero by design for LowerTriangularMatrix.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.spectral_truncation-Union{Tuple{NF}, Tuple{Type{NF}, LowerTriangularMatrix, Integer, Integer}} where NF","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.spectral_truncation","text":"alms_trunc = spectral_truncation(alms,trunc)\n\nReturns a spectral coefficient matrix alms_trunc that is truncated from alms to the size (trunc+1)². alms_trunc only contains those coefficient of alms for which m,l ≤ trunc, and l ≥ m are zero anyway. If trunc is larger than the implicit truncation in alms obtained from its size than spectral_interpolation is automatically called instead, returning alms_interp, a coefficient matrix that is larger than alms with padded zero coefficients.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.ϵlm-Tuple{Int64, Int64}","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.ϵlm","text":"ϵ = ϵ(l,m)\n\nRecursion factors ϵ as a function of degree l and order m (0-based) of the spherical harmonics. ϵ(l,m) = sqrt((l^2-m^2)/(4*l^2-1)) with default number format Float64.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.ϵlm-Union{Tuple{NF}, Tuple{Type{NF}, Int64, Int64}} where NF","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.ϵlm","text":"ϵ = ϵ(NF,l,m)\n\nRecursion factors ϵ as a function of degree l and order m (0-based) of the spherical harmonics. ϵ(l,m) = sqrt((l^2-m^2)/(4*l^2-1)) and then converted to number format NF.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.∇²!-Union{Tuple{NF}, Tuple{LowerTriangularMatrix{Complex{NF}}, LowerTriangularMatrix{Complex{NF}}, SpectralTransform{NF}}} where NF<:AbstractFloat","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.∇²!","text":"∇²!( ∇²alms::LowerTriangularMatrix,\n alms::LowerTriangularMatrix,\n S::SpectralTransform;\n add::Bool=false,\n flipsign::Bool=false,\n inverse::Bool=false)\n\nLaplace operator ∇² applied to the spectral coefficients alms in spherical coordinates. The radius R is omitted in the eigenvalues which are precomputed in S. ∇²! is the in-place version which directly stores the output in the first argument ∇²alms.\n\nKeyword arguments\n\nadd=true adds the ∇²(alms) to the output\nflipsign=true computes -∇²(alms) instead\ninverse=true computes ∇⁻²(alms) instead\n\nDefault is add=false, flipsign=false, inverse=false. These options can be combined.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.∇⁻²!-Union{Tuple{NF}, Tuple{LowerTriangularMatrix{Complex{NF}}, LowerTriangularMatrix{Complex{NF}}, SpectralTransform{NF}}} where NF<:AbstractFloat","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.∇⁻²!","text":"∇⁻²!( ∇⁻²alms::LowerTriangularMatrix,\n alms::LowerTriangularMatrix,\n S::SpectralTransform;\n add::Bool=false,\n flipsign::Bool=false)\n\nCalls ∇²!(∇⁻²alms, alms, S; add, flipsign, inverse=true).\n\n\n\n\n\n","category":"method"},{"location":"grids/#Grids","page":"Grids","title":"Grids","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"The spectral transform (the Spherical Harmonic Transform) in SpeedyWeather.jl supports any ring-based equi-longitude grid. Several grids are already implemented but other can be added. The following pages will describe an overview of these grids and but let's start but how they can be used","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"julia> spectral_grid = SpectralGrid(Grid = FullGaussianGrid)\nSpectralGrid:\n Spectral: T31 LowerTriangularMatrix{Complex{Float32}}, radius = 6.371e6 m\n Grid: 4608-element, 48-ring FullGaussianGrid{Float32} (quadratic)\n Resolution: 333km (average)\n Vertical: 8-level SigmaCoordinates","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"The life of every SpeedyWeather.jl simulation starts with a SpectralGrid object which defines the resolution in spectral and in grid-point space. The generator SpectralGrid() can take as a keyword argument Grid which can be any of the grids described below. The resolution of the grid, however, is not directly chosen, but determined from the spectral resolution trunc and the dealiasing factor. More in Matching spectral and grid resolution.","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"info: RingGrids is a module too!\nWhile RingGrids is the underlying module that SpeedyWeather.jl uses for data structs on the sphere, the module can also be used independently of SpeedyWeather, for example to interpolate between data on different grids. See RingGrids","category":"page"},{"location":"grids/#Ring-based-equi-longitude-grids","page":"Grids","title":"Ring-based equi-longitude grids","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"SpeedyWeather.jl's spectral transform supports all ring-based equi-longitude grids. These grids have their grid points located on rings with constant latitude and on these rings the points are equi-spaced in longitude. There is technically no constrain on the spacing of the latitude rings, but the Legendre transform requires a quadrature to map those to spectral space and back. Common choices for latitudes are the Gaussian latitudes which use the Gaussian quadrature, or equi-angle latitudes (i.e. just regular latitudes but excluding the poles) that use the Clenshaw-Curtis quadrature. The longitudes have to be equi-spaced on every ring, which is necessary for the fast Fourier transform, as one would otherwise need to use a non-uniform Fourier transform. In SpeedyWeather.jl the first grid point on any ring can have a longitudinal offset though, for example by spacing 4 points around the globe at 45˚E, 135˚E, 225˚E, and 315˚E. In this case the offset is 45˚E as the first point is not at 0˚E.","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"info: Is the FullClenshawGrid a longitude-latitude grid?\nShort answer: Yes. The FullClenshawGrid is a specific longitude-latitude grid with equi-angle spacing. The most common grids for geoscientific data use regular spacings for 0-360˚E in longitude and 90˚N-90˚S. The FullClenshawGrid does that too, but it does not have a point on the North or South pole, and the central latitude ring sits exactly on the Equator. We name it Clenshaw following the Clenshaw-Curtis quadrature that is used in the Legendre transfrom in the same way as Gaussian refers to the Gaussian quadrature.","category":"page"},{"location":"grids/#Implemented-grids","page":"Grids","title":"Implemented grids","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"All grids in SpeedyWeather.jl are a subtype of AbstractGrid, i.e. <: AbstractGrid. We further distinguish between full, and reduced grids. Full grids have the same number of longitude points on every latitude ring (i.e. points converge towards the poles) and reduced grids reduce the number of points towards the poles to have them more evenly spread out across the globe. More evenly does not necessarily mean that a grid is equal-area, meaning that every grid cell covers exactly the same area (although the shape changes).","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"Currently the following full grids <: AbstractFullGrid are implemented","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"FullGaussianGrid, a full grid with Gaussian latitudes\nFullClenshawGrid, a full grid with equi-angle latitudes","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"and additionally we have FullHEALPixGrid and FullOctaHEALPixGrid which are the full grid equivalents to the HEALPix grid and the OctaHEALPix grid discussed below. Full grid equivalent means that they have the same latitude rings, but no reduction in the number of points per ring towards the poles and no longitude offset. Other implemented reduced grids are","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"OctahedralGaussianGrid, a reduced grid with Gaussian latitudes based on an octahedron\nOctahedralClenshawGrid, similar but based on equi-angle latitudes\nHEALPixGrid, an equal-area grid based on a dodecahedron with 12 faces\nOctaHEALPixGrid, an equal-area grid from the class of HEALPix grids but based on an octahedron.","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"An overview of these grids is visualised here","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"(Image: Overview of implemented grids in SpeedyWeather.jl)","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"Visualised are each grid's grid points (white dots) and grid faces (white lines). All grids shown have 16 latitude rings on one hemisphere, Equator included. The total number of grid points is denoted in the top left of every subplot. The sphere is shaded with grey, orange and turquoise regions to denote the hemispheres in a and b, the 8 octahedral faces c, d,f and the 12 dodecahedral faces (or base pixels) in e. Coastlines are added for orientation.","category":"page"},{"location":"grids/#Grid-resolution","page":"Grids","title":"Grid resolution","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"All grids use the same resolution parameter nlat_half, i.e. the number of rings on one hemisphere, Equator included. The Gaussian grids (full and reduced) do not have a ring on the equator, so their total number of rings nlat is always even and twice nlat_half. Clenshaw-Curtis grids and the HEALPix grids have a ring on the equator such their total number of rings is always odd and one less than the Gaussian grids at the same nlat_half. ","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"info: HEALPix grids do not use Nside as resolution parameter\nThe original formulation for HEALPix grids use N_side, the number of grid points along the edges of each basepixel (8 in the figure above), SpeedyWeather.jl uses nlat_half, the number of rings on one hemisphere, Equator included, for all grids. This is done for consistency across grids. We may use N_side for the documentation or within functions though.","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"Related: Effective grid resolution and Available horizontal resolutions.","category":"page"},{"location":"grids/#Matching-spectral-and-grid-resolution","page":"Grids","title":"Matching spectral and grid resolution","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"A given spectral resolution can be matched to a variety of grid resolutions. A cubic grid, for example, combines a spectral truncation T with a grid resolution N (=nlat_half) such that T + 1 = N. Using T31 and an O32 is therefore often abbreviated as Tco31 meaning that the spherical harmonics are truncated at l_max=31 in combination with N=32, i.e. 64 latitude rings in total on an octahedral Gaussian grid. In SpeedyWeather.jl the choice of the order of truncation is controlled with the dealiasing parameter in the SpectralGrid construction.","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"Let J be the total number of rings. Then we have","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"T approx J for linear truncation, i.e. dealiasing = 1\nfrac32T approx J for quadratic truncation, i.e. dealiasing = 2\n2T approx J for cubic truncation, , i.e. dealiasing = 3","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"and in general fracm+12T approx J for m-th order truncation. So the higher the truncation order the more grid points are used in combination with the same spectral resolution. A higher truncation order therefore makes all grid-point calculations more expensive, but can represent products of terms on the grid (which will have higher wavenumber components) to a higher accuracy as more grid points are available within a given wavelength. Using a sufficiently high truncation is therefore one way to avoid aliasing. A quick overview of how the grid resolution changes when dealiasing is passed onto SpectralGrid on the FullGaussianGrid","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"trunc dealiasing FullGaussianGrid size\n31 1 64x32\n31 2 96x48\n31 3 128x64\n42 1 96x48\n42 2 128x64\n42 3 192x96\n... ... ...","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"You will obtain this information every time you create a SpectralGrid(;Grid,trunc,dealiasing).","category":"page"},{"location":"grids/#FullGaussianGrid","page":"Grids","title":"Full Gaussian grid","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"...","category":"page"},{"location":"grids/#FullClenshawGrid","page":"Grids","title":"Full Clenshaw-Curtis grid","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"...","category":"page"},{"location":"grids/#Octahedral-Gaussian-grid","page":"Grids","title":"Octahedral Gaussian grid","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"...","category":"page"},{"location":"grids/#HEALPix-grid","page":"Grids","title":"HEALPix grid","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"Technically, HEALPix grids are a class of grids that tessalate the sphere into faces that are often called basepixels. For each member of this class there are N_varphi basepixels in zonal direction and N_theta basepixels in meridional direction. For N_varphi = 4 and N_theta = 3 we obtain the classical HEALPix grid with N_varphi N_theta = 12 basepixels shown above in Implemented grids. Each basepixel has a quadratic number of grid points in them. There's an equatorial zone where the number of zonal grid points is constant (always 2N, so 32 at N=16) and there are polar caps above and below the equatorial zone with the border at cos(theta) = 23 (theta in colatitudes).","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"Following Górski, 2004[1], the z=cos(theta) colatitude of the j-th ring in the north polar cap, j=1N_side with 2N_side = N is ","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"z = 1 - fracj^23N_side^2","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"and on that ring, the longitude phi of the i-th point (i is the in-ring-index) is at","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"phi = fracpi2j(i-tfrac12)","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"The in-ring index i goes from i=14 for the first (i.e. northern-most) ring, i=18 for the second ring and i = 14j for the j-th ring in the northern polar cap.","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"In the north equatorial belt j=N_side2N_side this changes to","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"z = frac43 - frac2j3N_side","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"and the longitudes change to (i is always i = 14N_side in the equatorial belt meaning the number of longitude points is constant here)","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"phi = fracpi2N_side(i - fracs2) quad s = (j - N_side + 1) mod 2","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"The modulo function comes in as there is an alternating longitudinal offset from the prime meridian (see Implemented grids). For the southern hemisphere the grid point locations can be obtained by mirror symmetry.","category":"page"},{"location":"grids/#Grid-cell-boundaries","page":"Grids","title":"Grid cell boundaries","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"The cell boundaries are obtained by setting i = k + 12 or i = k + 12 + j (half indices) into the equations above, such that z(phik), a function for the cosine of colatitude z of index k and the longitude phi is obtained. These are then (northern polar cap)","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"z = 1 - frack^23N_side^2left(fracpi2phi_tright)^2 quad z = 1 - frack^23N_side^2left(fracpi2phi_t - piright)^2","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"with phi_t = phi mod tfracpi2 and in the equatorial belt","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"z = frac23-frac4k3N_side pm frac8phi3pi","category":"page"},{"location":"grids/#OctaHEALPix-grid","page":"Grids","title":"OctaHEALPix grid","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"While the classic HEALPix grid is based on a dodecahedron, other choices for N_varphi and N_theta in the class of HEALPix grids will change the number of faces there are in zonal/meridional direction. With N_varphi = 4 and N_theta = 1 we obtain a HEALPix grid that is based on an octahedron, which has the convenient property that there are twice as many longitude points around the equator than there are latitude rings between the poles. This is a desirable for truncation as this matches the distances too, 2pi around the Equator versus pi between the poles. N_varphi = 6 N_theta = 2 or N_varphi = 8 N_theta = 3 are other possible choices for this, but also more complicated. See Górski, 2004[1] for further examples and visualizations of these grids.","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"We call the N_varphi = 4 N_theta = 1 HEALPix grid the OctaHEALPix grid, which combines the equal-area property of the HEALPix grids with the octahedron that's also used in the OctahedralGaussianGrid or the OctahedralClenshawGrid. As N_theta = 1 there is no equatorial belt which simplifies the grid. The latitude of the j-th isolatitude ring on the OctaHEALPixGrid is defined by","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"z = 1 - fracj^2N^2","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"with j=1N, and similarly for the southern hemisphere by symmetry. On this grid N_side = N where N= nlat_half, the number of latitude rings on one hemisphere, Equator included, because each of the 4 basepixels spans from pole to pole and covers a quarter of the sphere. The longitudes with in-ring- index i = 14j are","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"phi = fracpi2j(i - tfrac12)","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"and again, the southern hemisphere grid points are obtained by symmetry.","category":"page"},{"location":"grids/#Grid-cell-boundaries-2","page":"Grids","title":"Grid cell boundaries","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"Similar to the grid cell boundaries for the HEALPix grid, the OctaHEALPix grid's boundaries are","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"z = 1 - frack^2N^2left(fracpi2phi_tright)^2 quad z = 1 - frack^2N^2left(fracpi2phi_t - piright)^2","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"The 3N_side^2 in the denominator of the HEALPix grid came simply N^2 for the OctaHEALPix grid and there's no separate equation for the equatorial belt (which doesn't exist in the OctaHEALPix grid).","category":"page"},{"location":"grids/#References","page":"Grids","title":"References","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"[1]: Górski, Hivon, Banday, Wandelt, Hansen, Reinecke, Bartelmann, 2004. HEALPix: A FRAMEWORK FOR HIGH-RESOLUTION DISCRETIZATION AND FAST ANALYSIS OF DATA DISTRIBUTED ON THE SPHERE, The Astrophysical Journal. doi:10.1086/427976","category":"page"},{"location":"primitiveequation/#Primitive-equation-model","page":"Primitive equation model","title":"Primitive equation model","text":"","category":"section"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"The primitive equations are a hydrostatic approximation of the compressible Navier-Stokes equations for an ideal gas on a rotating sphere. We largely follow the idealised spectral dynamical core developed by GFDL[1] and documented therein[2].","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"The primitive equations solved by SpeedyWeather.jl for relative vorticity zeta, divergence mathcalD, logarithm of surface pressure ln p_s, temperature T and specific humidity q are","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"beginaligned\nfracpartial zetapartial t = nabla times (mathbfmathcalP_mathbfu\n+ (f+zeta)mathbfu_perp - W(mathbfu) - R_dT_vnabla ln p_s) \nfracpartial mathcalDpartial t = nabla cdot (mathcalP_mathbfu\n+ (f+zeta)mathbfu_perp - W(mathbfu) - R_dT_vnabla ln p_s) - nabla^2(frac12(u^2 + v^2) + Phi) \nfracpartial ln p_spartial t = -frac1p_s nabla cdot int_0^p_s mathbfudp \nfracpartial Tpartial t = mathcalP_T -nablacdot(mathbfuT) + TmathcalD - W(T) + kappa T_v fracD ln pDt \nfracpartial qpartial t = mathcalP_q -nablacdot(mathbfuq) + qmathcalD - W(q)\nendaligned","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"with velocity mathbfu = (uv), rotated velocity mathbfu_perp = (v-u), Coriolis parameter f, W the vertical advection operator, dry air gas constant R_d, virtual temperature T_v, geopotential Phi, pressure p, thermodynamic kappa = R_dc_p with c_p the heat capacity at constant pressure. Horizontal hyper diffusion of the form (-1)^n+1nunabla^2n with coefficient nu and power n is added for every variable that is advected, meaning zeta mathcalD T q, but left out here for clarity, see Horizontal diffusion.","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"The parameterizations for the tendencies of uvTq from physical processes are denoted as mathcalP_mathbfu = (mathcalP_u mathcalP_v) mathcalP_T mathcalP_q and are further described in the corresponding sections, see Parameterizations.","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"SpeedyWeather.jl implements a PrimitiveWet and a PrimitiveDry dynamical core. For a dry atmosphere, we have q = 0 and the virtual temperature T_v = T equals the temperature (often called absolute to distinguish from the virtual temperature). The terms in the primitive equations and their discretizations are discussed in the following sections. ","category":"page"},{"location":"primitiveequation/#Virtual-temperature","page":"Primitive equation model","title":"Virtual temperature","text":"","category":"section"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"info: In short: Virtual temperature\nVirtual temperature is the temperature dry air would need to have to be as light as moist air. It is used in the dynamical core to include the effect of humidity on the density while replacing density through the ideal gas law with temperature.","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"We assume the atmosphere to be composed of two ideal gases: Dry air and water vapour. Given a specific humidity q both gases mix, their pressures p_d, p_w (d for dry, w for water vapour), and densities rho_d rho_w add in a given air parcel that has temperature T. The ideal gas law then holds for both gases","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"beginaligned\np_d = rho_d R_d T \np_w = rho_w R_w T \nendaligned","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"with the respective specific gas constants R_d = Rm_d and R_w = Rm_w obtained from the univeral gas constant R divided by the molecular masses of the gas. The total pressure p in the air parcel is","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"p = p_d + p_w = (rho_d R_d + rho_w R_w)T","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"We ultimately want to replace the density rho = rho_w + rho_d in the dynamical core, using the ideal gas law, with the temperature T, so that we never have to calculate the density explicitly. However, in order to not deal with two densities (dry air and water vapour) we would like to replace temperature with a virtual temperature that includes the effect of humidity on the density. So, whereever we use the ideal gas law to replace density with temperature, we would use the virtual temperature, which is a function of the absolute temperature and specific humidity, instead. A higher specific humidity in an air parcel lowers the density as water vapour is lighter than dry air. Consequently, the virtual temperature of moist air is higher than its absolute temperature because warmer air is lighter too at constant pressure. We therefore think of the virtual temperature as the temperature dry air would need to have to be as light as moist air.","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"Starting with the last equation, with some manipulation we can write the ideal gas law as total density rho times a gas constant times the virtual temperature that is supposed to be a function of absolute temperature, humidity and some constants","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"p = (rho R_d + rho_w (R_w - R_d)) T = rho R_d (1 +\nfrac1 - tfracR_dR_wtfracR_dR_w fracrho_wrho_w + rho_d)T","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"Now we identify","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"mu = frac1 - tfracR_dR_wtfracR_dR_w","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"as some constant that is positive for water vapour being lighter than dry air (tfracR_dR_w = tfracm_wm_d 1) and","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"q = fracrho_wrho_w + rho_d","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"as the specific humidity. Given temperature T and specific humidity q, we can therefore calculate the virtual temperature T_v as","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"T_v = (1 + mu q)T","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"For completeness we want to mention here that the above product, because it is a product of two variables qT has to be computed in grid-point space, see [Spectral Transform]. To obtain an approximation to the virtual temperature in spectral space without expensive transforms one can linearize","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"T_v = T + mu qbarT","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"With a global constant temperature barT, for example obtained from the l=m=0 mode, barT = T_00frac1sqrt4pi but depending on the normalization of the spherical harmonics that factor needs adjustment.","category":"page"},{"location":"primitiveequation/#Vertical-coordinates","page":"Primitive equation model","title":"Vertical coordinates","text":"","category":"section"},{"location":"primitiveequation/#General","page":"Primitive equation model","title":"General","text":"","category":"section"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"Let Psi(xyzt) ","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"SpeedyWeather.jl currently uses sigma coordinates for the vertical. ","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"sigma = fracpp_s","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"p_k = sigma_kp_s","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"Delta p_k = p_k+1 - p_k = Delta sigma_k p_s","category":"page"},{"location":"primitiveequation/#Geopotential","page":"Primitive equation model","title":"Geopotential","text":"","category":"section"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"In the hydrostatic approximation the vertical momentum equation becomes","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"fracpartial ppartial z = -rho g","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"meaning that the (negative) vertical pressure gradient is given by the density in that layer times the gravitational acceleration. The heavier the fluid the more the pressure will increase below. Inserting the ideal gas law","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"fracpartial gzpartial p = -fracR_dT_vp","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"with the geopotential Phi = gz we can write this in terms of the logarithm of pressure","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"fracpartial Phipartial ln p = -R_dT_v","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"Note that we use the Virtual temperature here as we replaced the density through the ideal gas law with temperature. Given a vertical temperature profile T_v and the (constant) surface geopotential Phi_s = gz_s where z_s is the orography, we can integrate this equation from the surface to the top to obtain Phi_k on every layer k. The surface is at k = N+tfrac12 (see Vertical coordinates) with N vertical levels. We can integrate the geopotential onto half levels as","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"Phi_k-tfrac12 = Phi_k+tfrac12 + R_dT^v_k(ln p_k+12 - ln p_k-12)","category":"page"},{"location":"primitiveequation/#Surface-pressure-tendency","page":"Primitive equation model","title":"Surface pressure tendency","text":"","category":"section"},{"location":"primitiveequation/#Vertical-advection","page":"Primitive equation model","title":"Vertical advection","text":"","category":"section"},{"location":"primitiveequation/#Pressure-gradient-force","page":"Primitive equation model","title":"Pressure gradient force","text":"","category":"section"},{"location":"primitiveequation/#Temperature-equation","page":"Primitive equation model","title":"Temperature equation","text":"","category":"section"},{"location":"primitiveequation/#implicit_primitive","page":"Primitive equation model","title":"Semi-implicit time stepping","text":"","category":"section"},{"location":"primitiveequation/#Horizontal-diffusion","page":"Primitive equation model","title":"Horizontal diffusion","text":"","category":"section"},{"location":"primitiveequation/#Algorithm","page":"Primitive equation model","title":"Algorithm","text":"","category":"section"},{"location":"primitiveequation/#Scaled-primitive-equations","page":"Primitive equation model","title":"Scaled primitive equations","text":"","category":"section"},{"location":"primitiveequation/#References","page":"Primitive equation model","title":"References","text":"","category":"section"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"[1]: Geophysical Fluid Dynamics Laboratory, Idealized models with spectral dynamics","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"[2]: Geophysical Fluid Dynamics Laboratory, The Spectral Dynamical Core","category":"page"},{"location":"lowertriangularmatrices/#lowertriangularmatrices","page":"Submodule: LowerTriangularMatrices","title":"LowerTriangularMatrices","text":"","category":"section"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"LowerTriangularMatrices is a submodule that has been developed for SpeedyWeather.jl which is technically independent (SpeedyWeather.jl however imports it and so does SpeedyTransforms) and can also be used without running simulations. It is just not put into its own respective repository.","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"This module defines LowerTriangularMatrix, a lower triangular matrix, which in contrast to LinearAlgebra.LowerTriangular does not store the entries above the diagonal. SpeedyWeather.jl uses LowerTriangularMatrix which is defined as a subtype of AbstractMatrix to store the spherical harmonic coefficients (see Spectral packing). ","category":"page"},{"location":"lowertriangularmatrices/#Creation-of-LowerTriangularMatrix","page":"Submodule: LowerTriangularMatrices","title":"Creation of LowerTriangularMatrix","text":"","category":"section"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"A LowerTriangularMatrix can be created using zeros,ones,rand, or randn","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"julia> using SpeedyWeather.LowerTriangularMatrices\n\njulia> L = rand(LowerTriangularMatrix{Float32},5,5)\n5×5 LowerTriangularMatrix{Float32}:\n 0.912744 0.0 0.0 0.0 0.0\n 0.0737592 0.230592 0.0 0.0 0.0\n 0.799679 0.0765255 0.888098 0.0 0.0\n 0.670835 0.997938 0.505276 0.492966 0.0\n 0.949321 0.193692 0.793623 0.152817 0.357968","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"or the undef initializor LowerTriangularMatrix{Float32}(undef,3,3). The element type is arbitrary though, you can use any type T too.","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"Alternatively, it can be created through conversion from Matrix, which drops the upper triangle entries and sets them to zero","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"julia> M = rand(Float16,3,3)\n3×3 Matrix{Float16}:\n 0.2222 0.694 0.3452\n 0.2158 0.04443 0.274\n 0.9746 0.793 0.6294\n\njulia> LowerTriangularMatrix(M)\n3×3 LowerTriangularMatrix{Float16}:\n 0.2222 0.0 0.0\n 0.2158 0.04443 0.0\n 0.9746 0.793 0.6294","category":"page"},{"location":"lowertriangularmatrices/#Indexing-LowerTriangularMatrix","page":"Submodule: LowerTriangularMatrices","title":"Indexing LowerTriangularMatrix","text":"","category":"section"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"LowerTriangularMatrix supports two types of indexing: 1) by denoting two indices, column and row [l,m] or 2) by denoting a single index [lm]. The double index works as expected","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"julia> L\n3×3 LowerTriangularMatrix{Float16}:\n 0.1499 0.0 0.0\n 0.1177 0.478 0.0\n 0.1709 0.756 0.3223\n\njulia> L[2,2]\nFloat16(0.478)","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"But the single index skips the zero entries in the upper triangle, i.e.","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"julia> L[4]\nFloat16(0.478)","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"which, important, is different from single indices of an AbstractMatrix","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"julia> Matrix(L)[4]\nFloat16(0.0)","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"In performance-critical code a single index should be used, as this directly maps to the index of the underlying data vector. The double index is somewhat slower as it first has to be converted to the corresponding single index.","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"Consequently, many loops in SpeedyWeather.jl are build with the following structure","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"n,m = size(L)\nij = 0\nfor j in 1:m\n for i in j:n\n ij += 1\n L[ij] = i+j\n end\nend","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"which loops over all lower triangle entries of L::LowerTriangularMatrix and the single index ij is simply counted up. However, one could also use [i,j] as indices in the loop body or to perform any calculation (i+j here). An iterator over all entries in the lower triangle can be created by","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"for ij in eachindex(L)\n # do something\nend","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"The setindex! functionality of matrixes will throw a BoundsError when trying to write into the upper triangle of a LowerTriangularMatrix, for example","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"julia> L[2,1] = 0 # valid index\n0\n\njulia> L[1,2] = 0 # invalid index in the upper triangle\nERROR: BoundsError: attempt to access 3×3 LowerTriangularMatrix{Float32} at index [1, 2]","category":"page"},{"location":"lowertriangularmatrices/#Linear-algebra-with-LowerTriangularMatrix","page":"Submodule: LowerTriangularMatrices","title":"Linear algebra with LowerTriangularMatrix","text":"","category":"section"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"The LowerTriangularMatrices module's main purpose is not linear algebra, and it's implementation may not be efficient, however, many operations work as expected","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"julia> L = rand(LowerTriangularMatrix{Float32},3,3)\n3×3 LowerTriangularMatrix{Float32}:\n 0.57649 0.0 0.0\n 0.348685 0.875371 0.0\n 0.881923 0.850552 0.998306\n\njulia> L + L\n3×3 LowerTriangularMatrix{Float32}:\n 1.15298 0.0 0.0\n 0.697371 1.75074 0.0\n 1.76385 1.7011 1.99661\n\njulia> L * L\n3×3 Matrix{Float32}:\n 0.332341 0.0 0.0\n 0.506243 0.766275 0.0\n 1.68542 1.59366 0.996616","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"Note, however, that the latter includes a conversion to Matrix, which is true for many operations, including inv or \\. Hence when trying to do more sophisticated linear algebra with LowerTriangularMatrix we quickly leave lower triangular-land and go back to normal matrix-land.","category":"page"},{"location":"lowertriangularmatrices/#Function-and-type-index","page":"Submodule: LowerTriangularMatrices","title":"Function and type index","text":"","category":"section"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"Modules = [SpeedyWeather.LowerTriangularMatrices]","category":"page"},{"location":"lowertriangularmatrices/#SpeedyWeather.LowerTriangularMatrices.LowerTriangularMatrix","page":"Submodule: LowerTriangularMatrices","title":"SpeedyWeather.LowerTriangularMatrices.LowerTriangularMatrix","text":"L = LowerTriangularMatrix{T}(v::Vector{T},m::Int,n::Int)\n\nA lower triangular matrix implementation that only stores the non-zero entries explicitly. L<:AbstractMatrix although in general we have L[i] != Matrix(L)[i], the former skips zero entries, tha latter includes them.\n\n\n\n\n\n","category":"type"},{"location":"lowertriangularmatrices/#SpeedyWeather.LowerTriangularMatrices.LowerTriangularMatrix-Union{Tuple{AbstractMatrix{T}}, Tuple{T}} where T","page":"Submodule: LowerTriangularMatrices","title":"SpeedyWeather.LowerTriangularMatrices.LowerTriangularMatrix","text":"L = LowerTriangularMatrix(M)\n\nCreate a LowerTriangularMatrix L from Matrix M by copying over the non-zero elements in M.\n\n\n\n\n\n","category":"method"},{"location":"lowertriangularmatrices/#Base.fill!-Union{Tuple{T}, Tuple{LowerTriangularMatrix{T}, Any}} where T","page":"Submodule: LowerTriangularMatrices","title":"Base.fill!","text":"fill!(L::LowerTriangularMatrix,x)\n\nFills the elements of L with x. Faster than fill!(::AbstractArray,x) as only the non-zero elements in L are assigned with x.\n\n\n\n\n\n","category":"method"},{"location":"lowertriangularmatrices/#SpeedyWeather.LowerTriangularMatrices.eachharmonic-Tuple{LowerTriangularMatrix}","page":"Submodule: LowerTriangularMatrices","title":"SpeedyWeather.LowerTriangularMatrices.eachharmonic","text":"unit_range = eachharmonic(L::LowerTriangular)\n\ncreates unit_range::UnitRange to loop over all non-zeros in a LowerTriangularMatrix L. Like eachindex but skips the upper triangle with zeros in L.\n\n\n\n\n\n","category":"method"},{"location":"lowertriangularmatrices/#SpeedyWeather.LowerTriangularMatrices.eachharmonic-Tuple{Vararg{LowerTriangularMatrix}}","page":"Submodule: LowerTriangularMatrices","title":"SpeedyWeather.LowerTriangularMatrices.eachharmonic","text":"unit_range = eachharmonic(Ls::LowerTriangularMatrix...)\n\ncreates unit_range::UnitRange to loop over all non-zeros in the LowerTriangularMatrices provided as arguments. Checks bounds first. All LowerTriangularMatrix's need to be of the same size. Like eachindex but skips the upper triangle with zeros in L.\n\n\n\n\n\n","category":"method"},{"location":"lowertriangularmatrices/#SpeedyWeather.LowerTriangularMatrices.ij2k-Tuple{Integer, Integer, Integer}","page":"Submodule: LowerTriangularMatrices","title":"SpeedyWeather.LowerTriangularMatrices.ij2k","text":"k = ij2k( i::Integer, # row index of matrix\n j::Integer, # column index of matrix\n m::Integer) # number of rows in matrix\n\nConverts the index pair i,j of an mxn LowerTriangularMatrix L to a single index k that indexes the same element in the corresponding vector that stores only the lower triangle (the non-zero entries) of L.\n\n\n\n\n\n","category":"method"},{"location":"conventions/#Style-and-convention-guide","page":"Style and convention guide","title":"Style and convention guide","text":"","category":"section"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"In SpeedyWeather.jl we've been following the several conventions that are documented here.","category":"page"},{"location":"conventions/#Variable-naming","page":"Style and convention guide","title":"Variable naming","text":"","category":"section"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"The prognostic variables in spectral space are called","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":" vor # Vorticity of horizontal wind field\n div # Divergence of horizontal wind field\n temp # Absolute temperature [K]\n pres_surf # Logarithm of surface pressure [log(Pa)]\n humid # Specific humidity [g/kg]","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"their transforms into grid-point space get a _grid suffix, their tendencies a _tend suffix. Further derived diagnostic dynamic variables are","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":" u\n v\n geopot\n ...","category":"page"},{"location":"conventions/#Preallocation","page":"Style and convention guide","title":"Preallocation","text":"","category":"section"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"All arrays representing variables are preallocated and grouped into two structs","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":" Prog::PrognosticVariables\n Diag::DiagnosticVariables","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"The Diag struct contains further structs which represent the grid-point transformations of the prognostic variables and their tendencies.","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":" gridvars::GridVariables\n tendencies::Tendencies\n ...","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"Constant arrays are grouped into several structs","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"Boundaries","category":"page"},{"location":"conventions/#Julian-conventions","page":"Style and convention guide","title":"Julian conventions","text":"","category":"section"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"We follow Julia's style guide and highlight here some important aspects of it.","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"Bang (!) convention. A function func does not change its input arguments, however, func! does.","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"Hence, func! is often the in-place version of func, avoiding as much memory allocation as possible and often changing its first argument, e.g. func!(out,in) so that argument in is used to calculate out which has been preallocated before function call.","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"Number format flexibility. Numeric literals such as 2.0 or 1/3 are only used in the model setup","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"but avoided throughout the code to obtain a fully number format-flexible package using the number format NF as a compile-time variable throughout the code. This often leads to overly specific code whereas a Real would generally suffice. However, this is done to avoid any implicit type conversions.","category":"page"},{"location":"shallowwater/#Shallow-water-model","page":"Shallow water model","title":"Shallow water model","text":"","category":"section"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"The shallow water model describes the evolution of a 2D flow described by its velocity and an interface height that conceptually represents pressure. A divergent flow affects the interface height which in turn can impose a pressure gradient force onto the flow. The dynamics include advection, forces, dissipation, and continuity.","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"The following description of the shallow water model largely follows the idealized models with spectral dynamics developed at the Geophysical Fluid Dynamics Laboratory[1]: The Shallow Water Equations[2].","category":"page"},{"location":"shallowwater/#Shallow-water-equations","page":"Shallow water model","title":"Shallow water equations","text":"","category":"section"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"The shallow water equations of velocity mathbfu = (uv) and interface height eta (i.e. the deviation from the fluid's rest height H) are, formulated in terms of relative vorticity zeta = nabla times mathbfu, divergence mathcalD = nabla cdot mathbfu","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"beginaligned\nfracpartial zetapartial t + nabla cdot (mathbfu(zeta + f)) =\nnabla times mathbfF + (-1)^n+1nunabla^2nzeta \nfracpartial mathcalDpartial t - nabla times (mathbfu(zeta + f)) =\nnabla cdot mathbfF -nabla^2(tfrac12(u^2 + v^2) + geta) + (-1)^n+1nunabla^2nmathcalD \nfracpartial etapartial t + nabla cdot (mathbfuh) = F_eta\nendaligned","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"We denote timet, Coriolis parameter f, a forcing vector mathbfF = (F_uF_v), hyperdiffusion (-1)^n+1 nu nabla^2n (n is the hyperdiffusion order, see Horizontal diffusion), gravitational acceleration g, dynamic layer thickness h, and a forcing for the interface height F_eta. In the shallow water model the dynamics layer thickness h is","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"h = eta + H - H_b","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"that is, the layer thickness at rest H plus the interface height eta minus orography H_b.","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"In the shallow water system the flow can be described through uv or zetamathcalD which are related through the stream function Psi and the velocity potential Phi (which is zero in the Barotropic vorticity equation).","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"beginaligned\nzeta = nabla^2 Psi \nmathcalD = nabla^2 Phi \nmathbfu = nabla^perp Psi + nabla Phi\nendaligned","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"With nabla^perp being the rotated gradient operator, in cartesian coordinates xy: nabla^perp = (-partial_y partial_x). See Derivatives in spherical coordinates for further details. Especially because the inversion of the Laplacian and the gradients of Psi Phi can be computed in a single pass, see U,V from vorticity and divergence.","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"The divergence/curl of the vorticity flux mathbfu(zeta + f) are combined with the divergence/curl of the forcing vector mathbfF, as","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"beginaligned\n- nabla cdot (mathbfu(zeta + f)) + nabla times mathbfF =\nnabla times (mathbfF + mathbfu_perp(zeta + f)) \nnabla times (mathbfu(zeta + f)) + nabla cdot mathbfF =\nnabla cdot (mathbfF + mathbfu_perp(zeta + f))\nendaligned","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"equivalently to how this is done in the Barotropic vorticity equation with mathbfu_perp = (v-u).","category":"page"},{"location":"shallowwater/#Algorithm","page":"Shallow water model","title":"Algorithm","text":"","category":"section"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"0. Start with initial conditions of relative vorticity zeta_lm, divergence D_lm, and interface height eta_lm in spectral space and transform this model state to grid-point space:","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"Invert the Laplacian of zeta_lm to obtain the stream function Psi_lm in spectral space\nInvert the Laplacian of D_lm to obtain the velocity potential Phi_lm in spectral space\nobtain velocities U_lm = (cos(theta)u)_lm V_lm = (cos(theta)v)_lm from nabla^perpPsi_lm + nablaPhi_lm\nTransform velocities U_lm, V_lm to grid-point space UV\nUnscale the cos(theta) factor to obtain uv\nTransform zeta_lm, D_lm, eta_lm to zeta D eta in grid-point space","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"Now loop over","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"Compute the forcing vector mathbfF = (F_uF_v) for u and v\nMultiply uv with zeta+f in grid-point space\nAdd A = F_u + v(zeta + f) and B = F_v - u(zeta + f)\nTransform these vector components to spectral space A_lm, B_lm\nCompute the curl of (AB)_lm in spectral space which is the tendency of zeta_lm\nCompute the divergence of (AB)_lm in spectral space which is the tendency of mathcalD_lm\nCompute the kinetic energy frac12(u^2 + v^2) and transform to spectral space\nAdd to the kinetic energy the \"geopotential\" geta_lm in spectral space to obtain the Bernoulli potential\nTake the Laplacian of the Bernoulli potential and subtract from the divergence tendency\nCompute the volume fluxes uhvh in grid-point space via h = eta + H - H_b\nTransform to spectral space and take the divergence for -nabla cdot (mathbfuh) which is the tendency for eta\nAdd possibly forcing F_eta for eta in spectral space\nCorrect the tendencies following the semi-implicit time integration to prevent fast gravity waves from causing numerical instabilities\nCompute the horizontal diffusion based on the zetamathcalD tendencies\nCompute a leapfrog time step as described in Time integration with a Robert-Asselin and Williams filter\nTransform the new spectral state of zeta_lm, mathcalD_lm, eta_lm to grid-point uvzetamathcalDeta as described in 0.\nPossibly do some output\nRepeat from 1.","category":"page"},{"location":"shallowwater/#implicit_swm","page":"Shallow water model","title":"Semi-implicit time integration","text":"","category":"section"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"Probably the biggest advantage of a spectral model is its ability to solve (parts of) the equations implicitly a low computational cost. The reason is that a linear operator can be easily inverted in spectral space, removing the necessity to solve large equation systems. An operation like Psi = nabla^-2zeta in grid-point space is costly because it requires a global communication, coupling all grid points. In spectral space nabla^2 is a diagonal operator, meaning that there is no communication between harmonics and its inversion is therefore easily done on a mode-by-mode basis of the harmonics.","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"This can be made use of when facing time stepping constraints with explicit schemes, where ridiculuously small time steps to resolve fast waves would otherwise result in a horribly slow simulation. In the shallow water system there are gravity waves that propagate at a wave speed of sqrtgH (typically 300m/s), which, in order to not violate the CFL criterion for explicit time stepping, would need to be resolved. Therefore, treating the terms that are responsible for gravity waves implicitly would remove that time stepping constraint and allows us to run the simulation at the time step needed to resolve the advective motion of the atmosphere, which is usually one or two orders of magnitude longer than gravity waves.","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"In the following we will describe how the semi implicit time integration can be combined with the Leapfrog time stepping and the Robert-Asselin and Williams filter for a large increase in numerical stability with gravity waves. Let V_i be the model state of all prognostic variables at time step i, the leapfrog time stepping is then","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"fracV_i+1 - V_i-12Delta t = N(V_i)","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"with the right-hand side operator N evaluated at the current time step i. Now the idea is to split the terms in N into non-linear terms that are evaluated explicitly in N_E and into the linear terms N_I, solved implicitly, that are responsible for the gravity waves. We could already assume to evaluate N_I at i+1, but in fact, we can introduce alpha in 01 so that for alpha=0 we use i-1 (i.e. explicit), for alpha=12 it is centred implicit tfrac12N_I(V_i-1) + tfrac12N_I(V_i+1), and for alpha=1 a fully backwards scheme N_I(V_i+1) evaluated at i+1.","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"fracV_i+1 - V_i-12Delta t = N_E(V_i) + alpha N_I(V_i+1) + (1-alpha)N_I(V_i-1)","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"Let delta V = tfracV_i+1 - V_i-12Delta t be the tendency we need for the Leapfrog time stepping. Introducing xi = 2alphaDelta t we have","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"delta V = N_E(V_i) + N_I(V_i-1) + xi N_I(delta V)","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"because N_I is a linear operator. This is done so that we can solve for delta V by inverting N_I, but let us gather the other terms as G first.","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"G = N_E(V_i) + N_I(V_i-1) = N(V_i) + N_I(V_i-1 - V_i)","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"For the shallow water equations we will only make use of the last formulation, meaning we first evaluate the whole right-hand side N(V_i) at the current time step as we would do with fully explicit time stepping but then add the implicit terms N_I(V_i-1 - V_i) afterwards to move those terms from i to i-1. Note that we could also directly evaluate the implicit terms at i-1 as it is suggested in the previous formulation N_E(V_i) + N_I(V_i-1), the result would be the same. But in general it can be more efficient to do it one or the other way, and in fact it is also possible to combine both ways. This will be discussed in the semi-implicit time stepping for the primitive equations.","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"We can now implicitly solve for delta V by","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"delta V = (1-xi N_I)^-1G","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"So what is N_I? In the shallow water system the gravity waves are caused by","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"beginaligned\nfracpartial mathcalDpartial t = -gnabla^2eta \nfracpartial etapartial t = -HmathcalD\nendaligned","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"which is a linearization of the equations around a state of rest with uniform constant layer thickness h = H. The continuity equation with the -nabla(mathbfuh) term, for example, is linearized to -nabla(mathbfuH) = -HmathcalD. The divergence and continuity equations can now be written following the delta V = G + xi N_I(delta V) formulation from above as a coupled system (The vorticity equation is zero for the linear gravity wave equation in the shallow water equations, hence no semi-implicit correction has to be made to the vorticity tendency).","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"beginaligned\ndelta mathcalD = G_mathcalD - xi g nabla^2 delta eta \ndelta eta = G_mathcaleta - xi H deltamathcalD\nendaligned","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"with","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"beginaligned\nG_mathcalD = N_mathcalD - xi g nabla^2 (eta_i-1 - eta_i) \nG_mathcaleta = N_eta - xi H (mathcalD_i-1 - mathcalD_i)\nendaligned","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"Inserting the second equation into the first, we can first solve for delta mathcalD, and then for delta eta. Reminder that we do this in spectral space to every harmonic independently, so the Laplace operator nabla^2 = -l(l+1) takes the form of its eigenvalue -l(l+1) (normalized to unit sphere, as are the scaled shallow water equations) and its inversion is therefore just the inversion of this scalar.","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"delta D = fracG_mathcalD - xi gnabla^2 G_eta1 - xi^2 H nabla^2 = S^-1(G_mathcalD - xi gnabla^2 G_eta) ","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"Where the last formulation just makes it clear that S = 1 - xi^2 H nabla^2 is the operator to be inverted. delta eta is then obtained via insertion as written above. Equivalently, by adding a superscript l for every degree of the spherical harmonics, we have","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"delta mathcalD^l = fracG_mathcalD^l + xi g l(l+1) G_eta^l1 + xi^2 H l(l+1)","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"The idea of the semi-implicit time stepping is now as follows:","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"Evaluate the right-hand side explicitly at time step i to obtain the explicit, preliminary tendencies N_mathcalDN_eta (and N_zeta without a need for semi-implicit correction)\nMove the implicit terms from i to i-1 when calculating G_mathcalD G_eta\nSolve for delta mathcalD, the new, corrected tendency for divergence.\nWith delta mathcalD obtain delta eta, the new, corrected tendency for eta.\nApply horizontal diffusion as a correction to N_zeta delta mathcalD as outlined in Horizontal diffusion.\nLeapfrog with tendencies that have been corrected for both semi-implicit and diffusion.","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"Some notes on the semi-implicit time stepping","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"The inversion of the semi-implicit time stepping depends on delta t, that means every time the time step changes, the inversion has to be recalculated.\nYou may choose alpha = 12 to dampen gravity waves but initialisation shocks still usually kick off many gravity waves that propagate around the sphere for many days.\nWith increasing alpha 12 these waves are also slowed down, such that for alpha = 1 they quickly disappear in several hours.\nUsing the scaled shallow water equations the time step delta t has to be the scaled time step tildeDelta t = delta tR which is divided by the radius R. Then we use the normalized eigenvalues -l(l+1) which also omit the 1R^2 scaling, see scaled shallow water equations for more details.","category":"page"},{"location":"shallowwater/#scaled_swm","page":"Shallow water model","title":"Scaled shallow water equations","text":"","category":"section"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"Similar to the scaled barotropic vorticity equations, SpeedyWeather.jl scales in the shallow water equations. The vorticity and the divergence equation are scaled with R^2, the radius of the sphere squared, but the continuity equation is scaled with R. We also combine the vorticity flux and forcing into a single divergence/curl operation as mentioned in Shallow water equations above","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"beginaligned\nfracpartial tildezetapartial tildet =\ntildenabla times (tildemathbfF + mathbfu_perp(tildezeta + tildef)) +\n(-1)^n+1tildenutildenabla^2ntildezeta \nfracpartial tildemathcalDpartial tildet =\ntildenabla cdot (tildemathbfF + mathbfu_perp(tildezeta + tildef)) -\ntildenabla^2left(tfrac12(u^2 + v^2) + geta right) +\n(-1)^n+1tildenutildenabla^2ntildemathcalD \nfracpartial etapartial tildet =\n- tildenabla cdot (mathbfuh) + tildeF_eta\nendaligned","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"As in the scaled barotropic vorticity equations, one needs to scale the time step, the Coriolis force, the forcing and the diffusion coefficient, but then enjoys the luxury of working with dimensionless gradient operators. As before, SpeedyWeather.jl will scale vorticity and divergence just before the model integration starts and unscale them upon completion and for output. In the semi-implicit time integration we solve an equation that also has to be scaled. It is with radius squared scaling (because it is the tendency for the divergence equation which is also scaled with R^2)","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"R^2 delta D = R^2fracG_mathcalD - xi gnabla^2 G_eta1 - xi^2 H nabla^2","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"As G_eta is only scaled with R we have","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"tildedelta D = fractildeG_mathcalD - tildexi gtildenabla^2 tildeG_eta1 - tildexi^2 H tildenabla^2","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"The R^2 normalizes the Laplace operator in the numerator, but using the scaled G_eta we also scale xi (which is convenient, because the time step within is the one we use anyway). The denominator S does not actually change because xi^2nabla^2 = tildexi^2tildenabla^2 as xi^2 is scaled with 1R^2, but the Laplace operator with R^2. So overall we just have to use the scaled time step tildeDelta t and normalized eigenvalues for tildenabla^2.","category":"page"},{"location":"shallowwater/#References","page":"Shallow water model","title":"References","text":"","category":"section"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"[1]: Geophysical Fluid Dynamics Laboratory, Idealized models with spectral dynamics","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"[2]: Geophysical Fluid Dynamics Laboratory, The Shallow Water Equations.","category":"page"},{"location":"extending/#New-model-setups","page":"Extending SpeedyWeather","title":"New model setups","text":"","category":"section"},{"location":"extending/","page":"Extending SpeedyWeather","title":"Extending SpeedyWeather","text":"more to come...","category":"page"},{"location":"spectral_transform/#Spherical-Harmonic-Transform","page":"Spherical harmonic transform","title":"Spherical Harmonic Transform","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The following sections outline the implementation of the spherical harmonic transform (in short spectral transform) between the coefficients of the spherical harmonics (the spectral space) and the grid space which can be any of the Implemented grids as defined by RingGrids. This includes the classical full Gaussian grid, a regular longitude-latitude grid called the full Clenshaw grid (FullClenshawGrid), ECMWF's octahedral Gaussian grid[Malardel2016], and HEALPix grids[Gorski2004]. SpeedyWeather.jl's spectral transform module SpeedyTransforms is grid-flexible and can be used with any of these, see Grids.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"info: SpeedyTransforms is a module too!\nSpeedyTransform is the underlying module that SpeedyWeather imports to transform between spectral and grid-point space, which also implements Derivatives in spherical coordinates. You can use this module independently of SpeedyWeather for spectral transforms, see SpeedyTransforms.","category":"page"},{"location":"spectral_transform/#Inspiration","page":"Spherical harmonic transform","title":"Inspiration","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The spectral transform implemented by SpeedyWeather.jl follows largely Justin Willmert's CMB.jl and SphericalHarmonicTransforms.jl package and makes use of AssociatedLegendrePolynomials.jl and FFTW.jl for the Fourier transform. Justin described his work in a Blog series [Willmert2020].","category":"page"},{"location":"spectral_transform/#Spherical-harmonics","page":"Spherical harmonic transform","title":"Spherical harmonics","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The spherical harmonics Y_lm of degree l and order m over the longitude phi = (02pi) and colatitudes theta = (-pi2pi2), are","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Y_lm(phi theta) = lambda_l^m(sintheta) e^imphi","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"with lambda_l^m being the pre-normalized associated Legendre polynomials, and e^imphi are the complex exponentials (the Fourier modes). Together they form a set of orthogonal basis functions on the sphere. For an interactive visualisation of the spherical harmonics, see here.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"info: Latitudes versus colatitudes\nThe implementation of the spectral transforms in SpeedyWeather.jl uses colatitudes theta = (0pi) (0 at the north pole) but the dynamical core uses latitudes theta = (-pi2pi2) (pi2 at the north pole). Note: We may also use latitudes in the spherical harmonic transform in the future for consistency. ","category":"page"},{"location":"spectral_transform/#synthesis","page":"Spherical harmonic transform","title":"Synthesis (spectral to grid)","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The synthesis (or inverse transform) takes the spectral coefficients a_lm and transforms them to grid-point values f(phitheta) (for the sake of simplicity first regarded as continuous). The synthesis is a linear combination of the spherical harmonics Y_lm with non-zero coefficients.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"f(phitheta) = sum_l=0^infty sum_m=-l^l a_lm Y_lm(phitheta)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"We obtain an approximation with a finite set of a_lm by truncating the series in both degree l and order m somehow. Most commonly, a triangular truncation is applied, such that all degrees after l = l_max are discarded. Triangular because the retained array of the coefficients a_lm looks like a triangle. Other truncations like rhomboidal have been studied[Daley78] but are rarely used since. Choosing l_max also constrains m_max and determines the (horizontal) spectral resolution. In SpeedyWeather.jl this resolution as chosen as trunc when creating the SpectralGrid.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"For f being a real-valued there is a symmetry","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"a_l-m = (-1)^m a^*_l+m","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"meaning that the coefficients at -m and m are the same, but the sign of the real and imaginary component can be flipped, as denoted with the (-1)^m and the complex conjugate a_lm^*. As we are only dealing with real-valued fields anyway, we therefore never have to store the negative orders -m and end up with a lower triangular matrix of size (l_max+1) times (m_max+1) or technically (T+1)^2 where T is the truncation trunc. One is added here because the degree l and order m use 0-based indexing but sizes (and so is Julia's indexing) are 1-based.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"For correctness we want to mention here that vector quantities require one more degree l due to the recurrence relation in the Meridional derivative. Hence for practical reasons all spectral fields are represented as a lower triangular matrix of size (m_max + 2) times (m_max +1). And the scalar quantities would just not make use of that last degree, and its entries would be simply zero. We will, however, for the following sections ignore this and only discuss it again in Meridional derivative.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Another consequence of the symmetry mentioned above is that the zonal harmonics, meaning a_lm=0 have no imaginary component. Because these harmonics are zonally constant, a non-zero imaginary component would rotate them around the Earth's axis, which, well, doesn't actually change a real-valued field. ","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Following the notation of [Willmert2020] we can therefore write the truncated synthesis as","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"f(phitheta) = sum_l=0^l_max sum_m=0^l (2-delta_m0) a_lm Y_lm(phitheta)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The (2-delta_m0) factor using the Kronecker delta is used here because of the symmetry we have to count both the m-m order pairs (hence the 2) except for the zonal harmonics which do not have a pair.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Another symmetry arises from the fact that the spherical harmonics are either symmetric or anti-symmetric around the Equator. There is an even/odd combination of degrees and orders so that the sign flips like a checkerboard","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Y_lm(phipi-theta) = (-1)^l+mY_lm(phiphi)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"This means that one only has to compute the Legendre polynomials for one hemisphere and the other one follows with this equality.","category":"page"},{"location":"spectral_transform/#analysis","page":"Spherical harmonic transform","title":"Analysis (grid to spectral)","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Starting in grid-point space we can transform a field f(lambdatheta) into the spectral space of the spherical harmonics by","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"a_lm = int_0^2pi int_0^pi f(phitheta) Y_lm(phitheta) sin theta dtheta dphi","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Note that this notation again uses colatitudes theta, for latitudes the sintheta becomes a costheta and the bounds have to be changed accordingly to (-fracpi2fracpi2). A discretization with N grid points at location (phi_itheta_i), indexed by i can be written as [Willmert2020]","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"hata_lm = sum_i f(phi_itheta_i) Y_lm(phi_itheta_i) sin theta_i Deltatheta Deltaphi","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The hat on a just means that it is an approximation, or an estimate of the true a_lm approx hata_lm. We can essentially make use of the same symmetries as already discussed in Synthesis. Splitting into the Fourier modes e^imphi and the Legendre polynomials lambda_l^m(costheta) (which are defined over -11 so the costheta argument maps them to colatitudes) we have","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"hata_lm = sum_j left sum_i f(phi_itheta_j) e^-imphi_i right lambda_lm(theta_j) sin theta_j Deltatheta Deltaphi","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"So the term in brackets can be separated out as long as the latitude theta_j is constant, which motivates us to restrict the spectral transform to grids with iso-latitude rings, see Grids. Furthermore, this term can be written as a fast Fourier transform, if the phi_i are equally spaced on the latitude ring j. Note that the in-ring index i can depend on the ring index j, so that one can have reduced grids, which have fewer grid points towards the poles, for example. Also the Legendre polynomials only have to be computed for the colatitudes theta_j (and in fact only one hemisphere, due to the north-south symmetry discussed in the Synthesis). It is therefore practical and efficient to design a spectral transform implementation for ring grids, but there is no need to hardcode a specific grid.","category":"page"},{"location":"spectral_transform/#Spectral-packing","page":"Spherical harmonic transform","title":"Spectral packing","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Spectral packing is the way how the coefficients a_lm of the spherical harmonics of a given spectral field are stored in an array. SpeedyWeather.jl uses the conventional spectral packing of degree l and order m as illustrated in the following image (Cyp, CC BY-SA 3.0, via Wikimedia Commons)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Every row represents an order l geq 0, starting from l=0 at the top. Every column represents an order m geq 0, starting from m=0 on the left. The coefficients of these spherical harmonics are directly mapped into a matrix a_lm as ","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":" m \nl a_00 \n a_10 a_11 \n a_20 a_12 a_22 \n a_30 a_13 a_23 a_33","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"which is consistently extended for higher degrees and orders. Consequently, all spectral fields are lower-triangular matrices with complex entries. The upper triangle excluding the diagonal are zero. Note that internally vector fields include an additional degree, such that l_max = m_max + 1 (see Derivatives in spherical coordinates for more information). The harmonics with a_l0 (the first column) are also called zonal harmonics as they are constant with longitude phi. The harmonics with a_ll (the main diagonal) are also called sectoral harmonics as they essentially split the sphere into 2l sectors in longitude phi without a zero-crossing in latitude.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"For correctness it is mentioned here that SpeedyWeather.jl uses a LowerTriangularMatrix type to store the spherical harmonic coefficients. By doing so, the upper triangle is actually not explicitly stored and the data technically unravelled into a vector, but this is hidden as much as possible from the user. For more details see LowerTriangularMatrices.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"info: Array indices\nFor a spectral field a note that due to Julia's 1-based indexing the coefficient a_lm is obtained via a[l+1,m+1]. Alternatively, we may index over 1-based l,m but a comment is usually added for clarification.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Fortran SPEEDY does not use the same spectral packing as SpeedyWeather.jl. The alternative packing lm therein uses l=m and m=l-m as summarized in the following table.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"degree l order m l=m m=l-m\n0 0 0 0\n1 0 0 1\n1 1 1 0\n2 0 0 2\n2 1 1 1\n2 2 2 0\n3 0 0 3\n... ... ... ...","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"This alternative packing uses the top-left triangle of a coefficient matrix, and the degrees and orders from above are stored at the following indices","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":" m \nl a_00 a_10 a_20 a_30\n a_11 a_21 a_31 \n a_22 a_32 \n a_33 ","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"This spectral packing is not used in SpeedyWeather.jl but illustrated here for completeness and comparison with Fortran SPEEDY.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"SpeedyWeather.jl uses triangular truncation such that only spherical harmonics with l leq l_max and m leq m_max are explicitly represented. This is usually described as Tm_max, with l_max = m_max (although in vector quantities require one more degree l in the recursion relation of meridional gradients). For example, T31 is the spectral resolution with l_max = m_max = 31. Note that the degree l and order m are mathematically 0-based, such that the corresponding coefficient matrix is of size 32x32.","category":"page"},{"location":"spectral_transform/#Available-horizontal-resolutions","page":"Spherical harmonic transform","title":"Available horizontal resolutions","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Technically, SpeedyWeather.jl supports arbitrarily chosen resolution parameter trunc when creating the SpectralGrid that refers to the highest non-zero degree l_max that is resolved in spectral space. SpeedyWeather.jl will always try to choose an easily-Fourier transformable[FFT] size of the grid, but as we use FFTW.jl there is quite some flexibility without performance sacrifice. However, this has traditionally lead to typical resolutions that we also use for testing we therefore recommend to use. They are as follows with more details below","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"trunc nlon nlat Delta x\n31 (default) 96 48 400 km\n42 128 64 312 km\n63 192 96 216 km\n85 256 128 165 km\n127 384 192 112 km\n170 512 256 85 km\n255 768 384 58 km\n341 1024 512 43 km\n511 1536 768 29 km\n682 2048 1024 22 km\n1024 3072 1536 14 km\n1365 4092 2048 11 km","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Some remarks on this table","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"This assumes the default quadratic truncation, you can always adapt the grid resolution via the dealiasing option, see Matching spectral and grid resolution\nnlat refers to the total number of latitude rings, see Grids. With non-Gaussian grids, nlat will be one one less, e.g. 47 instead of 48 rings.\nnlon is the number of longitude points on the Full Gaussian Grid, for other grids there will be at most these number of points around the Equator.\nDelta x is the horizontal resolution. For a spectral model there are many ways of estimating this[9]. We use here the square root of the average area a grid cell covers, see Effective grid resolution","category":"page"},{"location":"spectral_transform/#Effective-grid-resolution","page":"Spherical harmonic transform","title":"Effective grid resolution","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"There are many ways to estimate the effective grid resolution of spectral models[9]. Some of them are based on the wavelength a given spectral resolution allows to represent, others on the total number of real variables per area. However, as many atmospheric models do represent a considerable amount of physics on the grid (see Parameterizations) there is also a good argument to include the actual grid resolution into this estimate and not just the spectral resolution. We therefore use the average grid cell area to estimate the resolution","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Delta x = sqrtfrac4pi R^2N","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"with N number of grid points over a sphere with radius R. However, we have to acknowledge that this usually gives higher resolution compared to other methods of estimating the effective resolution, see [Randall2021] for a discussion. You may therefore need to be careful to make claims that, e.g. trunc=85 can resolve the atmospheric dynamics at a scale of 165km.","category":"page"},{"location":"spectral_transform/#Derivatives-in-spherical-coordinates","page":"Spherical harmonic transform","title":"Derivatives in spherical coordinates","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Horizontal gradients in spherical coordinates are defined for a scalar field A and the latitudes theta and longitudes lambda as","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"nabla A = left(frac1Rcosthetafracpartial Apartial lambda frac1Rfracpartial Apartial theta right)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"However, the divergence of a vector field mathbfu = (uv) includes additional cos(theta) scalings","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"nabla cdot mathbfu = frac1Rcosthetafracpartial upartial lambda +\nfrac1Rcosthetafracpartial (v costheta)partial theta","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"and similar for the curl","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"nabla times mathbfu = frac1Rcosthetafracpartial vpartial lambda -\nfrac1Rcosthetafracpartial (u costheta)partial theta","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The radius of the sphere (i.e. Earth) is R. The zonal gradient scales with 1cos(theta) as the longitudes converge towards the poles (note that theta describes latitudes here, definitions using colatitudes replace the cos with a sin.)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Starting with a spectral field of vorticity zeta and divergence mathcalD one can obtain stream function Psi and velocity potential Phi by inverting the Laplace operator nabla^2:","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Psi = nabla^-2zeta quad Phi = nabla^-2mathcalD","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The velocities uv are then obtained from (uv) = nabla^botPsi + nablaPhi following the definition from above and nabla^bot = (-R^-1partial_theta (Rcostheta)^-1partial_lambda)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"beginaligned\nu = -frac1Rpartial_thetaPsi + frac1Rcosthetapartial_lambdaPhi \nv = +frac1Rpartial_thetaPhi + frac1Rcosthetapartial_lambdaPsi\nendaligned","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Alternatively, we can use the velocities U = ucostheta V = vcostheta, which we do as the meridional gradient for spherical harmonics is easier implemented with a costheta-scaling included, and because the divergence and curl in spherical coordinates evaluates the meridional gradient with UV and not uv. From uv we can return to zeta mathcalD via","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"beginaligned\nzeta = frac1Rcosthetapartial_lambda v - frac1Rcosthetapartial_theta (u costheta) \nmathcalD = frac1Rcosthetapartial_lambda u + frac1Rcosthetapartial_theta (v costheta)\nendaligned","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Equivalently, we have","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"beginaligned\nU = -fraccosthetaRpartial_thetaPsi + frac1Rpartial_lambdaPhi \nV = +fraccosthetaRpartial_thetaPhi + frac1Rpartial_lambdaPsi \nzeta = frac1Rpartial_lambda left( fracVcos^2theta right) -\nfraccosthetaRpartial_theta left( fracUcos^2theta right) \nmathcalD = frac1Rpartial_lambda left( fracUcos^2theta right) +\nfraccosthetaRpartial_theta left( fracVcos^2theta right)\nendaligned","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"which is a more convenient formulation because of the way how the Meridional derivative is implemented with a recursion relation, actually computing costheta partial_theta rather than partial_theta directly. The remaining cosine scalings in (UV)*cos^-2theta are done in grid-point space. If one wanted to get back to zeta mathcalD this is how it would be done, but it is often more convenient to unscale UV on the fly in the spectral transform to obtain uv and then divide again by costheta when any gradient (or divergence or curl) is taken. This is because other terms would need that single costheta unscaling too before a gradient is taken. How the operators nabla nabla times nabla cdot can be implemented with spherical harmonics is presented in the following sections.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Also note that SpeedyWeather.jl scales the equations with the radius R (see Radius scaling) such that the divisions by R drop out in this last formulation too.","category":"page"},{"location":"spectral_transform/#Zonal-derivative","page":"Spherical harmonic transform","title":"Zonal derivative","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The zonal derivative of a scalar field Psi in spectral space is the zonal derivative of all its respective spherical harmonics Psi_lm(phitheta) (now we use phi for longitudes to avoid confusion with the Legendre polynomials lambda_lm)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"v_lm = frac1R cos(theta) fracpartialpartial phi left( lambda_l^m(costheta) e^imphi right) =\nfracimR cos(theta) lambda_l^m(costheta) e^imphi = fracimR cos(theta) Psi_lm","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"So for every spectral harmonic, cos(theta)v_lm is obtained from Psi_lm via a multiplication with imR. Unscaling the cos(theta)-factor is done after transforming the spectral coefficients v_lm into grid-point space. As discussed in Radius scaling, SpeedyWeather.jl scales the stream function as tildePsi = R^-1Psi such that the division by radius R in the gradients can be omitted. The zonal derivative becomes therefore effectively for each spherical harmonic a scaling with its (imaginary) order im. The spherical harmonics are essentially just a Fourier transform in zonal direction and the derivative a multiplication with the respective wave number m times imaginary i.","category":"page"},{"location":"spectral_transform/#Meridional-derivative","page":"Spherical harmonic transform","title":"Meridional derivative","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The meridional derivative of the spherical harmonics is a derivative of the Legendre polynomials for which the following recursion relation applies[10],[11]","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"costheta fracdP_lmdtheta = -lepsilon_l+1mP_l+1m + (l+1)epsilon_lmP_l-1m","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"with recursion factors","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"epsilon_lm = sqrtfracl^2-m^24l^2-1","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"In the following we use the example of obtaining the zonal velocity u from the stream function Psi, which is through the negative meridional gradient. For the meridional derivative itself the leading minus sign has to be omitted. Starting with the spectral expansion","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Psi(lambdatheta) = sum_lmPsi_lmP_lm(sintheta)e^imlambda","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"we multiply with -R^-1costhetapartial_theta to obtain","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"costhetaleft(-frac1Rpartial_thetaPsi right) = -frac1Rsum_lmPsi_lme^imlambdacosthetapartial_theta P_lm","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"at which point the recursion from above can be applied. Collecting terms proportional to P_lm then yields","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"(cos(theta)u)_lm = -frac1R(-(l-1)epsilon_lmPsi_l-1m + (l+2)epsilon_l+1mPsi_l+1m)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"To obtain the coefficient of each spherical harmonic lm of the meridional gradient of a spectral field, two coefficients at l-1m and l+1m have to be combined. This means that the coefficient of a gradient ((costheta) u)_lm is a linear combination of the coefficients of one higher and one lower degree Psi_l+1mPsi_l-1m. As the coefficient Psi_lm with ml are zero, the sectoral harmonics (l=m) of the gradients are obtained from the first off-diagonal only. However, the l=l_max harmonics of the gradients require the l_max-1 as well as the l_max+1 harmonics. As a consequence vector quantities like velocity components uv require one more degree l than scalar quantities like vorticity[Bourke72]. However, for easier compatibility all spectral fields in SpeedyWeather.jl use one more degree l, but scalar quantities should not make use of it. Equivalently, the last degree l is set to zero before the time integration, which only advances scalar quantities.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"In SpeedyWeather.jl vector quantities like uv use therefore one more meridional mode than scalar quantities such as vorticity zeta or stream function Psi. The meridional derivative in SpeedyWeather.jl also omits the 1R-scaling as explained for the Zonal derivative and in Radius scaling.","category":"page"},{"location":"spectral_transform/#Divergence-and-curl-in-spherical-harmonics","page":"Spherical harmonic transform","title":"Divergence and curl in spherical harmonics","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The meridional gradient as described above can be applied to scalars, such as Psi and Phi in the conversion to velocities (uv) = nabla^botPsi + nablaPhi, however, the operators curl nabla times and divergence nabla cdot in spherical coordinates involve a costheta scaling before the meridional gradient is applied. How to translate this to spectral coefficients has to be derived separately[10],[11].","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The spectral transform of vorticity zeta is","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"zeta_lm = frac12piint_-tfracpi2^tfracpi2int_0^2pi zeta(lambdatheta)\nP_lm(sintheta) e^imlambda dlambda costheta dtheta","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Given that Rzeta = cos^-1partial_lambda v - cos^-1partial_theta (u costheta), we therefore have to evaluate a meridional integral of the form","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"int P_lm frac1cos theta partial_theta(u costheta)) cos theta dtheta","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"which can be solved through integration by parts. As ucostheta = 0 at theta = pm tfracpi2 only the integral","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"= -int partial_theta P_lm (u costheta) dtheta = -int costheta partial_theta P_lm\n(fracucostheta) costheta dtheta","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"remains. Inserting the recurrence relation from the Meridional derivative turns this into","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"= -int left(-l epsilon_l+1mP_l+1m + (l+1)epsilon_lm P_l-1m right) (fracucostheta)\ncos theta dtheta","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Now we expand (tfracucostheta) but only the lm harmonic will project ontoP_lm. Let u^* = ucos^-1theta v^* = vcos^-1theta we then have in total","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"beginaligned\nRzeta_lm = imv^*_lm + (l+1)epsilon_lmu^*_l-1m - lepsilon_l+1mu^*_l+1m \nRD_lm = imu^*_lm - (l+1)epsilon_lmv^*_l-1m + lepsilon_l+1mv^*_l+1m \nendaligned","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"And the divergence D is similar, but (uv) to (-vu). We have moved the scaling with the radius R directly into zetaD as further described in Radius scaling.","category":"page"},{"location":"spectral_transform/#Laplacian","page":"Spherical harmonic transform","title":"Laplacian","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The spectral Laplacian is easily applied to the coefficients Psi_lm of a spectral field as the spherical harmonics are eigenfunctions of the Laplace operator nabla^2 in spherical coordinates with eigenvalues -l(l+1) divided by the radius squared R^2, i.e. nabla^2 Psi becomes tfrac-l(l+1)R^2Psi_lm in spectral space. For example, vorticity zeta and streamfunction Psi are related by zeta = nabla^2Psi in the barotropic vorticity model. Hence, in spectral space this is equivalent for every spectral mode of degree l and order m to","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"zeta_lm = frac-l(l+1)R^2Psi_lm","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"This can be easily inverted to obtain the stream function Psi from vorticity zeta instead. In order to avoid division by zero, we set Psi_00 here, given that the stream function is only defined up to a constant anyway.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"beginaligned\nPsi_lm = fracR^2-l(l+1)zeta_lm quad foralllm 0\nPsi_00 = 0\nendaligned","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"See also Horizontal diffusion and Normalization of diffusion.","category":"page"},{"location":"spectral_transform/#U,V-from-vorticity-and-divergence","page":"Spherical harmonic transform","title":"U,V from vorticity and divergence","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"After having discussed the zonal and meridional derivatives with spherical harmonics as well as the Laplace operator, we can derive the conversion from vorticity zeta and divergence D (which are prognostic variables) to U=ucostheta V=vcostheta. Both are linear operations that act either solely on a given harmonic (the zonal gradient and the Laplace operator) or are linear combinations between one lower and one higher degree l (the meridional gradient). It is therefore computationally more efficient to compute UV directly from zetaD instead of calculating stream function and velocity potential first. In total we have","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"beginaligned\nU_lm = -fraciml(l+1)(RD)_lm + fracepsilon_l+1ml+1(Rzeta)_l+1m -\nfracepsilon_lml(Rzeta)_l-1m \nV_lm = -fraciml(l+1)(Rzeta)_lm - fracepsilon_l+1ml+1(RD)_l+1m +\nfracepsilon_lml(RD)_l-1m \nendaligned","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"We have moved the scaling with the radius R directly into zetaD as further described in Radius scaling.","category":"page"},{"location":"spectral_transform/#References","page":"Spherical harmonic transform","title":"References","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[Malardel2016]: Malardel S, Wedi N, Deconinck W, Diamantakis M, Kühnlein C, Mozdzynski G, Hamrud M, Smolarkiewicz P. A new grid for the IFS. ECMWF newsletter. 2016;146(23-28):321. doi: 10.21957/zwdu9u5i","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[Gorski2004]: Górski, Hivon, Banday, Wandelt, Hansen, Reinecke, Bartelmann, 2004. HEALPix: A FRAMEWORK FOR HIGH-RESOLUTION DISCRETIZATION AND FAST ANALYSIS OF DATA DISTRIBUTED ON THE SPHERE, The Astrophysical Journal. doi:10.1086/427976","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[Willmert2020]: Justin Willmert, 2020. justinwillmert.comIntroduction to Associated Legendre Polynomials (Legendre.jl Series, Part I)\nCalculating Legendre Polynomials (Legendre.jl Series, Part II)\nPre-normalizing Legendre Polynomials (Legendre.jl Series, Part III)\nMaintaining numerical accuracy in the Legendre recurrences (Legendre.jl Series, Part IV)\nIntroducing Legendre.jl (Legendre.jl Series, Part V)\nNumerical Accuracy of the Spherical Harmonic Recurrence Coefficient (Legendre.jl Series Addendum)\nNotes on Calculating the Spherical Harmonics\nMore Notes on Calculating the Spherical Harmonics: Analysis of maps to harmonic coefficients","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[Daley78]: Roger Daley & Yvon Bourassa (1978) Rhomboidal versus triangular spherical harmonic truncation: Some verification statistics, Atmosphere-Ocean, 16:2, 187-196, DOI: 10.1080/07055900.1978.9649026","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[Randall2021]: David Randall, 2021. An Introduction to Numerical Modeling of the Atmosphere, Chapter 22.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[Durran2010]: Dale Durran, 2010. Numerical Methods for Fluid Dynamics, Springer. In particular section 6.2, 6.4.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[GFDL]: Geophysical Fluid Dynamics Laboratory, The barotropic vorticity equation.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[FFT]: Depending on the implementation of the Fast Fourier Transform (Cooley-Tukey algorithm, or or the Bluestein algorithm) easily Fourier-transformable can mean different things: Vectors of the length n that is a power of two, i.e. n = 2^i is certainly easily Fourier-transformable, but for most FFT implementations so are n = 2^i3^j5^k with ijk some positive integers. In fact, FFTW uses O(n log n) algorithms even for prime sizes.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[Bourke72]: Bourke, W. An Efficient, One-Level, Primitive-Equation Spectral Model. Mon. Wea. Rev. 100, 683–689 (1972). doi:10.1175/1520-0493(1972)100<0683:AEOPSM>2.3.CO;2","category":"page"},{"location":"ringgrids/#RingGrids","page":"Submodule: RingGrids","title":"RingGrids","text":"","category":"section"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"RingGrids is a submodule that has been developed for SpeedyWeather.jl which is technically independent (SpeedyWeather.jl however imports it and so does SpeedyTransforms) and can also be used without running simulations. It is just not put into its own respective repository.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"RingGrids defines several iso-latitude grids, which are mathematically described in the section on Grids. In brief, they include the regular latitude-longitude grids (here called FullClenshawGrid) as well as grids which latitudes are shifted to the Gaussian latitudes and reduced grids, meaning that they have a decreasing number of longitudinal points towards the poles to be more equal-area than full grids.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"RingGrids defines and exports the following grids:","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"full grids: FullClenshawGrid, FullGaussianGrid, FullHEALPix, and FullOctaHEALPix\nreduced grids: OctahedralGaussianGrid, OctahedralClenshawGrid, OctaHEALPixGrid and HEALPixGrid","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"The following explanation of how to use these can be mostly applied to any of them, however, there are certain functions that are not defined, e.g. the full grids can be trivially converted to a Matrix (i.e. they are rectangular grids) but not the OctahedralGaussianGrid.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"note: What is a ring?\nWe use the term ring, short for iso-latitude ring, to refer to a sequence of grid points that all share the same latitude. A latitude-longitude grid is a ring grid, as it organises its grid-points into rings. However, other grids, like the cubed-sphere are not based on iso-latitude rings. SpeedyWeather.jl only works with ring grids because its a requirement for the Spherical Harmonic Transform to be efficient. See Grids.","category":"page"},{"location":"ringgrids/#Creating-data-on-a-RingGrid","page":"Submodule: RingGrids","title":"Creating data on a RingGrid","text":"","category":"section"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"Every grid in RingGrids has a grid.data field, which is a vector containing the data on the grid. The grid points are unravelled west to east then north to south, meaning that it starts at 90˚N and 0˚E then walks eastward for 360˚ before jumping on the next latitude ring further south, this way circling around the sphere till reaching the south pole. This may also be called ring order.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"Data in a Matrix which follows this ring order can be put on a FullGaussianGrid like so","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"using SpeedyWeather.RingGrids\nmap = randn(Float32,8,4)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"grid = FullGaussianGrid(map)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"A full Gaussian grid has always 2N x N grid points, but a FullClenshawGrid has 2N x N-1, if those dimensions don't match, the creation will throw an error. To reobtain the data from a grid, you can access its data field which returns a normal Vector","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"grid.data","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"Which can be reshaped to reobtain map from above. Alternatively you can Matrix(grid) to do this in one step","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"map == Matrix(FullGaussianGrid(map))","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"You can also use zeros,ones,rand,randn to create a grid, whereby nlat_half, i.e. the number of latitude rings on one hemisphere, Equator included, is used as a resolution parameter and here as a second argument.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"nlat_half = 4\ngrid = randn(OctahedralGaussianGrid{Float16},nlat_half)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"and any element type T can be used for OctahedralGaussianGrid{T} and similar for other grid types.","category":"page"},{"location":"ringgrids/#Visualising-RingGrid-data","page":"Submodule: RingGrids","title":"Visualising RingGrid data","text":"","category":"section"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"As only the full grids can be reshaped into a matrix, the underlying data structure of any AbstractGrid is a vector. As shown in the examples above, one can therefore inspect the data as if it was a vector. But as that data has, through its <:AbstractGrid type, all the geometric information available to plot it on a map, RingGrids also exports plot function, based on UnicodePlots' heatmap.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"nlat_half = 24\ngrid = randn(OctahedralGaussianGrid,nlat_half)\nplot(grid)","category":"page"},{"location":"ringgrids/#Indexing-RingGrids","page":"Submodule: RingGrids","title":"Indexing RingGrids","text":"","category":"section"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"All RingGrids have a single index ij which follows the ring order. While this is obviously not super exciting here are some examples how to make better use of the information that the data sits on a grid.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"We obtain the latitudes of the rings of a grid by calling get_latd (get_lond is only defined for full grids, or use get_latdlonds for latitudes, longitudes per grid point not per ring)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"grid = randn(OctahedralClenshawGrid,5)\nlatd = get_latd(grid)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"Now we could calculate Coriolis and add it on the grid as follows","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"rotation = 7.29e-5 # angular frequency of Earth's rotation [rad/s]\ncoriolis = 2rotation*sind.(latd) # vector of coriolis parameters per latitude ring\n\nrings = eachring(grid)\nfor (j,ring) in enumerate(rings)\n f = coriolis[j]\n for ij in ring\n grid[ij] += f\n end\nend","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"eachring creates a vector of UnitRange indices, such that we can loop over the ring index j (j=1 being closest to the North pole) pull the coriolis parameter at that latitude and then loop over all in-ring indices i (changing longitudes) to do something on the grid. Something similar can be done to scale/unscale with the cosine of latitude for example. We can always loop over all grid-points like so","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"for ij in eachgridpoint(grid)\n grid[ij]\nend","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"or use eachindex instead.","category":"page"},{"location":"ringgrids/#Interpolation-on-RingGrids","page":"Submodule: RingGrids","title":"Interpolation on RingGrids","text":"","category":"section"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"In most cases we will want to use RingGrids so that our data directly comes with the geometric information of where the grid-point is one the sphere. We have seen how to use get_latd, get_lond, ... for that above. This information generally can also be used to interpolate our data from grid to another or to request an interpolated value on some coordinates. Using our data on grid which is an OctahedralGaussianGrid from above we can use the interpolate function to get it onto a FullGaussianGrid (or any other grid for purpose)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"grid = randn(OctahedralGaussianGrid{Float32},4)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"interpolate(FullGaussianGrid,grid)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"By default this will linearly interpolate (it's an Anvil interpolator, see below) onto a grid with the same nlat_half, but we can also coarse-grain or fine-grain by specifying nlat_half directly as 2nd argument","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"interpolate(FullGaussianGrid,6,grid)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"So we got from an 8-ring OctahedralGaussianGrid{Float16} to a 12-ring FullGaussianGrid{Float64}, so it did a conversion from Float16 to Float64 on the fly too, because the default precision is Float64 unless specified. interpolate(FullGaussianGrid{Float16},6,grid) would have interpolated onto a grid with element type Float16.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"One can also interpolate onto a given coordinate ˚N, ˚E like so","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"interpolate(30.0,10.0,grid)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"we interpolated the data from grid onto 30˚N, 10˚E. To do this simultaneously for many coordinates they can be packed into a vector too","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"interpolate([30.0,40.0,50.0],[10.0,10.0,10.0],grid)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"which returns the data on grid at 30˚N, 40˚N, 50˚N, and 10˚E respectively. Note how the interpolation here retains the element type of grid.","category":"page"},{"location":"ringgrids/#Performance-for-RingGrid-interpolation","page":"Submodule: RingGrids","title":"Performance for RingGrid interpolation","text":"","category":"section"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"Every time an interpolation like interpolate(30.0,10.0,grid) is called, several things happen, which are important to understand to know how to get the fastest interpolation out of this module in a given situation. Under the hood an interpolation takes three arguments","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"output vector\ninput grid\ninterpolator","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"The output vector is just an array into which the interpolated data is written, providing this prevents unnecessary allocation of memory in case the destination array of the interpolation already exists. The input grid contains the data which is subject to interpolation, it must come on a ring grid, however, its coordinate information is actually already in the interpolator. The interpolator knows about the geometry of the grid the data is coming on and the coordinates it is supposed to interpolate onto. It has therefore precalculated the indices that are needed to access the right data on the input grid and the weights it needs to apply in the actual interpolation operation. The only thing it does not know is the actual data values of that grid. So in the case you want to interpolate from grid A to grid B many times, you can just reuse the same interpolator. If you want to change the coordinates of the output grid but its total number of points remain constants then you can update the locator inside the interpolator and only else you will need to create a new interpolator. Let's look at this in practice. Say we have two grids an want to interpolate between them","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"grid_in = rand(HEALPixGrid,4)\ngrid_out = zeros(FullClenshawGrid,6)\ninterp = RingGrids.interpolator(grid_out,grid_in)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"Now we have created an interpolator interp which knows about the geometry where to interpolate from and the coordinates there to interpolate to. It is also initialized, meaning it has precomputed the indices to of grid_in that are supposed to be used. It just does not know about the data of grid_in (and neither of grid_out which will be overwritten anyway). We can now do","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"interpolate!(grid_out,grid_in,interp)\ngrid_out","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"which is identical to interpolate(grid_out,grid_in) but you can reuse interp for other data. The interpolation can also handle various element types (the interpolator interp does not have to be updated for this either)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"grid_out = zeros(FullClenshawGrid{Float16},6);\ninterpolate!(grid_out,grid_in,interp)\ngrid_out","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"and we have converted data from a HEALPixGrid{Float64} (Float64 is always default if not specified) to a FullClenshawGrid{Float16} including the type conversion Float64-Float16 on the fly. Technically there are three data types and their combinations possible: The input data will come with a type, the output array has an element type and the interpolator has precomputed weights with a given type. Say we want to go from Float16 data on an OctahedralGaussianGrid to Float16 on a FullClenshawGrid but using Float32 precision for the interpolation itself, we would do this by","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"grid_in = randn(OctahedralGaussianGrid{Float16},24)\ngrid_out = zeros(FullClenshawGrid{Float16},24)\ninterp = RingGrids.interpolator(Float32,grid_out,grid_in)\ninterpolate!(grid_out,grid_in,interp)\ngrid_out","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"As a last example we want to illustrate a situation where we would always want to interpolate onto 10 coordinates, but their locations may change. In order to avoid recreating an interpolator object we would do (AnvilInterpolator is described in Anvil interpolator)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"npoints = 10 # number of coordinates to interpolate onto\ninterp = AnvilInterpolator(Float32,HEALPixGrid,24,npoints)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"with the first argument being the number format used during interpolation, then the input grid type, its resolution in terms of nlat_half and then the number of points to interpolate onto. However, interp is not yet initialized as it does not know about the destination coordinates yet. Let's define them, but note that we already decided there's only 10 of them above.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"latds = collect(0.0:5.0:45.0)\nlonds = collect(-10.0:2.0:8.0)\nnothing # hide","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"now we can update the locator inside our interpolator as follows","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"RingGrids.update_locator!(interp,latds,londs)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"With data matching the input from above, a nlat_half=24 HEALPixGrid, and allocate 10-element output vector","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"output_vec = zeros(10)\ngrid_input = rand(HEALPixGrid,24)\nnothing # hide","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"we can use the interpolator as follows","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"interpolate!(output_vec,grid_input,interp)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"which is the approximately the same as doing it directly without creating an interpolator first and updating its locator","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"interpolate(latds,londs,grid_input)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"but allows for a reuse of the interpolator. Note that the two output arrays are not exactly identical because we manually set our interpolator interp to use Float32 for the interpolation whereas the default is Float64.","category":"page"},{"location":"ringgrids/#Anvil-interpolator","page":"Submodule: RingGrids","title":"Anvil interpolator","text":"","category":"section"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"Currently the only interpolator implemented is a 4-point bilinear interpolator, which schematically works as follows. Anvil interpolation is the bilinear average of a,b,c,d which are values at grid points in an anvil-shaped configuration at location x, which is denoted by Δab,Δcd,Δy, the fraction of distances between a-b,c-d, and ab-cd, respectively. Note that a,c and b,d do not necessarily share the same longitude/x-coordinate.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":" 0..............1 # fraction of distance Δab between a,b\n |< Δab >|\n\n0^ a -------- o - b # anvil-shaped average of a,b,c,d at location x\n.Δy |\n. |\n.v x \n. |\n1 c ------ o ---- d\n\n |< Δcd >|\n 0...............1 # fraction of distance Δcd between c,d\n\n^ fraction of distance Δy between a-b and c-d.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"This interpolation is chosen as by definition of the ring grids, a and b share the same latitude, so do c and d, but the longitudes can be different for all four, a,b,c,d.","category":"page"},{"location":"ringgrids/#Function-index","page":"Submodule: RingGrids","title":"Function index","text":"","category":"section"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"Modules = [SpeedyWeather.RingGrids]","category":"page"},{"location":"ringgrids/#SpeedyWeather.RingGrids.AbstractFullGrid","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.AbstractFullGrid","text":"abstract type AbstractFullGrid{T} <: AbstractGrid{T} end\n\nAn AbstractFullGrid is a horizontal grid with a constant number of longitude points across latitude rings. Different latitudes can be used, Gaussian latitudes, equi-angle latitdes, or others.\n\n\n\n\n\n","category":"type"},{"location":"ringgrids/#SpeedyWeather.RingGrids.AbstractGrid","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.AbstractGrid","text":"abstract type AbstractGrid{T} <: AbstractVector{T} end\n\nThe abstract supertype for all spatial grids on the sphere supported by SpeedyWeather.jl. Every new grid has to be of the form\n\nabstract type AbstractGridClass{T} <: AbstractGrid{T} end\nstruct MyNewGrid{T} <: AbstractGridClass{T}\n data::Vector{T} # all grid points unravelled into a vector\n nlat_half::Int # resolution: latitude rings on one hemisphere (Equator incl)\nend\n\nMyNewGrid should belong to a grid class like AbstractFullGrid, AbstractOctahedralGrid or AbstractHEALPixGrid (that already exist but you may introduce a new class of grids) that share certain features such as the number of longitude points per latitude ring and indexing, but may have different latitudes or offset rotations. Each new grid Grid (or grid class) then has to implement the following methods (as an example, see octahedral.jl)\n\nFundamental grid properties getnpoints # total number of grid points nlatodd # does the grid have an odd number of latitude rings? getnlat # total number of latitude rings getnlat_half # number of latitude rings on one hemisphere incl Equator\n\nIndexing getnlonmax # maximum number of longitudes points (at the Equator) getnlonperring # number of longitudes on ring j eachindexinring # a unit range that indexes all longitude points on a ring\n\nCoordinates getcolat # vector of colatitudes (radians) getcolatlon # vectors of colatitudes, longitudes (both radians)\n\nSpectral truncation truncationorder # linear, quadratic, cubic = 1,2,3 for grid gettruncation # spectral truncation given a grid resolution get_resolution # grid resolution given a spectral truncation\n\nQuadrature weights and solid angles getquadratureweights # = sinθ Δθ for grid points on ring j for meridional integration getsolidangle # = sinθ Δθ Δϕ, solid angle of grid points on ring j\n\n\n\n\n\n","category":"type"},{"location":"ringgrids/#SpeedyWeather.RingGrids.AbstractHEALPixGrid","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.AbstractHEALPixGrid","text":"abstract type AbstractHEALPixGrid{T} <: AbstractGrid{T} end\n\nAn AbstractHEALPixGrid is a horizontal grid similar to the standard HEALPixGrid, but different latitudes can be used, the default HEALPix latitudes or others.\n\n\n\n\n\n","category":"type"},{"location":"ringgrids/#SpeedyWeather.RingGrids.AbstractInterpolator","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.AbstractInterpolator","text":"abstract type AbstractInterpolator{NF,G} end\n\nSupertype for Interpolators. Every Interpolator <: AbstractInterpolator is expected to have two fields,\n\ngeometry, which describes the grid G to interpolate from\nlocator, which locates the indices on G and their weights to interpolate onto a new grid.\n\nNF is the number format used to calculate the interpolation, which can be different from the input data and/or the interpolated data on the new grid.\n\n\n\n\n\n","category":"type"},{"location":"ringgrids/#SpeedyWeather.RingGrids.AbstractLocator","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.AbstractLocator","text":"AbstractLocator{NF}\n\nSupertype of every Locator, which locates the indices on a grid to be used to perform an interpolation. E.g. AnvilLocator uses a 4-point stencil for every new coordinate to interpolate onto. Higher order stencils can be implemented by defining OtherLocator <: AbstractLocactor.\n\n\n\n\n\n","category":"type"},{"location":"ringgrids/#SpeedyWeather.RingGrids.AbstractOctaHEALPixGrid","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.AbstractOctaHEALPixGrid","text":"abstract type AbstractOctaHEALPixGrid{T} <: AbstractGrid{T} end\n\nAn AbstractOctaHEALPixGrid is a horizontal grid similar to the standard OctahedralGrid, but the number of points in the ring closest to the Poles starts from 4 instead of 20, and the longitude of the first point in each ring is shifted as in HEALPixGrid. Also, different latitudes can be used.\n\n\n\n\n\n","category":"type"},{"location":"ringgrids/#SpeedyWeather.RingGrids.AbstractOctahedralGrid","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.AbstractOctahedralGrid","text":"abstract type AbstractOctahedralGrid{T} <: AbstractGrid{T} end\n\nAn AbstractOctahedralGrid is a horizontal grid with 16+4i longitude points on the latitude ring i starting with i=1 around the pole. Different latitudes can be used, Gaussian latitudes, equi-angle latitdes, or others.\n\n\n\n\n\n","category":"type"},{"location":"ringgrids/#SpeedyWeather.RingGrids.AnvilLocator","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.AnvilLocator","text":"AnvilLocator{NF<:AbstractFloat} <: AbtractLocator\n\nContains arrays that locates grid points of a given field to be uses in an interpolation and their weights. This Locator is a 4-point average in an anvil-shaped grid-point arrangement between two latitude rings.\n\n\n\n\n\n","category":"type"},{"location":"ringgrids/#SpeedyWeather.RingGrids.AnvilLocator-Union{Tuple{Integer}, Tuple{NF}} where NF<:AbstractFloat","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.AnvilLocator","text":"L = AnvilLocator( ::Type{NF}, # number format used for the interpolation\n npoints::Integer # number of points to interpolate onto\n ) where {NF<:AbstractFloat}\n\nZero generator function for the 4-point average AnvilLocator. Use update_locator! to update the grid indices used for interpolation and their weights. The number format NF is the format used for the calculations within the interpolation, the input data and/or output data formats may differ.\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.FullClenshawGrid","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.FullClenshawGrid","text":"G = FullClenshawGrid{T}\n\nA FullClenshawGrid is a regular latitude-longitude grid with an odd number of nlat equi-spaced latitudes, the central latitude ring is on the Equator. The same nlon longitudes for every latitude ring. The grid points are closer in zonal direction around the poles. The values of all grid points are stored in a vector field data that unravels the data 0 to 360˚, then ring by ring, which are sorted north to south.\n\n\n\n\n\n","category":"type"},{"location":"ringgrids/#SpeedyWeather.RingGrids.FullGaussianGrid","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.FullGaussianGrid","text":"G = FullGaussianGrid{T}\n\nA full Gaussian grid is a regular latitude-longitude grid that uses nlat Gaussian latitudes, and the same nlon longitudes for every latitude ring. The grid points are closer in zonal direction around the poles. The values of all grid points are stored in a vector field v that unravels the data 0 to 360˚, then ring by ring, which are sorted north to south.\n\n\n\n\n\n","category":"type"},{"location":"ringgrids/#SpeedyWeather.RingGrids.FullHEALPixGrid","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.FullHEALPixGrid","text":"G = FullHEALPixGrid{T}\n\nA full HEALPix grid is a regular latitude-longitude grid that uses nlat latitudes from the HEALPix grid, and the same nlon longitudes for every latitude ring. The grid points are closer in zonal direction around the poles. The values of all grid points are stored in a vector field v that unravels the data 0 to 360˚, then ring by ring, which are sorted north to south.\n\n\n\n\n\n","category":"type"},{"location":"ringgrids/#SpeedyWeather.RingGrids.FullOctaHEALPixGrid","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.FullOctaHEALPixGrid","text":"G = FullOctaHEALPixGrid{T}\n\nA full OctaHEALPix grid is a regular latitude-longitude grid that uses nlat OctaHEALPix latitudes, and the same nlon longitudes for every latitude ring. The grid points are closer in zonal direction around the poles. The values of all grid points are stored in a vector field v that unravels the data 0 to 360˚, then ring by ring, which are sorted north to south.\n\n\n\n\n\n","category":"type"},{"location":"ringgrids/#SpeedyWeather.RingGrids.GridGeometry","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.GridGeometry","text":"GridGeometry{G<:AbstractGrid}\n\ncontains general precomputed arrays describing the grid of G.\n\n\n\n\n\n","category":"type"},{"location":"ringgrids/#SpeedyWeather.RingGrids.GridGeometry-Tuple{Type{<:SpeedyWeather.RingGrids.AbstractGrid}, Integer}","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.GridGeometry","text":"G = GridGeometry( Grid::Type{<:AbstractGrid},\n nlat_half::Integer)\n\nPrecomputed arrays describing the geometry of the Grid with resolution nlat_half. Contains latitudes and longitudes of grid points, their ring index j and their unravelled indices ij.\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.HEALPixGrid","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.HEALPixGrid","text":"H = HEALPixGrid{T}\n\nA HEALPix grid with 12 faces, each nsidexnside grid points, each covering the same area. The number of latitude rings on one hemisphere (incl Equator) nlat_half is used as resolution parameter. The values of all grid points are stored in a vector field v that unravels the data 0 to 360˚, then ring by ring, which are sorted north to south.\n\n\n\n\n\n","category":"type"},{"location":"ringgrids/#SpeedyWeather.RingGrids.OctaHEALPixGrid","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.OctaHEALPixGrid","text":"H = OctaHEALPixGrid{T}\n\nA OctaHEALPix grid with 4 base faces, each nlat_halfxnlat_half grid points, each covering the same area. The values of all grid points are stored in a vector field data that unravels the data 0 to 360˚, then ring by ring, which are sorted north to south.\n\n\n\n\n\n","category":"type"},{"location":"ringgrids/#SpeedyWeather.RingGrids.OctahedralClenshawGrid","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.OctahedralClenshawGrid","text":"G = OctahedralClenshawGrid{T}\n\nAn Octahedral Clenshaw grid that uses nlat equi-spaced latitudes. Like FullClenshawGrid, the central latitude ring is on the Equator. Like OctahedralGaussianGrid, the number of longitude points per latitude ring decreases towards the poles. Starting with 20 equi-spaced longitude points (starting at 0˚E) on the rings around the poles, each latitude ring towards the equator has consecuitively 4 more points, one for each face of the octahedron. E.g. 20,24,28,32,...nlon-4,nlon,nlon,nlon-4,...,32,28,24,20. The maximum number of longitue points is nlon. The values of all grid points are stored in a vector field v that unravels the data 0 to 360˚, then ring by ring, which are sorted north to south.\n\n\n\n\n\n","category":"type"},{"location":"ringgrids/#SpeedyWeather.RingGrids.OctahedralGaussianGrid","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.OctahedralGaussianGrid","text":"G = OctahedralGaussianGrid{T}\n\nAn Octahedral Gaussian grid that uses nlat Gaussian latitudes, but a decreasing number of longitude points per latitude ring towards the poles. Starting with 20 equi-spaced longitude points (starting at 0˚E) on the rings around the poles, each latitude ring towards the equator has consecuitively 4 more points, one for each face of the octahedron. E.g. 20,24,28,32,...nlon-4,nlon,nlon,nlon-4,...,32,28,24,20. The maximum number of longitue points is nlon. The values of all grid points are stored in a vector field v that unravels the data 0 to 360˚, then ring by ring, which are sorted north to south.\n\n\n\n\n\n","category":"type"},{"location":"ringgrids/#SpeedyWeather.RingGrids.Matrix!-Tuple{AbstractMatrix, OctaHEALPixGrid}","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.Matrix!","text":"Matrix!(M::AbstractMatrix,\n G::OctaHEALPixGrid;\n quadrant_rotation=(0,1,2,3),\n matrix_quadrant=((2,2),(1,2),(1,1),(2,1)),\n )\n\nSorts the gridpoints in G into the matrix M without interpolation. Every quadrant of the grid G is rotated as specified in quadrant_rotation, 0 is no rotation, 1 is 90˚ clockwise, 2 is 180˚ etc. Grid quadrants are counted eastward starting from 0˚E. The grid quadrants are moved into the matrix quadrant (i,j) as specified. Defaults are equivalent to centered at 0˚E and a rotation such that the North Pole is at M's midpoint.\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.Matrix!-Tuple{AbstractMatrix, OctahedralClenshawGrid}","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.Matrix!","text":"Matrix!(M::AbstractMatrix,\n G::OctahedralClenshawGrid;\n quadrant_rotation=(0,1,2,3),\n matrix_quadrant=((2,2),(1,2),(1,1),(2,1)),\n )\n\nSorts the gridpoints in G into the matrix M without interpolation. Every quadrant of the grid G is rotated as specified in quadrant_rotation, 0 is no rotation, 1 is 90˚ clockwise, 2 is 180˚ etc. Grid quadrants are counted eastward starting from 0˚E. The grid quadrants are moved into the matrix quadrant (i,j) as specified. Defaults are equivalent to centered at 0˚E and a rotation such that the North Pole is at M's midpoint.\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.Matrix!-Union{Tuple{Vararg{Tuple{AbstractMatrix{T}, OctaHEALPixGrid}}}, Tuple{T}} where T","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.Matrix!","text":"Matrix!(MGs::Tuple{AbstractMatrix{T},OctaHEALPixGrid}...;kwargs...)\n\nLike Matrix!(::AbstractMatrix,::OctaHEALPixGrid) but for simultaneous processing of tuples ((M1,G1),(M2,G2),...) with matrices Mi and grids Gi. All matrices and grids have to be of the same size respectively.\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.Matrix!-Union{Tuple{Vararg{Tuple{AbstractMatrix{T}, OctahedralClenshawGrid}}}, Tuple{T}} where T","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.Matrix!","text":"Matrix!(MGs::Tuple{AbstractMatrix{T},OctahedralClenshawGrid}...;kwargs...)\n\nLike Matrix!(::AbstractMatrix,::OctahedralClenshawGrid) but for simultaneous processing of tuples ((M1,G1),(M2,G2),...) with matrices Mi and grids Gi. All matrices and grids have to be of the same size respectively.\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.anvil_average-NTuple{7, Any}","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.anvil_average","text":"anvil_average(a, b, c, d, Δab, Δcd, Δy) -> Any\n\n\nThe bilinear average of a,b,c,d which are values at grid points in an anvil-shaped configuration at location x, which is denoted by Δab,Δcd,Δy, the fraction of distances between a-b,c-d, and ab-cd, respectively. Note that a,c and b,d do not necessarily share the same longitude/x-coordinate. See schematic:\n\n 0..............1 # fraction of distance Δab between a,b\n |< Δab >|\n\n 0^ a -------- o - b # anvil-shaped average of a,b,c,d at location x\n .Δy |\n . |\n .v x \n . |\n 1 c ------ o ---- d\n\n |< Δcd >|\n 0...............1 # fraction of distance Δcd between c,d\n\n^ fraction of distance Δy between a-b and c-d.\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.average_on_poles-Union{Tuple{NF}, Tuple{SpeedyWeather.RingGrids.AbstractGrid{NF}, Vector{<:UnitRange{<:Integer}}}} where NF<:AbstractFloat","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.average_on_poles","text":"average_on_poles(\n A::SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},\n rings::Vector{<:UnitRange{<:Integer}}\n) -> Tuple{Any, Any}\n\n\nComputes the average at the North and South pole from a given grid A and it's precomputed ring indices rings. The North pole average is an equally weighted average of all grid points on the northern-most ring. Similar for the South pole.\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.average_on_poles-Union{Tuple{NF}, Tuple{SpeedyWeather.RingGrids.AbstractGrid{NF}, Vector{<:UnitRange{<:Integer}}}} where NF<:Integer","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.average_on_poles","text":"average_on_poles(\n A::SpeedyWeather.RingGrids.AbstractGrid{NF<:Integer},\n rings::Vector{<:UnitRange{<:Integer}}\n) -> Tuple{Any, Any}\n\n\nMethod for A::Abstract{T<:Integer} which rounds the averaged values to return the same number format NF.\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.each_index_in_ring-Union{Tuple{Grid}, Tuple{Grid, Integer}} where Grid<:SpeedyWeather.RingGrids.AbstractGrid","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.each_index_in_ring","text":"i = each_index_in_ring(grid,j)\n\nUnitRange i to access data on grid grid on ring j.\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.eachgridpoint-Tuple{SpeedyWeather.RingGrids.AbstractGrid}","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.eachgridpoint","text":"ijs = eachgridpoint(grid)\n\nUnitRange ijs to access each grid point on grid grid.\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.eachring-Tuple{SpeedyWeather.RingGrids.AbstractGrid}","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.eachring","text":"eachring(grid::SpeedyWeather.RingGrids.AbstractGrid) -> Any\n\n\nVector{UnitRange} rings to loop over every ring of grid grid and then each grid point per ring. To be used like\n\nrings = eachring(grid)\nfor ring in rings\n for ij in ring\n grid[ij]\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.eachring-Union{Tuple{Grid}, Tuple{Grid, Vararg{Grid}}} where Grid<:SpeedyWeather.RingGrids.AbstractGrid","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.eachring","text":"eachring(\n grid1::SpeedyWeather.RingGrids.AbstractGrid,\n grids::Grid<:SpeedyWeather.RingGrids.AbstractGrid...\n) -> Any\n\n\nSame as eachring(grid) but performs a bounds check to assess that all grids in grids are of same size.\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.extrema_in-Tuple{Vector, Real, Real}","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.extrema_in","text":"true/false = extrema_in(v::Vector,a::Real,b::Real)\n\nFor every element vᵢ in v does a<=vi<=b hold?\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.get_nlons-Tuple{Type{<:SpeedyWeather.RingGrids.AbstractGrid}, Integer}","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.get_nlons","text":"get_nlons(\n Grid::Type{<:SpeedyWeather.RingGrids.AbstractGrid},\n nlat_half::Integer;\n both_hemispheres\n) -> Any\n\n\nReturns a vector nlons for the number of longitude points per latitude ring, north to south. Provide grid Grid and its resolution parameter nlat_half. For both_hemisphere==false only the northern hemisphere (incl Equator) is returned.\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.isdecreasing-Tuple{Vector}","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.isdecreasing","text":"true/false = isdecreasing(v::Vector)\n\nCheck whether elements of a vector v are strictly decreasing.\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.isincreasing-Tuple{Vector}","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.isincreasing","text":"true/false = isincreasing(v::Vector)\n\nCheck whether elements of a vector v are strictly increasing.\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.rotate_matrix_indices_180-Tuple{Integer, Integer, Integer}","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.rotate_matrix_indices_180","text":"i_new,j_new = rotate_matrix_indices_180(i,j,s)\n\nRotate indices i,j of a square matrix of size s x s by 180˚.\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.rotate_matrix_indices_270-Tuple{Integer, Integer, Integer}","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.rotate_matrix_indices_270","text":"i_new,j_new = rotate_matrix_indices_270(i,j,s)\n\nRotate indices i,j of a square matrix of size s x s anti-clockwise by 270˚.\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.rotate_matrix_indices_90-Tuple{Integer, Integer, Integer}","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.rotate_matrix_indices_90","text":"i_new,j_new = rotate_matrix_indices_90(i,j,s)\n\nRotate indices i,j of a square matrix of size s x s anti-clockwise by 90˚.\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.whichring-Tuple{Integer, Vector{UnitRange{Int64}}}","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.whichring","text":"whichring(\n ij::Integer,\n rings::Vector{UnitRange{Int64}}\n) -> Int64\n\n\nObtain ring index j from gridpoint ij and Vector{UnitRange} describing rind indices as obtained from eachring(::Grid)\n\n\n\n\n\n","category":"method"},{"location":"#SpeedyWeather.jl-documentation","page":"Home","title":"SpeedyWeather.jl documentation","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Welcome to the documentation for SpeedyWeather.jl a global atmospheric circulation model with simple parametrizations to represent physical processes such as clouds, precipitation and radiation.","category":"page"},{"location":"#Overview","page":"Home","title":"Overview","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"SpeedyWeather.jl is a global spectral model that uses a spherical harmonic transform to simulate the general circulation of the atmosphere. The prognostic variables used are vorticity, divergence, temperature, surface pressure and specific humidity. Simple parameterizations represent various climate processes: Radiation, clouds, precipitation, surface fluxes, among others.","category":"page"},{"location":"","page":"Home","title":"Home","text":"SpeedyWeather.jl defines ","category":"page"},{"location":"","page":"Home","title":"Home","text":"BarotropicModel for the 2D barotropic vorticity equation\nShallowWaterModel for the 2D shallow water equations\nPrimitiveDryModel for the 3D primitive equations without humidity\nPrimitiveWetModel for the 3D primitive equations with humidity","category":"page"},{"location":"","page":"Home","title":"Home","text":"and solves these equations in spherical coordinates as described in this documentation.","category":"page"},{"location":"#Manual-outline","page":"Home","title":"Manual outline","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"See the following pages of the documentation for more details","category":"page"},{"location":"","page":"Home","title":"Home","text":"Installation\nHow to run SpeedyWeather.jl\nSpherical harmonic transform\nGrids\nBarotropic model\nShallow water model\nPrimitive equation model\nParameterizations\nExtending SpeedyWeather\nNetCDF output","category":"page"},{"location":"","page":"Home","title":"Home","text":"and the submodules","category":"page"},{"location":"","page":"Home","title":"Home","text":"RingGrids\nLowerTriangularMatrices \nSpeedyTransforms","category":"page"},{"location":"","page":"Home","title":"Home","text":"and the original documentation by Molteni and Kucharski.","category":"page"},{"location":"#Developers","page":"Home","title":"Developers","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"The development of SpeedyWeather.jl is lead by Milan Klöwer and current and past contributors include","category":"page"},{"location":"","page":"Home","title":"Home","text":"Tom Kimpson\nAlistair White\nMaximilian Gelbrecht\nDavid Meyer\nDaisuke Hotta\nNavid Constantinou","category":"page"},{"location":"","page":"Home","title":"Home","text":"Any contributions are always welcome!","category":"page"},{"location":"#Funding","page":"Home","title":"Funding","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"MK received funding by the European Research Council under Horizon 2020 within the ITHACA project, grant agreement number 741112 from 2021-2022. Since 2023 this project is also funded by the National Science Foundation NSF.","category":"page"},{"location":"time_integration/#Time-integration","page":"Time integration","title":"Time integration","text":"","category":"section"},{"location":"time_integration/","page":"Time integration","title":"Time integration","text":"SpeedyWeather.jl uses a leapfrog time scheme with a Robert's and Williams filter to dampen the computational mode and achieve 3rd order accuracy.","category":"page"},{"location":"time_integration/#Oscillation-equation","page":"Time integration","title":"Oscillation equation","text":"","category":"section"},{"location":"time_integration/","page":"Time integration","title":"Time integration","text":"fracdFdt = iomega F","category":"page"},{"location":"time_integration/#Implementation-details","page":"Time integration","title":"Implementation details","text":"","category":"section"}] +} diff --git a/dev/shallowwater/index.html b/dev/shallowwater/index.html new file mode 100644 index 000000000..56c2d508c --- /dev/null +++ b/dev/shallowwater/index.html @@ -0,0 +1,36 @@ + +Shallow water model · SpeedyWeather.jl

    Shallow water model

    The shallow water model describes the evolution of a 2D flow described by its velocity and an interface height that conceptually represents pressure. A divergent flow affects the interface height which in turn can impose a pressure gradient force onto the flow. The dynamics include advection, forces, dissipation, and continuity.

    The following description of the shallow water model largely follows the idealized models with spectral dynamics developed at the Geophysical Fluid Dynamics Laboratory[1]: The Shallow Water Equations[2].

    Shallow water equations

    The shallow water equations of velocity $\mathbf{u} = (u,v)$ and interface height $\eta$ (i.e. the deviation from the fluid's rest height $H$) are, formulated in terms of relative vorticity $\zeta = \nabla \times \mathbf{u}$, divergence $\mathcal{D} = \nabla \cdot \mathbf{u}$

    \[\begin{aligned} +\frac{\partial \zeta}{\partial t} + \nabla \cdot (\mathbf{u}(\zeta + f)) &= +\nabla \times \mathbf{F} + (-1)^{n+1}\nu\nabla^{2n}\zeta, \\ +\frac{\partial \mathcal{D}}{\partial t} - \nabla \times (\mathbf{u}(\zeta + f)) &= +\nabla \cdot \mathbf{F} -\nabla^2(\tfrac{1}{2}(u^2 + v^2) + g\eta) + (-1)^{n+1}\nu\nabla^{2n}\mathcal{D}, \\ +\frac{\partial \eta}{\partial t} + \nabla \cdot (\mathbf{u}h) &= F_\eta, +\end{aligned}\]

    We denote time$t$, Coriolis parameter $f$, a forcing vector $\mathbf{F} = (F_u,F_v)$, hyperdiffusion $(-1)^{n+1} \nu \nabla^{2n}$ ($n$ is the hyperdiffusion order, see Horizontal diffusion), gravitational acceleration $g$, dynamic layer thickness $h$, and a forcing for the interface height $F_\eta$. In the shallow water model the dynamics layer thickness $h$ is

    \[h = \eta + H - H_b\]

    that is, the layer thickness at rest $H$ plus the interface height $\eta$ minus orography $H_b$.

    In the shallow water system the flow can be described through $u,v$ or $\zeta,\mathcal{D}$ which are related through the stream function $\Psi$ and the velocity potential $\Phi$ (which is zero in the Barotropic vorticity equation).

    \[\begin{aligned} +\zeta &= \nabla^2 \Psi \\ +\mathcal{D} &= \nabla^2 \Phi \\ +\mathbf{u} &= \nabla^\perp \Psi + \nabla \Phi +\end{aligned}\]

    With $\nabla^\perp$ being the rotated gradient operator, in cartesian coordinates $x,y$: $\nabla^\perp = (-\partial_y, \partial_x)$. See Derivatives in spherical coordinates for further details. Especially because the inversion of the Laplacian and the gradients of $\Psi, \Phi$ can be computed in a single pass, see U,V from vorticity and divergence.

    The divergence/curl of the vorticity flux $\mathbf{u}(\zeta + f)$ are combined with the divergence/curl of the forcing vector $\mathbf{F}$, as

    \[\begin{aligned} +- \nabla \cdot (\mathbf{u}(\zeta + f)) + \nabla \times \mathbf{F} &= +\nabla \times (\mathbf{F} + \mathbf{u}_\perp(\zeta + f)) \\ +\nabla \times (\mathbf{u}(\zeta + f)) + \nabla \cdot \mathbf{F} &= +\nabla \cdot (\mathbf{F} + \mathbf{u}_\perp(\zeta + f)) +\end{aligned}\]

    equivalently to how this is done in the Barotropic vorticity equation with $\mathbf{u}_\perp = (v,-u)$.

    Algorithm

    0. Start with initial conditions of relative vorticity $\zeta_{lm}$, divergence $D_{lm}$, and interface height $\eta_{lm}$ in spectral space and transform this model state to grid-point space:

    • Invert the Laplacian of $\zeta_{lm}$ to obtain the stream function $\Psi_{lm}$ in spectral space
    • Invert the Laplacian of $D_{lm}$ to obtain the velocity potential $\Phi_{lm}$ in spectral space
    • obtain velocities $U_{lm} = (\cos(\theta)u)_{lm}, V_{lm} = (\cos(\theta)v)_{lm}$ from $\nabla^\perp\Psi_{lm} + \nabla\Phi_{lm}$
    • Transform velocities $U_{lm}$, $V_{lm}$ to grid-point space $U,V$
    • Unscale the $\cos(\theta)$ factor to obtain $u,v$
    • Transform $\zeta_{lm}$, $D_{lm}$, $\eta_{lm}$ to $\zeta, D, \eta$ in grid-point space

    Now loop over

    1. Compute the forcing vector $\mathbf{F} = (F_u,F_v)$ for $u$ and $v$
    2. Multiply $u,v$ with $\zeta+f$ in grid-point space
    3. Add $A = F_u + v(\zeta + f)$ and $B = F_v - u(\zeta + f)$
    4. Transform these vector components to spectral space $A_{lm}$, $B_{lm}$
    5. Compute the curl of $(A,B)_{lm}$ in spectral space which is the tendency of $\zeta_{lm}$
    6. Compute the divergence of $(A,B)_{lm}$ in spectral space which is the tendency of $\mathcal{D}_{lm}$
    7. Compute the kinetic energy $\frac{1}{2}(u^2 + v^2)$ and transform to spectral space
    8. Add to the kinetic energy the "geopotential" $g\eta_{lm}$ in spectral space to obtain the Bernoulli potential
    9. Take the Laplacian of the Bernoulli potential and subtract from the divergence tendency
    10. Compute the volume fluxes $uh,vh$ in grid-point space via $h = \eta + H - H_b$
    11. Transform to spectral space and take the divergence for $-\nabla \cdot (\mathbf{u}h)$ which is the tendency for $\eta$
    12. Add possibly forcing $F_\eta$ for $\eta$ in spectral space
    13. Correct the tendencies following the semi-implicit time integration to prevent fast gravity waves from causing numerical instabilities
    14. Compute the horizontal diffusion based on the $\zeta,\mathcal{D}$ tendencies
    15. Compute a leapfrog time step as described in Time integration with a Robert-Asselin and Williams filter
    16. Transform the new spectral state of $\zeta_{lm}$, $\mathcal{D}_{lm}$, $\eta_{lm}$ to grid-point $u,v,\zeta,\mathcal{D},\eta$ as described in 0.
    17. Possibly do some output
    18. Repeat from 1.

    Semi-implicit time integration

    Probably the biggest advantage of a spectral model is its ability to solve (parts of) the equations implicitly a low computational cost. The reason is that a linear operator can be easily inverted in spectral space, removing the necessity to solve large equation systems. An operation like $\Psi = \nabla^{-2}\zeta$ in grid-point space is costly because it requires a global communication, coupling all grid points. In spectral space $\nabla^2$ is a diagonal operator, meaning that there is no communication between harmonics and its inversion is therefore easily done on a mode-by-mode basis of the harmonics.

    This can be made use of when facing time stepping constraints with explicit schemes, where ridiculuously small time steps to resolve fast waves would otherwise result in a horribly slow simulation. In the shallow water system there are gravity waves that propagate at a wave speed of $\sqrt{gH}$ (typically 300m/s), which, in order to not violate the CFL criterion for explicit time stepping, would need to be resolved. Therefore, treating the terms that are responsible for gravity waves implicitly would remove that time stepping constraint and allows us to run the simulation at the time step needed to resolve the advective motion of the atmosphere, which is usually one or two orders of magnitude longer than gravity waves.

    In the following we will describe how the semi implicit time integration can be combined with the Leapfrog time stepping and the Robert-Asselin and Williams filter for a large increase in numerical stability with gravity waves. Let $V_i$ be the model state of all prognostic variables at time step $i$, the leapfrog time stepping is then

    \[\frac{V_{i+1} - V_{i-1}}{2\Delta t} = N(V_{i})\]

    with the right-hand side operator $N$ evaluated at the current time step $i$. Now the idea is to split the terms in $N$ into non-linear terms that are evaluated explicitly in $N_E$ and into the linear terms $N_I$, solved implicitly, that are responsible for the gravity waves. We could already assume to evaluate $N_I$ at $i+1$, but in fact, we can introduce $\alpha \in [0,1]$ so that for $\alpha=0$ we use $i-1$ (i.e. explicit), for $\alpha=1/2$ it is centred implicit $\tfrac{1}{2}N_I(V_{i-1}) + \tfrac{1}{2}N_I(V_{i+1})$, and for $\alpha=1$ a fully backwards scheme $N_I(V_{i+1})$ evaluated at $i+1$.

    \[\frac{V_{i+1} - V_{i-1}}{2\Delta t} = N_E(V_{i}) + \alpha N_I(V_{i+1}) + (1-\alpha)N_I(V_{i-1})\]

    Let $\delta V = \tfrac{V_{i+1} - V_{i-1}}{2\Delta t}$ be the tendency we need for the Leapfrog time stepping. Introducing $\xi = 2\alpha\Delta t$ we have

    \[\delta V = N_E(V_i) + N_I(V_{i-1}) + \xi N_I(\delta V)\]

    because $N_I$ is a linear operator. This is done so that we can solve for $\delta V$ by inverting $N_I$, but let us gather the other terms as $G$ first.

    \[G = N_E(V_i) + N_I(V_{i-1}) = N(V_i) + N_I(V_{i-1} - V_i)\]

    For the shallow water equations we will only make use of the last formulation, meaning we first evaluate the whole right-hand side $N(V_i)$ at the current time step as we would do with fully explicit time stepping but then add the implicit terms $N_I(V_{i-1} - V_i)$ afterwards to move those terms from $i$ to $i-1$. Note that we could also directly evaluate the implicit terms at $i-1$ as it is suggested in the previous formulation $N_E(V_i) + N_I(V_{i-1})$, the result would be the same. But in general it can be more efficient to do it one or the other way, and in fact it is also possible to combine both ways. This will be discussed in the semi-implicit time stepping for the primitive equations.

    We can now implicitly solve for $\delta V$ by

    \[\delta V = (1-\xi N_I)^{-1}G\]

    So what is $N_I$? In the shallow water system the gravity waves are caused by

    \[\begin{aligned} +\frac{\partial \mathcal{D}}{\partial t} &= -g\nabla^2\eta \\ +\frac{\partial \eta}{\partial t} &= -H\mathcal{D}, +\end{aligned}\]

    which is a linearization of the equations around a state of rest with uniform constant layer thickness $h = H$. The continuity equation with the $-\nabla(\mathbf{u}h)$ term, for example, is linearized to $-\nabla(\mathbf{u}H) = -H\mathcal{D}$. The divergence and continuity equations can now be written following the $\delta V = G + \xi N_I(\delta V)$ formulation from above as a coupled system (The vorticity equation is zero for the linear gravity wave equation in the shallow water equations, hence no semi-implicit correction has to be made to the vorticity tendency).

    \[\begin{aligned} +\delta \mathcal{D} &= G_\mathcal{D} - \xi g \nabla^2 \delta \eta \\ +\delta \eta &= G_\mathcal{\eta} - \xi H \delta\mathcal{D} +\end{aligned}\]

    with

    \[\begin{aligned} +G_\mathcal{D} &= N_\mathcal{D} - \xi g \nabla^2 (\eta_{i-1} - \eta_i) \\ +G_\mathcal{\eta} &= N_\eta - \xi H (\mathcal{D}_{i-1} - \mathcal{D}_i) +\end{aligned}\]

    Inserting the second equation into the first, we can first solve for $\delta \mathcal{D}$, and then for $\delta \eta$. Reminder that we do this in spectral space to every harmonic independently, so the Laplace operator $\nabla^2 = -l(l+1)$ takes the form of its eigenvalue $-l(l+1)$ (normalized to unit sphere, as are the scaled shallow water equations) and its inversion is therefore just the inversion of this scalar.

    \[\delta D = \frac{G_\mathcal{D} - \xi g\nabla^2 G_\eta}{1 - \xi^2 H \nabla^2} =: S^{-1}(G_\mathcal{D} - \xi g\nabla^2 G_\eta) \]

    Where the last formulation just makes it clear that $S = 1 - \xi^2 H \nabla^2$ is the operator to be inverted. $\delta \eta$ is then obtained via insertion as written above. Equivalently, by adding a superscript $l$ for every degree of the spherical harmonics, we have

    \[\delta \mathcal{D}^l = \frac{G_\mathcal{D}^l + \xi g l(l+1) G_\eta^l}{1 + \xi^2 H l(l+1)}\]

    The idea of the semi-implicit time stepping is now as follows:

    1. Evaluate the right-hand side explicitly at time step $i$ to obtain the explicit, preliminary tendencies $N_\mathcal{D},N_\eta$ (and $N_\zeta$ without a need for semi-implicit correction)
    2. Move the implicit terms from $i$ to $i-1$ when calculating $G_\mathcal{D}, G_\eta$
    3. Solve for $\delta \mathcal{D}$, the new, corrected tendency for divergence.
    4. With $\delta \mathcal{D}$ obtain $\delta \eta$, the new, corrected tendency for $\eta$.
    5. Apply horizontal diffusion as a correction to $N_\zeta, \delta \mathcal{D}$ as outlined in Horizontal diffusion.
    6. Leapfrog with tendencies that have been corrected for both semi-implicit and diffusion.

    Some notes on the semi-implicit time stepping

    • The inversion of the semi-implicit time stepping depends on $\delta t$, that means every time the time step changes, the inversion has to be recalculated.
    • You may choose $\alpha = 1/2$ to dampen gravity waves but initialisation shocks still usually kick off many gravity waves that propagate around the sphere for many days.
    • With increasing $\alpha > 1/2$ these waves are also slowed down, such that for $\alpha = 1$ they quickly disappear in several hours.
    • Using the scaled shallow water equations the time step $\delta t$ has to be the scaled time step $\tilde{\Delta t} = \delta t/R$ which is divided by the radius $R$. Then we use the normalized eigenvalues $-l(l+1)$ which also omit the $1/R^2$ scaling, see scaled shallow water equations for more details.

    Scaled shallow water equations

    Similar to the scaled barotropic vorticity equations, SpeedyWeather.jl scales in the shallow water equations. The vorticity and the divergence equation are scaled with $R^2$, the radius of the sphere squared, but the continuity equation is scaled with $R$. We also combine the vorticity flux and forcing into a single divergence/curl operation as mentioned in Shallow water equations above

    \[\begin{aligned} +\frac{\partial \tilde{\zeta}}{\partial \tilde{t}} &= +\tilde{\nabla} \times (\tilde{\mathbf{F}} + \mathbf{u}_\perp(\tilde{\zeta} + \tilde{f})) + +(-1)^{n+1}\tilde{\nu}\tilde{\nabla}^{2n}\tilde{\zeta} \\ +\frac{\partial \tilde{\mathcal{D}}}{\partial \tilde{t}} &= +\tilde{\nabla} \cdot (\tilde{\mathbf{F}} + \mathbf{u}_\perp(\tilde{\zeta} + \tilde{f})) - +\tilde{\nabla}^2\left(\tfrac{1}{2}(u^2 + v^2) + g\eta \right) + +(-1)^{n+1}\tilde{\nu}\tilde{\nabla}^{2n}\tilde{\mathcal{D}} \\ +\frac{\partial \eta}{\partial \tilde{t}} &= +- \tilde{\nabla} \cdot (\mathbf{u}h) + \tilde{F}_\eta. +\end{aligned}\]

    As in the scaled barotropic vorticity equations, one needs to scale the time step, the Coriolis force, the forcing and the diffusion coefficient, but then enjoys the luxury of working with dimensionless gradient operators. As before, SpeedyWeather.jl will scale vorticity and divergence just before the model integration starts and unscale them upon completion and for output. In the semi-implicit time integration we solve an equation that also has to be scaled. It is with radius squared scaling (because it is the tendency for the divergence equation which is also scaled with $R^2$)

    \[R^2 \delta D = R^2\frac{G_\mathcal{D} - \xi g\nabla^2 G_\eta}{1 - \xi^2 H \nabla^2}\]

    As $G_\eta$ is only scaled with $R$ we have

    \[\tilde{\delta D} = \frac{\tilde{G_\mathcal{D}} - \tilde{\xi} g\tilde{\nabla}^2 \tilde{G_\eta}}{1 - \tilde{\xi}^2 H \tilde{\nabla}^2}\]

    The $R^2$ normalizes the Laplace operator in the numerator, but using the scaled $G_\eta$ we also scale $\xi$ (which is convenient, because the time step within is the one we use anyway). The denominator $S$ does not actually change because $\xi^2\nabla^2 = \tilde{\xi}^2\tilde{\nabla}^2$ as $\xi^2$ is scaled with $1/R^2$, but the Laplace operator with $R^2$. So overall we just have to use the scaled time step $\tilde{\Delta t}$ and normalized eigenvalues for $\tilde{\nabla}^2$.

    References

    diff --git a/dev/siteinfo.js b/dev/siteinfo.js new file mode 100644 index 000000000..334349194 --- /dev/null +++ b/dev/siteinfo.js @@ -0,0 +1 @@ +var DOCUMENTER_CURRENT_VERSION = "dev"; diff --git a/dev/spectral_transform/index.html b/dev/spectral_transform/index.html new file mode 100644 index 000000000..1a303c92e --- /dev/null +++ b/dev/spectral_transform/index.html @@ -0,0 +1,32 @@ + +Spherical harmonic transform · SpeedyWeather.jl

    Spherical Harmonic Transform

    The following sections outline the implementation of the spherical harmonic transform (in short spectral transform) between the coefficients of the spherical harmonics (the spectral space) and the grid space which can be any of the Implemented grids as defined by RingGrids. This includes the classical full Gaussian grid, a regular longitude-latitude grid called the full Clenshaw grid (FullClenshawGrid), ECMWF's octahedral Gaussian grid[Malardel2016], and HEALPix grids[Gorski2004]. SpeedyWeather.jl's spectral transform module SpeedyTransforms is grid-flexible and can be used with any of these, see Grids.

    SpeedyTransforms is a module too!

    SpeedyTransform is the underlying module that SpeedyWeather imports to transform between spectral and grid-point space, which also implements Derivatives in spherical coordinates. You can use this module independently of SpeedyWeather for spectral transforms, see SpeedyTransforms.

    Inspiration

    The spectral transform implemented by SpeedyWeather.jl follows largely Justin Willmert's CMB.jl and SphericalHarmonicTransforms.jl package and makes use of AssociatedLegendrePolynomials.jl and FFTW.jl for the Fourier transform. Justin described his work in a Blog series [Willmert2020].

    Spherical harmonics

    The spherical harmonics $Y_{lm}$ of degree $l$ and order $m$ over the longitude $\phi = (0,2\pi)$ and colatitudes $\theta = (-\pi/2,\pi/2)$, are

    \[Y_{lm}(\phi, \theta) = \lambda_l^m(\sin\theta) e^{im\phi}\]

    with $\lambda_l^m$ being the pre-normalized associated Legendre polynomials, and $e^{im\phi}$ are the complex exponentials (the Fourier modes). Together they form a set of orthogonal basis functions on the sphere. For an interactive visualisation of the spherical harmonics, see here.

    Latitudes versus colatitudes

    The implementation of the spectral transforms in SpeedyWeather.jl uses colatitudes $\theta = (0,\pi)$ (0 at the north pole) but the dynamical core uses latitudes $\theta = (-\pi/2,\pi/2)$ ($\pi/2$ at the north pole). Note: We may also use latitudes in the spherical harmonic transform in the future for consistency.

    Synthesis (spectral to grid)

    The synthesis (or inverse transform) takes the spectral coefficients $a_{lm}$ and transforms them to grid-point values $f(\phi,\theta)$ (for the sake of simplicity first regarded as continuous). The synthesis is a linear combination of the spherical harmonics $Y_{lm}$ with non-zero coefficients.

    \[f(\phi,\theta) = \sum_{l=0}^{\infty} \sum_{m=-l}^l a_{lm} Y_{lm}(\phi,\theta)\]

    We obtain an approximation with a finite set of $a_{l,m}$ by truncating the series in both degree $l$ and order $m$ somehow. Most commonly, a triangular truncation is applied, such that all degrees after $l = l_{max}$ are discarded. Triangular because the retained array of the coefficients $a_{l,m}$ looks like a triangle. Other truncations like rhomboidal have been studied[Daley78] but are rarely used since. Choosing $l_{max}$ also constrains $m_{max}$ and determines the (horizontal) spectral resolution. In SpeedyWeather.jl this resolution as chosen as trunc when creating the SpectralGrid.

    For $f$ being a real-valued there is a symmetry

    \[a_{l,-m} = (-1)^m a^*_{l,+m},\]

    meaning that the coefficients at $-m$ and $m$ are the same, but the sign of the real and imaginary component can be flipped, as denoted with the $(-1)^m$ and the complex conjugate $a_{l,m}^*$. As we are only dealing with real-valued fields anyway, we therefore never have to store the negative orders $-m$ and end up with a lower triangular matrix of size $(l_{max}+1) \times (m_{max}+1)$ or technically $(T+1)^2$ where $T$ is the truncation trunc. One is added here because the degree $l$ and order $m$ use 0-based indexing but sizes (and so is Julia's indexing) are 1-based.

    For correctness we want to mention here that vector quantities require one more degree $l$ due to the recurrence relation in the Meridional derivative. Hence for practical reasons all spectral fields are represented as a lower triangular matrix of size $(m_{max} + 2) \times (m_{max} +1)$. And the scalar quantities would just not make use of that last degree, and its entries would be simply zero. We will, however, for the following sections ignore this and only discuss it again in Meridional derivative.

    Another consequence of the symmetry mentioned above is that the zonal harmonics, meaning $a_{l,m=0}$ have no imaginary component. Because these harmonics are zonally constant, a non-zero imaginary component would rotate them around the Earth's axis, which, well, doesn't actually change a real-valued field.

    Following the notation of [Willmert2020] we can therefore write the truncated synthesis as

    \[f(\phi,\theta) = \sum_{l=0}^{l_{max}} \sum_{m=0}^l (2-\delta_{m0}) a_{lm} Y_{lm}(\phi,\theta)\]

    The $(2-\delta_{m0})$ factor using the Kronecker $\delta$ is used here because of the symmetry we have to count both the $m,-m$ order pairs (hence the $2$) except for the zonal harmonics which do not have a pair.

    Another symmetry arises from the fact that the spherical harmonics are either symmetric or anti-symmetric around the Equator. There is an even/odd combination of degrees and orders so that the sign flips like a checkerboard

    \[Y_{l,m}(\phi,\pi-\theta) = (-1)^{l+m}Y_{lm}(\phi,\phi)\]

    This means that one only has to compute the Legendre polynomials for one hemisphere and the other one follows with this equality.

    Analysis (grid to spectral)

    Starting in grid-point space we can transform a field $f(\lambda,\theta)$ into the spectral space of the spherical harmonics by

    \[a_{l,m} = \int_0^{2\pi} \int_{0}^\pi f(\phi,\theta) Y_{l,m}(\phi,\theta) \sin \theta d\theta d\phi\]

    Note that this notation again uses colatitudes $\theta$, for latitudes the $\sin\theta$ becomes a $\cos\theta$ and the bounds have to be changed accordingly to $(-\frac{\pi}{2},\frac{\pi}{2})$. A discretization with $N$ grid points at location $(\phi_i,\theta_i)$, indexed by $i$ can be written as [Willmert2020]

    \[\hat{a}_{l,m} = \sum_i f(\phi_i,\theta_i) Y_{l,m}(\phi_i,\theta_i) \sin \theta_i \Delta\theta \Delta\phi\]

    The hat on $a$ just means that it is an approximation, or an estimate of the true $a_{lm} \approx \hat{a}_{lm}$. We can essentially make use of the same symmetries as already discussed in Synthesis. Splitting into the Fourier modes $e^{im\phi}$ and the Legendre polynomials $\lambda_l^m(\cos\theta)$ (which are defined over $[-1,1]$ so the $\cos\theta$ argument maps them to colatitudes) we have

    \[\hat{a}_{l,m} = \sum_j \left[ \sum_i f(\phi_i,\theta_j) e^{-im\phi_i} \right] \lambda_{l,m}(\theta_j) \sin \theta_j \Delta\theta \Delta\phi\]

    So the term in brackets can be separated out as long as the latitude $\theta_j$ is constant, which motivates us to restrict the spectral transform to grids with iso-latitude rings, see Grids. Furthermore, this term can be written as a fast Fourier transform, if the $\phi_i$ are equally spaced on the latitude ring $j$. Note that the in-ring index $i$ can depend on the ring index $j$, so that one can have reduced grids, which have fewer grid points towards the poles, for example. Also the Legendre polynomials only have to be computed for the colatitudes $\theta_j$ (and in fact only one hemisphere, due to the north-south symmetry discussed in the Synthesis). It is therefore practical and efficient to design a spectral transform implementation for ring grids, but there is no need to hardcode a specific grid.

    Spectral packing

    Spectral packing is the way how the coefficients $a_{lm}$ of the spherical harmonics of a given spectral field are stored in an array. SpeedyWeather.jl uses the conventional spectral packing of degree $l$ and order $m$ as illustrated in the following image (Cyp, CC BY-SA 3.0, via Wikimedia Commons)

    Every row represents an order $l \geq 0$, starting from $l=0$ at the top. Every column represents an order $m \geq 0$, starting from $m=0$ on the left. The coefficients of these spherical harmonics are directly mapped into a matrix $a_{lm}$ as

    $m$
    $l$$a_{00}$
    $a_{10}$$a_{11}$
    $a_{20}$$a_{12}$$a_{22}$
    $a_{30}$$a_{13}$$a_{23}$$a_{33}$

    which is consistently extended for higher degrees and orders. Consequently, all spectral fields are lower-triangular matrices with complex entries. The upper triangle excluding the diagonal are zero. Note that internally vector fields include an additional degree, such that $l_{max} = m_{max} + 1$ (see Derivatives in spherical coordinates for more information). The harmonics with $a_{l0}$ (the first column) are also called zonal harmonics as they are constant with longitude $\phi$. The harmonics with $a_{ll}$ (the main diagonal) are also called sectoral harmonics as they essentially split the sphere into $2l$ sectors in longitude $\phi$ without a zero-crossing in latitude.

    For correctness it is mentioned here that SpeedyWeather.jl uses a LowerTriangularMatrix type to store the spherical harmonic coefficients. By doing so, the upper triangle is actually not explicitly stored and the data technically unravelled into a vector, but this is hidden as much as possible from the user. For more details see LowerTriangularMatrices.

    Array indices

    For a spectral field a note that due to Julia's 1-based indexing the coefficient $a_{lm}$ is obtained via a[l+1,m+1]. Alternatively, we may index over 1-based l,m but a comment is usually added for clarification.

    Fortran SPEEDY does not use the same spectral packing as SpeedyWeather.jl. The alternative packing $l',m'$ therein uses $l'=m$ and $m'=l-m$ as summarized in the following table.

    degree $l$order $m$$l'=m$$m'=l-m$
    0000
    1001
    1110
    2002
    2111
    2220
    3003
    ............

    This alternative packing uses the top-left triangle of a coefficient matrix, and the degrees and orders from above are stored at the following indices

    $m'$
    $l'$$a_{00}$$a_{10}$$a_{20}$$a_{30}$
    $a_{11}$$a_{21}$$a_{31}$
    $a_{22}$$a_{32}$
    $a_{33}$

    This spectral packing is not used in SpeedyWeather.jl but illustrated here for completeness and comparison with Fortran SPEEDY.

    SpeedyWeather.jl uses triangular truncation such that only spherical harmonics with $l \leq l_{max}$ and $|m| \leq m_{max}$ are explicitly represented. This is usually described as $Tm_{max}$, with $l_{max} = m_{max}$ (although in vector quantities require one more degree $l$ in the recursion relation of meridional gradients). For example, T31 is the spectral resolution with $l_{max} = m_{max} = 31$. Note that the degree $l$ and order $m$ are mathematically 0-based, such that the corresponding coefficient matrix is of size 32x32.

    Available horizontal resolutions

    Technically, SpeedyWeather.jl supports arbitrarily chosen resolution parameter trunc when creating the SpectralGrid that refers to the highest non-zero degree $l_{max}$ that is resolved in spectral space. SpeedyWeather.jl will always try to choose an easily-Fourier transformable[FFT] size of the grid, but as we use FFTW.jl there is quite some flexibility without performance sacrifice. However, this has traditionally lead to typical resolutions that we also use for testing we therefore recommend to use. They are as follows with more details below

    truncnlonnlat$\Delta x$
    31 (default)9648400 km
    4212864312 km
    6319296216 km
    85256128165 km
    127384192112 km
    17051225685 km
    25576838458 km
    341102451243 km
    511153676829 km
    6822048102422 km
    10243072153614 km
    13654092204811 km

    Some remarks on this table

    • This assumes the default quadratic truncation, you can always adapt the grid resolution via the dealiasing option, see Matching spectral and grid resolution
    • nlat refers to the total number of latitude rings, see Grids. With non-Gaussian grids, nlat will be one one less, e.g. 47 instead of 48 rings.
    • nlon is the number of longitude points on the Full Gaussian Grid, for other grids there will be at most these number of points around the Equator.
    • $\Delta x$ is the horizontal resolution. For a spectral model there are many ways of estimating this[9]. We use here the square root of the average area a grid cell covers, see Effective grid resolution

    Effective grid resolution

    There are many ways to estimate the effective grid resolution of spectral models[9]. Some of them are based on the wavelength a given spectral resolution allows to represent, others on the total number of real variables per area. However, as many atmospheric models do represent a considerable amount of physics on the grid (see Parameterizations) there is also a good argument to include the actual grid resolution into this estimate and not just the spectral resolution. We therefore use the average grid cell area to estimate the resolution

    \[\Delta x = \sqrt{\frac{4\pi R^2}{N}}\]

    with $N$ number of grid points over a sphere with radius $R$. However, we have to acknowledge that this usually gives higher resolution compared to other methods of estimating the effective resolution, see [Randall2021] for a discussion. You may therefore need to be careful to make claims that, e.g. trunc=85 can resolve the atmospheric dynamics at a scale of 165km.

    Derivatives in spherical coordinates

    Horizontal gradients in spherical coordinates are defined for a scalar field $A$ and the latitudes $\theta$ and longitudes $\lambda$ as

    \[\nabla A = \left(\frac{1}{R\cos\theta}\frac{\partial A}{\partial \lambda}, \frac{1}{R}\frac{\partial A}{\partial \theta} \right).\]

    However, the divergence of a vector field $\mathbf{u} = (u,v)$ includes additional $\cos(\theta)$ scalings

    \[\nabla \cdot \mathbf{u} = \frac{1}{R\cos\theta}\frac{\partial u}{\partial \lambda} + +\frac{1}{R\cos\theta}\frac{\partial (v \cos\theta)}{\partial \theta},\]

    and similar for the curl

    \[\nabla \times \mathbf{u} = \frac{1}{R\cos\theta}\frac{\partial v}{\partial \lambda} - +\frac{1}{R\cos\theta}\frac{\partial (u \cos\theta)}{\partial \theta}.\]

    The radius of the sphere (i.e. Earth) is $R$. The zonal gradient scales with $1/\cos(\theta)$ as the longitudes converge towards the poles (note that $\theta$ describes latitudes here, definitions using colatitudes replace the $\cos$ with a $\sin$.)

    Starting with a spectral field of vorticity $\zeta$ and divergence $\mathcal{D}$ one can obtain stream function $\Psi$ and velocity potential $\Phi$ by inverting the Laplace operator $\nabla^2$:

    \[\Psi = \nabla^{-2}\zeta, \quad \Phi = \nabla^{-2}\mathcal{D}.\]

    The velocities $u,v$ are then obtained from $(u,v) = \nabla^\bot\Psi + \nabla\Phi$ following the definition from above and $\nabla^\bot = (-R^{-1}\partial_\theta, (R\cos\theta)^{-1}\partial_\lambda)$

    \[\begin{aligned} +u &= -\frac{1}{R}\partial_\theta\Psi + \frac{1}{R\cos\theta}\partial_\lambda\Phi \\ +v &= +\frac{1}{R}\partial_\theta\Phi + \frac{1}{R\cos\theta}\partial_\lambda\Psi. +\end{aligned}\]

    Alternatively, we can use the velocities $U = u\cos\theta, V = v\cos\theta$, which we do as the meridional gradient for spherical harmonics is easier implemented with a $\cos\theta$-scaling included, and because the divergence and curl in spherical coordinates evaluates the meridional gradient with $U,V$ and not $u,v$. From $u,v$ we can return to $\zeta, \mathcal{D}$ via

    \[\begin{aligned} +\zeta &= \frac{1}{R\cos\theta}\partial_\lambda v - \frac{1}{R\cos\theta}\partial_\theta (u \cos\theta) \\ +\mathcal{D} &= \frac{1}{R\cos\theta}\partial_\lambda u + \frac{1}{R\cos\theta}\partial_\theta (v \cos\theta). +\end{aligned}\]

    Equivalently, we have

    \[\begin{aligned} +U &= -\frac{\cos\theta}{R}\partial_\theta\Psi + \frac{1}{R}\partial_\lambda\Phi \\ +V &= +\frac{\cos\theta}{R}\partial_\theta\Phi + \frac{1}{R}\partial_\lambda\Psi \\ +\zeta &= \frac{1}{R}\partial_\lambda \left( \frac{V}{\cos^2\theta} \right) - +\frac{\cos\theta}{R}\partial_\theta \left( \frac{U}{\cos^2\theta} \right) \\ +\mathcal{D} &= \frac{1}{R}\partial_\lambda \left( \frac{U}{\cos^2\theta} \right) + +\frac{\cos\theta}{R}\partial_\theta \left( \frac{V}{\cos^2\theta} \right). +\end{aligned}\]

    which is a more convenient formulation because of the way how the Meridional derivative is implemented with a recursion relation, actually computing $\cos\theta \partial_\theta$ rather than $\partial_\theta$ directly. The remaining cosine scalings in $(U,V)*\cos^{-2}\theta$ are done in grid-point space. If one wanted to get back to $\zeta, \mathcal{D}$ this is how it would be done, but it is often more convenient to unscale $U,V$ on the fly in the spectral transform to obtain $u,v$ and then divide again by $\cos\theta$ when any gradient (or divergence or curl) is taken. This is because other terms would need that single $\cos\theta$ unscaling too before a gradient is taken. How the operators $\nabla, \nabla \times, \nabla \cdot$ can be implemented with spherical harmonics is presented in the following sections.

    Also note that SpeedyWeather.jl scales the equations with the radius R (see Radius scaling) such that the divisions by R drop out in this last formulation too.

    Zonal derivative

    The zonal derivative of a scalar field $\Psi$ in spectral space is the zonal derivative of all its respective spherical harmonics $\Psi_{lm}(\phi,\theta)$ (now we use $\phi$ for longitudes to avoid confusion with the Legendre polynomials $\lambda_{lm}$)

    \[v_{lm} = \frac{1}{R \cos(\theta)} \frac{\partial}{\partial \phi} \left( \lambda_l^m(\cos\theta) e^{im\phi} \right) = +\frac{im}{R \cos(\theta)} \lambda_l^m(\cos\theta) e^{im\phi} = \frac{im}{R \cos(\theta)} \Psi_{lm}\]

    So for every spectral harmonic, $\cos(\theta)v_{lm}$ is obtained from $\Psi_{lm}$ via a multiplication with $im/R$. Unscaling the $\cos(\theta)$-factor is done after transforming the spectral coefficients $v_{lm}$ into grid-point space. As discussed in Radius scaling, SpeedyWeather.jl scales the stream function as $\tilde{\Psi} = R^{-1}\Psi$ such that the division by radius $R$ in the gradients can be omitted. The zonal derivative becomes therefore effectively for each spherical harmonic a scaling with its (imaginary) order $im$. The spherical harmonics are essentially just a Fourier transform in zonal direction and the derivative a multiplication with the respective wave number $m$ times imaginary $i$.

    Meridional derivative

    The meridional derivative of the spherical harmonics is a derivative of the Legendre polynomials for which the following recursion relation applies[10],[11]

    \[\cos\theta \frac{dP_{l,m}}{d\theta} = -l\epsilon_{l+1,m}P_{l+1,m} + (l+1)\epsilon_{l,m}P_{l-1,m}.\]

    with recursion factors

    \[\epsilon_{l,m} = \sqrt{\frac{l^2-m^2}{4l^2-1}}\]

    In the following we use the example of obtaining the zonal velocity $u$ from the stream function $\Psi$, which is through the negative meridional gradient. For the meridional derivative itself the leading minus sign has to be omitted. Starting with the spectral expansion

    \[\Psi(\lambda,\theta) = \sum_{l,m}\Psi_{l,m}P_{l,m}(\sin\theta)e^{im\lambda}\]

    we multiply with $-R^{-1}\cos\theta\partial_\theta$ to obtain

    \[\cos\theta\left(-\frac{1}{R}\partial_\theta\Psi \right) = -\frac{1}{R}\sum_{l,m}\Psi_{l,m}e^{im\lambda}\cos\theta\partial_\theta P_{l,m}\]

    at which point the recursion from above can be applied. Collecting terms proportional to $P_{l,m}$ then yields

    \[(\cos(\theta)u)_{l,m} = -\frac{1}{R}(-(l-1)\epsilon_{l,m}\Psi_{l-1,m} + (l+2)\epsilon_{l+1,m}\Psi_{l+1,m})\]

    To obtain the coefficient of each spherical harmonic $l,m$ of the meridional gradient of a spectral field, two coefficients at $l-1,m$ and $l+1,m$ have to be combined. This means that the coefficient of a gradient $((\cos\theta) u)_{lm}$ is a linear combination of the coefficients of one higher and one lower degree $\Psi_{l+1,m},\Psi_{l-1,m}$. As the coefficient $\Psi_{lm}$ with $m<l$ are zero, the sectoral harmonics ($l=m$) of the gradients are obtained from the first off-diagonal only. However, the $l=l_{max}$ harmonics of the gradients require the $l_{max}-1$ as well as the $l_{max}+1$ harmonics. As a consequence vector quantities like velocity components $u,v$ require one more degree $l$ than scalar quantities like vorticity[Bourke72]. However, for easier compatibility all spectral fields in SpeedyWeather.jl use one more degree $l$, but scalar quantities should not make use of it. Equivalently, the last degree $l$ is set to zero before the time integration, which only advances scalar quantities.

    In SpeedyWeather.jl vector quantities like $u,v$ use therefore one more meridional mode than scalar quantities such as vorticity $\zeta$ or stream function $\Psi$. The meridional derivative in SpeedyWeather.jl also omits the $1/R$-scaling as explained for the Zonal derivative and in Radius scaling.

    Divergence and curl in spherical harmonics

    The meridional gradient as described above can be applied to scalars, such as $\Psi$ and $\Phi$ in the conversion to velocities $(u,v) = \nabla^\bot\Psi + \nabla\Phi$, however, the operators curl $\nabla \times$ and divergence $\nabla \cdot$ in spherical coordinates involve a $\cos\theta$ scaling before the meridional gradient is applied. How to translate this to spectral coefficients has to be derived separately[10],[11].

    The spectral transform of vorticity $\zeta$ is

    \[\zeta_{l,m} = \frac{1}{2\pi}\int_{-\tfrac{\pi}{2}}^\tfrac{\pi}{2}\int_0^{2\pi} \zeta(\lambda,\theta) +P_{l,m}(\sin\theta) e^{im\lambda} d\lambda \cos\theta d\theta\]

    Given that $R\zeta = \cos^{-1}\partial_\lambda v - \cos^{-1}\partial_\theta (u \cos\theta)$, we therefore have to evaluate a meridional integral of the form

    \[\int P_{l,m} \frac{1}{\cos \theta} \partial_\theta(u \cos\theta)) \cos \theta d\theta\]

    which can be solved through integration by parts. As $u\cos\theta = 0$ at $\theta = \pm \tfrac{\pi}{2}$ only the integral

    \[= -\int \partial_\theta P_{l,m} (u \cos\theta) d\theta = -\int \cos\theta \partial_\theta P_{l,m} +(\frac{u}{\cos\theta}) \cos\theta d\theta\]

    remains. Inserting the recurrence relation from the Meridional derivative turns this into

    \[= -\int \left(-l \epsilon_{l+1,m}P_{l+1,m} + (l+1)\epsilon_{l,m} P_{l-1,m} \right) (\frac{u}{\cos\theta}) +\cos \theta d\theta\]

    Now we expand $(\tfrac{u}{\cos\theta})$ but only the $l,m$ harmonic will project onto$P_{l,m}$. Let $u^* = u\cos^{-1}\theta, v^* = v\cos^{-1}\theta$ we then have in total

    \[\begin{aligned} +R\zeta_{l,m} &= imv^*_{l,m} + (l+1)\epsilon_{l,m}u^*_{l-1,m} - l\epsilon_{l+1,m}u^*_{l+1,m} \\ +RD_{l,m} &= imu^*_{l,m} - (l+1)\epsilon_{l,m}v^*_{l-1,m} + l\epsilon_{l+1,m}v^*_{l+1,m} \\ +\end{aligned}\]

    And the divergence $D$ is similar, but $(u,v) \to (-v,u)$. We have moved the scaling with the radius $R$ directly into $\zeta,D$ as further described in Radius scaling.

    Laplacian

    The spectral Laplacian is easily applied to the coefficients $\Psi_{lm}$ of a spectral field as the spherical harmonics are eigenfunctions of the Laplace operator $\nabla^2$ in spherical coordinates with eigenvalues $-l(l+1)$ divided by the radius squared $R^2$, i.e. $\nabla^2 \Psi$ becomes $\tfrac{-l(l+1)}{R^2}\Psi_{lm}$ in spectral space. For example, vorticity $\zeta$ and streamfunction $\Psi$ are related by $\zeta = \nabla^2\Psi$ in the barotropic vorticity model. Hence, in spectral space this is equivalent for every spectral mode of degree $l$ and order $m$ to

    \[\zeta_{l,m} = \frac{-l(l+1)}{R^2}\Psi_{l,m}\]

    This can be easily inverted to obtain the stream function $\Psi$ from vorticity $\zeta$ instead. In order to avoid division by zero, we set $\Psi_{0,0}$ here, given that the stream function is only defined up to a constant anyway.

    \[\begin{aligned} +\Psi_{l,m} &= \frac{R^2}{-l(l+1)}\zeta_{l,m} \quad \forall~l,m > 0,\\ +\Psi_{0,0} &= 0. +\end{aligned}\]

    See also Horizontal diffusion and Normalization of diffusion.

    U,V from vorticity and divergence

    After having discussed the zonal and meridional derivatives with spherical harmonics as well as the Laplace operator, we can derive the conversion from vorticity $\zeta$ and divergence $D$ (which are prognostic variables) to $U=u\cos\theta, V=v\cos\theta$. Both are linear operations that act either solely on a given harmonic (the zonal gradient and the Laplace operator) or are linear combinations between one lower and one higher degree $l$ (the meridional gradient). It is therefore computationally more efficient to compute $U,V$ directly from $\zeta,D$ instead of calculating stream function and velocity potential first. In total we have

    \[\begin{aligned} +U_{l,m} &= -\frac{im}{l(l+1)}(RD)_{l,m} + \frac{\epsilon_{l+1,m}}{l+1}(R\zeta)_{l+1,m} - +\frac{\epsilon_{l,m}}{l}(R\zeta)_{l-1,m} \\ +V_{l,m} &= -\frac{im}{l(l+1)}(R\zeta)_{l,m} - \frac{\epsilon_{l+1,m}}{l+1}(RD)_{l+1,m} + +\frac{\epsilon_{l,m}}{l}(RD)_{l-1,m} \\ +\end{aligned}\]

    We have moved the scaling with the radius $R$ directly into $\zeta,D$ as further described in Radius scaling.

    References

    diff --git a/dev/speedytransforms/index.html b/dev/speedytransforms/index.html new file mode 100644 index 000000000..985b17087 --- /dev/null +++ b/dev/speedytransforms/index.html @@ -0,0 +1,85 @@ + +Submodule: SpeedyTransforms · SpeedyWeather.jl

    SpeedyTransforms

    SpeedyTransforms is a submodule that has been developed for SpeedyWeather.jl which is technically independent (SpeedyWeather.jl however imports it) and can also be used without running simulations. It is just not put into its own respective repository.

    Example transforms

    julia> using SpeedyWeather
    +julia> alms = zeros(ComplexF64,3,3)    # spectral coefficients
    +julia> alms[2,2] = 1                   # only l=1,m=1 harmonic
    +julia> map = gridded(alms)             # convert to grid space
    +8×4 Matrix{Float64}:
    + -0.324541  -0.600363  -0.600363  -0.324541
    + -0.134429  -0.248678  -0.248678  -0.134429
    +  0.134429   0.248678   0.248678   0.134429
    +  0.324541   0.600363   0.600363   0.324541
    +  0.324541   0.600363   0.600363   0.324541
    +  0.134429   0.248678   0.248678   0.134429
    + -0.134429  -0.248678  -0.248678  -0.134429
    + -0.324541  -0.600363  -0.600363  -0.324541
    + 
    +julia> spectral(map)                   # back to spectral space
    +3×3 Matrix{ComplexF64}:
    + 0.0+0.0im  0.0+0.0im          0.0+0.0im
    + 0.0+0.0im  1.0+3.60727e-17im  0.0+0.0im
    + 0.0+0.0im  0.0+0.0im          0.0+0.0im

    and we have successfully reobtained the $l=m=1$ spherical harmonic.

    Functions and type index

    SpeedyWeather.SpeedyTransforms.SpectralTransformMethod
    S = SpectralTransform(  alms::AbstractMatrix{Complex{NF}};
    +                        recompute_legendre::Bool=true,
    +                        Grid::Type{<:AbstractGrid}=DEFAULT_GRID)

    Generator function for a SpectralTransform struct based on the size of the spectral coefficients alms and the grid Grid. Recomputes the Legendre polynomials by default.

    source
    SpeedyWeather.SpeedyTransforms.SpectralTransformMethod
    SpectralTransform(
    +    ::Type{NF},
    +    Grid::Type{<:SpeedyWeather.RingGrids.AbstractGrid},
    +    lmax::Int64,
    +    mmax::Int64;
    +    recompute_legendre,
    +    legendre_shortcut,
    +    dealiasing
    +) -> SpectralTransform
    +

    Generator function for a SpectralTransform struct. With NF the number format, Grid the grid type <:AbstractGrid and spectral truncation lmax,mmax this function sets up necessary constants for the spetral transform. Also plans the Fourier transforms, retrieves the colatitudes, and preallocates the Legendre polynomials (if recompute_legendre == false) and quadrature weights.

    source
    SpeedyWeather.SpeedyTransforms.SpectralTransformMethod
    S = SpectralTransform(  map::AbstractGrid;
    +                        recompute_legendre::Bool=true)

    Generator function for a SpectralTransform struct based on the size and grid type of gridded field map. Recomputes the Legendre polynomials by default.

    source
    SpeedyWeather.SpeedyTransforms.UV_from_vor!Method
    UV_from_vor!(   U::LowerTriangularMatrix,
    +                V::LowerTriangularMatrix,
    +                vor::LowerTriangularMatrix,
    +                S::SpectralTransform)

    Get U,V (=(u,v)*coslat) from vorticity ζ spectral space (divergence D=0) Two operations are combined into a single linear operation. First, invert the spherical Laplace ∇² operator to get stream function from vorticity. Then compute zonal and meridional gradients to get U,V.

    source
    SpeedyWeather.SpeedyTransforms.UV_from_vordiv!Method
    UV_from_vordiv!(U::LowerTriangularMatrix,
    +                V::LowerTriangularMatrix,
    +                vor::LowerTriangularMatrix,
    +                div::LowerTriangularMatrix,
    +                S::SpectralTransform)

    Get U,V (=(u,v)*coslat) from vorticity ζ and divergence D in spectral space. Two operations are combined into a single linear operation. First, invert the spherical Laplace ∇² operator to get stream function from vorticity and velocity potential from divergence. Then compute zonal and meridional gradients to get U,V.

    source
    SpeedyWeather.SpeedyTransforms._divergence!Method
    _divergence!(   kernel,
    +                div::LowerTriangularMatrix,
    +                u::LowerTriangularMatrix,
    +                v::LowerTriangularMatrix,
    +                S::SpectralTransform)

    Generic divergence function of vector u,v that writes into the output into div. Generic as it uses the kernel kernel such that curl, div, add or flipsign options are provided through kernel, but otherwise a single function is used.

    source
    SpeedyWeather.SpeedyTransforms.curl!Method
    curl!(  curl::LowerTriangularMatrix,
    +        u::LowerTriangularMatrix,
    +        v::LowerTriangularMatrix,
    +        S::SpectralTransform;
    +        flipsign::Bool=false,
    +        add::Bool=false,
    +        )

    Curl of a vector u,v written into curl, curl = ∇×(u,v). u,v are expected to have a 1/coslat-scaling included, then curl is not scaled. flipsign option calculates -∇×(u,v) instead. add option calculates curl += ∇×(u,v) instead. flipsign and add can be combined. This functions only creates the kernel and calls the generic divergence function _divergence! subsequently with flipped u,v -> v,u for the curl.

    source
    SpeedyWeather.SpeedyTransforms.divergence!Method
    divergence!(div::LowerTriangularMatrix,
    +            u::LowerTriangularMatrix,
    +            v::LowerTriangularMatrix,
    +            S::SpectralTransform{NF};
    +            flipsign::Bool=false,
    +            add::Bool=false,
    +            )

    Divergence of a vector u,v written into div, div = ∇⋅(u,v). u,v are expected to have a 1/coslat-scaling included, then div is not scaled. flipsign option calculates -∇⋅(u,v) instead. add option calculates div += ∇⋅(u,v) instead. flipsign and add can be combined. This functions only creates the kernel and calls the generic divergence function _divergence! subsequently.

    source
    SpeedyWeather.SpeedyTransforms.get_recursion_factorsMethod
    get_recursion_factors(  ::Type{NF}, # number format NF
    +                        lmax::Int,  # max degree l of spherical harmonics (0-based here)
    +                        mmax::Int   # max order m of spherical harmonics
    +                        ) where {NF<:AbstractFloat}

    Returns a matrix of recursion factors ϵ up to degree lmax and order mmax of number format NF.

    source
    SpeedyWeather.SpeedyTransforms.gridded!Method
    gridded!(   map::AbstractGrid,
    +            alms::LowerTriangularMatrix,
    +            S::SpectralTransform)

    Spectral transform (spectral to grid) of the spherical harmonic coefficients alms to a gridded field map. The spectral transform is number format-flexible as long as the parametric types of map, alms, S are identical. The spectral transform is grid-flexible as long as the typeof(map)<:AbstractGrid. Uses the precalculated arrays, FFT plans and other constants in the SpectralTransform struct S.

    source
    SpeedyWeather.SpeedyTransforms.griddedMethod
    map = gridded(  alms::AbstractMatrix;
    +                recompute_legendre::Bool=true,
    +                grid::Type{<:AbstractGrid}=DEFAULT_GRID)

    Spectral transform (spectral to grid space) from spherical coefficients alms to a newly allocated gridded field map. Based on the size of alms the grid type grid, the spatial resolution is retrieved based on the truncation defined for grid. SpectralTransform struct S is allocated to execute gridded(alms,S).

    source
    SpeedyWeather.SpeedyTransforms.griddedMethod
    map = gridded(  alms::AbstractMatrix,
    +                S::SpectralTransform)

    Spectral transform (spectral to grid space) from spherical coefficients alms to a newly allocated gridded field map with precalculated properties based on the SpectralTransform struct S. alms is converted to a LowerTriangularMatrix to execute the in-place gridded!.

    source
    SpeedyWeather.SpeedyTransforms.roundup_fftMethod
    m = roundup_fft(n::Int;
    +                small_primes::Vector{Int}=[2,3,5])

    Returns an integer m >= n with only small prime factors 2, 3 (default, others can be specified with the keyword argument small_primes) to obtain an efficiently fourier-transformable number of longitudes, m = 2^i * 3^j * 5^k >= n, with i,j,k >=0.

    source
    SpeedyWeather.SpeedyTransforms.spectral!Method
    spectral!(  alms::LowerTriangularMatrix,
    +            map::AbstractGrid,
    +            S::SpectralTransform)

    Spectral transform (grid to spectral space) from the gridded field map on a grid<:AbstractGrid to a LowerTriangularMatrix of spherical harmonic coefficients alms. Uses FFT in the zonal direction, and a Legendre Transform in the meridional direction exploiting symmetries. The spectral transform is number format-flexible as long as the parametric types of map, alms, S are identical. The spectral transform is grid-flexible as long as the typeof(map)<:AbstractGrid. Uses the precalculated arrays, FFT plans and other constants in the SpectralTransform struct S.

    source
    SpeedyWeather.SpeedyTransforms.spectralMethod
    alms = spectral(    map::AbstractMatrix;
    +                    Grid::Type{<:AbstractGrid}=DEFAULT_GRID,
    +                    kwargs...)

    Spectral transform (grid to spectral) map to grid(map) to execute spectral(map::AbstractGrid;kwargs...).

    source
    SpeedyWeather.SpeedyTransforms.spectral_interpolationMethod
    alms_interp = spectral_interpolation(   ::Type{NF},
    +                                        alms::LowerTriangularMatrix,
    +                                        ltrunc::Integer,
    +                                        mtrunc::Integer
    +                                        ) where NF

    Returns a spectral coefficient matrix alms_interp that is alms padded with zeros to interpolate in spectral space. If trunc is smaller or equal to the implicit truncation in alms obtained from its size than spectral_truncation is automatically called instead, returning alms_trunc, a coefficient matrix that is smaller than alms, implicitly setting higher degrees and orders to zero.

    source
    SpeedyWeather.SpeedyTransforms.spectral_smoothing!Method
    spectral_smoothing!(A::LowerTriangularMatrix,c;power=1)

    Smooth the spectral field A following A = (1-(1-c)∇²ⁿ) with power n of a normalised Laplacian so that the highest degree lmax is dampened by multiplication with c. Anti-diffusion for c>1.

    source
    SpeedyWeather.SpeedyTransforms.spectral_smoothingMethod
    A_smooth = spectral_smoothing(A::LowerTriangularMatrix,c;power=1)

    Smooth the spectral field A following A_smooth = (1-c*∇²ⁿ)A with power n of a normalised Laplacian so that the highest degree lmax is dampened by multiplication with c. Anti-diffusion for c<0.

    source
    SpeedyWeather.SpeedyTransforms.spectral_truncation!Method
    spectral_truncation!(alms::AbstractMatrix,ltrunc::Integer,mtrunc::Integer)

    Truncate spectral coefficients alms in-place by setting (a) the upper right triangle to zero and (b) all coefficients for which the degree l is larger than the truncation ltrunc or order m larger than the truncaction mtrunc.

    source
    SpeedyWeather.SpeedyTransforms.spectral_truncation!Method
    spectral_truncation!(alms::LowerTriangularMatrix,ltrunc::Integer,mtrunc::Integer)

    Truncate spectral coefficients alms in-place by setting all coefficients for which the degree l is larger than the truncation ltrunc or order m larger than the truncaction mtrunc. Similar to spectral_truncation!(::AbstractMatrix, ...) but skips the upper triangle which is zero by design for LowerTriangularMatrix.

    source
    SpeedyWeather.SpeedyTransforms.spectral_truncationMethod
    alms_trunc = spectral_truncation(alms,trunc)

    Returns a spectral coefficient matrix alms_trunc that is truncated from alms to the size (trunc+1)². alms_trunc only contains those coefficient of alms for which m,l ≤ trunc, and l ≥ m are zero anyway. If trunc is larger than the implicit truncation in alms obtained from its size than spectral_interpolation is automatically called instead, returning alms_interp, a coefficient matrix that is larger than alms with padded zero coefficients.

    source
    SpeedyWeather.SpeedyTransforms.ϵlmMethod
    ϵ = ϵ(l,m)

    Recursion factors ϵ as a function of degree l and order m (0-based) of the spherical harmonics. ϵ(l,m) = sqrt((l^2-m^2)/(4*l^2-1)) with default number format Float64.

    source
    SpeedyWeather.SpeedyTransforms.ϵlmMethod
    ϵ = ϵ(NF,l,m)

    Recursion factors ϵ as a function of degree l and order m (0-based) of the spherical harmonics. ϵ(l,m) = sqrt((l^2-m^2)/(4*l^2-1)) and then converted to number format NF.

    source
    SpeedyWeather.SpeedyTransforms.∇²!Method
    ∇²!(    ∇²alms::LowerTriangularMatrix,
    +        alms::LowerTriangularMatrix,
    +        S::SpectralTransform;
    +        add::Bool=false,
    +        flipsign::Bool=false,
    +        inverse::Bool=false)

    Laplace operator ∇² applied to the spectral coefficients alms in spherical coordinates. The radius R is omitted in the eigenvalues which are precomputed in S. ∇²! is the in-place version which directly stores the output in the first argument ∇²alms.

    Keyword arguments

    • add=true adds the ∇²(alms) to the output
    • flipsign=true computes -∇²(alms) instead
    • inverse=true computes ∇⁻²(alms) instead

    Default is add=false, flipsign=false, inverse=false. These options can be combined.

    source
    SpeedyWeather.SpeedyTransforms.∇⁻²!Method
    ∇⁻²!(   ∇⁻²alms::LowerTriangularMatrix,
    +        alms::LowerTriangularMatrix,
    +        S::SpectralTransform;
    +        add::Bool=false,
    +        flipsign::Bool=false)

    Calls ∇²!(∇⁻²alms, alms, S; add, flipsign, inverse=true).

    source
    diff --git a/dev/time_integration/index.html b/dev/time_integration/index.html new file mode 100644 index 000000000..3f12596a7 --- /dev/null +++ b/dev/time_integration/index.html @@ -0,0 +1,2 @@ + +Time integration · SpeedyWeather.jl
    diff --git a/index.html b/index.html new file mode 100644 index 000000000..6a5afc301 --- /dev/null +++ b/index.html @@ -0,0 +1,2 @@ + + diff --git a/previews/PR300/assets/documenter.js b/previews/PR300/assets/documenter.js new file mode 100644 index 000000000..6adfbbbf4 --- /dev/null +++ b/previews/PR300/assets/documenter.js @@ -0,0 +1,331 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'highlight-julia': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia.min', + 'headroom': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/headroom.min', + 'jqueryui': 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min', + 'katex-auto-render': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/contrib/auto-render.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + 'headroom-jquery': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/jQuery.headroom.min', + 'katex': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/katex.min', + 'highlight': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/highlight.min', + 'highlight-julia-repl': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia-repl.min', + }, + shim: { + "highlight-julia": { + "deps": [ + "highlight" + ] + }, + "katex-auto-render": { + "deps": [ + "katex" + ] + }, + "headroom-jquery": { + "deps": [ + "jquery", + "headroom" + ] + }, + "highlight-julia-repl": { + "deps": [ + "highlight" + ] + } +} +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'katex', 'katex-auto-render'], function($, katex, renderMathInElement) { +$(document).ready(function() { + renderMathInElement( + document.body, + { + "delimiters": [ + { + "left": "$", + "right": "$", + "display": false + }, + { + "left": "$$", + "right": "$$", + "display": true + }, + { + "left": "\\[", + "right": "\\]", + "display": true + } + ] +} + + ); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'highlight', 'highlight-julia', 'highlight-julia-repl'], function($) { +$(document).ready(function() { + hljs.highlightAll(); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require([], function() { +function addCopyButtonCallbacks() { + for (const el of document.getElementsByTagName("pre")) { + const button = document.createElement("button"); + button.classList.add("copy-button", "fas", "fa-copy"); + el.appendChild(button); + + const success = function () { + button.classList.add("success", "fa-check"); + button.classList.remove("fa-copy"); + }; + + const failure = function () { + button.classList.add("error", "fa-times"); + button.classList.remove("fa-copy"); + }; + + button.addEventListener("click", function () { + copyToClipboard(el.innerText).then(success, failure); + + setTimeout(function () { + button.classList.add("fa-copy"); + button.classList.remove("success", "fa-check", "fa-times"); + }, 5000); + }); + } +} + +function copyToClipboard(text) { + // clipboard API is only available in secure contexts + if (window.navigator && window.navigator.clipboard) { + return window.navigator.clipboard.writeText(text); + } else { + return new Promise(function (resolve, reject) { + try { + const el = document.createElement("textarea"); + el.textContent = text; + el.style.position = "fixed"; + el.style.opacity = 0; + document.body.appendChild(el); + el.select(); + document.execCommand("copy"); + + resolve(); + } catch (err) { + reject(err); + } finally { + document.body.removeChild(el); + } + }); + } +} + +if (document.readyState === "loading") { + document.addEventListener("DOMContentLoaded", addCopyButtonCallbacks); +} else { + addCopyButtonCallbacks(); +} + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'headroom', 'headroom-jquery'], function($, Headroom) { + +// Manages the top navigation bar (hides it when the user starts scrolling down on the +// mobile). +window.Headroom = Headroom; // work around buggy module loading? +$(document).ready(function() { + $('#documenter .docs-navbar').headroom({ + "tolerance": {"up": 10, "down": 10}, + }); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Modal settings dialog +$(document).ready(function() { + var settings = $('#documenter-settings'); + $('#documenter-settings-button').click(function(){ + settings.toggleClass('is-active'); + }); + // Close the dialog if X is clicked + $('#documenter-settings button.delete').click(function(){ + settings.removeClass('is-active'); + }); + // Close dialog if ESC is pressed + $(document).keyup(function(e) { + if (e.keyCode == 27) settings.removeClass('is-active'); + }); +}); + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Manages the showing and hiding of the sidebar. +$(document).ready(function() { + var sidebar = $("#documenter > .docs-sidebar"); + var sidebar_button = $("#documenter-sidebar-button") + sidebar_button.click(function(ev) { + ev.preventDefault(); + sidebar.toggleClass('visible'); + if (sidebar.hasClass('visible')) { + // Makes sure that the current menu item is visible in the sidebar. + $("#documenter .docs-menu a.is-active").focus(); + } + }); + $("#documenter > .docs-main").bind('click', function(ev) { + if ($(ev.target).is(sidebar_button)) { + return; + } + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + }); +}) + +// Resizes the package name / sitename in the sidebar if it is too wide. +// Inspired by: https://github.com/davatron5000/FitText.js +$(document).ready(function() { + e = $("#documenter .docs-autofit"); + function resize() { + var L = parseInt(e.css('max-width'), 10); + var L0 = e.width(); + if(L0 > L) { + var h0 = parseInt(e.css('font-size'), 10); + e.css('font-size', L * h0 / L0); + // TODO: make sure it survives resizes? + } + } + // call once and then register events + resize(); + $(window).resize(resize); + $(window).on('orientationchange', resize); +}); + +// Scroll the navigation bar to the currently selected menu item +$(document).ready(function() { + var sidebar = $("#documenter .docs-menu").get(0); + var active = $("#documenter .docs-menu .is-active").get(0); + if(typeof active !== 'undefined') { + sidebar.scrollTop = active.offsetTop - sidebar.offsetTop - 15; + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +function set_theme(theme) { + var active = null; + var disabled = []; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + var themename = ss.ownerNode.getAttribute("data-theme-name"); + if(themename === null) continue; // ignore non-theme stylesheets + // Find the active theme + if(themename === theme) active = ss; + else disabled.push(ss); + } + if(active !== null) { + active.disabled = false; + if(active.ownerNode.getAttribute("data-theme-primary") === null) { + document.getElementsByTagName('html')[0].className = "theme--" + theme; + } else { + document.getElementsByTagName('html')[0].className = ""; + } + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + + // Store the theme in localStorage + if(typeof(window.localStorage) !== "undefined") { + window.localStorage.setItem("documenter-theme", theme); + } else { + console.error("Browser does not support window.localStorage"); + } +} + +// Theme picker setup +$(document).ready(function() { + // onchange callback + $('#documenter-themepicker').change(function themepick_callback(ev){ + var themename = $('#documenter-themepicker option:selected').attr('value'); + set_theme(themename); + }); + + // Make sure that the themepicker displays the correct theme when the theme is retrieved + // from localStorage + if(typeof(window.localStorage) !== "undefined") { + var theme = window.localStorage.getItem("documenter-theme"); + if(theme !== null) { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = (e.value === theme); + }) + } else { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = $("html").hasClass(`theme--${e.value}`); + }) + } + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// update the version selector with info from the siteinfo.js and ../versions.js files +$(document).ready(function() { + // If the version selector is disabled with DOCUMENTER_VERSION_SELECTOR_DISABLED in the + // siteinfo.js file, we just return immediately and not display the version selector. + if (typeof DOCUMENTER_VERSION_SELECTOR_DISABLED === 'boolean' && DOCUMENTER_VERSION_SELECTOR_DISABLED) { + return; + } + + var version_selector = $("#documenter .docs-version-selector"); + var version_selector_select = $("#documenter .docs-version-selector select"); + + version_selector_select.change(function(x) { + target_href = version_selector_select.children("option:selected").get(0).value; + window.location.href = target_href; + }); + + // add the current version to the selector based on siteinfo.js, but only if the selector is empty + if (typeof DOCUMENTER_CURRENT_VERSION !== 'undefined' && $('#version-selector > option').length == 0) { + var option = $(""); + version_selector_select.append(option); + } + + if (typeof DOC_VERSIONS !== 'undefined') { + var existing_versions = version_selector_select.children("option"); + var existing_versions_texts = existing_versions.map(function(i,x){return x.text}); + DOC_VERSIONS.forEach(function(each) { + var version_url = documenterBaseURL + "/../" + each; + var existing_id = $.inArray(each, existing_versions_texts); + // if not already in the version selector, add it as a new option, + // otherwise update the old option with the URL and enable it + if (existing_id == -1) { + var option = $(""); + version_selector_select.append(option); + } else { + var option = existing_versions[existing_id]; + option.value = version_url; + option.disabled = false; + } + }); + } + + // only show the version selector if the selector has been populated + if (version_selector_select.children("option").length > 0) { + version_selector.toggleClass("visible"); + } +}) + +}) diff --git a/previews/PR300/assets/search.js b/previews/PR300/assets/search.js new file mode 100644 index 000000000..c133f7410 --- /dev/null +++ b/previews/PR300/assets/search.js @@ -0,0 +1,267 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'lunr': 'https://cdnjs.cloudflare.com/ajax/libs/lunr.js/2.3.9/lunr.min', + 'lodash': 'https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + } +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'lunr', 'lodash'], function($, lunr, _) { + +$(document).ready(function() { + // parseUri 1.2.2 + // (c) Steven Levithan + // MIT License + function parseUri (str) { + var o = parseUri.options, + m = o.parser[o.strictMode ? "strict" : "loose"].exec(str), + uri = {}, + i = 14; + + while (i--) uri[o.key[i]] = m[i] || ""; + + uri[o.q.name] = {}; + uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) { + if ($1) uri[o.q.name][$1] = $2; + }); + + return uri; + }; + parseUri.options = { + strictMode: false, + key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"], + q: { + name: "queryKey", + parser: /(?:^|&)([^&=]*)=?([^&]*)/g + }, + parser: { + strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, + loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ + } + }; + + $("#search-form").submit(function(e) { + e.preventDefault() + }) + + // list below is the lunr 2.1.3 list minus the intersect with names(Base) + // (all, any, get, in, is, only, which) and (do, else, for, let, where, while, with) + // ideally we'd just filter the original list but it's not available as a variable + lunr.stopWordFilter = lunr.generateStopWordFilter([ + 'a', + 'able', + 'about', + 'across', + 'after', + 'almost', + 'also', + 'am', + 'among', + 'an', + 'and', + 'are', + 'as', + 'at', + 'be', + 'because', + 'been', + 'but', + 'by', + 'can', + 'cannot', + 'could', + 'dear', + 'did', + 'does', + 'either', + 'ever', + 'every', + 'from', + 'got', + 'had', + 'has', + 'have', + 'he', + 'her', + 'hers', + 'him', + 'his', + 'how', + 'however', + 'i', + 'if', + 'into', + 'it', + 'its', + 'just', + 'least', + 'like', + 'likely', + 'may', + 'me', + 'might', + 'most', + 'must', + 'my', + 'neither', + 'no', + 'nor', + 'not', + 'of', + 'off', + 'often', + 'on', + 'or', + 'other', + 'our', + 'own', + 'rather', + 'said', + 'say', + 'says', + 'she', + 'should', + 'since', + 'so', + 'some', + 'than', + 'that', + 'the', + 'their', + 'them', + 'then', + 'there', + 'these', + 'they', + 'this', + 'tis', + 'to', + 'too', + 'twas', + 'us', + 'wants', + 'was', + 'we', + 'were', + 'what', + 'when', + 'who', + 'whom', + 'why', + 'will', + 'would', + 'yet', + 'you', + 'your' + ]) + + // add . as a separator, because otherwise "title": "Documenter.Anchors.add!" + // would not find anything if searching for "add!", only for the entire qualification + lunr.tokenizer.separator = /[\s\-\.]+/ + + // custom trimmer that doesn't strip @ and !, which are used in julia macro and function names + lunr.trimmer = function (token) { + return token.update(function (s) { + return s.replace(/^[^a-zA-Z0-9@!]+/, '').replace(/[^a-zA-Z0-9@!]+$/, '') + }) + } + + lunr.Pipeline.registerFunction(lunr.stopWordFilter, 'juliaStopWordFilter') + lunr.Pipeline.registerFunction(lunr.trimmer, 'juliaTrimmer') + + var index = lunr(function () { + this.ref('location') + this.field('title',{boost: 100}) + this.field('text') + documenterSearchIndex['docs'].forEach(function(e) { + this.add(e) + }, this) + }) + var store = {} + + documenterSearchIndex['docs'].forEach(function(e) { + store[e.location] = {title: e.title, category: e.category, page: e.page} + }) + + $(function(){ + searchresults = $('#documenter-search-results'); + searchinfo = $('#documenter-search-info'); + searchbox = $('#documenter-search-query'); + searchform = $('.docs-search'); + sidebar = $('.docs-sidebar'); + function update_search(querystring) { + tokens = lunr.tokenizer(querystring) + results = index.query(function (q) { + tokens.forEach(function (t) { + q.term(t.toString(), { + fields: ["title"], + boost: 100, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["title"], + boost: 10, + usePipeline: true, + editDistance: 2, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["text"], + boost: 1, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + }) + }) + searchinfo.text("Number of results: " + results.length) + searchresults.empty() + results.forEach(function(result) { + data = store[result.ref] + link = $(''+data.title+'') + link.attr('href', documenterBaseURL+'/'+result.ref) + if (data.category != "page"){ + cat = $('('+data.category+', '+data.page+')') + } else { + cat = $('('+data.category+')') + } + li = $('
  • ').append(link).append(" ").append(cat) + searchresults.append(li) + }) + } + + function update_search_box() { + querystring = searchbox.val() + update_search(querystring) + } + + searchbox.keyup(_.debounce(update_search_box, 250)) + searchbox.change(update_search_box) + + // Disable enter-key form submission for the searchbox on the search page + // and just re-run search rather than refresh the whole page. + searchform.keypress( + function(event){ + if (event.which == '13') { + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + update_search_box(); + event.preventDefault(); + } + } + ); + + search_query_uri = parseUri(window.location).queryKey["q"] + if(search_query_uri !== undefined) { + search_query = decodeURIComponent(search_query_uri.replace(/\+/g, '%20')) + searchbox.val(search_query) + } + update_search_box(); + }) +}) + +}) diff --git a/previews/PR300/assets/themes/documenter-dark.css b/previews/PR300/assets/themes/documenter-dark.css new file mode 100644 index 000000000..0bf1af7d5 --- /dev/null +++ b/previews/PR300/assets/themes/documenter-dark.css @@ -0,0 +1,7702 @@ +@charset "UTF-8"; +/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */ +@keyframes spinAround { + from { + transform: rotate(0deg); } + to { + transform: rotate(359deg); } } + +html.theme--documenter-dark .tabs, html.theme--documenter-dark .pagination-previous, +html.theme--documenter-dark .pagination-next, +html.theme--documenter-dark .pagination-link, +html.theme--documenter-dark .pagination-ellipsis, html.theme--documenter-dark .breadcrumb, html.theme--documenter-dark .file, html.theme--documenter-dark .button, .is-unselectable, html.theme--documenter-dark .modal-close, html.theme--documenter-dark .delete { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after, html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after { + border: 3px solid transparent; + border-radius: 2px; + border-right: 0; + border-top: 0; + content: " "; + display: block; + height: 0.625em; + margin-top: -0.4375em; + pointer-events: none; + position: absolute; + top: 50%; + transform: rotate(-45deg); + transform-origin: center; + width: 0.625em; } + +html.theme--documenter-dark .admonition:not(:last-child), html.theme--documenter-dark .tabs:not(:last-child), html.theme--documenter-dark .message:not(:last-child), html.theme--documenter-dark .list:not(:last-child), html.theme--documenter-dark .level:not(:last-child), html.theme--documenter-dark .breadcrumb:not(:last-child), html.theme--documenter-dark .highlight:not(:last-child), html.theme--documenter-dark .block:not(:last-child), html.theme--documenter-dark .title:not(:last-child), +html.theme--documenter-dark .subtitle:not(:last-child), html.theme--documenter-dark .table-container:not(:last-child), html.theme--documenter-dark .table:not(:last-child), html.theme--documenter-dark .progress:not(:last-child), html.theme--documenter-dark .notification:not(:last-child), html.theme--documenter-dark .content:not(:last-child), html.theme--documenter-dark .box:not(:last-child) { + margin-bottom: 1.5rem; } + +html.theme--documenter-dark .modal-close, html.theme--documenter-dark .delete { + -moz-appearance: none; + -webkit-appearance: none; + background-color: rgba(10, 10, 10, 0.2); + border: none; + border-radius: 290486px; + cursor: pointer; + pointer-events: auto; + display: inline-block; + flex-grow: 0; + flex-shrink: 0; + font-size: 0; + height: 20px; + max-height: 20px; + max-width: 20px; + min-height: 20px; + min-width: 20px; + outline: none; + position: relative; + vertical-align: top; + width: 20px; } + html.theme--documenter-dark .modal-close::before, html.theme--documenter-dark .delete::before, html.theme--documenter-dark .modal-close::after, html.theme--documenter-dark .delete::after { + background-color: white; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + html.theme--documenter-dark .modal-close::before, html.theme--documenter-dark .delete::before { + height: 2px; + width: 50%; } + html.theme--documenter-dark .modal-close::after, html.theme--documenter-dark .delete::after { + height: 50%; + width: 2px; } + html.theme--documenter-dark .modal-close:hover, html.theme--documenter-dark .delete:hover, html.theme--documenter-dark .modal-close:focus, html.theme--documenter-dark .delete:focus { + background-color: rgba(10, 10, 10, 0.3); } + html.theme--documenter-dark .modal-close:active, html.theme--documenter-dark .delete:active { + background-color: rgba(10, 10, 10, 0.4); } + html.theme--documenter-dark .is-small.modal-close, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.modal-close, html.theme--documenter-dark .is-small.delete, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.delete { + height: 16px; + max-height: 16px; + max-width: 16px; + min-height: 16px; + min-width: 16px; + width: 16px; } + html.theme--documenter-dark .is-medium.modal-close, html.theme--documenter-dark .is-medium.delete { + height: 24px; + max-height: 24px; + max-width: 24px; + min-height: 24px; + min-width: 24px; + width: 24px; } + html.theme--documenter-dark .is-large.modal-close, html.theme--documenter-dark .is-large.delete { + height: 32px; + max-height: 32px; + max-width: 32px; + min-height: 32px; + min-width: 32px; + width: 32px; } + +html.theme--documenter-dark .control.is-loading::after, html.theme--documenter-dark .select.is-loading::after, html.theme--documenter-dark .loader, html.theme--documenter-dark .button.is-loading::after { + animation: spinAround 500ms infinite linear; + border: 2px solid #dbdee0; + border-radius: 290486px; + border-right-color: transparent; + border-top-color: transparent; + content: ""; + display: block; + height: 1em; + position: relative; + width: 1em; } + +html.theme--documenter-dark .hero-video, html.theme--documenter-dark .modal-background, html.theme--documenter-dark .modal, html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img, +html.theme--documenter-dark .image.is-square .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img, +html.theme--documenter-dark .image.is-1by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img, +html.theme--documenter-dark .image.is-5by4 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img, +html.theme--documenter-dark .image.is-4by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img, +html.theme--documenter-dark .image.is-3by2 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img, +html.theme--documenter-dark .image.is-5by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img, +html.theme--documenter-dark .image.is-16by9 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img, +html.theme--documenter-dark .image.is-2by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img, +html.theme--documenter-dark .image.is-3by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img, +html.theme--documenter-dark .image.is-4by5 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img, +html.theme--documenter-dark .image.is-3by4 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img, +html.theme--documenter-dark .image.is-2by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img, +html.theme--documenter-dark .image.is-3by5 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img, +html.theme--documenter-dark .image.is-9by16 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img, +html.theme--documenter-dark .image.is-1by2 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img, +html.theme--documenter-dark .image.is-1by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, .is-overlay { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; } + +html.theme--documenter-dark .pagination-previous, +html.theme--documenter-dark .pagination-next, +html.theme--documenter-dark .pagination-link, +html.theme--documenter-dark .pagination-ellipsis, html.theme--documenter-dark .file-cta, +html.theme--documenter-dark .file-name, html.theme--documenter-dark .select select, html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark .button { + -moz-appearance: none; + -webkit-appearance: none; + align-items: center; + border: 1px solid transparent; + border-radius: 0.4em; + box-shadow: none; + display: inline-flex; + font-size: 15px; + height: 2.25em; + justify-content: flex-start; + line-height: 1.5; + padding-bottom: calc(0.375em - 1px); + padding-left: calc(0.625em - 1px); + padding-right: calc(0.625em - 1px); + padding-top: calc(0.375em - 1px); + position: relative; + vertical-align: top; } + html.theme--documenter-dark .pagination-previous:focus, + html.theme--documenter-dark .pagination-next:focus, + html.theme--documenter-dark .pagination-link:focus, + html.theme--documenter-dark .pagination-ellipsis:focus, html.theme--documenter-dark .file-cta:focus, + html.theme--documenter-dark .file-name:focus, html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .button:focus, html.theme--documenter-dark .is-focused.pagination-previous, + html.theme--documenter-dark .is-focused.pagination-next, + html.theme--documenter-dark .is-focused.pagination-link, + html.theme--documenter-dark .is-focused.pagination-ellipsis, html.theme--documenter-dark .is-focused.file-cta, + html.theme--documenter-dark .is-focused.file-name, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-focused.button, html.theme--documenter-dark .pagination-previous:active, + html.theme--documenter-dark .pagination-next:active, + html.theme--documenter-dark .pagination-link:active, + html.theme--documenter-dark .pagination-ellipsis:active, html.theme--documenter-dark .file-cta:active, + html.theme--documenter-dark .file-name:active, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .button:active, html.theme--documenter-dark .is-active.pagination-previous, + html.theme--documenter-dark .is-active.pagination-next, + html.theme--documenter-dark .is-active.pagination-link, + html.theme--documenter-dark .is-active.pagination-ellipsis, html.theme--documenter-dark .is-active.file-cta, + html.theme--documenter-dark .is-active.file-name, html.theme--documenter-dark .select select.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .is-active.button { + outline: none; } + html.theme--documenter-dark .pagination-previous[disabled], + html.theme--documenter-dark .pagination-next[disabled], + html.theme--documenter-dark .pagination-link[disabled], + html.theme--documenter-dark .pagination-ellipsis[disabled], html.theme--documenter-dark .file-cta[disabled], + html.theme--documenter-dark .file-name[disabled], html.theme--documenter-dark .select select[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], html.theme--documenter-dark .button[disabled], fieldset[disabled] html.theme--documenter-dark .pagination-previous, html.theme--documenter-dark fieldset[disabled] .pagination-previous, + fieldset[disabled] html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark fieldset[disabled] .pagination-next, + fieldset[disabled] html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark fieldset[disabled] .pagination-link, + fieldset[disabled] html.theme--documenter-dark .pagination-ellipsis, + html.theme--documenter-dark fieldset[disabled] .pagination-ellipsis, fieldset[disabled] html.theme--documenter-dark .file-cta, html.theme--documenter-dark fieldset[disabled] .file-cta, + fieldset[disabled] html.theme--documenter-dark .file-name, + html.theme--documenter-dark fieldset[disabled] .file-name, fieldset[disabled] html.theme--documenter-dark .select select, fieldset[disabled] html.theme--documenter-dark .textarea, fieldset[disabled] html.theme--documenter-dark .input, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark fieldset[disabled] .select select, html.theme--documenter-dark .select fieldset[disabled] select, html.theme--documenter-dark fieldset[disabled] .textarea, html.theme--documenter-dark fieldset[disabled] .input, html.theme--documenter-dark fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, fieldset[disabled] html.theme--documenter-dark .button, html.theme--documenter-dark fieldset[disabled] .button { + cursor: not-allowed; } + +/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */ +html, +body, +p, +ol, +ul, +li, +dl, +dt, +dd, +blockquote, +figure, +fieldset, +legend, +textarea, +pre, +iframe, +hr, +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + padding: 0; } + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: 100%; + font-weight: normal; } + +ul { + list-style: none; } + +button, +input, +select, +textarea { + margin: 0; } + +html { + box-sizing: border-box; } + +*, *::before, *::after { + box-sizing: inherit; } + +img, +embed, +iframe, +object, +video { + height: auto; + max-width: 100%; } + +audio { + max-width: 100%; } + +iframe { + border: 0; } + +table { + border-collapse: collapse; + border-spacing: 0; } + +td, +th { + padding: 0; } + td:not([align]), + th:not([align]) { + text-align: left; } + +.is-clearfix::after { + clear: both; + content: " "; + display: table; } + +.is-pulled-left { + float: left !important; } + +.is-pulled-right { + float: right !important; } + +.is-clipped { + overflow: hidden !important; } + +.is-size-1 { + font-size: 3rem !important; } + +.is-size-2 { + font-size: 2.5rem !important; } + +.is-size-3 { + font-size: 2rem !important; } + +.is-size-4 { + font-size: 1.5rem !important; } + +.is-size-5 { + font-size: 1.25rem !important; } + +.is-size-6 { + font-size: 15px !important; } + +.is-size-7, html.theme--documenter-dark .docstring > section > a.docs-sourcelink { + font-size: 0.85em !important; } + +@media screen and (max-width: 768px) { + .is-size-1-mobile { + font-size: 3rem !important; } + .is-size-2-mobile { + font-size: 2.5rem !important; } + .is-size-3-mobile { + font-size: 2rem !important; } + .is-size-4-mobile { + font-size: 1.5rem !important; } + .is-size-5-mobile { + font-size: 1.25rem !important; } + .is-size-6-mobile { + font-size: 15px !important; } + .is-size-7-mobile { + font-size: 0.85em !important; } } + +@media screen and (min-width: 769px), print { + .is-size-1-tablet { + font-size: 3rem !important; } + .is-size-2-tablet { + font-size: 2.5rem !important; } + .is-size-3-tablet { + font-size: 2rem !important; } + .is-size-4-tablet { + font-size: 1.5rem !important; } + .is-size-5-tablet { + font-size: 1.25rem !important; } + .is-size-6-tablet { + font-size: 15px !important; } + .is-size-7-tablet { + font-size: 0.85em !important; } } + +@media screen and (max-width: 1055px) { + .is-size-1-touch { + font-size: 3rem !important; } + .is-size-2-touch { + font-size: 2.5rem !important; } + .is-size-3-touch { + font-size: 2rem !important; } + .is-size-4-touch { + font-size: 1.5rem !important; } + .is-size-5-touch { + font-size: 1.25rem !important; } + .is-size-6-touch { + font-size: 15px !important; } + .is-size-7-touch { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1056px) { + .is-size-1-desktop { + font-size: 3rem !important; } + .is-size-2-desktop { + font-size: 2.5rem !important; } + .is-size-3-desktop { + font-size: 2rem !important; } + .is-size-4-desktop { + font-size: 1.5rem !important; } + .is-size-5-desktop { + font-size: 1.25rem !important; } + .is-size-6-desktop { + font-size: 15px !important; } + .is-size-7-desktop { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1216px) { + .is-size-1-widescreen { + font-size: 3rem !important; } + .is-size-2-widescreen { + font-size: 2.5rem !important; } + .is-size-3-widescreen { + font-size: 2rem !important; } + .is-size-4-widescreen { + font-size: 1.5rem !important; } + .is-size-5-widescreen { + font-size: 1.25rem !important; } + .is-size-6-widescreen { + font-size: 15px !important; } + .is-size-7-widescreen { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1408px) { + .is-size-1-fullhd { + font-size: 3rem !important; } + .is-size-2-fullhd { + font-size: 2.5rem !important; } + .is-size-3-fullhd { + font-size: 2rem !important; } + .is-size-4-fullhd { + font-size: 1.5rem !important; } + .is-size-5-fullhd { + font-size: 1.25rem !important; } + .is-size-6-fullhd { + font-size: 15px !important; } + .is-size-7-fullhd { + font-size: 0.85em !important; } } + +.has-text-centered { + text-align: center !important; } + +.has-text-justified { + text-align: justify !important; } + +.has-text-left { + text-align: left !important; } + +.has-text-right { + text-align: right !important; } + +@media screen and (max-width: 768px) { + .has-text-centered-mobile { + text-align: center !important; } } + +@media screen and (min-width: 769px), print { + .has-text-centered-tablet { + text-align: center !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-centered-tablet-only { + text-align: center !important; } } + +@media screen and (max-width: 1055px) { + .has-text-centered-touch { + text-align: center !important; } } + +@media screen and (min-width: 1056px) { + .has-text-centered-desktop { + text-align: center !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-centered-desktop-only { + text-align: center !important; } } + +@media screen and (min-width: 1216px) { + .has-text-centered-widescreen { + text-align: center !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-centered-widescreen-only { + text-align: center !important; } } + +@media screen and (min-width: 1408px) { + .has-text-centered-fullhd { + text-align: center !important; } } + +@media screen and (max-width: 768px) { + .has-text-justified-mobile { + text-align: justify !important; } } + +@media screen and (min-width: 769px), print { + .has-text-justified-tablet { + text-align: justify !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-justified-tablet-only { + text-align: justify !important; } } + +@media screen and (max-width: 1055px) { + .has-text-justified-touch { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) { + .has-text-justified-desktop { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-justified-desktop-only { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) { + .has-text-justified-widescreen { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-justified-widescreen-only { + text-align: justify !important; } } + +@media screen and (min-width: 1408px) { + .has-text-justified-fullhd { + text-align: justify !important; } } + +@media screen and (max-width: 768px) { + .has-text-left-mobile { + text-align: left !important; } } + +@media screen and (min-width: 769px), print { + .has-text-left-tablet { + text-align: left !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-left-tablet-only { + text-align: left !important; } } + +@media screen and (max-width: 1055px) { + .has-text-left-touch { + text-align: left !important; } } + +@media screen and (min-width: 1056px) { + .has-text-left-desktop { + text-align: left !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-left-desktop-only { + text-align: left !important; } } + +@media screen and (min-width: 1216px) { + .has-text-left-widescreen { + text-align: left !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-left-widescreen-only { + text-align: left !important; } } + +@media screen and (min-width: 1408px) { + .has-text-left-fullhd { + text-align: left !important; } } + +@media screen and (max-width: 768px) { + .has-text-right-mobile { + text-align: right !important; } } + +@media screen and (min-width: 769px), print { + .has-text-right-tablet { + text-align: right !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-right-tablet-only { + text-align: right !important; } } + +@media screen and (max-width: 1055px) { + .has-text-right-touch { + text-align: right !important; } } + +@media screen and (min-width: 1056px) { + .has-text-right-desktop { + text-align: right !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-right-desktop-only { + text-align: right !important; } } + +@media screen and (min-width: 1216px) { + .has-text-right-widescreen { + text-align: right !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-right-widescreen-only { + text-align: right !important; } } + +@media screen and (min-width: 1408px) { + .has-text-right-fullhd { + text-align: right !important; } } + +.is-capitalized { + text-transform: capitalize !important; } + +.is-lowercase { + text-transform: lowercase !important; } + +.is-uppercase { + text-transform: uppercase !important; } + +.is-italic { + font-style: italic !important; } + +.has-text-white { + color: white !important; } + +a.has-text-white:hover, a.has-text-white:focus { + color: #e6e6e6 !important; } + +.has-background-white { + background-color: white !important; } + +.has-text-black { + color: #0a0a0a !important; } + +a.has-text-black:hover, a.has-text-black:focus { + color: black !important; } + +.has-background-black { + background-color: #0a0a0a !important; } + +.has-text-light { + color: #ecf0f1 !important; } + +a.has-text-light:hover, a.has-text-light:focus { + color: #cfd9db !important; } + +.has-background-light { + background-color: #ecf0f1 !important; } + +.has-text-dark { + color: #282f2f !important; } + +a.has-text-dark:hover, a.has-text-dark:focus { + color: #111414 !important; } + +.has-background-dark { + background-color: #282f2f !important; } + +.has-text-primary { + color: #375a7f !important; } + +a.has-text-primary:hover, a.has-text-primary:focus { + color: #28415b !important; } + +.has-background-primary { + background-color: #375a7f !important; } + +.has-text-link { + color: #1abc9c !important; } + +a.has-text-link:hover, a.has-text-link:focus { + color: #148f77 !important; } + +.has-background-link { + background-color: #1abc9c !important; } + +.has-text-info { + color: #024c7d !important; } + +a.has-text-info:hover, a.has-text-info:focus { + color: #012d4b !important; } + +.has-background-info { + background-color: #024c7d !important; } + +.has-text-success { + color: #008438 !important; } + +a.has-text-success:hover, a.has-text-success:focus { + color: #005122 !important; } + +.has-background-success { + background-color: #008438 !important; } + +.has-text-warning { + color: #ad8100 !important; } + +a.has-text-warning:hover, a.has-text-warning:focus { + color: #7a5b00 !important; } + +.has-background-warning { + background-color: #ad8100 !important; } + +.has-text-danger { + color: #9e1b0d !important; } + +a.has-text-danger:hover, a.has-text-danger:focus { + color: #6f1309 !important; } + +.has-background-danger { + background-color: #9e1b0d !important; } + +.has-text-black-bis { + color: #121212 !important; } + +.has-background-black-bis { + background-color: #121212 !important; } + +.has-text-black-ter { + color: #242424 !important; } + +.has-background-black-ter { + background-color: #242424 !important; } + +.has-text-grey-darker { + color: #282f2f !important; } + +.has-background-grey-darker { + background-color: #282f2f !important; } + +.has-text-grey-dark { + color: #343c3d !important; } + +.has-background-grey-dark { + background-color: #343c3d !important; } + +.has-text-grey { + color: #5e6d6f !important; } + +.has-background-grey { + background-color: #5e6d6f !important; } + +.has-text-grey-light { + color: #8c9b9d !important; } + +.has-background-grey-light { + background-color: #8c9b9d !important; } + +.has-text-grey-lighter { + color: #dbdee0 !important; } + +.has-background-grey-lighter { + background-color: #dbdee0 !important; } + +.has-text-white-ter { + color: #ecf0f1 !important; } + +.has-background-white-ter { + background-color: #ecf0f1 !important; } + +.has-text-white-bis { + color: #fafafa !important; } + +.has-background-white-bis { + background-color: #fafafa !important; } + +.has-text-weight-light { + font-weight: 300 !important; } + +.has-text-weight-normal { + font-weight: 400 !important; } + +.has-text-weight-medium { + font-weight: 500 !important; } + +.has-text-weight-semibold { + font-weight: 600 !important; } + +.has-text-weight-bold { + font-weight: 700 !important; } + +.is-family-primary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-secondary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-sans-serif { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-monospace { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-family-code { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-block { + display: block !important; } + +@media screen and (max-width: 768px) { + .is-block-mobile { + display: block !important; } } + +@media screen and (min-width: 769px), print { + .is-block-tablet { + display: block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-block-tablet-only { + display: block !important; } } + +@media screen and (max-width: 1055px) { + .is-block-touch { + display: block !important; } } + +@media screen and (min-width: 1056px) { + .is-block-desktop { + display: block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-block-desktop-only { + display: block !important; } } + +@media screen and (min-width: 1216px) { + .is-block-widescreen { + display: block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-block-widescreen-only { + display: block !important; } } + +@media screen and (min-width: 1408px) { + .is-block-fullhd { + display: block !important; } } + +.is-flex { + display: flex !important; } + +@media screen and (max-width: 768px) { + .is-flex-mobile { + display: flex !important; } } + +@media screen and (min-width: 769px), print { + .is-flex-tablet { + display: flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-flex-tablet-only { + display: flex !important; } } + +@media screen and (max-width: 1055px) { + .is-flex-touch { + display: flex !important; } } + +@media screen and (min-width: 1056px) { + .is-flex-desktop { + display: flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-flex-desktop-only { + display: flex !important; } } + +@media screen and (min-width: 1216px) { + .is-flex-widescreen { + display: flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-flex-widescreen-only { + display: flex !important; } } + +@media screen and (min-width: 1408px) { + .is-flex-fullhd { + display: flex !important; } } + +.is-inline { + display: inline !important; } + +@media screen and (max-width: 768px) { + .is-inline-mobile { + display: inline !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-tablet { + display: inline !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-tablet-only { + display: inline !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-touch { + display: inline !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-desktop { + display: inline !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-desktop-only { + display: inline !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-widescreen { + display: inline !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-widescreen-only { + display: inline !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-fullhd { + display: inline !important; } } + +.is-inline-block { + display: inline-block !important; } + +@media screen and (max-width: 768px) { + .is-inline-block-mobile { + display: inline-block !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-block-tablet { + display: inline-block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-block-tablet-only { + display: inline-block !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-block-touch { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-block-desktop { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-block-desktop-only { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-block-widescreen { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-block-widescreen-only { + display: inline-block !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-block-fullhd { + display: inline-block !important; } } + +.is-inline-flex { + display: inline-flex !important; } + +@media screen and (max-width: 768px) { + .is-inline-flex-mobile { + display: inline-flex !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-flex-tablet { + display: inline-flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-flex-tablet-only { + display: inline-flex !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-flex-touch { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-flex-desktop { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-flex-desktop-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-flex-widescreen { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-flex-widescreen-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-flex-fullhd { + display: inline-flex !important; } } + +.is-hidden { + display: none !important; } + +.is-sr-only { + border: none !important; + clip: rect(0, 0, 0, 0) !important; + height: 0.01em !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + white-space: nowrap !important; + width: 0.01em !important; } + +@media screen and (max-width: 768px) { + .is-hidden-mobile { + display: none !important; } } + +@media screen and (min-width: 769px), print { + .is-hidden-tablet { + display: none !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-hidden-tablet-only { + display: none !important; } } + +@media screen and (max-width: 1055px) { + .is-hidden-touch { + display: none !important; } } + +@media screen and (min-width: 1056px) { + .is-hidden-desktop { + display: none !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-hidden-desktop-only { + display: none !important; } } + +@media screen and (min-width: 1216px) { + .is-hidden-widescreen { + display: none !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-hidden-widescreen-only { + display: none !important; } } + +@media screen and (min-width: 1408px) { + .is-hidden-fullhd { + display: none !important; } } + +.is-invisible { + visibility: hidden !important; } + +@media screen and (max-width: 768px) { + .is-invisible-mobile { + visibility: hidden !important; } } + +@media screen and (min-width: 769px), print { + .is-invisible-tablet { + visibility: hidden !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-invisible-tablet-only { + visibility: hidden !important; } } + +@media screen and (max-width: 1055px) { + .is-invisible-touch { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) { + .is-invisible-desktop { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-invisible-desktop-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) { + .is-invisible-widescreen { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-invisible-widescreen-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1408px) { + .is-invisible-fullhd { + visibility: hidden !important; } } + +.is-marginless { + margin: 0 !important; } + +.is-paddingless { + padding: 0 !important; } + +.is-radiusless { + border-radius: 0 !important; } + +.is-shadowless { + box-shadow: none !important; } + +.is-relative { + position: relative !important; } + +html.theme--documenter-dark { + /* This file contain the overall layout. + * + * The main container is
    that is identified by id #documenter. + */ + /*! + 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 +*/ + /* Comment */ + /* Red */ + /* Orange */ + /* Yellow */ + /* Green */ + /* Blue */ + /* Purple */ } + html.theme--documenter-dark html { + background-color: #1f2424; + font-size: 16px; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + html.theme--documenter-dark article, + html.theme--documenter-dark aside, + html.theme--documenter-dark figure, + html.theme--documenter-dark footer, + html.theme--documenter-dark header, + html.theme--documenter-dark hgroup, + html.theme--documenter-dark section { + display: block; } + html.theme--documenter-dark body, + html.theme--documenter-dark button, + html.theme--documenter-dark input, + html.theme--documenter-dark select, + html.theme--documenter-dark textarea { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; } + html.theme--documenter-dark code, + html.theme--documenter-dark pre { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; } + html.theme--documenter-dark body { + color: #fff; + font-size: 1em; + font-weight: 400; + line-height: 1.5; } + html.theme--documenter-dark a { + color: #1abc9c; + cursor: pointer; + text-decoration: none; } + html.theme--documenter-dark a strong { + color: currentColor; } + html.theme--documenter-dark a:hover { + color: #1dd2af; } + html.theme--documenter-dark code { + background-color: rgba(255, 255, 255, 0.05); + color: #ececec; + font-size: 0.875em; + font-weight: normal; + padding: 0.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: 0.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: 0.875em; + overflow-x: auto; + padding: 1.25rem 1.5rem; + white-space: pre; + word-wrap: normal; } + html.theme--documenter-dark pre code { + background-color: transparent; + color: currentColor; + font-size: 1em; + padding: 0; } + html.theme--documenter-dark table td, + html.theme--documenter-dark table th { + vertical-align: top; } + html.theme--documenter-dark table td:not([align]), + html.theme--documenter-dark table th:not([align]) { + text-align: left; } + html.theme--documenter-dark table th { + color: #f2f2f2; } + html.theme--documenter-dark .box { + background-color: #343c3d; + border-radius: 8px; + box-shadow: none; + color: #fff; + display: block; + padding: 1.25rem; } + html.theme--documenter-dark a.box:hover, html.theme--documenter-dark a.box:focus { + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #1abc9c; } + html.theme--documenter-dark a.box:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #1abc9c; } + html.theme--documenter-dark .button { + background-color: #282f2f; + border-color: #4c5759; + border-width: 1px; + color: #375a7f; + cursor: pointer; + justify-content: center; + padding-bottom: calc(0.375em - 1px); + padding-left: 0.75em; + padding-right: 0.75em; + padding-top: calc(0.375em - 1px); + text-align: center; + white-space: nowrap; } + html.theme--documenter-dark .button strong { + color: inherit; } + html.theme--documenter-dark .button .icon, html.theme--documenter-dark .button .icon.is-small, html.theme--documenter-dark .button #documenter .docs-sidebar form.docs-search > input.icon, html.theme--documenter-dark #documenter .docs-sidebar .button form.docs-search > input.icon, html.theme--documenter-dark .button .icon.is-medium, html.theme--documenter-dark .button .icon.is-large { + height: 1.5em; + width: 1.5em; } + html.theme--documenter-dark .button .icon:first-child:not(:last-child) { + margin-left: calc(-0.375em - 1px); + margin-right: 0.1875em; } + html.theme--documenter-dark .button .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: calc(-0.375em - 1px); } + html.theme--documenter-dark .button .icon:first-child:last-child { + margin-left: calc(-0.375em - 1px); + margin-right: calc(-0.375em - 1px); } + html.theme--documenter-dark .button:hover, html.theme--documenter-dark .button.is-hovered { + border-color: #8c9b9d; + color: #f2f2f2; } + html.theme--documenter-dark .button:focus, html.theme--documenter-dark .button.is-focused { + border-color: #8c9b9d; + color: #17a689; } + html.theme--documenter-dark .button:focus:not(:active), html.theme--documenter-dark .button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .button:active, html.theme--documenter-dark .button.is-active { + border-color: #343c3d; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text { + background-color: transparent; + border-color: transparent; + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .button.is-text:hover, html.theme--documenter-dark .button.is-text.is-hovered, html.theme--documenter-dark .button.is-text:focus, html.theme--documenter-dark .button.is-text.is-focused { + background-color: #282f2f; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text:active, html.theme--documenter-dark .button.is-text.is-active { + background-color: #1d2122; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-text { + background-color: transparent; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-white { + background-color: white; + 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: white; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-white.is-inverted { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .button.is-white.is-inverted:hover, html.theme--documenter-dark .button.is-white.is-inverted.is-hovered { + background-color: black; } + 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: white; } + 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: white; + color: white; } + 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: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white.is-outlined.is-loading::after { + border-color: transparent transparent white white !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: white; + box-shadow: none; + color: white; } + 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: white; } + 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 white white !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: white; } + html.theme--documenter-dark .button.is-black:hover, html.theme--documenter-dark .button.is-black.is-hovered { + background-color: #040404; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black:focus, html.theme--documenter-dark .button.is-black.is-focused { + border-color: transparent; + color: white; } + 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: black; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-black.is-inverted { + background-color: white; + 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: white; + border-color: transparent; + box-shadow: none; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-loading::after { + border-color: transparent transparent white white !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: white; } + 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 white white !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: white; + color: white; } + 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: white; + 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: white; + box-shadow: none; + color: white; } + html.theme--documenter-dark .button.is-light { + background-color: #ecf0f1; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:hover, html.theme--documenter-dark .button.is-light.is-hovered { + background-color: #e5eaec; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:focus, html.theme--documenter-dark .button.is-light.is-focused { + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:focus:not(:active), html.theme--documenter-dark .button.is-light.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } + html.theme--documenter-dark .button.is-light:active, html.theme--documenter-dark .button.is-light.is-active { + background-color: #dde4e6; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light { + background-color: #ecf0f1; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-light.is-inverted { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-hovered { + background-color: #1d2122; } + html.theme--documenter-dark .button.is-light.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted { + background-color: #282f2f; + border-color: transparent; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-loading::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-light.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-outlined.is-focused { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-light.is-outlined.is-loading::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-light.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-light.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #282f2f; + color: #282f2f; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-focused { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #282f2f; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark, html.theme--documenter-dark .content kbd.button { + background-color: #282f2f; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:hover, html.theme--documenter-dark .content kbd.button:hover, html.theme--documenter-dark .button.is-dark.is-hovered, html.theme--documenter-dark .content kbd.button.is-hovered { + background-color: #232829; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:focus, html.theme--documenter-dark .content kbd.button:focus, html.theme--documenter-dark .button.is-dark.is-focused, html.theme--documenter-dark .content kbd.button.is-focused { + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:focus:not(:active), html.theme--documenter-dark .content kbd.button:focus:not(:active), html.theme--documenter-dark .button.is-dark.is-focused:not(:active), html.theme--documenter-dark .content kbd.button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } + html.theme--documenter-dark .button.is-dark:active, html.theme--documenter-dark .content kbd.button:active, html.theme--documenter-dark .button.is-dark.is-active, html.theme--documenter-dark .content kbd.button.is-active { + background-color: #1d2122; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark[disabled], html.theme--documenter-dark .content kbd.button[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark, fieldset[disabled] html.theme--documenter-dark .content kbd.button { + background-color: #282f2f; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-dark.is-inverted, html.theme--documenter-dark .content kbd.button.is-inverted { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted:hover, html.theme--documenter-dark .content kbd.button.is-inverted:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-hovered { + background-color: #dde4e6; } + html.theme--documenter-dark .button.is-dark.is-inverted[disabled], html.theme--documenter-dark .content kbd.button.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted { + background-color: #ecf0f1; + border-color: transparent; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-loading::after, html.theme--documenter-dark .content kbd.button.is-loading::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-dark.is-outlined, html.theme--documenter-dark .content kbd.button.is-outlined { + background-color: transparent; + border-color: #282f2f; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-outlined.is-focused { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark.is-outlined.is-loading::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-dark.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-outlined, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-outlined { + background-color: transparent; + border-color: #282f2f; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-focused { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-primary, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink { + background-color: #375a7f; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:hover, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-hovered.docs-sourcelink { + background-color: #335476; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:focus, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:focus:not(:active), html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus:not(:active), html.theme--documenter-dark .button.is-primary.is-focused:not(:active), html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) { + box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } + html.theme--documenter-dark .button.is-primary:active, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:active, html.theme--documenter-dark .button.is-primary.is-active, html.theme--documenter-dark .docstring > section > a.button.is-active.docs-sourcelink { + background-color: #2f4d6d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary[disabled], html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink { + background-color: #375a7f; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-primary.is-inverted, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-primary.is-inverted[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-loading.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-primary.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #375a7f; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink { + background-color: #375a7f; + border-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .button.is-primary.is-outlined.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after { + border-color: transparent transparent #375a7f #375a7f !important; } + html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-primary.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-outlined, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #375a7f; + box-shadow: none; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink { + background-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #375a7f #375a7f !important; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-link { + background-color: #1abc9c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:hover, html.theme--documenter-dark .button.is-link.is-hovered { + background-color: #18b193; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:focus, html.theme--documenter-dark .button.is-link.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:focus:not(:active), html.theme--documenter-dark .button.is-link.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .button.is-link:active, html.theme--documenter-dark .button.is-link.is-active { + background-color: #17a689; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link { + background-color: #1abc9c; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-link.is-inverted { + background-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-link.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-link.is-outlined { + background-color: transparent; + border-color: #1abc9c; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-outlined.is-focused { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .button.is-link.is-outlined.is-loading::after { + border-color: transparent transparent #1abc9c #1abc9c !important; } + html.theme--documenter-dark .button.is-link.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-link.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-outlined { + background-color: transparent; + border-color: #1abc9c; + box-shadow: none; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #1abc9c #1abc9c !important; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-info { + background-color: #024c7d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:hover, html.theme--documenter-dark .button.is-info.is-hovered { + background-color: #024470; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:focus, html.theme--documenter-dark .button.is-info.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:focus:not(:active), html.theme--documenter-dark .button.is-info.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } + html.theme--documenter-dark .button.is-info:active, html.theme--documenter-dark .button.is-info.is-active { + background-color: #023d64; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info { + background-color: #024c7d; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-info.is-inverted { + background-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-info.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-info.is-outlined { + background-color: transparent; + border-color: #024c7d; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-outlined.is-focused { + background-color: #024c7d; + border-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .button.is-info.is-outlined.is-loading::after { + border-color: transparent transparent #024c7d #024c7d !important; } + html.theme--documenter-dark .button.is-info.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-info.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-outlined { + background-color: transparent; + border-color: #024c7d; + box-shadow: none; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #024c7d #024c7d !important; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-success { + background-color: #008438; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:hover, html.theme--documenter-dark .button.is-success.is-hovered { + background-color: #007733; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:focus, html.theme--documenter-dark .button.is-success.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:focus:not(:active), html.theme--documenter-dark .button.is-success.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } + html.theme--documenter-dark .button.is-success:active, html.theme--documenter-dark .button.is-success.is-active { + background-color: #006b2d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success { + background-color: #008438; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-success.is-inverted { + background-color: #fff; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-success.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-success.is-outlined { + background-color: transparent; + border-color: #008438; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-outlined.is-focused { + background-color: #008438; + border-color: #008438; + color: #fff; } + html.theme--documenter-dark .button.is-success.is-outlined.is-loading::after { + border-color: transparent transparent #008438 #008438 !important; } + html.theme--documenter-dark .button.is-success.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-success.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-outlined { + background-color: transparent; + border-color: #008438; + box-shadow: none; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #008438 #008438 !important; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-warning { + background-color: #ad8100; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:hover, html.theme--documenter-dark .button.is-warning.is-hovered { + background-color: #a07700; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:focus, html.theme--documenter-dark .button.is-warning.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:focus:not(:active), html.theme--documenter-dark .button.is-warning.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } + html.theme--documenter-dark .button.is-warning:active, html.theme--documenter-dark .button.is-warning.is-active { + background-color: #946e00; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning { + background-color: #ad8100; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-warning.is-inverted { + background-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-warning.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ad8100; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-outlined.is-focused { + background-color: #ad8100; + border-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .button.is-warning.is-outlined.is-loading::after { + border-color: transparent transparent #ad8100 #ad8100 !important; } + html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-warning.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ad8100; + box-shadow: none; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ad8100 #ad8100 !important; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-danger { + background-color: #9e1b0d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:hover, html.theme--documenter-dark .button.is-danger.is-hovered { + background-color: #92190c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:focus, html.theme--documenter-dark .button.is-danger.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:focus:not(:active), html.theme--documenter-dark .button.is-danger.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } + html.theme--documenter-dark .button.is-danger:active, html.theme--documenter-dark .button.is-danger.is-active { + background-color: #86170b; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger { + background-color: #9e1b0d; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-danger.is-inverted { + background-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-danger.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-danger.is-outlined { + background-color: transparent; + border-color: #9e1b0d; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-outlined.is-focused { + background-color: #9e1b0d; + border-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .button.is-danger.is-outlined.is-loading::after { + border-color: transparent transparent #9e1b0d #9e1b0d !important; } + html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-danger.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-outlined { + background-color: transparent; + border-color: #9e1b0d; + box-shadow: none; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #9e1b0d #9e1b0d !important; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .button.is-normal { + font-size: 15px; } + html.theme--documenter-dark .button.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .button.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .button[disabled], fieldset[disabled] html.theme--documenter-dark .button { + background-color: #8c9b9d; + border-color: #dbdee0; + box-shadow: none; + opacity: 0.5; } + html.theme--documenter-dark .button.is-fullwidth { + display: flex; + width: 100%; } + html.theme--documenter-dark .button.is-loading { + color: transparent !important; + pointer-events: none; } + html.theme--documenter-dark .button.is-loading::after { + position: absolute; + left: calc(50% - (1em / 2)); + top: calc(50% - (1em / 2)); + position: absolute !important; } + html.theme--documenter-dark .button.is-static { + background-color: #282f2f; + border-color: #5e6d6f; + color: #dbdee0; + box-shadow: none; + pointer-events: none; } + html.theme--documenter-dark .button.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .buttons { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .buttons .button { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .buttons .button:not(:last-child):not(.is-fullwidth) { + margin-right: 0.5rem; } + html.theme--documenter-dark .buttons:last-child { + margin-bottom: -0.5rem; } + html.theme--documenter-dark .buttons:not(:last-child) { + margin-bottom: 1rem; } + html.theme--documenter-dark .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) { + font-size: 1.25rem; } + html.theme--documenter-dark .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) { + font-size: 1.5rem; } + html.theme--documenter-dark .buttons.has-addons .button:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .buttons.has-addons .button:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + margin-right: -1px; } + html.theme--documenter-dark .buttons.has-addons .button:last-child { + margin-right: 0; } + html.theme--documenter-dark .buttons.has-addons .button:hover, html.theme--documenter-dark .buttons.has-addons .button.is-hovered { + z-index: 2; } + html.theme--documenter-dark .buttons.has-addons .button:focus, html.theme--documenter-dark .buttons.has-addons .button.is-focused, html.theme--documenter-dark .buttons.has-addons .button:active, html.theme--documenter-dark .buttons.has-addons .button.is-active, html.theme--documenter-dark .buttons.has-addons .button.is-selected { + z-index: 3; } + html.theme--documenter-dark .buttons.has-addons .button:focus:hover, html.theme--documenter-dark .buttons.has-addons .button.is-focused:hover, html.theme--documenter-dark .buttons.has-addons .button:active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-selected:hover { + z-index: 4; } + html.theme--documenter-dark .buttons.has-addons .button.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .buttons.is-centered { + justify-content: center; } + html.theme--documenter-dark .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + html.theme--documenter-dark .buttons.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + html.theme--documenter-dark .container { + flex-grow: 1; + margin: 0 auto; + position: relative; + width: auto; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .container { + max-width: 992px; } + html.theme--documenter-dark .container.is-fluid { + margin-left: 32px; + margin-right: 32px; + max-width: none; } } + @media screen and (max-width: 1215px) { + html.theme--documenter-dark .container.is-widescreen { + max-width: 1152px; } } + @media screen and (max-width: 1407px) { + html.theme--documenter-dark .container.is-fullhd { + max-width: 1344px; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .container { + max-width: 1152px; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .container { + max-width: 1344px; } } + html.theme--documenter-dark .content li + li { + margin-top: 0.25em; } + html.theme--documenter-dark .content p:not(:last-child), + html.theme--documenter-dark .content dl:not(:last-child), + html.theme--documenter-dark .content ol:not(:last-child), + html.theme--documenter-dark .content ul:not(:last-child), + html.theme--documenter-dark .content blockquote:not(:last-child), + html.theme--documenter-dark .content pre:not(:last-child), + html.theme--documenter-dark .content table:not(:last-child) { + margin-bottom: 1em; } + html.theme--documenter-dark .content h1, + html.theme--documenter-dark .content h2, + html.theme--documenter-dark .content h3, + html.theme--documenter-dark .content h4, + html.theme--documenter-dark .content h5, + html.theme--documenter-dark .content h6 { + color: #f2f2f2; + font-weight: 600; + line-height: 1.125; } + html.theme--documenter-dark .content h1 { + font-size: 2em; + margin-bottom: 0.5em; } + html.theme--documenter-dark .content h1:not(:first-child) { + margin-top: 1em; } + html.theme--documenter-dark .content h2 { + font-size: 1.75em; + margin-bottom: 0.5714em; } + html.theme--documenter-dark .content h2:not(:first-child) { + margin-top: 1.1428em; } + html.theme--documenter-dark .content h3 { + font-size: 1.5em; + margin-bottom: 0.6666em; } + html.theme--documenter-dark .content h3:not(:first-child) { + margin-top: 1.3333em; } + html.theme--documenter-dark .content h4 { + font-size: 1.25em; + margin-bottom: 0.8em; } + html.theme--documenter-dark .content h5 { + font-size: 1.125em; + margin-bottom: 0.8888em; } + html.theme--documenter-dark .content h6 { + font-size: 1em; + margin-bottom: 1em; } + html.theme--documenter-dark .content blockquote { + background-color: #282f2f; + border-left: 5px solid #5e6d6f; + padding: 1.25em 1.5em; } + html.theme--documenter-dark .content ol { + list-style-position: outside; + margin-left: 2em; + margin-top: 1em; } + html.theme--documenter-dark .content ol:not([type]) { + list-style-type: decimal; } + html.theme--documenter-dark .content ol.is-lower-alpha:not([type]) { + list-style-type: lower-alpha; } + html.theme--documenter-dark .content ol.is-lower-roman:not([type]) { + list-style-type: lower-roman; } + html.theme--documenter-dark .content ol.is-upper-alpha:not([type]) { + list-style-type: upper-alpha; } + html.theme--documenter-dark .content ol.is-upper-roman:not([type]) { + list-style-type: upper-roman; } + html.theme--documenter-dark .content ul { + list-style: disc outside; + margin-left: 2em; + margin-top: 1em; } + html.theme--documenter-dark .content ul ul { + list-style-type: circle; + margin-top: 0.5em; } + html.theme--documenter-dark .content ul ul ul { + list-style-type: square; } + html.theme--documenter-dark .content dd { + margin-left: 2em; } + html.theme--documenter-dark .content figure { + margin-left: 2em; + margin-right: 2em; + text-align: center; } + html.theme--documenter-dark .content figure:not(:first-child) { + margin-top: 2em; } + html.theme--documenter-dark .content figure:not(:last-child) { + margin-bottom: 2em; } + html.theme--documenter-dark .content figure img { + display: inline-block; } + html.theme--documenter-dark .content figure figcaption { + font-style: italic; } + html.theme--documenter-dark .content pre { + -webkit-overflow-scrolling: touch; + overflow-x: auto; + padding: 0; + white-space: pre; + word-wrap: normal; } + html.theme--documenter-dark .content sup, + html.theme--documenter-dark .content sub { + font-size: 75%; } + html.theme--documenter-dark .content table { + width: 100%; } + html.theme--documenter-dark .content table td, + html.theme--documenter-dark .content table th { + border: 1px solid #5e6d6f; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + html.theme--documenter-dark .content table th { + color: #f2f2f2; } + html.theme--documenter-dark .content table th:not([align]) { + text-align: left; } + html.theme--documenter-dark .content table thead td, + html.theme--documenter-dark .content table thead th { + border-width: 0 0 2px; + color: #f2f2f2; } + html.theme--documenter-dark .content table tfoot td, + html.theme--documenter-dark .content table tfoot th { + border-width: 2px 0 0; + color: #f2f2f2; } + html.theme--documenter-dark .content table tbody tr:last-child td, + html.theme--documenter-dark .content table tbody tr:last-child th { + border-bottom-width: 0; } + html.theme--documenter-dark .content .tabs li + li { + margin-top: 0; } + html.theme--documenter-dark .content.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.content { + font-size: 0.85em; } + html.theme--documenter-dark .content.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .content.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .icon { + align-items: center; + display: inline-flex; + justify-content: center; + height: 1.5rem; + width: 1.5rem; } + html.theme--documenter-dark .icon.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.icon { + height: 1rem; + width: 1rem; } + html.theme--documenter-dark .icon.is-medium { + height: 2rem; + width: 2rem; } + html.theme--documenter-dark .icon.is-large { + height: 3rem; + width: 3rem; } + html.theme--documenter-dark .image, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img { + display: block; + position: relative; } + html.theme--documenter-dark .image img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img { + display: block; + height: auto; + width: 100%; } + html.theme--documenter-dark .image img.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img.is-rounded { + border-radius: 290486px; } + html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img, + html.theme--documenter-dark .image.is-square .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img, + html.theme--documenter-dark .image.is-1by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img, + html.theme--documenter-dark .image.is-5by4 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img, + html.theme--documenter-dark .image.is-4by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img, + html.theme--documenter-dark .image.is-3by2 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img, + html.theme--documenter-dark .image.is-5by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img, + html.theme--documenter-dark .image.is-16by9 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img, + html.theme--documenter-dark .image.is-2by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img, + html.theme--documenter-dark .image.is-3by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img, + html.theme--documenter-dark .image.is-4by5 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img, + html.theme--documenter-dark .image.is-3by4 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img, + html.theme--documenter-dark .image.is-2by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img, + html.theme--documenter-dark .image.is-3by5 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img, + html.theme--documenter-dark .image.is-9by16 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img, + html.theme--documenter-dark .image.is-1by2 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img, + html.theme--documenter-dark .image.is-1by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio { + height: 100%; + width: 100%; } + html.theme--documenter-dark .image.is-square, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square, html.theme--documenter-dark .image.is-1by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 { + padding-top: 100%; } + html.theme--documenter-dark .image.is-5by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 { + padding-top: 80%; } + html.theme--documenter-dark .image.is-4by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 { + padding-top: 75%; } + html.theme--documenter-dark .image.is-3by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 { + padding-top: 66.6666%; } + html.theme--documenter-dark .image.is-5by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 { + padding-top: 60%; } + html.theme--documenter-dark .image.is-16by9, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 { + padding-top: 56.25%; } + html.theme--documenter-dark .image.is-2by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 { + padding-top: 50%; } + html.theme--documenter-dark .image.is-3by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 { + padding-top: 33.3333%; } + html.theme--documenter-dark .image.is-4by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 { + padding-top: 125%; } + html.theme--documenter-dark .image.is-3by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 { + padding-top: 133.3333%; } + html.theme--documenter-dark .image.is-2by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 { + padding-top: 150%; } + html.theme--documenter-dark .image.is-3by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 { + padding-top: 166.6666%; } + html.theme--documenter-dark .image.is-9by16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 { + padding-top: 177.7777%; } + html.theme--documenter-dark .image.is-1by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 { + padding-top: 200%; } + html.theme--documenter-dark .image.is-1by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 { + padding-top: 300%; } + html.theme--documenter-dark .image.is-16x16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16x16 { + height: 16px; + width: 16px; } + html.theme--documenter-dark .image.is-24x24, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-24x24 { + height: 24px; + width: 24px; } + html.theme--documenter-dark .image.is-32x32, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-32x32 { + height: 32px; + width: 32px; } + html.theme--documenter-dark .image.is-48x48, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-48x48 { + height: 48px; + width: 48px; } + html.theme--documenter-dark .image.is-64x64, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-64x64 { + height: 64px; + width: 64px; } + html.theme--documenter-dark .image.is-96x96, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-96x96 { + height: 96px; + width: 96px; } + html.theme--documenter-dark .image.is-128x128, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-128x128 { + height: 128px; + width: 128px; } + html.theme--documenter-dark .notification { + background-color: #282f2f; + border-radius: 0.4em; + padding: 1.25rem 2.5rem 1.25rem 1.5rem; + position: relative; } + html.theme--documenter-dark .notification a:not(.button):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + html.theme--documenter-dark .notification strong { + color: currentColor; } + html.theme--documenter-dark .notification code, + html.theme--documenter-dark .notification pre { + background: white; } + html.theme--documenter-dark .notification pre code { + background: transparent; } + html.theme--documenter-dark .notification > .delete { + position: absolute; + right: 0.5rem; + top: 0.5rem; } + html.theme--documenter-dark .notification .title, + html.theme--documenter-dark .notification .subtitle, + html.theme--documenter-dark .notification .content { + color: currentColor; } + html.theme--documenter-dark .notification.is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .notification.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .notification.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .notification.is-dark, html.theme--documenter-dark .content kbd.notification { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .notification.is-primary, html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .notification.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .notification.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .notification.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .notification.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .notification.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .progress { + -moz-appearance: none; + -webkit-appearance: none; + border: none; + border-radius: 290486px; + display: block; + height: 15px; + overflow: hidden; + padding: 0; + width: 100%; } + html.theme--documenter-dark .progress::-webkit-progress-bar { + background-color: #5e6d6f; } + html.theme--documenter-dark .progress::-webkit-progress-value { + background-color: #dbdee0; } + html.theme--documenter-dark .progress::-moz-progress-bar { + background-color: #dbdee0; } + html.theme--documenter-dark .progress::-ms-fill { + background-color: #dbdee0; + border: none; } + html.theme--documenter-dark .progress.is-white::-webkit-progress-value { + background-color: white; } + html.theme--documenter-dark .progress.is-white::-moz-progress-bar { + background-color: white; } + html.theme--documenter-dark .progress.is-white::-ms-fill { + background-color: white; } + html.theme--documenter-dark .progress.is-white:indeterminate { + background-image: linear-gradient(to right, white 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-black::-webkit-progress-value { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black::-moz-progress-bar { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black::-ms-fill { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black:indeterminate { + background-image: linear-gradient(to right, #0a0a0a 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-light::-webkit-progress-value { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light::-moz-progress-bar { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light::-ms-fill { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light:indeterminate { + background-image: linear-gradient(to right, #ecf0f1 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-dark::-webkit-progress-value, html.theme--documenter-dark .content kbd.progress::-webkit-progress-value { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark::-moz-progress-bar, html.theme--documenter-dark .content kbd.progress::-moz-progress-bar { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark::-ms-fill, html.theme--documenter-dark .content kbd.progress::-ms-fill { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark:indeterminate, html.theme--documenter-dark .content kbd.progress:indeterminate { + background-image: linear-gradient(to right, #282f2f 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-primary::-webkit-progress-value, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary::-moz-progress-bar, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary::-ms-fill, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-ms-fill { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary:indeterminate, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink:indeterminate { + background-image: linear-gradient(to right, #375a7f 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-link::-webkit-progress-value { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link::-moz-progress-bar { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link::-ms-fill { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link:indeterminate { + background-image: linear-gradient(to right, #1abc9c 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-info::-webkit-progress-value { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info::-moz-progress-bar { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info::-ms-fill { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info:indeterminate { + background-image: linear-gradient(to right, #024c7d 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-success::-webkit-progress-value { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success::-moz-progress-bar { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success::-ms-fill { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success:indeterminate { + background-image: linear-gradient(to right, #008438 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-warning::-webkit-progress-value { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning::-moz-progress-bar { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning::-ms-fill { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning:indeterminate { + background-image: linear-gradient(to right, #ad8100 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-danger::-webkit-progress-value { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger::-moz-progress-bar { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger::-ms-fill { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger:indeterminate { + background-image: linear-gradient(to right, #9e1b0d 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress:indeterminate { + animation-duration: 1.5s; + animation-iteration-count: infinite; + animation-name: moveIndeterminate; + animation-timing-function: linear; + background-color: #5e6d6f; + background-image: linear-gradient(to right, #fff 30%, #5e6d6f 30%); + background-position: top left; + background-repeat: no-repeat; + background-size: 150% 150%; } + html.theme--documenter-dark .progress:indeterminate::-webkit-progress-bar { + background-color: transparent; } + html.theme--documenter-dark .progress:indeterminate::-moz-progress-bar { + background-color: transparent; } + html.theme--documenter-dark .progress.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.progress { + height: 0.85em; } + html.theme--documenter-dark .progress.is-medium { + height: 1.25rem; } + html.theme--documenter-dark .progress.is-large { + height: 1.5rem; } + +@keyframes moveIndeterminate { + from { + background-position: 200% 0; } + to { + background-position: -200% 0; } } + html.theme--documenter-dark .table { + background-color: #343c3d; + color: #fff; } + html.theme--documenter-dark .table td, + html.theme--documenter-dark .table th { + border: 1px solid #5e6d6f; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + html.theme--documenter-dark .table td.is-white, + html.theme--documenter-dark .table th.is-white { + background-color: white; + border-color: white; + 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: white; } + html.theme--documenter-dark .table td.is-light, + html.theme--documenter-dark .table th.is-light { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .table td.is-dark, + html.theme--documenter-dark .table th.is-dark { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .table td.is-primary, + html.theme--documenter-dark .table th.is-primary { + background-color: #375a7f; + border-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table td.is-link, + html.theme--documenter-dark .table th.is-link { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .table td.is-info, + html.theme--documenter-dark .table th.is-info { + background-color: #024c7d; + border-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .table td.is-success, + html.theme--documenter-dark .table th.is-success { + background-color: #008438; + border-color: #008438; + color: #fff; } + html.theme--documenter-dark .table td.is-warning, + html.theme--documenter-dark .table th.is-warning { + background-color: #ad8100; + border-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .table td.is-danger, + html.theme--documenter-dark .table th.is-danger { + background-color: #9e1b0d; + border-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .table td.is-narrow, + html.theme--documenter-dark .table th.is-narrow { + white-space: nowrap; + width: 1%; } + html.theme--documenter-dark .table td.is-selected, + html.theme--documenter-dark .table th.is-selected { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table td.is-selected a, + html.theme--documenter-dark .table td.is-selected strong, + html.theme--documenter-dark .table th.is-selected a, + html.theme--documenter-dark .table th.is-selected strong { + color: currentColor; } + html.theme--documenter-dark .table th { + color: #f2f2f2; } + html.theme--documenter-dark .table th:not([align]) { + text-align: left; } + html.theme--documenter-dark .table tr.is-selected { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table tr.is-selected a, + html.theme--documenter-dark .table tr.is-selected strong { + color: currentColor; } + html.theme--documenter-dark .table tr.is-selected td, + html.theme--documenter-dark .table tr.is-selected th { + border-color: #fff; + color: currentColor; } + html.theme--documenter-dark .table thead { + background-color: transparent; } + 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: transparent; } + 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: transparent; } + html.theme--documenter-dark .table tbody tr:last-child td, + html.theme--documenter-dark .table tbody tr:last-child th { + border-bottom-width: 0; } + html.theme--documenter-dark .table.is-bordered td, + html.theme--documenter-dark .table.is-bordered th { + border-width: 1px; } + html.theme--documenter-dark .table.is-bordered tr:last-child td, + html.theme--documenter-dark .table.is-bordered tr:last-child th { + border-bottom-width: 1px; } + html.theme--documenter-dark .table.is-fullwidth { + width: 100%; } + html.theme--documenter-dark .table.is-hoverable tbody tr:not(.is-selected):hover { + background-color: #282f2f; } + html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover { + background-color: #282f2f; } + html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) { + background-color: #2d3435; } + html.theme--documenter-dark .table.is-narrow td, + html.theme--documenter-dark .table.is-narrow th { + padding: 0.25em 0.5em; } + html.theme--documenter-dark .table.is-striped tbody tr:not(.is-selected):nth-child(even) { + background-color: #282f2f; } + html.theme--documenter-dark .table-container { + -webkit-overflow-scrolling: touch; + overflow: auto; + overflow-y: hidden; + max-width: 100%; } + html.theme--documenter-dark .tags { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .tags .tag, html.theme--documenter-dark .tags .content kbd, html.theme--documenter-dark .content .tags kbd, html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .tags .tag:not(:last-child), html.theme--documenter-dark .tags .content kbd:not(:last-child), html.theme--documenter-dark .content .tags kbd:not(:last-child), html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0.5rem; } + html.theme--documenter-dark .tags:last-child { + margin-bottom: -0.5rem; } + html.theme--documenter-dark .tags:not(:last-child) { + margin-bottom: 1rem; } + html.theme--documenter-dark .tags.are-medium .tag:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .content kbd:not(.is-normal):not(.is-large), html.theme--documenter-dark .content .tags.are-medium kbd:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large) { + font-size: 15px; } + html.theme--documenter-dark .tags.are-large .tag:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .content kbd:not(.is-normal):not(.is-medium), html.theme--documenter-dark .content .tags.are-large kbd:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium) { + font-size: 1.25rem; } + html.theme--documenter-dark .tags.is-centered { + justify-content: center; } + html.theme--documenter-dark .tags.is-centered .tag, html.theme--documenter-dark .tags.is-centered .content kbd, html.theme--documenter-dark .content .tags.is-centered kbd, html.theme--documenter-dark .tags.is-centered .docstring > section > a.docs-sourcelink { + margin-right: 0.25rem; + margin-left: 0.25rem; } + html.theme--documenter-dark .tags.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .tags.is-right .tag:not(:first-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:first-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0.5rem; } + html.theme--documenter-dark .tags.is-right .tag:not(:last-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:last-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0; } + html.theme--documenter-dark .tags.has-addons .tag, html.theme--documenter-dark .tags.has-addons .content kbd, html.theme--documenter-dark .content .tags.has-addons kbd, html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink { + margin-right: 0; } + html.theme--documenter-dark .tags.has-addons .tag:not(:first-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:first-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0; + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .tags.has-addons .tag:not(:last-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:last-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .tag:not(body), html.theme--documenter-dark .content kbd:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) { + align-items: center; + background-color: #282f2f; + border-radius: 0.4em; + color: #fff; + display: inline-flex; + font-size: 0.85em; + height: 2em; + justify-content: center; + line-height: 1.5; + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + html.theme--documenter-dark .tag:not(body) .delete, html.theme--documenter-dark .content kbd:not(body) .delete, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .delete { + margin-left: 0.25rem; + margin-right: -0.375rem; } + html.theme--documenter-dark .tag.is-white:not(body), html.theme--documenter-dark .content kbd.is-white:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-white:not(body) { + background-color: white; + 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: white; } + html.theme--documenter-dark .tag.is-light:not(body), html.theme--documenter-dark .content kbd.is-light:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-light:not(body) { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .tag.is-dark:not(body), html.theme--documenter-dark .content kbd:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-dark:not(body), html.theme--documenter-dark .content .docstring > section > kbd:not(body) { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .tag.is-primary:not(body), html.theme--documenter-dark .content kbd.is-primary:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .tag.is-link:not(body), html.theme--documenter-dark .content kbd.is-link:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-link:not(body) { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .tag.is-info:not(body), html.theme--documenter-dark .content kbd.is-info:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-info:not(body) { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .tag.is-success:not(body), html.theme--documenter-dark .content kbd.is-success:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-success:not(body) { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .tag.is-warning:not(body), html.theme--documenter-dark .content kbd.is-warning:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-warning:not(body) { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .tag.is-danger:not(body), html.theme--documenter-dark .content kbd.is-danger:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-danger:not(body) { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .tag.is-normal:not(body), html.theme--documenter-dark .content kbd.is-normal:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-normal:not(body) { + font-size: 0.85em; } + html.theme--documenter-dark .tag.is-medium:not(body), html.theme--documenter-dark .content kbd.is-medium:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-medium:not(body) { + font-size: 15px; } + html.theme--documenter-dark .tag.is-large:not(body), html.theme--documenter-dark .content kbd.is-large:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-large:not(body) { + font-size: 1.25rem; } + html.theme--documenter-dark .tag:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .content kbd:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child) { + margin-left: -0.375em; + margin-right: 0.1875em; } + html.theme--documenter-dark .tag:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .content kbd:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: -0.375em; } + html.theme--documenter-dark .tag:not(body) .icon:first-child:last-child, html.theme--documenter-dark .content kbd:not(body) .icon:first-child:last-child, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child { + margin-left: -0.375em; + margin-right: -0.375em; } + html.theme--documenter-dark .tag.is-delete:not(body), html.theme--documenter-dark .content kbd.is-delete:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body) { + margin-left: 1px; + padding: 0; + position: relative; + width: 2em; } + html.theme--documenter-dark .tag.is-delete:not(body)::before, html.theme--documenter-dark .content kbd.is-delete:not(body)::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::before, html.theme--documenter-dark .tag.is-delete:not(body)::after, html.theme--documenter-dark .content kbd.is-delete:not(body)::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + background-color: currentColor; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + html.theme--documenter-dark .tag.is-delete:not(body)::before, html.theme--documenter-dark .content kbd.is-delete:not(body)::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::before { + height: 1px; + width: 50%; } + html.theme--documenter-dark .tag.is-delete:not(body)::after, html.theme--documenter-dark .content kbd.is-delete:not(body)::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + height: 50%; + width: 1px; } + html.theme--documenter-dark .tag.is-delete:not(body):hover, html.theme--documenter-dark .content kbd.is-delete:not(body):hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):hover, html.theme--documenter-dark .tag.is-delete:not(body):focus, html.theme--documenter-dark .content kbd.is-delete:not(body):focus, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):focus { + background-color: #1d2122; } + html.theme--documenter-dark .tag.is-delete:not(body):active, html.theme--documenter-dark .content kbd.is-delete:not(body):active, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):active { + background-color: #111414; } + html.theme--documenter-dark .tag.is-rounded:not(body), html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:not(body), html.theme--documenter-dark .content kbd.is-rounded:not(body), html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-rounded:not(body) { + border-radius: 290486px; } + html.theme--documenter-dark a.tag:hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:hover { + text-decoration: underline; } + html.theme--documenter-dark .title, + html.theme--documenter-dark .subtitle { + word-break: break-word; } + html.theme--documenter-dark .title em, + html.theme--documenter-dark .title span, + html.theme--documenter-dark .subtitle em, + html.theme--documenter-dark .subtitle span { + font-weight: inherit; } + html.theme--documenter-dark .title sub, + html.theme--documenter-dark .subtitle sub { + font-size: 0.75em; } + html.theme--documenter-dark .title sup, + html.theme--documenter-dark .subtitle sup { + font-size: 0.75em; } + html.theme--documenter-dark .title .tag, html.theme--documenter-dark .title .content kbd, html.theme--documenter-dark .content .title kbd, html.theme--documenter-dark .title .docstring > section > a.docs-sourcelink, + html.theme--documenter-dark .subtitle .tag, + html.theme--documenter-dark .subtitle .content kbd, + html.theme--documenter-dark .content .subtitle kbd, + html.theme--documenter-dark .subtitle .docstring > section > a.docs-sourcelink { + vertical-align: middle; } + html.theme--documenter-dark .title { + color: #fff; + font-size: 2rem; + font-weight: 500; + line-height: 1.125; } + html.theme--documenter-dark .title strong { + color: inherit; + font-weight: inherit; } + html.theme--documenter-dark .title + .highlight { + margin-top: -0.75rem; } + html.theme--documenter-dark .title:not(.is-spaced) + .subtitle { + margin-top: -1.25rem; } + html.theme--documenter-dark .title.is-1 { + font-size: 3rem; } + html.theme--documenter-dark .title.is-2 { + font-size: 2.5rem; } + html.theme--documenter-dark .title.is-3 { + font-size: 2rem; } + html.theme--documenter-dark .title.is-4 { + font-size: 1.5rem; } + html.theme--documenter-dark .title.is-5 { + font-size: 1.25rem; } + html.theme--documenter-dark .title.is-6 { + font-size: 15px; } + html.theme--documenter-dark .title.is-7 { + font-size: 0.85em; } + html.theme--documenter-dark .subtitle { + color: #8c9b9d; + font-size: 1.25rem; + font-weight: 400; + line-height: 1.25; } + html.theme--documenter-dark .subtitle strong { + color: #8c9b9d; + font-weight: 600; } + html.theme--documenter-dark .subtitle:not(.is-spaced) + .title { + margin-top: -1.25rem; } + html.theme--documenter-dark .subtitle.is-1 { + font-size: 3rem; } + html.theme--documenter-dark .subtitle.is-2 { + font-size: 2.5rem; } + html.theme--documenter-dark .subtitle.is-3 { + font-size: 2rem; } + html.theme--documenter-dark .subtitle.is-4 { + font-size: 1.5rem; } + html.theme--documenter-dark .subtitle.is-5 { + font-size: 1.25rem; } + html.theme--documenter-dark .subtitle.is-6 { + font-size: 15px; } + html.theme--documenter-dark .subtitle.is-7 { + font-size: 0.85em; } + html.theme--documenter-dark .heading { + display: block; + font-size: 11px; + letter-spacing: 1px; + margin-bottom: 5px; + text-transform: uppercase; } + html.theme--documenter-dark .highlight { + font-weight: 400; + max-width: 100%; + overflow: hidden; + padding: 0; } + html.theme--documenter-dark .highlight pre { + overflow: auto; + max-width: 100%; } + html.theme--documenter-dark .number { + align-items: center; + background-color: #282f2f; + border-radius: 290486px; + display: inline-flex; + font-size: 1.25rem; + height: 2em; + justify-content: center; + margin-right: 1.5rem; + min-width: 2.5em; + padding: 0.25rem 0.5rem; + text-align: center; + vertical-align: top; } + html.theme--documenter-dark .select select, html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + background-color: #1f2424; + border-color: #5e6d6f; + border-radius: 0.4em; + color: #dbdee0; } + html.theme--documenter-dark .select select::-moz-placeholder, html.theme--documenter-dark .textarea::-moz-placeholder, html.theme--documenter-dark .input::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select::-webkit-input-placeholder, html.theme--documenter-dark .textarea::-webkit-input-placeholder, html.theme--documenter-dark .input::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select:-moz-placeholder, html.theme--documenter-dark .textarea:-moz-placeholder, html.theme--documenter-dark .input:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select:-ms-input-placeholder, html.theme--documenter-dark .textarea:-ms-input-placeholder, html.theme--documenter-dark .input:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select:hover, html.theme--documenter-dark .textarea:hover, html.theme--documenter-dark .input:hover, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:hover, html.theme--documenter-dark .select select.is-hovered, html.theme--documenter-dark .is-hovered.textarea, html.theme--documenter-dark .is-hovered.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-hovered { + border-color: #8c9b9d; } + html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .select select.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + border-color: #1abc9c; + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .select select[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], fieldset[disabled] html.theme--documenter-dark .select select, fieldset[disabled] html.theme--documenter-dark .textarea, fieldset[disabled] html.theme--documenter-dark .input, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + background-color: #8c9b9d; + border-color: #282f2f; + box-shadow: none; + color: white; } + html.theme--documenter-dark .select select[disabled]::-moz-placeholder, html.theme--documenter-dark .textarea[disabled]::-moz-placeholder, html.theme--documenter-dark .input[disabled]::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .select select::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .input::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .select select[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .textarea[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .input[disabled]::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .select select::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .input::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .select select[disabled]:-moz-placeholder, html.theme--documenter-dark .textarea[disabled]:-moz-placeholder, html.theme--documenter-dark .input[disabled]:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .select select:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .input:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .select select[disabled]:-ms-input-placeholder, html.theme--documenter-dark .textarea[disabled]:-ms-input-placeholder, html.theme--documenter-dark .input[disabled]:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .select select:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .input:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1); + max-width: 100%; + width: 100%; } + html.theme--documenter-dark .textarea[readonly], html.theme--documenter-dark .input[readonly], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[readonly] { + box-shadow: none; } + html.theme--documenter-dark .is-white.textarea, html.theme--documenter-dark .is-white.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white { + border-color: white; } + 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: 0.85em; } + html.theme--documenter-dark .is-medium.textarea, html.theme--documenter-dark .is-medium.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .is-large.textarea, html.theme--documenter-dark .is-large.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .is-fullwidth.textarea, html.theme--documenter-dark .is-fullwidth.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-fullwidth { + display: block; + width: 100%; } + html.theme--documenter-dark .is-inline.textarea, html.theme--documenter-dark .is-inline.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-inline { + display: inline; + width: auto; } + html.theme--documenter-dark .input.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .input.is-static, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-static { + background-color: transparent; + border-color: transparent; + box-shadow: none; + padding-left: 0; + padding-right: 0; } + html.theme--documenter-dark .textarea { + display: block; + max-width: 100%; + min-width: 100%; + padding: 0.625em; + resize: vertical; } + html.theme--documenter-dark .textarea:not([rows]) { + max-height: 600px; + min-height: 120px; } + html.theme--documenter-dark .textarea[rows] { + height: initial; } + html.theme--documenter-dark .textarea.has-fixed-size { + resize: none; } + html.theme--documenter-dark .radio, html.theme--documenter-dark .checkbox { + cursor: pointer; + display: inline-block; + line-height: 1.25; + position: relative; } + html.theme--documenter-dark .radio input, html.theme--documenter-dark .checkbox input { + cursor: pointer; } + html.theme--documenter-dark .radio:hover, html.theme--documenter-dark .checkbox:hover { + color: #8c9b9d; } + html.theme--documenter-dark .radio[disabled], html.theme--documenter-dark .checkbox[disabled], fieldset[disabled] html.theme--documenter-dark .radio, fieldset[disabled] html.theme--documenter-dark .checkbox { + color: white; + cursor: not-allowed; } + html.theme--documenter-dark .radio + .radio { + margin-left: 0.5em; } + html.theme--documenter-dark .select { + display: inline-block; + max-width: 100%; + position: relative; + vertical-align: top; } + html.theme--documenter-dark .select:not(.is-multiple) { + height: 2.25em; } + html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after { + border-color: #1abc9c; + right: 1.125em; + z-index: 4; } + html.theme--documenter-dark .select.is-rounded select, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select select { + border-radius: 290486px; + padding-left: 1em; } + html.theme--documenter-dark .select select { + cursor: pointer; + display: block; + font-size: 1em; + max-width: 100%; + outline: none; } + html.theme--documenter-dark .select select::-ms-expand { + display: none; } + html.theme--documenter-dark .select select[disabled]:hover, fieldset[disabled] html.theme--documenter-dark .select select:hover { + border-color: #282f2f; } + html.theme--documenter-dark .select select:not([multiple]) { + padding-right: 2.5em; } + html.theme--documenter-dark .select select[multiple] { + height: auto; + padding: 0; } + html.theme--documenter-dark .select select[multiple] option { + padding: 0.5em 1em; } + html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading):hover::after { + border-color: #8c9b9d; } + html.theme--documenter-dark .select.is-white:not(:hover)::after { + border-color: white; } + html.theme--documenter-dark .select.is-white select { + border-color: white; } + 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: black; } + 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: 0.85em; } + html.theme--documenter-dark .select.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .select.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .select.is-disabled::after { + border-color: white; } + html.theme--documenter-dark .select.is-fullwidth { + width: 100%; } + html.theme--documenter-dark .select.is-fullwidth select { + width: 100%; } + html.theme--documenter-dark .select.is-loading::after { + margin-top: 0; + position: absolute; + right: 0.625em; + top: 0.625em; + transform: none; } + html.theme--documenter-dark .select.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.85em; } + html.theme--documenter-dark .select.is-loading.is-medium:after { + font-size: 1.25rem; } + html.theme--documenter-dark .select.is-loading.is-large:after { + font-size: 1.5rem; } + html.theme--documenter-dark .file { + align-items: stretch; + display: flex; + justify-content: flex-start; + position: relative; } + html.theme--documenter-dark .file.is-white .file-cta { + background-color: white; + 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: white; } + 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: white; } + 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: white; } + html.theme--documenter-dark .file.is-black:active .file-cta, html.theme--documenter-dark .file.is-black.is-active .file-cta { + background-color: black; + border-color: transparent; + color: white; } + html.theme--documenter-dark .file.is-light .file-cta { + background-color: #ecf0f1; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-light:hover .file-cta, html.theme--documenter-dark .file.is-light.is-hovered .file-cta { + background-color: #e5eaec; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-light:focus .file-cta, html.theme--documenter-dark .file.is-light.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(236, 240, 241, 0.25); + color: #282f2f; } + html.theme--documenter-dark .file.is-light:active .file-cta, html.theme--documenter-dark .file.is-light.is-active .file-cta { + background-color: #dde4e6; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-dark .file-cta, html.theme--documenter-dark .content kbd.file .file-cta { + background-color: #282f2f; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:hover .file-cta, html.theme--documenter-dark .content kbd.file:hover .file-cta, html.theme--documenter-dark .file.is-dark.is-hovered .file-cta, html.theme--documenter-dark .content kbd.file.is-hovered .file-cta { + background-color: #232829; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:focus .file-cta, html.theme--documenter-dark .content kbd.file:focus .file-cta, html.theme--documenter-dark .file.is-dark.is-focused .file-cta, html.theme--documenter-dark .content kbd.file.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(40, 47, 47, 0.25); + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:active .file-cta, html.theme--documenter-dark .content kbd.file:active .file-cta, html.theme--documenter-dark .file.is-dark.is-active .file-cta, html.theme--documenter-dark .content kbd.file.is-active .file-cta { + background-color: #1d2122; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-primary .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink .file-cta { + background-color: #375a7f; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-primary:hover .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:hover .file-cta, html.theme--documenter-dark .file.is-primary.is-hovered .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-hovered.docs-sourcelink .file-cta { + background-color: #335476; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-primary:focus .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:focus .file-cta, html.theme--documenter-dark .file.is-primary.is-focused .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-focused.docs-sourcelink .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(55, 90, 127, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-primary:active .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:active .file-cta, html.theme--documenter-dark .file.is-primary.is-active .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-active.docs-sourcelink .file-cta { + background-color: #2f4d6d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link .file-cta { + background-color: #1abc9c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link:hover .file-cta, html.theme--documenter-dark .file.is-link.is-hovered .file-cta { + background-color: #18b193; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link:focus .file-cta, html.theme--documenter-dark .file.is-link.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(26, 188, 156, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-link:active .file-cta, html.theme--documenter-dark .file.is-link.is-active .file-cta { + background-color: #17a689; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info .file-cta { + background-color: #024c7d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info:hover .file-cta, html.theme--documenter-dark .file.is-info.is-hovered .file-cta { + background-color: #024470; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info:focus .file-cta, html.theme--documenter-dark .file.is-info.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(2, 76, 125, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-info:active .file-cta, html.theme--documenter-dark .file.is-info.is-active .file-cta { + background-color: #023d64; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success .file-cta { + background-color: #008438; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success:hover .file-cta, html.theme--documenter-dark .file.is-success.is-hovered .file-cta { + background-color: #007733; + 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: 0.85em; } + html.theme--documenter-dark .file.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .file.is-medium .file-icon .fa { + font-size: 21px; } + html.theme--documenter-dark .file.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .file.is-large .file-icon .fa { + font-size: 28px; } + html.theme--documenter-dark .file.has-name .file-cta { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .file.has-name .file-name { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .file.has-name.is-empty .file-cta { + border-radius: 0.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: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .file.is-boxed.has-name .file-name { + border-radius: 0 0 0.4em 0.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 0.4em 0.4em 0; } + html.theme--documenter-dark .file.is-right .file-name { + border-radius: 0.4em 0 0 0.4em; + border-width: 1px 0 1px 1px; + order: -1; } + html.theme--documenter-dark .file-label { + align-items: stretch; + display: flex; + cursor: pointer; + justify-content: flex-start; + overflow: hidden; + position: relative; } + html.theme--documenter-dark .file-label:hover .file-cta { + background-color: #e5eaec; + color: #282f2f; } + html.theme--documenter-dark .file-label:hover .file-name { + border-color: #596668; } + html.theme--documenter-dark .file-label:active .file-cta { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .file-label:active .file-name { + border-color: #535f61; } + html.theme--documenter-dark .file-input { + height: 100%; + left: 0; + opacity: 0; + outline: none; + position: absolute; + top: 0; + width: 100%; } + html.theme--documenter-dark .file-cta, + html.theme--documenter-dark .file-name { + border-color: #5e6d6f; + border-radius: 0.4em; + font-size: 1em; + padding-left: 1em; + padding-right: 1em; + white-space: nowrap; } + html.theme--documenter-dark .file-cta { + background-color: #ecf0f1; + color: #343c3d; } + html.theme--documenter-dark .file-name { + border-color: #5e6d6f; + border-style: solid; + border-width: 1px 1px 1px 0; + display: block; + max-width: 16em; + overflow: hidden; + text-align: left; + text-overflow: ellipsis; } + html.theme--documenter-dark .file-icon { + align-items: center; + display: flex; + height: 1em; + justify-content: center; + margin-right: 0.5em; + width: 1em; } + html.theme--documenter-dark .file-icon .fa { + font-size: 14px; } + html.theme--documenter-dark .label { + color: #282f2f; + display: block; + font-size: 15px; + font-weight: 700; } + html.theme--documenter-dark .label:not(:last-child) { + margin-bottom: 0.5em; } + html.theme--documenter-dark .label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.label { + font-size: 0.85em; } + html.theme--documenter-dark .label.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .label.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .help { + display: block; + font-size: 0.85em; + margin-top: 0.25rem; } + html.theme--documenter-dark .help.is-white { + color: white; } + html.theme--documenter-dark .help.is-black { + color: #0a0a0a; } + html.theme--documenter-dark .help.is-light { + color: #ecf0f1; } + html.theme--documenter-dark .help.is-dark, html.theme--documenter-dark .content kbd.help { + color: #282f2f; } + html.theme--documenter-dark .help.is-primary, html.theme--documenter-dark .docstring > section > a.help.docs-sourcelink { + color: #375a7f; } + html.theme--documenter-dark .help.is-link { + color: #1abc9c; } + html.theme--documenter-dark .help.is-info { + color: #024c7d; } + html.theme--documenter-dark .help.is-success { + color: #008438; } + html.theme--documenter-dark .help.is-warning { + color: #ad8100; } + html.theme--documenter-dark .help.is-danger { + color: #9e1b0d; } + html.theme--documenter-dark .field:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .field.has-addons { + display: flex; + justify-content: flex-start; } + html.theme--documenter-dark .field.has-addons .control:not(:last-child) { + margin-right: -1px; } + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .button, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .input, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .select select { + border-radius: 0; } + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .button, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .input, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .select select { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .button, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .input, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .select select { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):hover, html.theme--documenter-dark .field.has-addons .control .button.is-hovered:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input.is-hovered:not([disabled]), + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-hovered:not([disabled]), + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-hovered:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select.is-hovered:not([disabled]) { + z-index: 2; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus, html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]), html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active, html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]), + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]), + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]), + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]), + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]) { + z-index: 3; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus:hover, html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]):hover, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active:hover, html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]):hover { + z-index: 4; } + html.theme--documenter-dark .field.has-addons .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .field.has-addons.has-addons-centered { + justify-content: center; } + html.theme--documenter-dark .field.has-addons.has-addons-right { + justify-content: flex-end; } + html.theme--documenter-dark .field.has-addons.has-addons-fullwidth .control { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .field.is-grouped { + display: flex; + justify-content: flex-start; } + html.theme--documenter-dark .field.is-grouped > .control { + flex-shrink: 0; } + html.theme--documenter-dark .field.is-grouped > .control:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + html.theme--documenter-dark .field.is-grouped > .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .field.is-grouped.is-grouped-centered { + justify-content: center; } + html.theme--documenter-dark .field.is-grouped.is-grouped-right { + justify-content: flex-end; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline { + flex-wrap: wrap; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:last-child, html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:not(:last-child) { + margin-bottom: 0; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field.is-horizontal { + display: flex; } } + html.theme--documenter-dark .field-label .label { + font-size: inherit; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .field-label { + margin-bottom: 0.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field-label { + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + margin-right: 1.5rem; + text-align: right; } + html.theme--documenter-dark .field-label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.field-label { + font-size: 0.85em; + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-normal { + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-medium { + font-size: 1.25rem; + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-large { + font-size: 1.5rem; + padding-top: 0.375em; } } + html.theme--documenter-dark .field-body .field .field { + margin-bottom: 0; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field-body { + display: flex; + flex-basis: 0; + flex-grow: 5; + flex-shrink: 1; } + html.theme--documenter-dark .field-body .field { + margin-bottom: 0; } + html.theme--documenter-dark .field-body > .field { + flex-shrink: 1; } + html.theme--documenter-dark .field-body > .field:not(.is-narrow) { + flex-grow: 1; } + html.theme--documenter-dark .field-body > .field:not(:last-child) { + margin-right: 0.75rem; } } + html.theme--documenter-dark .control { + box-sizing: border-box; + clear: both; + font-size: 15px; + position: relative; + text-align: left; } + html.theme--documenter-dark .control.has-icons-left .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select:focus ~ .icon { + color: #5e6d6f; } + html.theme--documenter-dark .control.has-icons-left .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-small ~ .icon { + font-size: 0.85em; } + html.theme--documenter-dark .control.has-icons-left .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-medium ~ .icon { + font-size: 1.25rem; } + html.theme--documenter-dark .control.has-icons-left .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-large ~ .icon { + font-size: 1.5rem; } + html.theme--documenter-dark .control.has-icons-left .icon, html.theme--documenter-dark .control.has-icons-right .icon { + color: #dbdee0; + height: 2.25em; + pointer-events: none; + position: absolute; + top: 0; + width: 2.25em; + z-index: 4; } + html.theme--documenter-dark .control.has-icons-left .input, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input, + html.theme--documenter-dark .control.has-icons-left .select select { + padding-left: 2.25em; } + html.theme--documenter-dark .control.has-icons-left .icon.is-left { + left: 0; } + html.theme--documenter-dark .control.has-icons-right .input, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input, + html.theme--documenter-dark .control.has-icons-right .select select { + padding-right: 2.25em; } + html.theme--documenter-dark .control.has-icons-right .icon.is-right { + right: 0; } + html.theme--documenter-dark .control.is-loading::after { + position: absolute !important; + right: 0.625em; + top: 0.625em; + z-index: 4; } + html.theme--documenter-dark .control.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.85em; } + html.theme--documenter-dark .control.is-loading.is-medium:after { + font-size: 1.25rem; } + html.theme--documenter-dark .control.is-loading.is-large:after { + font-size: 1.5rem; } + html.theme--documenter-dark .breadcrumb { + font-size: 15px; + white-space: nowrap; } + html.theme--documenter-dark .breadcrumb a { + align-items: center; + color: #1abc9c; + display: flex; + justify-content: center; + padding: 0 0.75em; } + html.theme--documenter-dark .breadcrumb a:hover { + color: #1dd2af; } + html.theme--documenter-dark .breadcrumb li { + align-items: center; + display: flex; } + html.theme--documenter-dark .breadcrumb li:first-child a { + padding-left: 0; } + html.theme--documenter-dark .breadcrumb li.is-active a { + color: #f2f2f2; + cursor: default; + pointer-events: none; } + html.theme--documenter-dark .breadcrumb li + li::before { + color: #8c9b9d; + content: "\0002f"; } + html.theme--documenter-dark .breadcrumb ul, + html.theme--documenter-dark .breadcrumb ol { + align-items: flex-start; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .breadcrumb .icon:first-child { + margin-right: 0.5em; } + html.theme--documenter-dark .breadcrumb .icon:last-child { + margin-left: 0.5em; } + html.theme--documenter-dark .breadcrumb.is-centered ol, + html.theme--documenter-dark .breadcrumb.is-centered ul { + justify-content: center; } + html.theme--documenter-dark .breadcrumb.is-right ol, + html.theme--documenter-dark .breadcrumb.is-right ul { + justify-content: flex-end; } + html.theme--documenter-dark .breadcrumb.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.breadcrumb { + font-size: 0.85em; } + html.theme--documenter-dark .breadcrumb.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .breadcrumb.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .breadcrumb.has-arrow-separator li + li::before { + content: "\02192"; } + html.theme--documenter-dark .breadcrumb.has-bullet-separator li + li::before { + content: "\02022"; } + html.theme--documenter-dark .breadcrumb.has-dot-separator li + li::before { + content: "\000b7"; } + html.theme--documenter-dark .breadcrumb.has-succeeds-separator li + li::before { + content: "\0227B"; } + html.theme--documenter-dark .card { + background-color: white; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #fff; + max-width: 100%; + position: relative; } + html.theme--documenter-dark .card-header { + background-color: transparent; + align-items: stretch; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + display: flex; } + html.theme--documenter-dark .card-header-title { + align-items: center; + color: #f2f2f2; + display: flex; + flex-grow: 1; + font-weight: 700; + padding: 0.75rem; } + html.theme--documenter-dark .card-header-title.is-centered { + justify-content: center; } + html.theme--documenter-dark .card-header-icon { + align-items: center; + cursor: pointer; + display: flex; + justify-content: center; + padding: 0.75rem; } + html.theme--documenter-dark .card-image { + display: block; + position: relative; } + html.theme--documenter-dark .card-content { + background-color: transparent; + padding: 1.5rem; } + html.theme--documenter-dark .card-footer { + background-color: transparent; + border-top: 1px solid #5e6d6f; + align-items: stretch; + display: flex; } + html.theme--documenter-dark .card-footer-item { + align-items: center; + display: flex; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + justify-content: center; + padding: 0.75rem; } + html.theme--documenter-dark .card-footer-item:not(:last-child) { + border-right: 1px solid #5e6d6f; } + html.theme--documenter-dark .card .media:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .dropdown { + display: inline-flex; + position: relative; + vertical-align: top; } + html.theme--documenter-dark .dropdown.is-active .dropdown-menu, html.theme--documenter-dark .dropdown.is-hoverable:hover .dropdown-menu { + display: block; } + html.theme--documenter-dark .dropdown.is-right .dropdown-menu { + left: auto; + right: 0; } + html.theme--documenter-dark .dropdown.is-up .dropdown-menu { + bottom: 100%; + padding-bottom: 4px; + padding-top: initial; + top: auto; } + html.theme--documenter-dark .dropdown-menu { + display: none; + left: 0; + min-width: 12rem; + padding-top: 4px; + position: absolute; + top: 100%; + z-index: 20; } + html.theme--documenter-dark .dropdown-content { + background-color: #282f2f; + border-radius: 0.4em; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + html.theme--documenter-dark .dropdown-item { + color: #fff; + display: block; + font-size: 0.875rem; + line-height: 1.5; + padding: 0.375rem 1rem; + position: relative; } + html.theme--documenter-dark a.dropdown-item, + html.theme--documenter-dark button.dropdown-item { + padding-right: 3rem; + text-align: left; + white-space: nowrap; + width: 100%; } + html.theme--documenter-dark a.dropdown-item:hover, + html.theme--documenter-dark button.dropdown-item:hover { + background-color: #282f2f; + color: #0a0a0a; } + html.theme--documenter-dark a.dropdown-item.is-active, + html.theme--documenter-dark button.dropdown-item.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .dropdown-divider { + background-color: #5e6d6f; + border: none; + display: block; + height: 1px; + margin: 0.5rem 0; } + html.theme--documenter-dark .level { + align-items: center; + justify-content: space-between; } + html.theme--documenter-dark .level code { + border-radius: 0.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: 0.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: 0.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: 0.75rem; } } + html.theme--documenter-dark .level-left { + align-items: center; + justify-content: flex-start; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .level-left + .level-right { + margin-top: 1.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-left { + display: flex; } } + html.theme--documenter-dark .level-right { + align-items: center; + justify-content: flex-end; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-right { + display: flex; } } + html.theme--documenter-dark .list { + background-color: white; + border-radius: 0.4em; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .list-item { + display: block; + padding: 0.5em 1em; } + html.theme--documenter-dark .list-item:not(a) { + color: #fff; } + html.theme--documenter-dark .list-item:first-child { + border-top-left-radius: 0.4em; + border-top-right-radius: 0.4em; } + html.theme--documenter-dark .list-item:last-child { + border-bottom-left-radius: 0.4em; + border-bottom-right-radius: 0.4em; } + html.theme--documenter-dark .list-item:not(:last-child) { + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .list-item.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark a.list-item { + background-color: #282f2f; + cursor: pointer; } + html.theme--documenter-dark .media { + align-items: flex-start; + display: flex; + text-align: left; } + html.theme--documenter-dark .media .content:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .media .media { + border-top: 1px solid rgba(94, 109, 111, 0.5); + display: flex; + padding-top: 0.75rem; } + html.theme--documenter-dark .media .media .content:not(:last-child), + html.theme--documenter-dark .media .media .control:not(:last-child) { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .media .media .media { + padding-top: 0.5rem; } + html.theme--documenter-dark .media .media .media + .media { + margin-top: 0.5rem; } + html.theme--documenter-dark .media + .media { + border-top: 1px solid rgba(94, 109, 111, 0.5); + margin-top: 1rem; + padding-top: 1rem; } + html.theme--documenter-dark .media.is-large + .media { + margin-top: 1.5rem; + padding-top: 1.5rem; } + html.theme--documenter-dark .media-left, + html.theme--documenter-dark .media-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .media-left { + margin-right: 1rem; } + html.theme--documenter-dark .media-right { + margin-left: 1rem; } + html.theme--documenter-dark .media-content { + flex-basis: auto; + flex-grow: 1; + flex-shrink: 1; + text-align: left; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .media-content { + overflow-x: auto; } } + html.theme--documenter-dark .menu { + font-size: 15px; } + html.theme--documenter-dark .menu.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.menu { + font-size: 0.85em; } + html.theme--documenter-dark .menu.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .menu.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .menu-list { + line-height: 1.25; } + html.theme--documenter-dark .menu-list a { + border-radius: 3px; + color: #fff; + display: block; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .menu-list a:hover { + background-color: #282f2f; + color: #f2f2f2; } + html.theme--documenter-dark .menu-list a.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .menu-list li ul { + border-left: 1px solid #5e6d6f; + margin: 0.75em; + padding-left: 0.75em; } + html.theme--documenter-dark .menu-label { + color: white; + font-size: 0.75em; + letter-spacing: 0.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: 0.4em; + font-size: 15px; } + html.theme--documenter-dark .message strong { + color: currentColor; } + html.theme--documenter-dark .message a:not(.button):not(.tag):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + html.theme--documenter-dark .message.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.message { + font-size: 0.85em; } + html.theme--documenter-dark .message.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .message.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .message.is-white { + background-color: white; } + html.theme--documenter-dark .message.is-white .message-header { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .message.is-white .message-body { + border-color: white; + color: #4d4d4d; } + html.theme--documenter-dark .message.is-black { + background-color: #fafafa; } + html.theme--documenter-dark .message.is-black .message-header { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .message.is-black .message-body { + border-color: #0a0a0a; + color: #090909; } + html.theme--documenter-dark .message.is-light { + background-color: #f9fafb; } + html.theme--documenter-dark .message.is-light .message-header { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .message.is-light .message-body { + border-color: #ecf0f1; + color: #505050; } + html.theme--documenter-dark .message.is-dark, html.theme--documenter-dark .content kbd.message { + background-color: #f9fafa; } + html.theme--documenter-dark .message.is-dark .message-header, html.theme--documenter-dark .content kbd.message .message-header { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .message.is-dark .message-body, html.theme--documenter-dark .content kbd.message .message-body { + border-color: #282f2f; + color: #212526; } + html.theme--documenter-dark .message.is-primary, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink { + background-color: #f8fafc; } + html.theme--documenter-dark .message.is-primary .message-header, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-header { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .message.is-primary .message-body, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-body { + border-color: #375a7f; + color: #2b4159; } + html.theme--documenter-dark .message.is-link { + background-color: #f6fefc; } + html.theme--documenter-dark .message.is-link .message-header { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .message.is-link .message-body { + border-color: #1abc9c; + color: #0b2f28; } + html.theme--documenter-dark .message.is-info { + background-color: #f5fbff; } + html.theme--documenter-dark .message.is-info .message-header { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .message.is-info .message-body { + border-color: #024c7d; + color: #033659; } + html.theme--documenter-dark .message.is-success { + background-color: #f5fff9; } + html.theme--documenter-dark .message.is-success .message-header { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .message.is-success .message-body { + border-color: #008438; + color: #023518; } + html.theme--documenter-dark .message.is-warning { + background-color: #fffcf5; } + html.theme--documenter-dark .message.is-warning .message-header { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .message.is-warning .message-body { + border-color: #ad8100; + color: #3d2e03; } + html.theme--documenter-dark .message.is-danger { + background-color: #fef6f6; } + html.theme--documenter-dark .message.is-danger .message-header { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .message.is-danger .message-body { + border-color: #9e1b0d; + color: #7a170c; } + html.theme--documenter-dark .message-header { + align-items: center; + background-color: #fff; + border-radius: 0.4em 0.4em 0 0; + color: rgba(0, 0, 0, 0.7); + display: flex; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em 1em; + position: relative; } + html.theme--documenter-dark .message-header .delete { + flex-grow: 0; + flex-shrink: 0; + margin-left: 0.75em; } + html.theme--documenter-dark .message-header + .message-body { + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .message-body { + border-color: #5e6d6f; + border-radius: 0.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: white; } + html.theme--documenter-dark .message-body pre code { + background-color: transparent; } + html.theme--documenter-dark .modal { + align-items: center; + display: none; + flex-direction: column; + justify-content: center; + overflow: hidden; + position: fixed; + z-index: 40; } + html.theme--documenter-dark .modal.is-active { + display: flex; } + html.theme--documenter-dark .modal-background { + background-color: rgba(10, 10, 10, 0.86); } + html.theme--documenter-dark .modal-content, + html.theme--documenter-dark .modal-card { + margin: 0 20px; + max-height: calc(100vh - 160px); + overflow: auto; + position: relative; + width: 100%; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .modal-content, + html.theme--documenter-dark .modal-card { + margin: 0 auto; + max-height: calc(100vh - 40px); + width: 640px; } } + html.theme--documenter-dark .modal-close { + background: none; + height: 40px; + position: fixed; + right: 20px; + top: 20px; + width: 40px; } + html.theme--documenter-dark .modal-card { + display: flex; + flex-direction: column; + max-height: calc(100vh - 40px); + overflow: hidden; + -ms-overflow-y: visible; } + html.theme--documenter-dark .modal-card-head, + html.theme--documenter-dark .modal-card-foot { + align-items: center; + background-color: #282f2f; + display: flex; + flex-shrink: 0; + justify-content: flex-start; + padding: 20px; + position: relative; } + html.theme--documenter-dark .modal-card-head { + border-bottom: 1px solid #5e6d6f; + border-top-left-radius: 8px; + border-top-right-radius: 8px; } + html.theme--documenter-dark .modal-card-title { + color: #f2f2f2; + flex-grow: 1; + flex-shrink: 0; + font-size: 1.5rem; + line-height: 1; } + html.theme--documenter-dark .modal-card-foot { + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark .modal-card-foot .button:not(:last-child) { + margin-right: 0.5em; } + html.theme--documenter-dark .modal-card-body { + -webkit-overflow-scrolling: touch; + background-color: white; + 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: white; + 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: white; + color: #0a0a0a; } } + html.theme--documenter-dark .navbar.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link { + color: white; } + 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: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link::after { + border-color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-burger { + color: white; } + @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: white; } + 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: black; + color: white; } + 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: white; } + 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: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-dropdown a.navbar-item.is-active { + background-color: #0a0a0a; + color: white; } } + html.theme--documenter-dark .navbar.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link { + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link::after { + border-color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-burger { + color: #282f2f; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-light .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link { + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link::after { + border-color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-dropdown a.navbar-item.is-active { + background-color: #ecf0f1; + color: #282f2f; } } + html.theme--documenter-dark .navbar.is-dark, html.theme--documenter-dark .content kbd.navbar { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link { + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-burger, html.theme--documenter-dark .content kbd.navbar .navbar-burger { + color: #ecf0f1; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-dark .navbar-start > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-end > .navbar-item, + html.theme--documenter-dark .content kbd.navbar .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link { + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link::after, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-dropdown a.navbar-item.is-active { + background-color: #282f2f; + color: #ecf0f1; } } + html.theme--documenter-dark .navbar.is-primary, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-burger, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-primary .navbar-start > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-end > .navbar-item, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link::after, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { + background-color: #375a7f; + color: #fff; } } + html.theme--documenter-dark .navbar.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-link .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-dropdown a.navbar-item.is-active { + background-color: #1abc9c; + color: #fff; } } + html.theme--documenter-dark .navbar.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-info .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-dropdown a.navbar-item.is-active { + background-color: #024c7d; + color: #fff; } } + html.theme--documenter-dark .navbar.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-success .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-dropdown a.navbar-item.is-active { + background-color: #008438; + color: #fff; } } + html.theme--documenter-dark .navbar.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-warning .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-dropdown a.navbar-item.is-active { + background-color: #ad8100; + color: #fff; } } + html.theme--documenter-dark .navbar.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-danger .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-dropdown a.navbar-item.is-active { + background-color: #9e1b0d; + color: #fff; } } + html.theme--documenter-dark .navbar > .container { + align-items: stretch; + display: flex; + min-height: 4rem; + width: 100%; } + html.theme--documenter-dark .navbar.has-shadow { + box-shadow: 0 2px 0 0 #282f2f; } + html.theme--documenter-dark .navbar.is-fixed-bottom, html.theme--documenter-dark .navbar.is-fixed-top { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + html.theme--documenter-dark .navbar.is-fixed-bottom { + bottom: 0; } + html.theme--documenter-dark .navbar.is-fixed-bottom.has-shadow { + box-shadow: 0 -2px 0 0 #282f2f; } + html.theme--documenter-dark .navbar.is-fixed-top { + top: 0; } + html.theme--documenter-dark html.has-navbar-fixed-top, + html.theme--documenter-dark body.has-navbar-fixed-top { + padding-top: 4rem; } + html.theme--documenter-dark html.has-navbar-fixed-bottom, + html.theme--documenter-dark body.has-navbar-fixed-bottom { + padding-bottom: 4rem; } + html.theme--documenter-dark .navbar-brand, + html.theme--documenter-dark .navbar-tabs { + align-items: stretch; + display: flex; + flex-shrink: 0; + min-height: 4rem; } + html.theme--documenter-dark .navbar-brand a.navbar-item:focus, html.theme--documenter-dark .navbar-brand a.navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .navbar-tabs { + -webkit-overflow-scrolling: touch; + max-width: 100vw; + overflow-x: auto; + overflow-y: hidden; } + html.theme--documenter-dark .navbar-burger { + color: #fff; + cursor: pointer; + display: block; + height: 4rem; + position: relative; + width: 4rem; + margin-left: auto; } + html.theme--documenter-dark .navbar-burger span { + background-color: currentColor; + display: block; + height: 1px; + left: calc(50% - 8px); + position: absolute; + transform-origin: center; + transition-duration: 86ms; + transition-property: background-color, opacity, transform; + transition-timing-function: ease-out; + width: 16px; } + html.theme--documenter-dark .navbar-burger span:nth-child(1) { + top: calc(50% - 6px); } + html.theme--documenter-dark .navbar-burger span:nth-child(2) { + top: calc(50% - 1px); } + html.theme--documenter-dark .navbar-burger span:nth-child(3) { + top: calc(50% + 4px); } + html.theme--documenter-dark .navbar-burger:hover { + background-color: rgba(0, 0, 0, 0.05); } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(1) { + transform: translateY(5px) rotate(45deg); } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(2) { + opacity: 0; } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(3) { + transform: translateY(-5px) rotate(-45deg); } + html.theme--documenter-dark .navbar-menu { + display: none; } + html.theme--documenter-dark .navbar-item, + html.theme--documenter-dark .navbar-link { + color: #fff; + display: block; + line-height: 1.5; + padding: 0.5rem 0.75rem; + position: relative; } + html.theme--documenter-dark .navbar-item .icon:only-child, + html.theme--documenter-dark .navbar-link .icon:only-child { + margin-left: -0.25rem; + margin-right: -0.25rem; } + html.theme--documenter-dark a.navbar-item, + html.theme--documenter-dark .navbar-link { + cursor: pointer; } + html.theme--documenter-dark a.navbar-item:focus, html.theme--documenter-dark a.navbar-item:focus-within, html.theme--documenter-dark a.navbar-item:hover, html.theme--documenter-dark a.navbar-item.is-active, + html.theme--documenter-dark .navbar-link:focus, + html.theme--documenter-dark .navbar-link:focus-within, + html.theme--documenter-dark .navbar-link:hover, + html.theme--documenter-dark .navbar-link.is-active { + background-color: transparent; + color: #1abc9c; } + html.theme--documenter-dark .navbar-item { + display: block; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .navbar-item img { + max-height: 1.75rem; } + html.theme--documenter-dark .navbar-item.has-dropdown { + padding: 0; } + html.theme--documenter-dark .navbar-item.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .navbar-item.is-tab { + border-bottom: 1px solid transparent; + min-height: 4rem; + padding-bottom: calc(0.5rem - 1px); } + html.theme--documenter-dark .navbar-item.is-tab:focus, html.theme--documenter-dark .navbar-item.is-tab:hover { + background-color: transparent; + border-bottom-color: #1abc9c; } + html.theme--documenter-dark .navbar-item.is-tab.is-active { + background-color: transparent; + 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: 0.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: transparent; + color: #dbdee0; } + html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active { + background-color: transparent; + color: #1abc9c; } + html.theme--documenter-dark .navbar-burger { + display: none; } + html.theme--documenter-dark .navbar-item, + html.theme--documenter-dark .navbar-link { + align-items: center; + display: flex; } + html.theme--documenter-dark .navbar-item { + display: flex; } + html.theme--documenter-dark .navbar-item.has-dropdown { + align-items: stretch; } + html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-link::after { + transform: rotate(135deg) translate(0.25em, -0.25em); } + html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-dropdown { + border-bottom: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 8px 8px 0 0; + border-top: none; + bottom: 100%; + box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1); + top: auto; } + html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown { + display: block; } + .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed { + opacity: 1; + pointer-events: auto; + transform: translateY(0); } + html.theme--documenter-dark .navbar-menu { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .navbar-start { + justify-content: flex-start; + margin-right: auto; } + html.theme--documenter-dark .navbar-end { + justify-content: flex-end; + margin-left: auto; } + html.theme--documenter-dark .navbar-dropdown { + background-color: #375a7f; + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + border-top: 1px solid rgba(0, 0, 0, 0.2); + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1); + display: none; + font-size: 0.875rem; + left: 0; + min-width: 100%; + position: absolute; + top: 100%; + z-index: 20; } + html.theme--documenter-dark .navbar-dropdown .navbar-item { + padding: 0.375rem 1rem; + white-space: nowrap; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item { + padding-right: 3rem; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item:focus, html.theme--documenter-dark .navbar-dropdown a.navbar-item:hover { + background-color: transparent; + color: #dbdee0; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item.is-active { + background-color: transparent; + 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: transparent; } + 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: transparent; } } + html.theme--documenter-dark .hero.is-fullheight-with-navbar { + min-height: calc(100vh - 4rem); } + html.theme--documenter-dark .pagination { + font-size: 15px; + margin: -0.25rem; } + html.theme--documenter-dark .pagination.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination { + font-size: 0.85em; } + html.theme--documenter-dark .pagination.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .pagination.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .pagination.is-rounded .pagination-previous, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous, + html.theme--documenter-dark .pagination.is-rounded .pagination-next, + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next { + padding-left: 1em; + padding-right: 1em; + border-radius: 290486px; } + html.theme--documenter-dark .pagination.is-rounded .pagination-link, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link { + border-radius: 290486px; } + html.theme--documenter-dark .pagination, + html.theme--documenter-dark .pagination-list { + align-items: center; + display: flex; + justify-content: center; + text-align: center; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark .pagination-ellipsis { + font-size: 1em; + justify-content: center; + margin: 0.25rem; + padding-left: 0.5em; + padding-right: 0.5em; + text-align: center; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-link { + border-color: #5e6d6f; + color: #1abc9c; + min-width: 2.25em; } + html.theme--documenter-dark .pagination-previous:hover, + html.theme--documenter-dark .pagination-next:hover, + html.theme--documenter-dark .pagination-link:hover { + border-color: #8c9b9d; + color: #1dd2af; } + html.theme--documenter-dark .pagination-previous:focus, + html.theme--documenter-dark .pagination-next:focus, + html.theme--documenter-dark .pagination-link:focus { + border-color: #8c9b9d; } + html.theme--documenter-dark .pagination-previous:active, + html.theme--documenter-dark .pagination-next:active, + html.theme--documenter-dark .pagination-link:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); } + html.theme--documenter-dark .pagination-previous[disabled], + html.theme--documenter-dark .pagination-next[disabled], + html.theme--documenter-dark .pagination-link[disabled] { + background-color: #dbdee0; + border-color: #dbdee0; + box-shadow: none; + color: #5e6d6f; + opacity: 0.5; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next { + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + html.theme--documenter-dark .pagination-link.is-current { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .pagination-ellipsis { + color: #8c9b9d; + pointer-events: none; } + html.theme--documenter-dark .pagination-list { + flex-wrap: wrap; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .pagination { + flex-wrap: wrap; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .pagination-list li { + flex-grow: 1; + flex-shrink: 1; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .pagination-list { + flex-grow: 1; + flex-shrink: 1; + justify-content: flex-start; + order: 1; } + html.theme--documenter-dark .pagination-previous { + order: 2; } + html.theme--documenter-dark .pagination-next { + order: 3; } + html.theme--documenter-dark .pagination { + justify-content: space-between; } + html.theme--documenter-dark .pagination.is-centered .pagination-previous { + order: 1; } + html.theme--documenter-dark .pagination.is-centered .pagination-list { + justify-content: center; + order: 2; } + html.theme--documenter-dark .pagination.is-centered .pagination-next { + order: 3; } + html.theme--documenter-dark .pagination.is-right .pagination-previous { + order: 1; } + html.theme--documenter-dark .pagination.is-right .pagination-next { + order: 2; } + html.theme--documenter-dark .pagination.is-right .pagination-list { + justify-content: flex-end; + order: 3; } } + html.theme--documenter-dark .panel { + font-size: 15px; } + html.theme--documenter-dark .panel:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .panel-heading, + html.theme--documenter-dark .panel-tabs, + html.theme--documenter-dark .panel-block { + border-bottom: 1px solid #5e6d6f; + border-left: 1px solid #5e6d6f; + border-right: 1px solid #5e6d6f; } + html.theme--documenter-dark .panel-heading:first-child, + html.theme--documenter-dark .panel-tabs:first-child, + html.theme--documenter-dark .panel-block:first-child { + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark .panel-heading { + background-color: #282f2f; + border-radius: 0.4em 0.4em 0 0; + color: #f2f2f2; + font-size: 1.25em; + font-weight: 300; + line-height: 1.25; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .panel-tabs { + align-items: flex-end; + display: flex; + font-size: 0.875em; + justify-content: center; } + html.theme--documenter-dark .panel-tabs a { + border-bottom: 1px solid #5e6d6f; + margin-bottom: -1px; + padding: 0.5em; } + html.theme--documenter-dark .panel-tabs a.is-active { + border-bottom-color: #343c3d; + color: #17a689; } + html.theme--documenter-dark .panel-list a { + color: #fff; } + html.theme--documenter-dark .panel-list a:hover { + color: #1abc9c; } + html.theme--documenter-dark .panel-block { + align-items: center; + color: #f2f2f2; + display: flex; + justify-content: flex-start; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .panel-block input[type="checkbox"] { + margin-right: 0.75em; } + html.theme--documenter-dark .panel-block > .control { + flex-grow: 1; + flex-shrink: 1; + width: 100%; } + html.theme--documenter-dark .panel-block.is-wrapped { + flex-wrap: wrap; } + html.theme--documenter-dark .panel-block.is-active { + border-left-color: #1abc9c; + color: #17a689; } + html.theme--documenter-dark .panel-block.is-active .panel-icon { + color: #1abc9c; } + html.theme--documenter-dark a.panel-block, + html.theme--documenter-dark label.panel-block { + cursor: pointer; } + html.theme--documenter-dark a.panel-block:hover, + html.theme--documenter-dark label.panel-block:hover { + background-color: #282f2f; } + html.theme--documenter-dark .panel-icon { + display: inline-block; + font-size: 14px; + height: 1em; + line-height: 1em; + text-align: center; + vertical-align: top; + width: 1em; + color: white; + margin-right: 0.75em; } + html.theme--documenter-dark .panel-icon .fa { + font-size: inherit; + line-height: inherit; } + html.theme--documenter-dark .tabs { + -webkit-overflow-scrolling: touch; + align-items: stretch; + display: flex; + font-size: 15px; + justify-content: space-between; + overflow: hidden; + overflow-x: auto; + white-space: nowrap; } + html.theme--documenter-dark .tabs a { + align-items: center; + border-bottom-color: #5e6d6f; + border-bottom-style: solid; + border-bottom-width: 1px; + color: #fff; + display: flex; + justify-content: center; + margin-bottom: -1px; + padding: 0.5em 1em; + vertical-align: top; } + html.theme--documenter-dark .tabs a:hover { + border-bottom-color: #f2f2f2; + color: #f2f2f2; } + html.theme--documenter-dark .tabs li { + display: block; } + html.theme--documenter-dark .tabs li.is-active a { + border-bottom-color: #1abc9c; + color: #1abc9c; } + html.theme--documenter-dark .tabs ul { + align-items: center; + border-bottom-color: #5e6d6f; + border-bottom-style: solid; + border-bottom-width: 1px; + display: flex; + flex-grow: 1; + flex-shrink: 0; + justify-content: flex-start; } + html.theme--documenter-dark .tabs ul.is-left { + padding-right: 0.75em; } + html.theme--documenter-dark .tabs ul.is-center { + flex: none; + justify-content: center; + padding-left: 0.75em; + padding-right: 0.75em; } + html.theme--documenter-dark .tabs ul.is-right { + justify-content: flex-end; + padding-left: 0.75em; } + html.theme--documenter-dark .tabs .icon:first-child { + margin-right: 0.5em; } + html.theme--documenter-dark .tabs .icon:last-child { + margin-left: 0.5em; } + html.theme--documenter-dark .tabs.is-centered ul { + justify-content: center; } + html.theme--documenter-dark .tabs.is-right ul { + justify-content: flex-end; } + html.theme--documenter-dark .tabs.is-boxed a { + border: 1px solid transparent; + border-radius: 0.4em 0.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: white; + border-color: #5e6d6f; + border-bottom-color: transparent !important; } + html.theme--documenter-dark .tabs.is-fullwidth li { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .tabs.is-toggle a { + border-color: #5e6d6f; + border-style: solid; + border-width: 1px; + margin-bottom: 0; + position: relative; } + html.theme--documenter-dark .tabs.is-toggle a:hover { + background-color: #282f2f; + border-color: #8c9b9d; + z-index: 2; } + html.theme--documenter-dark .tabs.is-toggle li + li { + margin-left: -1px; } + html.theme--documenter-dark .tabs.is-toggle li:first-child a { + border-radius: 0.4em 0 0 0.4em; } + html.theme--documenter-dark .tabs.is-toggle li:last-child a { + border-radius: 0 0.4em 0.4em 0; } + html.theme--documenter-dark .tabs.is-toggle li.is-active a { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; + z-index: 1; } + html.theme--documenter-dark .tabs.is-toggle ul { + border-bottom: none; } + html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:first-child a { + border-bottom-left-radius: 290486px; + border-top-left-radius: 290486px; + padding-left: 1.25em; } + html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:last-child a { + border-bottom-right-radius: 290486px; + border-top-right-radius: 290486px; + padding-right: 1.25em; } + html.theme--documenter-dark .tabs.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.tabs { + font-size: 0.85em; } + html.theme--documenter-dark .tabs.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .tabs.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .column { + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + padding: 0.75rem; } + .columns.is-mobile > html.theme--documenter-dark .column.is-narrow { + flex: none; } + .columns.is-mobile > html.theme--documenter-dark .column.is-full { + flex: none; + width: 100%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-three-quarters { + flex: none; + width: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-two-thirds { + flex: none; + width: 66.6666%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-half { + flex: none; + width: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-third { + flex: none; + width: 33.3333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-quarter { + flex: none; + width: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-fifth { + flex: none; + width: 20%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-two-fifths { + flex: none; + width: 40%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-three-fifths { + flex: none; + width: 60%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-four-fifths { + flex: none; + width: 80%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-quarters { + margin-left: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-thirds { + margin-left: 66.6666%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-half { + margin-left: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-third { + margin-left: 33.3333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-quarter { + margin-left: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-fifth { + margin-left: 20%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-fifths { + margin-left: 40%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-fifths { + margin-left: 60%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-four-fifths { + margin-left: 80%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-0 { + flex: none; + width: 0%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-0 { + margin-left: 0%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-1 { + flex: none; + width: 8.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-1 { + margin-left: 8.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-2 { + flex: none; + width: 16.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-2 { + margin-left: 16.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-3 { + flex: none; + width: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-3 { + margin-left: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-4 { + flex: none; + width: 33.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-4 { + margin-left: 33.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-5 { + flex: none; + width: 41.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-5 { + margin-left: 41.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-6 { + flex: none; + width: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-6 { + margin-left: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-7 { + flex: none; + width: 58.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-7 { + margin-left: 58.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-8 { + flex: none; + width: 66.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-8 { + margin-left: 66.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-9 { + flex: none; + width: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-9 { + margin-left: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-10 { + flex: none; + width: 83.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-10 { + margin-left: 83.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-11 { + flex: none; + width: 91.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-11 { + margin-left: 91.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-12 { + flex: none; + width: 100%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-12 { + margin-left: 100%; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .column.is-narrow-mobile { + flex: none; } + html.theme--documenter-dark .column.is-full-mobile { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-mobile { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-mobile { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-mobile { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-mobile { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-mobile { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-mobile { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-mobile { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-mobile { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-mobile { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-mobile { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-mobile { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-mobile { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-mobile { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-mobile { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-mobile { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-mobile { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-mobile { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-mobile { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-mobile { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-mobile { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-mobile { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-mobile { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-mobile { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-mobile { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-mobile { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-mobile { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-mobile { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-mobile { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-mobile { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-mobile { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-mobile { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-mobile { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-mobile { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-mobile { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-mobile { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-mobile { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-mobile { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-mobile { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-mobile { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-mobile { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-mobile { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-mobile { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-mobile { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-mobile { + margin-left: 100%; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .column.is-narrow, html.theme--documenter-dark .column.is-narrow-tablet { + flex: none; } + html.theme--documenter-dark .column.is-full, html.theme--documenter-dark .column.is-full-tablet { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters, html.theme--documenter-dark .column.is-three-quarters-tablet { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds, html.theme--documenter-dark .column.is-two-thirds-tablet { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half, html.theme--documenter-dark .column.is-half-tablet { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third, html.theme--documenter-dark .column.is-one-third-tablet { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter, html.theme--documenter-dark .column.is-one-quarter-tablet { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth, html.theme--documenter-dark .column.is-one-fifth-tablet { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths, html.theme--documenter-dark .column.is-two-fifths-tablet { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths, html.theme--documenter-dark .column.is-three-fifths-tablet { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths, html.theme--documenter-dark .column.is-four-fifths-tablet { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters, html.theme--documenter-dark .column.is-offset-three-quarters-tablet { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds, html.theme--documenter-dark .column.is-offset-two-thirds-tablet { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half, html.theme--documenter-dark .column.is-offset-half-tablet { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third, html.theme--documenter-dark .column.is-offset-one-third-tablet { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter, html.theme--documenter-dark .column.is-offset-one-quarter-tablet { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth, html.theme--documenter-dark .column.is-offset-one-fifth-tablet { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths, html.theme--documenter-dark .column.is-offset-two-fifths-tablet { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths, html.theme--documenter-dark .column.is-offset-three-fifths-tablet { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths, html.theme--documenter-dark .column.is-offset-four-fifths-tablet { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0, html.theme--documenter-dark .column.is-0-tablet { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0, html.theme--documenter-dark .column.is-offset-0-tablet { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1, html.theme--documenter-dark .column.is-1-tablet { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1, html.theme--documenter-dark .column.is-offset-1-tablet { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2, html.theme--documenter-dark .column.is-2-tablet { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2, html.theme--documenter-dark .column.is-offset-2-tablet { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3, html.theme--documenter-dark .column.is-3-tablet { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3, html.theme--documenter-dark .column.is-offset-3-tablet { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4, html.theme--documenter-dark .column.is-4-tablet { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4, html.theme--documenter-dark .column.is-offset-4-tablet { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5, html.theme--documenter-dark .column.is-5-tablet { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5, html.theme--documenter-dark .column.is-offset-5-tablet { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6, html.theme--documenter-dark .column.is-6-tablet { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6, html.theme--documenter-dark .column.is-offset-6-tablet { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7, html.theme--documenter-dark .column.is-7-tablet { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7, html.theme--documenter-dark .column.is-offset-7-tablet { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8, html.theme--documenter-dark .column.is-8-tablet { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8, html.theme--documenter-dark .column.is-offset-8-tablet { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9, html.theme--documenter-dark .column.is-9-tablet { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9, html.theme--documenter-dark .column.is-offset-9-tablet { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10, html.theme--documenter-dark .column.is-10-tablet { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10, html.theme--documenter-dark .column.is-offset-10-tablet { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11, html.theme--documenter-dark .column.is-11-tablet { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11, html.theme--documenter-dark .column.is-offset-11-tablet { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12, html.theme--documenter-dark .column.is-12-tablet { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12, html.theme--documenter-dark .column.is-offset-12-tablet { + margin-left: 100%; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .column.is-narrow-touch { + flex: none; } + html.theme--documenter-dark .column.is-full-touch { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-touch { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-touch { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-touch { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-touch { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-touch { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-touch { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-touch { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-touch { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-touch { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-touch { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-touch { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-touch { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-touch { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-touch { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-touch { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-touch { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-touch { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-touch { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-touch { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-touch { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-touch { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-touch { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-touch { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-touch { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-touch { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-touch { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-touch { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-touch { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-touch { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-touch { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-touch { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-touch { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-touch { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-touch { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-touch { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-touch { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-touch { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-touch { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-touch { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-touch { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-touch { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-touch { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-touch { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-touch { + margin-left: 100%; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .column.is-narrow-desktop { + flex: none; } + html.theme--documenter-dark .column.is-full-desktop { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-desktop { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-desktop { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-desktop { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-desktop { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-desktop { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-desktop { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-desktop { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-desktop { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-desktop { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-desktop { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-desktop { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-desktop { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-desktop { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-desktop { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-desktop { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-desktop { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-desktop { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-desktop { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-desktop { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-desktop { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-desktop { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-desktop { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-desktop { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-desktop { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-desktop { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-desktop { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-desktop { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-desktop { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-desktop { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-desktop { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-desktop { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-desktop { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-desktop { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-desktop { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-desktop { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-desktop { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-desktop { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-desktop { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-desktop { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-desktop { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-desktop { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-desktop { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-desktop { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-desktop { + margin-left: 100%; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .column.is-narrow-widescreen { + flex: none; } + html.theme--documenter-dark .column.is-full-widescreen { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-widescreen { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-widescreen { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-widescreen { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-widescreen { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-widescreen { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-widescreen { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-widescreen { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-widescreen { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-widescreen { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-widescreen { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-widescreen { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-widescreen { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-widescreen { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-widescreen { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-widescreen { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-widescreen { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-widescreen { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-widescreen { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-widescreen { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-widescreen { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-widescreen { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-widescreen { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-widescreen { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-widescreen { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-widescreen { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-widescreen { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-widescreen { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-widescreen { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-widescreen { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-widescreen { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-widescreen { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-widescreen { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-widescreen { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-widescreen { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-widescreen { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-widescreen { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-widescreen { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-widescreen { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-widescreen { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-widescreen { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-widescreen { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-widescreen { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-widescreen { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-widescreen { + margin-left: 100%; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .column.is-narrow-fullhd { + flex: none; } + html.theme--documenter-dark .column.is-full-fullhd { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-fullhd { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-fullhd { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-fullhd { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-fullhd { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-fullhd { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-fullhd { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-fullhd { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-fullhd { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-fullhd { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-fullhd { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-fullhd { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-fullhd { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-fullhd { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-fullhd { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-fullhd { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-fullhd { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-fullhd { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-fullhd { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-fullhd { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-fullhd { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-fullhd { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-fullhd { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-fullhd { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-fullhd { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-fullhd { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-fullhd { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-fullhd { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-fullhd { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-fullhd { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-fullhd { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-fullhd { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-fullhd { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-fullhd { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-fullhd { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-fullhd { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-fullhd { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-fullhd { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-fullhd { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-fullhd { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-fullhd { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-fullhd { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-fullhd { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-fullhd { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-fullhd { + margin-left: 100%; } } + html.theme--documenter-dark .columns { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + html.theme--documenter-dark .columns:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .columns:not(:last-child) { + margin-bottom: calc(1.5rem - 0.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: 0.25rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-1-mobile { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-1-tablet { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-1-tablet-only { + --columnGap: 0.25rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-1-touch { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-1-desktop { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-1-desktop-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-1-widescreen { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-1-widescreen-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-1-fullhd { + --columnGap: 0.25rem; } } + html.theme--documenter-dark .columns.is-variable.is-2 { + --columnGap: 0.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-2-mobile { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-2-tablet { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-2-tablet-only { + --columnGap: 0.5rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-2-touch { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-2-desktop { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-2-desktop-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-2-widescreen { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-2-widescreen-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-2-fullhd { + --columnGap: 0.5rem; } } + html.theme--documenter-dark .columns.is-variable.is-3 { + --columnGap: 0.75rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-3-mobile { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-3-tablet { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-3-tablet-only { + --columnGap: 0.75rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-3-touch { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-3-desktop { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-3-desktop-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-3-widescreen { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-3-widescreen-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-3-fullhd { + --columnGap: 0.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: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + html.theme--documenter-dark .tile.is-ancestor:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .tile.is-ancestor:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .tile.is-child { + margin: 0 !important; } + html.theme--documenter-dark .tile.is-parent { + padding: 0.75rem; } + html.theme--documenter-dark .tile.is-vertical { + flex-direction: column; } + html.theme--documenter-dark .tile.is-vertical > .tile.is-child:not(:last-child) { + margin-bottom: 1.5rem !important; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .tile:not(.is-child) { + display: flex; } + html.theme--documenter-dark .tile.is-1 { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .tile.is-2 { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .tile.is-3 { + flex: none; + width: 25%; } + html.theme--documenter-dark .tile.is-4 { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .tile.is-5 { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .tile.is-6 { + flex: none; + width: 50%; } + html.theme--documenter-dark .tile.is-7 { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .tile.is-8 { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .tile.is-9 { + flex: none; + width: 75%; } + html.theme--documenter-dark .tile.is-10 { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .tile.is-11 { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .tile.is-12 { + flex: none; + width: 100%; } } + html.theme--documenter-dark .hero { + align-items: stretch; + display: flex; + flex-direction: column; + justify-content: space-between; } + html.theme--documenter-dark .hero .navbar { + background: none; } + html.theme--documenter-dark .hero .tabs ul { + border-bottom: none; } + html.theme--documenter-dark .hero.is-white { + background-color: white; + 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: white; } } + html.theme--documenter-dark .hero.is-white .navbar-item, + html.theme--documenter-dark .hero.is-white .navbar-link { + color: rgba(10, 10, 10, 0.7); } + html.theme--documenter-dark .hero.is-white a.navbar-item:hover, html.theme--documenter-dark .hero.is-white a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-white .navbar-link:hover, + html.theme--documenter-dark .hero.is-white .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .tabs a { + color: #0a0a0a; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-white .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-white .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a { + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a:hover { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .hero.is-white.is-bold { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 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%, white 71%, white 100%); } } + html.theme--documenter-dark .hero.is-black { + background-color: #0a0a0a; + color: white; } + 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: white; } + 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: white; } + @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: black; + color: white; } + html.theme--documenter-dark .hero.is-black .tabs a { + color: white; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-black .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-black .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-black .tabs.is-boxed a, html.theme--documenter-dark .hero.is-black .tabs.is-toggle a { + color: white; } + 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: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-black.is-bold { + background-image: linear-gradient(141deg, black 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, black 0%, #0a0a0a 71%, #181616 100%); } } + html.theme--documenter-dark .hero.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-light strong { + color: inherit; } + html.theme--documenter-dark .hero.is-light .title { + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .subtitle { + color: rgba(40, 47, 47, 0.9); } + html.theme--documenter-dark .hero.is-light .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-light .subtitle strong { + color: #282f2f; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-light .navbar-menu { + background-color: #ecf0f1; } } + html.theme--documenter-dark .hero.is-light .navbar-item, + html.theme--documenter-dark .hero.is-light .navbar-link { + color: rgba(40, 47, 47, 0.7); } + html.theme--documenter-dark .hero.is-light a.navbar-item:hover, html.theme--documenter-dark .hero.is-light a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-light .navbar-link:hover, + html.theme--documenter-dark .hero.is-light .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .tabs a { + color: #282f2f; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-light .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-light .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a { + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a:hover { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-light.is-bold { + background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-light.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); } } + html.theme--documenter-dark .hero.is-dark, html.theme--documenter-dark .content kbd.hero { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-dark strong, + html.theme--documenter-dark .content kbd.hero strong { + color: inherit; } + html.theme--documenter-dark .hero.is-dark .title, html.theme--documenter-dark .content kbd.hero .title { + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .subtitle, html.theme--documenter-dark .content kbd.hero .subtitle { + color: rgba(236, 240, 241, 0.9); } + html.theme--documenter-dark .hero.is-dark .subtitle a:not(.button), html.theme--documenter-dark .content kbd.hero .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-dark .subtitle strong, + html.theme--documenter-dark .content kbd.hero .subtitle strong { + color: #ecf0f1; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-dark .navbar-menu, html.theme--documenter-dark .content kbd.hero .navbar-menu { + background-color: #282f2f; } } + html.theme--documenter-dark .hero.is-dark .navbar-item, html.theme--documenter-dark .content kbd.hero .navbar-item, + html.theme--documenter-dark .hero.is-dark .navbar-link, + html.theme--documenter-dark .content kbd.hero .navbar-link { + color: rgba(236, 240, 241, 0.7); } + html.theme--documenter-dark .hero.is-dark a.navbar-item:hover, html.theme--documenter-dark .content kbd.hero a.navbar-item:hover, html.theme--documenter-dark .hero.is-dark a.navbar-item.is-active, html.theme--documenter-dark .content kbd.hero a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-dark .navbar-link:hover, + html.theme--documenter-dark .content kbd.hero .navbar-link:hover, + html.theme--documenter-dark .hero.is-dark .navbar-link.is-active, + html.theme--documenter-dark .content kbd.hero .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .tabs a, html.theme--documenter-dark .content kbd.hero .tabs a { + color: #ecf0f1; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-dark .tabs a:hover, html.theme--documenter-dark .content kbd.hero .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-dark .tabs li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a { + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a:hover { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .hero.is-dark.is-bold, html.theme--documenter-dark .content kbd.hero.is-bold { + background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-dark.is-bold .navbar-menu, html.theme--documenter-dark .content kbd.hero.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); } } + html.theme--documenter-dark .hero.is-primary, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-primary strong, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink strong { + color: inherit; } + html.theme--documenter-dark .hero.is-primary .title, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .title { + color: #fff; } + html.theme--documenter-dark .hero.is-primary .subtitle, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-primary .subtitle a:not(.button), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-primary .subtitle strong, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-primary .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-menu { + background-color: #375a7f; } } + html.theme--documenter-dark .hero.is-primary .navbar-item, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-item, + html.theme--documenter-dark .hero.is-primary .navbar-link, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-primary a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, html.theme--documenter-dark .hero.is-primary a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-primary .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link:hover, + html.theme--documenter-dark .hero.is-primary .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .hero.is-primary .tabs a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-primary .tabs a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-primary .tabs li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .hero.is-primary.is-bold, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink { + background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-primary.is-bold .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu { + background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); } } + html.theme--documenter-dark .hero.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-link strong { + color: inherit; } + html.theme--documenter-dark .hero.is-link .title { + color: #fff; } + html.theme--documenter-dark .hero.is-link .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-link .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-link .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-link .navbar-menu { + background-color: #1abc9c; } } + html.theme--documenter-dark .hero.is-link .navbar-item, + html.theme--documenter-dark .hero.is-link .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-link a.navbar-item:hover, html.theme--documenter-dark .hero.is-link a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-link .navbar-link:hover, + html.theme--documenter-dark .hero.is-link .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .hero.is-link .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-link .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-link .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .hero.is-link.is-bold { + background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-link.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); } } + html.theme--documenter-dark .hero.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-info strong { + color: inherit; } + html.theme--documenter-dark .hero.is-info .title { + color: #fff; } + html.theme--documenter-dark .hero.is-info .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-info .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-info .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-info .navbar-menu { + background-color: #024c7d; } } + html.theme--documenter-dark .hero.is-info .navbar-item, + html.theme--documenter-dark .hero.is-info .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-info a.navbar-item:hover, html.theme--documenter-dark .hero.is-info a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-info .navbar-link:hover, + html.theme--documenter-dark .hero.is-info .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .hero.is-info .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-info .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-info .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .hero.is-info.is-bold { + background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-info.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); } } + html.theme--documenter-dark .hero.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-success strong { + color: inherit; } + html.theme--documenter-dark .hero.is-success .title { + color: #fff; } + html.theme--documenter-dark .hero.is-success .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-success .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-success .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-success .navbar-menu { + background-color: #008438; } } + html.theme--documenter-dark .hero.is-success .navbar-item, + html.theme--documenter-dark .hero.is-success .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-success a.navbar-item:hover, html.theme--documenter-dark .hero.is-success a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-success .navbar-link:hover, + html.theme--documenter-dark .hero.is-success .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .hero.is-success .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-success .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-success .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #008438; } + html.theme--documenter-dark .hero.is-success.is-bold { + background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-success.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); } } + html.theme--documenter-dark .hero.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-warning strong { + color: inherit; } + html.theme--documenter-dark .hero.is-warning .title { + color: #fff; } + html.theme--documenter-dark .hero.is-warning .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-warning .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-warning .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-warning .navbar-menu { + background-color: #ad8100; } } + html.theme--documenter-dark .hero.is-warning .navbar-item, + html.theme--documenter-dark .hero.is-warning .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-warning a.navbar-item:hover, html.theme--documenter-dark .hero.is-warning a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-warning .navbar-link:hover, + html.theme--documenter-dark .hero.is-warning .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .hero.is-warning .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-warning .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-warning .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .hero.is-warning.is-bold { + background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-warning.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); } } + html.theme--documenter-dark .hero.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-danger strong { + color: inherit; } + html.theme--documenter-dark .hero.is-danger .title { + color: #fff; } + html.theme--documenter-dark .hero.is-danger .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-danger .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-danger .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-danger .navbar-menu { + background-color: #9e1b0d; } } + html.theme--documenter-dark .hero.is-danger .navbar-item, + html.theme--documenter-dark .hero.is-danger .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-danger a.navbar-item:hover, html.theme--documenter-dark .hero.is-danger a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-danger .navbar-link:hover, + html.theme--documenter-dark .hero.is-danger .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .hero.is-danger .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-danger .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-danger .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .hero.is-danger.is-bold { + background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-danger.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); } } + html.theme--documenter-dark .hero.is-small .hero-body, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.hero .hero-body { + padding-bottom: 1.5rem; + padding-top: 1.5rem; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero.is-medium .hero-body { + padding-bottom: 9rem; + padding-top: 9rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero.is-large .hero-body { + padding-bottom: 18rem; + padding-top: 18rem; } } + html.theme--documenter-dark .hero.is-halfheight .hero-body, html.theme--documenter-dark .hero.is-fullheight .hero-body, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body { + align-items: center; + display: flex; } + html.theme--documenter-dark .hero.is-halfheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body > .container { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .hero.is-halfheight { + min-height: 50vh; } + html.theme--documenter-dark .hero.is-fullheight { + min-height: 100vh; } + html.theme--documenter-dark .hero-video { + overflow: hidden; } + html.theme--documenter-dark .hero-video video { + left: 50%; + min-height: 100%; + min-width: 100%; + position: absolute; + top: 50%; + transform: translate3d(-50%, -50%, 0); } + html.theme--documenter-dark .hero-video.is-transparent { + opacity: 0.3; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero-video { + display: none; } } + html.theme--documenter-dark .hero-buttons { + margin-top: 1.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero-buttons .button { + display: flex; } + html.theme--documenter-dark .hero-buttons .button:not(:last-child) { + margin-bottom: 0.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero-buttons { + display: flex; + justify-content: center; } + html.theme--documenter-dark .hero-buttons .button:not(:last-child) { + margin-right: 1.5rem; } } + html.theme--documenter-dark .hero-head, + html.theme--documenter-dark .hero-foot { + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .hero-body { + flex-grow: 1; + flex-shrink: 0; + padding: 3rem 1.5rem; } + html.theme--documenter-dark .section { + padding: 3rem 1.5rem; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .section.is-medium { + padding: 9rem 1.5rem; } + html.theme--documenter-dark .section.is-large { + padding: 18rem 1.5rem; } } + html.theme--documenter-dark .footer { + background-color: #282f2f; + padding: 3rem 1.5rem 6rem; } + html.theme--documenter-dark hr { + height: 1px; } + html.theme--documenter-dark h6 { + text-transform: uppercase; + letter-spacing: 0.5px; } + html.theme--documenter-dark .hero { + background-color: #343c3d; } + html.theme--documenter-dark a { + transition: all 200ms ease; } + html.theme--documenter-dark .button { + transition: all 200ms ease; + border-width: 1px; + color: white; } + 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: white; } + 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: white; + 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: white; } + 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: 0.4em; } + html.theme--documenter-dark .card .card-image img { + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .card .card-header { + box-shadow: none; + background-color: rgba(18, 18, 18, 0.2); + border-radius: 0.4em 0.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: white; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-light a:not(.button) { + color: #282f2f; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-dark a:not(.button), html.theme--documenter-dark .content kbd.notification a:not(.button) { + color: #ecf0f1; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-primary a:not(.button), html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-link a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-info a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-success a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-warning a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-danger a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .tag, html.theme--documenter-dark .content kbd, html.theme--documenter-dark .docstring > section > a.docs-sourcelink { + border-radius: 0.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: white; } + html.theme--documenter-dark .message-body { + border-width: 1px; + border-color: #343c3d; } + html.theme--documenter-dark .navbar { + border-radius: 0.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 0.4em 0.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: transparent; } + html.theme--documenter-dark .hero.is-black .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-light .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + 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: transparent; } + 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: transparent; } + html.theme--documenter-dark .hero.is-link .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-info .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-success .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-warning .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-danger .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark h1 .docs-heading-anchor, html.theme--documenter-dark h1 .docs-heading-anchor:hover, html.theme--documenter-dark h1 .docs-heading-anchor:visited, html.theme--documenter-dark h2 .docs-heading-anchor, html.theme--documenter-dark h2 .docs-heading-anchor:hover, html.theme--documenter-dark h2 .docs-heading-anchor:visited, html.theme--documenter-dark h3 .docs-heading-anchor, html.theme--documenter-dark h3 .docs-heading-anchor:hover, html.theme--documenter-dark h3 .docs-heading-anchor:visited, html.theme--documenter-dark h4 .docs-heading-anchor, html.theme--documenter-dark h4 .docs-heading-anchor:hover, html.theme--documenter-dark h4 .docs-heading-anchor:visited, html.theme--documenter-dark h5 .docs-heading-anchor, html.theme--documenter-dark h5 .docs-heading-anchor:hover, html.theme--documenter-dark h5 .docs-heading-anchor:visited, html.theme--documenter-dark h6 .docs-heading-anchor, html.theme--documenter-dark h6 .docs-heading-anchor:hover, html.theme--documenter-dark h6 .docs-heading-anchor:visited { + color: #f2f2f2; } + html.theme--documenter-dark h1 .docs-heading-anchor-permalink, html.theme--documenter-dark h2 .docs-heading-anchor-permalink, html.theme--documenter-dark h3 .docs-heading-anchor-permalink, html.theme--documenter-dark h4 .docs-heading-anchor-permalink, html.theme--documenter-dark h5 .docs-heading-anchor-permalink, html.theme--documenter-dark h6 .docs-heading-anchor-permalink { + visibility: hidden; + vertical-align: middle; + margin-left: 0.5em; + font-size: 0.7rem; } + html.theme--documenter-dark h1 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h2 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h3 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h4 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h5 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h6 .docs-heading-anchor-permalink::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f0c1"; } + html.theme--documenter-dark h1:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h2:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h3:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h4:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h5:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h6:hover .docs-heading-anchor-permalink { + visibility: visible; } + html.theme--documenter-dark .docs-light-only { + display: none !important; } + html.theme--documenter-dark pre { + position: relative; + overflow: hidden; } + html.theme--documenter-dark pre code, html.theme--documenter-dark pre code.hljs { + padding: 0 0.75rem !important; + overflow: auto; + display: block; } + html.theme--documenter-dark pre code:first-of-type, html.theme--documenter-dark pre code.hljs:first-of-type { + padding-top: 0.5rem !important; } + html.theme--documenter-dark pre code:last-of-type, html.theme--documenter-dark pre code.hljs:last-of-type { + padding-bottom: 0.5rem !important; } + html.theme--documenter-dark pre .copy-button { + opacity: 0.2; + transition: opacity 0.2s; + position: absolute; + right: 0em; + top: 0em; + padding: 0.5em; + width: 2.5em; + height: 2.5em; + background: transparent; + border: none; + font-family: "Font Awesome 5 Free"; + color: #fff; + cursor: pointer; + text-align: center; } + html.theme--documenter-dark pre .copy-button:focus, html.theme--documenter-dark pre .copy-button:hover { + opacity: 1; + background: rgba(255, 255, 255, 0.1); + color: #1abc9c; } + html.theme--documenter-dark pre .copy-button.success { + color: #259a12; + opacity: 1; } + html.theme--documenter-dark pre .copy-button.error { + color: #cb3c33; + opacity: 1; } + html.theme--documenter-dark pre:hover .copy-button { + opacity: 1; } + html.theme--documenter-dark .admonition { + background-color: #282f2f; + border-style: solid; + border-width: 1px; + border-color: #5e6d6f; + border-radius: 0.4em; + font-size: 15px; } + html.theme--documenter-dark .admonition strong { + color: currentColor; } + html.theme--documenter-dark .admonition.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.admonition { + font-size: 0.85em; } + html.theme--documenter-dark .admonition.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .admonition.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .admonition.is-default { + background-color: #282f2f; + border-color: #5e6d6f; } + html.theme--documenter-dark .admonition.is-default > .admonition-header { + background-color: #5e6d6f; } + 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; } + 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; } + 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; } + 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; } + 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; } + html.theme--documenter-dark .admonition-header { + background-color: #5e6d6f; + align-items: center; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.5rem 0.75rem; + position: relative; } + html.theme--documenter-dark .admonition-header:before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + margin-right: 0.75rem; + content: "\f06a"; } + html.theme--documenter-dark .admonition-body { + color: #fff; + padding: 0.5rem 0.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: transparent; + border: 1px solid #5e6d6f; + box-shadow: none; + max-width: 100%; } + html.theme--documenter-dark .docstring > header { + display: flex; + flex-grow: 1; + align-items: stretch; + padding: 0.5rem 0.75rem; + background-color: #282f2f; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + box-shadow: none; + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .docstring > header code { + background-color: transparent; } + html.theme--documenter-dark .docstring > header .docstring-binding { + margin-right: 0.3em; } + html.theme--documenter-dark .docstring > header .docstring-category { + margin-left: 0.3em; } + html.theme--documenter-dark .docstring > section { + position: relative; + padding: 0.75rem 0.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: 0.375rem; + bottom: 0.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; + border-bottom: 3px solid #9e1b0d; + padding: 10px 35px; + text-align: center; + font-size: 15px; } + html.theme--documenter-dark .outdated-warning-overlay .outdated-warning-closer { + position: absolute; + top: calc(50% - 10px); + right: 18px; + cursor: pointer; + width: 12px; } + html.theme--documenter-dark .outdated-warning-overlay a { + color: #1abc9c; } + html.theme--documenter-dark .outdated-warning-overlay a:hover { + color: #1dd2af; } + html.theme--documenter-dark .content pre { + border: 1px solid #5e6d6f; } + html.theme--documenter-dark .content code { + font-weight: inherit; } + html.theme--documenter-dark .content a code { + color: #1abc9c; } + html.theme--documenter-dark .content h1 code, html.theme--documenter-dark .content h2 code, html.theme--documenter-dark .content h3 code, html.theme--documenter-dark .content h4 code, html.theme--documenter-dark .content h5 code, html.theme--documenter-dark .content h6 code { + color: #f2f2f2; } + html.theme--documenter-dark .content table { + display: block; + width: initial; + max-width: 100%; + overflow-x: auto; } + html.theme--documenter-dark .content blockquote > ul:first-child, html.theme--documenter-dark .content blockquote > ol:first-child, html.theme--documenter-dark .content .admonition-body > ul:first-child, html.theme--documenter-dark .content .admonition-body > ol:first-child { + margin-top: 0; } + html.theme--documenter-dark pre, html.theme--documenter-dark code { + font-variant-ligatures: no-contextual; } + html.theme--documenter-dark .breadcrumb a.is-disabled { + cursor: default; + pointer-events: none; } + html.theme--documenter-dark .breadcrumb a.is-disabled, html.theme--documenter-dark .breadcrumb a.is-disabled:hover { + color: #f2f2f2; } + html.theme--documenter-dark .hljs { + background: initial !important; } + html.theme--documenter-dark .katex .katex-mathml { + top: 0; + right: 0; } + html.theme--documenter-dark .katex-display, html.theme--documenter-dark mjx-container, html.theme--documenter-dark .MathJax_Display { + margin: 0.5em 0 !important; } + html.theme--documenter-dark html { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; } + html.theme--documenter-dark li.no-marker { + list-style: none; } + html.theme--documenter-dark #documenter .docs-main > article { + overflow-wrap: break-word; } + html.theme--documenter-dark #documenter .docs-main > article .math-container { + overflow-x: auto; + overflow-y: hidden; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-main { + max-width: 52rem; + margin-left: 20rem; + padding-right: 1rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main { + width: 100%; } + html.theme--documenter-dark #documenter .docs-main > article { + max-width: 52rem; + margin-left: auto; + margin-right: auto; + margin-bottom: 1rem; + padding: 0 1rem; } + html.theme--documenter-dark #documenter .docs-main > header, html.theme--documenter-dark #documenter .docs-main > nav { + max-width: 100%; + width: 100%; + margin: 0; } } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar { + background-color: #1f2424; + border-bottom: 1px solid #5e6d6f; + z-index: 2; + min-height: 4rem; + margin-bottom: 1rem; + display: flex; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .breadcrumb { + flex-grow: 1; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right { + display: flex; + white-space: nowrap; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-icon, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + display: inline-block; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label { + padding: 0; + margin-left: 0.3em; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button { + margin: auto 0 auto 1rem; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + font-size: 1.5rem; + margin: auto 0 auto 1rem; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar > * { + margin: auto 0; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main header.docs-navbar { + position: sticky; + top: 0; + padding: 0 1rem; + /* For Headroom.js */ + transition-property: top, box-shadow; + -webkit-transition-property: top, box-shadow; + /* Safari */ + transition-duration: 0.3s; + -webkit-transition-duration: 0.3s; + /* Safari */ } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--not-top { + box-shadow: 0.2rem 0rem 0.4rem #171717; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } + 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; + /* Safari */ } } + html.theme--documenter-dark #documenter .docs-main section.footnotes { + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-main section.footnotes li .tag:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .docstring > section > a.docs-sourcelink:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .content kbd:first-child, html.theme--documenter-dark .content #documenter .docs-main section.footnotes li kbd:first-child { + margin-right: 1em; + margin-bottom: 0.4em; } + html.theme--documenter-dark #documenter .docs-main .docs-footer { + display: flex; + flex-wrap: wrap; + margin-left: 0; + margin-right: 0; + border-top: 1px solid #5e6d6f; + padding-top: 1rem; + padding-bottom: 1rem; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main .docs-footer { + padding-left: 1rem; + padding-right: 1rem; } } + html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage, html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-prevpage { + flex-grow: 1; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage { + text-align: right; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .flexbox-break { + flex-basis: 100%; + height: 0; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .footer-message { + font-size: 0.8em; + margin: 0.5em auto 0 auto; + text-align: center; } + html.theme--documenter-dark #documenter .docs-sidebar { + display: flex; + flex-direction: column; + color: #fff; + background-color: #282f2f; + border-right: 1px solid #5e6d6f; + padding: 0; + flex: 0 0 18rem; + z-index: 5; + font-size: 15px; + position: fixed; + left: -18rem; + width: 18rem; + height: 100%; + transition: left 0.3s; + /* Setting up a nicer theme style for the scrollbar */ } + html.theme--documenter-dark #documenter .docs-sidebar.visible { + left: 0; + box-shadow: 0.4rem 0rem 0.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; + /* Managing collapsible submenus */ } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li > .tocitem { + font-weight: bold; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li li { + font-size: 14.25px; + margin-left: 1em; + border-left: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input.collapse-toggle { + display: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.collapsed { + display: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ ul.collapsed { + display: block; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem { + display: flex; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label { + flex-grow: 2; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron { + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; + font-size: 11.25px; + margin-left: 1rem; + margin-top: auto; + margin-bottom: auto; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f054"; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before { + content: "\f078"; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem { + display: block; + padding: 0.5rem 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem:hover { + color: #fff; + background: #282f2f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu a.tocitem:hover, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem:hover { + color: #fff; + background-color: #32393a; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active { + border-top: 1px solid #5e6d6f; + border-bottom: 1px solid #5e6d6f; + background-color: #1f2424; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover { + background-color: #1f2424; + color: #fff; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover { + background-color: #32393a; + color: #fff; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li.is-active:first-child { + border-top: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal { + margin: 0 0.5rem 0.5rem; + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal li { + font-size: 12.75px; + border-left: none; + margin-left: 0; + margin-top: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem { + width: 100%; + padding: 0; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before { + content: "⚬"; + margin-right: 0.4em; } + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search { + margin: auto; + margin-top: 0.5rem; + margin-bottom: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + width: 14.4rem; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar { + width: .3rem; + background: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #3b4445; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover { + background: #4e5a5c; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-sidebar { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar { + width: .3rem; + background: none; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #3b4445; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover { + background: #4e5a5c; } } + html.theme--documenter-dark #documenter .docs-main #documenter-search-info { + margin-bottom: 1rem; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results { + list-style-type: circle; + list-style-position: outside; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results li { + margin-left: 2rem; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results .docs-highlight { + background-color: yellow; } + html.theme--documenter-dark { + background-color: #1f2424; + font-size: 16px; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + html.theme--documenter-dark .ansi span.sgr1 { + font-weight: bolder; } + html.theme--documenter-dark .ansi span.sgr2 { + font-weight: lighter; } + html.theme--documenter-dark .ansi span.sgr3 { + font-style: italic; } + html.theme--documenter-dark .ansi span.sgr4 { + text-decoration: underline; } + html.theme--documenter-dark .ansi span.sgr7 { + color: #1f2424; + background-color: #fff; } + html.theme--documenter-dark .ansi span.sgr8 { + color: transparent; } + html.theme--documenter-dark .ansi span.sgr8 span { + color: transparent; } + html.theme--documenter-dark .ansi span.sgr9 { + text-decoration: line-through; } + html.theme--documenter-dark .ansi span.sgr30 { + color: #242424; } + html.theme--documenter-dark .ansi span.sgr31 { + color: #f6705f; } + html.theme--documenter-dark .ansi span.sgr32 { + color: #4fb43a; } + html.theme--documenter-dark .ansi span.sgr33 { + color: #f4c72f; } + html.theme--documenter-dark .ansi span.sgr34 { + color: #7587f0; } + html.theme--documenter-dark .ansi span.sgr35 { + color: #bc89d3; } + html.theme--documenter-dark .ansi span.sgr36 { + color: #49b6ca; } + html.theme--documenter-dark .ansi span.sgr37 { + color: #b3bdbe; } + html.theme--documenter-dark .ansi span.sgr40 { + background-color: #242424; } + html.theme--documenter-dark .ansi span.sgr41 { + background-color: #f6705f; } + html.theme--documenter-dark .ansi span.sgr42 { + background-color: #4fb43a; } + html.theme--documenter-dark .ansi span.sgr43 { + background-color: #f4c72f; } + html.theme--documenter-dark .ansi span.sgr44 { + background-color: #7587f0; } + html.theme--documenter-dark .ansi span.sgr45 { + background-color: #bc89d3; } + html.theme--documenter-dark .ansi span.sgr46 { + background-color: #49b6ca; } + html.theme--documenter-dark .ansi span.sgr47 { + background-color: #b3bdbe; } + html.theme--documenter-dark .ansi span.sgr90 { + color: #92a0a2; } + html.theme--documenter-dark .ansi span.sgr91 { + color: #ff8674; } + html.theme--documenter-dark .ansi span.sgr92 { + color: #79d462; } + html.theme--documenter-dark .ansi span.sgr93 { + color: #ffe76b; } + html.theme--documenter-dark .ansi span.sgr94 { + color: #8a98ff; } + html.theme--documenter-dark .ansi span.sgr95 { + color: #d2a4e6; } + html.theme--documenter-dark .ansi span.sgr96 { + color: #6bc8db; } + html.theme--documenter-dark .ansi span.sgr97 { + color: #ecf0f1; } + html.theme--documenter-dark .ansi span.sgr100 { + background-color: #92a0a2; } + html.theme--documenter-dark .ansi span.sgr101 { + background-color: #ff8674; } + html.theme--documenter-dark .ansi span.sgr102 { + background-color: #79d462; } + html.theme--documenter-dark .ansi span.sgr103 { + background-color: #ffe76b; } + html.theme--documenter-dark .ansi span.sgr104 { + background-color: #8a98ff; } + html.theme--documenter-dark .ansi span.sgr105 { + background-color: #d2a4e6; } + html.theme--documenter-dark .ansi span.sgr106 { + background-color: #6bc8db; } + html.theme--documenter-dark .ansi span.sgr107 { + background-color: #ecf0f1; } + html.theme--documenter-dark code.language-julia-repl > span.hljs-meta { + color: #4fb43a; + font-weight: bolder; } + html.theme--documenter-dark .hljs { + background: #2b2b2b; + color: #f8f8f2; } + html.theme--documenter-dark .hljs-comment, + html.theme--documenter-dark .hljs-quote { + color: #d4d0ab; } + html.theme--documenter-dark .hljs-variable, + html.theme--documenter-dark .hljs-template-variable, + html.theme--documenter-dark .hljs-tag, + html.theme--documenter-dark .hljs-name, + html.theme--documenter-dark .hljs-selector-id, + html.theme--documenter-dark .hljs-selector-class, + html.theme--documenter-dark .hljs-regexp, + html.theme--documenter-dark .hljs-deletion { + color: #ffa07a; } + html.theme--documenter-dark .hljs-number, + html.theme--documenter-dark .hljs-built_in, + html.theme--documenter-dark .hljs-literal, + html.theme--documenter-dark .hljs-type, + html.theme--documenter-dark .hljs-params, + html.theme--documenter-dark .hljs-meta, + html.theme--documenter-dark .hljs-link { + color: #f5ab35; } + html.theme--documenter-dark .hljs-attribute { + color: #ffd700; } + html.theme--documenter-dark .hljs-string, + html.theme--documenter-dark .hljs-symbol, + html.theme--documenter-dark .hljs-bullet, + html.theme--documenter-dark .hljs-addition { + color: #abe338; } + html.theme--documenter-dark .hljs-title, + html.theme--documenter-dark .hljs-section { + color: #00e0e0; } + html.theme--documenter-dark .hljs-keyword, + html.theme--documenter-dark .hljs-selector-tag { + color: #dcc6e0; } + html.theme--documenter-dark .hljs-emphasis { + font-style: italic; } + html.theme--documenter-dark .hljs-strong { + font-weight: bold; } + @media screen and (-ms-high-contrast: active) { + html.theme--documenter-dark .hljs-addition, + html.theme--documenter-dark .hljs-attribute, + html.theme--documenter-dark .hljs-built_in, + html.theme--documenter-dark .hljs-bullet, + html.theme--documenter-dark .hljs-comment, + html.theme--documenter-dark .hljs-link, + html.theme--documenter-dark .hljs-literal, + html.theme--documenter-dark .hljs-meta, + html.theme--documenter-dark .hljs-number, + html.theme--documenter-dark .hljs-params, + html.theme--documenter-dark .hljs-string, + html.theme--documenter-dark .hljs-symbol, + html.theme--documenter-dark .hljs-type, + html.theme--documenter-dark .hljs-quote { + color: highlight; } + html.theme--documenter-dark .hljs-keyword, + html.theme--documenter-dark .hljs-selector-tag { + font-weight: bold; } } + html.theme--documenter-dark .hljs-subst { + color: #f8f8f2; } diff --git a/previews/PR300/assets/themes/documenter-light.css b/previews/PR300/assets/themes/documenter-light.css new file mode 100644 index 000000000..9595d5b8e --- /dev/null +++ b/previews/PR300/assets/themes/documenter-light.css @@ -0,0 +1,7738 @@ +@charset "UTF-8"; +/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */ +@keyframes spinAround { + from { + transform: rotate(0deg); } + to { + transform: rotate(359deg); } } + +.tabs, .pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis, .breadcrumb, .file, .button, .is-unselectable, .modal-close, .delete { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +.navbar-link:not(.is-arrowless)::after, .select:not(.is-multiple):not(.is-loading)::after { + border: 3px solid transparent; + border-radius: 2px; + border-right: 0; + border-top: 0; + content: " "; + display: block; + height: 0.625em; + margin-top: -0.4375em; + pointer-events: none; + position: absolute; + top: 50%; + transform: rotate(-45deg); + transform-origin: center; + width: 0.625em; } + +.admonition:not(:last-child), .tabs:not(:last-child), .message:not(:last-child), .list:not(:last-child), .level:not(:last-child), .breadcrumb:not(:last-child), .highlight:not(:last-child), .block:not(:last-child), .title:not(:last-child), +.subtitle:not(:last-child), .table-container:not(:last-child), .table:not(:last-child), .progress:not(:last-child), .notification:not(:last-child), .content:not(:last-child), .box:not(:last-child) { + margin-bottom: 1.5rem; } + +.modal-close, .delete { + -moz-appearance: none; + -webkit-appearance: none; + background-color: rgba(10, 10, 10, 0.2); + border: none; + border-radius: 290486px; + cursor: pointer; + pointer-events: auto; + display: inline-block; + flex-grow: 0; + flex-shrink: 0; + font-size: 0; + height: 20px; + max-height: 20px; + max-width: 20px; + min-height: 20px; + min-width: 20px; + outline: none; + position: relative; + vertical-align: top; + width: 20px; } + .modal-close::before, .delete::before, .modal-close::after, .delete::after { + background-color: white; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + .modal-close::before, .delete::before { + height: 2px; + width: 50%; } + .modal-close::after, .delete::after { + height: 50%; + width: 2px; } + .modal-close:hover, .delete:hover, .modal-close:focus, .delete:focus { + background-color: rgba(10, 10, 10, 0.3); } + .modal-close:active, .delete:active { + background-color: rgba(10, 10, 10, 0.4); } + .is-small.modal-close, #documenter .docs-sidebar form.docs-search > input.modal-close, .is-small.delete, #documenter .docs-sidebar form.docs-search > input.delete { + height: 16px; + max-height: 16px; + max-width: 16px; + min-height: 16px; + min-width: 16px; + width: 16px; } + .is-medium.modal-close, .is-medium.delete { + height: 24px; + max-height: 24px; + max-width: 24px; + min-height: 24px; + min-width: 24px; + width: 24px; } + .is-large.modal-close, .is-large.delete { + height: 32px; + max-height: 32px; + max-width: 32px; + min-height: 32px; + min-width: 32px; + width: 32px; } + +.control.is-loading::after, .select.is-loading::after, .loader, .button.is-loading::after { + animation: spinAround 500ms infinite linear; + border: 2px solid #dbdbdb; + border-radius: 290486px; + border-right-color: transparent; + border-top-color: transparent; + content: ""; + display: block; + height: 1em; + position: relative; + width: 1em; } + +.hero-video, .modal-background, .modal, .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img, +.image.is-square .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img, +.image.is-1by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img, +.image.is-5by4 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img, +.image.is-4by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img, +.image.is-3by2 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img, +.image.is-5by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img, +.image.is-16by9 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img, +.image.is-2by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img, +.image.is-3by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img, +.image.is-4by5 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img, +.image.is-3by4 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img, +.image.is-2by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img, +.image.is-3by5 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img, +.image.is-9by16 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img, +.image.is-1by2 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img, +.image.is-1by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, .is-overlay { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; } + +.pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis, .file-cta, +.file-name, .select select, .textarea, .input, #documenter .docs-sidebar form.docs-search > input, .button { + -moz-appearance: none; + -webkit-appearance: none; + align-items: center; + border: 1px solid transparent; + border-radius: 4px; + box-shadow: none; + display: inline-flex; + font-size: 1rem; + height: 2.25em; + justify-content: flex-start; + line-height: 1.5; + padding-bottom: calc(0.375em - 1px); + padding-left: calc(0.625em - 1px); + padding-right: calc(0.625em - 1px); + padding-top: calc(0.375em - 1px); + position: relative; + vertical-align: top; } + .pagination-previous:focus, + .pagination-next:focus, + .pagination-link:focus, + .pagination-ellipsis:focus, .file-cta:focus, + .file-name:focus, .select select:focus, .textarea:focus, .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .button:focus, .is-focused.pagination-previous, + .is-focused.pagination-next, + .is-focused.pagination-link, + .is-focused.pagination-ellipsis, .is-focused.file-cta, + .is-focused.file-name, .select select.is-focused, .is-focused.textarea, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-focused.button, .pagination-previous:active, + .pagination-next:active, + .pagination-link:active, + .pagination-ellipsis:active, .file-cta:active, + .file-name:active, .select select:active, .textarea:active, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .button:active, .is-active.pagination-previous, + .is-active.pagination-next, + .is-active.pagination-link, + .is-active.pagination-ellipsis, .is-active.file-cta, + .is-active.file-name, .select select.is-active, .is-active.textarea, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .is-active.button { + outline: none; } + .pagination-previous[disabled], + .pagination-next[disabled], + .pagination-link[disabled], + .pagination-ellipsis[disabled], .file-cta[disabled], + .file-name[disabled], .select select[disabled], .textarea[disabled], .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], .button[disabled], fieldset[disabled] .pagination-previous, + fieldset[disabled] .pagination-next, + fieldset[disabled] .pagination-link, + fieldset[disabled] .pagination-ellipsis, fieldset[disabled] .file-cta, + fieldset[disabled] .file-name, fieldset[disabled] .select select, .select fieldset[disabled] select, fieldset[disabled] .textarea, fieldset[disabled] .input, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, fieldset[disabled] .button { + cursor: not-allowed; } + +/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */ +html, +body, +p, +ol, +ul, +li, +dl, +dt, +dd, +blockquote, +figure, +fieldset, +legend, +textarea, +pre, +iframe, +hr, +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + padding: 0; } + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: 100%; + font-weight: normal; } + +ul { + list-style: none; } + +button, +input, +select, +textarea { + margin: 0; } + +html { + box-sizing: border-box; } + +*, *::before, *::after { + box-sizing: inherit; } + +img, +embed, +iframe, +object, +video { + height: auto; + max-width: 100%; } + +audio { + max-width: 100%; } + +iframe { + border: 0; } + +table { + border-collapse: collapse; + border-spacing: 0; } + +td, +th { + padding: 0; } + td:not([align]), + th:not([align]) { + text-align: left; } + +html { + background-color: white; + font-size: 16px; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + +article, +aside, +figure, +footer, +header, +hgroup, +section { + display: block; } + +body, +button, +input, +select, +textarea { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; } + +code, +pre { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; } + +body { + color: #222222; + 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: #000000; + font-size: 0.875em; + font-weight: normal; + padding: 0.1em; } + +hr { + background-color: whitesmoke; + 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: 0.875em; } + +span { + font-style: inherit; + font-weight: inherit; } + +strong { + color: #222222; + font-weight: 700; } + +fieldset { + border: none; } + +pre { + -webkit-overflow-scrolling: touch; + background-color: whitesmoke; + color: #222222; + font-size: 0.875em; + overflow-x: auto; + padding: 1.25rem 1.5rem; + white-space: pre; + word-wrap: normal; } + pre code { + background-color: transparent; + color: currentColor; + font-size: 1em; + padding: 0; } + +table td, +table th { + vertical-align: top; } + table td:not([align]), + table th:not([align]) { + text-align: left; } + +table th { + color: #222222; } + +.is-clearfix::after { + clear: both; + content: " "; + display: table; } + +.is-pulled-left { + float: left !important; } + +.is-pulled-right { + float: right !important; } + +.is-clipped { + overflow: hidden !important; } + +.is-size-1 { + font-size: 3rem !important; } + +.is-size-2 { + font-size: 2.5rem !important; } + +.is-size-3 { + font-size: 2rem !important; } + +.is-size-4 { + font-size: 1.5rem !important; } + +.is-size-5 { + font-size: 1.25rem !important; } + +.is-size-6 { + font-size: 1rem !important; } + +.is-size-7, .docstring > section > a.docs-sourcelink { + font-size: 0.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: 0.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: 0.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: 0.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: 0.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: 0.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: 0.75rem !important; } } + +.has-text-centered { + text-align: center !important; } + +.has-text-justified { + text-align: justify !important; } + +.has-text-left { + text-align: left !important; } + +.has-text-right { + text-align: right !important; } + +@media screen and (max-width: 768px) { + .has-text-centered-mobile { + text-align: center !important; } } + +@media screen and (min-width: 769px), print { + .has-text-centered-tablet { + text-align: center !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-centered-tablet-only { + text-align: center !important; } } + +@media screen and (max-width: 1055px) { + .has-text-centered-touch { + text-align: center !important; } } + +@media screen and (min-width: 1056px) { + .has-text-centered-desktop { + text-align: center !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-centered-desktop-only { + text-align: center !important; } } + +@media screen and (min-width: 1216px) { + .has-text-centered-widescreen { + text-align: center !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-centered-widescreen-only { + text-align: center !important; } } + +@media screen and (min-width: 1408px) { + .has-text-centered-fullhd { + text-align: center !important; } } + +@media screen and (max-width: 768px) { + .has-text-justified-mobile { + text-align: justify !important; } } + +@media screen and (min-width: 769px), print { + .has-text-justified-tablet { + text-align: justify !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-justified-tablet-only { + text-align: justify !important; } } + +@media screen and (max-width: 1055px) { + .has-text-justified-touch { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) { + .has-text-justified-desktop { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-justified-desktop-only { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) { + .has-text-justified-widescreen { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-justified-widescreen-only { + text-align: justify !important; } } + +@media screen and (min-width: 1408px) { + .has-text-justified-fullhd { + text-align: justify !important; } } + +@media screen and (max-width: 768px) { + .has-text-left-mobile { + text-align: left !important; } } + +@media screen and (min-width: 769px), print { + .has-text-left-tablet { + text-align: left !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-left-tablet-only { + text-align: left !important; } } + +@media screen and (max-width: 1055px) { + .has-text-left-touch { + text-align: left !important; } } + +@media screen and (min-width: 1056px) { + .has-text-left-desktop { + text-align: left !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-left-desktop-only { + text-align: left !important; } } + +@media screen and (min-width: 1216px) { + .has-text-left-widescreen { + text-align: left !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-left-widescreen-only { + text-align: left !important; } } + +@media screen and (min-width: 1408px) { + .has-text-left-fullhd { + text-align: left !important; } } + +@media screen and (max-width: 768px) { + .has-text-right-mobile { + text-align: right !important; } } + +@media screen and (min-width: 769px), print { + .has-text-right-tablet { + text-align: right !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-right-tablet-only { + text-align: right !important; } } + +@media screen and (max-width: 1055px) { + .has-text-right-touch { + text-align: right !important; } } + +@media screen and (min-width: 1056px) { + .has-text-right-desktop { + text-align: right !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-right-desktop-only { + text-align: right !important; } } + +@media screen and (min-width: 1216px) { + .has-text-right-widescreen { + text-align: right !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-right-widescreen-only { + text-align: right !important; } } + +@media screen and (min-width: 1408px) { + .has-text-right-fullhd { + text-align: right !important; } } + +.is-capitalized { + text-transform: capitalize !important; } + +.is-lowercase { + text-transform: lowercase !important; } + +.is-uppercase { + text-transform: uppercase !important; } + +.is-italic { + font-style: italic !important; } + +.has-text-white { + color: white !important; } + +a.has-text-white:hover, a.has-text-white:focus { + color: #e6e6e6 !important; } + +.has-background-white { + background-color: white !important; } + +.has-text-black { + color: #0a0a0a !important; } + +a.has-text-black:hover, a.has-text-black:focus { + color: black !important; } + +.has-background-black { + background-color: #0a0a0a !important; } + +.has-text-light { + color: whitesmoke !important; } + +a.has-text-light:hover, a.has-text-light:focus { + color: #dbdbdb !important; } + +.has-background-light { + background-color: whitesmoke !important; } + +.has-text-dark { + color: #363636 !important; } + +a.has-text-dark:hover, a.has-text-dark:focus { + color: #1c1c1c !important; } + +.has-background-dark { + background-color: #363636 !important; } + +.has-text-primary { + color: #4eb5de !important; } + +a.has-text-primary:hover, a.has-text-primary:focus { + color: #27a1d2 !important; } + +.has-background-primary { + background-color: #4eb5de !important; } + +.has-text-link { + color: #2e63b8 !important; } + +a.has-text-link:hover, a.has-text-link:focus { + color: #244d8f !important; } + +.has-background-link { + background-color: #2e63b8 !important; } + +.has-text-info { + color: #209cee !important; } + +a.has-text-info:hover, a.has-text-info:focus { + color: #1081cb !important; } + +.has-background-info { + background-color: #209cee !important; } + +.has-text-success { + color: #22c35b !important; } + +a.has-text-success:hover, a.has-text-success:focus { + color: #1a9847 !important; } + +.has-background-success { + background-color: #22c35b !important; } + +.has-text-warning { + color: #ffdd57 !important; } + +a.has-text-warning:hover, a.has-text-warning:focus { + color: #ffd324 !important; } + +.has-background-warning { + background-color: #ffdd57 !important; } + +.has-text-danger { + color: #da0b00 !important; } + +a.has-text-danger:hover, a.has-text-danger:focus { + color: #a70800 !important; } + +.has-background-danger { + background-color: #da0b00 !important; } + +.has-text-black-bis { + color: #121212 !important; } + +.has-background-black-bis { + background-color: #121212 !important; } + +.has-text-black-ter { + color: #242424 !important; } + +.has-background-black-ter { + background-color: #242424 !important; } + +.has-text-grey-darker { + color: #363636 !important; } + +.has-background-grey-darker { + background-color: #363636 !important; } + +.has-text-grey-dark { + color: #4a4a4a !important; } + +.has-background-grey-dark { + background-color: #4a4a4a !important; } + +.has-text-grey { + color: #6b6b6b !important; } + +.has-background-grey { + background-color: #6b6b6b !important; } + +.has-text-grey-light { + color: #b5b5b5 !important; } + +.has-background-grey-light { + background-color: #b5b5b5 !important; } + +.has-text-grey-lighter { + color: #dbdbdb !important; } + +.has-background-grey-lighter { + background-color: #dbdbdb !important; } + +.has-text-white-ter { + color: whitesmoke !important; } + +.has-background-white-ter { + background-color: whitesmoke !important; } + +.has-text-white-bis { + color: #fafafa !important; } + +.has-background-white-bis { + background-color: #fafafa !important; } + +.has-text-weight-light { + font-weight: 300 !important; } + +.has-text-weight-normal { + font-weight: 400 !important; } + +.has-text-weight-medium { + font-weight: 500 !important; } + +.has-text-weight-semibold { + font-weight: 600 !important; } + +.has-text-weight-bold { + font-weight: 700 !important; } + +.is-family-primary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-secondary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-sans-serif { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-monospace { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-family-code { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-block { + display: block !important; } + +@media screen and (max-width: 768px) { + .is-block-mobile { + display: block !important; } } + +@media screen and (min-width: 769px), print { + .is-block-tablet { + display: block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-block-tablet-only { + display: block !important; } } + +@media screen and (max-width: 1055px) { + .is-block-touch { + display: block !important; } } + +@media screen and (min-width: 1056px) { + .is-block-desktop { + display: block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-block-desktop-only { + display: block !important; } } + +@media screen and (min-width: 1216px) { + .is-block-widescreen { + display: block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-block-widescreen-only { + display: block !important; } } + +@media screen and (min-width: 1408px) { + .is-block-fullhd { + display: block !important; } } + +.is-flex { + display: flex !important; } + +@media screen and (max-width: 768px) { + .is-flex-mobile { + display: flex !important; } } + +@media screen and (min-width: 769px), print { + .is-flex-tablet { + display: flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-flex-tablet-only { + display: flex !important; } } + +@media screen and (max-width: 1055px) { + .is-flex-touch { + display: flex !important; } } + +@media screen and (min-width: 1056px) { + .is-flex-desktop { + display: flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-flex-desktop-only { + display: flex !important; } } + +@media screen and (min-width: 1216px) { + .is-flex-widescreen { + display: flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-flex-widescreen-only { + display: flex !important; } } + +@media screen and (min-width: 1408px) { + .is-flex-fullhd { + display: flex !important; } } + +.is-inline { + display: inline !important; } + +@media screen and (max-width: 768px) { + .is-inline-mobile { + display: inline !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-tablet { + display: inline !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-tablet-only { + display: inline !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-touch { + display: inline !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-desktop { + display: inline !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-desktop-only { + display: inline !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-widescreen { + display: inline !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-widescreen-only { + display: inline !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-fullhd { + display: inline !important; } } + +.is-inline-block { + display: inline-block !important; } + +@media screen and (max-width: 768px) { + .is-inline-block-mobile { + display: inline-block !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-block-tablet { + display: inline-block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-block-tablet-only { + display: inline-block !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-block-touch { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-block-desktop { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-block-desktop-only { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-block-widescreen { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-block-widescreen-only { + display: inline-block !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-block-fullhd { + display: inline-block !important; } } + +.is-inline-flex { + display: inline-flex !important; } + +@media screen and (max-width: 768px) { + .is-inline-flex-mobile { + display: inline-flex !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-flex-tablet { + display: inline-flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-flex-tablet-only { + display: inline-flex !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-flex-touch { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-flex-desktop { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-flex-desktop-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-flex-widescreen { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-flex-widescreen-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-flex-fullhd { + display: inline-flex !important; } } + +.is-hidden { + display: none !important; } + +.is-sr-only { + border: none !important; + clip: rect(0, 0, 0, 0) !important; + height: 0.01em !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + white-space: nowrap !important; + width: 0.01em !important; } + +@media screen and (max-width: 768px) { + .is-hidden-mobile { + display: none !important; } } + +@media screen and (min-width: 769px), print { + .is-hidden-tablet { + display: none !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-hidden-tablet-only { + display: none !important; } } + +@media screen and (max-width: 1055px) { + .is-hidden-touch { + display: none !important; } } + +@media screen and (min-width: 1056px) { + .is-hidden-desktop { + display: none !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-hidden-desktop-only { + display: none !important; } } + +@media screen and (min-width: 1216px) { + .is-hidden-widescreen { + display: none !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-hidden-widescreen-only { + display: none !important; } } + +@media screen and (min-width: 1408px) { + .is-hidden-fullhd { + display: none !important; } } + +.is-invisible { + visibility: hidden !important; } + +@media screen and (max-width: 768px) { + .is-invisible-mobile { + visibility: hidden !important; } } + +@media screen and (min-width: 769px), print { + .is-invisible-tablet { + visibility: hidden !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-invisible-tablet-only { + visibility: hidden !important; } } + +@media screen and (max-width: 1055px) { + .is-invisible-touch { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) { + .is-invisible-desktop { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-invisible-desktop-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) { + .is-invisible-widescreen { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-invisible-widescreen-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1408px) { + .is-invisible-fullhd { + visibility: hidden !important; } } + +.is-marginless { + margin: 0 !important; } + +.is-paddingless { + padding: 0 !important; } + +.is-radiusless { + border-radius: 0 !important; } + +.is-shadowless { + box-shadow: none !important; } + +.is-relative { + position: relative !important; } + +.box { + background-color: white; + border-radius: 6px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #222222; + display: block; + padding: 1.25rem; } + +a.box:hover, a.box:focus { + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #2e63b8; } + +a.box:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #2e63b8; } + +.button { + background-color: white; + border-color: #dbdbdb; + border-width: 1px; + color: #363636; + cursor: pointer; + justify-content: center; + padding-bottom: calc(0.375em - 1px); + padding-left: 0.75em; + padding-right: 0.75em; + padding-top: calc(0.375em - 1px); + text-align: center; + white-space: nowrap; } + .button strong { + color: inherit; } + .button .icon, .button .icon.is-small, .button #documenter .docs-sidebar form.docs-search > input.icon, #documenter .docs-sidebar .button form.docs-search > input.icon, .button .icon.is-medium, .button .icon.is-large { + height: 1.5em; + width: 1.5em; } + .button .icon:first-child:not(:last-child) { + margin-left: calc(-0.375em - 1px); + margin-right: 0.1875em; } + .button .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: calc(-0.375em - 1px); } + .button .icon:first-child:last-child { + margin-left: calc(-0.375em - 1px); + margin-right: calc(-0.375em - 1px); } + .button:hover, .button.is-hovered { + border-color: #b5b5b5; + color: #363636; } + .button:focus, .button.is-focused { + border-color: #3c5dcd; + color: #363636; } + .button:focus:not(:active), .button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .button:active, .button.is-active { + border-color: #4a4a4a; + color: #363636; } + .button.is-text { + background-color: transparent; + border-color: transparent; + color: #222222; + text-decoration: underline; } + .button.is-text:hover, .button.is-text.is-hovered, .button.is-text:focus, .button.is-text.is-focused { + background-color: whitesmoke; + color: #222222; } + .button.is-text:active, .button.is-text.is-active { + background-color: #e8e8e8; + color: #222222; } + .button.is-text[disabled], fieldset[disabled] .button.is-text { + background-color: transparent; + border-color: transparent; + box-shadow: none; } + .button.is-white { + background-color: white; + 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: white; + border-color: transparent; + box-shadow: none; } + .button.is-white.is-inverted { + background-color: #0a0a0a; + color: white; } + .button.is-white.is-inverted:hover, .button.is-white.is-inverted.is-hovered { + background-color: black; } + .button.is-white.is-inverted[disabled], fieldset[disabled] .button.is-white.is-inverted { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; + color: white; } + .button.is-white.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + .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: white; + border-color: white; + color: #0a0a0a; } + .button.is-white.is-outlined.is-loading::after { + border-color: transparent transparent white white !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: white; + box-shadow: none; + color: white; } + .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: white; } + .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 white white !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: white; } + .button.is-black:hover, .button.is-black.is-hovered { + background-color: #040404; + border-color: transparent; + color: white; } + .button.is-black:focus, .button.is-black.is-focused { + border-color: transparent; + color: white; } + .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: black; + border-color: transparent; + color: white; } + .button.is-black[disabled], fieldset[disabled] .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; } + .button.is-black.is-inverted { + background-color: white; + 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: white; + border-color: transparent; + box-shadow: none; + color: #0a0a0a; } + .button.is-black.is-loading::after { + border-color: transparent transparent white white !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: white; } + .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 white white !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: white; + color: white; } + .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: white; + 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: white; + box-shadow: none; + color: white; } + .button.is-light { + background-color: whitesmoke; + border-color: transparent; + color: #363636; } + .button.is-light:hover, .button.is-light.is-hovered { + background-color: #eeeeee; + border-color: transparent; + color: #363636; } + .button.is-light:focus, .button.is-light.is-focused { + border-color: transparent; + color: #363636; } + .button.is-light:focus:not(:active), .button.is-light.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } + .button.is-light:active, .button.is-light.is-active { + background-color: #e8e8e8; + border-color: transparent; + color: #363636; } + .button.is-light[disabled], fieldset[disabled] .button.is-light { + background-color: whitesmoke; + border-color: transparent; + box-shadow: none; } + .button.is-light.is-inverted { + background-color: #363636; + color: whitesmoke; } + .button.is-light.is-inverted:hover, .button.is-light.is-inverted.is-hovered { + background-color: #292929; } + .button.is-light.is-inverted[disabled], fieldset[disabled] .button.is-light.is-inverted { + background-color: #363636; + border-color: transparent; + box-shadow: none; + color: whitesmoke; } + .button.is-light.is-loading::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-light.is-outlined { + background-color: transparent; + border-color: whitesmoke; + color: whitesmoke; } + .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: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .button.is-light.is-outlined.is-loading::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-light.is-outlined.is-loading:hover::after, .button.is-light.is-outlined.is-loading.is-hovered::after, .button.is-light.is-outlined.is-loading:focus::after, .button.is-light.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-light.is-outlined[disabled], fieldset[disabled] .button.is-light.is-outlined { + background-color: transparent; + border-color: whitesmoke; + box-shadow: none; + color: whitesmoke; } + .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #363636; + color: #363636; } + .button.is-light.is-inverted.is-outlined:hover, .button.is-light.is-inverted.is-outlined.is-hovered, .button.is-light.is-inverted.is-outlined:focus, .button.is-light.is-inverted.is-outlined.is-focused { + background-color: #363636; + color: whitesmoke; } + .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 whitesmoke whitesmoke !important; } + .button.is-light.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #363636; + box-shadow: none; + color: #363636; } + .button.is-dark, .content kbd.button { + background-color: #363636; + border-color: transparent; + color: whitesmoke; } + .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: whitesmoke; } + .button.is-dark:focus, .content kbd.button:focus, .button.is-dark.is-focused, .content kbd.button.is-focused { + border-color: transparent; + color: whitesmoke; } + .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: whitesmoke; } + .button.is-dark[disabled], .content kbd.button[disabled], fieldset[disabled] .button.is-dark, fieldset[disabled] .content kbd.button, .content fieldset[disabled] kbd.button { + background-color: #363636; + border-color: transparent; + box-shadow: none; } + .button.is-dark.is-inverted, .content kbd.button.is-inverted { + background-color: whitesmoke; + color: #363636; } + .button.is-dark.is-inverted:hover, .content kbd.button.is-inverted:hover, .button.is-dark.is-inverted.is-hovered, .content kbd.button.is-inverted.is-hovered { + background-color: #e8e8e8; } + .button.is-dark.is-inverted[disabled], .content kbd.button.is-inverted[disabled], fieldset[disabled] .button.is-dark.is-inverted, fieldset[disabled] .content kbd.button.is-inverted, .content fieldset[disabled] kbd.button.is-inverted { + background-color: whitesmoke; + border-color: transparent; + box-shadow: none; + color: #363636; } + .button.is-dark.is-loading::after, .content kbd.button.is-loading::after { + border-color: transparent transparent whitesmoke whitesmoke !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: whitesmoke; } + .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 whitesmoke whitesmoke !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: whitesmoke; + color: whitesmoke; } + .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: whitesmoke; + 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: whitesmoke; + box-shadow: none; + color: whitesmoke; } + .button.is-primary, .docstring > section > a.button.docs-sourcelink { + background-color: #4eb5de; + border-color: transparent; + color: #fff; } + .button.is-primary:hover, .docstring > section > a.button.docs-sourcelink:hover, .button.is-primary.is-hovered, .docstring > section > a.button.is-hovered.docs-sourcelink { + background-color: #43b1dc; + border-color: transparent; + color: #fff; } + .button.is-primary:focus, .docstring > section > a.button.docs-sourcelink:focus, .button.is-primary.is-focused, .docstring > section > a.button.is-focused.docs-sourcelink { + border-color: transparent; + color: #fff; } + .button.is-primary:focus:not(:active), .docstring > section > a.button.docs-sourcelink:focus:not(:active), .button.is-primary.is-focused:not(:active), .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) { + box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } + .button.is-primary:active, .docstring > section > a.button.docs-sourcelink:active, .button.is-primary.is-active, .docstring > section > a.button.is-active.docs-sourcelink { + background-color: #39acda; + border-color: transparent; + color: #fff; } + .button.is-primary[disabled], .docstring > section > a.button.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary, fieldset[disabled] .docstring > section > a.button.docs-sourcelink { + background-color: #4eb5de; + border-color: transparent; + box-shadow: none; } + .button.is-primary.is-inverted, .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + color: #4eb5de; } + .button.is-primary.is-inverted:hover, .docstring > section > a.button.is-inverted.docs-sourcelink:hover, .button.is-primary.is-inverted.is-hovered, .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink { + background-color: #f2f2f2; } + .button.is-primary.is-inverted[disabled], .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-inverted, fieldset[disabled] .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #4eb5de; } + .button.is-primary.is-loading::after, .docstring > section > a.button.is-loading.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-primary.is-outlined, .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #4eb5de; + color: #4eb5de; } + .button.is-primary.is-outlined:hover, .docstring > section > a.button.is-outlined.docs-sourcelink:hover, .button.is-primary.is-outlined.is-hovered, .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-outlined:focus, .docstring > section > a.button.is-outlined.docs-sourcelink:focus, .button.is-primary.is-outlined.is-focused, .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink { + background-color: #4eb5de; + border-color: #4eb5de; + color: #fff; } + .button.is-primary.is-outlined.is-loading::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after { + border-color: transparent transparent #4eb5de #4eb5de !important; } + .button.is-primary.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-primary.is-outlined[disabled], .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-outlined, fieldset[disabled] .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #4eb5de; + box-shadow: none; + color: #4eb5de; } + .button.is-primary.is-inverted.is-outlined, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-primary.is-inverted.is-outlined:hover, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, .button.is-primary.is-inverted.is-outlined.is-hovered, .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-inverted.is-outlined:focus, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, .button.is-primary.is-inverted.is-outlined.is-focused, .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink { + background-color: #fff; + color: #4eb5de; } + .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #4eb5de #4eb5de !important; } + .button.is-primary.is-inverted.is-outlined[disabled], .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-inverted.is-outlined, fieldset[disabled] .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-link { + background-color: #2e63b8; + border-color: transparent; + color: #fff; } + .button.is-link:hover, .button.is-link.is-hovered { + background-color: #2b5eae; + border-color: transparent; + color: #fff; } + .button.is-link:focus, .button.is-link.is-focused { + border-color: transparent; + color: #fff; } + .button.is-link:focus:not(:active), .button.is-link.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .button.is-link:active, .button.is-link.is-active { + background-color: #2958a4; + border-color: transparent; + color: #fff; } + .button.is-link[disabled], fieldset[disabled] .button.is-link { + background-color: #2e63b8; + border-color: transparent; + box-shadow: none; } + .button.is-link.is-inverted { + background-color: #fff; + color: #2e63b8; } + .button.is-link.is-inverted:hover, .button.is-link.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-link.is-inverted[disabled], fieldset[disabled] .button.is-link.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #2e63b8; } + .button.is-link.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-link.is-outlined { + background-color: transparent; + border-color: #2e63b8; + color: #2e63b8; } + .button.is-link.is-outlined:hover, .button.is-link.is-outlined.is-hovered, .button.is-link.is-outlined:focus, .button.is-link.is-outlined.is-focused { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + .button.is-link.is-outlined.is-loading::after { + border-color: transparent transparent #2e63b8 #2e63b8 !important; } + .button.is-link.is-outlined.is-loading:hover::after, .button.is-link.is-outlined.is-loading.is-hovered::after, .button.is-link.is-outlined.is-loading:focus::after, .button.is-link.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-link.is-outlined[disabled], fieldset[disabled] .button.is-link.is-outlined { + background-color: transparent; + border-color: #2e63b8; + box-shadow: none; + color: #2e63b8; } + .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-link.is-inverted.is-outlined:hover, .button.is-link.is-inverted.is-outlined.is-hovered, .button.is-link.is-inverted.is-outlined:focus, .button.is-link.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #2e63b8; } + .button.is-link.is-inverted.is-outlined.is-loading:hover::after, .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-link.is-inverted.is-outlined.is-loading:focus::after, .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #2e63b8 #2e63b8 !important; } + .button.is-link.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-info { + background-color: #209cee; + border-color: transparent; + color: #fff; } + .button.is-info:hover, .button.is-info.is-hovered { + background-color: #1497ed; + border-color: transparent; + color: #fff; } + .button.is-info:focus, .button.is-info.is-focused { + border-color: transparent; + color: #fff; } + .button.is-info:focus:not(:active), .button.is-info.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } + .button.is-info:active, .button.is-info.is-active { + background-color: #1190e3; + border-color: transparent; + color: #fff; } + .button.is-info[disabled], fieldset[disabled] .button.is-info { + background-color: #209cee; + border-color: transparent; + box-shadow: none; } + .button.is-info.is-inverted { + background-color: #fff; + color: #209cee; } + .button.is-info.is-inverted:hover, .button.is-info.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-info.is-inverted[disabled], fieldset[disabled] .button.is-info.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #209cee; } + .button.is-info.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-info.is-outlined { + background-color: transparent; + border-color: #209cee; + color: #209cee; } + .button.is-info.is-outlined:hover, .button.is-info.is-outlined.is-hovered, .button.is-info.is-outlined:focus, .button.is-info.is-outlined.is-focused { + background-color: #209cee; + border-color: #209cee; + color: #fff; } + .button.is-info.is-outlined.is-loading::after { + border-color: transparent transparent #209cee #209cee !important; } + .button.is-info.is-outlined.is-loading:hover::after, .button.is-info.is-outlined.is-loading.is-hovered::after, .button.is-info.is-outlined.is-loading:focus::after, .button.is-info.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-info.is-outlined[disabled], fieldset[disabled] .button.is-info.is-outlined { + background-color: transparent; + border-color: #209cee; + box-shadow: none; + color: #209cee; } + .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-info.is-inverted.is-outlined:hover, .button.is-info.is-inverted.is-outlined.is-hovered, .button.is-info.is-inverted.is-outlined:focus, .button.is-info.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #209cee; } + .button.is-info.is-inverted.is-outlined.is-loading:hover::after, .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-info.is-inverted.is-outlined.is-loading:focus::after, .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #209cee #209cee !important; } + .button.is-info.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-success { + background-color: #22c35b; + border-color: transparent; + color: #fff; } + .button.is-success:hover, .button.is-success.is-hovered { + background-color: #20b856; + border-color: transparent; + color: #fff; } + .button.is-success:focus, .button.is-success.is-focused { + border-color: transparent; + color: #fff; } + .button.is-success:focus:not(:active), .button.is-success.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } + .button.is-success:active, .button.is-success.is-active { + background-color: #1ead51; + border-color: transparent; + color: #fff; } + .button.is-success[disabled], fieldset[disabled] .button.is-success { + background-color: #22c35b; + border-color: transparent; + box-shadow: none; } + .button.is-success.is-inverted { + background-color: #fff; + color: #22c35b; } + .button.is-success.is-inverted:hover, .button.is-success.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-success.is-inverted[disabled], fieldset[disabled] .button.is-success.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #22c35b; } + .button.is-success.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-success.is-outlined { + background-color: transparent; + border-color: #22c35b; + color: #22c35b; } + .button.is-success.is-outlined:hover, .button.is-success.is-outlined.is-hovered, .button.is-success.is-outlined:focus, .button.is-success.is-outlined.is-focused { + background-color: #22c35b; + border-color: #22c35b; + color: #fff; } + .button.is-success.is-outlined.is-loading::after { + border-color: transparent transparent #22c35b #22c35b !important; } + .button.is-success.is-outlined.is-loading:hover::after, .button.is-success.is-outlined.is-loading.is-hovered::after, .button.is-success.is-outlined.is-loading:focus::after, .button.is-success.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-success.is-outlined[disabled], fieldset[disabled] .button.is-success.is-outlined { + background-color: transparent; + border-color: #22c35b; + box-shadow: none; + color: #22c35b; } + .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-success.is-inverted.is-outlined:hover, .button.is-success.is-inverted.is-outlined.is-hovered, .button.is-success.is-inverted.is-outlined:focus, .button.is-success.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #22c35b; } + .button.is-success.is-inverted.is-outlined.is-loading:hover::after, .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-success.is-inverted.is-outlined.is-loading:focus::after, .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #22c35b #22c35b !important; } + .button.is-success.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-warning { + background-color: #ffdd57; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:hover, .button.is-warning.is-hovered { + background-color: #ffda4a; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:focus, .button.is-warning.is-focused { + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:focus:not(:active), .button.is-warning.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } + .button.is-warning:active, .button.is-warning.is-active { + background-color: #ffd83e; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning[disabled], fieldset[disabled] .button.is-warning { + background-color: #ffdd57; + border-color: transparent; + box-shadow: none; } + .button.is-warning.is-inverted { + background-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .button.is-warning.is-inverted:hover, .button.is-warning.is-inverted.is-hovered { + background-color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-inverted[disabled], fieldset[disabled] .button.is-warning.is-inverted { + background-color: rgba(0, 0, 0, 0.7); + border-color: transparent; + box-shadow: none; + color: #ffdd57; } + .button.is-warning.is-loading::after { + border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; } + .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ffdd57; + color: #ffdd57; } + .button.is-warning.is-outlined:hover, .button.is-warning.is-outlined.is-hovered, .button.is-warning.is-outlined:focus, .button.is-warning.is-outlined.is-focused { + background-color: #ffdd57; + border-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-outlined.is-loading::after { + border-color: transparent transparent #ffdd57 #ffdd57 !important; } + .button.is-warning.is-outlined.is-loading:hover::after, .button.is-warning.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-outlined.is-loading:focus::after, .button.is-warning.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; } + .button.is-warning.is-outlined[disabled], fieldset[disabled] .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ffdd57; + box-shadow: none; + color: #ffdd57; } + .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-inverted.is-outlined:hover, .button.is-warning.is-inverted.is-outlined.is-hovered, .button.is-warning.is-inverted.is-outlined:focus, .button.is-warning.is-inverted.is-outlined.is-focused { + background-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ffdd57 #ffdd57 !important; } + .button.is-warning.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + box-shadow: none; + color: rgba(0, 0, 0, 0.7); } + .button.is-danger { + background-color: #da0b00; + border-color: transparent; + color: #fff; } + .button.is-danger:hover, .button.is-danger.is-hovered { + background-color: #cd0a00; + border-color: transparent; + color: #fff; } + .button.is-danger:focus, .button.is-danger.is-focused { + border-color: transparent; + color: #fff; } + .button.is-danger:focus:not(:active), .button.is-danger.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } + .button.is-danger:active, .button.is-danger.is-active { + background-color: #c10a00; + border-color: transparent; + color: #fff; } + .button.is-danger[disabled], fieldset[disabled] .button.is-danger { + background-color: #da0b00; + border-color: transparent; + box-shadow: none; } + .button.is-danger.is-inverted { + background-color: #fff; + color: #da0b00; } + .button.is-danger.is-inverted:hover, .button.is-danger.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-danger.is-inverted[disabled], fieldset[disabled] .button.is-danger.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #da0b00; } + .button.is-danger.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-danger.is-outlined { + background-color: transparent; + border-color: #da0b00; + color: #da0b00; } + .button.is-danger.is-outlined:hover, .button.is-danger.is-outlined.is-hovered, .button.is-danger.is-outlined:focus, .button.is-danger.is-outlined.is-focused { + background-color: #da0b00; + border-color: #da0b00; + color: #fff; } + .button.is-danger.is-outlined.is-loading::after { + border-color: transparent transparent #da0b00 #da0b00 !important; } + .button.is-danger.is-outlined.is-loading:hover::after, .button.is-danger.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-outlined.is-loading:focus::after, .button.is-danger.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-danger.is-outlined[disabled], fieldset[disabled] .button.is-danger.is-outlined { + background-color: transparent; + border-color: #da0b00; + box-shadow: none; + color: #da0b00; } + .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-danger.is-inverted.is-outlined:hover, .button.is-danger.is-inverted.is-outlined.is-hovered, .button.is-danger.is-inverted.is-outlined:focus, .button.is-danger.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #da0b00; } + .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #da0b00 #da0b00 !important; } + .button.is-danger.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-small, #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 2px; + font-size: 0.75rem; } + .button.is-normal { + font-size: 1rem; } + .button.is-medium { + font-size: 1.25rem; } + .button.is-large { + font-size: 1.5rem; } + .button[disabled], fieldset[disabled] .button { + background-color: white; + border-color: #dbdbdb; + box-shadow: none; + opacity: 0.5; } + .button.is-fullwidth { + display: flex; + width: 100%; } + .button.is-loading { + color: transparent !important; + pointer-events: none; } + .button.is-loading::after { + position: absolute; + left: calc(50% - (1em / 2)); + top: calc(50% - (1em / 2)); + position: absolute !important; } + .button.is-static { + background-color: whitesmoke; + border-color: #dbdbdb; + color: #6b6b6b; + box-shadow: none; + pointer-events: none; } + .button.is-rounded, #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + +.buttons { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .buttons .button { + margin-bottom: 0.5rem; } + .buttons .button:not(:last-child):not(.is-fullwidth) { + margin-right: 0.5rem; } + .buttons:last-child { + margin-bottom: -0.5rem; } + .buttons:not(:last-child) { + margin-bottom: 1rem; } + .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) { + border-radius: 2px; + font-size: 0.75rem; } + .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) { + font-size: 1.25rem; } + .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) { + font-size: 1.5rem; } + .buttons.has-addons .button:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .buttons.has-addons .button:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + margin-right: -1px; } + .buttons.has-addons .button:last-child { + margin-right: 0; } + .buttons.has-addons .button:hover, .buttons.has-addons .button.is-hovered { + z-index: 2; } + .buttons.has-addons .button:focus, .buttons.has-addons .button.is-focused, .buttons.has-addons .button:active, .buttons.has-addons .button.is-active, .buttons.has-addons .button.is-selected { + z-index: 3; } + .buttons.has-addons .button:focus:hover, .buttons.has-addons .button.is-focused:hover, .buttons.has-addons .button:active:hover, .buttons.has-addons .button.is-active:hover, .buttons.has-addons .button.is-selected:hover { + z-index: 4; } + .buttons.has-addons .button.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .buttons.is-centered { + justify-content: center; } + .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + .buttons.is-right { + justify-content: flex-end; } + .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + +.container { + flex-grow: 1; + margin: 0 auto; + position: relative; + width: auto; } + @media screen and (min-width: 1056px) { + .container { + max-width: 992px; } + .container.is-fluid { + margin-left: 32px; + margin-right: 32px; + max-width: none; } } + @media screen and (max-width: 1215px) { + .container.is-widescreen { + max-width: 1152px; } } + @media screen and (max-width: 1407px) { + .container.is-fullhd { + max-width: 1344px; } } + @media screen and (min-width: 1216px) { + .container { + max-width: 1152px; } } + @media screen and (min-width: 1408px) { + .container { + max-width: 1344px; } } +.content li + li { + margin-top: 0.25em; } + +.content p:not(:last-child), +.content dl:not(:last-child), +.content ol:not(:last-child), +.content ul:not(:last-child), +.content blockquote:not(:last-child), +.content pre:not(:last-child), +.content table:not(:last-child) { + margin-bottom: 1em; } + +.content h1, +.content h2, +.content h3, +.content h4, +.content h5, +.content h6 { + color: #222222; + 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: whitesmoke; + 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: #222222; } + .content table th:not([align]) { + text-align: left; } + .content table thead td, + .content table thead th { + border-width: 0 0 2px; + color: #222222; } + .content table tfoot td, + .content table tfoot th { + border-width: 2px 0 0; + color: #222222; } + .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: 0.75rem; } + +.content.is-medium { + font-size: 1.25rem; } + +.content.is-large { + font-size: 1.5rem; } + +.icon { + align-items: center; + display: inline-flex; + justify-content: center; + height: 1.5rem; + width: 1.5rem; } + .icon.is-small, #documenter .docs-sidebar form.docs-search > input.icon { + height: 1rem; + width: 1rem; } + .icon.is-medium { + height: 2rem; + width: 2rem; } + .icon.is-large { + height: 3rem; + width: 3rem; } + +.image, #documenter .docs-sidebar .docs-logo > img { + display: block; + position: relative; } + .image img, #documenter .docs-sidebar .docs-logo > img img { + display: block; + height: auto; + width: 100%; } + .image img.is-rounded, #documenter .docs-sidebar .docs-logo > img img.is-rounded { + border-radius: 290486px; } + .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img, + .image.is-square .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img, + .image.is-1by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img, + .image.is-5by4 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img, + .image.is-4by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img, + .image.is-3by2 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img, + .image.is-5by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img, + .image.is-16by9 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img, + .image.is-2by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img, + .image.is-3by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img, + .image.is-4by5 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img, + .image.is-3by4 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img, + .image.is-2by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img, + .image.is-3by5 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img, + .image.is-9by16 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img, + .image.is-1by2 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img, + .image.is-1by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio { + height: 100%; + width: 100%; } + .image.is-square, #documenter .docs-sidebar .docs-logo > img.is-square, .image.is-1by1, #documenter .docs-sidebar .docs-logo > img.is-1by1 { + padding-top: 100%; } + .image.is-5by4, #documenter .docs-sidebar .docs-logo > img.is-5by4 { + padding-top: 80%; } + .image.is-4by3, #documenter .docs-sidebar .docs-logo > img.is-4by3 { + padding-top: 75%; } + .image.is-3by2, #documenter .docs-sidebar .docs-logo > img.is-3by2 { + padding-top: 66.6666%; } + .image.is-5by3, #documenter .docs-sidebar .docs-logo > img.is-5by3 { + padding-top: 60%; } + .image.is-16by9, #documenter .docs-sidebar .docs-logo > img.is-16by9 { + padding-top: 56.25%; } + .image.is-2by1, #documenter .docs-sidebar .docs-logo > img.is-2by1 { + padding-top: 50%; } + .image.is-3by1, #documenter .docs-sidebar .docs-logo > img.is-3by1 { + padding-top: 33.3333%; } + .image.is-4by5, #documenter .docs-sidebar .docs-logo > img.is-4by5 { + padding-top: 125%; } + .image.is-3by4, #documenter .docs-sidebar .docs-logo > img.is-3by4 { + padding-top: 133.3333%; } + .image.is-2by3, #documenter .docs-sidebar .docs-logo > img.is-2by3 { + padding-top: 150%; } + .image.is-3by5, #documenter .docs-sidebar .docs-logo > img.is-3by5 { + padding-top: 166.6666%; } + .image.is-9by16, #documenter .docs-sidebar .docs-logo > img.is-9by16 { + padding-top: 177.7777%; } + .image.is-1by2, #documenter .docs-sidebar .docs-logo > img.is-1by2 { + padding-top: 200%; } + .image.is-1by3, #documenter .docs-sidebar .docs-logo > img.is-1by3 { + padding-top: 300%; } + .image.is-16x16, #documenter .docs-sidebar .docs-logo > img.is-16x16 { + height: 16px; + width: 16px; } + .image.is-24x24, #documenter .docs-sidebar .docs-logo > img.is-24x24 { + height: 24px; + width: 24px; } + .image.is-32x32, #documenter .docs-sidebar .docs-logo > img.is-32x32 { + height: 32px; + width: 32px; } + .image.is-48x48, #documenter .docs-sidebar .docs-logo > img.is-48x48 { + height: 48px; + width: 48px; } + .image.is-64x64, #documenter .docs-sidebar .docs-logo > img.is-64x64 { + height: 64px; + width: 64px; } + .image.is-96x96, #documenter .docs-sidebar .docs-logo > img.is-96x96 { + height: 96px; + width: 96px; } + .image.is-128x128, #documenter .docs-sidebar .docs-logo > img.is-128x128 { + height: 128px; + width: 128px; } + +.notification { + background-color: whitesmoke; + border-radius: 4px; + padding: 1.25rem 2.5rem 1.25rem 1.5rem; + position: relative; } + .notification a:not(.button):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + .notification strong { + color: currentColor; } + .notification code, + .notification pre { + background: white; } + .notification pre code { + background: transparent; } + .notification > .delete { + position: absolute; + right: 0.5rem; + top: 0.5rem; } + .notification .title, + .notification .subtitle, + .notification .content { + color: currentColor; } + .notification.is-white { + background-color: white; + color: #0a0a0a; } + .notification.is-black { + background-color: #0a0a0a; + color: white; } + .notification.is-light { + background-color: whitesmoke; + color: #363636; } + .notification.is-dark, .content kbd.notification { + background-color: #363636; + color: whitesmoke; } + .notification.is-primary, .docstring > section > a.notification.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .notification.is-link { + background-color: #2e63b8; + color: #fff; } + .notification.is-info { + background-color: #209cee; + color: #fff; } + .notification.is-success { + background-color: #22c35b; + color: #fff; } + .notification.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .notification.is-danger { + background-color: #da0b00; + color: #fff; } + +.progress { + -moz-appearance: none; + -webkit-appearance: none; + border: none; + border-radius: 290486px; + display: block; + height: 1rem; + overflow: hidden; + padding: 0; + width: 100%; } + .progress::-webkit-progress-bar { + background-color: #dbdbdb; } + .progress::-webkit-progress-value { + background-color: #222222; } + .progress::-moz-progress-bar { + background-color: #222222; } + .progress::-ms-fill { + background-color: #222222; + border: none; } + .progress.is-white::-webkit-progress-value { + background-color: white; } + .progress.is-white::-moz-progress-bar { + background-color: white; } + .progress.is-white::-ms-fill { + background-color: white; } + .progress.is-white:indeterminate { + background-image: linear-gradient(to right, white 30%, #dbdbdb 30%); } + .progress.is-black::-webkit-progress-value { + background-color: #0a0a0a; } + .progress.is-black::-moz-progress-bar { + background-color: #0a0a0a; } + .progress.is-black::-ms-fill { + background-color: #0a0a0a; } + .progress.is-black:indeterminate { + background-image: linear-gradient(to right, #0a0a0a 30%, #dbdbdb 30%); } + .progress.is-light::-webkit-progress-value { + background-color: whitesmoke; } + .progress.is-light::-moz-progress-bar { + background-color: whitesmoke; } + .progress.is-light::-ms-fill { + background-color: whitesmoke; } + .progress.is-light:indeterminate { + background-image: linear-gradient(to right, whitesmoke 30%, #dbdbdb 30%); } + .progress.is-dark::-webkit-progress-value, .content kbd.progress::-webkit-progress-value { + background-color: #363636; } + .progress.is-dark::-moz-progress-bar, .content kbd.progress::-moz-progress-bar { + background-color: #363636; } + .progress.is-dark::-ms-fill, .content kbd.progress::-ms-fill { + background-color: #363636; } + .progress.is-dark:indeterminate, .content kbd.progress:indeterminate { + background-image: linear-gradient(to right, #363636 30%, #dbdbdb 30%); } + .progress.is-primary::-webkit-progress-value, .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value { + background-color: #4eb5de; } + .progress.is-primary::-moz-progress-bar, .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar { + background-color: #4eb5de; } + .progress.is-primary::-ms-fill, .docstring > section > a.progress.docs-sourcelink::-ms-fill { + background-color: #4eb5de; } + .progress.is-primary:indeterminate, .docstring > section > a.progress.docs-sourcelink:indeterminate { + background-image: linear-gradient(to right, #4eb5de 30%, #dbdbdb 30%); } + .progress.is-link::-webkit-progress-value { + background-color: #2e63b8; } + .progress.is-link::-moz-progress-bar { + background-color: #2e63b8; } + .progress.is-link::-ms-fill { + background-color: #2e63b8; } + .progress.is-link:indeterminate { + background-image: linear-gradient(to right, #2e63b8 30%, #dbdbdb 30%); } + .progress.is-info::-webkit-progress-value { + background-color: #209cee; } + .progress.is-info::-moz-progress-bar { + background-color: #209cee; } + .progress.is-info::-ms-fill { + background-color: #209cee; } + .progress.is-info:indeterminate { + background-image: linear-gradient(to right, #209cee 30%, #dbdbdb 30%); } + .progress.is-success::-webkit-progress-value { + background-color: #22c35b; } + .progress.is-success::-moz-progress-bar { + background-color: #22c35b; } + .progress.is-success::-ms-fill { + background-color: #22c35b; } + .progress.is-success:indeterminate { + background-image: linear-gradient(to right, #22c35b 30%, #dbdbdb 30%); } + .progress.is-warning::-webkit-progress-value { + background-color: #ffdd57; } + .progress.is-warning::-moz-progress-bar { + background-color: #ffdd57; } + .progress.is-warning::-ms-fill { + background-color: #ffdd57; } + .progress.is-warning:indeterminate { + background-image: linear-gradient(to right, #ffdd57 30%, #dbdbdb 30%); } + .progress.is-danger::-webkit-progress-value { + background-color: #da0b00; } + .progress.is-danger::-moz-progress-bar { + background-color: #da0b00; } + .progress.is-danger::-ms-fill { + background-color: #da0b00; } + .progress.is-danger:indeterminate { + background-image: linear-gradient(to right, #da0b00 30%, #dbdbdb 30%); } + .progress:indeterminate { + animation-duration: 1.5s; + animation-iteration-count: infinite; + animation-name: moveIndeterminate; + animation-timing-function: linear; + background-color: #dbdbdb; + background-image: linear-gradient(to right, #222222 30%, #dbdbdb 30%); + background-position: top left; + background-repeat: no-repeat; + background-size: 150% 150%; } + .progress:indeterminate::-webkit-progress-bar { + background-color: transparent; } + .progress:indeterminate::-moz-progress-bar { + background-color: transparent; } + .progress.is-small, #documenter .docs-sidebar form.docs-search > input.progress { + height: 0.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: white; + color: #363636; } + .table td, + .table th { + border: 1px solid #dbdbdb; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + .table td.is-white, + .table th.is-white { + background-color: white; + border-color: white; + color: #0a0a0a; } + .table td.is-black, + .table th.is-black { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .table td.is-light, + .table th.is-light { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .table td.is-dark, + .table th.is-dark { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .table td.is-primary, + .table th.is-primary { + background-color: #4eb5de; + border-color: #4eb5de; + color: #fff; } + .table td.is-link, + .table th.is-link { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + .table td.is-info, + .table th.is-info { + background-color: #209cee; + border-color: #209cee; + color: #fff; } + .table td.is-success, + .table th.is-success { + background-color: #22c35b; + border-color: #22c35b; + color: #fff; } + .table td.is-warning, + .table th.is-warning { + background-color: #ffdd57; + border-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .table td.is-danger, + .table th.is-danger { + background-color: #da0b00; + border-color: #da0b00; + color: #fff; } + .table td.is-narrow, + .table th.is-narrow { + white-space: nowrap; + width: 1%; } + .table td.is-selected, + .table th.is-selected { + background-color: #4eb5de; + color: #fff; } + .table td.is-selected a, + .table td.is-selected strong, + .table th.is-selected a, + .table th.is-selected strong { + color: currentColor; } + .table th { + color: #222222; } + .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: transparent; } + .table thead td, + .table thead th { + border-width: 0 0 2px; + color: #222222; } + .table tfoot { + background-color: transparent; } + .table tfoot td, + .table tfoot th { + border-width: 2px 0 0; + color: #222222; } + .table tbody { + background-color: transparent; } + .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: whitesmoke; } + .table.is-narrow td, + .table.is-narrow th { + padding: 0.25em 0.5em; } + .table.is-striped tbody tr:not(.is-selected):nth-child(even) { + background-color: #fafafa; } + +.table-container { + -webkit-overflow-scrolling: touch; + overflow: auto; + overflow-y: hidden; + max-width: 100%; } + +.tags { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .tags .tag, .tags .content kbd, .content .tags kbd, .tags .docstring > section > a.docs-sourcelink { + margin-bottom: 0.5rem; } + .tags .tag:not(:last-child), .tags .content kbd:not(:last-child), .content .tags kbd:not(:last-child), .tags .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0.5rem; } + .tags:last-child { + margin-bottom: -0.5rem; } + .tags:not(:last-child) { + margin-bottom: 1rem; } + .tags.are-medium .tag:not(.is-normal):not(.is-large), .tags.are-medium .content kbd:not(.is-normal):not(.is-large), .content .tags.are-medium kbd:not(.is-normal):not(.is-large), .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large) { + font-size: 1rem; } + .tags.are-large .tag:not(.is-normal):not(.is-medium), .tags.are-large .content kbd:not(.is-normal):not(.is-medium), .content .tags.are-large kbd:not(.is-normal):not(.is-medium), .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium) { + font-size: 1.25rem; } + .tags.is-centered { + justify-content: center; } + .tags.is-centered .tag, .tags.is-centered .content kbd, .content .tags.is-centered kbd, .tags.is-centered .docstring > section > a.docs-sourcelink { + margin-right: 0.25rem; + margin-left: 0.25rem; } + .tags.is-right { + justify-content: flex-end; } + .tags.is-right .tag:not(:first-child), .tags.is-right .content kbd:not(:first-child), .content .tags.is-right kbd:not(:first-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0.5rem; } + .tags.is-right .tag:not(:last-child), .tags.is-right .content kbd:not(:last-child), .content .tags.is-right kbd:not(:last-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0; } + .tags.has-addons .tag, .tags.has-addons .content kbd, .content .tags.has-addons kbd, .tags.has-addons .docstring > section > a.docs-sourcelink { + margin-right: 0; } + .tags.has-addons .tag:not(:first-child), .tags.has-addons .content kbd:not(:first-child), .content .tags.has-addons kbd:not(:first-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0; + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .tags.has-addons .tag:not(:last-child), .tags.has-addons .content kbd:not(:last-child), .content .tags.has-addons kbd:not(:last-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + +.tag:not(body), .content kbd:not(body), .docstring > section > a.docs-sourcelink:not(body) { + align-items: center; + background-color: whitesmoke; + border-radius: 4px; + color: #222222; + display: inline-flex; + font-size: 0.75rem; + height: 2em; + justify-content: center; + line-height: 1.5; + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + .tag:not(body) .delete, .content kbd:not(body) .delete, .docstring > section > a.docs-sourcelink:not(body) .delete { + margin-left: 0.25rem; + margin-right: -0.375rem; } + .tag.is-white:not(body), .content kbd.is-white:not(body), .docstring > section > a.docs-sourcelink.is-white:not(body) { + background-color: white; + 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: white; } + .tag.is-light:not(body), .content kbd.is-light:not(body), .docstring > section > a.docs-sourcelink.is-light:not(body) { + background-color: whitesmoke; + color: #363636; } + .tag.is-dark:not(body), .content kbd:not(body), .docstring > section > a.docs-sourcelink.is-dark:not(body), .content .docstring > section > kbd:not(body) { + background-color: #363636; + color: whitesmoke; } + .tag.is-primary:not(body), .content kbd.is-primary:not(body), .docstring > section > a.docs-sourcelink:not(body) { + background-color: #4eb5de; + color: #fff; } + .tag.is-link:not(body), .content kbd.is-link:not(body), .docstring > section > a.docs-sourcelink.is-link:not(body) { + background-color: #2e63b8; + color: #fff; } + .tag.is-info:not(body), .content kbd.is-info:not(body), .docstring > section > a.docs-sourcelink.is-info:not(body) { + background-color: #209cee; + color: #fff; } + .tag.is-success:not(body), .content kbd.is-success:not(body), .docstring > section > a.docs-sourcelink.is-success:not(body) { + background-color: #22c35b; + color: #fff; } + .tag.is-warning:not(body), .content kbd.is-warning:not(body), .docstring > section > a.docs-sourcelink.is-warning:not(body) { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .tag.is-danger:not(body), .content kbd.is-danger:not(body), .docstring > section > a.docs-sourcelink.is-danger:not(body) { + background-color: #da0b00; + color: #fff; } + .tag.is-normal:not(body), .content kbd.is-normal:not(body), .docstring > section > a.docs-sourcelink.is-normal:not(body) { + font-size: 0.75rem; } + .tag.is-medium:not(body), .content kbd.is-medium:not(body), .docstring > section > a.docs-sourcelink.is-medium:not(body) { + font-size: 1rem; } + .tag.is-large:not(body), .content kbd.is-large:not(body), .docstring > section > a.docs-sourcelink.is-large:not(body) { + font-size: 1.25rem; } + .tag:not(body) .icon:first-child:not(:last-child), .content kbd:not(body) .icon:first-child:not(:last-child), .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child) { + margin-left: -0.375em; + margin-right: 0.1875em; } + .tag:not(body) .icon:last-child:not(:first-child), .content kbd:not(body) .icon:last-child:not(:first-child), .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: -0.375em; } + .tag:not(body) .icon:first-child:last-child, .content kbd:not(body) .icon:first-child:last-child, .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child { + margin-left: -0.375em; + margin-right: -0.375em; } + .tag.is-delete:not(body), .content kbd.is-delete:not(body), .docstring > section > a.docs-sourcelink.is-delete:not(body) { + margin-left: 1px; + padding: 0; + position: relative; + width: 2em; } + .tag.is-delete:not(body)::before, .content kbd.is-delete:not(body)::before, .docstring > section > a.docs-sourcelink.is-delete:not(body)::before, .tag.is-delete:not(body)::after, .content kbd.is-delete:not(body)::after, .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + background-color: currentColor; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + .tag.is-delete:not(body)::before, .content kbd.is-delete:not(body)::before, .docstring > section > a.docs-sourcelink.is-delete:not(body)::before { + height: 1px; + width: 50%; } + .tag.is-delete:not(body)::after, .content kbd.is-delete:not(body)::after, .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + height: 50%; + width: 1px; } + .tag.is-delete:not(body):hover, .content kbd.is-delete:not(body):hover, .docstring > section > a.docs-sourcelink.is-delete:not(body):hover, .tag.is-delete:not(body):focus, .content kbd.is-delete:not(body):focus, .docstring > section > a.docs-sourcelink.is-delete:not(body):focus { + background-color: #e8e8e8; } + .tag.is-delete:not(body):active, .content kbd.is-delete:not(body):active, .docstring > section > a.docs-sourcelink.is-delete:not(body):active { + background-color: #dbdbdb; } + .tag.is-rounded:not(body), #documenter .docs-sidebar form.docs-search > input:not(body), .content kbd.is-rounded:not(body), #documenter .docs-sidebar .content form.docs-search > input:not(body), .docstring > section > a.docs-sourcelink.is-rounded:not(body) { + border-radius: 290486px; } + +a.tag:hover, .docstring > section > a.docs-sourcelink:hover { + text-decoration: underline; } + +.title, +.subtitle { + word-break: break-word; } + .title em, + .title span, + .subtitle em, + .subtitle span { + font-weight: inherit; } + .title sub, + .subtitle sub { + font-size: 0.75em; } + .title sup, + .subtitle sup { + font-size: 0.75em; } + .title .tag, .title .content kbd, .content .title kbd, .title .docstring > section > a.docs-sourcelink, + .subtitle .tag, + .subtitle .content kbd, + .content .subtitle kbd, + .subtitle .docstring > section > a.docs-sourcelink { + vertical-align: middle; } + +.title { + color: #363636; + font-size: 2rem; + font-weight: 600; + line-height: 1.125; } + .title strong { + color: inherit; + font-weight: inherit; } + .title + .highlight { + margin-top: -0.75rem; } + .title:not(.is-spaced) + .subtitle { + margin-top: -1.25rem; } + .title.is-1 { + font-size: 3rem; } + .title.is-2 { + font-size: 2.5rem; } + .title.is-3 { + font-size: 2rem; } + .title.is-4 { + font-size: 1.5rem; } + .title.is-5 { + font-size: 1.25rem; } + .title.is-6 { + font-size: 1rem; } + .title.is-7 { + font-size: 0.75rem; } + +.subtitle { + color: #4a4a4a; + font-size: 1.25rem; + font-weight: 400; + line-height: 1.25; } + .subtitle strong { + color: #363636; + font-weight: 600; } + .subtitle:not(.is-spaced) + .title { + margin-top: -1.25rem; } + .subtitle.is-1 { + font-size: 3rem; } + .subtitle.is-2 { + font-size: 2.5rem; } + .subtitle.is-3 { + font-size: 2rem; } + .subtitle.is-4 { + font-size: 1.5rem; } + .subtitle.is-5 { + font-size: 1.25rem; } + .subtitle.is-6 { + font-size: 1rem; } + .subtitle.is-7 { + font-size: 0.75rem; } + +.heading { + display: block; + font-size: 11px; + letter-spacing: 1px; + margin-bottom: 5px; + text-transform: uppercase; } + +.highlight { + font-weight: 400; + max-width: 100%; + overflow: hidden; + padding: 0; } + .highlight pre { + overflow: auto; + max-width: 100%; } + +.number { + align-items: center; + background-color: whitesmoke; + border-radius: 290486px; + display: inline-flex; + font-size: 1.25rem; + height: 2em; + justify-content: center; + margin-right: 1.5rem; + min-width: 2.5em; + padding: 0.25rem 0.5rem; + text-align: center; + vertical-align: top; } + +.select select, .textarea, .input, #documenter .docs-sidebar form.docs-search > input { + background-color: white; + border-color: #dbdbdb; + border-radius: 4px; + color: #363636; } + .select select::-moz-placeholder, .textarea::-moz-placeholder, .input::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input::-moz-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select::-webkit-input-placeholder, .textarea::-webkit-input-placeholder, .input::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select:-moz-placeholder, .textarea:-moz-placeholder, .input:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input:-moz-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select:-ms-input-placeholder, .textarea:-ms-input-placeholder, .input:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select:hover, .textarea:hover, .input:hover, #documenter .docs-sidebar form.docs-search > input:hover, .select select.is-hovered, .is-hovered.textarea, .is-hovered.input, #documenter .docs-sidebar form.docs-search > input.is-hovered { + border-color: #b5b5b5; } + .select select:focus, .textarea:focus, .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .select select.is-focused, .is-focused.textarea, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .select select:active, .textarea:active, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .select select.is-active, .is-active.textarea, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + border-color: #2e63b8; + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .select select[disabled], .textarea[disabled], .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], fieldset[disabled] .select select, .select fieldset[disabled] select, fieldset[disabled] .textarea, fieldset[disabled] .input, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input { + background-color: whitesmoke; + border-color: whitesmoke; + box-shadow: none; + color: #6b6b6b; } + .select select[disabled]::-moz-placeholder, .textarea[disabled]::-moz-placeholder, .input[disabled]::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, fieldset[disabled] .select select::-moz-placeholder, .select fieldset[disabled] select::-moz-placeholder, fieldset[disabled] .textarea::-moz-placeholder, fieldset[disabled] .input::-moz-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-moz-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-moz-placeholder { + color: rgba(107, 107, 107, 0.3); } + .select select[disabled]::-webkit-input-placeholder, .textarea[disabled]::-webkit-input-placeholder, .input[disabled]::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, fieldset[disabled] .select select::-webkit-input-placeholder, .select fieldset[disabled] select::-webkit-input-placeholder, fieldset[disabled] .textarea::-webkit-input-placeholder, fieldset[disabled] .input::-webkit-input-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-webkit-input-placeholder { + color: rgba(107, 107, 107, 0.3); } + .select select[disabled]:-moz-placeholder, .textarea[disabled]:-moz-placeholder, .input[disabled]:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, fieldset[disabled] .select select:-moz-placeholder, .select fieldset[disabled] select:-moz-placeholder, fieldset[disabled] .textarea:-moz-placeholder, fieldset[disabled] .input:-moz-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-moz-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-moz-placeholder { + color: rgba(107, 107, 107, 0.3); } + .select select[disabled]:-ms-input-placeholder, .textarea[disabled]:-ms-input-placeholder, .input[disabled]:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, fieldset[disabled] .select select:-ms-input-placeholder, .select fieldset[disabled] select:-ms-input-placeholder, fieldset[disabled] .textarea:-ms-input-placeholder, fieldset[disabled] .input:-ms-input-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-ms-input-placeholder { + color: rgba(107, 107, 107, 0.3); } + +.textarea, .input, #documenter .docs-sidebar form.docs-search > input { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1); + max-width: 100%; + width: 100%; } + .textarea[readonly], .input[readonly], #documenter .docs-sidebar form.docs-search > input[readonly] { + box-shadow: none; } + .is-white.textarea, .is-white.input, #documenter .docs-sidebar form.docs-search > input.is-white { + border-color: white; } + .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: whitesmoke; } + .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: 0.75rem; } + .is-medium.textarea, .is-medium.input, #documenter .docs-sidebar form.docs-search > input.is-medium { + font-size: 1.25rem; } + .is-large.textarea, .is-large.input, #documenter .docs-sidebar form.docs-search > input.is-large { + font-size: 1.5rem; } + .is-fullwidth.textarea, .is-fullwidth.input, #documenter .docs-sidebar form.docs-search > input.is-fullwidth { + display: block; + width: 100%; } + .is-inline.textarea, .is-inline.input, #documenter .docs-sidebar form.docs-search > input.is-inline { + display: inline; + width: auto; } + +.input.is-rounded, #documenter .docs-sidebar form.docs-search > input { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + +.input.is-static, #documenter .docs-sidebar form.docs-search > input.is-static { + background-color: transparent; + border-color: transparent; + box-shadow: none; + padding-left: 0; + padding-right: 0; } + +.textarea { + display: block; + max-width: 100%; + min-width: 100%; + padding: 0.625em; + resize: vertical; } + .textarea:not([rows]) { + max-height: 600px; + min-height: 120px; } + .textarea[rows] { + height: initial; } + .textarea.has-fixed-size { + resize: none; } + +.radio, .checkbox { + cursor: pointer; + display: inline-block; + line-height: 1.25; + position: relative; } + .radio input, .checkbox input { + cursor: pointer; } + .radio:hover, .checkbox:hover { + color: #363636; } + .radio[disabled], .checkbox[disabled], fieldset[disabled] .radio, fieldset[disabled] .checkbox { + color: #6b6b6b; + cursor: not-allowed; } + +.radio + .radio { + margin-left: 0.5em; } + +.select { + display: inline-block; + max-width: 100%; + position: relative; + vertical-align: top; } + .select:not(.is-multiple) { + height: 2.25em; } + .select:not(.is-multiple):not(.is-loading)::after { + border-color: #2e63b8; + right: 1.125em; + z-index: 4; } + .select.is-rounded select, #documenter .docs-sidebar form.docs-search > input.select select { + border-radius: 290486px; + padding-left: 1em; } + .select select { + cursor: pointer; + display: block; + font-size: 1em; + max-width: 100%; + outline: none; } + .select select::-ms-expand { + display: none; } + .select select[disabled]:hover, fieldset[disabled] .select select:hover { + border-color: whitesmoke; } + .select select:not([multiple]) { + padding-right: 2.5em; } + .select select[multiple] { + height: auto; + padding: 0; } + .select select[multiple] option { + padding: 0.5em 1em; } + .select:not(.is-multiple):not(.is-loading):hover::after { + border-color: #363636; } + .select.is-white:not(:hover)::after { + border-color: white; } + .select.is-white select { + border-color: white; } + .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: black; } + .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: whitesmoke; } + .select.is-light select { + border-color: whitesmoke; } + .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: 0.75rem; } + .select.is-medium { + font-size: 1.25rem; } + .select.is-large { + font-size: 1.5rem; } + .select.is-disabled::after { + border-color: #6b6b6b; } + .select.is-fullwidth { + width: 100%; } + .select.is-fullwidth select { + width: 100%; } + .select.is-loading::after { + margin-top: 0; + position: absolute; + right: 0.625em; + top: 0.625em; + transform: none; } + .select.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.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: white; + 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: white; } + .file.is-black:hover .file-cta, .file.is-black.is-hovered .file-cta { + background-color: #040404; + border-color: transparent; + color: white; } + .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: white; } + .file.is-black:active .file-cta, .file.is-black.is-active .file-cta { + background-color: black; + border-color: transparent; + color: white; } + .file.is-light .file-cta { + background-color: whitesmoke; + border-color: transparent; + color: #363636; } + .file.is-light:hover .file-cta, .file.is-light.is-hovered .file-cta { + background-color: #eeeeee; + border-color: transparent; + color: #363636; } + .file.is-light:focus .file-cta, .file.is-light.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(245, 245, 245, 0.25); + color: #363636; } + .file.is-light:active .file-cta, .file.is-light.is-active .file-cta { + background-color: #e8e8e8; + border-color: transparent; + color: #363636; } + .file.is-dark .file-cta, .content kbd.file .file-cta { + background-color: #363636; + border-color: transparent; + color: whitesmoke; } + .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: whitesmoke; } + .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: whitesmoke; } + .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: whitesmoke; } + .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: 0.75rem; } + .file.is-medium { + font-size: 1.25rem; } + .file.is-medium .file-icon .fa { + font-size: 21px; } + .file.is-large { + font-size: 1.5rem; } + .file.is-large .file-icon .fa { + font-size: 28px; } + .file.has-name .file-cta { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + .file.has-name .file-name { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .file.has-name.is-empty .file-cta { + border-radius: 4px; } + .file.has-name.is-empty .file-name { + display: none; } + .file.is-boxed .file-label { + flex-direction: column; } + .file.is-boxed .file-cta { + flex-direction: column; + height: auto; + padding: 1em 3em; } + .file.is-boxed .file-name { + border-width: 0 1px 1px; } + .file.is-boxed .file-icon { + height: 1.5em; + width: 1.5em; } + .file.is-boxed .file-icon .fa { + font-size: 21px; } + .file.is-boxed.is-small .file-icon .fa, #documenter .docs-sidebar form.docs-search > input.is-boxed .file-icon .fa { + font-size: 14px; } + .file.is-boxed.is-medium .file-icon .fa { + font-size: 28px; } + .file.is-boxed.is-large .file-icon .fa { + font-size: 35px; } + .file.is-boxed.has-name .file-cta { + border-radius: 4px 4px 0 0; } + .file.is-boxed.has-name .file-name { + border-radius: 0 0 4px 4px; + border-width: 0 1px 1px; } + .file.is-centered { + justify-content: center; } + .file.is-fullwidth .file-label { + width: 100%; } + .file.is-fullwidth .file-name { + flex-grow: 1; + max-width: none; } + .file.is-right { + justify-content: flex-end; } + .file.is-right .file-cta { + border-radius: 0 4px 4px 0; } + .file.is-right .file-name { + border-radius: 4px 0 0 4px; + border-width: 1px 0 1px 1px; + order: -1; } + +.file-label { + align-items: stretch; + display: flex; + cursor: pointer; + justify-content: flex-start; + overflow: hidden; + position: relative; } + .file-label:hover .file-cta { + background-color: #eeeeee; + color: #363636; } + .file-label:hover .file-name { + border-color: #d5d5d5; } + .file-label:active .file-cta { + background-color: #e8e8e8; + color: #363636; } + .file-label:active .file-name { + border-color: #cfcfcf; } + +.file-input { + height: 100%; + left: 0; + opacity: 0; + outline: none; + position: absolute; + top: 0; + width: 100%; } + +.file-cta, +.file-name { + border-color: #dbdbdb; + border-radius: 4px; + font-size: 1em; + padding-left: 1em; + padding-right: 1em; + white-space: nowrap; } + +.file-cta { + background-color: whitesmoke; + color: #4a4a4a; } + +.file-name { + border-color: #dbdbdb; + border-style: solid; + border-width: 1px 1px 1px 0; + display: block; + max-width: 16em; + overflow: hidden; + text-align: left; + text-overflow: ellipsis; } + +.file-icon { + align-items: center; + display: flex; + height: 1em; + justify-content: center; + margin-right: 0.5em; + width: 1em; } + .file-icon .fa { + font-size: 14px; } + +.label { + color: #363636; + display: block; + font-size: 1rem; + font-weight: 700; } + .label:not(:last-child) { + margin-bottom: 0.5em; } + .label.is-small, #documenter .docs-sidebar form.docs-search > input.label { + font-size: 0.75rem; } + .label.is-medium { + font-size: 1.25rem; } + .label.is-large { + font-size: 1.5rem; } + +.help { + display: block; + font-size: 0.75rem; + margin-top: 0.25rem; } + .help.is-white { + color: white; } + .help.is-black { + color: #0a0a0a; } + .help.is-light { + color: whitesmoke; } + .help.is-dark, .content kbd.help { + color: #363636; } + .help.is-primary, .docstring > section > a.help.docs-sourcelink { + color: #4eb5de; } + .help.is-link { + color: #2e63b8; } + .help.is-info { + color: #209cee; } + .help.is-success { + color: #22c35b; } + .help.is-warning { + color: #ffdd57; } + .help.is-danger { + color: #da0b00; } + +.field:not(:last-child) { + margin-bottom: 0.75rem; } + +.field.has-addons { + display: flex; + justify-content: flex-start; } + .field.has-addons .control:not(:last-child) { + margin-right: -1px; } + .field.has-addons .control:not(:first-child):not(:last-child) .button, + .field.has-addons .control:not(:first-child):not(:last-child) .input, + .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input, + .field.has-addons .control:not(:first-child):not(:last-child) .select select { + border-radius: 0; } + .field.has-addons .control:first-child:not(:only-child) .button, + .field.has-addons .control:first-child:not(:only-child) .input, + .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input, + .field.has-addons .control:first-child:not(:only-child) .select select { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + .field.has-addons .control:last-child:not(:only-child) .button, + .field.has-addons .control:last-child:not(:only-child) .input, + .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input, + .field.has-addons .control:last-child:not(:only-child) .select select { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .field.has-addons .control .button:not([disabled]):hover, .field.has-addons .control .button.is-hovered:not([disabled]), + .field.has-addons .control .input:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover, + .field.has-addons .control .input.is-hovered:not([disabled]), + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-hovered:not([disabled]), + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-hovered:not([disabled]), + .field.has-addons .control .select select:not([disabled]):hover, + .field.has-addons .control .select select.is-hovered:not([disabled]) { + z-index: 2; } + .field.has-addons .control .button:not([disabled]):focus, .field.has-addons .control .button.is-focused:not([disabled]), .field.has-addons .control .button:not([disabled]):active, .field.has-addons .control .button.is-active:not([disabled]), + .field.has-addons .control .input:not([disabled]):focus, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus, + .field.has-addons .control .input.is-focused:not([disabled]), + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]), + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]), + .field.has-addons .control .input:not([disabled]):active, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active, + .field.has-addons .control .input.is-active:not([disabled]), + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]), + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]), + .field.has-addons .control .select select:not([disabled]):focus, + .field.has-addons .control .select select.is-focused:not([disabled]), + .field.has-addons .control .select select:not([disabled]):active, + .field.has-addons .control .select select.is-active:not([disabled]) { + z-index: 3; } + .field.has-addons .control .button:not([disabled]):focus:hover, .field.has-addons .control .button.is-focused:not([disabled]):hover, .field.has-addons .control .button:not([disabled]):active:hover, .field.has-addons .control .button.is-active:not([disabled]):hover, + .field.has-addons .control .input:not([disabled]):focus:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover, + .field.has-addons .control .input.is-focused:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]):hover, + .field.has-addons .control .input:not([disabled]):active:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover, + .field.has-addons .control .input.is-active:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]):hover, + .field.has-addons .control .select select:not([disabled]):focus:hover, + .field.has-addons .control .select select.is-focused:not([disabled]):hover, + .field.has-addons .control .select select:not([disabled]):active:hover, + .field.has-addons .control .select select.is-active:not([disabled]):hover { + z-index: 4; } + .field.has-addons .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .field.has-addons.has-addons-centered { + justify-content: center; } + .field.has-addons.has-addons-right { + justify-content: flex-end; } + .field.has-addons.has-addons-fullwidth .control { + flex-grow: 1; + flex-shrink: 0; } + +.field.is-grouped { + display: flex; + justify-content: flex-start; } + .field.is-grouped > .control { + flex-shrink: 0; } + .field.is-grouped > .control:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + .field.is-grouped > .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .field.is-grouped.is-grouped-centered { + justify-content: center; } + .field.is-grouped.is-grouped-right { + justify-content: flex-end; } + .field.is-grouped.is-grouped-multiline { + flex-wrap: wrap; } + .field.is-grouped.is-grouped-multiline > .control:last-child, .field.is-grouped.is-grouped-multiline > .control:not(:last-child) { + margin-bottom: 0.75rem; } + .field.is-grouped.is-grouped-multiline:last-child { + margin-bottom: -0.75rem; } + .field.is-grouped.is-grouped-multiline:not(:last-child) { + margin-bottom: 0; } + +@media screen and (min-width: 769px), print { + .field.is-horizontal { + display: flex; } } + +.field-label .label { + font-size: inherit; } + +@media screen and (max-width: 768px) { + .field-label { + margin-bottom: 0.5rem; } } + +@media screen and (min-width: 769px), print { + .field-label { + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + margin-right: 1.5rem; + text-align: right; } + .field-label.is-small, #documenter .docs-sidebar form.docs-search > input.field-label { + font-size: 0.75rem; + padding-top: 0.375em; } + .field-label.is-normal { + padding-top: 0.375em; } + .field-label.is-medium { + font-size: 1.25rem; + padding-top: 0.375em; } + .field-label.is-large { + font-size: 1.5rem; + padding-top: 0.375em; } } + +.field-body .field .field { + margin-bottom: 0; } + +@media screen and (min-width: 769px), print { + .field-body { + display: flex; + flex-basis: 0; + flex-grow: 5; + flex-shrink: 1; } + .field-body .field { + margin-bottom: 0; } + .field-body > .field { + flex-shrink: 1; } + .field-body > .field:not(.is-narrow) { + flex-grow: 1; } + .field-body > .field:not(:last-child) { + margin-right: 0.75rem; } } + +.control { + box-sizing: border-box; + clear: both; + font-size: 1rem; + position: relative; + text-align: left; } + .control.has-icons-left .input:focus ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon, + .control.has-icons-left .select:focus ~ .icon, .control.has-icons-right .input:focus ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon, + .control.has-icons-right .select:focus ~ .icon { + color: #6b6b6b; } + .control.has-icons-left .input.is-small ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon, + .control.has-icons-left .select.is-small ~ .icon, .control.has-icons-right .input.is-small ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon, + .control.has-icons-right .select.is-small ~ .icon { + font-size: 0.75rem; } + .control.has-icons-left .input.is-medium ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon, + .control.has-icons-left .select.is-medium ~ .icon, .control.has-icons-right .input.is-medium ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon, + .control.has-icons-right .select.is-medium ~ .icon { + font-size: 1.25rem; } + .control.has-icons-left .input.is-large ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon, + .control.has-icons-left .select.is-large ~ .icon, .control.has-icons-right .input.is-large ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon, + .control.has-icons-right .select.is-large ~ .icon { + font-size: 1.5rem; } + .control.has-icons-left .icon, .control.has-icons-right .icon { + color: #dbdbdb; + height: 2.25em; + pointer-events: none; + position: absolute; + top: 0; + width: 2.25em; + z-index: 4; } + .control.has-icons-left .input, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input, + .control.has-icons-left .select select { + padding-left: 2.25em; } + .control.has-icons-left .icon.is-left { + left: 0; } + .control.has-icons-right .input, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input, + .control.has-icons-right .select select { + padding-right: 2.25em; } + .control.has-icons-right .icon.is-right { + right: 0; } + .control.is-loading::after { + position: absolute !important; + right: 0.625em; + top: 0.625em; + z-index: 4; } + .control.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.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 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: #222222; + cursor: default; + pointer-events: none; } + .breadcrumb li + li::before { + color: #b5b5b5; + content: "\0002f"; } + .breadcrumb ul, + .breadcrumb ol { + align-items: flex-start; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .breadcrumb .icon:first-child { + margin-right: 0.5em; } + .breadcrumb .icon:last-child { + margin-left: 0.5em; } + .breadcrumb.is-centered ol, + .breadcrumb.is-centered ul { + justify-content: center; } + .breadcrumb.is-right ol, + .breadcrumb.is-right ul { + justify-content: flex-end; } + .breadcrumb.is-small, #documenter .docs-sidebar form.docs-search > input.breadcrumb { + font-size: 0.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: white; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #222222; + max-width: 100%; + position: relative; } + +.card-header { + background-color: transparent; + align-items: stretch; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + display: flex; } + +.card-header-title { + align-items: center; + color: #222222; + display: flex; + flex-grow: 1; + font-weight: 700; + padding: 0.75rem; } + .card-header-title.is-centered { + justify-content: center; } + +.card-header-icon { + align-items: center; + cursor: pointer; + display: flex; + justify-content: center; + padding: 0.75rem; } + +.card-image { + display: block; + position: relative; } + +.card-content { + background-color: transparent; + padding: 1.5rem; } + +.card-footer { + background-color: transparent; + border-top: 1px solid #dbdbdb; + align-items: stretch; + display: flex; } + +.card-footer-item { + align-items: center; + display: flex; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + justify-content: center; + padding: 0.75rem; } + .card-footer-item:not(:last-child) { + border-right: 1px solid #dbdbdb; } + +.card .media:not(:last-child) { + margin-bottom: 1.5rem; } + +.dropdown { + display: inline-flex; + position: relative; + vertical-align: top; } + .dropdown.is-active .dropdown-menu, .dropdown.is-hoverable:hover .dropdown-menu { + display: block; } + .dropdown.is-right .dropdown-menu { + left: auto; + right: 0; } + .dropdown.is-up .dropdown-menu { + bottom: 100%; + padding-bottom: 4px; + padding-top: initial; + top: auto; } + +.dropdown-menu { + display: none; + left: 0; + min-width: 12rem; + padding-top: 4px; + position: absolute; + top: 100%; + z-index: 20; } + +.dropdown-content { + background-color: white; + border-radius: 4px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + +.dropdown-item { + color: #4a4a4a; + display: block; + font-size: 0.875rem; + line-height: 1.5; + padding: 0.375rem 1rem; + position: relative; } + +a.dropdown-item, +button.dropdown-item { + padding-right: 3rem; + text-align: left; + white-space: nowrap; + width: 100%; } + a.dropdown-item:hover, + button.dropdown-item:hover { + background-color: whitesmoke; + color: #0a0a0a; } + a.dropdown-item.is-active, + button.dropdown-item.is-active { + background-color: #2e63b8; + color: #fff; } + +.dropdown-divider { + background-color: #dbdbdb; + border: none; + display: block; + height: 1px; + margin: 0.5rem 0; } + +.level { + align-items: center; + justify-content: space-between; } + .level code { + border-radius: 4px; } + .level img { + display: inline-block; + vertical-align: top; } + .level.is-mobile { + display: flex; } + .level.is-mobile .level-left, + .level.is-mobile .level-right { + display: flex; } + .level.is-mobile .level-left + .level-right { + margin-top: 0; } + .level.is-mobile .level-item:not(:last-child) { + margin-bottom: 0; + margin-right: 0.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: 0.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: 0.75rem; } } +.level-left { + align-items: center; + justify-content: flex-start; } + @media screen and (max-width: 768px) { + .level-left + .level-right { + margin-top: 1.5rem; } } + @media screen and (min-width: 769px), print { + .level-left { + display: flex; } } +.level-right { + align-items: center; + justify-content: flex-end; } + @media screen and (min-width: 769px), print { + .level-right { + display: flex; } } +.list { + background-color: white; + border-radius: 4px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); } + +.list-item { + display: block; + padding: 0.5em 1em; } + .list-item:not(a) { + color: #222222; } + .list-item:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; } + .list-item:last-child { + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; } + .list-item:not(:last-child) { + border-bottom: 1px solid #dbdbdb; } + .list-item.is-active { + background-color: #2e63b8; + color: #fff; } + +a.list-item { + background-color: whitesmoke; + cursor: pointer; } + +.media { + align-items: flex-start; + display: flex; + text-align: left; } + .media .content:not(:last-child) { + margin-bottom: 0.75rem; } + .media .media { + border-top: 1px solid rgba(219, 219, 219, 0.5); + display: flex; + padding-top: 0.75rem; } + .media .media .content:not(:last-child), + .media .media .control:not(:last-child) { + margin-bottom: 0.5rem; } + .media .media .media { + padding-top: 0.5rem; } + .media .media .media + .media { + margin-top: 0.5rem; } + .media + .media { + border-top: 1px solid rgba(219, 219, 219, 0.5); + margin-top: 1rem; + padding-top: 1rem; } + .media.is-large + .media { + margin-top: 1.5rem; + padding-top: 1.5rem; } + +.media-left, +.media-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + +.media-left { + margin-right: 1rem; } + +.media-right { + margin-left: 1rem; } + +.media-content { + flex-basis: auto; + flex-grow: 1; + flex-shrink: 1; + text-align: left; } + +@media screen and (max-width: 768px) { + .media-content { + overflow-x: auto; } } + +.menu { + font-size: 1rem; } + .menu.is-small, #documenter .docs-sidebar form.docs-search > input.menu { + font-size: 0.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: #222222; + display: block; + padding: 0.5em 0.75em; } + .menu-list a:hover { + background-color: whitesmoke; + color: #222222; } + .menu-list a.is-active { + background-color: #2e63b8; + color: #fff; } + .menu-list li ul { + border-left: 1px solid #dbdbdb; + margin: 0.75em; + padding-left: 0.75em; } + +.menu-label { + color: #6b6b6b; + font-size: 0.75em; + letter-spacing: 0.1em; + text-transform: uppercase; } + .menu-label:not(:first-child) { + margin-top: 1em; } + .menu-label:not(:last-child) { + margin-bottom: 1em; } + +.message { + background-color: whitesmoke; + 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: 0.75rem; } + .message.is-medium { + font-size: 1.25rem; } + .message.is-large { + font-size: 1.5rem; } + .message.is-white { + background-color: white; } + .message.is-white .message-header { + background-color: white; + color: #0a0a0a; } + .message.is-white .message-body { + border-color: white; + color: #4d4d4d; } + .message.is-black { + background-color: #fafafa; } + .message.is-black .message-header { + background-color: #0a0a0a; + color: white; } + .message.is-black .message-body { + border-color: #0a0a0a; + color: #090909; } + .message.is-light { + background-color: #fafafa; } + .message.is-light .message-header { + background-color: whitesmoke; + color: #363636; } + .message.is-light .message-body { + border-color: whitesmoke; + color: #505050; } + .message.is-dark, .content kbd.message { + background-color: #fafafa; } + .message.is-dark .message-header, .content kbd.message .message-header { + background-color: #363636; + color: whitesmoke; } + .message.is-dark .message-body, .content kbd.message .message-body { + border-color: #363636; + color: #2a2a2a; } + .message.is-primary, .docstring > section > a.message.docs-sourcelink { + background-color: #f6fbfd; } + .message.is-primary .message-header, .docstring > section > a.message.docs-sourcelink .message-header { + background-color: #4eb5de; + color: #fff; } + .message.is-primary .message-body, .docstring > section > a.message.docs-sourcelink .message-body { + border-color: #4eb5de; + color: #1f556a; } + .message.is-link { + background-color: #f7f9fd; } + .message.is-link .message-header { + background-color: #2e63b8; + color: #fff; } + .message.is-link .message-body { + border-color: #2e63b8; + color: #264981; } + .message.is-info { + background-color: #f6fbfe; } + .message.is-info .message-header { + background-color: #209cee; + color: #fff; } + .message.is-info .message-body { + border-color: #209cee; + color: #12537d; } + .message.is-success { + background-color: #f6fdf9; } + .message.is-success .message-header { + background-color: #22c35b; + color: #fff; } + .message.is-success .message-body { + border-color: #22c35b; + color: #0f361d; } + .message.is-warning { + background-color: #fffdf5; } + .message.is-warning .message-header { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .message.is-warning .message-body { + border-color: #ffdd57; + color: #3c3108; } + .message.is-danger { + background-color: #fff5f5; } + .message.is-danger .message-header { + background-color: #da0b00; + color: #fff; } + .message.is-danger .message-body { + border-color: #da0b00; + color: #9b0c04; } + +.message-header { + align-items: center; + background-color: #222222; + border-radius: 4px 4px 0 0; + color: #fff; + display: flex; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em 1em; + position: relative; } + .message-header .delete { + flex-grow: 0; + flex-shrink: 0; + margin-left: 0.75em; } + .message-header + .message-body { + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; } + +.message-body { + border-color: #dbdbdb; + border-radius: 4px; + border-style: solid; + border-width: 0 0 0 4px; + color: #222222; + padding: 1.25em 1.5em; } + .message-body code, + .message-body pre { + background-color: white; } + .message-body pre code { + background-color: transparent; } + +.modal { + align-items: center; + display: none; + flex-direction: column; + justify-content: center; + overflow: hidden; + position: fixed; + z-index: 40; } + .modal.is-active { + display: flex; } + +.modal-background { + background-color: rgba(10, 10, 10, 0.86); } + +.modal-content, +.modal-card { + margin: 0 20px; + max-height: calc(100vh - 160px); + overflow: auto; + position: relative; + width: 100%; } + @media screen and (min-width: 769px), print { + .modal-content, + .modal-card { + margin: 0 auto; + max-height: calc(100vh - 40px); + width: 640px; } } +.modal-close { + background: none; + height: 40px; + position: fixed; + right: 20px; + top: 20px; + width: 40px; } + +.modal-card { + display: flex; + flex-direction: column; + max-height: calc(100vh - 40px); + overflow: hidden; + -ms-overflow-y: visible; } + +.modal-card-head, +.modal-card-foot { + align-items: center; + background-color: whitesmoke; + 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: #222222; + flex-grow: 1; + flex-shrink: 0; + font-size: 1.5rem; + line-height: 1; } + +.modal-card-foot { + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + border-top: 1px solid #dbdbdb; } + .modal-card-foot .button:not(:last-child) { + margin-right: 0.5em; } + +.modal-card-body { + -webkit-overflow-scrolling: touch; + background-color: white; + flex-grow: 1; + flex-shrink: 1; + overflow: auto; + padding: 20px; } + +.navbar { + background-color: white; + min-height: 3.25rem; + position: relative; + z-index: 30; } + .navbar.is-white { + background-color: white; + 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: white; + color: #0a0a0a; } } + .navbar.is-black { + background-color: #0a0a0a; + color: white; } + .navbar.is-black .navbar-brand > .navbar-item, + .navbar.is-black .navbar-brand .navbar-link { + color: white; } + .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: black; + color: white; } + .navbar.is-black .navbar-brand .navbar-link::after { + border-color: white; } + .navbar.is-black .navbar-burger { + color: white; } + @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: white; } + .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: black; + color: white; } + .navbar.is-black .navbar-start .navbar-link::after, + .navbar.is-black .navbar-end .navbar-link::after { + border-color: white; } + .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: black; + color: white; } + .navbar.is-black .navbar-dropdown a.navbar-item.is-active { + background-color: #0a0a0a; + color: white; } } + .navbar.is-light { + background-color: whitesmoke; + color: #363636; } + .navbar.is-light .navbar-brand > .navbar-item, + .navbar.is-light .navbar-brand .navbar-link { + color: #363636; } + .navbar.is-light .navbar-brand > a.navbar-item:focus, .navbar.is-light .navbar-brand > a.navbar-item:hover, .navbar.is-light .navbar-brand > a.navbar-item.is-active, + .navbar.is-light .navbar-brand .navbar-link:focus, + .navbar.is-light .navbar-brand .navbar-link:hover, + .navbar.is-light .navbar-brand .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-brand .navbar-link::after { + border-color: #363636; } + .navbar.is-light .navbar-burger { + color: #363636; } + @media screen and (min-width: 1056px) { + .navbar.is-light .navbar-start > .navbar-item, + .navbar.is-light .navbar-start .navbar-link, + .navbar.is-light .navbar-end > .navbar-item, + .navbar.is-light .navbar-end .navbar-link { + color: #363636; } + .navbar.is-light .navbar-start > a.navbar-item:focus, .navbar.is-light .navbar-start > a.navbar-item:hover, .navbar.is-light .navbar-start > a.navbar-item.is-active, + .navbar.is-light .navbar-start .navbar-link:focus, + .navbar.is-light .navbar-start .navbar-link:hover, + .navbar.is-light .navbar-start .navbar-link.is-active, + .navbar.is-light .navbar-end > a.navbar-item:focus, + .navbar.is-light .navbar-end > a.navbar-item:hover, + .navbar.is-light .navbar-end > a.navbar-item.is-active, + .navbar.is-light .navbar-end .navbar-link:focus, + .navbar.is-light .navbar-end .navbar-link:hover, + .navbar.is-light .navbar-end .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-start .navbar-link::after, + .navbar.is-light .navbar-end .navbar-link::after { + border-color: #363636; } + .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #363636; } } + .navbar.is-dark, .content kbd.navbar { + background-color: #363636; + color: whitesmoke; } + .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: whitesmoke; } + .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: whitesmoke; } + .navbar.is-dark .navbar-brand .navbar-link::after, .content kbd.navbar .navbar-brand .navbar-link::after { + border-color: whitesmoke; } + .navbar.is-dark .navbar-burger, .content kbd.navbar .navbar-burger { + color: whitesmoke; } + @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: whitesmoke; } + .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: whitesmoke; } + .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: whitesmoke; } + .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: whitesmoke; } + .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, .content kbd.navbar .navbar-dropdown a.navbar-item.is-active { + background-color: #363636; + color: whitesmoke; } } + .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 whitesmoke; } + .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 whitesmoke; } + .navbar.is-fixed-top { + top: 0; } + +html.has-navbar-fixed-top, +body.has-navbar-fixed-top { + padding-top: 3.25rem; } + +html.has-navbar-fixed-bottom, +body.has-navbar-fixed-bottom { + padding-bottom: 3.25rem; } + +.navbar-brand, +.navbar-tabs { + align-items: stretch; + display: flex; + flex-shrink: 0; + min-height: 3.25rem; } + +.navbar-brand a.navbar-item:focus, .navbar-brand a.navbar-item:hover { + background-color: transparent; } + +.navbar-tabs { + -webkit-overflow-scrolling: touch; + max-width: 100vw; + overflow-x: auto; + overflow-y: hidden; } + +.navbar-burger { + color: #4a4a4a; + cursor: pointer; + display: block; + height: 3.25rem; + position: relative; + width: 3.25rem; + margin-left: auto; } + .navbar-burger span { + background-color: currentColor; + display: block; + height: 1px; + left: calc(50% - 8px); + position: absolute; + transform-origin: center; + transition-duration: 86ms; + transition-property: background-color, opacity, transform; + transition-timing-function: ease-out; + width: 16px; } + .navbar-burger span:nth-child(1) { + top: calc(50% - 6px); } + .navbar-burger span:nth-child(2) { + top: calc(50% - 1px); } + .navbar-burger span:nth-child(3) { + top: calc(50% + 4px); } + .navbar-burger:hover { + background-color: rgba(0, 0, 0, 0.05); } + .navbar-burger.is-active span:nth-child(1) { + transform: translateY(5px) rotate(45deg); } + .navbar-burger.is-active span:nth-child(2) { + opacity: 0; } + .navbar-burger.is-active span:nth-child(3) { + transform: translateY(-5px) rotate(-45deg); } + +.navbar-menu { + display: none; } + +.navbar-item, +.navbar-link { + color: #4a4a4a; + display: block; + line-height: 1.5; + padding: 0.5rem 0.75rem; + position: relative; } + .navbar-item .icon:only-child, + .navbar-link .icon:only-child { + margin-left: -0.25rem; + margin-right: -0.25rem; } + +a.navbar-item, +.navbar-link { + cursor: pointer; } + a.navbar-item:focus, a.navbar-item:focus-within, a.navbar-item:hover, a.navbar-item.is-active, + .navbar-link:focus, + .navbar-link:focus-within, + .navbar-link:hover, + .navbar-link.is-active { + background-color: #fafafa; + color: #2e63b8; } + +.navbar-item { + display: block; + flex-grow: 0; + flex-shrink: 0; } + .navbar-item img { + max-height: 1.75rem; } + .navbar-item.has-dropdown { + padding: 0; } + .navbar-item.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .navbar-item.is-tab { + border-bottom: 1px solid transparent; + min-height: 3.25rem; + padding-bottom: calc(0.5rem - 1px); } + .navbar-item.is-tab:focus, .navbar-item.is-tab:hover { + background-color: transparent; + border-bottom-color: #2e63b8; } + .navbar-item.is-tab.is-active { + background-color: transparent; + 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: whitesmoke; + 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: white; + 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: whitesmoke; + color: #0a0a0a; } + .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #2e63b8; } + .navbar-burger { + display: none; } + .navbar-item, + .navbar-link { + align-items: center; + display: flex; } + .navbar-item { + display: flex; } + .navbar-item.has-dropdown { + align-items: stretch; } + .navbar-item.has-dropdown-up .navbar-link::after { + transform: rotate(135deg) translate(0.25em, -0.25em); } + .navbar-item.has-dropdown-up .navbar-dropdown { + border-bottom: 2px solid #dbdbdb; + border-radius: 6px 6px 0 0; + border-top: none; + bottom: 100%; + box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1); + top: auto; } + .navbar-item.is-active .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown { + display: block; } + .navbar.is-spaced .navbar-item.is-active .navbar-dropdown, .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed { + opacity: 1; + pointer-events: auto; + transform: translateY(0); } + .navbar-menu { + flex-grow: 1; + flex-shrink: 0; } + .navbar-start { + justify-content: flex-start; + margin-right: auto; } + .navbar-end { + justify-content: flex-end; + margin-left: auto; } + .navbar-dropdown { + background-color: white; + 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: whitesmoke; + color: #0a0a0a; } + .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + 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: transparent; } + .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: -0.25rem; } + .pagination.is-small, #documenter .docs-sidebar form.docs-search > input.pagination { + font-size: 0.75rem; } + .pagination.is-medium { + font-size: 1.25rem; } + .pagination.is-large { + font-size: 1.5rem; } + .pagination.is-rounded .pagination-previous, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous, + .pagination.is-rounded .pagination-next, + #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next { + padding-left: 1em; + padding-right: 1em; + border-radius: 290486px; } + .pagination.is-rounded .pagination-link, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link { + border-radius: 290486px; } + +.pagination, +.pagination-list { + align-items: center; + display: flex; + justify-content: center; + text-align: center; } + +.pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis { + font-size: 1em; + justify-content: center; + margin: 0.25rem; + padding-left: 0.5em; + padding-right: 0.5em; + text-align: center; } + +.pagination-previous, +.pagination-next, +.pagination-link { + border-color: #dbdbdb; + color: #363636; + min-width: 2.25em; } + .pagination-previous:hover, + .pagination-next:hover, + .pagination-link:hover { + border-color: #b5b5b5; + color: #363636; } + .pagination-previous:focus, + .pagination-next:focus, + .pagination-link:focus { + border-color: #3c5dcd; } + .pagination-previous:active, + .pagination-next:active, + .pagination-link:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); } + .pagination-previous[disabled], + .pagination-next[disabled], + .pagination-link[disabled] { + background-color: #dbdbdb; + border-color: #dbdbdb; + box-shadow: none; + color: #6b6b6b; + opacity: 0.5; } + +.pagination-previous, +.pagination-next { + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + +.pagination-link.is-current { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + +.pagination-ellipsis { + color: #b5b5b5; + pointer-events: none; } + +.pagination-list { + flex-wrap: wrap; } + +@media screen and (max-width: 768px) { + .pagination { + flex-wrap: wrap; } + .pagination-previous, + .pagination-next { + flex-grow: 1; + flex-shrink: 1; } + .pagination-list li { + flex-grow: 1; + flex-shrink: 1; } } + +@media screen and (min-width: 769px), print { + .pagination-list { + flex-grow: 1; + flex-shrink: 1; + justify-content: flex-start; + order: 1; } + .pagination-previous { + order: 2; } + .pagination-next { + order: 3; } + .pagination { + justify-content: space-between; } + .pagination.is-centered .pagination-previous { + order: 1; } + .pagination.is-centered .pagination-list { + justify-content: center; + order: 2; } + .pagination.is-centered .pagination-next { + order: 3; } + .pagination.is-right .pagination-previous { + order: 1; } + .pagination.is-right .pagination-next { + order: 2; } + .pagination.is-right .pagination-list { + justify-content: flex-end; + order: 3; } } + +.panel { + font-size: 1rem; } + .panel:not(:last-child) { + margin-bottom: 1.5rem; } + +.panel-heading, +.panel-tabs, +.panel-block { + border-bottom: 1px solid #dbdbdb; + border-left: 1px solid #dbdbdb; + border-right: 1px solid #dbdbdb; } + .panel-heading:first-child, + .panel-tabs:first-child, + .panel-block:first-child { + border-top: 1px solid #dbdbdb; } + +.panel-heading { + background-color: whitesmoke; + border-radius: 4px 4px 0 0; + color: #222222; + font-size: 1.25em; + font-weight: 300; + line-height: 1.25; + padding: 0.5em 0.75em; } + +.panel-tabs { + align-items: flex-end; + display: flex; + font-size: 0.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: #222222; } + .panel-list a:hover { + color: #2e63b8; } + +.panel-block { + align-items: center; + color: #222222; + display: flex; + justify-content: flex-start; + padding: 0.5em 0.75em; } + .panel-block input[type="checkbox"] { + margin-right: 0.75em; } + .panel-block > .control { + flex-grow: 1; + flex-shrink: 1; + width: 100%; } + .panel-block.is-wrapped { + flex-wrap: wrap; } + .panel-block.is-active { + border-left-color: #2e63b8; + color: #363636; } + .panel-block.is-active .panel-icon { + color: #2e63b8; } + +a.panel-block, +label.panel-block { + cursor: pointer; } + a.panel-block:hover, + label.panel-block:hover { + background-color: whitesmoke; } + +.panel-icon { + display: inline-block; + font-size: 14px; + height: 1em; + line-height: 1em; + text-align: center; + vertical-align: top; + width: 1em; + color: #6b6b6b; + margin-right: 0.75em; } + .panel-icon .fa { + font-size: inherit; + line-height: inherit; } + +.tabs { + -webkit-overflow-scrolling: touch; + align-items: stretch; + display: flex; + font-size: 1rem; + justify-content: space-between; + overflow: hidden; + overflow-x: auto; + white-space: nowrap; } + .tabs a { + align-items: center; + border-bottom-color: #dbdbdb; + border-bottom-style: solid; + border-bottom-width: 1px; + color: #222222; + display: flex; + justify-content: center; + margin-bottom: -1px; + padding: 0.5em 1em; + vertical-align: top; } + .tabs a:hover { + border-bottom-color: #222222; + color: #222222; } + .tabs li { + display: block; } + .tabs li.is-active a { + border-bottom-color: #2e63b8; + color: #2e63b8; } + .tabs ul { + align-items: center; + border-bottom-color: #dbdbdb; + border-bottom-style: solid; + border-bottom-width: 1px; + display: flex; + flex-grow: 1; + flex-shrink: 0; + justify-content: flex-start; } + .tabs ul.is-left { + padding-right: 0.75em; } + .tabs ul.is-center { + flex: none; + justify-content: center; + padding-left: 0.75em; + padding-right: 0.75em; } + .tabs ul.is-right { + justify-content: flex-end; + padding-left: 0.75em; } + .tabs .icon:first-child { + margin-right: 0.5em; } + .tabs .icon:last-child { + margin-left: 0.5em; } + .tabs.is-centered ul { + justify-content: center; } + .tabs.is-right ul { + justify-content: flex-end; } + .tabs.is-boxed a { + border: 1px solid transparent; + border-radius: 4px 4px 0 0; } + .tabs.is-boxed a:hover { + background-color: whitesmoke; + border-bottom-color: #dbdbdb; } + .tabs.is-boxed li.is-active a { + background-color: white; + border-color: #dbdbdb; + border-bottom-color: transparent !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: whitesmoke; + border-color: #b5b5b5; + z-index: 2; } + .tabs.is-toggle li + li { + margin-left: -1px; } + .tabs.is-toggle li:first-child a { + border-radius: 4px 0 0 4px; } + .tabs.is-toggle li:last-child a { + border-radius: 0 4px 4px 0; } + .tabs.is-toggle li.is-active a { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; + z-index: 1; } + .tabs.is-toggle ul { + border-bottom: none; } + .tabs.is-toggle.is-toggle-rounded li:first-child a { + border-bottom-left-radius: 290486px; + border-top-left-radius: 290486px; + padding-left: 1.25em; } + .tabs.is-toggle.is-toggle-rounded li:last-child a { + border-bottom-right-radius: 290486px; + border-top-right-radius: 290486px; + padding-right: 1.25em; } + .tabs.is-small, #documenter .docs-sidebar form.docs-search > input.tabs { + font-size: 0.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: 0.75rem; } + .columns.is-mobile > .column.is-narrow { + flex: none; } + .columns.is-mobile > .column.is-full { + flex: none; + width: 100%; } + .columns.is-mobile > .column.is-three-quarters { + flex: none; + width: 75%; } + .columns.is-mobile > .column.is-two-thirds { + flex: none; + width: 66.6666%; } + .columns.is-mobile > .column.is-half { + flex: none; + width: 50%; } + .columns.is-mobile > .column.is-one-third { + flex: none; + width: 33.3333%; } + .columns.is-mobile > .column.is-one-quarter { + flex: none; + width: 25%; } + .columns.is-mobile > .column.is-one-fifth { + flex: none; + width: 20%; } + .columns.is-mobile > .column.is-two-fifths { + flex: none; + width: 40%; } + .columns.is-mobile > .column.is-three-fifths { + flex: none; + width: 60%; } + .columns.is-mobile > .column.is-four-fifths { + flex: none; + width: 80%; } + .columns.is-mobile > .column.is-offset-three-quarters { + margin-left: 75%; } + .columns.is-mobile > .column.is-offset-two-thirds { + margin-left: 66.6666%; } + .columns.is-mobile > .column.is-offset-half { + margin-left: 50%; } + .columns.is-mobile > .column.is-offset-one-third { + margin-left: 33.3333%; } + .columns.is-mobile > .column.is-offset-one-quarter { + margin-left: 25%; } + .columns.is-mobile > .column.is-offset-one-fifth { + margin-left: 20%; } + .columns.is-mobile > .column.is-offset-two-fifths { + margin-left: 40%; } + .columns.is-mobile > .column.is-offset-three-fifths { + margin-left: 60%; } + .columns.is-mobile > .column.is-offset-four-fifths { + margin-left: 80%; } + .columns.is-mobile > .column.is-0 { + flex: none; + width: 0%; } + .columns.is-mobile > .column.is-offset-0 { + margin-left: 0%; } + .columns.is-mobile > .column.is-1 { + flex: none; + width: 8.3333333333%; } + .columns.is-mobile > .column.is-offset-1 { + margin-left: 8.3333333333%; } + .columns.is-mobile > .column.is-2 { + flex: none; + width: 16.6666666667%; } + .columns.is-mobile > .column.is-offset-2 { + margin-left: 16.6666666667%; } + .columns.is-mobile > .column.is-3 { + flex: none; + width: 25%; } + .columns.is-mobile > .column.is-offset-3 { + margin-left: 25%; } + .columns.is-mobile > .column.is-4 { + flex: none; + width: 33.3333333333%; } + .columns.is-mobile > .column.is-offset-4 { + margin-left: 33.3333333333%; } + .columns.is-mobile > .column.is-5 { + flex: none; + width: 41.6666666667%; } + .columns.is-mobile > .column.is-offset-5 { + margin-left: 41.6666666667%; } + .columns.is-mobile > .column.is-6 { + flex: none; + width: 50%; } + .columns.is-mobile > .column.is-offset-6 { + margin-left: 50%; } + .columns.is-mobile > .column.is-7 { + flex: none; + width: 58.3333333333%; } + .columns.is-mobile > .column.is-offset-7 { + margin-left: 58.3333333333%; } + .columns.is-mobile > .column.is-8 { + flex: none; + width: 66.6666666667%; } + .columns.is-mobile > .column.is-offset-8 { + margin-left: 66.6666666667%; } + .columns.is-mobile > .column.is-9 { + flex: none; + width: 75%; } + .columns.is-mobile > .column.is-offset-9 { + margin-left: 75%; } + .columns.is-mobile > .column.is-10 { + flex: none; + width: 83.3333333333%; } + .columns.is-mobile > .column.is-offset-10 { + margin-left: 83.3333333333%; } + .columns.is-mobile > .column.is-11 { + flex: none; + width: 91.6666666667%; } + .columns.is-mobile > .column.is-offset-11 { + margin-left: 91.6666666667%; } + .columns.is-mobile > .column.is-12 { + flex: none; + width: 100%; } + .columns.is-mobile > .column.is-offset-12 { + margin-left: 100%; } + @media screen and (max-width: 768px) { + .column.is-narrow-mobile { + flex: none; } + .column.is-full-mobile { + flex: none; + width: 100%; } + .column.is-three-quarters-mobile { + flex: none; + width: 75%; } + .column.is-two-thirds-mobile { + flex: none; + width: 66.6666%; } + .column.is-half-mobile { + flex: none; + width: 50%; } + .column.is-one-third-mobile { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-mobile { + flex: none; + width: 25%; } + .column.is-one-fifth-mobile { + flex: none; + width: 20%; } + .column.is-two-fifths-mobile { + flex: none; + width: 40%; } + .column.is-three-fifths-mobile { + flex: none; + width: 60%; } + .column.is-four-fifths-mobile { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-mobile { + margin-left: 75%; } + .column.is-offset-two-thirds-mobile { + margin-left: 66.6666%; } + .column.is-offset-half-mobile { + margin-left: 50%; } + .column.is-offset-one-third-mobile { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-mobile { + margin-left: 25%; } + .column.is-offset-one-fifth-mobile { + margin-left: 20%; } + .column.is-offset-two-fifths-mobile { + margin-left: 40%; } + .column.is-offset-three-fifths-mobile { + margin-left: 60%; } + .column.is-offset-four-fifths-mobile { + margin-left: 80%; } + .column.is-0-mobile { + flex: none; + width: 0%; } + .column.is-offset-0-mobile { + margin-left: 0%; } + .column.is-1-mobile { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-mobile { + margin-left: 8.3333333333%; } + .column.is-2-mobile { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-mobile { + margin-left: 16.6666666667%; } + .column.is-3-mobile { + flex: none; + width: 25%; } + .column.is-offset-3-mobile { + margin-left: 25%; } + .column.is-4-mobile { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-mobile { + margin-left: 33.3333333333%; } + .column.is-5-mobile { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-mobile { + margin-left: 41.6666666667%; } + .column.is-6-mobile { + flex: none; + width: 50%; } + .column.is-offset-6-mobile { + margin-left: 50%; } + .column.is-7-mobile { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-mobile { + margin-left: 58.3333333333%; } + .column.is-8-mobile { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-mobile { + margin-left: 66.6666666667%; } + .column.is-9-mobile { + flex: none; + width: 75%; } + .column.is-offset-9-mobile { + margin-left: 75%; } + .column.is-10-mobile { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-mobile { + margin-left: 83.3333333333%; } + .column.is-11-mobile { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-mobile { + margin-left: 91.6666666667%; } + .column.is-12-mobile { + flex: none; + width: 100%; } + .column.is-offset-12-mobile { + margin-left: 100%; } } + @media screen and (min-width: 769px), print { + .column.is-narrow, .column.is-narrow-tablet { + flex: none; } + .column.is-full, .column.is-full-tablet { + flex: none; + width: 100%; } + .column.is-three-quarters, .column.is-three-quarters-tablet { + flex: none; + width: 75%; } + .column.is-two-thirds, .column.is-two-thirds-tablet { + flex: none; + width: 66.6666%; } + .column.is-half, .column.is-half-tablet { + flex: none; + width: 50%; } + .column.is-one-third, .column.is-one-third-tablet { + flex: none; + width: 33.3333%; } + .column.is-one-quarter, .column.is-one-quarter-tablet { + flex: none; + width: 25%; } + .column.is-one-fifth, .column.is-one-fifth-tablet { + flex: none; + width: 20%; } + .column.is-two-fifths, .column.is-two-fifths-tablet { + flex: none; + width: 40%; } + .column.is-three-fifths, .column.is-three-fifths-tablet { + flex: none; + width: 60%; } + .column.is-four-fifths, .column.is-four-fifths-tablet { + flex: none; + width: 80%; } + .column.is-offset-three-quarters, .column.is-offset-three-quarters-tablet { + margin-left: 75%; } + .column.is-offset-two-thirds, .column.is-offset-two-thirds-tablet { + margin-left: 66.6666%; } + .column.is-offset-half, .column.is-offset-half-tablet { + margin-left: 50%; } + .column.is-offset-one-third, .column.is-offset-one-third-tablet { + margin-left: 33.3333%; } + .column.is-offset-one-quarter, .column.is-offset-one-quarter-tablet { + margin-left: 25%; } + .column.is-offset-one-fifth, .column.is-offset-one-fifth-tablet { + margin-left: 20%; } + .column.is-offset-two-fifths, .column.is-offset-two-fifths-tablet { + margin-left: 40%; } + .column.is-offset-three-fifths, .column.is-offset-three-fifths-tablet { + margin-left: 60%; } + .column.is-offset-four-fifths, .column.is-offset-four-fifths-tablet { + margin-left: 80%; } + .column.is-0, .column.is-0-tablet { + flex: none; + width: 0%; } + .column.is-offset-0, .column.is-offset-0-tablet { + margin-left: 0%; } + .column.is-1, .column.is-1-tablet { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1, .column.is-offset-1-tablet { + margin-left: 8.3333333333%; } + .column.is-2, .column.is-2-tablet { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2, .column.is-offset-2-tablet { + margin-left: 16.6666666667%; } + .column.is-3, .column.is-3-tablet { + flex: none; + width: 25%; } + .column.is-offset-3, .column.is-offset-3-tablet { + margin-left: 25%; } + .column.is-4, .column.is-4-tablet { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4, .column.is-offset-4-tablet { + margin-left: 33.3333333333%; } + .column.is-5, .column.is-5-tablet { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5, .column.is-offset-5-tablet { + margin-left: 41.6666666667%; } + .column.is-6, .column.is-6-tablet { + flex: none; + width: 50%; } + .column.is-offset-6, .column.is-offset-6-tablet { + margin-left: 50%; } + .column.is-7, .column.is-7-tablet { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7, .column.is-offset-7-tablet { + margin-left: 58.3333333333%; } + .column.is-8, .column.is-8-tablet { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8, .column.is-offset-8-tablet { + margin-left: 66.6666666667%; } + .column.is-9, .column.is-9-tablet { + flex: none; + width: 75%; } + .column.is-offset-9, .column.is-offset-9-tablet { + margin-left: 75%; } + .column.is-10, .column.is-10-tablet { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10, .column.is-offset-10-tablet { + margin-left: 83.3333333333%; } + .column.is-11, .column.is-11-tablet { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11, .column.is-offset-11-tablet { + margin-left: 91.6666666667%; } + .column.is-12, .column.is-12-tablet { + flex: none; + width: 100%; } + .column.is-offset-12, .column.is-offset-12-tablet { + margin-left: 100%; } } + @media screen and (max-width: 1055px) { + .column.is-narrow-touch { + flex: none; } + .column.is-full-touch { + flex: none; + width: 100%; } + .column.is-three-quarters-touch { + flex: none; + width: 75%; } + .column.is-two-thirds-touch { + flex: none; + width: 66.6666%; } + .column.is-half-touch { + flex: none; + width: 50%; } + .column.is-one-third-touch { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-touch { + flex: none; + width: 25%; } + .column.is-one-fifth-touch { + flex: none; + width: 20%; } + .column.is-two-fifths-touch { + flex: none; + width: 40%; } + .column.is-three-fifths-touch { + flex: none; + width: 60%; } + .column.is-four-fifths-touch { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-touch { + margin-left: 75%; } + .column.is-offset-two-thirds-touch { + margin-left: 66.6666%; } + .column.is-offset-half-touch { + margin-left: 50%; } + .column.is-offset-one-third-touch { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-touch { + margin-left: 25%; } + .column.is-offset-one-fifth-touch { + margin-left: 20%; } + .column.is-offset-two-fifths-touch { + margin-left: 40%; } + .column.is-offset-three-fifths-touch { + margin-left: 60%; } + .column.is-offset-four-fifths-touch { + margin-left: 80%; } + .column.is-0-touch { + flex: none; + width: 0%; } + .column.is-offset-0-touch { + margin-left: 0%; } + .column.is-1-touch { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-touch { + margin-left: 8.3333333333%; } + .column.is-2-touch { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-touch { + margin-left: 16.6666666667%; } + .column.is-3-touch { + flex: none; + width: 25%; } + .column.is-offset-3-touch { + margin-left: 25%; } + .column.is-4-touch { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-touch { + margin-left: 33.3333333333%; } + .column.is-5-touch { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-touch { + margin-left: 41.6666666667%; } + .column.is-6-touch { + flex: none; + width: 50%; } + .column.is-offset-6-touch { + margin-left: 50%; } + .column.is-7-touch { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-touch { + margin-left: 58.3333333333%; } + .column.is-8-touch { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-touch { + margin-left: 66.6666666667%; } + .column.is-9-touch { + flex: none; + width: 75%; } + .column.is-offset-9-touch { + margin-left: 75%; } + .column.is-10-touch { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-touch { + margin-left: 83.3333333333%; } + .column.is-11-touch { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-touch { + margin-left: 91.6666666667%; } + .column.is-12-touch { + flex: none; + width: 100%; } + .column.is-offset-12-touch { + margin-left: 100%; } } + @media screen and (min-width: 1056px) { + .column.is-narrow-desktop { + flex: none; } + .column.is-full-desktop { + flex: none; + width: 100%; } + .column.is-three-quarters-desktop { + flex: none; + width: 75%; } + .column.is-two-thirds-desktop { + flex: none; + width: 66.6666%; } + .column.is-half-desktop { + flex: none; + width: 50%; } + .column.is-one-third-desktop { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-desktop { + flex: none; + width: 25%; } + .column.is-one-fifth-desktop { + flex: none; + width: 20%; } + .column.is-two-fifths-desktop { + flex: none; + width: 40%; } + .column.is-three-fifths-desktop { + flex: none; + width: 60%; } + .column.is-four-fifths-desktop { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-desktop { + margin-left: 75%; } + .column.is-offset-two-thirds-desktop { + margin-left: 66.6666%; } + .column.is-offset-half-desktop { + margin-left: 50%; } + .column.is-offset-one-third-desktop { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-desktop { + margin-left: 25%; } + .column.is-offset-one-fifth-desktop { + margin-left: 20%; } + .column.is-offset-two-fifths-desktop { + margin-left: 40%; } + .column.is-offset-three-fifths-desktop { + margin-left: 60%; } + .column.is-offset-four-fifths-desktop { + margin-left: 80%; } + .column.is-0-desktop { + flex: none; + width: 0%; } + .column.is-offset-0-desktop { + margin-left: 0%; } + .column.is-1-desktop { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-desktop { + margin-left: 8.3333333333%; } + .column.is-2-desktop { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-desktop { + margin-left: 16.6666666667%; } + .column.is-3-desktop { + flex: none; + width: 25%; } + .column.is-offset-3-desktop { + margin-left: 25%; } + .column.is-4-desktop { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-desktop { + margin-left: 33.3333333333%; } + .column.is-5-desktop { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-desktop { + margin-left: 41.6666666667%; } + .column.is-6-desktop { + flex: none; + width: 50%; } + .column.is-offset-6-desktop { + margin-left: 50%; } + .column.is-7-desktop { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-desktop { + margin-left: 58.3333333333%; } + .column.is-8-desktop { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-desktop { + margin-left: 66.6666666667%; } + .column.is-9-desktop { + flex: none; + width: 75%; } + .column.is-offset-9-desktop { + margin-left: 75%; } + .column.is-10-desktop { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-desktop { + margin-left: 83.3333333333%; } + .column.is-11-desktop { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-desktop { + margin-left: 91.6666666667%; } + .column.is-12-desktop { + flex: none; + width: 100%; } + .column.is-offset-12-desktop { + margin-left: 100%; } } + @media screen and (min-width: 1216px) { + .column.is-narrow-widescreen { + flex: none; } + .column.is-full-widescreen { + flex: none; + width: 100%; } + .column.is-three-quarters-widescreen { + flex: none; + width: 75%; } + .column.is-two-thirds-widescreen { + flex: none; + width: 66.6666%; } + .column.is-half-widescreen { + flex: none; + width: 50%; } + .column.is-one-third-widescreen { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-widescreen { + flex: none; + width: 25%; } + .column.is-one-fifth-widescreen { + flex: none; + width: 20%; } + .column.is-two-fifths-widescreen { + flex: none; + width: 40%; } + .column.is-three-fifths-widescreen { + flex: none; + width: 60%; } + .column.is-four-fifths-widescreen { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-widescreen { + margin-left: 75%; } + .column.is-offset-two-thirds-widescreen { + margin-left: 66.6666%; } + .column.is-offset-half-widescreen { + margin-left: 50%; } + .column.is-offset-one-third-widescreen { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-widescreen { + margin-left: 25%; } + .column.is-offset-one-fifth-widescreen { + margin-left: 20%; } + .column.is-offset-two-fifths-widescreen { + margin-left: 40%; } + .column.is-offset-three-fifths-widescreen { + margin-left: 60%; } + .column.is-offset-four-fifths-widescreen { + margin-left: 80%; } + .column.is-0-widescreen { + flex: none; + width: 0%; } + .column.is-offset-0-widescreen { + margin-left: 0%; } + .column.is-1-widescreen { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-widescreen { + margin-left: 8.3333333333%; } + .column.is-2-widescreen { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-widescreen { + margin-left: 16.6666666667%; } + .column.is-3-widescreen { + flex: none; + width: 25%; } + .column.is-offset-3-widescreen { + margin-left: 25%; } + .column.is-4-widescreen { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-widescreen { + margin-left: 33.3333333333%; } + .column.is-5-widescreen { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-widescreen { + margin-left: 41.6666666667%; } + .column.is-6-widescreen { + flex: none; + width: 50%; } + .column.is-offset-6-widescreen { + margin-left: 50%; } + .column.is-7-widescreen { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-widescreen { + margin-left: 58.3333333333%; } + .column.is-8-widescreen { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-widescreen { + margin-left: 66.6666666667%; } + .column.is-9-widescreen { + flex: none; + width: 75%; } + .column.is-offset-9-widescreen { + margin-left: 75%; } + .column.is-10-widescreen { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-widescreen { + margin-left: 83.3333333333%; } + .column.is-11-widescreen { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-widescreen { + margin-left: 91.6666666667%; } + .column.is-12-widescreen { + flex: none; + width: 100%; } + .column.is-offset-12-widescreen { + margin-left: 100%; } } + @media screen and (min-width: 1408px) { + .column.is-narrow-fullhd { + flex: none; } + .column.is-full-fullhd { + flex: none; + width: 100%; } + .column.is-three-quarters-fullhd { + flex: none; + width: 75%; } + .column.is-two-thirds-fullhd { + flex: none; + width: 66.6666%; } + .column.is-half-fullhd { + flex: none; + width: 50%; } + .column.is-one-third-fullhd { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-fullhd { + flex: none; + width: 25%; } + .column.is-one-fifth-fullhd { + flex: none; + width: 20%; } + .column.is-two-fifths-fullhd { + flex: none; + width: 40%; } + .column.is-three-fifths-fullhd { + flex: none; + width: 60%; } + .column.is-four-fifths-fullhd { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-fullhd { + margin-left: 75%; } + .column.is-offset-two-thirds-fullhd { + margin-left: 66.6666%; } + .column.is-offset-half-fullhd { + margin-left: 50%; } + .column.is-offset-one-third-fullhd { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-fullhd { + margin-left: 25%; } + .column.is-offset-one-fifth-fullhd { + margin-left: 20%; } + .column.is-offset-two-fifths-fullhd { + margin-left: 40%; } + .column.is-offset-three-fifths-fullhd { + margin-left: 60%; } + .column.is-offset-four-fifths-fullhd { + margin-left: 80%; } + .column.is-0-fullhd { + flex: none; + width: 0%; } + .column.is-offset-0-fullhd { + margin-left: 0%; } + .column.is-1-fullhd { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-fullhd { + margin-left: 8.3333333333%; } + .column.is-2-fullhd { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-fullhd { + margin-left: 16.6666666667%; } + .column.is-3-fullhd { + flex: none; + width: 25%; } + .column.is-offset-3-fullhd { + margin-left: 25%; } + .column.is-4-fullhd { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-fullhd { + margin-left: 33.3333333333%; } + .column.is-5-fullhd { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-fullhd { + margin-left: 41.6666666667%; } + .column.is-6-fullhd { + flex: none; + width: 50%; } + .column.is-offset-6-fullhd { + margin-left: 50%; } + .column.is-7-fullhd { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-fullhd { + margin-left: 58.3333333333%; } + .column.is-8-fullhd { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-fullhd { + margin-left: 66.6666666667%; } + .column.is-9-fullhd { + flex: none; + width: 75%; } + .column.is-offset-9-fullhd { + margin-left: 75%; } + .column.is-10-fullhd { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-fullhd { + margin-left: 83.3333333333%; } + .column.is-11-fullhd { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-fullhd { + margin-left: 91.6666666667%; } + .column.is-12-fullhd { + flex: none; + width: 100%; } + .column.is-offset-12-fullhd { + margin-left: 100%; } } +.columns { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + .columns:last-child { + margin-bottom: -0.75rem; } + .columns:not(:last-child) { + margin-bottom: calc(1.5rem - 0.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: 0.25rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-1-mobile { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-1-tablet { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-1-tablet-only { + --columnGap: 0.25rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-1-touch { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-1-desktop { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-1-desktop-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-1-widescreen { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-1-widescreen-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-1-fullhd { + --columnGap: 0.25rem; } } + .columns.is-variable.is-2 { + --columnGap: 0.5rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-2-mobile { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-2-tablet { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-2-tablet-only { + --columnGap: 0.5rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-2-touch { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-2-desktop { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-2-desktop-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-2-widescreen { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-2-widescreen-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-2-fullhd { + --columnGap: 0.5rem; } } + .columns.is-variable.is-3 { + --columnGap: 0.75rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-3-mobile { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-3-tablet { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-3-tablet-only { + --columnGap: 0.75rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-3-touch { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-3-desktop { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-3-desktop-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-3-widescreen { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-3-widescreen-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-3-fullhd { + --columnGap: 0.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: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + .tile.is-ancestor:last-child { + margin-bottom: -0.75rem; } + .tile.is-ancestor:not(:last-child) { + margin-bottom: 0.75rem; } + .tile.is-child { + margin: 0 !important; } + .tile.is-parent { + padding: 0.75rem; } + .tile.is-vertical { + flex-direction: column; } + .tile.is-vertical > .tile.is-child:not(:last-child) { + margin-bottom: 1.5rem !important; } + @media screen and (min-width: 769px), print { + .tile:not(.is-child) { + display: flex; } + .tile.is-1 { + flex: none; + width: 8.3333333333%; } + .tile.is-2 { + flex: none; + width: 16.6666666667%; } + .tile.is-3 { + flex: none; + width: 25%; } + .tile.is-4 { + flex: none; + width: 33.3333333333%; } + .tile.is-5 { + flex: none; + width: 41.6666666667%; } + .tile.is-6 { + flex: none; + width: 50%; } + .tile.is-7 { + flex: none; + width: 58.3333333333%; } + .tile.is-8 { + flex: none; + width: 66.6666666667%; } + .tile.is-9 { + flex: none; + width: 75%; } + .tile.is-10 { + flex: none; + width: 83.3333333333%; } + .tile.is-11 { + flex: none; + width: 91.6666666667%; } + .tile.is-12 { + flex: none; + width: 100%; } } +.hero { + align-items: stretch; + display: flex; + flex-direction: column; + justify-content: space-between; } + .hero .navbar { + background: none; } + .hero .tabs ul { + border-bottom: none; } + .hero.is-white { + background-color: white; + 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: white; } } + .hero.is-white .navbar-item, + .hero.is-white .navbar-link { + color: rgba(10, 10, 10, 0.7); } + .hero.is-white a.navbar-item:hover, .hero.is-white a.navbar-item.is-active, + .hero.is-white .navbar-link:hover, + .hero.is-white .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + .hero.is-white .tabs a { + color: #0a0a0a; + opacity: 0.9; } + .hero.is-white .tabs a:hover { + opacity: 1; } + .hero.is-white .tabs li.is-active a { + opacity: 1; } + .hero.is-white .tabs.is-boxed a, .hero.is-white .tabs.is-toggle a { + color: #0a0a0a; } + .hero.is-white .tabs.is-boxed a:hover, .hero.is-white .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-white .tabs.is-boxed li.is-active a, .hero.is-white .tabs.is-boxed li.is-active a:hover, .hero.is-white .tabs.is-toggle li.is-active a, .hero.is-white .tabs.is-toggle li.is-active a:hover { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .hero.is-white.is-bold { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } + @media screen and (max-width: 768px) { + .hero.is-white.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } } + .hero.is-black { + background-color: #0a0a0a; + color: white; } + .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: white; } + .hero.is-black .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-black .subtitle a:not(.button), + .hero.is-black .subtitle strong { + color: white; } + @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: black; + color: white; } + .hero.is-black .tabs a { + color: white; + opacity: 0.9; } + .hero.is-black .tabs a:hover { + opacity: 1; } + .hero.is-black .tabs li.is-active a { + opacity: 1; } + .hero.is-black .tabs.is-boxed a, .hero.is-black .tabs.is-toggle a { + color: white; } + .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: white; + border-color: white; + color: #0a0a0a; } + .hero.is-black.is-bold { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } + @media screen and (max-width: 768px) { + .hero.is-black.is-bold .navbar-menu { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } } + .hero.is-light { + background-color: whitesmoke; + color: #363636; } + .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-light strong { + color: inherit; } + .hero.is-light .title { + color: #363636; } + .hero.is-light .subtitle { + color: rgba(54, 54, 54, 0.9); } + .hero.is-light .subtitle a:not(.button), + .hero.is-light .subtitle strong { + color: #363636; } + @media screen and (max-width: 1055px) { + .hero.is-light .navbar-menu { + background-color: whitesmoke; } } + .hero.is-light .navbar-item, + .hero.is-light .navbar-link { + color: rgba(54, 54, 54, 0.7); } + .hero.is-light a.navbar-item:hover, .hero.is-light a.navbar-item.is-active, + .hero.is-light .navbar-link:hover, + .hero.is-light .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .hero.is-light .tabs a { + color: #363636; + opacity: 0.9; } + .hero.is-light .tabs a:hover { + opacity: 1; } + .hero.is-light .tabs li.is-active a { + opacity: 1; } + .hero.is-light .tabs.is-boxed a, .hero.is-light .tabs.is-toggle a { + color: #363636; } + .hero.is-light .tabs.is-boxed a:hover, .hero.is-light .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-light .tabs.is-boxed li.is-active a, .hero.is-light .tabs.is-boxed li.is-active a:hover, .hero.is-light .tabs.is-toggle li.is-active a, .hero.is-light .tabs.is-toggle li.is-active a:hover { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .hero.is-light.is-bold { + background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } + @media screen and (max-width: 768px) { + .hero.is-light.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } } + .hero.is-dark, .content kbd.hero { + background-color: #363636; + color: whitesmoke; } + .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: whitesmoke; } + .hero.is-dark .subtitle, .content kbd.hero .subtitle { + color: rgba(245, 245, 245, 0.9); } + .hero.is-dark .subtitle a:not(.button), .content kbd.hero .subtitle a:not(.button), + .hero.is-dark .subtitle strong, + .content kbd.hero .subtitle strong { + color: whitesmoke; } + @media screen and (max-width: 1055px) { + .hero.is-dark .navbar-menu, .content kbd.hero .navbar-menu { + background-color: #363636; } } + .hero.is-dark .navbar-item, .content kbd.hero .navbar-item, + .hero.is-dark .navbar-link, + .content kbd.hero .navbar-link { + color: rgba(245, 245, 245, 0.7); } + .hero.is-dark a.navbar-item:hover, .content kbd.hero a.navbar-item:hover, .hero.is-dark a.navbar-item.is-active, .content kbd.hero a.navbar-item.is-active, + .hero.is-dark .navbar-link:hover, + .content kbd.hero .navbar-link:hover, + .hero.is-dark .navbar-link.is-active, + .content kbd.hero .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; } + .hero.is-dark .tabs a, .content kbd.hero .tabs a { + color: whitesmoke; + opacity: 0.9; } + .hero.is-dark .tabs a:hover, .content kbd.hero .tabs a:hover { + opacity: 1; } + .hero.is-dark .tabs li.is-active a, .content kbd.hero .tabs li.is-active a { + opacity: 1; } + .hero.is-dark .tabs.is-boxed a, .content kbd.hero .tabs.is-boxed a, .hero.is-dark .tabs.is-toggle a, .content kbd.hero .tabs.is-toggle a { + color: whitesmoke; } + .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: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .hero.is-dark.is-bold, .content kbd.hero.is-bold { + background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); } + @media screen and (max-width: 768px) { + .hero.is-dark.is-bold .navbar-menu, .content kbd.hero.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); } } + .hero.is-primary, .docstring > section > a.hero.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-primary strong, + .docstring > section > a.hero.docs-sourcelink strong { + color: inherit; } + .hero.is-primary .title, .docstring > section > a.hero.docs-sourcelink .title { + color: #fff; } + .hero.is-primary .subtitle, .docstring > section > a.hero.docs-sourcelink .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-primary .subtitle a:not(.button), .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button), + .hero.is-primary .subtitle strong, + .docstring > section > a.hero.docs-sourcelink .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-primary .navbar-menu, .docstring > section > a.hero.docs-sourcelink .navbar-menu { + background-color: #4eb5de; } } + .hero.is-primary .navbar-item, .docstring > section > a.hero.docs-sourcelink .navbar-item, + .hero.is-primary .navbar-link, + .docstring > section > a.hero.docs-sourcelink .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-primary a.navbar-item:hover, .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, .hero.is-primary a.navbar-item.is-active, .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active, + .hero.is-primary .navbar-link:hover, + .docstring > section > a.hero.docs-sourcelink .navbar-link:hover, + .hero.is-primary .navbar-link.is-active, + .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active { + background-color: #39acda; + color: #fff; } + .hero.is-primary .tabs a, .docstring > section > a.hero.docs-sourcelink .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-primary .tabs a:hover, .docstring > section > a.hero.docs-sourcelink .tabs a:hover { + opacity: 1; } + .hero.is-primary .tabs li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a { + opacity: 1; } + .hero.is-primary .tabs.is-boxed a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, .hero.is-primary .tabs.is-toggle a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a { + color: #fff; } + .hero.is-primary .tabs.is-boxed a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, .hero.is-primary .tabs.is-toggle a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-primary .tabs.is-boxed li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, .hero.is-primary .tabs.is-boxed li.is-active a:hover, .hero.is-primary .tabs.is-toggle li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, .hero.is-primary .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #4eb5de; } + .hero.is-primary.is-bold, .docstring > section > a.hero.is-bold.docs-sourcelink { + background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); } + @media screen and (max-width: 768px) { + .hero.is-primary.is-bold .navbar-menu, .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu { + background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); } } + .hero.is-link { + background-color: #2e63b8; + color: #fff; } + .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-link strong { + color: inherit; } + .hero.is-link .title { + color: #fff; } + .hero.is-link .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-link .subtitle a:not(.button), + .hero.is-link .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-link .navbar-menu { + background-color: #2e63b8; } } + .hero.is-link .navbar-item, + .hero.is-link .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-link a.navbar-item:hover, .hero.is-link a.navbar-item.is-active, + .hero.is-link .navbar-link:hover, + .hero.is-link .navbar-link.is-active { + background-color: #2958a4; + color: #fff; } + .hero.is-link .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-link .tabs a:hover { + opacity: 1; } + .hero.is-link .tabs li.is-active a { + opacity: 1; } + .hero.is-link .tabs.is-boxed a, .hero.is-link .tabs.is-toggle a { + color: #fff; } + .hero.is-link .tabs.is-boxed a:hover, .hero.is-link .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-link .tabs.is-boxed li.is-active a, .hero.is-link .tabs.is-boxed li.is-active a:hover, .hero.is-link .tabs.is-toggle li.is-active a, .hero.is-link .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #2e63b8; } + .hero.is-link.is-bold { + background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); } + @media screen and (max-width: 768px) { + .hero.is-link.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); } } + .hero.is-info { + background-color: #209cee; + color: #fff; } + .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-info strong { + color: inherit; } + .hero.is-info .title { + color: #fff; } + .hero.is-info .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-info .subtitle a:not(.button), + .hero.is-info .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-info .navbar-menu { + background-color: #209cee; } } + .hero.is-info .navbar-item, + .hero.is-info .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-info a.navbar-item:hover, .hero.is-info a.navbar-item.is-active, + .hero.is-info .navbar-link:hover, + .hero.is-info .navbar-link.is-active { + background-color: #1190e3; + color: #fff; } + .hero.is-info .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-info .tabs a:hover { + opacity: 1; } + .hero.is-info .tabs li.is-active a { + opacity: 1; } + .hero.is-info .tabs.is-boxed a, .hero.is-info .tabs.is-toggle a { + color: #fff; } + .hero.is-info .tabs.is-boxed a:hover, .hero.is-info .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-info .tabs.is-boxed li.is-active a, .hero.is-info .tabs.is-boxed li.is-active a:hover, .hero.is-info .tabs.is-toggle li.is-active a, .hero.is-info .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #209cee; } + .hero.is-info.is-bold { + background-image: linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%); } + @media screen and (max-width: 768px) { + .hero.is-info.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%); } } + .hero.is-success { + background-color: #22c35b; + color: #fff; } + .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-success strong { + color: inherit; } + .hero.is-success .title { + color: #fff; } + .hero.is-success .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-success .subtitle a:not(.button), + .hero.is-success .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-success .navbar-menu { + background-color: #22c35b; } } + .hero.is-success .navbar-item, + .hero.is-success .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-success a.navbar-item:hover, .hero.is-success a.navbar-item.is-active, + .hero.is-success .navbar-link:hover, + .hero.is-success .navbar-link.is-active { + background-color: #1ead51; + color: #fff; } + .hero.is-success .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-success .tabs a:hover { + opacity: 1; } + .hero.is-success .tabs li.is-active a { + opacity: 1; } + .hero.is-success .tabs.is-boxed a, .hero.is-success .tabs.is-toggle a { + color: #fff; } + .hero.is-success .tabs.is-boxed a:hover, .hero.is-success .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-success .tabs.is-boxed li.is-active a, .hero.is-success .tabs.is-boxed li.is-active a:hover, .hero.is-success .tabs.is-toggle li.is-active a, .hero.is-success .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #22c35b; } + .hero.is-success.is-bold { + background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); } + @media screen and (max-width: 768px) { + .hero.is-success.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); } } + .hero.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-warning strong { + color: inherit; } + .hero.is-warning .title { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .subtitle { + color: rgba(0, 0, 0, 0.9); } + .hero.is-warning .subtitle a:not(.button), + .hero.is-warning .subtitle strong { + color: rgba(0, 0, 0, 0.7); } + @media screen and (max-width: 1055px) { + .hero.is-warning .navbar-menu { + background-color: #ffdd57; } } + .hero.is-warning .navbar-item, + .hero.is-warning .navbar-link { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning a.navbar-item:hover, .hero.is-warning a.navbar-item.is-active, + .hero.is-warning .navbar-link:hover, + .hero.is-warning .navbar-link.is-active { + background-color: #ffd83e; + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .tabs a { + color: rgba(0, 0, 0, 0.7); + opacity: 0.9; } + .hero.is-warning .tabs a:hover { + opacity: 1; } + .hero.is-warning .tabs li.is-active a { + opacity: 1; } + .hero.is-warning .tabs.is-boxed a, .hero.is-warning .tabs.is-toggle a { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .tabs.is-boxed a:hover, .hero.is-warning .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-warning .tabs.is-boxed li.is-active a, .hero.is-warning .tabs.is-boxed li.is-active a:hover, .hero.is-warning .tabs.is-toggle li.is-active a, .hero.is-warning .tabs.is-toggle li.is-active a:hover { + background-color: rgba(0, 0, 0, 0.7); + border-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .hero.is-warning.is-bold { + background-image: linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%); } + @media screen and (max-width: 768px) { + .hero.is-warning.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%); } } + .hero.is-danger { + background-color: #da0b00; + color: #fff; } + .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-danger strong { + color: inherit; } + .hero.is-danger .title { + color: #fff; } + .hero.is-danger .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-danger .subtitle a:not(.button), + .hero.is-danger .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-danger .navbar-menu { + background-color: #da0b00; } } + .hero.is-danger .navbar-item, + .hero.is-danger .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-danger a.navbar-item:hover, .hero.is-danger a.navbar-item.is-active, + .hero.is-danger .navbar-link:hover, + .hero.is-danger .navbar-link.is-active { + background-color: #c10a00; + color: #fff; } + .hero.is-danger .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-danger .tabs a:hover { + opacity: 1; } + .hero.is-danger .tabs li.is-active a { + opacity: 1; } + .hero.is-danger .tabs.is-boxed a, .hero.is-danger .tabs.is-toggle a { + color: #fff; } + .hero.is-danger .tabs.is-boxed a:hover, .hero.is-danger .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-danger .tabs.is-boxed li.is-active a, .hero.is-danger .tabs.is-boxed li.is-active a:hover, .hero.is-danger .tabs.is-toggle li.is-active a, .hero.is-danger .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #da0b00; } + .hero.is-danger.is-bold { + background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); } + @media screen and (max-width: 768px) { + .hero.is-danger.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); } } + .hero.is-small .hero-body, #documenter .docs-sidebar form.docs-search > input.hero .hero-body { + padding-bottom: 1.5rem; + padding-top: 1.5rem; } + @media screen and (min-width: 769px), print { + .hero.is-medium .hero-body { + padding-bottom: 9rem; + padding-top: 9rem; } } + @media screen and (min-width: 769px), print { + .hero.is-large .hero-body { + padding-bottom: 18rem; + padding-top: 18rem; } } + .hero.is-halfheight .hero-body, .hero.is-fullheight .hero-body, .hero.is-fullheight-with-navbar .hero-body { + align-items: center; + display: flex; } + .hero.is-halfheight .hero-body > .container, .hero.is-fullheight .hero-body > .container, .hero.is-fullheight-with-navbar .hero-body > .container { + flex-grow: 1; + flex-shrink: 1; } + .hero.is-halfheight { + min-height: 50vh; } + .hero.is-fullheight { + min-height: 100vh; } + +.hero-video { + overflow: hidden; } + .hero-video video { + left: 50%; + min-height: 100%; + min-width: 100%; + position: absolute; + top: 50%; + transform: translate3d(-50%, -50%, 0); } + .hero-video.is-transparent { + opacity: 0.3; } + @media screen and (max-width: 768px) { + .hero-video { + display: none; } } +.hero-buttons { + margin-top: 1.5rem; } + @media screen and (max-width: 768px) { + .hero-buttons .button { + display: flex; } + .hero-buttons .button:not(:last-child) { + margin-bottom: 0.75rem; } } + @media screen and (min-width: 769px), print { + .hero-buttons { + display: flex; + justify-content: center; } + .hero-buttons .button:not(:last-child) { + margin-right: 1.5rem; } } +.hero-head, +.hero-foot { + flex-grow: 0; + flex-shrink: 0; } + +.hero-body { + flex-grow: 1; + flex-shrink: 0; + padding: 3rem 1.5rem; } + +.section { + padding: 3rem 1.5rem; } + @media screen and (min-width: 1056px) { + .section.is-medium { + padding: 9rem 1.5rem; } + .section.is-large { + padding: 18rem 1.5rem; } } +.footer { + background-color: #fafafa; + padding: 3rem 1.5rem 6rem; } + +h1 .docs-heading-anchor, h1 .docs-heading-anchor:hover, h1 .docs-heading-anchor:visited, h2 .docs-heading-anchor, h2 .docs-heading-anchor:hover, h2 .docs-heading-anchor:visited, h3 .docs-heading-anchor, h3 .docs-heading-anchor:hover, h3 .docs-heading-anchor:visited, h4 .docs-heading-anchor, h4 .docs-heading-anchor:hover, h4 .docs-heading-anchor:visited, h5 .docs-heading-anchor, h5 .docs-heading-anchor:hover, h5 .docs-heading-anchor:visited, h6 .docs-heading-anchor, h6 .docs-heading-anchor:hover, h6 .docs-heading-anchor:visited { + color: #222222; } + +h1 .docs-heading-anchor-permalink, h2 .docs-heading-anchor-permalink, h3 .docs-heading-anchor-permalink, h4 .docs-heading-anchor-permalink, h5 .docs-heading-anchor-permalink, h6 .docs-heading-anchor-permalink { + visibility: hidden; + vertical-align: middle; + margin-left: 0.5em; + font-size: 0.7rem; } + h1 .docs-heading-anchor-permalink::before, h2 .docs-heading-anchor-permalink::before, h3 .docs-heading-anchor-permalink::before, h4 .docs-heading-anchor-permalink::before, h5 .docs-heading-anchor-permalink::before, h6 .docs-heading-anchor-permalink::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f0c1"; } + +h1:hover .docs-heading-anchor-permalink, h2:hover .docs-heading-anchor-permalink, h3:hover .docs-heading-anchor-permalink, h4:hover .docs-heading-anchor-permalink, h5:hover .docs-heading-anchor-permalink, h6:hover .docs-heading-anchor-permalink { + visibility: visible; } + +.docs-dark-only { + display: none !important; } + +pre { + position: relative; + overflow: hidden; } + pre code, pre code.hljs { + padding: 0 0.75rem !important; + overflow: auto; + display: block; } + pre code:first-of-type, pre code.hljs:first-of-type { + padding-top: 0.5rem !important; } + pre code:last-of-type, pre code.hljs:last-of-type { + padding-bottom: 0.5rem !important; } + pre .copy-button { + opacity: 0.2; + transition: opacity 0.2s; + position: absolute; + right: 0em; + top: 0em; + padding: 0.5em; + width: 2.5em; + height: 2.5em; + background: transparent; + border: none; + font-family: "Font Awesome 5 Free"; + color: #222222; + 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: 0.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 0.75rem; + position: relative; } + .admonition-header:before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + margin-right: 0.75rem; + content: "\f06a"; } + +.admonition-body { + color: #222222; + padding: 0.5rem 0.75rem; } + .admonition-body pre { + background-color: whitesmoke; } + .admonition-body code { + background-color: rgba(0, 0, 0, 0.05); } + +.docstring { + margin-bottom: 1em; + background-color: transparent; + border: 1px solid #dbdbdb; + box-shadow: 2px 2px 3px rgba(10, 10, 10, 0.1); + max-width: 100%; } + .docstring > header { + display: flex; + flex-grow: 1; + align-items: stretch; + padding: 0.5rem 0.75rem; + background-color: whitesmoke; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + box-shadow: none; + border-bottom: 1px solid #dbdbdb; } + .docstring > header code { + background-color: transparent; } + .docstring > header .docstring-binding { + margin-right: 0.3em; } + .docstring > header .docstring-category { + margin-left: 0.3em; } + .docstring > section { + position: relative; + padding: 0.75rem 0.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: 0.375rem; + bottom: 0.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: white; } + +.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: #222222; } + +.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: #222222; } + +.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; } + +/* This file contain the overall layout. + * + * The main container is
    that is identified by id #documenter. + */ +#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: white; + border-bottom: 1px solid #dbdbdb; + z-index: 2; + min-height: 4rem; + margin-bottom: 1rem; + display: flex; } + #documenter .docs-main header.docs-navbar .breadcrumb { + flex-grow: 1; } + #documenter .docs-main header.docs-navbar .docs-right { + display: flex; + white-space: nowrap; } + #documenter .docs-main header.docs-navbar .docs-right .docs-icon, #documenter .docs-main header.docs-navbar .docs-right .docs-label, #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + display: inline-block; } + #documenter .docs-main header.docs-navbar .docs-right .docs-label { + padding: 0; + margin-left: 0.3em; } + #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button { + margin: auto 0 auto 1rem; } + #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + font-size: 1.5rem; + margin: auto 0 auto 1rem; } + #documenter .docs-main header.docs-navbar > * { + margin: auto 0; } + @media screen and (max-width: 1055px) { + #documenter .docs-main header.docs-navbar { + position: sticky; + top: 0; + padding: 0 1rem; + /* For Headroom.js */ + transition-property: top, box-shadow; + -webkit-transition-property: top, box-shadow; + /* Safari */ + transition-duration: 0.3s; + -webkit-transition-duration: 0.3s; + /* Safari */ } + #documenter .docs-main header.docs-navbar.headroom--not-top { + box-shadow: 0.2rem 0rem 0.4rem #bbb; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } + #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; + /* Safari */ } } +#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: whitesmoke; + 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; + /* Setting up a nicer theme style for the scrollbar */ } + #documenter .docs-sidebar.visible { + left: 0; + box-shadow: 0.4rem 0rem 0.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; + /* Managing collapsible submenus */ } + #documenter .docs-sidebar ul.docs-menu > li > .tocitem { + font-weight: bold; } + #documenter .docs-sidebar ul.docs-menu > li li { + font-size: 0.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: 0.75rem; + margin-left: 1rem; + margin-top: auto; + margin-bottom: auto; } + #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f054"; } + #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before { + content: "\f078"; } + #documenter .docs-sidebar ul.docs-menu .tocitem { + display: block; + padding: 0.5rem 0.5rem; } + #documenter .docs-sidebar ul.docs-menu .tocitem, #documenter .docs-sidebar ul.docs-menu .tocitem:hover { + color: #0a0a0a; + background: whitesmoke; } + #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: white; } + #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover { + background-color: white; + 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: 0.85rem; + border-left: none; + margin-left: 0; + margin-top: 0.5rem; } + #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem { + width: 100%; + padding: 0; } + #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before { + content: "⚬"; + margin-right: 0.4em; } + #documenter .docs-sidebar form.docs-search { + margin: auto; + margin-top: 0.5rem; + margin-bottom: 0.5rem; } + #documenter .docs-sidebar form.docs-search > input { + width: 14.4rem; } + @media screen and (min-width: 1056px) { + #documenter .docs-sidebar ul.docs-menu { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar { + width: .3rem; + background: none; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #e0e0e0; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover { + background: #cccccc; } } + @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: #cccccc; } } +#documenter .docs-main #documenter-search-info { + margin-bottom: 1rem; } + +#documenter .docs-main #documenter-search-results { + list-style-type: circle; + list-style-position: outside; } + #documenter .docs-main #documenter-search-results li { + margin-left: 2rem; } + #documenter .docs-main #documenter-search-results .docs-highlight { + background-color: yellow; } + +.ansi span.sgr1 { + font-weight: bolder; } + +.ansi span.sgr2 { + font-weight: lighter; } + +.ansi span.sgr3 { + font-style: italic; } + +.ansi span.sgr4 { + text-decoration: underline; } + +.ansi span.sgr7 { + color: white; + background-color: #222222; } + +.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: whitesmoke; } + +.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: whitesmoke; } + +code.language-julia-repl > span.hljs-meta { + color: #066f00; + font-weight: bolder; } + +/*! + Theme: Default + Description: Original highlight.js style + Author: (c) Ivan Sagalaev + Maintainer: @highlightjs/core-team + Website: https://highlightjs.org/ + License: see project LICENSE + Touched: 2021 +*/ +/* +This is left on purpose making default.css the single file that can be lifted +as-is from the repository directly without the need for a build step + +Typically this "required" baseline CSS is added by `makestuff.js` during build. +*/ +pre code.hljs { + display: block; + overflow-x: auto; } + +code.hljs { + padding: 3px 5px; } + +/* end baseline CSS */ +.hljs { + background: #F0F0F0; + color: #444; } + +/* Base color: saturation 0; */ +.hljs-subst { + /* default */ } + +/* purposely ignored */ +.hljs-comment { + color: #888888; } + +.hljs-tag, +.hljs-punctuation { + color: #444a; } + +.hljs-tag .hljs-name, +.hljs-tag .hljs-attr { + color: #444; } + +.hljs-keyword, +.hljs-attribute, +.hljs-selector-tag, +.hljs-meta .hljs-keyword, +.hljs-doctag, +.hljs-name { + font-weight: bold; } + +/* User color: hue: 0 */ +.hljs-type, +.hljs-string, +.hljs-number, +.hljs-selector-id, +.hljs-selector-class, +.hljs-quote, +.hljs-template-tag, +.hljs-deletion { + color: #880000; } + +.hljs-title, +.hljs-section { + color: #880000; + font-weight: bold; } + +.hljs-regexp, +.hljs-symbol, +.hljs-variable, +.hljs-template-variable, +.hljs-link, +.hljs-selector-attr, +.hljs-operator, +.hljs-selector-pseudo { + color: #BC6060; } + +/* Language color: hue: 90; */ +.hljs-literal { + color: #78A960; } + +.hljs-built_in, +.hljs-bullet, +.hljs-code, +.hljs-addition { + color: #397300; } + +/* Meta color: hue: 200 */ +.hljs-meta { + color: #1f7199; } + +.hljs-meta .hljs-string { + color: #4d99bf; } + +/* Misc effects */ +.hljs-emphasis { + font-style: italic; } + +.hljs-strong { + font-weight: bold; } diff --git a/previews/PR300/assets/themeswap.js b/previews/PR300/assets/themeswap.js new file mode 100644 index 000000000..c58e993e3 --- /dev/null +++ b/previews/PR300/assets/themeswap.js @@ -0,0 +1,66 @@ +// Small function to quickly swap out themes. Gets put into the tag.. +function set_theme_from_local_storage() { + // Intialize the theme to null, which means default + var theme = null; + // If the browser supports the localstorage and is not disabled then try to get the + // documenter theme + if(window.localStorage != null) { + // Get the user-picked theme from localStorage. May be `null`, which means the default + // theme. + theme = window.localStorage.getItem("documenter-theme"); + } + // Check if the browser supports user color preference + var darkPreference = false; + // Check if the users preference is for dark color scheme + if(window.matchMedia('(prefers-color-scheme: dark)').matches === true) { + darkPreference = true; + } + // Initialize a few variables for the loop: + // + // - active: will contain the index of the theme that should be active. Note that there + // is no guarantee that localStorage contains sane values. If `active` stays `null` + // we either could not find the theme or it is the default (primary) theme anyway. + // Either way, we then need to stick to the primary theme. + // + // - disabled: style sheets that should be disabled (i.e. all the theme style sheets + // that are not the currently active theme) + var active = null; var disabled = []; var darkTheme = null; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + // The tag of each style sheet is expected to have a data-theme-name attribute + // which must contain the name of the theme. The names in localStorage much match this. + var themename = ss.ownerNode.getAttribute("data-theme-name"); + // attribute not set => non-theme stylesheet => ignore + if(themename === null) continue; + // To distinguish the default (primary) theme, it needs to have the data-theme-primary + // attribute set. + var isprimary = (ss.ownerNode.getAttribute("data-theme-primary") !== null); + // Check if the theme is primary dark theme + var isDarkTheme = (ss.ownerNode.getAttribute("data-theme-primary-dark") !== null); + // If ss is for dark theme then set the value of darkTheme to the name of the theme + if(isDarkTheme) darkTheme = themename; + // If we find a matching theme (and it's not the default), we'll set active to non-null + if(themename === theme) active = i; + // Store the style sheets of inactive themes so that we could disable them + if(themename !== theme) disabled.push(ss); + } + if(active !== null) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + theme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + else if(darkTheme !== null && darkPreference === true) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + darkTheme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + if (ss.ownerNode.getAttribute("data-theme-name") !== darkTheme) { + ss.disabled = true; + } + }); + } +} +set_theme_from_local_storage(); diff --git a/previews/PR300/assets/warner.js b/previews/PR300/assets/warner.js new file mode 100644 index 000000000..5531c8851 --- /dev/null +++ b/previews/PR300/assets/warner.js @@ -0,0 +1,49 @@ +function maybeAddWarning () { + // DOCUMENTER_NEWEST is defined in versions.js, DOCUMENTER_CURRENT_VERSION and DOCUMENTER_STABLE + // in siteinfo.js. + // If either of these are undefined something went horribly wrong, so we abort. + if ( + window.DOCUMENTER_NEWEST === undefined || + window.DOCUMENTER_CURRENT_VERSION === undefined || + window.DOCUMENTER_STABLE === undefined + ) { + return + }; + + // Current version is not a version number, so we can't tell if it's the newest version. Abort. + if (!/v(\d+\.)*\d+/.test(window.DOCUMENTER_CURRENT_VERSION)) { + return + }; + + // Current version is newest version, so no need to add a warning. + if (window.DOCUMENTER_NEWEST === window.DOCUMENTER_CURRENT_VERSION) { + return + }; + + // Add a noindex meta tag (unless one exists) so that search engines don't index this version of the docs. + if (document.body.querySelector('meta[name="robots"]') === null) { + const meta = document.createElement('meta'); + meta.name = 'robots'; + meta.content = 'noindex'; + + document.getElementsByTagName('head')[0].appendChild(meta); + }; + + const div = document.createElement('div'); + div.classList.add('outdated-warning-overlay'); + const closer = document.createElement('button'); + closer.classList.add('outdated-warning-closer', 'delete'); + closer.addEventListener('click', function () { + document.body.removeChild(div); + }); + const href = window.documenterBaseURL + '/../' + window.DOCUMENTER_STABLE; + div.innerHTML = 'This documentation is not for the latest stable release, but for either the development version or an older release.
    Click here to go to the documentation for the latest stable release.'; + div.appendChild(closer); + document.body.appendChild(div); +}; + +if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', maybeAddWarning); +} else { + maybeAddWarning(); +}; diff --git a/previews/PR300/boundary_conditions/index.html b/previews/PR300/boundary_conditions/index.html new file mode 100644 index 000000000..b04671aec --- /dev/null +++ b/previews/PR300/boundary_conditions/index.html @@ -0,0 +1,2 @@ + +Boundary conditions · SpeedyWeather.jl

    Boundary conditions

    This page describes the formulation of boundary conditions and their implementation.

    diff --git a/previews/PR300/conventions/index.html b/previews/PR300/conventions/index.html new file mode 100644 index 000000000..085a21905 --- /dev/null +++ b/previews/PR300/conventions/index.html @@ -0,0 +1,12 @@ + +Style and convention guide · SpeedyWeather.jl

    Style and convention guide

    In SpeedyWeather.jl we've been following the several conventions that are documented here.

    Variable naming

    The prognostic variables in spectral space are called

        vor         # Vorticity of horizontal wind field
    +    div         # Divergence of horizontal wind field
    +    temp        # Absolute temperature [K]
    +    pres_surf   # Logarithm of surface pressure [log(Pa)]
    +    humid       # Specific humidity [g/kg]

    their transforms into grid-point space get a _grid suffix, their tendencies a _tend suffix. Further derived diagnostic dynamic variables are

        u
    +    v
    +    geopot
    +    ...

    Preallocation

    All arrays representing variables are preallocated and grouped into two structs

        Prog::PrognosticVariables
    +    Diag::DiagnosticVariables

    The Diag struct contains further structs which represent the grid-point transformations of the prognostic variables and their tendencies.

        gridvars::GridVariables
    +    tendencies::Tendencies
    +    ...

    Constant arrays are grouped into several structs

    Boundaries

    Julian conventions

    We follow Julia's style guide and highlight here some important aspects of it.

    • Bang (!) convention. A function func does not change its input arguments, however, func! does.

    Hence, func! is often the in-place version of func, avoiding as much memory allocation as possible and often changing its first argument, e.g. func!(out,in) so that argument in is used to calculate out which has been preallocated before function call.

    • Number format flexibility. Numeric literals such as 2.0 or 1/3 are only used in the model setup

    but avoided throughout the code to obtain a fully number format-flexible package using the number format NF as a compile-time variable throughout the code. This often leads to overly specific code whereas a Real would generally suffice. However, this is done to avoid any implicit type conversions.

    diff --git a/previews/PR300/development/index.html b/previews/PR300/development/index.html new file mode 100644 index 000000000..fa5a41bbf --- /dev/null +++ b/previews/PR300/development/index.html @@ -0,0 +1,3 @@ + +Development notes · SpeedyWeather.jl

    Development notes

    To run tests, from the path of your local clone of the repository do:

    julia --project=. -e 'import Pkg; Pkg.test()'

    To install dependencies:

    julia --project -e 'import Pkg; Pkg.instantiate()`

    then opening:

    julia --project

    you are able to using SpeedyWeather.

    To generate the docs:

    julia --project=docs -e 'import Pkg; Pkg.develop(path="."); Pkg.instantiate()'
    +julia --project=docs docs/make.jl

    If the docs are generated successfully, you view them by opening docs/build/index.html in your favorite browser.

    diff --git a/previews/PR300/dynamical_core/index.html b/previews/PR300/dynamical_core/index.html new file mode 100644 index 000000000..366fb14b1 --- /dev/null +++ b/previews/PR300/dynamical_core/index.html @@ -0,0 +1,20 @@ + +Dynamical core · SpeedyWeather.jl

    Dynamical core

    A mathematical and implementation-specific description of the dynamical core used in SpeedyWeather.jl. We start by describing the barotropic vorticity equations which is one set of equations that SpeedyWeather.jl can solve (see How to run SpeedyWeather.jl) as many details therein also apply to the Shallow water equations and Primitive equations explained thereafter.

    The dynamical core presented here largely follows the idealized models with spectral dynamics developed at the Geophysical Fluid Dynamics Laboratory[1]: A barotropic vorticity model[2], a shallow water model [3] and a primitive equation model[4].

    Barotropic vorticity equation

    The barotropic vorticity equation is the prognostic equation that describes the time evolution of relative vorticity $\zeta$ with advection, Coriolis force and diffusion in a single global layer.

    \[\frac{\partial \zeta}{\partial t} + \nabla \cdot (\mathbf{u}(\zeta + f)) = (-1)^{n+1}\nu\nabla^{2n}\zeta\]

    with time $t$, velocity vector $\mathbf{u} = (u, v)$, Coriolis parameter $f$, and hyperdiffusion $(-1)^{n+1} \nu \nabla^{2n} \zeta$ ($n$ is the hyperdiffusion order; see Horizontal diffusion). Starting with some relative vorticity $\zeta$, the Laplacian is inverted to obtain the stream function $\Psi$

    \[\Psi = \nabla^{-2}\zeta\]

    The zonal velocity $u$ and meridional velocity $v$ are then the (negative) meridional gradient and zonal gradient of $\Psi$

    \[\begin{aligned} +u &= -\frac{1}{R} \frac{\partial \Psi}{\partial \theta} \\ +v &= \frac{1}{R\cos(\theta)} \frac{\partial \Psi}{\partial \phi} \\ +\end{aligned}\]

    which is described in Derivatives in spherical coordinates.

    Algorithm

    We briefly outline the algorithm that SpeedyWeather.jl uses in order to integrate the barotropic vorticity equation

    1. Start with initial conditions of $\zeta_{lm}$ in spectral space
    2. Use $\zeta_{lm}$ to
      • Invert the Laplacian to obtain the stream function $\Psi_{lm}$ in spectral space
      • Transform $\zeta_{lm}$ to $\zeta$ in grid-point space
    3. Use $\Psi_lm$ to
    4. Transform zonal and meridional velocity $(\cos(\theta)u)_{lm}$, $(\cos(\theta)v)_{lm}$ to grid-point space and unscale the $\cos(\theta)$ factor to obtain $u,v$.
    5. Multiply $u,v$ with $\zeta+f$ in grid-point space
    6. Transform $u(\zeta + f)$ and $v(\zeta+f)$ to spectral space
    7. Compute the divergence of $(\mathbf{u}(\zeta + f))_{lm}$ in spectral space through a Meridional derivative and Zonal derivative which will be the tendency of $\zeta_{lm}$
    8. Compute the Horizontal diffusion based on that tendency
    9. Compute a leapfrog time step as described in Time integration
    10. Repeat from 1.

    Shallow water equations

    \[\begin{aligned} +\frac{\partial \zeta}{\partial t} + \nabla \cdot (\mathbf{u}(\zeta + f)) &= (-1)^{n+1}\nu\nabla^{2n}\zeta \\ +\frac{\partial \mathcal{D}}{\partial t} - \nabla \times (\mathbf{u}(\zeta + f)) &= -\nabla^2(\tfrac{1}{2}(u^2 + v^2) + g\eta) + (-1)^{n+1}\nu\nabla^{2n}\mathcal{D} \\ +\frac{\partial \eta}{\partial t} + \nabla \cdot (\mathbf{u}h) &= 0. +\end{aligned}\]

    more to come

    Primitive equations

    The primitive equations solved by SpeedyWeather.jl are

    \[\begin{aligned} +\partial_t u = ... \\ +\partial_t v = ... \\ +\partial_t T = ... \\ +\partial_t Q = ... +\end{aligned}\]

    more to come

    Horizontal diffusion

    In SpeedyWeather.jl we use hyerdiffusion through an $n$-th power Laplacian $(-1)^{n+1}\nabla^{2n}$ (hyper when $n>1$) which can be implemented as a multiplication of the spectral coefficients $\Psi_{lm}$ with $(-l(l+1))^nR^{-2n}$ (see spectral Laplacian) It is therefore computationally not more expensive to apply hyperdiffusion over diffusion as the $(-l(l+1))^nR^{-2n}$ can be precomputed. Note the sign change $(-1)^{n+1}$ here is such that the dissipative nature of the diffusion operator is retained for $n$ odd and even.

    In SpeedyWeather.jl the diffusion is applied implicitly. For that, consider a leapfrog scheme with time step $\Delta t$ of variable $\zeta$ to obtain from time steps $i-1$ and $i$, the next time step $i+1$

    \[\zeta_{i+1} = \zeta_{i-1} + 2\Delta t d\zeta,\]

    with $d\zeta$ being some tendency evaluated from $\zeta_i$. Now we want to add a diffusion term $(-1)^{n+1}\nu \nabla^{2n}\zeta$ with viscosity $\nu$, wich however, is implicitly calculated from $\zeta_{i+1}$, then

    \[\zeta_{i+1} = \zeta_{i-1} + 2\Delta t (d\zeta + (-1)^{n+1} \nu\nabla^{2n}\zeta_{i+1})\]

    As the application of $(-1)^{n+1}\nu\nabla^{2n}$ is, for every spectral mode, equivalent to a multiplication of a constant, we can rewrite this to

    \[\zeta_{i+1} = \frac{\zeta_{i-1} + 2\Delta t d\zeta}{1 - 2\Delta (-1)^{n+1}\nu\nabla^{2n}},\]

    and expand the numerator to

    \[\zeta_{i+1} = \zeta_{i-1} + 2\Delta t \frac{d\zeta + (-1)^{n+1} \nu\nabla^{2n}\zeta_{i-1}}{1 - 2\Delta t (-1)^{n+1}\nu \nabla^{2n}},\]

    Hence the diffusion can be applied implicitly by updating the tendency $d\zeta$ as

    \[d\zeta \to \frac{d\zeta + (-1)^{n+1}\nu\nabla^{2n}\zeta_{i-1}}{1 - 2\Delta t \nu \nabla^{2n}}\]

    which only depends on $\zeta_{i-1}$. Now let $D_\text{explicit} = (-1)^{n+1}\nu\nabla^{2n}$ be the explicit part and $D_\text{implicit} = 1 - (-1)^{n+1} 2\Delta t \nu\nabla^{2n}$ the implicit part. Both parts can be precomputed and are $D_\text{implicit} = 1 - 2\Delta t \nu\nabla^{2n}$ the implicit part. Both parts can be precomputed and are only an element-wise multiplication in spectral space. For every spectral harmonic $l,m$ we do

    \[d\zeta \to D_\text{implicit}^{-1}(d\zeta + D_\text{explicit}\zeta_{i-1}).\]

    Hence 2 multiplications and 1 subtraction with precomputed constants. However, we will normalize the (hyper-)Laplacians as described in the following. This also will take care of the alternating sign such that the diffusion operation is dissipative regardless the power $n$.

    Normalization of diffusion

    In physics, the Laplace operator $\nabla^2$ is often used to represent diffusion due to viscosity in a fluid. In that case, the viscosity coefficient is $\nu$ of units $\text{m}^2\text{s}^{-1}$ and the full operator reads as $\nu \nabla^2$ with units $(\text{m}^2\text{s}^{-1})(\text{m}^{-2}) = \text{s}^{-1}$. This motivates us to normalize the Laplace operator by a constant of units $\text{m}^{-2}$ and the viscosity coefficient by its inverse such that the viscosity coefficient becomes a damping timescale of unit $\text{s}^{-1}$. Given the application in spectral space we decide to normalize by the largest eigenvalue $-l_\text{max}(l_\text{max}+1)$ such that all entries in the discrete spectral Laplace operator are in $[0,1]$. This also has the effect that the alternating sign drops out, such that higher wavenumbers are always dampened and not amplified. The normalized viscosity coefficient $\nu^* = l_\text{max}(l_\text{max}+1)\nu$ (always positive) is therefore reinterpreted as the (inverse) time scale at which the highest wavenumber is dampened to zero due to diffusion. Together we have

    \[D^\text{explicit}_{l,m} = -\nu^* \frac{l(l+1)}{l_\text{max}(l_\text{max}+1)}\]

    and the hyper-Laplacian of power $n$ follows as

    \[D^\text{explicit,n}_{l,m} = -\nu^* \left(\frac{l(l+1)}{l_\text{max}(l_\text{max}+1)}\right)^n\]

    and the implicit part is accordingly $D^\text{implicit,n}_{l,m} = 1 - 2\Delta t D^\text{explicit,n}_{l,m}$.

    Radius scaling

    SpeedyWeather.jl uses a scaling for vorticity $\zeta$ and stream function $\Psi$ that is

    \[\tilde{\zeta} = \zeta R, \tilde{\Psi} = \Psi R^{-1}.\]

    In the barotropic voriticity equation model the inversion of the Laplcians in order to obtain $\Psi$ from $\zeta$ therefore becomes

    \[\tilde{\zeta} = \tilde{\nabla}^2 \tilde{\Psi}\]

    where the dimensionless gradients simply omit the scaling with $1/R$, $\tilde{\nabla} = R\nabla$. The Barotropic vorticity equation scaled with $R^2$ is

    \[\partial_{\tilde{t}}\tilde{\zeta} + \tilde{\nabla} \cdot (\mathbf{u}(\tilde{\zeta} + \tilde{f})) = \tilde{\nu}\tilde{\nabla}^{2n}\tilde{\zeta}\]

    with

    • $\tilde{t} = tR^{-1}$, the scaled time $t$
    • $\mathbf{u} = (u,v)$, the velocity vector (no scaling applied)
    • $\tilde{f} = fR$, the scaled Coriolis parameter $f$
    • $\tilde{\nu} = \nu^* R$, the scaled viscosity $\nu^*$, which itself is normalized to a damping time scale, see Normalization of diffusion.

    Scaled shallow water equations

    Similar to the scaled barotropic vorticity equations, the scaled shallow water equations scale the vorticity and the divergence equation with $R^2$, but the continuity equation with $R$

    \[\begin{aligned} +\frac{\partial \tilde{\zeta}}{\partial \tilde{t}} + \tilde{\nabla} \cdot (\mathbf{u}(\tilde{\zeta} + \tilde{f})) &= +\tilde{\nu}\tilde{\nabla}^{2n}\tilde{\zeta} \\ +\frac{\partial \tilde{\mathcal{D}}}{\partial \tilde{t}} - \tilde{\nabla} \times (\mathbf{u}(\tilde{\zeta} + \tilde{f})) &= +-\tilde{\nabla}^2\left(\tfrac{1}{2}(u^2 + v^2) + g\eta \right) + \tilde{\nu}\tilde{\nabla}^{2n}\tilde{\mathcal{D}} \\ +\frac{\partial \eta}{\partial \tilde{t}} + \tilde{\nabla} \cdot (\mathbf{u}h) &= 0. +\end{aligned}\]

    Time integration

    SpeedyWeather.jl uses a leapfrog time scheme with a Robert's and William's filter to dampen the computational mode and achieve 3rd order accuracy.

    Oscillation equation

    \[\frac{dF}{dt} = i\omega F\]

    References

    diff --git a/previews/PR300/functions/index.html b/previews/PR300/functions/index.html new file mode 100644 index 000000000..a01dce484 --- /dev/null +++ b/previews/PR300/functions/index.html @@ -0,0 +1,103 @@ + +Function and type index · SpeedyWeather.jl

    Function and type index

    Parameters and constants

    SpeedyWeather.ParametersType
    P = Parameters{M<:ModelSetup}(kwargs...) <: AbstractParameters{M}

    A struct to hold all model parameters that may be changed by the user. The struct uses keywords such that default values can be changed at creation. The default values of the keywords define the default model setup.

    • NF::DataType: number format

    • trunc::Int64: spectral truncation

    • Grid::Type{<:SpeedyWeather.RingGrids.AbstractGrid}: grid in use

    • dealiasing::Float64: dealiasing factor, 1=linear, 2=quadratic, 3=cubic grid

    • planet::SpeedyWeather.Planet: planet

    • mol_mass_dry_air::Any: molar mass of dry air [g/mol]

    • mol_mass_vapour::Any: molar mass of water vapour [g/mol]

    • cₚ::Float64: specific heat at constant pressure [J/K/kg]

    • R_gas::Float64: universal gas constant [J/K/mol]

    • R_dry::Float64: specific gas constant for dry air [J/kg/K]

    • R_vapour::Float64: specific gas constant for water vapour [J/kg/K]

    • alhc::Float64: latent heat of condensation [J/g] for consistency with specific humidity [g/Kg]

    • alhs::Float64: latent heat of sublimation [?]

    • sbc::Float64: stefan-Boltzmann constant [W/m²/K⁴]

    • lapse_rate::Float64: moist adiabatic temperature lapse rate $-dT/dz$ [K/km]

    • temp_ref::Float64: absolute temperature at surface $z=0$ [K]

    • temp_top::Float64: absolute temperature in stratosphere [K]

    • ΔT_stratosphere::Float64: for stratospheric lapse rate [K] after Jablonowski

    • scale_height::Float64: scale height for pressure [km]

    • pres_ref::Float64: surface pressure [hPa]

    • scale_height_humid::Float64: scale height for specific humidity [km]

    • relhumid_ref::Float64: relative humidity of near-surface air [1]

    • water_pres_ref::Float64: saturation water vapour pressure [Pa]

    • layer_thickness::Float64: layer thickness for the shallow water model [km]

    • GLcoefs::SpeedyWeather.Coefficients: vertical coordinates of the nlev vertical levels, defined by a generalised logistic function, interpolating ECMWF's L31 configuration

    • σ_tropopause::Float64: σ coordinate where the tropopause starts

    • σ_levels_half::Vector{Float64}: only used if set manually, otherwise empty

    • nlev::Int64: number of vertical levels

    • diffusion::SpeedyWeather.DiffusionParameters: horizontal (hyper)-diffusion

    • vertical_diffusion::SpeedyWeather.VerticalDiffusion: vertical diffusion

    • static_energy_diffusion::SpeedyWeather.VerticalDiffusion: static energy diffusion

    • interface_relaxation::Bool: turn on interface relaxation for shallow water?

    • interface_relax_time::Float64: time scale [hrs] of interface relaxation

    • interface_relax_amplitude::Float64: Amplitude [m] of interface relaxation

    • physics::Bool: en/disables the physics parameterizations

    • n_shortwave::Int64: Compute shortwave radiation every n steps

    • sppt_on::Bool: Turn on SPPT?

    • magnus_coefs::SpeedyWeather.Coefficients: For computing saturation vapour pressure

    • k_lsc::Int64: Index of atmospheric level at which large-scale condensation begins

    • RH_thresh_pbl_lsc::Float64: Relative humidity threshold for boundary layer

    • RH_thresh_range_lsc::Float64: Vertical range of relative humidity threshold

    • RH_thresh_max_lsc::Float64: Maximum relative humidity threshold

    • humid_relax_time_lsc::Float64: Relaxation time for humidity (hours)

    • pres_thresh_cnv::Float64: Minimum (normalised) surface pressure for the occurrence of convection

    • RH_thresh_pbl_cnv::Float64: Relative humidity threshold for convection in PBL

    • RH_thresh_trop_cnv::Float64: Relative humidity threshold for convection in the troposphere

    • humid_relax_time_cnv::Float64: Relaxation time for PBL humidity (hours)

    • max_entrainment::Float64: Maximum entrainment as a fraction of cloud-base mass flux

    • ratio_secondary_mass_flux::Float64: Ratio between secondary and primary mass flux at cloud-base

    • nband::Int64: Number of bands used to compute fband

    • radiation_coefs::SpeedyWeather.Coefficients: radiation coefficients

    • boundary_layer::SpeedyWeather.BoundaryLayer{Float64}: boundary layer drag

    • temperature_relaxation::SpeedyWeather.TemperatureRelaxation{Float64}: temperature relaxation

    • startdate::Dates.DateTime: time at which the integration starts

    • n_days::Float64: number of days to integrate for

    • Δt_at_T31::Float64: time step in minutes for T31, scale linearly to trunc

    • robert_filter::Float64: Robert (1966) time filter coefficeint to suppress comput. mode

    • williams_filter::Float64: William's time filter (Amezcua 2011) coefficient for 3rd order acc

    • implicit_α::Float64: coefficient for semi-implicit computations to filter gravity waves

    • recalculate_implicit::Int64: recalculate implicit operators on temperature profile every n time steps

    • recompute_legendre::Bool: recomputation is slower but requires less memory

    • legendre_NF::DataType: which format to use to calculate the Legendre polynomials

    • legendre_shortcut::Symbol: :linear, :quadratic, :cubic, :lincub_coslat, :linquad_coslat²

    • boundary_path::String: package location is default

    • orography::SpeedyWeather.AbstractOrography: orography

    • orography_scale::Float64: scale orography by a factor

    • orography_path::String: path of orography

    • orography_file::String: filename of orography

    • seed::Int64: random seed for the global random number generator

    • initial_conditions::SpeedyWeather.InitialConditions: initial conditions

    • pressure_on_orography::Bool: calculate the initial surface pressure from orography

    • verbose::Bool: print dialog for feedback

    • debug::Bool: print debug info, NaR detection

    • output::Bool: Store data in netCDF?

    • output_dt::Float64: output time step [hours]

    • output_path::String: path to output folder

    • run_id::Union{Int64, String}: name of the output folder, defaults to 4-digit number counting up from run-0001

    • output_filename::String: name of the output netcdf file

    • output_vars::Vector{Symbol}: variables to output: :u, :v, :vor, :div, :temp, :humid

    • compression_level::Int64: compression level; 1=low but fast, 9=high but slow

    • keepbits::NamedTuple: mantissa bits to keep for every variable

    • version::VersionNumber: SpeedyWeather.jl version number

    • output_NF::DataType: number format used for output

    • output_nlat_half::Int64: 0 = reuse nlat_half from dynamical core

    • output_Grid::Type{<:SpeedyWeather.RingGrids.AbstractFullGrid}: output grid

    • output_Interpolator::Type{<:SpeedyWeather.RingGrids.AbstractInterpolator}: output interpolator

    • output_matrix::Bool: if true sort gridpoints into a matrix

    • output_quadrant_rotation::NTuple{4, Int64}: rotation of output quadrant

    • output_matrix_quadrant::NTuple{4, Tuple{Int64, Int64}}: matrix of output quadrant

    • missing_value::Float64: missing value to be used in netcdf output

    • write_restart::Bool: also write restart file if output==true?

    • restart_path::String: path for restart file

    • restart_id::Union{Int64, String}: run_id of restart file in run-????/restart.jld2

    source
    Missing docstring.

    Missing docstring for SpeedyWeather.Constants. Check Documenter's build log for details.

    Boundaries and boundary conditions

    Missing docstring.

    Missing docstring for SpeedyWeather.Boundaries. Check Documenter's build log for details.

    Spherical harmonic transform

    Missing docstring.

    Missing docstring for SpeedyWeather.GeoSpectral. Check Documenter's build log for details.

    SpeedyWeather.SpeedyTransforms.spectralFunction
    alms = spectral(    map::AbstractMatrix;
    +                    Grid::Type{<:AbstractGrid}=DEFAULT_GRID,
    +                    kwargs...)

    Converts map to grid(map) to execute spectral(map::AbstractGrid;kwargs...).

    source
    alms = spectral(    map::AbstractGrid;
    +                    Grid::Type{<:AbstractGrid}=DEFAULT_GRID,
    +                    kwargs...)

    Converts map to Grid(map) to execute spectral(map::AbstractGrid;kwargs...).

    source
    alms = spectral(    map::AbstractMatrix;
    +                    Grid::Type{<:AbstractGrid}=DEFAULT_GRID,
    +                    kwargs...)

    Spectral transform (grid to spectral) map to grid(map) to execute spectral(map::AbstractGrid;kwargs...).

    source
    SpeedyWeather.SpeedyTransforms.spectral!Function
    spectral!(  alms::LowerTriangularMatrix,
    +            map::AbstractGrid,
    +            S::SpectralTransform)

    Spectral transform (grid to spectral space) from the gridded field map on a grid<:AbstractGrid to a LowerTriangularMatrix of spherical harmonic coefficients alms. Uses FFT in the zonal direction, and a Legendre Transform in the meridional direction exploiting symmetries. The spectral transform is number format-flexible as long as the parametric types of map, alms, S are identical. The spectral transform is grid-flexible as long as the typeof(map)<:AbstractGrid. Uses the precalculated arrays, FFT plans and other constants in the SpectralTransform struct S.

    source
    SpeedyWeather.SpeedyTransforms.griddedFunction
    map = gridded(  alms::AbstractMatrix;
    +                recompute_legendre::Bool=true,
    +                grid::Type{<:AbstractGrid}=DEFAULT_GRID)

    Spectral transform (spectral to grid space) from spherical coefficients alms to a newly allocated gridded field map. Based on the size of alms the grid type grid, the spatial resolution is retrieved based on the truncation defined for grid. SpectralTransform struct S is allocated to execute gridded(alms,S).

    source
    map = gridded(  alms::AbstractMatrix,
    +                S::SpectralTransform)

    Spectral transform (spectral to grid space) from spherical coefficients alms to a newly allocated gridded field map with precalculated properties based on the SpectralTransform struct S. alms is converted to a LowerTriangularMatrix to execute the in-place gridded!.

    source
    SpeedyWeather.SpeedyTransforms.gridded!Function
    gridded!(   map::AbstractGrid,
    +            alms::LowerTriangularMatrix,
    +            S::SpectralTransform)

    Spectral transform (spectral to grid) of the spherical harmonic coefficients alms to a gridded field map. The spectral transform is number format-flexible as long as the parametric types of map, alms, S are identical. The spectral transform is grid-flexible as long as the typeof(map)<:AbstractGrid. Uses the precalculated arrays, FFT plans and other constants in the SpectralTransform struct S.

    source
    gridded!(   diagn::DiagnosticVariables{NF}, # all diagnostic variables
    +            progn::PrognosticVariables{NF}, # all prognostic variables
    +            M::BarotropicModel,             # everything that's constant
    +            lf::Int=1                       # leapfrog index
    +            ) where NF

    Propagate the spectral state of the prognostic variables progn to the diagnostic variables in diagn for the barotropic vorticity model. Updates grid vorticity, spectral stream function and spectral and grid velocities u,v.

    source
    gridded!(   diagn::DiagnosticVariables{NF}, # all diagnostic variables
    +            progn::PrognosticVariables{NF}, # all prognostic variables
    +            lf::Int=1                       # leapfrog index
    +            M::ShallowWaterModel,           # everything that's constant
    +            ) where NF

    Propagate the spectral state of the prognostic variables progn to the diagnostic variables in diagn for the shallow water model. Updates grid vorticity, grid divergence, grid interface displacement (pres_grid) and the velocities U,V (scaled by cos(lat)).

    source
    Missing docstring.

    Missing docstring for SpeedyWeather.triangular_truncation. Check Documenter's build log for details.

    Missing docstring.

    Missing docstring for SpeedyWeather.roundup_fft. Check Documenter's build log for details.

    SpeedyWeather.SpeedyTransforms.spectral_truncationFunction
    alms_trunc = spectral_truncation(alms,trunc)

    Returns a spectral coefficient matrix alms_trunc that is truncated from alms to the size (trunc+1)². alms_trunc only contains those coefficient of alms for which m,l ≤ trunc, and l ≥ m are zero anyway. If trunc is larger than the implicit truncation in alms obtained from its size than spectral_interpolation is automatically called instead, returning alms_interp, a coefficient matrix that is larger than alms with padded zero coefficients.

    source
    SpeedyWeather.SpeedyTransforms.spectral_truncation!Function
    spectral_truncation!(alms::AbstractMatrix,ltrunc::Integer,mtrunc::Integer)

    Truncate spectral coefficients alms in-place by setting (a) the upper right triangle to zero and (b) all coefficients for which the degree l is larger than the truncation ltrunc or order m larger than the truncaction mtrunc.

    source
    spectral_truncation!(alms::LowerTriangularMatrix,ltrunc::Integer,mtrunc::Integer)

    Truncate spectral coefficients alms in-place by setting all coefficients for which the degree l is larger than the truncation ltrunc or order m larger than the truncaction mtrunc. Similar to spectral_truncation!(::AbstractMatrix, ...) but skips the upper triangle which is zero by design for LowerTriangularMatrix.

    source
    spectral_truncation!(alms,trunc)

    Truncate spectral coefficients alms in-place by setting (a) the upper right triangle to zero and (b) all coefficients for which the degree l is larger than the truncation trunc.

    source
    spectral_truncation!(alms)

    Truncate spectral coefficients alms in-place by setting the upper right triangle to zero. This is to enforce that all coefficients for which the degree l is larger than order m are zero.

    source
    Missing docstring.

    Missing docstring for SpeedyWeather.spectral_interpolation!. Check Documenter's build log for details.

    Missing docstring.

    Missing docstring for SpeedyWeather.get_legendre_polynomials!. Check Documenter's build log for details.

    SpeedyWeather.SpeedyTransforms.∇²!Function
    ∇²!(    ∇²alms::LowerTriangularMatrix,
    +        alms::LowerTriangularMatrix,
    +        S::SpectralTransform;
    +        add::Bool=false,
    +        flipsign::Bool=false,
    +        inverse::Bool=false)

    Laplace operator ∇² applied to the spectral coefficients alms in spherical coordinates. The radius R is omitted in the eigenvalues which are precomputed in S. ∇²! is the in-place version which directly stores the output in the first argument ∇²alms.

    Keyword arguments

    • add=true adds the ∇²(alms) to the output
    • flipsign=true computes -∇²(alms) instead
    • inverse=true computes ∇⁻²(alms) instead

    Default is add=false, flipsign=false, inverse=false. These options can be combined.

    source
    Missing docstring.

    Missing docstring for SpeedyWeather.∇². Check Documenter's build log for details.

    SpeedyWeather.SpeedyTransforms.∇⁻²!Function
    ∇⁻²!(   ∇⁻²alms::LowerTriangularMatrix,
    +        alms::LowerTriangularMatrix,
    +        S::SpectralTransform;
    +        add::Bool=false,
    +        flipsign::Bool=false)

    Calls ∇²!(∇⁻²alms, alms, S; add, flipsign, inverse=true).

    source
    Missing docstring.

    Missing docstring for SpeedyWeather.∇⁻². Check Documenter's build log for details.

    Missing docstring.

    Missing docstring for SpeedyWeather.gradient_latitude!. Check Documenter's build log for details.

    Missing docstring.

    Missing docstring for SpeedyWeather.gradient_latitude. Check Documenter's build log for details.

    Missing docstring.

    Missing docstring for SpeedyWeather.gradient_longitude!. Check Documenter's build log for details.

    Missing docstring.

    Missing docstring for SpeedyWeather.gradient_longitude. Check Documenter's build log for details.

    SpeedyWeather.SpeedyTransforms.divergence!Function
    divergence!(div::LowerTriangularMatrix,
    +            u::LowerTriangularMatrix,
    +            v::LowerTriangularMatrix,
    +            S::SpectralTransform{NF};
    +            flipsign::Bool=false,
    +            add::Bool=false,
    +            )

    Divergence of a vector u,v written into div, div = ∇⋅(u,v). u,v are expected to have a 1/coslat-scaling included, then div is not scaled. flipsign option calculates -∇⋅(u,v) instead. add option calculates div += ∇⋅(u,v) instead. flipsign and add can be combined. This functions only creates the kernel and calls the generic divergence function _divergence! subsequently.

    source
    SpeedyWeather.SpeedyTransforms.curl!Function
    curl!(  curl::LowerTriangularMatrix,
    +        u::LowerTriangularMatrix,
    +        v::LowerTriangularMatrix,
    +        S::SpectralTransform;
    +        flipsign::Bool=false,
    +        add::Bool=false,
    +        )

    Curl of a vector u,v written into curl, curl = ∇×(u,v). u,v are expected to have a 1/coslat-scaling included, then curl is not scaled. flipsign option calculates -∇×(u,v) instead. add option calculates curl += ∇×(u,v) instead. flipsign and add can be combined. This functions only creates the kernel and calls the generic divergence function _divergence! subsequently with flipped u,v -> v,u for the curl.

    source
    Missing docstring.

    Missing docstring for SpeedyWeather._divergence!. Check Documenter's build log for details.

    Missing docstring.

    Missing docstring for SpeedyWeather.curl_div!. Check Documenter's build log for details.

    SpeedyWeather.SpeedyTransforms.UV_from_vordiv!Function
    UV_from_vordiv!(U::LowerTriangularMatrix,
    +                V::LowerTriangularMatrix,
    +                vor::LowerTriangularMatrix,
    +                div::LowerTriangularMatrix,
    +                S::SpectralTransform)

    Get U,V (=(u,v)*coslat) from vorticity ζ and divergence D in spectral space. Two operations are combined into a single linear operation. First, invert the spherical Laplace ∇² operator to get stream function from vorticity and velocity potential from divergence. Then compute zonal and meridional gradients to get U,V.

    source
    SpeedyWeather.SpeedyTransforms.UV_from_vor!Function
    UV_from_vor!(   U::LowerTriangularMatrix,
    +                V::LowerTriangularMatrix,
    +                vor::LowerTriangularMatrix,
    +                S::SpectralTransform)

    Get U,V (=(u,v)*coslat) from vorticity ζ spectral space (divergence D=0) Two operations are combined into a single linear operation. First, invert the spherical Laplace ∇² operator to get stream function from vorticity. Then compute zonal and meridional gradients to get U,V.

    source
    Missing docstring.

    Missing docstring for SpeedyWeather.ϵlm. Check Documenter's build log for details.

    Missing docstring.

    Missing docstring for SpeedyWeather.get_recursion_factors. Check Documenter's build log for details.

    Dynamics

    SpeedyWeather.bernoulli_potential!Function
    bernoulli_potential!(   diagn::DiagnosticVariablesLayer, 
    +                        G::Geometry,
    +                        S::SpectralTransform)

    Computes the Laplace operator ∇² of the Bernoulli potential B in spectral space.

    1. computes the kinetic energy KE = ½(u²+v²) on the grid
    2. transforms KE to spectral space
    3. adds geopotential for the Bernoulli potential in spectral space
    4. takes the Laplace operator.

    This version is used for both ShallowWater and PrimitiveEquation, only the geopotential calculation in geopotential! differs.

    source
    SpeedyWeather.volume_flux_divergence!Function
    volume_flux_divergence!(diagn::DiagnosticVariablesLayer,
    +                        surface::SurfaceVariables,
    +                        model::ShallowWater)

    Computes the (negative) divergence of the volume fluxes uh,vh for the continuity equation, -∇⋅(uh,vh).

    source
    Missing docstring.

    Missing docstring for SpeedyWeather.vorticity_fluxes!. Check Documenter's build log for details.

    Missing docstring.

    Missing docstring for SpeedyWeather.vorticity_flux_curl!. Check Documenter's build log for details.

    Missing docstring.

    Missing docstring for SpeedyWeather.vorticity_flux_divergence!. Check Documenter's build log for details.

    Geometry

    SpeedyWeather.GeometryType
    Geometry{NF<:AbstractFloat} <: AbstractGeometry

    Geometry struct containing parameters and arrays describing an iso-latitude grid <:AbstractGrid and the vertical levels. NF is the number format used for the precomputed constants.

    source
    SpeedyWeather.vertical_coordinatesFunction
    σ_levels_half = vertical_coordinates(P::Parameters)

    Vertical sigma coordinates defined by their nlev+1 half levels σ_levels_half. Sigma coordinates are fraction of surface pressure (p/p0) and are sorted from top (stratosphere) to bottom (surface). The first half level is at 0 the last at 1. Evaluate a generalised logistic function with coefficients in P for the distribution of values in between. Default coefficients follow the L31 configuration historically used at ECMWF.

    source
    SpeedyWeather.GenLogisticCoefsType

    Coefficients of the generalised logistic function to describe the vertical coordinate. Default coefficients A,K,C,Q,B,M,ν are fitted to the old L31 configuration at ECMWF. See geometry.jl and function vertical_coordinate for more informaiton.

    Following the notation of https://en.wikipedia.org/wiki/Generalisedlogisticfunction (Dec 15 2021).

    Change default parameters for more/fewer levels in the stratosphere vs troposphere vs boundary layer.

    source

    Time stepping

    SpeedyWeather.time_stepping!Function
    time_stepping!( progn::PrognosticVariables,     # all prognostic variables
    +                diagn::DiagnosticVariables,     # all pre-allocated diagnostic variables
    +                model::ModelSetup)              # all precalculated structs

    Main time loop that that initialises output and feedback, loops over all time steps and calls the output and feedback functions.

    source
    SpeedyWeather.timestep!Function
    timestep!(  progn::PrognosticVariables,     # all prognostic variables
    +            diagn::DiagnosticVariables,     # all pre-allocated diagnostic variables
    +            time::DateTime,                 # time at timestep
    +            dt::Real,                       # time step (mostly =2Δt, but for init steps =Δt,Δt/2)
    +            lf1::Int=2,                     # leapfrog index 1 (dis/enables Robert+William's filter)
    +            lf2::Int=2,                     # leapfrog index 2 (time step used for tendencies)
    +            M::BarotropicModel,             # everything that's constant at runtime
    +            )

    Calculate a single time step for the barotropic vorticity equation model of SpeedyWeather.jl

    source
    timestep!(  progn::PrognosticVariables{NF}, # all prognostic variables
    +            diagn::DiagnosticVariables{NF}, # all pre-allocated diagnostic variables
    +            time::DateTime,                 # time at timestep
    +            dt::Real,                       # time step (mostly =2Δt, but for init steps =Δt,Δt/2)
    +            M::ShallowWaterModel,           # everything that's constant at runtime
    +            lf1::Int=2,                     # leapfrog index 1 (dis/enables Robert+William's filter)
    +            lf2::Int=2                      # leapfrog index 2 (time step used for tendencies)
    +            ) where {NF<:AbstractFloat}

    Calculate a single time step for the shallow water model of SpeedyWeather.jl

    source
    timestep!(  progn::PrognosticVariables{NF}, # all prognostic variables
    +            diagn::DiagnosticVariables{NF}, # all pre-allocated diagnostic variables
    +            time::DateTime,                 # time at timestep
    +            dt::Real,                       # time step (mostly =2Δt, but for init steps =Δt,Δt/2)
    +            M::PrimitiveEquation,      # everything that's constant at runtime
    +            lf1::Int=2,                     # leapfrog index 1 (dis/enables Robert+William's filter)
    +            lf2::Int=2                      # leapfrog index 2 (time step used for tendencies)
    +            ) where {NF<:AbstractFloat}

    Calculate a single time step for the primitive equation model of SpeedyWeather.jl

    source
    SpeedyWeather.first_timesteps!Function
    first_timesteps!(   progn::PrognosticVariables, # all prognostic variables
    +                    diagn::DiagnosticVariables, # all pre-allocated diagnostic variables
    +                    time::DateTime,             # time at timestep
    +                    M::ModelSetup,              # everything that is constant at runtime
    +                    feedback::AbstractFeedback  # feedback struct
    +                    )

    Performs the first two initial time steps (Euler forward, unfiltered leapfrog) to populate the prognostic variables with two time steps (t=0,Δt) that can then be used in the normal leap frogging.

    source
    SpeedyWeather.leapfrog!Function
    leapfrog!(  A_old::LowerTriangularMatrix{Complex{NF}},      # prognostic variable at t
    +            A_new::LowerTriangularMatrix{Complex{NF}},      # prognostic variable at t+dt
    +            tendency::LowerTriangularMatrix{Complex{NF}},   # tendency (dynamics+physics) of A
    +            dt::Real,                                       # time step (=2Δt, but for init steps =Δt,Δt/2)
    +            lf::Int=2,                                      # leapfrog index to dis/enable William's filter
    +            C::DynamicsConstants{NF},                       # struct with constants used at runtime
    +            ) where {NF<:AbstractFloat}                     # number format NF

    Performs one leapfrog time step with (lf=2) or without (lf=1) Robert+William's filter (see William (2009), Montly Weather Review, Eq. 7-9).

    source

    Longwave radiation

    SpeedyWeather.radset!Function
    function radset!(model::PrimitiveEquation) where {NF<:AbstractFloat}

    Compute energy fractions in four longwave bands as a function of temperature.

    source
    SpeedyWeather.radlw_down!Function
    function radlw_down!(
    +    column::ColumnVariables{NF}, model::PrimitiveEquation
    +) where {NF<:AbstractFloat}

    Compute the downward flux of longwave radiation. Inputs variables are temp,wvi,tau2. Output column varables arefsfcd,dfabs,flux,st4a`.

    source
    SpeedyWeather.compute_bbe!Function
    function compute_bbe!(
    +    column::ColumnVariables{NF}, model::PrimitiveEquation
    +) where {NF<:AbstractFloat}

    Computes black-body (or grey-body) emissions.

    Input and output variables are ts and fsfcu, respectively.

    source
    SpeedyWeather.radlw_up!Function
    function radlw_up!(
    +    column::ColumnVariables{NF}, model::PrimitiveEquation
    +) where {NF<:AbstractFloat}

    Computes the upward flux of longwave radiation.

    Input variables are nlev, temp, fsfcu, fsfcd, flux, ts, tau2, st4a, dfabs, stratc, σ_levels_thick, n_stratosphere_levels. Output column variables are fsfc and ftop.

    source

    Shortwave radiation

    SpeedyWeather.shortwave_radiation!Function
    function shortwave_radiation!(
    +    column::ColumnVariables{NF}, model::PrimitiveEquation
    +)

    Compute air temperature tendencies from shortwave radiation for an atmospheric column. For more details see http://users.ictp.it/~kucharsk/speedydescription/kmver41_appendixA.pdf

    source
    SpeedyWeather.solar!Function
    function solar!(column::ColumnVariables{NF})

    Compute average daily flux of solar radiation for an atmospheric column, from Hartmann (1994).

    source
    SpeedyWeather.sol_oz!Function
    function sol_oz!(
    +    column::ColumnVariables{NF}, model::PrimitiveEquation
    +)

    Compute solar radiation parametres for an atmospheric column.

    source
    SpeedyWeather.cloud!Function
    function cloud!(
    +    column::ColumnVariables{NF}, model::PrimitiveEquation
    +)

    Compute shortwave radiation cloud contibutions for an atmospheric column.

    source
    SpeedyWeather.radsw!Function
    function radsw!(
    +    column::ColumnVariables{NF}, model::PrimitiveEquation
    +)

    Compute shortwave radiation fluxes for an atmospheric column.

    source
    diff --git a/previews/PR300/grids/index.html b/previews/PR300/grids/index.html new file mode 100644 index 000000000..8dbae6e81 --- /dev/null +++ b/previews/PR300/grids/index.html @@ -0,0 +1,2 @@ + +Grids · SpeedyWeather.jl

    Grids

    The spectral transform (the Spherical Harmonic Transform) in SpeedyWeather.jl supports any ring-based equi-longitude grid. Several grids are already implemented but other can be added. The following pages will describe an overview of these grids and how they can be used.

    Ring-based equi-longitude grids

    SpeedyWeather.jl's spectral transform currently only supports ring-based equi-longitude grids. These grids have their grid points located on rings with constant latitude and on rings the points are equi-spaced in longitude. There is technically no constrain on the spacing of the latitude rings, but the Legendre transform requires a quadrature to map those to spectral space and back. Common choices for latitudes are the Gaussian latitudes which use the Gaussian quadrature, or equi-angle latitudes (i.e. just regular latitudes but excluding the poles) that use the Clenshaw-Curtis quadrature. The longitudes have to be equi-spaced on every ring, which is necessary for the fast Fourier transform, as one would otherwise need to use a non-uniform Fourier transform. In SpeedyWeather.jl the first grid point on any ring can have a longitudinal offset though, for example by spacing 4 points around the globe at 45˚E, 135˚E, 225˚E, and 315˚E. In this case the offset is 45˚E as the first point is not at 0˚E.

    Implemented grids

    All grids in SpeedyWeather.jl are a subtype of AbstractGrid, i.e. <: AbstractGrid. We further distinguish between full, and reduced grids. Full grids have the same number of longitude points on every latitude ring (i.e. points converge towards the poles) and reduced grids reduce the number of points towards the poles to have them more evenly spread out across the globe. More evenly does not necessarily mean that a grid is equal-area, meaning that every grid cell covers exactly the same area (although the shape changes).

    Currently the following full grids <: AbstractFullGrid are implemented

    • FullGaussianGrid, a full grid with Gaussian latitudes
    • FullClenshawGrid, a full grid with equi-angle latitudes

    and additionally we have FullHEALPixGrid and FullOctaHEALPixGrid which are the full grid equivalents to the HEALPix grid and the OctaHEALPix grid discussed below. Full grid equivalent means that they have the same latitude rings, but no reduction in the number of points per ring towards the poles and no longitude offset. Other implemented reduced grids are

    • OctahedralGaussianGrid, a reduced grid with Gaussian latitudes based on an octahedron
    • OctahedralClenshawGrid, similar but based on equi-angle latitudes
    • HEALPixGrid, an equal-area grid based on a dodecahedron with 12 faces
    • OctaHEALPixGrid, an equal-area grid from the class of HEALPix grids but based on an octahedron.

    An overview of these grids is visualised here

    Overview of implemented grids in SpeedyWeather.jl

    Visualised are each grid's grid points (white dots) and grid faces (white lines). All grids shown have 16 latitude rings on one hemisphere, Equator included. The total number of grid points is denoted in the top left of every subplot. The sphere is shaded with grey, orange and turquoise regions to denote the hemispheres in a and b, the 8 octahedral faces c, d,f and the 12 dodecahedral faces (or base pixels) in e. Coastlines are added for orientation.

    Resolution

    All grids use the same resolution parameter nlat_half, i.e. the number of rings on one hemisphere, Equator included. The Gaussian grids (full and reduced) do not have a ring on the equator, so their total number of rings nlat is always even and twice nlat_half. Clenshaw-Curtis grids and the HEALPix grids have a ring on the equator such their total number of rings is always odd and one less than the Gaussian grids at the same nlat_half.

    HEALPix grids do not use Nside as resolution parameter

    The original formulation for HEALPix grids use $N_{side}$, the number of grid points along the edges of each basepixel (8 in the figure above), SpeedyWeather.jl uses nlat_half, the number of rings on one hemisphere, Equator included, for all grids. This is done for consistency across grids. We may use $N_{side}$ for the documentation or within functions though.

    Truncation

    A given spectral resolution can be matched to a variety of grid resolutions. A cubic grid, for example, combines a spectral truncation T with a grid resolution N (=nlat_half) such that T + 1 = N. Using T31 and an O32 is therefore often abbreviated as Tco31 meaning that the spherical harmonics are truncated at $l_{max}=31$ in combination with N=32, i.e. 64 latitude rings in total on an octahedral Gaussian grid.

    Let J be the total number of rings. Then we have

    • $T \approx J$ for linear truncation
    • $\frac{3}{2}T \approx J$ for quadratic truncation
    • $2T \approx J$ for cubic truncation

    and in general $\frac{m+1}{2}T \approx J$ for m-th order truncation. So the higher the truncaction order the more grid points are used in combination with the same spectral resolution. A higher truncation order therefore makes all grid-point calculations more expensive, but can represent products of terms on the grid (which will have higher wavenumber components) to a higher accuracy as more grid points are available within a given wavelength. Using a sufficiently high truncation is therefore one way to avoid aliasing. In SpeedyWeather.jl the parameter dealiasing controls this option, = 1 would be linear, = 2 quadratic, = 3 cubic etc.

    Full Gaussian grid

    ...

    Full Clenshaw-Curtis grid

    ...

    Octahedral Gaussian grid

    ...

    The HEALPix grid

    Technically, HEALPix grids are a class of grids that tessalate the sphere into faces that are often called basepixels. For each member of this class there are $N_\varphi$ basepixels in zonal direction and $N_\theta$ basepixels in meridional direction. For $N_\varphi = 4$ and $N_\theta = 3$ we obtain the classical HEALPix grid with $N_\varphi N_\theta = 12$ basepixels shown above in Implemented Grids. Each basepixel has a quadratic number of grid points in them. There's an equatorial zone where the number of zonal grid points is constant (always $2N$, so 32 at $N=16$) and there are polar caps above and below the equatorial zone with the border at $\cos(\theta) = 2/3$ ($\theta$ in colatitudes).

    Following Górski, 2004[1], the $z=cos(\theta)$ colatitude of the $j$-th ring in the north polar cap, $j=1,...,N_{side}$ with $2N_{side} = N$ is

    \[z = 1 - \frac{j^2}{3N_{side}^2}\]

    and on that ring, the longitude $\phi$ of the $i$-th point ($i$ is the in-ring-index) is at

    \[\phi = \frac{\pi}{2j}(i-\tfrac{1}{2})\]

    The in-ring index $i$ goes from $i=1,...,4$ for the first (i.e. northern-most) ring, $i=1,...,8$ for the second ring and $i = 1,...,4j$ for the $j$-th ring in the northern polar cap.

    In the north equatorial belt $j=N_{side},...,2N_{side}$ this changes to

    \[z = \frac{4}{3} - \frac{2j}{3N_{side}}\]

    and the longitudes change to ($i$ is always $i = 1,...,4N_{side}$ in the equatorial belt meaning the number of longitude points is constant here)

    \[\phi = \frac{\pi}{2N_{side}}(i - \frac{s}{2}), \quad s = (j - N_{side} + 1) \mod 2\]

    The modulo function comes in as there is an alternating longitudinal offset from the prime meridian (see Implemented grids). For the southern hemisphere the grid point locations can be obtained by mirror symmetry.

    Grid cell boundaries

    The cell boundaries are obtained by setting $i = k + 1/2$ or $i = k + 1/2 + j$ (half indices) into the equations above, such that $z(\phi,k)$, a function for the cosine of colatitude $z$ of index $k$ and the longitude $\phi$ is obtained. These are then (northern polar cap)

    \[z = 1 - \frac{k^2}{3N_{side}^2}\left(\frac{\pi}{2\phi_t}\right)^2, \quad z = 1 - \frac{k^2}{3N_{side}^2}\left(\frac{\pi}{2\phi_t - \pi}\right)^2\]

    with $\phi_t = \phi \mod \tfrac{\pi}{2}$ and in the equatorial belt

    \[z = \frac{2}{3}-\frac{4k}{3N_{side}} \pm \frac{8\phi}{3\pi}\]

    OctaHEALPix grid

    While the classic HEALPix grid is based on a dodecahedron, other choices for $N_\varphi$ and $N_\theta$ in the class of HEALPix grids will change the number of faces there are in zonal/meridional direction. With $N_\varphi = 4$ and $N_\theta = 1$ we obtain a HEALPix grid that is based on an octahedron, which has the convenient property that there are twice as many longitude points around the equator than there are latitude rings between the poles. This is a desirable for truncation as this matches the distances too, $2\pi$ around the Equator versus $\pi$ between the poles. $N_\varphi = 6, N_\theta = 2$ or $N_\varphi = 8, N_\theta = 3$ are other possible choices for this, but also more complicated. See Górski, 2004[1] for further examples and visulations of these grids.

    We call the $N_\varphi = 4, N_\theta = 1$ HEALPix grid the OctaHEALPix grid, which combines the equal-area property of the HEALPix grids with the octahedron that's also used in the OctahedralGaussianGrid or the OctahedralClenshawGrid. As $N_\theta = 1$ there is no equatorial belt which simplifies the grid. The latitude of the $j$-th isolatitude ring on the OctaHEALPixGrid is defined by

    \[z = 1 - \frac{j^2}{N^2},\]

    with $j=1,...,N$, and similarly for the southern hemisphere by symmetry. On this grid $N_{side} = N$ where $N$= nlat_half, the number of latitude rings on one hemisphere, Equator included, because each of the 4 basepixels spans from pole to pole and covers a quarter of the sphere. The longitudes with in-ring- index $i = 1,...,4j$ are

    \[\phi = \frac{\pi}{2j}(i - \tfrac{1}{2})\]

    and again, the southern hemisphere grid points are obtained by symmetry.

    Grid cell boundaries

    Similar to the grid cell boundaries for the HEALPix grid, the OctaHEALPix grid's boundaries are

    \[z = 1 - \frac{k^2}{N^2}\left(\frac{\pi}{2\phi_t}\right)^2, \quad z = 1 - \frac{k^2}{N^2}\left(\frac{\pi}{2\phi_t - \pi}\right)^2\]

    The $3N_{side}^2$ in the denominator of the HEALPix grid came simply $N^2$ for the OctaHEALPix grid and there's no separate equation for the equatorial belt (which doesn't exist in the OctaHEALPix grid).

    References

    [1] Górski, Hivon, Banday, Wandelt, Hansen, Reinecke, Bartelmann, 2004. HEALPix: A FRAMEWORK FOR HIGH-RESOLUTION DISCRETIZATION AND FAST ANALYSIS OF DATA DISTRIBUTED ON THE SPHERE, The Astrophysical Journal. doi:10.1086/427976

    diff --git a/previews/PR300/how_to_run_speedy/index.html b/previews/PR300/how_to_run_speedy/index.html new file mode 100644 index 000000000..c69fc3677 --- /dev/null +++ b/previews/PR300/how_to_run_speedy/index.html @@ -0,0 +1,7 @@ + +How to run SpeedyWeather.jl · SpeedyWeather.jl

    How to run SpeedyWeather.jl

    The simplest way to run SpeedyWeather.jl with default parameters is

    using SpeedyWeather
    +run_speedy()

    Hooray, you have just simulated the Earth's atmosphere. Parameters, their meanings and defaults are documented in Parameters. For example, if you want to run the primitive equation dry core (no humidity) simulation in double precision (Float64), at higher resolution (trunc, the triangular spectral truncation), slow down the rotation of the Earth (rotation in $s^{-1}$), and create some netCDF ouput, do

    run_speedy(Float64,PrimitiveDryCore,trunc=42,planet=Earth(rotation=1e-5),output=true)

    If provided, the number format has to be the first argument, the model (Barotropic, ShallowWater, PrimitiveDryCore, PrimitiveWetCore are available) the second, and all other arguments are keyword arguments.

    The run_speedy interface

    SpeedyWeather.run_speedyFunction
    progn_vars = run_speedy(NF,Model;kwargs...)     or
    +progn_vars = run_speedy(NF;kwargs...)           or
    +progn_vars = run_speedy(Model;kwargs...)

    Runs SpeedyWeather.jl with number format NF and the model Model and any additional parameters in the keyword arguments kwargs.... Any unspecified parameters will use the default values as defined in Parameters.

    source

    The initialize_speedy interface

    SpeedyWeather.initialize_speedyFunction
    progn_vars, diagn_vars, model_setup = initialize_speedy(NF,Model;kwargs...) or
    +progn_vars, diagn_vars, model_setup = initialize_speedy(NF,kwargs...)       or
    +progn_vars, diagn_vars, model_setup = initialize_speedy(Model,kwargs...)

    Initialize the model by returning

    • progn_vars, the initial conditions of the prognostic variables
    • diagn_vars, the preallocated the diagnotic variables (initialised to zero)
    • model_setup, the collected pre-calculated structs that don't change throughout integration.

    The keyword arguments kwargs are the same as for run_speedy. The model_setup contains fields that hold the parameters, constants, geometry, spectral transform, boundaries and diffusion.

    source
    diff --git a/previews/PR300/index.html b/previews/PR300/index.html new file mode 100644 index 000000000..cbc1ec285 --- /dev/null +++ b/previews/PR300/index.html @@ -0,0 +1,2 @@ + +Home · SpeedyWeather.jl

    SpeedyWeather.jl documentation

    Welcome to the documentation for SpeedyWeather.jl a global atmospheric circulation model with simple parametrizations to represent physical processes such as clouds, precipitation and radiation.

    Overview

    SpeedyWeather.jl is a global spectral model that uses a spherical harmonic transform to perform some calculations in spectral space (time integration, gradients, linear terms) and some in grid-point space (advection, non-linear terms, parameterizations). The prognostic variables used are vorticity, divergence, absolute temperature, logarithm of surface pressure and specific humidity. The time stepping uses a leapfrog scheme with additional filters and a semi-implicit formulation for gravity waves. The default resolution is T31 (96x48 grid points on a regular Gaussian grid, about 400km at the Equator) and 8 vertical levels.

    Simple parameterizations are used to represent the physical processes convection, large-scale condensation, clouds, short-wave radiation, long-waves radiation, surface fluxes of momentum and energy, and vertical diffusion.

    Manual outline

    See the following pages of the documentation for more details

    and the original documentation by Molteni and Kucharski.

    Scope

    The focus of SpeedyWeather.jl is to develop a global atmospheric model of intermediate complexity, that can run at various levels of precision (16, 32 and 64-bit) on different architectures (x86 and ARM, GPUs in the future). Additionally, the model is written in an entirely number format-flexible way, such that any custom number format can be used and Julia will compile to the format automatically. Similarly, many model components are written in an abstract way to support modularity and extandability.

    History

    SpeedyWeather.jl is a Julia implementation of SPEEDY, which is written in Fortran 77. Sam Hatfield translated SPEEDY to Fortran 90 and started the project to port it to Julia. However, we are making an effort to overhaul the implementation of the mathematical model behind speedy completely and it is unlikely that a single line of code survived.

    Installation

    SpeedyWeather.jl is registered in the Julia Registry. Open Julia's package manager from the REPL with ] and add the github repository to install SpeedyWeather.jl and all dependencies

    (@v1.8) pkg> add SpeedyWeather

    which will automatically install the latest release. However, you may want to install directly from the main branch with

    (@v1.8) pkg> add https://github.com/SpeedyWeather/SpeedyWeather.jl#main

    other branches than #main can be installed by adding #branch_name instead.

    Developers

    The development of SpeedyWeather.jl is lead by Milan Klöwer and current and past contributors include

    Any contributions are always welcome!

    Funding

    Contributors received funding by the European Research Council under Horizon 2020 within the ITHACA project, grant agreement number 741112 from 2021-2022.

    diff --git a/previews/PR300/literated/basic_example/index.html b/previews/PR300/literated/basic_example/index.html new file mode 100644 index 000000000..6f887f300 --- /dev/null +++ b/previews/PR300/literated/basic_example/index.html @@ -0,0 +1,20 @@ + +Basic example · SpeedyWeather.jl

    Basic

    This is the first SpeedyWeather example.

    using SpeedyWeather

    Now let's run

    run_speedy(ShallowWater, n_days=30, trunc=63, Grid=OctahedralGaussianGrid, output=true)
                             Surface relative vorticity                          
    +       ┌────────────────────────────────────────────────────────────┐5.0f-5  
    +    90 │▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄│ ┌──┐   
    +       │▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄│ │▄▄│   
    +       │▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄│ │▄▄│   
    +       │▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄│ │▄▄│   
    +       │▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄│ │▄▄│   
    +       │▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄│ │▄▄│   
    +       │▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄│ │▄▄│   
    +    ˚N │▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄│ │▄▄│   
    +       │▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄│ │▄▄│   
    +       │▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄│ │▄▄│   
    +       │▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄│ │▄▄│   
    +       │▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄│ │▄▄│   
    +       │▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄│ │▄▄│   
    +       │▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄│ │▄▄│   
    +   -90 │▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄│ └──┘   
    +       └────────────────────────────────────────────────────────────┘-7.0f-5 
    +        0                           ˚E                           360         

    This page was generated using Literate.jl.

    diff --git a/previews/PR300/literated/run-0001/output.nc b/previews/PR300/literated/run-0001/output.nc new file mode 100644 index 0000000000000000000000000000000000000000..46186c4ba3bbdee00a921c9bfcb05a77c19cc348 GIT binary patch literal 4644239 zcmeFa2UJwgvM)@|8Ob>ZL6YP&WKeR>IZMttXB3c(WCh6zB9dVU3MffHL6IOCC4=Pf zX4u33oO{nZcir=S_uaSdTl8Y)H&tC-U0qe(d+*-cZM>qaJT?Y71_Bxy+)cTHmE;-u zYZf=GqGp~VPfbx)69MZj0{t})5d~It)8yYH1_B&BR0M?t`VEf+{e~7KF9&CvZQwT? z9v<{ZB|1P#z_=*H&>!$f2rwGa$JL`Brr@Ry@utqn)nyH43!tqH6R2W@NkAaSFyqy= z`PdEc@OPkm1bBFOf0)3H<%n2Ni}4`d02~5>L&kw}5br{1m@#3{PEg>aXo1Er0DvQ+ zgo7H0hz56~?cXDo6jT%u?hYIlYU5>PZF^tF)z!n=!NtPM#`C&sV3@Sm244FQ z(&z@E3b5`%X+($#XwV*Il%=$^;0PfVP)|Z_lvPrZQ`J&ZQ#I3)ky4g}!=i!m5#f-5 z2C7mja@X?6FnMS=uC*dUgm56nLA2f&C+pzsVEu2+g0zAbEOAIA|7M1_i-VWvwOV>e zCDaU08!J~AYfoBF2Nx?FT3&8$Zcc6<$R8~?w+Qs_9yb;P9K6^egW59CWN79d^% zYlVyf1RZJuL{}&#F_cC?faWv&wP8?%#sHEi5a&XIih!)c4*day3fi4H_hjfS>|UL1!*cEE(ueXw>gO zQ_|VN6A~>uGam~lZyPv#TAFL?;oxZDNYLO&LZR&-vj(ahT5b^PA}ls&$Nwah7!YA- zhXJlG7EZLj4ldSMARu`#fqu>89h{tW|K(00D&Y{mSnvXQap%80FY>Qr3kUcAD=+ee zpl1G0$_t+V%DmwD5AuQl;udILc-S~ucscmk&_Y&uF9$0JFaQ6#{J_S6w*vB`^6wUY zFr-�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

    |GYPXqwYbSyCc$szJf8{n=yP?fDW>SO>ZId+Jn< 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 z�RL?!B+^Zt}{CqVS1bfy7`%2ZT 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

    C~gPd3zUfwn><{!IjoM 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⪆~6FX{S9DLG7hiG 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

    M$_*_dXGZ)ZXVLMsIn0;Qj zU1x-OnD*nT_UY{xth^vQn995F~4f|S~$W@;K8L0QP z9!vjaG>%vRIof(b(bD+u4g4NJ^Xa?@Y;r&YI^DEvmA>e|=#Qgwb1o1sr-(DxucVYh zQp8=0<-4>sa$6k6`IF?>ooAFJEjIrRQj}rr7D@T?R!=nrm*1#?;;<(eF-1*g)A%sr zT$Wwt;x8RCel3Q(31u{Pmy@!1bB5=SUBNqc>PZM8BD1gz<5k_B$wcgk82k;m8h*&5 zEF=h+^}rOJnl3)jZ46RP;FTi*p#WKePEWordh&4hb1_88hT+EU>h%>9g04bBi`r+G z@c5x@a`eq0wM-eg&8*ja=~gaSnAQw7hHxvMjq53%=$w2--#j9X&VK&#Tg~@7CmSBCq84?o-C%Jubgdu;3B_ zqSle$$izvI1O;B&ZuRg=Xf>KL*DiMEI(hX&%8*b47`cB5FfMxwM+{~`U~k0C9YSfM z7NZj3)hBTtZy`HDnJ=0Iw3!g_d&04HCAv? zE#_E^swgm+tnhjS_D%{#hJQfzn+r-K8lR|=2DrzzIA0cd)xsO=VzlY9Oa>^^b-#Q^ zZ^b?zd3AeqdbQ|?Hvz!$Vfk~{OH$`xTO}Vem(Dd9sp7aUg1VA&ZQahJr*JiTInuCM z#*b7&Dk5ah!Gy!BA;r9!*Mw3U;E87^oMS1ggM_T^GZkKnDFI)f=BkS>p^nJ@=~5ag zlz7ZdK+SuGSUrtu)_wjROD63|A5QaN-CAiuo7cr|*vP%5p}`Hs`;Nx>Y*D|N>*fLJ z=v}nWX;!{L`XTk<9<3e?VB@eUk4Seoa7#YG@36{Lp{ZYVTc^NpVpD_sH9&=_t4NSL$GisKTsV|1@0#XN^^guW(|H|MXxy-KO&|XN`6H`>j`xTKkDma4 zBbk7Bl$ni=lYHkf05dZ7-Sjk}-nC0eVis%?B+v0-u8Gb=1z~4>_?Ei>U9Z}ZLmR6dbYi7U0375a>W~0{=DlMt8*a-u>O&+#0Q$wc-BeR^cL`)wI zmAnSU`o%px;os8SjOy!H=aZkjtBggjUF;;viZVz@{7E!LJB5!#$m?uYvjXfQF)*ce zed1$LYOo>XsuG*1n z&zjw+zh=jWU3ssWkaW>r=+jWBim)w$^*zODvXc-LGJJiq1#T%}dGT&!S8&?~%JAE= zF&)CYZf9>1Wakd<3BSLTB2~4m}eXPK0iE4Ih zToE@+g?h4-lo{JoGFMcBRMkY(gK_@kL4mk)`v%sv-VDZJ6JNP-HDa4eV4>2ogKM(1 zsyk%gJQH*nDakF`A{7`*M0yvm+e8A+Y@Gpoo7oGNt-6OLI|VIp9PLF+ZD}s1G#!iN z5=yDs$8HACoOB?GkF2Epd3pniuy`_UIzKRYL z58q?lQ*@lJkMWn|6a)VtPW zNUuC>;o9t0#s_n<_K?o4wzIVZP=7VOASF~)J)j~$2-qP@@mUT+B&?#38#jU_$vF`R zF^eTpR!md8@I5SlW%ng?w%<^fFfI=vin^WSC818AbAa7Iyu+ia4rZaYBNjkO?1<_r zrn14}8Re5%loVIlhkvS+lQePNgAu4Co@rMd)48y(E-KE5y=tHt*0eX3W2NR9vY-u7 zIDOP!G+F19QE-=x_8x}Utm12JBok-C$fWb=*e&QR)r8`uiU%XTShkkt31tUHAJ@p&`2hWnO%kvYBpO2Y30la5+=YAQ9R=X788T&hd4~z@V*7Em za(16IO>kY0{%A2WNb4)CL_%avf5JoQwj`j|=a?xTUz;lzX-{_4 zc508S?KHe9vF$#8PWfk#56mt@eR(Y+;Fl&C3v$Wwud2p16!$T|K=PW@JdX zj~$2FVd5*1SnN=*CFHLMCq2U5eXhdE~V7~v6T}Mz$f>^;1Y)v zIcw`DpM4__FJ$#7-Zg4fj&hIR!kEnO&;x|CecX+jfYOwyzw_Z$?C*1L1~Y{d=M)X6?C(j+{t0f#oTS1%(+_EY>9vK54~sJ=+WDL zk-VsIp?+9>W;+Uq_M@Hg#wM7P>e0}3JaoLbLdWn++X5=(KJ|4il{Ovv0`litxR)*Z z5m3xc%KHvd2j=uxywLK>!rhc`VIj3L#~4VrRd9pS3gh}#fF}Ao)3YG1$~6W?K*NH$ z1xG9gY^fm0-}o|Oi~fxpl|APpEc^t~r;XC!w9UHCX5`F>$_9inC{0%->ji&oKCROD zO`kxJUSo#wk)IlliM>|7%2p4| zwqsLXTw;PN2iW>aMcz&=;CLa8LwEJ@-YN5X}~V z!!s{eDKWXS^v-R_vyOUL9aMjZsP>i3%v75T{+exu3q&pKC< zUaYrKnvk@2kG>=I%#{XBjnxk`!4SyEaYGW)mB(>^f4wuT33848bgnAK3eTT-MS~C@ zL& zF=lrXr~`{*3w2glfQ(NI2oKA96AB!sN@_41=>t_h2E=u@q%K8VqJ?fUKBv{KMKz9I zr{KIOWYchA&jGuwgJBBKXH|a7#R4}j-Up!?R*e=)cJur~%q}VmvzKOuo~vvHMr>pF z#vo#+LXO$g_;AkRk918Da?rvgd2)95%?yf&6z(W(jwJ*68+&qNZWQPmCBzI?MUpYU ztrva*fgWp0h(jTlfQx6al4X&w5L$WgqFKJx{8Zi$lZ7efYH#%^!EzJ;a}yyxRRI2p zrgQz2`v+;M1yV)9)2Q^*0O`cAKIg*j*g-}P+N4v2yr62Cn2TcbZltA;JKF)<$}-_2 zFNqN;u&U#4RwaOA%5AJ!0U{PODdl_xd<$H_hjLae0K;ijR)UUCmjVeGFeJvIMEBT! zN)~!QNPyRp_u^(dher8DckK4*9&yVJ|Jt2FYIEbE+2gKsgko^7GVvmbo>i#^Bf>UuBak zp(v>b+bHVLvAG;jtGOAQb;-!Ua@x5%8fe`s4)5OL+2!V}fU5|GD6ijWcptk?jcnXb zmVh>DZo)4TBur^HEs+8GO6bB4!6TjmB|K4F&^HyVdavR}QBau30HyE?Q+`ppmB`is zhx^KeVd)x!9260X@qDfDXynX;nE8#l)4FzyH+Gyjjl89yF}-aC{>XfmF?fG6vUHkZ zuVjOxU-0NF@)6c?%9-OscL`F&w#y@9JQl`Ay1|v=)ac1mr8pi<=%MXa_FWj{D% z88jmIA^k=cm+%GgW>?AE`4u|q%lI?(?S55Syy_i*3+@UfnLHrn#7@Vw#lue9RqsY> z?ae*JBLFM|%HCB3!k!l4NkbxV0{fL=;X8CRcH1tA;g1tOoMKs0Btu}3qRmwgtCTa& z*)Fy^g3rJ^&N=6H(7dQRupJx2VX{IPU#J*G*!e)-4d1DAu*?KMrTG2`hf+Xs2ZoDoGauF?BJJl3%KZ%~}oSciIZNq6R-dru#{^IkF z9fUA9r1U&=J_X+cAw2f#rgS6U6D@}aAr$Tm7fwcxA~=t{g!N<)KsjM+8b&~*fj}a0 zIH!J~PPNdto9}<~aHB0lthHQzx!}<;`eCk>PeM9TSHA^>eSLx=r5~x(HzDpjo;hLW zaOxhU0A22Ow#OhSSWv8&|3MM>J&Iq&8b$N~4tDS3!X= zkz=7>^tMb$msrgeTn6;FYj41m{oe9PvV=W3FhAbP4M+2wHnNOKm!( zu`m-s8&maC6aulqh2Yt+2qaFh#Dt{v_o1N!|8}}_2A$DJH6{hC#;(j$Lo`e_vF$yKsMzF%Nlp6ZUThG$-3rr7yeOgA(fNxI&ZD&uYsf-$fU#b_q z^^h-6ZAAOEN=@zJL`>}*2&P{nbIpM_T^n_D&=nvN-r*`|Gk4mN)qeMtpS?X8`3<5%h>Qbt-LO&4nC&7+#Y35 zXG6<#%X~kvTn7Ql&mH8CHfM!S{1D%vK0Dz|e0b(r_j?A#^QD$qKbW30oZ_%QYHt0Bk@z_4Hk|>8zUzqDW|A3Si)cf^+?V_!=t?Nv%EO> z27B32SOl$>v7Zh!&)fi&#M~i_&I)|`sy>Op{Z+Xmc=MTJoWDx{QfY;_qzi3LL&=wt zpG!XM*Lw$cYp(gzxJPEZgc(N!2EEa|Klu2qHy{z^;~O6=H&usZ#O+%g3xIRtw(#D%0^ zjp$!L{KE+X5m_zzGSg%1qc|=Kon=4&v8+r?V+63FuAezXwL!7~TGgaOAm51xxZ*B> zD|hK(BnGw%dSTk%Nlnn7uhizX^US?SS8i?S1Z(L5hy)ax(R#~DV~C=G^l@}~Bz9S( zDcxR5CDd_za1O44>ZF4DA53&FgiOC%SyHZ_x|p%=eLdm+zq09>q&5`Jp=y$7_gJOg zDC-BtrYS*%B=S8H5e__J^e%RNz1g_|sxZBUhGM#KWNF@cd#DoW2I95mlzQQ1#cX@1aSTvNtl0NZviIA zp5*@P>-;}VpwJnaFV2F%U4jSGx_!=nk{I{E6=#^=BYAH`VgtYb-u8ob`Dgzg zUG&yayVpN%7&x*=h$+$!b=9%=VEE;P4SpY9=lDyo{_rnM%zL24y`sguU>@wZ>7M|R zFTnsJ0gMp-N#nQ2`K`e3!ODlT$a6nGP=V)X?;Fk8+1HP|H=gst_ea+w)aUmiencBE z=GcP*$iId4``#M^w26?n9#7vIE@j^%IJdHIpRx#-ckfNyFNLs$q>m%`K&zuvKzFz) z^MuMSqlFf4M~Qn6U61_#5Ob4aQwdkj!UahZ|Mm{2&*ual`|A2hzTOQ4_7pCCLOQ|4 zZ0!2S>!(xA-G%>oD+cL94f=X3qE;L}8#z=Am}7o(L<|j-Rd2jZb`*BLY$PPX{ra>V zHpC1C{x@ey4fgTEQ^3JS5&Qko1UY|xEO;Pj_=t{H+0C_4X!qo<@~fJVgIZIOe)WrC>Vx6o$&}e!TW* ze}A3Pe7Qrvq91D{tpofB1u_3s6bZ%lp7h9g|04(Ml2!D$^$>$y`3}YF(p#u4rcq#N z=F(aj`1k#XZ@Tawn#*3{C&50R=+{<&!0l@;S=Xs?!SIJ4n`Jo8;rrkDz@yK*Kh>WG z0uDGsS?kZQA5W6T`1>{w_5nOKiu;0&z{t0KtAS!!Gv3c+iUVJdiLavnJ|}MA#rcv2 z3+vu%>JSHrX+EB9mI?(QPVhg*m^-f)THX*zzxR&2w6_Hh5r6+vpxwi7+`@j-+Y`{& zYWO!+LWubS{k5kz$l3PE^DuH3_zw=F*P{jTeNF)Q>+Pr#H}x~|mG{Nq-4U?sx&Ko9 zN;oq+=RfCp^!?6FV|G6PTRatc*W=j|ka&9Ms(YV$FL*oXztMp#jptPOr@}^Y`tt~P zU$E*_9@a^!VC}<0qQ6=fao`Q?d&?;iw2%H%@%)+BDYo86X?kEUwh*`I_@gFWjxLC5~QV$koi--Uh^hj9kwpO5pe!vn%ThJ%p4e)EtpTlYk2#NYnIiNAd{ znGf4<$FCZ6=M%1&A^liIIZ0C)kNUa6%ho6j&*i^sAJ7K;Q2XB2SbKkX7J>G9N~{uqWPv8h`%ulnzEY ze!h1CNj)2p3rGcmo)94N+gz0@y}JzzT#V*Q@YT-hEARTj?tc8?Upv_g$s2~=?f8hX zJn*^w{D=I>sYbBs=P6BiJaEYd@mK7Nlbk-`&yItD{AUr2<}9hUAoABrQ4$=3w_FNEP^pdan!-;q7AM*WO!*2<=KR4bvFV2)iXrqBJNsn)j7`prl z5+tjPQTGHdpTA}GJ-^_a0{g%IUPClczA2YJ7AITvjTB0$;XOefBvbTBmT@t9tNi(F zS)3E}1bu)G=v!Sh|4*;m zsD=xD1c?HRK6AE2;yc2inDc+ET7-iGhFUEog)MA>TkP8iAQ4%moiu1*r>Is$K9Mwv zO7oc--vA}o>PqceU~hA7X&ss0QXzUE$(Yu?HH7Vn)>F`aKz}A>f{OJT-W1|t zY|{ln9*icBTtWg|GqB7y#q1x)8QjUzsN4Vu-q#?QEbmbtcGEkT!!9z3?=OPT4jXRD zDal5j1r;W>0ql-A(U?Bqu-dru-Ylq1?zvf7BqDo%D9895ToLFoqA_O}aH)iLoBur= zu{>7zzWdXr+-!>PZDozvQii5*oU-BhLUD_TR6U z`tIFyE!_L=`St(o=#*-Awri?k`q+wGTy^ahW(b1Pw{70GV4DduQQMxX{ZZXFp5ApE zyr{S0K$|ghFqEhwOu6t?s9d}I?+)OzhKvXHrQo5vcU+MHtLJ^5j7>TNgOTvo?jfpd z`~+YH3=k*rz1S#jhZuVIdAQ=KYRPlm?)j-W{BGrbKxXUj@#AZsFUSf-ot`-2rOVc( zXDVdCTW`}&{Zrpkm7ac>;|gH&TJ|1<4yJN>KO|ar-Blw5FT(F5fBY&t7~g1F6$`R4 zpt6!6KZu*k4TnW#*M3VfM?}E$N+!izogkK9j?GmYcNYO5KC>C;7 zMUB_RNDX2-Zt)n28m+r~H%8gQ0xmU{wY+|NeR0lC+kV?&{3#y&W;S473nw4_zyQhT zd$vaCr1Eu8L%sn@fYx5mwnmr4%lSnCyU<(uldYH{u&44>NG>D+{E}`^%1?d#VIn<` z=zwJHfW>fnsRH75rW>zEcEA=dRd(%Ot!_7)a|HtT94nj?kO@N&?ZpsImv3JqI0I}4 ze=6)Y_*QaD^lkhRh1Hv<3AC{WRZTf59Z~49*2);f!95l%szb#!cyt+C92^h!k4-3g5T?%9_Sn+H4_lD&Vud*dR znKyZ_>w>$h0xF=cDrDxCdNieX)W`XZ{iSMCcHzHgVX*l|0G&!lrj> zX)IJY(O;VZlzKoGQ^25-< z1k7+4uNS>S==)RItG7|Bp#vAq9id9-%6P?U3OEuRxkquUd(=MV00Rwa5sAY+e2ZN> zvFmYpUs!@Z1Z*Q+(a8uCCHn&6IDI_k3CfEcv7l=n{cYQik`Vd%Bg%L6>G&;G$>+;n zj_>;*GLoYwtm7G0y&mZ6n5v5}^4n+7xj-DbZqkDXj_vH$d5;^s*s|<8DFhsBe#QXh zjP7>X9_s4!eF22YC)?vdk?P*I^|~Mrdp1661dcSjW3ptxI4H)-m))~2qV?SjjIH!3 zvGFB!bl}#{6&o!mt^X3>fKPp5Ts3<+4uPxc@Wz%bJ6T}UvxytpV~I}oP7P#^C4cfn z&$jOY<|o;e1#s*NtAiks51D|Dj*KewH81gFU?@lx1@-#pG9QCx^0W zpjk&<)sP(MSc)F#{b0j-Y39#3KHC=l%Y}C=+Q*lwEBbBjUpbYwz$XlP~e67Y4d@QdCDUSKx-Rb>uD_zJ0yW|tZ>M=bE zFuLO~?zH^sL3lbcc=V?9pS&0-Yv)MiNbvEDI5sO1A#ZPtu`3n|`8#!O8wX@VnSue9 zZ@0#-=@FwrM|)mgHt6#LpZ*R{;M1wM3-g9sP5#>`=u`s?> zuN@V;YOs?l;HhsHPlY~>xUe&%-#h?V|D7P5Blf&?SbEenqrT;WANUEp_jMdkfSN09 zf!V*aQD?W#IAZAB>2f!U$CNYe8b!6uJl}jAMk`6=Z2d=8CUBhg=!sf_rih`@7hrQ= z-+`8i27Wh2z$wTB?>cHRvB|@BS5N*@bsaVLoNpC0#y`T(`}?*j;BAGpk_uv40Kirz zn8ZJnUs&R7qzAS%9qmQ0qnr~4x3ymCu?U0jTGMyT zfCL<)YLD|}GDJRaeCxyj25z{O^k27X%vMF$1!4-;E7HpWweD=|e-Zod z|G)pw6WE4=K3|!=;vpyWozJ%*RdR!w)Xp%S)D_aObYZEmIPRw|v>_q>ANY<@GSd8V z8)J*3Qw#!ZT*CC&jO4V;^puorJq3l|zg1$>lj8m+e*Y4NXy3#>qxSuvfJ%fryF!{N zA9rB$BFCLbkJIgsjKmN{WjVBW07%MBLP1uXQ(xOy)6&pU*VY8GcZV%ktR5T`3kiWo zc=hsXyA|9mYVZ)T`ncbjPzZzN3tf6^aB<2K z@cbN*t>gRtda?G=6}oELvg`EefH=CmyzGL{=T1g$W@dJJAe);*nHLkN_-AEw5g+OJ zeeZmP6AcHVToz$7JH8Bz*;d0yPIa?!82Y4>*_u0P-i3MAnp&sFTc5KJ z$N(n#_29%#VN32`a!z{w-4}^QuA+z8BFoibc7}+8=qNiCM_UUQBdw|J=lS`0^56MB z7br=hD-OPgwUN|xifgr+nTYcB9T?$jl)wz{w}41V0Vz32;i2yF-tqqa;cfwOVNpRb zq0pF!sIchp$k6{#pPrto^q}vM_oFGjU+%CXBIM-cBCyw8pe>zjLhFjjuZ^ll#Ud}O zr(-t?2E>rpM+>(ks#+UBl9<9?p`Np+gNxJC_5JMY;ZUD^HY2n`K7{8=9b2pof6OUf z$Y!DW2B=;}^-PnPjgEx-I(Vegh{9-1nBmg_4Y=-lK=eIawH9|cx6+7b*iWM+NQ(8( zdcarlmNF$`hBHASgfaT!H6a0^UYGBM zzL}BD4LGf+Hj;^x73gmsk9AdT0?y(JyKV42auersUWW?w-BrK?`avG)E#TW9x04=1&T_+^Ka^F z1yH7)%)>kux!~u_2{x1Gv=If=)x2j-XT0XVxm&uwts!P=jg_Hr*)2oZjdHexgxMKc z70w4CLGj3Kb%E@*B=NOjC28%BKKR&3VPVn|GE#CcP4VcvhCMw`4mHdRs>$01ib6bbIi0v9ig#V3MOPcmD?|Zzi45HejZk&eSN=D;`QFsAcczw>^+Pt zd;-W6W8mwMm76dbCWxt|H82+C2>6 zOSE49$PO@&7gtsm6_t`R(lgL9P>?;TXvivSXvPNMnKYf)BC{Lr@(`8PHzsLGsCZkt z>KaIDh^o5SeBh(VoEH{Ul5vjAim8SKdpEhY@M(~kG2S)GP)z9|9MqT#wE-eMAIYJ3 z*x4G|a~w<^wNBnI?@N6bO^oRn6EFO|INUV!^;JrLvH78510VNeP5~)d|9}AG?%mqV zBd;l!oNV=~FqjF0q_;=L$u$-YFlda~xLU04BK`~6u1*uUQ%%#3DEX1=e2Ry6d~s=A zQudQ!ctS=xJPO%`CDv3l3(;p%$3>pXYQc3Dt*coOnIpGFb--L>?g@L&^IWi>J#QZ zmIggO3}S6CH8{OvX9oU}R*}+`R8^FdN{tBn47j*jxa`$8aSlIE>f9(Q3h`EZ#EYsn_aSb$skElDTqI*|#$o#J(G8m!%&>Z|4P^d_isee=@E~z1p`Q z_Lt@&rF)sm(~RG1tE;QpX@nOxB@9wAH%*CVVtAe#mE@{_ejX&LvBGj3GdJ^fw={!Y zpPq3(Az=|>;Nt*LQBe^vP>?Qn#zr1*?-k5+9N_zP^it0oIpYU0?|PVOT;7QyG!@p+ zlxEvJKZOK+cH_a8HTXFbL4TH{w$N4YVejDTeQjV+P}fP$Lr=neUJ+5)$cD;Ca=LeN z`diDwG_oox8j}j^F}p4)_i=T%eLS(C|2Z)uey|2L`)WtA3-qJ!HFeyhuB+}(1vDGD)JU&Q%XB3^#=v?V9?$`PBShkpB0n!{a|hACF`)X zcQ?K^Irk-BoDEsdLI)oJ)i=lXi!a&>%e&*|9#=c!1=~tysLfSHz&mmQ22vkRUarPxGCf#-7h5Jb={vYG9 zb$_dX!c&|O(sS^J%a=NBm%2}L4fMw_0I67J-%pTokxqTV2Q zWCwNrZU4cDPfv0>A!YSyrPzK@svs==HvWgz8XJuQ#eu`HnTKI4oK*>KX@7OZ2@~1Y zgHT$W69CBOB&vK|9MnYiW=qwhw2EIx>Hkq}x7a$$nh$d!>!Ql;B74yxoJXvPMua`u zZoG^b`s{3Jr*uZe350?p5TQp)?-yje$lqw%5(Nb;Czgkx_W!sj5}hMu=w-9dXgz+P zN!9H7;10XS9g-Itc=u9K7MGgY9$fpqSmn!j zI6&7nHzCmz#70Dk+A3Rfb3C>7em(zAvwm;3`9_J2(3hDR9POW1+ zIPj|-R}KAf+Du0#{g0n3zxwY2ek^>l%EF?5>W_mQ2`|=+AFwo#i31&OrzlCGsov4i z-f;@>eT$QbrN$8$4jm~yu(3hhT*cauba*-6pQNXiJ5!c!@?sL64E%^dr%G6kB)a z#zMm*=XMyuL{P}MdWp^lS1qIN(%A}&NRY;b)yr+GdwMvvAhP%LFso;02U2;s%Az1- zY+`0oAONPv`pvw^nsqIf$D5SY3(%bvV;&=F5h&hKWpa&@p|c?JY=ZiUjndw$DC6wQ z*5-k?uLDHV;xiHv-=9piYH@jHowF!3(l-AKJHo4Tu^d|;VRRd*6Vg#w7*r9#xr|t20r&8M+C~htb{xD!yRk@X;o{Q3wfG+-kGbli`~xHQA!^lV zdmjb@`xj)+w*rNfzTm;D^S_5g%gc$%N`}Wko~&I88Y=VJe=^d~D@B^~++-!w71}ue zqYbB0jps8W%v61BaWXgbm0cQM52@?=#kP)qJBmzvVpNz{dMo2iVw&?r+OLF3zGm)(3HhzvB+;Q$lRy-@n1}UjchlBSKylrboN!p9e7;tF-gu z1@g211SK^jwRHadLAR4_Wbf9*xi9kfj+kBg(aj?0uu#A_+P(GXUl3~OFKryR*Ho(r+Y(>F3XqYTZj^0-P?lr|Gk7Y~? zu6QZ(3i@eCNqeDtba7>10k@w{l^NcCoo94x%t}!8*7k{!KO{cLO+mywwm6_LmqS9t zxS*iWq{RFfHx1VUF_zzzyfg7oe`bloz89@bli}{qL;I#Tt#Mwn;VCk z8MIGT4+AA}{Bn=Z4^cAoSKxlbIOhLux(7w11tYT)qHr}k6qOW6iTx$Q1EL)3R8VU$ zO^b}wtinf|O16kXe7#X>k99$En2S=qxMI*jXJ?y*%h4pMsHZCR~CRgSLUBs;A7go_k z$hDwq{9`I(HT0ebj9D(<+}!K| zm)kSndm}3W`y97p_j5n3rmD#-c(v>{K7KCZ^i{np=lfi(lS7SyKBVQ>>e|-Y%I{T3 zq|o^As8CpdeFGoov{GDlTzp1+a$17kBGdKdGuW_lHHu9TYk`)XMy4pL-&%v$^qA*U zS!#H0OG8vebdQ1(qG*S2o zZSVLf*s|00QgN;5qn(z}3yM>2X!RgL!g7*wfv7CR+^!@VvU}>2x^@A*y?yN!`@fl> z-ux>%AkMbx*Bkh>NM+5r{iKNWgcf8}xYfObnaROLDtB*qY*Xa&p}v>S)%9lqGdg8f zE8@TX#aN3`SDQV3*n)318x~j z2J^SQy0}&uak#VF<2PA)n@a%TV%$~zpn$TlplI+pO``4&PmGf>Q`e{M-PNPIrPJpg zizp!RPk^3`pzzl4a=(PUY;bmF+@CBWYe8gBTU1BL2a zhq~{*HYln^&-h`i+r*n&V6pt~)2?AM^p+XFgg)ca@Gv!ay@yRM1P_tC)pk?|HRC>VbCG`D(gudX90=c#F`Xft&` z2r1s1*jYVKt?p)$keSySE8b{p)?BU+>317nm zg@TI)$-oxdlah$0!7Ny8uxRnyCI6qDxH#WMDe%uo?cQ2+?|JGFVH1ZcEL`Tw!#B;p z!5lm0#@6|crK{qbTZS_?Qc~ge3I>~YDD3R6722fR3f1twXz^1bMfomZzHV zhmBP_89G~mVxmEKX_yM09{8FUKf{Z1DO0;{5p;%<~x=mnu8 zx%bBT%kVR=Eat$ohX^|XMphvlV3CUXz56O`3-mX=q5>uXBM*gLj&voaAlP7Iimi@)wx{-eZ#L5Yzx z+`^?rgX6>RN^K@)WCQ|m5U9FR%fpj5SqTY!teX6$tEY+GoIE@O2g0dg2HPILXZ1~| z+iz&TP^1}(tW@95RNR$~-A%a-_m>-5zEYZs;mx*>v+ei8Hvg6YJ|4c}mC=@2rh64P zP1*teL?U9L?SQs)x5)Cye6#+^A+ccP`)vX2h9%|fe)aAtb9fqD>DO`dO|yGPl9>}K z&vWp$)wVEi>7`>_lrwb8h~F-U;uE#PKmD>Y9ZcYCy$KNE?6i0Rqf)X{0XbR8U=?&#{)2tAd_S^+$X{K`P?-Km?Y=N+_&#BaiU7fnVJ|eySWTd&U2%3tL z@CCd1Es$`LtKDU3s3Z0yA(4$7huDSVoNFw9Ox1DL@87AJ1nDcy0^Rwhdk04c`bCr? zZyqkq%$un=fL#N#B8Jz%I8l)~4z`x&8jz(66ptvu@4G`W`-pJRWh0~RNzX`H)hF3i z)vPJ1f3h?cwY0GC34~n8-}nuyryW<;0k1)z zcd%zY_iF4VR9o@RL_tVS!$*8eK-@$#v;}rWGRu8UzRSy%-3k>5WGq&%+N9ja8H#vQ zX=Oy0(tH)AFimQRtRV9B@DmnzetYP%H!`tstk5Vqp+`Z?#JE{cFYYU}3`4kvNYPtIqaUe z^Y-IZmtsxcwH#Oeextg~(%b;HG4b#(Zzv_ds^K;z>+^UJUpRMUDR7q7Tjj9NJu8v} z&p4aniVLqh|KPWOZ=%=Vv#FvIjA6?pZ+j6vkKCefGdn|zIpZp5x3ey2 zsv(|K`wD83xUHHG(iU-Wa*~uw7@>EmW*XGgpi7qyQrVf#2t)~KCR+plIO%LIOa1r`y8UNK*GjA2H^D-hdzT} zcR(t%z80cEH2mSegE&U50(q6>7rthY&V7;oGDo5-hCZH1o~k$Gq=zop+XY*xX!$Zk zA(YV%aCW?9U`De4-gpLHhQ~?8v3MYp7W=k?w5+ma-0(F9wISI!P$M+qT(m_(Tk4hk z$aoN8+58r5lfmU+xz3x(5dCZjy9O~bIs&O~FY{8DsjQ25cdi~KQcgxrE<6O52X~Z- z)&$!ZNjoXTV$J6Uak-7SXkLbn$!e3=4M9h+*|>B1sh z8e7J@eaJxBhmZ&da9~xzAn?b%mU%AAAn2~uCz2=ciZh|K<0>5|J~io#@R5ShMwDbW z6!+85_h0efYAD{*fi>o^&M+)i+^t%482;m;H-oUwbBYD$LS%is^eS)`iX1%Qh84?p zEKqBtSazS5>h`H0qUfs#}?=FhV$b3!zVw!JL1$@P`@hNMQ= zFFjQsA;e5xaOVYA^pUP7I)J!gF3|xlB-GjJvf|(SA|;)w)h^P`#MPFb{a9@BfSx_2 zyMN2URAxt}mZ3`T|MCVMf0JP^)YUZ2DsSfxymP4&TojHxFB^8YGLzg>=9kjWHG4P0 zPLW&Pqen%i$tx-99Hm8v!%|VaJ{am0%rk@JMv<7aOM|=+&3*kYEj>-Kf2XBwS7o&4 zg%|a>g)|M5uj9Gewd>L{ud5;Fo`+24)<~3|nA3*yk%)7p|3pF+~`!xX97)Q4M^c$*XWh&h+fTo8u>6*g zC@dr?sv8)9{srPqepXQfd(fwl0Y*Iw#}vWaJCkI5!g+|j1P8s$Q?jSgRL&j#Vt;s8IHRy39$RIVtS z+df#3vD9P_0E67M8Prh)id9fh{C?%aq;vWGoNmc?PpQVo<($O_?{7l13u<$%nljjz4%ZT?44VR0CnSbyqzvQpEOMO3IguJ{=?`(wC-<*kx zLoxGwG9Eq}25wTeX=sI>fW$9y=Hl80kh^hp8~<3+s$2-ttW%($tc;kLf5@YgT{-D$ z=*};e7iwFWlr3W74paS??Xioeh>EaaXFG~hfRX9|`-aodwR=4;%WAT%K@AO;Nfe(E z>s){=TwH^yJYXJ!haW7^LqS4C)i3m1%f&exyIV;w5Z%nF5{J31zekX~SRd9?c$BU( z%MHHV8@K@3+sAO4r6){qL1wRSwB?shoWThZr>mX%D624XQ4wDsU2B;^wmHRi z#)hT`+k|+8I2U%KZxd`TfsD=8#%HHEpGkYK&NfPloEbGT_$fr@%UPu??wTB0*f%i7 z*516X%)Clx!4Gi5igxmks8b+f|Jm)Zk5*7_LtP5!Lre&1|BJ%>rrI4foZb$ZVC;&U zW}1#8l1o9*JVVYWWP|-TU77rP8t!;Ex<=&&A={mE2`Io>a``Gt&%nqihw8r#c#gd6 zxJaI7t7(_k_O2E#9IbXg!gSg* zQcQS|{Acb4ZU4NyUVpH5r2A3f{`(KZXe8A>d@6NLx2L9THylqZWY#@z*#oW-g)ZOJ za~r#hAKJX&Akm59*Ioo|aFB^YMFSfn*Sc=lBkuwAyj_Gg#6`x|<*oa;zkgX@U0KyY zOsGFyJ$Q6?J#zo~heQ|1`_0p(wPRWDn+LZi-MT;J;dia&c_2R@`>bjL#)A@p-6Bcp zTp<)ldvl~4d*6GyxS3nCGH?PZ8ud@KN1#U&BXw@RO399vpXAr`dB1u70(SH2Wqpfq_&-4%vvz_Gg$rRmOgbNwVKYc49RGqX4J zEFkobxglxP%!`DjMx_EI7m2@m<_t!@j)LbU#JRwx*@i*87&Axw%o5x;{NTxN!fx2-6r0^2jFT8G#sa92IU$4Xvjfgkfx zGJ3RKyNY3d-cx>R+Qg?%0iuh;T;!Bk<|il<6&o<`7wp?!U)?x;N5vx^&de?T6_Roy zp&yzRSN#<6RqcuV?pzi7%Td141Rpb9S7mK+VPoN&ua~cnpi5wh~ieMNUo0axkTF$~;F?LlgUwDyCm@Vni4z zfbg;^bEi~<6N~b>#{BlABgeyABc}Y15vG(cg^^d4p8$x_OISm#e8T!$DN$W31_6gg z-;!W#e`NdaEp4o`vp*5pF`#9emyuKQOJgO;I zJ`Y7APSiboP7yvR1dvk{H`g|Hb~ffw^U$Dorx=q7a>MHsrTCi*U#6F_F&l-RbNk{( z%@rd)-?z_NdQQm-9Eqf&oi*<)wBm<@jo@7Lua}LtztA$khYLEH2$~B08io%{ zL;MbuT`EMtL;CJ>;rt>^@Kd=xfbk@8z4{s};IH1wECn$sB?&u*=T^Ts{0n!w1s$?N z-UeXYWyvp-01XfMD_l+Ysj>nxzmcS_WkJAKTjg~AQj;B00-C1U26=aFOF2PBNgBl0 z66PK`N-1x)-@xSbIc?F{wWN|Q9=G+lFZk_YjF#Cv;4m?np-C!Q5|Ys=sbI%hEW!MJ z2)XZlvY#w^Jv4xHFW!%lmWryWyps}$H4Vxok%)OR1C_H(ibd}Kib^F`uJ8t=$Zs(= zc)FhvC4?(WeW|B|u(#%sppkUSsSR@93ds-0@zbNuA5sLib}-GWc$OBFmgJk6TU+Op z(T+rWsraQS`I#lIxa1fg4)glKkPv^ zC<|BxftsVho)y^^FXdr^)yE*ANv>Q+XDA~BJ?eM63*JBX@P9-yyK?E#}i$X>^p$+7X~->7gnT~X!ba01hWF2lX=6 zId~2d66T>@Rcq31)&0u~@*fhz-Z5S2+yk`lRAVQQ%-rmf(K|P~CI&U*&I6GWzoMi60}~dnyh?_xpxL5lX(RKDEMlX_COp3Wj}RH;JjqVQP|QG7M|$bM z`AD{T6kAmwd)^^skR9@jtku)_XbIz3m;#CvE?8%N*j_ z)RSM3T6k8=fZtzR(Z;kwaB>@ktPSx@Ap zIFu?}0vD)RbVp1!uK3>vau3v59{h||pMDao=WZ+4+)C3};A^zkdtL0_t}dRoBxewR z!ChU@7Oo8-HbhAy@z`Zyp{NQ^3$PRUS)WKlLsvyjHz^-;!-_Lt-Bq8^s}1gw z>XU^DAsK5~3I_*c#dy|PDGlOuJnM}#9qlzn_JX_g_Ecy2?*7<|AD!_r+z7SJM^9y= z>+@d}ej0X|GYm^hDMv%?ug=Z|YaIi*MZF?=gvmf*q+6|jYYTzF%oKcd*=Y79S)sJJ z%bh_5*ozP2)>**3?f5^8sE8Y@o(ga{^=_&ru)k?;zROe58p*6&eYtUSAR*hjNgWVq zJh||5|+?Z6jtAw9-jWs{IFYYaKg`n zg$MLUQ1Fk(@4WkpSm;>0;0ZrbOt7%Kqphg&)&A(^$`erH_!lhseqw445{#Rd2gJgw zw1SO&UMl#pi{b5#LY*Z&F#ONcN3h4&oVu6sUas%)i8@NC6>vZxsR5c2OEpZPu9~2v zhK8h~pjt+D5&^==+oHYbxKnGw&+#{e;zJ)1QZ)lyEFadfl*ezbjU3%)lw-nwnlmDq ze{P895X8>a+~a-<$p}-HP?A#=Rh5+$Rg_Z-4T(x70N8TNX|P+o-Wqa5wYj&y1Fxbn zetyHE14u~OY8X8YpPycyq_hDMhs}Td*y_vx*fLDW-E-~_v|2bAfQD7|O1U}4(_00) zNpnqbe33^5vlS!^O+QuJMUUGMXupdH3{e#2m>3^y@8F8g_-?NwT4jMD+U4DF9)%x7nh z_lviuptPGm(ZQv8_lWph+|4rzfpQ@2w{RC&7LIBlTecQY2MR*PIrsy0Pmrdu$=%u- zA}lsENJW`nke6$sZ)#)&e<^<4vPD=n6$Q#4d2Z8?8w(h(^L9T&V8Q06IYv_g*Hvo& zbTLiMlN1@jA&eXS)sNXYarq(e&_3mlVK5Ns@)ODFJHv8_Bo0MvER;mEmF(nk%+S zZJbftT9n+F)f2aUet_wZ{qvY{@+WBd?f&4B^D_%K<+p0~o!wpZ?-&@nIlb?{w*J~q z1pKnPL)(f9v@Ng+3&L)Svdi*?Jl^fxf}PEZ>bN&__CvnyHVB?Da5OPg*Eh;}H@k}r zk`fo@8R;9E8s_A~4}B-xfjHZgchCaqwI7}$Q0RU1PnH*?uC_!?6WOa>ou81xLnWmU zYT>I{IM|!~Dour*Q?INP8t&%0-AaQ6$Je5vd1$Oiw8txcR$QMg(Slod|E_rjQ<`oG zcGZ`qzila)(HwvB_qssk1!rFk;j;$Ni{9u?x!+W(X_EZh{GDPrS<}L9Lzt;U_+a9J z#1Ah-9rU0=_Zf{I;m5cmqfmT=mRQPD7g(sbn}nE>f((IDo7bAHKRc!EO6+egOgD~DUSvN2}{4MZ+1lWKd`YaOC2z2Z;a>|0KQRt{Aj-*I#LY)Xn zI!c;{CCO=f>D!1B-j-^*iW;gq%3ku&>*w*^(ZR>fnU#ZwiHnVmjf#=5`CDih8@PCMw+rq@@^N8;o)FL+TAm`_w?IbREspafw7 z`FqNB5o1=}D^Cv4?d$7neLI9@QA)8_oZ&hL+QW zt#~m4DuBpMGKCoGQ}8uHw&L%;SNdz3CAS!Q-(O(x`wl1XH9;Q~&S!nE!VQD(L3G5R zs=4cbD=5dAN|- zS+D~lSMFNK>0c)vRg_ohMn_tC@y}s=1Ev%IJ88qA><#iVzWt^+5Rk5?IJ_*f@N->g zk0ruS5tAGPkh?{3ou#Kk0P=>~wl@{BQ1M?Emi|WpmLVuveT&%FQHdOSNIt(!yZVjk ze9xAX9Tc9<*b`9ocWjzMjxlq-AezD8Dogc0yxF+wjvitlF0(N`Bg9Tf zMDo{=R)=20&Rey97?qLAS0)y^lMyR4MY|_>bkK%xma*O~Gb3m^>|FnqG@9((UqZ${ zF{v-AW1AND!?v#Rt8bIGq|-AwntKu@=>TgTfBZ~b1Jh;QdM6e-lB{j%i=m^k$)}8FEd`xb=?JX}DZgTak%`m1O z^06Rd`CVvg85ez`mgjLte7nf@G}VcJRX!T+b7oFF5DMbdAfiZEujx*!^%JQ&uJ*aX zz)kTF(^8R>6qOae8c1I*uf@~%vGwn@wf1bXx$R~HM?{;J!`46p1?G!*RnGNs|GW$_ zvzp2hr~mfG>^!3NF~!RXlA_>bktJzlAR<7EWz$lhv-T!{B_kn}xc2GTz9ql0y*=+2 z>$+Odm#2b($JY*a6XP*7%DR8aTGp->Yvla6^mJ9J<+Y8uHEBT=>h4Om8ZJJ{%0^`O zJ7=eUGab!LAD*!BY(Fa0#|L{)i_+p76>YzWwBWCR9ed&_^<)$%)wE#4ihGMa{@*KO zt?7adzY5dy?_r@?S}KPngHHB$uz|t?4ykdOsK^uHQpdD(4C50r(J{Af9yc<7(}~`O z9OWC4P#?p#|7!ug*b^JSsXh$eK%A8Y#k^C?DDl^YNG&%YX6BX{C@InUy~b zq3eX5_@61bfw#_bf#2wNH^&dj4p)hC)j9ozBy4Su?Y)Y`o- zZ$aW*O^wFuowHzipUD-tE`6o^kql?GP7rRS3D`qEKX0Wu}iozUNz(_4=lvwkhg;c@fO|`^avIPuC5fsf-MzJjKM+Tsi(FvijXIFtCt!Ppm4){!Ku>nsT*M zyjSk0{fl?jd6h_7+Uj|V*IL7_OlOt9P*Z6sgNo&hYk83J)$)@0r9$`%j~;|n7=sGi z7L6td=aC_+^N&6?Edw*0rpbQ~g_V_!jYXyH^@yjhF)`mzuN`ZBD+{SV5g3R}n<0GL zg$4MK%mN5sJ1ALuNopk1BrnhVtW$@@(&m1k^S5lAasE)r*!>vY!4D=+b_(v~h{#Du z$;wL0N=r)yU-pMqH_34fYO=IjV^XV+`MgY`A1`qBWf}c*2A6W6)!ghDgsB=u(A8aV z*=3{4TMYAIuGd*U7YWn9>OpgM6Xt6CeDZUOjPy@YG9>l$=pcGs1vv!-k-`gLo?21; zrDF2_K!oNst&=h-Bu4=hgQGJtlorKrmgoNxzH{twzvpE=*tr229yi@6PPGwugPpzi z8s+V>x**4ee^np2DxzQlkSX0sP@j3YT@!v-J%fX^ek%#S zZw)#iK~ug_6c?BsU}IvZBtv<$^i97KRL%z;e=I|JeSvY&5OmcvydO$%<1-1{)Qm*E zSo}Zs&gr?6pi#qdHnwfsPByk}+vdi$ZCk(Cwrz7`b5Fig^ZT=xL$8-gE6n`uoyk3(7vo9WuJJZxg2o1`=LO_SPEG!t zN5eqQ&CN_Zw>sEAAgG+07lWPsFJpxjvPV0dOZJW}D%DrQhaT}h^Mbkxr&FAwOe|Ar z>K6pp(I-a*K-d{)w56BW;0q<*M70@iy80@c@9TG8HH^dwvrrynrBF(MfhzFC(jOFi zN5uku0|OCZx%ik&pr_Gi4;Gb6G5lqeD~`JNaLGxEB1;3auZxg`NJf$c6EGui&2fAF z&f<=97E&E(1F%HDN>iiLV;n???6JNS$cSGEaL?}U^-PPZsmKNtqpu&9EkthsOdXq% zmm^_l@YC|-?81qWmDpIfz1{PRtE<|{ha(=g4;y!hGNjC1cJEt%F~RYnA0iPT`g=Hw z(BMT{LM~(^gclJlvLH?$LQ62j;INETL>#Qw(aSKOxL;O2`1!%01L@*3xNbqh&gJG^ zZs=+0*H#&#!V&~G4vo{^pQ#emR7^q@s4+|L7jUR(Lx;$*N+1$IR+_!SS}z**-r@1P z{ii&L2r%yJVa17!J=Bua&|0~#6Ia+6Ea7LItW0ze(m?LY$b0F?#1s%&bfHtKsnkJY%-|_ zroc7U3|>lw=Id3zNEm7#1VG$xUDK%jCHZ@G6&! zj;x;S?$*fs^5W>fnz*{U*07`;KuB(77Z?Kz7WwCsl(=6T{&b;Agdjy|zNv?rq^|eB zsgaMD$%mvtTLZ|nw6ahOrKt%p3?k_+xoU89Y7<^5bbLimIN!yz{A4H~U=$HHN?*oE zs6u8JU}e@{(^!^-?BXHs9bK#{DF?=-ec#T!o0%w;((agCXvgh=4BuNk-k`j6()^Fe*g;<>M)Vz}5fny}TG8M!(<+Zq`-SCwOtw)DP= zuXn$C=5Mmyys78)Ar>!H3JEvWQO5H4m6es9>F8&`idyn9`TJ$VzZs}K?c!zl@f%J4 zut8GOBh*9);N6Lts5C?t5xWeWqmGDmHcFMC?k9#y}YYpUs2g8QtI615bz*#I4&H8jtyyS-VM z7IkzI@Qmn18ccR^zI)Blb=d125X|sDrMT(~mPL#fdj5cd{ke1mx}ip=@0VAF&psPq zS?9iLb^oyLklaX81W=@j))!$_NqVJpT_Z5!ZAzc_+R9^c|T*g<&null*4Bh)PddKWbD-aTQf!hLt# z(LFZk@oJm%Je?h0-Y*wF_{f0eik_4EXi5xS`sCCX4ONMOXUQjJZNiK~gA?>brEmSl zJsezgVBiUBtM`9bc_54vFu4LeD47@joES%!*9IkZAP}l^wL1Wl*Gk6ki#y!uJ8hDL zkV?owXX`A2muL5tUD-IdVyn|EsH5d zy{OIt&L~G+-?yQ`DO!?x7<>z-XTTSN-4p38+)sv$i)+tn_GgYVVb+4#8J?Yq%7}z_ zhIA0JZItcbTR_qQTQ$4$i>B8EbH^`yr+i&Pax(5m-oD(8K7Dt7PnfuKZ7twlyRu8y z2l49+1pE#DY1{^7g~i2%T|(iY;E^Gr-yfb%N30Zbnu9l@g)QlPaQQGz)(>@E#3sDG z5CDJ68;IF@+Zr0>SFp03aUn?YJYWn;f{^u2g*E^V^UA?cVdY+FZ?u<*~gA^-yE}ojI|wsSqAe1;}&T!_PYQ zqK$FD0`EX=;KpT0nt)wFp1L4qX@Y0D83BFYZ z7{+A6o!dDURMGAU6j+C-vcjs7<(Qk_vEi|hU2$M*f=yii7{T9_@h6rDf(EW1{-LOKX=~cUQC5!AQ$Uz$~4Q7lq#m1Ob01TWxbc7ulzL7 zo)O^r?Yi}|&+O@EBR!4DXG6Kq3BKrFGKB_d8mi6jZg~*DCCW4YQ>h&)IZk17fs?h> z=^8v_x%a22>1ikc=3apg?Gsu-xiGDwlZta((N8!7nRdui_=gpg{MST}<$_bR_#|bS zgB8HKqKa`^9K3E_-v^*6?DuZgBSc||vex`*TE0wOS2}U)=e=UKu$!B0Os&|H)$47rKp`35d|= z*HZ?(3B`B#zCVZiM}`E61NA8~)x$_sVXkX=1`h{R!t3$V=z?paH?TvIIP-7g-R+6p_}LI4fa)&+zZnYn`kq|nId zfG|st`|qreP<{UgGK+(Id#{f_r_8-TGFfuH0^LF4zdwF=(*2lVIqtq+A)@&Tjf3`i>?~!S zDgKRd#y^aRhx9l$GA##{R^~^71lib~RQ`533#&;0*%nPW+lUW*Uawiq+6^yH7lb7v z0}VpL{3RgAKLyvqv8tLH$bcHmYC(SXV-pL1XvK7@$<>pLLs6@;Bl*jlScw>2o<%tqOg8xqp89>F)l;PGA1^dcZ5M zctH>#z`wq+ubYkIubqt(g7j%Z9^ji&^$fRrFFJ#h!7K{9mH>O&Dq`{XfYh^_U)Id{ z6vK;J&b&t+Z}7rN(HrO^<7MisE&zr7pzYGu($mz{^lD|~;9+6oV&aF_i(~>Sb?6%e zmJZCyU>1NISr)NuJ zEF7SnK~inZb0tdRB-cfV(#m4Vmgv}*bRgD7sD%+^D(P>4kP1veC89W z949)igYuzyfr>ZYW_jHfSlL1PUvxV5fvrXcSwO3`x2NPiZqpQL40!1RmyebdxPDG1 zm+p0zc`YB2SsZ$NP6JbMI!`HpR@*HIZ(?B{H~wGTo6X*e_R&M32-%9Kw8}F+Q3g9F84-h_s|wnFyN+qPpdjtr#pQQmM%l}a@oD_ zj;jndKSt|a8&RGk@i(IwPX4+5L-8i?J=$;BFYso!Z#z7>tUb%Ro4pcV{bTexw2o2N zckYVg=;ayPKjh0q7&v_Vxz;OTZF zEb#S%W}@}`H^gU6&i@tFv;zNiUhJN?tmUyIZfJHlJnNgO$IbULXg*Lia9ahB@M-XL z(E7yxm_;^NHl^S0HaOcEH^>$EFBhy%WB>xb3lD{p;M=V=5*9^Y&0;GZztjz8TX6qvD}PjfJ{UxxqieZ-%hae7_GyUrPQo!4P5 zPwTv2cW=_8$|A4Z9%Na0WWe)ycaMwV zdu+1J@{?d_WU!sib-b{Ke6ihad!FF3-+H;y%#z#O?yx)!SS9arMec$7>dAP|bUo=> zDJ)5=ZhL>w*K@uMwcT{T`uNI=lgozwXfkKu{qt7Va|^dYvE{S+C5#aJeX;tnr>>Ff zc^x-P!0B28UxZ57ajlb*Z{l;cH)1R*mQ6#D z?lnQpx#>>IiToa6M4oPrbGmxs5Vkknz#@Y(-3)`@dyMEnkECfH_i9mw$sK^x)ftWV z#^B;)1^P1@!*DMchm*Fq+}kaO_dO3nmV(UFsla#GFJD2-C>XdKauwQkMIi~J@j>|S zJ1|N}fa=q4wkH9)w{W~M7-CQViubV#QiNEE3e5u=uK*YIkY7kkK`9-7cfQjL;*;1D zd^$AJC4RCFl6wSXsq1UPl=#$6y?G3}Dp?sEgHff+Y6MvRPuny_5a-Bw9}s@u8S)R) zmF#grZ3uy?*?MA^QkAyq4YAw2udQ%K@aQC>n0iZS3rin|Ffp6bXH%KZV@4T%Kw@#4 zc5h}J2qRoRZWrxOp3rPH7+O$X^y0!2_!>8~1hzt<1Q?KjUL`M41=XW0Tkx$a{~Y+l zRaIZ&K-@|b$;DQlP#$9+@4lqXglsC(5)eB9zk@P@cQrX>X%lBS6s z4A|yE&hv<;2+A8ws0OIF3Z?jebPLhk*#LwCNj!Uz>1j8E_q&)r1!kx3DecTw{&a7u z5hd)dCbre?5FCeai@Ib@i9T^}IcH%blRZAQD?m_r;!rIaA|zDv)St+r!%K2)1S3=j z0o*WWj`+uO(B+$^)d`f{)!0<{S4!&nj;DRy@h1-an<;=Ei=fatidV+bXU?cd(gMVc z=I#O%kiUv}2ze#in?QNB4NPqei8sF`o2necSJ)>_-IOYL648@`n6skbUfyG|eNi4D8U|3u`)#Ot_5i zzu4mH^BCza3fgrC;~UB$p^&FI0=dft%X7bnfoia2qWU=!1iVkhY94(-^f^Wywdq4&h)NhRa} zzb#9C$f>;q8{Q4#!`BYGUulH}2|U^WX{TcALU*&lkRV>#!UFpxrv9V=fj2~|X_aEN z9K3!IllUy?XMWp(=}rD6XS4&@jSehC&-L^NccGr22Fn(E=58#<*AdZG%x?C=k`8Fo zTHMbI+DvXA1JT$%kRmHw!*nrgkhq0%W3jxx-ZG@miF?NOz-sk3w>LiYn$n!QkMNFVl^tir)YETmRsJ_5Kjs!)GBy-1A47u_JI4S;8@7$Ee`QYgET z|5yOo@0xa?-63zWT%uQ}q9Yg57yXimu1Gz#E`paaSUF_!Jp#SP}Cy{V)DJ5hG*G(9P zvPS8-oK}r;HpqRv3nl=gi|Y{+OojbpQi1!t1&des=`(W$8k8%H7SPsMzVbiaTc{1M z^jsvw>5CSH3#edM8wuFdK=e3s*6#9or^xUk`>6$Ae2T;Qq{>kh6iGhggX7Efu9Nt( zlc3Lme*7@^#dob{cFzuV1bbva#+OL`DzEMD<#L6eCC4*=<_nLak%w9#o2x{$J5_n8 zJ4NKK&{&nV0&Pl^hcOF&`$Vs#RH|z52aXg2<8w&(AbX27u&eILn~?4eVif)4W*hec z-H>BMS;&+G5(P*z4D?m7h-m}!aAD4-*L#Q3^^O_jz+~YQ4iX9$pk`(AD)sqWFR=Q~ z`?$O_vVOSx2U`pz!-AYr9CFnVe}cOswGn&xnQ1Q}LQqRU9i3~*lKGAhmet%Si>e~H z)3qGi)S{)gP^u*O7iPtC$^3FAoh+x`Vk6XTQST0A*{knA%X(FBeZMP$MU*p+cERO| zhmgdu1a=Q_EAY~Qp^Y$FR@Q+%2GS<Lh3u(AErL}F^LoOZ9~xMuWvdOs9hACx zHst#@zY3jJ#}-`5jLQWDggL<20xq{F&jNh>1(;#~y(rkLH8z-f8sCQ8RWht zp4qmsgV(h|KKdeZF}?oE)^ot(5a=-$Sz>+z@grei_7FtqC6iEB_}Unxf9xMAS)J0yuW4)o`FpwC_r+`z9vZNWunHo>9hgU6gTp}llu#ZbFTS-} znAw~wk%C%Z1jD&{X_JTNKI*-E)?g!|9IFf(7vZrlpjf6+_vPCVVHQE9+^l?NNzT?I zm1wkM(CTvTzPmsYQceWntHWt!!+4#%hfqPP9`QI=oSoj7rUKs|R$X*M%hkl#cr<}8 zizJwTRbEMe0+2jL{4#Pe-9VlEH5$)&1w?Umu^_=k zF2<%d9qoL!JsHY`=IBpEQ@8Y2LZ8+8{A{vN{GI5IfW>c9e`X!v8!?bW@z0|wZ_#XF zn|YB;SQegV;#O1!FX;1WEs`Q^#Q#TNq*8_Jfm&QwxH@tA3hP1mZ)m5iB?-Fe0&{ zMhn?E%%gI!GMf9h4dl>nRPucM&7b2MNUOp{0)jK1&)Xg0J{UlDeQ?i%TV~)ggDSS= zG}(^I2pXp_IDpPr1K9dHGy9Eyv^GEH(YHoJode- zIQf}rn=Gbph<6chhLxrMfuZBziUcknl^E`a+KF-X{7IZkK0CUo|Dr9rY|KR%1Jq4{u(~Rthj+zc}ydA!;0e>Ix@H zDm5<6P#1>4u1D5&r^#jZdR0U6z=RF6UT9y;)H`v;C>03~A?jbTe96ttN^-3>@j_MF z1jR5PJ>=Mhajy1=k?NFxA+5`M=rZP96ulOBl1)f_ONH1Rslf@?7{}~gaDD8O=e_n$ zXtt_A{X>WfOo{Q(yYi)LuH4w+2oNMh`~?OQAZQSs<_&L7kjn%M5!7$Mi22{kf5!gv zNMJvc-t|tl^RNFMM*Qz^=nIFCZpX?7!3+Nt9&@huik@`NgTSAEH*x2}igl+UeJ}wS zAPiu7zq$}Th;D!H{r`>s>wA3uixW)YO*x>_&s%t6^4o9kez`lf&3O^1+f<=`D_yp# z@wgaXeBF2UMe)-S2q7?u`PhBf9mf)kFg)uhwXCe9o<;aBtn?6F9Czm1F&FoE;c!A$ zke472X3wfo>)bwf>Fn0)6~KfIBe_o>4*CNZHYn7)d+Ek~rB<~LG>^cjKdYbZ;}3a* z4-fH$zoXxUC*Ci49~57-m7BezRFPk@hq+T|T}dom*w;imIL9igdw(jEyLj%>qeB^4 zswszPD#|jktW~sp{tPjgV3{!L_o8uPv3BFC^&};!ERtIgn{{l%ExSl6hp~Pw!IVu{ z<<+ib-@LJn&o8S+R5pS&CV4-&M|3(Guu*ezB@*JlZ2%Szkdjn44d}MPNSbT%f-6$8 zc6%3|ybHA8jUDKF(HUii+&++B{43~OSeSNMWB12_59paZ3-lJZ*Gn@E+>GUV9#Y=9 zR9tS^@yx5JQ1Y+kF}0LR9JAJv^_ATp3oWzW#d2)0-;BLtaWg*>Y?dbOY`<>y@0 zoHKqg6sgrdkCoYSd7Rx02`Aho1Ifdq%x#AoH@KHv@|{n7-Hj{bEGAhZw(I2l8rID| z->l}&NPU!SAQ~J^DP2|yb=qFlE+#`&W8ipDPJ7WY@sqL<>KbeLP_6~(Tz0WZdkL&( znxd35kMd-GZs@RGuO$c#fUML)vzc+GmCcDu@Z*nu3x)g3P%UUu6BQJiUiYB zO1(C6?IRDv$uzCF>3I|gh3uU^leV6jFj*6D{LUZWk40DlCBScNJi ziDjF53gDHEk?TfR#o<(p4EjA{V?LP1?S?q}GZT^)!z0$A=XWcKwBZ~LLs-K7m58l? z6lq#zIVfkcWJU~GBa+U28nR0q&tk)mFArR^hp&@8#+d6=I@MZ-W{-v}IHGe{mRfF|T4jYmTZ101v<8A@uMIem-I?Id zre0osw`mUPC7nkAqjgY#zpJmVfezo6^jrc1MB=vZ?0&)jJH7PgvR0cWh;c8IZuh*Y>Szs#Q`?=2T}n`9JgYR=*km$< zMKEfVB@w($_YkF(17k~XCK|vKHsz)6YKyXfG7>dy*PSgUhY)uhgi~dDfM6kTTv=4w zRm&6Pg6k2FPKms9L5vS>%t#%^)36ZM7CVZPKC5$jFZ`&jnv(HEWqz^3Q0jbw`QDrx zyEyFCM1~XKvfGfK8%P-G)xB%KDt+)a2dl2M_*~@i*9BnPzRGh}R>`M{KZ9}62#J|W z#MCK>vLvm0__D3L`b@FLp?NKj>Ktr`V7L@6wFykyRl~WNu~2nsw3534%Dx!p5@Ye? zA)`~e8@_%&2X#nFrtw=?3r$0WzxCBN-O^1)twr{W&I4KOmaTE zdT{oFc{Cf!+T4;mXF4%rGvNh(^Es_rZ6RW{Mthz#2lL#MwMOMFy(;EYGI2n`pSnu- zfJItCYAcXIp5Cd(j4~_%H~6xNX%e1BJ|%i%3`ZPkMdL4JIs0TESPnhwbp4~>d8FY= z2oR6d@e=F_q?pR&6TD*xKRi!H^ggjU)l|kZYFbVrMs%DjCs6tuc5>&UEn6j7jY_|L zI7J_1z&hD;{j$?Y70UoHl3m2GuRr6zkJ)9P3uakUyOS}brs z@P1Vk3YBsVr8ej8mc7eV0#ax#d)Ob6IKtRf}cV%bF9x#Wwq^?Ac?sq?q(C z9#S_hUekKvL~L5HKf75AUfy8TqvJLWAb<9BAf6IwBRyVb_^tR5U|Sz;i_r2aV~tnb zWK7eht#&@g8fYIo^#mH6oREg9FJmrc*Cn$fjdSJ3lWU?eYnlpE{eD#;G{AlV;ghsX z%E@Cx9I_G}p(p~ZEk*4##MJbeV|A{uM@aFCQ154>tkX#T| zt-EOQ=Xs~nI6p7gfEU;{?zr*2ESa{QgVAL^TWH8hM1s=?>kV68x?!RipS0hu8KQFf zmrxsYHpsx{-Me%+5Z9W#7^k~_yRJ{#dT6T)%Uu*76QU*H!dSLF$ z_T%dwFhJQi!Vp}4%u5}S=m0{wfgV==M(i}~=f9+>+6s?VJ)|hRm3PW?jD;N>&PV>0 z?S}pe!9Rv`mRzcn7_uu>j!>}(3~BuTJK zXC0GnAf@Fsw%4P48H<`wMz1+rqTzGIp6Oq^p^57793^}tZeO4>`T(nPknXIGlq=CW zX=5#hRoIFxx1_O>Q(~LW8$#aMq8qc#d)=)2ls*7zXP33OBYp`y*Kh_}KML3pNxNLo-LT?VLutNFx6HW}6K*U?wG&q60xkR0 zqX&&L8@U6DT5hyWKi)VzQS%K&X;*a{tP{dM&{bnM>8&p6`F&CPszQy%(ZzD&`XHcU z;%{6=Me2UZRbD1sy@ww)<89=F4C5x|VB`7)lxJ?ToH9|cT5=E^}{Yb`k1B=9xtXSK@ z_#<|pzj<@RV^|S@rH<9kICO5))5jtmn9zgIgEh@8UV&4q#e0uB?Z127k}@3H%3H=< zGvj4lb2IpFcqqM}gTyL&ut1I>acq-n$A?WZrV{+$G9ep;$pV=$8kblFJY>qndhRSr z8C6r~no5b43u=s24XtfV#2@r0XvuNO0N{w8{wWMTjvFKlC&n!R{aEz*i&%) znIvw4ayXJ8aK0ce?{i|z=8ot39*5Mx0;#{ASvBnDdNuy?ClXKHjck?K+wqk=h)bL~ zvt9i`xT$@&IGkhiK)LeLb>-vRI0SjVq^Ad^>hcJLKsMq5OHQop__eH@%@WdI z(&q`>?F`%&Wks7Twa&^Q5B!K5B=qA(ec4r+igoUdAC`A?P8!uh>GzmZC}41<_))8S zY_2THB73UoDTE_>vhm^#&1)WR5uGCXZ)$X~v|z485oLo&Wa}nv(s=eV&O7l%84Ks} zT4G0qmeTt4Pzag+9bL9>s+`34vS!R?!saTR2?9EEc7CVjhIYdS%VknS#>_}8&W*fv z73t%&o2KYafC!ACFKnyiSkB*MDPM{+q=;q23qf_?(d*0p{bCYsvZc{m)L(vJ%4N28J)%U1y z&%ayap=}yHalr$0Pa1dX)rGDKEJKsZof}_j0(ed{SI$&$O0u4wCGb!-Ea5uHL`8H> zS@OW}buvMvPqpcs2g;8p4-BT`V8dKq(uroy?$N}{2kxEHY%j9HRvPq+^=TBD?bTLEPG!b|lV^v}`P$uP-SeT{ zk)H_x57~cKj`uVI~y=qcDFhfyV;j?E5G>)kG7YN|vDpT-w=atd==# zUtoQ8MtU?4N&ZnNc~{7VZl&4NB?PlHdr0B(ZS zvHqHgeiLNRqqtGKUOGCf(Q7FkXQ%j_azNPqv>%u3zC#c*Nrw(aHXVlL(J=s|Y?uv~ zqC|SE7(C7P@wep}q+F3o>-Nk<1y?OS?xk!{k-Rq$I0;G4X~88~npm4DrGc)~m zcyaTNV1_iZK&g946W``F247uMa5H2rhS!xdP1Cv_XHHR~P$1*16|@^?wvDH78K|x( zZea$cb6X8Jbi%PDv)#;@mTp;G=QM3IT65Ug7!roM_$3Yq`We z8#b@*jSWJOKkQOXc7Uxfo#Wxxk$=as zBg$$MA)f^QBE*-(A2iKV9G*W+*7(fS_l2CSlAKEWI9}s>Vn|zmuw#-v2G@hmWtiE# zahE_=9ug?iA<9@Uarw~DgBWM43g?0pQCA;p)wLI0UxNaaE^(ASQKL!R!&8t>RIp=^ zd&P`68Ztu%irCrj#3KvKV%e%blu=n}eZ_21TK%r&&5}Zm3z0jl!+!bP1WPx`DyA*5UbvO4QAG99w2*O>70mEibi8Vb45# z8Af0ciLw=jeO{u;)fJy3b+xf2gf^Zv?fF#AX#lyEcAGaME6ZPGAKh-M{1oA|1B&1$ zh~UUWvxDfya_$tJVDA``j0(uyI@Kwj44JT;J#UVpnGw0ofRGPzB6o`gZ zWdPn-Br(Z3n{_i#0PJ;ihg=k21xe4mZEI&vifF4=S}u=6mW^a@GI6m<%zQq1Zlmc% z_GyK})h2v%v2hL#J#w233tlO`^!Qc0Qa2aN1|=P*g$njZO`}VsE{Fe##g--3dJc4S zoRX4Bn)Y?MA*%ducLUrD+~H=5uLk|!?Ml7Pv^euuMhiNeGy#joNjaCl(C>C?8J*xy zL+vX|*eg{XFrDp>!1zo`b^0zN`;u2=ViV8SMV#6&FT^Tl&4-9O;O1FQ z+eCok{G5@9CAKuZy9%6<9tRUh(k1g7I+Di>JCI8lZriDasbCSQ&*u9G+X2{88J0~k zL&%geCqolPU{bO?#oxPrtA)LnFLyP^+%Z>Fm5hgqbxWdfq`G9RsE3JaJ+Ef#-N1`W zh+>nu$#l*rDpB^D*@N3LLzO0vFNwD-SA~zU7=&$5H|4y;ZOHO4S4Mc}9c29aSqV>a#05R=u`;uROo;`!OgjNY`l7P&=cp= zW#>LoXetKny!TP7VNdAepe-AuFcix%W1HY=6z^<7Om~^PpV`J5woyEG0+unOkd|#9 zdx$i}Dj!^Wc5FmZ0!CD3G3gc0Na#Y$*FbXMG8?OQ^Tu6@|3P;pd}o| zLsKwV9%~ip5h=FvSl#Ye%tNQ0{v4zN%X$4RjOfX8S8i7HIDA~AER$1fl&PwIseK-BXcH!N?Bpz%cJ`ZP>bO25PSMeh@}py3 z-Yq)Zj&P#*R1MI$+VUSGUk@8BrL8$a2C zvXDMusd*rR2ENo)dR3Z5WegENH0jMN%sfhI(Wybu7aL7}7T-0xseOLb8XBB&0o%S% zJVwjU`=|^n@YXZ5E$_74b&1n^7YrcLD>MrBA}I@1^Flx7OZ(=S`Fc8eP#}C zmZNjpDnL$jo{MQfbUar5Y#bMXr%~dscKuv=gY@4*qd7zS8M*;kR;YMGL@=Z0$5M4mq7B;0j|&;sQXVbF zOi-0QVO)cz?LDfE4h5nhxGqiWu7Ew9eEhSb3K;U{A0LUpZ-Lk)8nbdG*sAL7%yYBw z-f9@Ixr`%o+Qps{zUv0yOY7pF7O=723IWL2c#(O9^I?+sA|dA0B% zxHGBi-fcnFR`xxursh8eYJFSQ|FaxD=}LTXtH9-J}^b#}ipc^NqEe zha=MQV07UuKABau6uhgJ`clK`%_RQ20`VTTm`**m z>=}ito{FdB1-^V5&tvf(-8hm}JzX)C+KR|R?+xw`iikfyDa0cndJPj1J9(^Jw`Ha@ z9;tZtxn6hi)wYaTt@^Rgx?C#p4NitMAG50Hxk(VEphwHXK)Q>MmMJR0Glnh$+|Y8V zbI%6-+#`DiSz-XU5<}SM%Iqv1vcV3rDGEp+bJ7ZniZCek9vV)3!6>j-rqqEx>+4QN zPOwAFq#n%H(M%vN`<E8>$O9P@)pMkCT5Nd@Rrd#W=SsyQ6xmB74J~jAFOOr;NK02 zTnFB$WzRx2V``MA^5JERzoR36eL^I6sfIGq1W80+{z&Rmp+e`e7?ACq5+9k*&j%dY zCy=|f>Go8RYL0LP!`OvDnl}2*`%!V9H`$~(BqWB%X-!<3&kcU9Vgmh!6zrQrm9<@j z8iAWYbIb|F)cF-^u}oZhUU<>Ozfet>gvAQ#aaX=jqNknBe44W2ya=b_vz|Rf>B+Pa zZB}91qL-uAQNvIhpy?i3YvhkR@Ss3}qr^$5ycJ_%MNQNk*n^;R(#UbUGRZD)|hE47)W$9(Yr zn%yQhOUxIilo=$R52F>TvZiU+To{W(nq|sLFfA^tX^Qoo4st7&ojjW&RU zNPM|tSp_yp_j(<#8MEZbjPH|nE3k%H9Eh{@dmkktWr$W`$9g<2A!@H)dGW2tko^*mZH(6RJ6vFV#7#=4Hsg`otYR> zEa=>-xUV9l@l$S4>XMm2Obfoz$XFH%gr_3k_>r4_w9zU_%%(_9VqvJLtr&9oyyF{S z&9t=ZGxu})#cnu`4T}Y7)ECc1saXX+aQd6St>Jwa&yAWMrKTSTfY9-M;gAupS6SBZ z5k`79uU(j6K{^AC_+#daHBDAyc{cQzv7r$(h&lz!emqfch6qp~Fa$f{l3OFqSPbwW zj}=Mo-%Q8;Edr7_;o94MT`^yZA^L2sMKw$H<1Pfh9rch~WQL!(#Wh9n=qi_po{_E0 zmL&?ntl0UY5FeCalG4yeDof8@0J)kac8#OSBoGvP`%d>H2KLWmm?X@!V8Fx@yfYLQ zN@m?l4r*@_OJHh5Ln^UgI8K}_yzWvpa-HN2%{+faPjU?b>RMP2?7tfWR0wK!N_UBaM1+S&;f)0$jTf7Yi}GA_|OyCL&5C(UATJkWT$13@U# z^l^|c=U!E3_0!2a2Y#Y*{=m=t)jlL`Gz(Vu0Whfpc4;zG5?Oau7A?iVd2BAjMnNd2 z7P7}d-&%NBcgYJ>x_V2l1e_)q3hXQX{#;4{EK*l+x2}x15n7z@c|#NdX;dA`RTat{h$70TRQIFP=&mH+%>`g~INZAZ>}l0&(4{OU ze+nZ5&}7OBU$_k~y)#M^Z5{Pt@?9fSd?bnqU@OMi~Vb0*HDEg(Z+3=I_m^N*7x zLv?VvP-bKmf@c4lo@8^p$ZtyD=qPU{|AEroaGa40raAa@it58}B>x*ZT8>j}%ZuBc zgI3YppI;-l!r5 zg_u~_MG{l6z?wxDZ^6=d9+n2wmxW90LkTNvp`&!2V9PYjgdGLU4CTNOik&k_-_p^l z6?L`?xpGvK-BQ$8y;}VvJ#27~wd}X&uh-Zpq>Kn{9@$NpOr9Czu53{4PYSr5cn{abVi54Dk_>F z?~OZW&6>s_C6k6d)Py_P0MZp?8d2=$T>@e5>X68V-M`HCHpLR*QN6+{fXEQ1bcZF~ zDO7~#!t7n=IEK9+d|08pXm#V5jyXss!HbYbYfn$DJlRh6`i7NA^6F+rb(w<09}(?} zqXn@5qbG{itAl7Eh6v32QlA5X8md3ootAH_-&L#}I}>E@dtk@!{oE{UGCoNOuF=S+ z@rV(@@WG7W=?!Ego1pZ_VeG~{5!%M7JAEfLB$<(VU|2{#-Y&^1VEvj=!;jNTcmyYGNK`l z1=jnFkC~qv>M_%L3~UG6mb1jPzXRYrNkAA`4zX@ft`Dv-MMsMKjye)2z3*4<0O<|7Hx)E z8L`w7t(w=`EivwRtC3WwZ&+uW(zSUBBgbxkWh44@;3u)|0vn-G;fD6K(bhe4>9U{V zktGitSL9~#r_6rYwj&1C=x?s!lw4#( zMKr&1hE#C|N$5CZku04#u^ke()FcFvyS?<8)la1U$`3Y$$8nXh%gI5EHw;`^-B`>CrDC@!)THvJR)-IJu6%g>G(ipc%3rlaR1{8ErEWe!JbdEE zM#yP_>?!dDvvCD>7%^2CM`1Kt6-G^du*(kHt(b1S8Z+9LER!e!W5;B` zXVtF1f-uK^ZfG2Oo)!KHalnsgp#2aANc$1ZB% z%~t_+DuZa2)lgJAl!C~|Bj?qS)8UpZ8F5a9%20$_Iom*CmCVJMjPA(?{F!;PwPtQ= z0*CdBlZVCc48QFY8MoZ`I^)c=nk{J=rjsPHkYdE^a232 z3a!eT_Gr??H>0MYi;xWw9tEa~ z_CYvyAm$aC9`oH4)J5cBcWiNR$qPX$D%`|rQ~re6A7Kl*TDLZ--zj}CN|;IKC^8HKrs1fLB@M@{C>tiEmiZQy z2Bo9EGfmtFev!8vA4IOjY|WMy-y~2(M1S>vdW^+E)vz(76IL0NPG5C7lqK=UNYIjO-^3EbOD@78l2Jx)3G_tEjs#G@>XHCq^_mNaB#EIr zgL5K3UG~3jlPE{fFm@hn*|Oeg);|!648z1u2U?$|DP1e)8^V%#$^y-!^3HB6xi?A5 zmzxaZxHMky?Z&uH-6*2OVd3{F2~NK`avVi3^iE7>fXv=BO^7%*3NJ>Re|8NmevS^L zWUGCvp`f8j9b!)alhJqeJKV zNOT!<0LqJvm?$LjVTx<>-JlDO(k>I(ea zqS6wFRWMo1b0JJWeqcNQju$KCCL>5+s0iVg46rnHBzDBI>chchlqnW!5I>7;@g(Z= z`GLU~mASYvj%Sup0i@;`j8qI3<8X}Z%WMcVhwFnvdfu)c5$jd;$Sevf$ z-2#$L$_ZQHHG}oX;%n>F?<@y+NYls%GBY_@kzHX-pQ81@{lBZ1_;2;T;c!G(gGA}bcP=21Q^y@|qjkFlz} zsQs0kMIj@n~ye8{?I zR|>emmBFzt7kA-auF{)99FqM;aXe)B-Ta6A!e!i~GH&ExgwgGv65QIq^U8fO)Rpd% zzgkr*KMPN%2uRy(WxS6L-cPeO3J325&nzkJ-3JIBdUCrHe;8*cORZU#d zcbg@T`t`4D@t$Z|zPz7Cp7mJb0>8~~gB@4m zpRf`zgvl=T+1tI;q^myoQq;)}-#iR^C|24zPT;Q%r2ar3LqnG~GB2nPlj_`Ju(Du= z6dY*L)NR`~r|K(4*zr$u5EB-=Li)-+Gef3k;&4&IT9@FHva2Zt>h63iVk@AIu@foT zL`1giZ=XzWkDqTc2~@M+QhdII>?l&K>K~hi>SU!#6_LGh%@7r2rz5NT#z=EO)k-QO zmYYDJtDjGS{<$nSnLZYSg~PRi(yYouy$9*s>B8Bl~KPwjS0@y6*ErW z#Z^%PfN&Ihhs@1#M8~is7*7>kF5g*lPHFC&ztC(gwW^OE`zZeQI@^<9HL9{j*%Jg9 zVRuIgaL1!ntQah<*DT(es$9$k+hZx zts`S$ERHB#J|%g?SZJ0i$M$?*w~kFw5_R2K9KqP%Xt;kZ{Y%;8tFPDh3kdR|;$s+@ z2EHwm5?|SeS=%D_EP6Vspz>CzukYH+`~e^cLSVquLwZJ$uP-vPrzSF*(L`?8bv#~; zp=#^PVb0ZJar$+j_ z=SvOR5T8s<;4%~Z%guu!{UFI0a{0o{1W-DgmU4V>Zf=QrJ6TTG{Q~2gHyu*P(NaC1 z2ZKfV`89+R(WqH%_OdY%YH&9m=Hz@2BMpfJ)6|-k+wmkE!}q@uvXGGAUMUw2d0fE) za~EbtKZ^qgwO~wf1;1pcyiMAYN zlH=X-T=6j*$@=hOTLLxA>E3)Q3&`TX_&167d$dy!ILk0OG^5f&>s*=L<}b~MjEk}q z{Gj!r!qLWHAjB%Y?tGtLX*tyZ;`0b_9WQv1g0NC(vDxc98@@^rve<$oeLYn54PAdM=EyCM)Bs=GUc&A38GU+RiVzhj zcfa%bv@h!~cf_$f@v^b4q6xLDd`Z3&{RZYje|S|{-mF_8?C_B934t&S)_;|Oi_fF# z7==FnJ#zjdjknD8V~q5t0@?0oYs#V{zyYpLoIS=5UxLi+aErHhL`IbUclHMUE?rn8 zo}2mdkh{?_y`EOTwtV32f$Pq0a$CTCeJ_KUwI&yBqp}05tg&ERc zd;Q^&UbWC%v9tZu5tHTgkwRPg(SIG4%MNdRU^>WgwI;6!8{Z=?nGfuU_NWG#y%8gt zc_W-*93F0ais@!C#2?>KEQ)qIMIm;Yj<7jZ6hB4jMGa?QxzY9Ruj7y5oAs$5ZKt{Z z;`ehxoS-@Qt`+%1%Fz4LH0eCb`?xrRtv$dWx-amV&L}iElb(&%LU9fPaf$Vd4nGZ? zQ0Q#T2cNlQNtiSOB~B1@QFM`~WDgM(S#Bt8sMxR@_#4R`DOCsh6np02u9!~pc>2mc zm>3Gs1ps-%`?als9UEswfI)lL;9dMSdgPD1kFewGh=`B86R%Tz?bp&afAMqrd|#gx z^cC9ckIT3#09pPA3ji2KEy#M?`oga22T;G|&!xC4K3>6RU537bJyCAi4xpr;+jiUO z0oGrKdEzY^jn4v>@(BZufkprz(cgMkH{eG31NeS+8-RHS?h?M9`$#}b%->;3cyS52 zRJGg&0UOQ}cp;IlwY>0(dbc9M_tATRYE1MB(5-Ky-Ce^QDs>a8&i!Tly0XgKenP$R z!TvkA{rlf-z-A%%Ub)6c;7q3Q%^o{)Y=!sHoA2v9e;wCk|j^0a2nG*x@%u!u^YtR2GB&<_{PHu}0MWD-tbU-P4xDV%3eJO{M-6V$*?FaW zle5X!hw0y9rrrndXUW^3doh!<9Zi`6`yAkNgwr>l1@I08C)PcmI{G#IcB&u~syER+ zw(m@Kl{2%hH7c~OVw_^VQkwu*^?=k=-sG|4`dKbFn!QFwWGU z6mtS2VR%~bxzQ{|mo_HLOW*q}A*e58w)7aXJf|iC{Q&Mz$XmOz$K>r@rty`&JO4T8 z9RSk&c(g2ZOw^y=_5{8dgo8d5Bx88;oqbZ0W?SwY>!VS@FQFgRi2hI`?a2V%hUeK$ zotq)1;PtqrHvGH|M>d@2xUF8E^h90}U}6PEQJvuI_JbryUHqOQ)61%HP3CU9WVp{L>`38Zs&_`Mf4< z$$7|_;+Ia2| zt`oMe195k7xtvjdkSl!zfqG-OdqTjI*9mJM&*a`2&S4?u3eWKU8xh6{a{&LXc_Y~q zYz_Wbgr>$}gPI;nww}Deo1NJMOCy&S`tkN`SfFA_Ovv^Zy6xHmFq17nSdNv#CxH|4 z6;A}~{$8w)tZx>PX6*X`#l*A)=LM#R*g+~A?9~__W?mJzu2&;|F z4%))Hq9Y!f&9hOm9}*r3_`k=#2}Zr$;b8?quFR#GJHXx}hm9d?06v~7a*UTkB=zGU zg~3O6b@}v`VT(lP5TGdenQ1j7$8}Cd6_`lblsCQePu3yhS z7_GGb%?G>*9Ec#1a(0N=x^IS_RNaO__$RK{^Ulo~yr=acZJB)Fr0c8Z={lA8rjUcT z+mua9xAQEHH|t=%de`#&i@_-tk-MO$PEZ8M7qox*D*Q;k(urgcj5~J!+xWmravS_K zxd>fnM|}YFX)|yMHQk0k>z&kYhgrA)^^H_RBuAx~Zj!6!XRm*bA%xTf^v>$8julNl zU5%rHM&bXdM<1|p-+AubB0hv@$fl>@-$aH*Ja1kr`hEAoc`xKU%B|C| zkDX9H{*>F7zP1|H8@+kvbk9)eNH+m7e*G^gxM1$H`o@{#4SzT_@Dr)h(V|F3)`uDT zF({Or|B*u_zvcxIn9mLTb6LIvSWV6toE>NH1GIdFeRzfJk?^7XmVb6+bpW6e9j=45 zzU~LKG1`w`!`|l0f(6d5ON@Tp7`)BHbg8}}?}4WR&*7tTnU?|I`Uca6!QkfYUPD4) z(ns(c?+r2_RmOH(Mwpy5NCv2U0v^MySoe=97d`!)6@AzieIr)O*Nuk1L#6?V`aTXK zj#+B+1;F!?FMr_P-{*b6T)p-yY@YxIW9>EP0<7+RZyA>rlFK=B#7}yYbPkfBJtub4 z^D({IQ?@a|qaxHS9p7h)F9cP=XfNl-+aynlaDdK!XWY!9l_&|333QVKZ52a^yU;O! ztcWmB_JjEKy7e7mp}f5dpOoMiRrjk}OP~|F!gP6Rugqsj*WZf0X^3}hnm+ix!qL0y z8M9RR3qwcvh$nGiOW0zUY`~LO;Knu3c(|=)*LOiZ2ejTRXZ{#CIV~xY6(i$zPi^9d z6o0+XGG>1#%tq)V&SG%!bp4EVk1QUbS@)T4_`kCzAm!KU7PfUjcK0M^zoBEj5k4W( zh2{IMZi+sgNO=M86`s3?qqqQZ5PN}9B2Zc+4dV7Qz|0&w zCN?-8t&2?hqXSwo;uO$^{-BiUV8$4u@CyVTA?0XO0zk$av3`4O{7&NFe~Aua;AXbt z2e3Ugl<>d@Im#7P=aiKj0*~`RFO}fR{0TF#1H}&rd{$1L^F+G2u~SmT+y?KAcf8HO z^uh-%I$b?bpMVIdUe8|@%pnbx0vwM4p$nY`G0z~FYW-p)y{EjBwrw{Ir@Q-0G7m5e zzFMOfbv{7^IQ)a$cJ0?&enCDmCu06R;A4YegQEAJ{lE@5@nhrc_y%CKgw&}!HiO>B z?x#s62!?+USrr`E>1=zum3GqVEg+xu{QWEsoHeI!GoheF&*g*z+P!RNYKZ=%1;1mx z^`8ZP=>O|I_H^1Y${kP84hOS2Q*+KL`;RLc#juJ3djsApH(x_R+c%ZR4abVE^~``_ z-vF_4j1Pn3YGjMILa`n-|98moh<_imU)p3(Mg5gPsO-T*W*Eu7cSe-tlLqG)VV}Fp zAg?RvlfjR8>>pJR`jC-0Z>!9pe`@Nm!j(o5d6#dRpP8~!&A&jZ&1SGgAlLNEpy}O_SM*j zy#-bDaFe$8hgaZw;}vo66BU0)F&G=$0K=tNI31*n=G=^c01e2j*SSCXMt;h^>I|NR zJ`9@>Mwp4K%7=VZ0H_kbjD?bX*x~OUkCgWT=~Bq~-o%W?*XF8uf7X!$884mY@JD2r zD*$Ur4*?XZM%xN&3Fv{^MMI8m{(`or~s6CvvDwJ8$idW?bt^K-tPS8XLdQt-KE#DW23bHtds~Q zofC|i!Of`#iF9Ts_zL=^$B$sQ zjxYuQqe<@i+5DlF2J?}k0npmfv;M~+VXuD(8_W4_{s>`4Uy~IizCEYvvr>8Qipk3H zAJoblcEQ8gI^zYt9~s`|hhcYouH7DgMt9yHuoBONmQ4e{u{%Hh;}VhNdn@02+=%lM z7_Xfv2J_KOp^Gc2o{ZKvU*-M~y~TI#b2*4@??~p=69ok*A6;p_DSw-LMI@`*_g>k# zH?-Y79*0EO1QWk)`{D1N_L@>9Jdbf{JKS|SefVvO`Q`1lTW02y?Z|_tgFrf(!p-p7 z0hovWe;4&Oo8~6l7R-aiAC>dOeaN;X55S|i$q~VK#}5E!i03w;iS>QNyVL`sZQ)SY zisz3Vh!u$A%z%%l)I$8nj^KaVDjle(v z!kg38PUeTz3&1@@d0VFDSzsBgOMT`2Ti`>vf3$o7U5*k9^zaI`Z^S=_4&AjkZ1m%3 zSIBcggl}7UY!>$mF9f;A>zp+(D0K7bd44M!25QtXJ2pE*7g`=Jo{dq?_ZwoUY*`gfrlrx z>jwv@DUy;@=T#GLJ}*f^&KlG_XqLjRR&ez%N4e7^sf zY&^Qh@5MCS1M?D^AyM(0aqEl@7+RbM`z}K%TFZm<4TASZ`9wjM&_ z6Gw*WXk?d#-C+@@maNP2>9vs~Zm%Sb4X!^ve(*8Dijw1f6XVnrENry2Y)mYlIhedm zcm&+@rEzO9!-y6}smw)QH*CDzG;>{n&CT=~=oKj9C5iI|#a>^~&kssmoXQjnOO4AF zNuG&F_uJ<-VoR;B9%xEv9v)w{v@CsWT}}P$HD1W`pSR*af$}o(E)-3R&<+Adl-0S7 zs^#62gNsiER5$#nZKkK6qR0e0S#@EKv#FuEF$g>}A^TlUJ~9Fh^nRrVP_%6Cpl~e@ zOjf}UFVU92JUK!Y{L0VW7Fmt9$M&jRQx7!=!DEY{kXawY-?87}{3rkb;g7V_h(&FNBD`Rs@6SL!ky`#f@ z{Db5D!=pXp5~=~|@Yj|FZM^%08ydP2!$dN zTav@;8cTCSQev_rI;&$+ifh9f^TLx;Dd?eL*|0>{vPdanR9C)#m9WZPYrVt$6)J~e zZ;^gXndE{fS9zLAXfqz=qAJEVA|H%%V`rh|=}rq31@vw3LJ?nJ`eW%aQ}^i}_H5-j zvMGJF3}354Qls)C0T;){#6`si$A&_n!y~`r1Q_q`VCFr|USDf}vVYBkCFK5R$&NNl zAIbO4YI{`VY3CGF*J&&&3S2%OpxuQ#SsPuxSC}xFQCgbvGAnaSOAE`A@-mtcDG9@O z-_=a(aik_SiyB)%Dbt) zk%oFrJ01SGfJYUcmcBSNzX?FBvXh)nHEvVUK7S#4x10GC#66EFS*l}>M> zkCv0SZg=MrUOLpWPRm6F96Hv~^()E*-km=<01O;sBe*V~;m$TqzLj?+CCI**x3G{X zd@+ad;?p7EJ5cCKwxx@o72WVYax5CFpF-f>1Iv*!d)y!km*+J4>e$+PEdroEDgqJB(|&cXZ?q^Rt$aCh)GbF0>iI9~A-Ap?JW#%s^d&k67AF$oc! z*>>NX_kpC3w3#mK4w~(e;2zdTn(vEbyCEnbnsmRkc|kysq~s(U11;Uyq&Na#l`M7? zYlck3D_WtS?o-OFtE??9uC1-CVql&aRFDgNy0-NUC}`y485k9p%7{Zke?2~(P%*F! z?G^-H!+~Cqo+9h=7n?jx7>AeQE`>G?a&rv~Hi6VB&B#vL+W1!Ga9NYuGFeCixELv> z!NxF``_Z-n;oDvQV4T_AMA0v!)Luw-Lz1Chs{|F1&VU|32j7;VKlhw|8s?<~gII(I z|Bn~(gPD=8@GoY>GGE&ZtZolh_JM~=zBxamGmUrQ1;wCyy`1GA&=VBnQGfo{z_*~2 zig@EAsQ!L8hg~@6x0Q8T$0{4|Wm!ziJfws?Gwl=+6QU?p8P%9nZ{(G&HhWJqo}Q!1 z^ge?B^@3X-2U%*XySwC|K10IZA(cBh4vwA8j4us}z-X{QVIdL0 zS!$tS47KyEW)NC4MBX-jqR#+*(pu%mPi-6KAA?IWWqvK%3ckgV53_2joa-^5Od}P? zINvvu!7xCY>JleqTd>vV4k98rPFYqVG$QKb-OsG5nTnosV^U2bIE4uRHo(cH0+WQr zM0oj+{GKv8EHnsY@9W|i;Bt>l#fI8elA4MmbiqM*_bpx9W4-TS@8aM@)YDGgOhUqp z+e_qL=%jO@R+a;pefx!?G$fn++5~gH;S<5l;CqpxF+arpg>!gVG9>lV@sFTF_O?;Q z_*$ecp)IYf$72DjWDw-i*w*F#^A?*76&CS!f9UV&D3Okf9Ni&_-Xh5InHlOUqfmKZ zMoms|QEWTLDpll)U9qCK+-{vTQrFKH1fy2^&Z_2=VkjYdl*Pkg*p443m3^uqadB}H z{Zs{~Bx(9O+Z$WCZ;+NxcNjR@gzSZ@AYybZJThslKkx4*EM3}k82P;X7zxdeY4e;}8Q6ujc z`9;8*wXSq+&=w{-L0kLDikw{@K3#+EuN1T~CG+v$&n|9=$YMg%;*=G{)~EilvoHxW z(y|_&(jcKfwDK+|VjdV%jLJlG>s+&kuYNMy`u=>Y5&afgp8(1fd$q$UnQjLJeTTZA z&FtPSI}VhtqjLtI2;lJ>mEc2Zef96WWDIJ`fl*$E*Tz}Y(jSPJv-q9S$wr<0x&m)7 zGIS*tM@NT;7UlG#GGbH%#e2za6GVSx@LOkkr~~&eEZufDw?wFv+*ihGvdXjnyuPBN zk!dL!=0wCpcyuyvN=M@nrw3+9XsE6%46_T;F;dr8)N~a!b+r)Cd>?ng406OAME0>Z#u9#V-4Ul+K0n@Uv7rkEYS!cpImLa8~kOP#UqN1iW zVbAYaBdC&hRw*!?<|*&y!Y-Ei{6lhJQ$X_cZ1K2DkY%i~AtoRqB|NcVnT)>uy`;Iq z?VF^s__h1?77{WfG)P86X?;TATXT`y9ngvZ#ni`9m7j;zz@YZz2A_>iUSAS`S8e*U zboC!hiMzeOc=4V(w;S?z=IZmaGuvur<_Y;|B-e$MqCvk)RGhGksHFNd0pxxE+AoU_ zHR8$4@Vr+l2&di_KXWA1Fu4$`Gdf?p14y5k`aa(bo$qpLfl)Yzdy4KY zaSZc=vOh{s8 zB*$b;pugH1Hb`NDrNZ&k>xrm@X-9NSPB|9IbrFjuV$)jISt~JVuIUyvL2+h^m8rVQ z?&{?1^vd3@s=ks1-V-9vLCrp+tuzaRbtJu`tOegE_~J{lrK$xszI6-LT73OpGqbKt z`m>10hs03nLE2~Y=jrj@wUuiz5r6;KxQK2fR4A_^kie~|#=OeG+;%<9$;8#hd-RA0 zg^hG$pkNO}UG1-G@*c(3b>IpWKNnMnmlt_du+cOdO=G)-J#ZhLMo^y3MyR}?q9k@B zcrQ75FZdxfv|`2ZD4GNYUH!1W=GQNGmTtq*vLo#;&q{39Ifk179p6Mg0kji`Dkj#? z;CE6{8R2;jpAyVZGTR+~svyOgt2Tz5mRp2%!sm}>#moWVAyyhEG#N0`&5x~WQPvbJho4^@-SDO z*lJrfQl}JE$Y_+NtR%Pqi8v!TE4V1RhK8N`s{ZiIi`!d?jZCw1=&Xa;+*Ddv z4wqHJ?DJP(=C8@9gcN%%v%~*I`)J6QVMnK)C+!`lv9ojRP0xSWJ(Oy%UmN61Kz z4vh>COZEgfDl!W=?t%4lyCwnH{st zdpAB+7{|$XB8K3~sLc3Z2{ka48E>KDGqlBKhaf>d7Amf9U)h8yDcR_##+D@Gp~2Tz zd)dQr%+A*1HpFLkV=*@k9CIqkDHwaEg_L9t^|duUdPbQi46!b$W)zZUOW!X=WT5#Dd!ifAXVtKzrl2&Afi6G&tVjZ`gZlo3{lb!%XI0J*38EE znv}B9(lF4lv6ffaUE_n+zT8~xaH>`)2;w~*NEiGzjYApU& zYnh%BBQq%|revQAyl)o~>2*y|8lRF@4i7;>zkdNL3icV z#w{wRNPn0jUG)tN0dxrqedF&1h6PH^P|?&|SUZ|nSeO)1Pf7(lw=NoKC#L1CbM%1G z(^WMl;q?7)sCfmtnWFKf`QXRCh4u5i0({;7kRp-?{Ej zGt%)4%7NrCEv< zrxTbVKG|Njgy*l?M?nZ*g!#F7MFb4f@$paW(M)4|nkb+-346U=|6VMQ#wbVFHK#Zo zrMD@AgC#{p4gabrV}~*#szTzqDzsPUmR9~d>?Y>ZznRJ8dxwLK=s`n7LqYMgtY@82 zK!bu}JW3xft68xuGLN)!8il9lz2;J`bkB6$m%CWZGx$) zp$WMMfz3)w$Vf=bik#3;l9N+Y!hy~#go`<{of0Iu@ptg_b*^ zA+#lxkKyz)TOprK8-?4t@COFm1{5{dvGCI3VPU4IE%M!1-d>u^XjN3g5VNADhyH0T z3vLM(bC#Cybh7gGwNm%Cbp3Rb4W&k3)|-2+8E&>6uZ^9pyG~~g*~W0 zt*97VyAf>aYO8A-;s}E9aGu-6s&ivp7jSg_EB$<&fAbTu!pz3J;@OMWgHI1zY z8JUNVtN4HQ7q8Fi3ysE41wl1kOP?Z_GJA0hfhmQFNFUl@%1xNcI>KS4_{!$|+4x)t}|)YhFS z597ZWX{e8cE`yzr%^iurV zW4%t`@v=?((TDc4Azx~(7d@hh5 z0P(`aXidDHw3$Sv<teB$~qp4@be=K@B=9*USfDk zUO7Gj&bMbZ`Dh@awYT9J6%jchG+sS08_K162HxPT2s%uCX=-LoMJhHM(^LGx>WwzU z(OJ#WMAgJaO5*uoV(awvw10Wz{V^=6uxDh$nOc<&D|Yk|>7LaP%8%w8T`+M=019n- zZlQ5F>dYB8dXj0Hwo1_Tyk(19Us#A;R!!b7!@pg4P-B<^*#K8p9^Wn6X0LZBCn#O@psJ2$l#B_^)r%QZjQfS z0PAr>=u~i1)!N&itUoh61Xv!Bj>-34*g^b)l+gJnv3nC$O#>VBQ3ZU^dnPs&192{b ziPwroxk^icY!%_Z)*C;pSJz~P=RLZ*#11X zM+&^Z*4F>Ix%8S-Rl|j^O=1Zhp3cQ*L7x&0)jCNTrp4x)H82Rk$-w-Z#QJ&AP2)O# z8SuXQ_q6|L;zGsE#+%m(3xQc4s-z+}pXu}Q#5_)`7cZXVk)Z(fs zX#K{%Wt5M+zwZ@9DrZJMPLN4fQsD3N&WweIHW0uFocW9->ldr8<}1gOdY<0)T4d23 z3^%6R9fW=rRRZtt2je;#gSM3BTB{+j02Z2x{_4Kqmyfqya<1WHxejj|lkn7#QG)K1 z94`6j=(7h?Fb7YjTnCjxSrulG@3^@z1 zHp1CQ3bjD1cLjwFk~g-;i6=L!QEFY#vk|;UE7gUQXtR@f$=n?HseRV>ja^QMSSa~5 z<4_L?>xf8B>~7)5=hLU&ATdp59eAWp<~^&5?AytiD<!~O5XAViSUUz=}gFDtE1cs9>_jd;u@ zsn0>9(}c;DBFhT>LXg7L*vzb`&;PvzSyz;GiPrl^!F_6Sn!(1LNT++8LVtZpDU+mM za*)ns#_w?1eoBhIVbNIEP7U(f;4EUXzi+aoH-gRXwwreA7`$SI_XtiXHRm z&4>7K8Sof39jnd)BTgw-QsPxdy@4e%8e#_DB{aoiLr5-dsa9~}#gNANy3aRJNto#H z;Ft!k*HhyD1*KI5$CePtdYzm%M4lXcis8GNam`M>*Pd%1v(=31$KXA+IW_3YGmmb8 z$uMuJqhF^?l{wUjU*T7RoF!!CzRM`ag4~K(=OgzDSf+-Bn*5INLbP<&8NUcu*I0O& zm|dTo7~3`SB9}#iEH=-enJ96gk&%TM@up5EWZh#i;m>@ckT+`c-}4hW6&DghwI?~R6@1o26E<~-;0239 zY@8y?g`k9~IyblazQi=adv$nfGyROQ>YOSj0ANVY5T_!}c)~Z`Q?hgeJ?=F7@P2O; znej3-^m4+HkC&yUFL}#Or+cOgmp;4eV&i50c;P1@_T1Z0^SOpX0_m4c*fe(=`1IdC zW)j9O#pZSFZ>EDo9Kli5SQBapEzbxHE@!`?GJg)?ScMF5t=V3C^+r!A-sw< z9xeaF-Z?dg(uG<0#I|kQwr$(CZ96%!ZQHhO+jep?`Kso2{=r=Bs_wqp)z!6oz0X?f zus33LU7JzU%(d3He_*ixtBYgDeNjvAFDA;KejYVJABg7I)m4_ap`#=|G_D{nH$oE< z*6vl7j!yP#~y>k8GA6X$uY9Za`JE)FPX64DX8W0+YSyjAR{E?p9kAAQZC*(@o;F@ZjND@ zgv|61y+yu8E3^pRd6*@D?WD;~F+4d~R#Q*PBpr7;A8{L5^=c$au#^|N8{e-l*uNF6 zeT?x)cvodq!!lyg5pSoTt(}=r_S)2Os_Z}zKUBF^jwY*bTLW9}ZYGhb=!WY$ifgC| zZO4^GfgLsV@6S5;nmarL+`55smNP->kqU&_bkD8K%uUWPvsE`)JKSF%@5jHzhztRG z#(X;SRQW}R(=)^0gM;7G>oW)XFlRLAk@I=jaH%BRObTjj&LKxlG<vMTGb9bMS$H@(J_p&akO8U*^)Dt3Q?d3<_$F0eewC-a!^_>ht{d`W zT16uPx1*p5o$WCu9l^GwBh)n@f@GUYZ?5bOS!UZ`jhKRkhJ<%ODHY5{_>{?kg}T*4 zSk+~9XrZ$@yV@-(>3jNEqaFYiQoBez7j5&gkcYYb?gmW~21=Ale4COr9s}h{5YhiD zBNO$yaQvw;ut}o_D@S9QgOH@Rq1?*e(AC1m=)>n3-A_uzS2DOX0hs4xd-Ej_osLPz zMu@97ZEIwF`_{Z@3b5gKUYCMO+7anp#0SNsWw%abs3F5X$)7)p76+O&Jzy zCG7ZLWAp6Z+EM23q$p&0xqZK7;;Ic_3PW_N^4^<|qv3K!{hg>sTMansfJQLHKdT2W z{O`cW&OL@mvJ1`j_czaVOtJ^Xd_c>F;#8Vm%BEA{7R=wG;$)aBAfrc2vEA$+fqs(W z0;9abKC$0Zx@FT7CYuLHvdkhCWpiFddt<9#UTb$gAsxqnj$Rh-3P$N_~4sLI*q1hb*oVgZBa`YHFyHy5WmbRBNZ*uPWefuWxNy z&{;#w14%5}R8}g)K}(I7w3nlofjs3iXpqnfF>9N{5kh91yyWDOotB`ct*W7TT=#$WM;zod>sAdkYp3 zc~c*Y=VM-rPI^GWJFqY33LPpwO;urQYI1XRasAUOxT>$FBCD7dl|#?*C2Q3M>k3qm zZ~I6CP}*SR?r5-h#%cbj8UE~>MHB%DR?AhCZxh(YPeJx(ctc;LaVsM zw~PCaU_aodAYpRSd@gBxc2XL;d9R0|LN8@D%@bcgwblLKQOejP9r@U#WJDM@o7xe9 z7&rEqqrSFMfkD-m;6Uv$=!>Y!>DxmXU0oTw@R71IvM_pY>*fH2K9@8m@4iF%T2Hv- z45hoF{H{D)V#z{5MasukTdFGLRuTQA3LQx762r16e44U$|NbU-Q{C&5u;Eeae9H^4 zhPAY|x3{&kvhkV|7!e6UUd{K;<*ZlnWW?*Gj-HN*iqGiX!Mz^5>$>}!`}(zbiVY?@|+dQ_T{wfJ=SYW%Gy0xULuY!by#=24^Jrf6Sa~(O$ltcu= zwPC|pOoa_#`2$&Dhnu#p&Fj#`JeoSQHzlgCg^Ll_Y~S79++2LBFYZh%t7n6E^iWyc zC=&~VDIl=gAjeLmHE{SCan^xlOMiX221W#(@$IeER2Y3R(8I^8{vAe$O7vBC-~dr! z0pXyY=jQn&)ZF2hwuK}!q4}VHmuFNz(1z{3hDfr^wh+>zm6lgnDW2TR>aO!qFQSf& zlvx~3+lWB|t34#}v$`njS@y|^aY>LR&Du0jBK)x#g^2SKe0e|u;z=7!Mc7zYN6z{4 zU}o=_y6_Tpmm#DkDQis+fURv!EbB-HrQ|{vvwL_R&Q971ZFKu0IKoEDRAONrjAx0+ z`!ynN>UQ->^iI7#K#ssNU$?^xG;UmqmY~S)!ua6o>}`5#V{uNwA0FPVupVo=f3rEj z!YZ%E1*AO)5gH-KE;QLbLPkl8c01CsPpqgU9ru2yy*%=gSOBz~2ryD{`r_7tj*#x5 z;}Cfk`=_S))FtMICRGH|ceFVsX}VndT$%loMFlDKtzKw+d-4HFF$qHQiULBrQzP@k zYw~JJ64+((%mKuV8q!etq}_hYG)+kIYX|6V*W3z0=*Xwj=1QKz?f_Wo1Rxc+~w8 zGC_|u9NH(Ocbp{pJ4b{Vjg=)TVoC-YDl$A|fDk#|$~SO4B#DMXa-STP*wbIeb&S}$ zU?Q}|wudg~=rR?6x8|ipGqM1?NgXfKP)Lz$b?3EP^TT(h=msN6X`7|l_3nLtJVT6M zbb4$AW(wn%(u0K5wubHt2YS6UwJRVU*Gjl*^N%VMdK1|n>YtWVw_hhd`s-Y^CAeS- z%Bov?$S8^FS-Kjq3y+feHzOfC6V3h7y=@JH;y$6*HfEWW<6hfq8G*PupGo3u?K70$ z&>x4Ef`NdS^q`pTj(nbAx`*6TFOU#VmDd+KOl%U!HLpE8Dy+2hmwaiCh>b+XgCe1Q z*d{)DC7}#{!4U3NOdn!rCqO&WvHC1kV;e)VJ7$y#IU(-&%RXBOS=yJvgm)fA*W5k9MW8anTK z*?cq=-iA-4?7so)y4=i4Bt* zBPlJhygJ)Ip+dsLef?yFg?WH_GGbCf0e7#L=OdXtB?stAtZA<4gG`rMJ2vRvp1cwq z9wI6>JVH`pZo6o;L`F%BP<;@5^zBU^Z|_ufvR|i6!$Tv2LT^5g1|~(k(^{cdEdr6& zLpH!E!5Z=sv*=F(zi?ViZW&`@UJhJ|1%`-l_AY-PyIeTzXE>+L(E5wU2#&Cb{V1GZ5 z6@6m9bA7)hvTDstGC1m=%C~Q}SFe0TI*2iI^t83eo!h}bvG>+W;=*gNpkno@n=ywRzFDw!q@@5YVO;KMnam7C9WH=^! z9wExu!ONgg+?<_6wdwWQR|qX_1K0cSj}i$sHZ^ozkk5@>`Iro(+scu^<)P?_&5zi~ z)Cf^cmD$PJ{yxBmW7*l$n&(ZL3=go9YSa2x&>F7}w+?;Z_qn zeAt$m*iAZgBA9IdjH!v4$*Fz`37PQEt4A@@XjsoiuMDFXN{GrJTTh#h<>dn&q&?Rh zL(mH^*DnhU0{^IA(^|S2X^10CZ+b8+WcjGhXgWG^I7no;5Ov8pnzFLGs=B({y}QoG z&B^iY{&Ih0?`LJ>OGw2qC8Cyy@>-IPHuH=V(Ug#olLN8VK?evFI6#Q6z)&won)gJl zpZceSPe0@W4-*Fu4-f0+(!7e2ih@Es?qTVKtQ{}hbnY?VUYgtz*W(oh1&&(VxeYIu z4fJy1sw`Dv_@9N@%s&DYW@vG8b8KHP`)@D=oYZ(=W}z{O+-Q@!U4NafV)_}OhzDk0 zdJzgEz{wsXt8OwnUP{vDvKk|MM^jTvLvL@xi|MPat*xu6ry+4aH7S|;!T@Nfm)Y0q zgrl+)t|rZ!9$Z;kUV#4E!9o6Q7+PLlUIGdZ5*j8dvf8?~rh*F!35&8?pq<--tfe)3 zKQSN;*Qsgk^+Wn~V#KiMk)EC!HoTr4JsmyYv`d>Yh`)v2Qoiy+=L*dCC~+z?jP(B~ zQmSyZx%=?*xZ9fqh|uyve?CyB@I}{>^?m? zH8V1_G&QxfGBPnQDySqM7!eBrG42g^*hI&Dk?L8~3E~@HUmTquU_fD?%FfQ#)aStB zqJaDk1eSre+RiaF@E5%_H89E{`b5nONoEA2+mt9V-Wg3#68hOox*991oBbReoy%%j znYJVVi?LfepoI_=JMDvHsme@WDQPRKFqYc1M$za)h zfSYcx@c(76Lqt?p#b@VUG~WDDVQaWpSxG4&)z66nLLl8Q1PXvuiQz>6eRQs;oRfpm z>uN+9msT_u>yBiswFergF0CvrD5ZED z522~Y7!~IBaI(+MZZ7vP@T+LXhag{vfmk$`pcL3DUh*=Mbo$rD2Y1-O+q3fMaIr5G z5)Sl@zY+G$u6~YNUtgI+C4vCasCYmi2=K~!ZrKqzbP3h14nCpo-`CfVbMz%8<)R$s z_s22Wc{!d!Qt6|q@io5!B?YP|Z*S4Cb8=L+m9#tQdwaSXoL?^tObyw~Nx2AE7NrJ& zlT0}`e4%fJ2nxP3KvR<9MrH8DyX%2*zlQlwM!>>7Io7uV?pBwO17!t29kGk=@<}U? z4kOAgY!3_#Q~9-V)Mg6zbCWz=J0% zu0TSB1;=o5bBvA7cK5drkIuCWOL03z!ar3>?6+5=aY2_Dqy-8ZC%M$PNC66iA4Eii zqvO4+_pkP_?)2D(Ci1(o#l(FB{O|59onN%lIn`gPWFD68LaSGVpv3I(=-?n}&K^2e zLOdGmioif%md8I~S6xj>LsU9EH9O*FoHGFQ=kdker=pdYk3$$u0qGJbD#b@$+FR08 zK-W{*Ts|D;r}asC;Dd><`)DN{NgbQeQWb#%21zWpFMO@2sR|GtxT3Psia#CjYwsT3 z56i_sv*|ELeTVjqF~2UcCmWBP9T*tB%{dabKYn%AI{NupAe5qi6!7Z2tnM|J)yy+P zGBNkkVNf-GscvdXVVMmOcL)Z)@6Pi&^ez= zHd#qtcCZiI9eSXzMOt=p3N+nU*7YPQ_ar&2y@Z{qzc=RM&kSKVi011nbl#n$oPJ&WVCovY`3;I&RrGgerK!wnJ{w|_kdy~ zrsqlD3K${p8pkho*tw~N{^t+}j)?_^MnY4Upn133T(; zmGH2zkWkR|EQ$+B?jcrX!`uc)^-w;ZVqp*U2oWh#fu7>eM?lAh<$WJ#OoPY6gMom1 zYGRv*Hvs`X%J&9iml6k~E2{JR#3BTRU`hK$K#I{;T%Da7ysOK|Vj(wXn*ifCecsU>|B5 zW5#0-hEh)wmFbxh(uN|wC?3PN^nJCt_jhlu-z`os{l`<>P2Ecm?qd z_Yji)rp(hfG&%Xc5R$*S2nz!P0|MkUpWeWten1XjBb)E8a1{vqNfPAVbDhFiYxf%@ zEY#ck*Q4QcN}6Y6o>KwJL4ZyTcjiwFsfj+dCa-AN#az}<6g}mTBsam}cYtX&KRgD9CamQon6xr_Ut1yMbKXPG?Bu7>anQb9d0@L#&&y z(DcFgv_XmnigHaT4sI=-_pUxzix{RAwb1S6E7d_rj*XF*VQOv$u-%3D>D$}K_x9q2 z6Q+b(G8SARtN-vqpY$BznV)8!LegF6bP5dkPLQ*^gMnLFt7(K;iG zT+Hn*%PTk?>nKiW0vD&S!u9fWc?b^>7QrX~dSIC9>i{%L@XCk=2KfDbZqBViO6>S) zW5b?~zwLEY!(k6|ZCSM2{>oVU+O&o*9dx_|+^;u(%dxGhrH*Dg4Q3~w@1tV#F*>ji z#>XUTsou;rQwr2EXwdIYUlZXtuL`zXsjXx+6{pr|9K*k@!@yNNU6u9;9xXLK*gHl`R$!}da&dfg zc5`(F1&Qpbi7dhg<6)SXO&X6x7m7SVNwTrs4ctkdwNE2nlD_gLOk`wSI1ua`9-<>0 z8Wjz2Wzj$>j%BO1sH6|0xPnjGWq*1Zyyi2e7If4^wbgHtZ>e*zcYOA}fnz17m+$s` z2h6f<8NqZMz-E3EZ@mSjLd5aFV{&U8d?{1r_E&OsceuSkOS9<%gurB_=f&^)YFqPI zOh79TZ~#Y0=0Sm^JX`;YkQBfFi!DWdk*1-!$-%y+p`nfr_;Bzgee_1|mN}>rfeAi5 z-R0GFLm?Ao_9Gu~8WyDoPQ2JhNHR3~%=|noE)?#{pnynx&$e)DMw3zIq%E;}MM|zy z4NA z?WHYnxzxEx*PFn9Eg~!^Dk>=`9Ud3*h4yxSx$yP(F6`$EtC%siI)^jJC*ux~4z;ce zz$`VSxI7`Jr329%ls?h0fBOdZBn&Ijc?kj<34K^C&c;UoSV-&2yFk&=(UDPqi9bFS z<_&5*yl!7^1TyCyM`Ew{W6T;sYwg1n?J34y;C+UKn4lD}rMo@3yY>g^ZH_+PF0=>I zbN|xTuBH~YfRqSg<8WWvsRC#-|1|y%I3UqZQe$-L-}7#1jF`k^-@r&eYzZSd_?&)C zOX(&QVKX?@6)|hNwW3yP4ko|y9)Ci-(tp6);-XiEJHnw^A<=M1uREV^lDTx3u|ygK z*-6rT4|JEpuW>?Ke^)9XQchMByKTf=9NeGnVYOdBr}qrPO%?bk z6_Oi6HL^b(hUs_5e*3m z1yRB9)N2dP%l$!PA5ni|K~?PYKN#X_U~Dz}3=#dkD9EXa9-4`UfLYQ@#O`Tjb*;Bv zP`Xt3!c}J6_8Vj?(Y-&lbR*!(a2zN$LQYg%W^j0XKk=*k`*I9OM;846J-9P3{Gjrv zrv}8sZ*Gj6X~u(1MvpW9qIKE0YklsY(Adi``YTCb4?3EP(%|`4lOllLZM&)1_#qh< zgZ$FhSqd#YU#SprIdGuJddrB_5eo+LxQhseeJSC*A_rI~QjX;aaow|(F34Pa`V0_* zzWeA1-lL>gu_0gu6XAvH&wC?maP@(51^oU;^avDKXc|CQ!X zivJ5z5m(SvRRj*l1Ohv-tm$XbM4>mTy) z>FklmIV^@;^Q2}&kXR=6u-HXNT^GsV$SWf#IXMRSK^UlwKi@C<;n6jxmVGtF(deQX zMv9|8*J*Db2Tn*$h2E$<54_>uotawuGr5X@F9WJF;fF{|eDFMJMym>{Uzd~=fDL#2 zTADm#ZI)rm3SJhC3}am$Eq<`sFc^)*mn zsGq1L?*H1$Aw%!&-NL#Nk3xCB$MkHSIl)|SYX5wMMMw*R0~Hq@9a)oK-rTtQ*cWdP zu8)WG=nTh@fRGH!jj!^kezvYhr zC4Hxd<@XU8BYkN=9$j^X5%6CGyWUiSKC15`x-T~%1%%q1_Kl2lE2}a9w)~v@{D9a3 zbf%j@CRW)=up$R|529uC+ekBDdB z4+fL($x=Rpgg#_OP)<(7t;6a0Uvx*v_HPpPxUDq0>9d^Z_uW>>y<6$-UjOqVW4$9F zL7d(n>G=jmd7wd_sp}hOtTbeOk1@=xnn6YA30rhsj_-(I5$WMESVtBW8z3brFf}>6 zJ8=I&>Qjrfe0n~xr^){3Hg=A+b@d>8NbH|6vhVfSrAtu0w~l#|Zl=vtyZDH+_JG{Y zsg3#d_j1;`cm#byfzNs-ZPfAzrEMAJ0J2x^LI=xJC}?g(b^V*?f7WIu9lZ!eSC&)a zOfxC18fs0EHT5DmN?3Tk{Q(-krQ4{kuCVYi8fj+%X<%o1f&SWAchXV!HFwh{FxYV< z#H}8dU_-vxg!a@AfqP^ig7FE-g`-h-TMwZ#JN>`pLVWwZ#J;a#otp(WvrI$tnRd~P=WdKcm4t_ zJ)VwlsG4t!(AV9#O*pE?0@T2?M+s%}-o#gd)j2ZK&K5t1(=RS+Mp9Y?jyZz< zDMlI=5()rV%B|O=z@~QlJ25%L8oq zWWW*`D=e*zO|49sp|N*$Yx# zhrltiE3DkjO)mPzj;0niRzGix)31K!#L|KjB{#K(@O%0{UtPT%U`~IW3VE6#PMQwh zD_r25DPax9)A?y7BA;4UlTQqazvW6m5*TGJ!GJCcUA-44Xc)!sNtF5b^`USR>tidr zis0$Mn9#k%LO_C`>;%MI^N`R94uo`mej$v&8?tnF_h ze$heTKvG&*SX55PgWS!-=7dn}csZM}AvsMpJwv8R^!5;58D{_Sn<{Vmw5_!brth1h z7dAjf!~-*FQ3)NYSG4?ngoM0~KRva?b5OuEN&gc1du~=P2BP1>PhnS1L_07i_=QIP zF}_+Wk@N?jE)UV3~VjQs|kq+h-$}2ML^=cZ~j}bSMpGxol6z$vVr+4 ztS&C^8f9Y0`$JEa^)GO^;sP^SVTY5k)xjMC*$3I#TARL4PFNf~5!4xZt#dJ^zNAas z$@YzwWkqN925hcOaruvwl9U$QnrrR?6Kmk8?N+q&##l~tMb3J5Tx)M19NHfs;D<#j zu+LjGbU=;`&2$XQU+!Br2CNkYUWWqx>4hWffX2m1ctyVtl|QZCDfqye63mHwll*WwFhKb8s% z;USFu0Uc^unb%U#nWK+!HT0v>{e#ll!O_8f-$aCd?y*|BT-crI7*`fmRO6vAuXGBh zgKgL$2xfd4C(ysL*?ope0Ak=@r|^(D5cf;tw?&C9@D`J)5%0~}Mp0U$`Zrg62AH@n zudlVKWSy5$N<=<5GR-O`!|#207&tdJB|}mXZHsq-U1#i>L%@luzCcuW@zZ zdkqpI0JxIoil%T4# zq|t{br_`!$i1{?5XVFTnX-|ZjuK0+@YD>*8&~n}BTJD_*e?R0XZ)x9TSM~ zsssTupbc5Z;-!Nes_gFxU6sK0vu3(;kYItz0YNw-|{dUsA zA88W}2mRTyDx+gKgA;=q%Q!~$m22ISW8b}+H9X>z4Us^d+9USSfa#<<&|wkgW$RfG z+jhNnW|QRxhVit5NA!jTXX3===A1;U#fbE@P}Hk}TYcLmU~VABubo#1sE~&6HZrC| zHVRaWidNEQXWXxk+_z3%tDZmm58byMy-qn!UNcTRtq!~SgJN>u_fPFTtGn*s2k%U^ zPq>%7ZEmY2$x$~Ms-GcNVz9ogwXdn4Zq;3nQ9@d7M`Jl>>pQJs0u?}?>FhTZ34?T3 zQ_|brRaYY>a{t_4Yd=8y&5-t(z5W%tP_0^Ty$B!XoUD}QTG-jySy@@x1X6U-T&mId zx$jg_s2tW(-(Gq+uE&^2rRr^P)FJ9hlb!B&`*pm%`soqwTA(vFdGCS!cwW+#%DrG) z@6@;0_D65EB?Qf&w)*;ADVeFob=j=mPEe7`WPY9*VY#(5@o4!QB%$fCFF3U|^`4(% zsnYfsJq#iE+34}+8*HbSQ(=0|z+nUI7Wf-Rb+P?C+wDBDu)~fk`(nacfM!{0(|h)3 zDoG92<~F`ito=z&O3mIMJAQeG+AlI+&Uk*tVq>x1=_m&Hn3}uLdD!D-UkQHg=Hslp zeNSO=Q|nP;d&jfVt4{OYy`Zrt_I-G=vg2p-;Mc$)W_4#eo3hg*@1ughi+ygAKna>X zW!qx>$`5<>xwx4QaWW|!QIlzR=|4c3li2zP?7`x;c_PDC?WOd|h^KTpYQ)86MC*;h7~w|3S6Z15i<{JVSKGzK$rseSfdEbcybtFQ?3`cmPa4UD~ zORx3K)Mg(?l$S5i@qM7N({exzW%KlRNC{CHd*P?5zUZ@gOTwHoeUjj!sk z9AT#ozYUVrdeJbsi3mCE54F2Z@-bo$z`At?PA`c1-|9pE69h7|uljF~mE? zTM0ka$?+fGcV969k|?V{$J8WzvSH~M&)XU9n(y~*5usJ$s)@LN>JLFN`ERM}8E(_O zpt>?*agcV6P<0@duNoRsp8AwzcWGF44tyoQvwHUUDb!zAT}#r?mZAg{#J4*oh)9q~ z-cZjuUq=pg?`?LDcVy@^=yqzNqfxlt6v=n-w~qA3KLgmf%CJ47@kFuT%5hr$w%3MP zlEvD=FDUMRw8EEQ=4een8#|-{M?^1#z;?H%=g^K9Rw}40C=mJj%ranWs+MAq+bg0FOz-fibi#Te- zs{0Wvq!|I7=JSN~vh*N2TAGuI9oC%3`K8m2g&o`|lOc4U3|`=-b&;Jr!S4~8OUTs# zuvJNsVpZoM`d7CE07uw~Lx|lU_;kVU#)0-Rk*{6J;tJ0NB}h}sif@_eB%JW1PM#jx$?P70z7lWVg?XYFitKQt+zHv z8qp-=#4b$NjYuOc5(n9JY{Y$c1n2~(R!-F>oNF=%~Uw3C3p`;hDcd{ z0b%`n(PWGk*@`PHs(Rnv{wFFMR>`!N>k^GmAwrE(UD=Wugj&k_yQF<=#9ejYy%xdk(`Ax zwZ(w#566XG`xpGVd5Q!i1~d=%%p)S4k%OnQ{Ce9}F&hxKQ7eu4oR&la5Dfx3a-R15 z1am}xzfu924R!CP@XHgia4Q)Lvz#DS6xi>w4 zG-y^J2>WS*dmtg=raLIq97hGcqf-De#&UvTH*JLkQje{!vg(cZ{w{ikIv_i>{jJZ+}2DyO#IR^?LVO`jGPoQOTM|LQ=Re+t| zAHV@ewz6Err6hvCK!`R4d{e&rlhdiQw%5|m{&cn@$L&&|Q~u#_MgB`fdXj zfsxh7eg&VK484+hRYl`j$g5m6GRmz8H0EHW+$U0}q(ts= zttHpuAl}lEGKY${T}Msyh32{i{$(9noPp7-^Tw83>bdH0>5FG+lK4r^vINvuUu$ZoM0IfkZ?&WG5~=wwB2x$#0i+Cp-L@ZO}+ z^P#Sdj#W^(ZUjQ$ow!8vFeJa&rZl+r^u{_R#v5y*o)cb1{ok9F3J>w-Kdanzp4>>b z3s{Jqj;4xc{6actCNN1joj((C7Ua6SXR?;;!6pxeAmZf7`ZWvShf|><ACig%J+GC@$1jl~u8pQggXkW%4bXWh!-I+i6>0y02iY-r zeGEuYb{gzUsprqS-(i{&kd`vyKxbjb4m!GbMLd(2fah>+73ae86kDCojpyV63C3<) zEuQO&-OlkaqF<;#gcOipE8sAJUe?i^enS^3#_mu~JemPz*V3 z{`h0AkOehqMu?_xqSUmTBJ6WmT9oYr3FE@?D0T-RhOo_^CXe-d2w%}9UP5XU-o#jR zQSMJwAR^bgeQ{uMdy^`pM_12yCdh@p?L~|`T#MCpI7MH~cgfHAi*B|sEMKxf$^Vd9 zapr%5!clL?){YW0F638?+?Wi0@?VuznB_sw-L$*P?rkTFBJ|GLzbNDQsgY!nLTjtY zlJD^WgujFB!+?UGz}`=sf}TCJ%dlJ;#1O_egsav-0PC zuGwdbCPIV~mV4u&{nSF%faD9B7m^C>ce=5JH9({aFvr4PO{@8fCe%lj)X$X^fT3|z zJ~4Uqm#flC8-T*g8E2yJ6J@}jkiAKLa#x0b()MVq2pq-1kiF@fU z`>CL8mX#7in;C4%Q#IH)4h}k6F?kEDM!;w~ z0{*Bd|54$Ku)%@|srh@MrF(gwBZO_r<9vE`c1Jp&L(hgLZjJ!Dox?}^V!ZKZY@4R`{>Upz!*@MRy>8V2p ztP9=+?@n+hxEIm~6@Ui#{}=wx{rK?%KKi2EraixQ`B~h|ec*~ZLUe#=b9Z#Ot+`qa z^v|@fB~F%Xs3JdhY*#E-wQAPv*0qbTe1Dnnjp|*wY^ziyQ3FBajgTT(J!X4LE{HcV z2Gj{A08EGiPwhsdo2k*ZMp$sP4#+QGG-%bJLwjV0^tL+7nm6$#d6UwRybM*^w}sKr_NFjWxc4Z_Uv9ie+kR5 z-Iy7I8X(V*J=DOKD^)-S<<&^%y65HtFO7P>5k`A6EZ3goWm>5l_*!V5&ns=gQYj{O zgmw{6D!=WBHQG!$6ni{A;YVQ?NUVPmt*mxcX&8yxYUXUI0}<}%=B?3%1K*1?mQh!3 z@c{;-u2Du-58bFe&4((3SSZ1o85_h%L5qky@|0*vE0btBj--y@R?90tq}8cuT?5NN zk~;Q;(xOL?4GYq3U96!JiQNG9@jOqdeve4SqG@KszAV)3RG>gnY%O?>67}AbJf`I3 zkjFBKFp}Lg#++I8s=yyxHg%()_!D4!XwbV!%B5a?w2?u>p8y=oVV7EO2eg2nRo&8; zWMG~lNmQw0?xZ}LO*2kczRl>kyzMaWj7CVc!Ym+u{x*gw5b4hCeb-} z21x6+l~Pfne+BXSpw8db%f>p&X8YNIWDcxn>Fm4(tX*}|n8BqPl#MF6$wIQ;eZHNH zhr)yq0Rlj2OCiF%S5VANgyP|0Ui zn&e=|yW0VL*@Kgl5{OIM_1qF+(?;|-qjE}Qfhz8%EsCaQ2n$ummQ*EUJ7>ev`6FZB zeIFT@c!ZZGrIKZZFU~uRUF_-i7FB~J%0&v)3Rua(p3-w(mFg1K0#tN z^iH<9VJHWY+^%dc!2aU>@|ja-8W7BjHdAfJu2_;ejVaO+ebCjT z0+&;@O?%e6GUq~dBH4=M2LA6VXd?}}QzSVh50(wEC-m*9dZ;a;A5ToF0=lf(+W6yn zot~H~lq7;RlwvcFzdXIjLG{IHi5-p_439dEYW~4bYmGoaXgu-d2yyI{gkOged>#ay|(*h zhU;r`^)5x5ib2jpTD2Ha52P1EP1Sk_gcobk71(=%Z-4h;YUBs*<}7EZ>5#cVC*$*P z%XaCN%|nMy-QZZ>8@IjBP@ZOK4S8d!P4Eg3WU~NW4Gz%zH5NUFg6VYHI*{NQru+En zhPr0idEo%9dUo<9ht4dL%IO5!xzXzZHiTU0$>t|swv5eEM7InpvVIEYZ4{c;e38h} zz5!ETfz4FqZHU5i=mxWTbobZ|$X2+{YtP|~!-ThXz38cpVBo0lfyeJZlQE?Rdou7l z`WuzgwlGpS31#z4-S4reN7P|u{`< ziQ1$SIwU!m0e5X$p{|d0Zi?$BPx{RoGpx~T3_<6Htl>D9O>Csread1p#P|jLHt@_e zPHTz#p_~RLXHT=140$u7ONNt^>&kj|iED1qY-uwHGq7eE29WE+2Y_vJFg|2wVEfE0 zu$tcbB8XHO7k@tX64_(_^h%#JlBcbSs^w?(F~WxV=GP1&IAft4K^{w1&s#P(LiJ?m zY*P9ue#}_6Zr-|WQl~&Yb#O7^Y+lMGYVu>IcaP}K^=5#1)TgMK|OGjQ4Yz0_ojLGV! zH;Ob2B^PTG(>PG8WUacsG!b32Tw1!&*5r7Ns47p}%S0^K*lxD0SJpv!e^4)P5Z5*9 z_uB7qH9KQ(UiJ%|YvJOW;0FanV0gB+)s0HKSRZ*YRLHY{s_N)5LNjR$6c$O>R}e~B zkc*^nR-N_~L*{Emk)QqHDeqj!+CMqKl!#wj+3(n&*p7OVXz(8$Fk8Oyf1BvTos0@q zV})$4pRdH#QijOcS?QRb(5O@fY~gL%OXEaz+JbndWlXdUGnRUWWUJ%|ylg@0kw~$H z-cb44t`l7jVne7SUISt{>6@42p)hSNgqZ&54_CRSQ0mVvw3R7peRL1KLKY49_9rP( z4Pcq+(zc4B*x(Sq28bx(bg-GjDqt!J{X4GL^p&*5@{Ml~S{&Rmv?MVr{`JyHG&uQe zTB(crQX?<_Io&LO&047#fN&&PI8;TN0VAT8T3^PrWZQ*!0i=Z2LY%g_R?j>f?{17l z92}30yfa2w4x?b08Y8n9kyxe$J0ppw%I@!ELooHxxEyejXGO0nVvMMyPpwo#@_n9w zhEQ5rVcNfkKvWT;G1x*Hx>M=khjcLh3s5&N$bi?g&cvPmau<4Sl{&Y z^oPKwHH}8qVu2%KpZUR>O>=RKa#Ut!M+&A{Yd@`!u|Zp>O4uff|2WA##s-eCa4SbL zd7)#m;u5Kmgds$7w~zKyAnOXDA)Zrkm9*cPRg8gw;C#d$*JbwGzLk$LYhfAZNQOrB zR(j1+jY%2^_2_K*aGv}kX>OIOUW=n9%hh?0WN5{+FdNKma_N(WV0q1lB;DfsqrG}X z)v8waf|fj|*vx2N91_HbDtYqYoVxr)n2v77N13`ONcO$tIk z;LPV}JKjgCUa@(ZEIk8lBx>2TGstbN>ZC`ZG@5f)44KQx#k#eSDyO;9B79?Qbsf5g z4YJBN|7uAF8FJdhsa?U$Uy!n)RArAStT==+i*p>kQ!tN0aQ_Iq1a_5mY!MeJu>;x~$B@unVjm)WPYhj7;VKlvRc5;My z=|E-mQ5(rB=xmI+;<;zv+?u@H2Li!ictNWa*`c}!BP)u zqi8|;%9)Oj`P1JzVp!HvOJOw@umCWvY*GY7r#3IC+wn|As+m9rXJWX^i8cb#)Dw z4i4%8t1DOYQ*lRX<1s8Zn--PIk6sTWgv ztzuwIG*Ji42b7;BgsOY&wUmfpuUf}quurT-mEAKn`-xNIeIqzE+t;B{|a#hpG<#vU{-T`(7F zj%wi(%3UiqRX1HAHtJ1tH{O;QN-@zW0pZLe1Xo*Hszlak5-gDN-AS+K$he*^+BP2( z_h|C3H}e%;*Ky&hkl;IOjvAoTvGozIK}=KX*oif+u`o~OmUhY@a%xrz%N#eTk(;4> zc;J8`1qVmdYtTf^RA`p6F7rZ>?Om$oAx+%o+K$M3ilIs z=F2P6x@<*Il`_SehC_fsrzBq3g2Grv5tsI=(6j45xkPL9YSk`@*8a`wPiHZ9Nkz)T z8m8y{%ngF|m;m|;GzPYqnywYqo`n9ZiD-1L=gQF+b;+?A zU0Z70L5@4+394C)&BOCXSuZAz+~u-N)>D1I_@D(v+qsbAjENpc^9M`d4pF4s+p@5G z>oAwHHnFF?)Ys~{H7;%TQz?JD&{s+`o^wn(cnkj)U(K35-n??znx2?zYOrf{Osyne z6vJmr4Q`C7kJ@l2KKtXOK*$)9%c0kYk|F@;WiVbP(Xbh0s`T|kB3YZ9*{2CV8IF(kyK3QE1d$l=iC&3;SkZz%$3G6SaU=fW4>eSIrS_-j+Dd)Cm`yR(BF&k z?Zh`TTZGQYAMaT*#Zfy*nwQOTah13xKm3r|_}(8eOLsr)pfUsVX{DZ5+&-YIw(pc~ zS8DB5h)>W~MbLlR#&c^G$fEMzwn?wCcGSS>0&!4fXHYmtwwP}BlPk~YC#ky7I4giL z$zuS_m`iiNyx~YYch1>L=w{Dzg)n-$eV_%ACOd;uC<2>{7GTjEMmAvyF}fS0=bTvj zcd7{*Os{c{Tpx#b-;F3k#R{ubDr4OP!{%4Yiiz!F8u&J>?Y_G8Qq+0kqFr(huU4S2 zRt;LmrHRSxFKk}O&5|l~`dR^vhi|onS}`75i0wIpbD7i&UO@r16`%U6JkRryyJAe_ z?H$R`VvaU-*aQ;z0#o65EBS3cMS5YQj_ND=EcAf$RqgI|5}W=ZTR>VRKm=hykL+=E zNERi7`Uk4cd0?TCW!qZI30>wkn{F$#3bDK1+&R_TAZ zj`6rd;Y&7dCzW_b91+Q(?7=E#i4tl0dhd7-_LBcgV0x~EE$Tq`@~f~np7)hNM80>h zboGtfcTedRWnUt05K#W$Ki9;;k?NNbDASG;N$cd56Rt zp1K-7v?DnNM>kO+bS&Vjmm6+6V}^8SS+*qTHP$3-?Mw95!?YW=UA@Ud@QfCZsx)XX zc-N}UCH&)pa*-x?qd~~wcWSk+BJX*Wkz;M_)apqc`~FW&T6~mEyK_MXi?0MB0@rn+ z%kDI$ukZ9{>tNS-Z2wBaD%|)4vX}3Wd|$72RuV?}``buE=pK2Y05DZdSoS)p2S2b* z^Q6AWfg|N9f2d;wKYBb*;0aPQ5MM(+vL9{PT*jQCmN6&t&}-MH&4KFNC;Fk>Ho2JFa3!r zxiRqutONEP#h5YUd`p+kpVzS5#&T(wG$T8gto&t7{lf32p7tvAgo2hCr(kN(YOu~a z{n~Y5kAxXZsX5BPy#rvb*=wAe<~;d+oroRa9a1f5h415IK!19zG-RRI!+44U4de>h`w+JkGaLPx~EMui@I6OYRnODi&UNSo*fFh&dZK@Fg3!zL8Z@-BtnRjvTHA|jQ z=Ijb`tT~l()`nt5%1L}VVg~C(mFoQT02>GEr45BdCK{YL#|DLJ=5N} zwr-~r^8_;6hdP=a5>7g`3+pGzX203zOu)Od`5XN2rk8SM{3}Ddv}`QfO4oA6DLOL> zy^cQ(t?Q3etrii8+z`5FY%6jA(d*-Vp1b&lJqsEFhbnxtS@|4#u^6?ngpc(|W5{|c z2tp>dwqyJr!i_)mCUE2uC(zDU-iC6SvFRA1#&2i90!61YtD6&s?Y<%Vx*DhVBYscu zjagH#2>~BhXH1o~iFB#Mx72qWUP1j{!_+48SDe3yXyM0XDmNT;X`{vv_ph-`MC8WR z`3Eto7%u@OaSW^)y?Ss&+{68ic+Zk~Cgnfq>5Dzpmzio~;boyek`atoq{)5l*1JSD z<$QTEX%HL~c6=YOMbeZ?&}6AlA@(Yr7~SbzRs^iu?IhFMDJCD1e&fd=97ag-#J63k zDh1R_I=X%#h_hC#|B3|`PWb+NRb^0y%A z@4fejD6|CHL@H~6S(>>AJ-)o-?o8eQ!C8mE&0=Z8apmw21jS{-7_q)PGbzGM=N%dv zFNF=QDmS5{O2cqD8h(4}xHsSaJf=M>afQi(*w~43s^9I7V)rxk;wWHJ_+FarP?=B| z?c>VhhuXY(O^4K{km6Ry1r~7&1&71q5IW-H-n?2DvG0@62j3wIYm8g!9Bc{@D(7Uj z+yq&qMN^Sov9MsB6dVqP-&{)7cd22zqRocKnXJVZW(>j7IRI^zrvE6%L?($UtI1Wx zm&2P1hb=eGDB{(VPM!XxQxz9zf3w%P!r>{Y#ri#CEisHlw0nvEJ;ScOpq}6%mRryp z+Dz|YRzX^|UTNn&aS?52{JZ$F7s4EhIGbp}Up^V~x@{t{90qC@X3dledj%4F_IU}oKO?W7B5jN$r8e=IbF zijuSGZll$XcCdBtc8RLv2^Gu$=^f<5v*;DKB!A3o@;~@p_H5e{uYV)vX2{Z*w2{)M zgK#DAmi(KLuFzl(Ovh@<3{)xR94V?Q!A|0-f>#R+Dqpz+aT{D@QgAtJ0qhxspdV84 zB4zl@w@KPAt`&x2ZK6Nyre?jVI>kS8k-+2m0+>tTGwIjrHi0AQ0o&o=!zUV+FRl(j zjV}JY0W@2T`#pa)$0uwj&g=qi*m*)Zl*CRU3L*W(4`vp=ZTA;xA(q92VrTv}oSIW7 za5?DzMXSW^gX9Tun?m6*k-r}|-eVczocbK{HiI08(SQ)e+OC50EUhxf)SYI9cB+5jv=wqK%n>W_xJL7|1jn5!`w$<0fV31=adQgsNM zr%nk)YW0p-SFJseEmp6Ea5=p8jItD^NeX&lb$vH%kIY+vB43*Adbpg@S1xwiULJaBl zU*(+h7#GgwQ8S$(*iRqoe`$W}dN{@GeXFp<76FR*bK|SY@Y)u`{Xp6Iut#=$j_maa zCF2?aY9#GBIta+m&At$FgAS3(8LYHKCYDeK49?Fk_R7)9_1A(HycCs(5>roSGShD+Lj{U`3xf7wo-B%3SzgF->I|T9so2J^G*9i5Dv4pY9;+z zcK>Xs#D&c{VCW{03YH)!V(7|WIVE{4RuaPGRP%x?MG*dNp;B-!%6G2Y%RSIbPYMhu zs+FO{%*|*(MnE@UBI8vmmSX&RYl@g0^SO?wzZ>udf)Wv<$gP%<)%Lbtl5Nn-!vCTt=cTlYLQZCv~`0Y z!pbPB(hP{8PNy6W9ApBz`E%o%RP34rn81a|(O<-I`l-;5tknZ6q!XSZXP^eMo-?ex?U4y#uN(A-(KsW)P>{xjA)q+^LSRSK z#uPS8cd#$>MiQ5?hZP&MFtU{AHp(=2D2%BvIGudrB^NQ=1Dw)FC3;U7PR4}XA_H=*wX8K{VqzCdv(Lzxm=m}E`{tQ$_ zd>%?o+$8XEr~fXRwW9#TF8_tG#$+X46opGAtH4Xnw;|}iRb1tH5Um4mCbv762Q&Ob zOH3^CiD)g-c_K5Ll}3~u{A>7u9C0x>RPcdbh^&CVuT$fX)}mF-3%ZENxz*nUN~Oj* z4p*s^eM(#&nexHr^l;JYz@L)9Zh^X*2EYy*XaFaQkQnL6hh6d@0L8TVT*#Bcw-i+a znZQ(m*$WrJQPdo2CgFYtcOsJvQo|f0n2ck1%xH~nWIq6%>c>N@;=@&f%Qrvv$Hq;& znPxIP<(R)|6!0!{fN9BP@c=&ESoE zLQ%y(!KZ$2yx6jVHIB&2UB8^e%sIg)7g8J^HP(+th9&%kPNvfFPhOk9A z2+~N7Ct5g6QN)Up(B^eh-oZpr#N^m>B>wqEtHCf6jJ${Pgpso0gACWAP(}-FA!&iQ zLWq*30lpNMF|9lye_mjm5|u0hXD$3QS+~}#kVGwrpJ2%}lNe3i-BuM^Eqx*Z>H1NP z@G0?5Q~5_T_%Q+v%Gv-_p4?G}EKV+BM=N(L8UGIaS*$u)I*4N5?-f?&Z;)p;oVe2f zws3@X39bGzIeII7G_#7N z=c75@$L&R91UauqSvBa>wmBrE$(hOtvB#HPGA>$m-#^vCQCuUd^BZcxnVa}e1bFB! zTPEygBiovh(o*_!(UXNHV?#v2nLaO`tqUsC$zxi)+&T6FG0+-Z9DUqj79BjehMS>} zn^l>+x-q6NU?Q&IMM^suX~!y(p{3GoK6U6^l7xmze&?f?4ym&A*kYf?QU?NFab|+` zI$;294MR;2&HH|yFJ~c(8L?{$>b!LcaV6b;LBk@$E&vr;ZhX-kM$d1K?D_kj+LtEE zx%0yeoRe1J&D3G(^_pwE8z_xd#0z#b0T$0qxH-Be&je-pho){J*FT)kYN;OJq>7E8g}sX8Gf74I7_Wwzy;JTc?4ew`7l#?e&*1cF zDX}R$Zevb+&7xT<)9^$*|2ULBd;&*t^c&=d%#Nq*0a%5_Vz86FrjxGgcE2U<_(+Up z`*x85To!o|q0k(-=%S%OIY$k3qo##LJbf-t)_1Ro@ZTX|Z|e&)xUSLzBjMX*Nv6o5 z0*}Oio1L~9Uo8Yx4#8lWz?WO_dGBKGfqYszDwM24@`&;|csw&F&KOUl=CfEK7oG5z zcw!S?2PoWi(jF5a)N6}eqNmEyMm3w`TjAwGS*W|p(~LbnM5S@bny6+Dl;MlYoZGya#~dds?tWqnIYtq_DxvA&=~_)4!!9kD=W?(b z^q*jH>{C{!N{+i-sNyIbH;W0vwc|%*wLcXyw?<+zB>^=P11PAnGhWmpFT`}>tPg<; zJ>{vXL^+ieOR(rX8rWJ?F~!hmP#iTvilpQb6h-_itb$g?3tF{AzneMQN9VwQpJNu#8g|k&msAL_+Yi4u8BT&1g@wbW8&^%aP7G_qGyfNS$lZ{WT9d{CD^h_tkE#$%8sCGlC;+ZV)iOToC4v%MpLct08bc@EwO}q2hOn zHg+=h(dUPCx@N6l*;43zA&Nwz%ad)aWrzYys4K5gpRr!*<$Q2Y|3Oc(N-v6MB6dN=N5zIrhs`yNJ6sd@PJ1&1+uwq%QH--#fmdAL9dl?NxkLC{ugo06^9-2Ut z7xon1s%=drv6+>7z9@*K+;*3}%eobiH4Fb9xJgi$7l009w!@}Z^FuLXq_0$C=BE#f zjf$ad(I$i|1V0#uDYSX45e+RY(szyk=5Hr0)`;;4@=r>xpXfFDvAEIivWP;<_*_z& zUuFcxEp+Hh6(kSOe&XQJnQy8T!y2m_!h@@$?}CE;ZmLC${)R}$gbf};N{q) z&}HI7)1$HkLw)boQjGPSwDq}d2U)Fy8CS3HE6N_&H@0(qS}Bzp>U8TB!nNA(Om#~6 zsg@f7Xsja+eyII*`JRZ|K@o_QLgN24L@p{LJ?vZ#B#Ros2ofR8i>ge)zhwyzMM?`T ztYZBkl;JDpKphyEl)DpmMn@D;VjCVAA9?LdA#xvrG9S!;ONBl%k}rxZ`Y=<-H`41$OA-O&0{eanC_iB zNmS*xmEuv*8xpc>PLW59a(e?1L!ZUW-9$?R?_uf+MjRqScal4;_g4bDANCtnYBj|K z7Nf?|x$~H#puEm`(6K!W)PEemONdo+ottX2WZ6)HkqfAO%WRRLp2VcySta`Z+Wv>F z`tR>=Fj?QsWL1_OlJl3(s|GBw2+8-_e9?oz2)V6OlJqc2>~L=??L6TARIp7%75cJpr(8Q7c8_uM8@<>0hlSHHXoTFNleQ`W%6uAbULA zH0OxXe(XZ1+@akQ{qdbhf=&_rB>(=K8{}ME8IMasM%1uVaHe|YhnxLeJtif^BzEi> zsxcfBn)tLjYXMbJ`s%eNSjOc=s$_=F*Z=c!o=HG@REi@X95X&m6d$3-Lagse)MG)# zZ~-%yuj~d}8)Yr07+)L1l5C0CGRq5>k8Kj}I_}&yrHK%-;>yx{>G}DEAg9P`S=Y*(>-!q*U>B!jGsVki+-|B8PN&GgcaN`yqPmr z(x;Jyd+Mfp$0cWaseEA-@LjBg6=O=RUdp=B_SBS zbj-V?SIIfjAbK-STtYZ_Q^G!Smk+p3YY3sJ`m^8GrLNNUXj7AU)O10!?3+Zf>4d?< zHoLzfcX_kWPb%RwJE43vAg2SG@j|=Vo~pS=Zn;YWtRPIyoU1AeS7)19wHDlsnvVc(lxXXn&quo^_uo5dnhI*74gW@V6!=`8it~w!tirhvmSYPL_^DnU41_~ zpY)P&4zUchGQv1p6_bh>7HlO~Jqh}ybZ%M}%5TYsHs5mq#B*Vyn;dx^C;#Q*)DS4V zx3Y)WkF~g2p_9ZN)5_AaKiMNK-?H0VU>E2MM05IvekfeP(c9(xhvO(u#j~a4SEXxC z>v|57`(Z&uz*hn2JGZ6u1Z-6_A5gk%{dXg`xwd;2rj##Ia9;q)8I+_78w8Oc@uMAg zS)0V2&o6Qoj?6v)_rlToNNSTM3?QyaZ$wU2+$?X}BKr4k05Y^LfHh3>&-cC81K2@r z`yWY(nI;0liCjhBdIAW~el9m$N>E z%~5bhwn9ybJcU8X3s z-Ws4Q$hm|m6RU63;7QxxmOcOFam6(axT&O!|dVmkGuzF6w7Wc zfer1q7b29v#cI02x8?N0Q^+s%Avp9<4o-Tk(EKr1av2lx5oy{0II_@7#f-ZIdtaxF zQT?{Dp;5PZZeZ*%rurRuCT=6kiqBwtGQI`ff><;&3I& z6CgaonUKF{79G=j5FcI=lU?;B=1>boNLM<0;PgP(>4$y2>E;MW#=oZCl`YM)I0Rx1m8AL+2uBob8i zGP83?^Z<8caa8n1k$T0g!fef}1^aFIM3L&i>I8WbF&6vPc{Dvl(a~=NDM>b`W_UX$ zfqlf5NU)AeLJseh?h1igXAa57C(*d?4wMlyb2JC_p*SoF)ZX0ajM+p3s(9JCeXnFD zGs%3}3dTV}X2uQRVLQ!O4=uY97FXYH0cJ1xT@F>6N_zK#^HCV>4fOc;qF~d)!4*^S z=eJkP7kO@8LHAY7%CQ?O`+)F3Bn9`f{K@5{C+#q&WC6T?Nyki< zv@yiQu4P+t4i(H|Pz!C^L5%zo&}hcsurdsQT(*{eiXgNn|A0>P%2)9mM~Y?;{+5*cmuS)=Bwd=7g(yh-5ndqh#V5TrI_6Z}yB~ zNv?KOFqqA%xw_DVa)gVpgo4sH>fYP9iT3G@@ni@KkA7S6Y^Z=Um)KE>uosMDL9M<2 zEfVL+A|*x;5e2qL%A9gArw6`ABq@|60-;O@To@j#ufAuT=MR<_!s3x8(iA$M<#r;1 z!aq`8OB0F~i3LeUiwY!KE0b`^(CV^S^l|L=@~1~TEE!4iCcX}0lcmp1A6yzK0S(n& zQRVwO)Ddmx@CD1He^FL{6_auX;~aPyTuf*1dTqg`V%Ao2k}IRB2_Dkl`IWFo_N0dq z!G~y<4`%p-jNMf5lVIyvwuyNLG#GZ&X`0~!QL*VqcBOgA60N7S4YIhS_In7DWXuGwP;TufAl5cqooAJdQxy zHEw7m6(1z__5&KX!4iBni8Y+>E><*&3K_z42#89Qymd`H{UtGizWfDY={=S=**X+8 z?1=rg?&&Nm1H3|k@X+=)MTh4y$qTrJXcAq&!7vs->G|4gd0HzRuV7#>?GLiu|7`Qm zImU2=2m>rH$;H8^t})r{!kDkHIXG`LO_zr(GNa++Gh}Kk`RGOr{X>_EuMrP^chY!R zSc}IXITDg)3Fe@r&k8I4hWpAEb`nG_O)SCQ^O%3Q^o%@<_I#r*zkbVcBCB=u>tAn` zUld{NAst2{{E5Z3mF-*c&5LH_T}H^I)?NP}2Ocw@;(S|r`=Akz3-=oDqn1vDbC*UD z;7nWr9yZgibtOKbpc*W041QAYt_Dqu2LCF!$U(HN|9#F%h#Zf0O}jXx&IF`VoAUAp z)x-8T>=+k?ki!M-dd&vdt~YK&sxUp-4_q{lkzG3R=fWA8-Do+4ImS&%0Gcd?z0|HH z>8tR!i=Htf+k42ehzSgrncQ@vY$Pet>_}8_BpgBu8W%mc$}~hFjm8Gkkb(3G>iAIR zu53dh@0Y}H%lRV_-t0$#@K%VcQ7~x*I&g6mlDx<5lJKI;?B0nvHk8{)@d>~2M7DnK zcAz)L%mzSp7~Vmz@;D+oj3i{9`{4C{`!uGmQd$JlZl*G_f3ty+f!qBa??^^jkP>vN z#OhRh8&%YMaLyw7R$!4p^ff+B=Cp-ff)33$g5wjf_CT4Ri<8P2mU9zcwvQ?pDy!m< zaaVz-V$^M2268lkcFJ~+CNxm77ImN?VqTeLg;8bl*^_rix}}ViRp>D zrV-6biT*S*02CzDsl;bk1sDBp^~JbldJl@ZXvb-|Egxo~CG#z_?FmzqPJn(fWTlC1 z2u4f93;pLi(?|YAqgEoN=5&>}2q@+I~O@S>FA|#9gBRh+U`IE!rkun2Fi#-mtFfB|7R0 zC-~wix}|6MjKWVP$M=sNWKqC^$S`LD25|x&Y{LI~nK8^UK+(MPycj(wxl{=+xM->H zhYx0~9&e}2wqic425iM&5KIXsB!Jy%5R8zw!(+$?1Cj#B>|I9r%*9I#$X!vsY`anD z_Lys*P`NeA4YdNQ9K3Rd5`g4^juB*&C^iZxv+v8R%l+{jM*$=;t|>lRFyuP&Kh(ta z!NgA-l*|NmR~;?HInl0?%ZW2q#8A*qg54m@;2uVQHlfM`-vZ8CrVk7#ARZ}&Am%tp zAsLGy%wk#mMd#n=ILSLbF65pD$q&{MMKR*}axcU+mC@gcjf6&?$4$3^2`LE&QS_+X zKo33tkK0F)4xmBrg$U;R>yv@b08HJ>KNR4Y9_aFm`SJchbP&2-blnQ{bl&}$AP)Ta zSj`i@4gT4g0CbXh(xLKp2fkhS7j=txoQCZsDf_n}0I#zcbd;Jy%9KUM?ifb8=U*qF zlLhoiI#WAduX%bp!)~9a|4fs}6W?FaDH{TZ83G>0wqNzPw-Ue}i8Qtw@qPS3S7FO~ zPgkX!_PgDT0pTE;wwrE)?meQ}XM?RBo^UhJfDKC~yh|5DTG;-pR!U;$=^el}%P$&5 z9n=uFU3Bqe|5Kg0>Xio2wG$^oJh|U~*FX6=tJCc_dN`ez?Ju(aevZ7VtpD&xu*$jN zqVw`RK7{`H>IXxj^6^=J3JJ*5zm67Jmk>=AdFI%?-?qpCPWht>d33O&h|c(|0M5a0 zGQ+m@pSiZlzrApnhI@+DW&6Jp;O@I^kG2JF#d$DpI1WL63&0(?0?(#g}s z^PJAg0q&zvskOUbzud<>tOP0s=PTiSkm!y=y`I~%AC5lW!PqhVd|r>@ICi^7Yzf=v z+0Nb6Dji5WXP6~!xN@g{jP@-RJD^TqD~fwr5F8b#53)e3V;KdxEslM)%Ou+`dW(47 zJ?)K;m5wtx1ikXc#eqI7Kn-A=-~bI-+_%h4;Ej9w!eAk@_UrWI*Y;F?MnD;Dh!K3J zU_0L{811&B)!Tkhavy1L!0Ai_%B=ZzzC+&<>^e_73|>rc+ebRQ?#y$e%6PzO*t4|- zxL|=O9?Isgf4=6W-rlGC#{D9(rB4v?b^y+dgM7Ma{N1OKqb78R@BM^VrXNvAqC}{+ zy|Q-mKA-mjb47rfT6QF)B0h|t{m{Caw~t4Sb-C}EihC@Q%OZgn&2$-No!!9JF;Kz- zBmwyjRO`D=ZGOkk(RHs{_+UR#@tm7H1CUg)7d8m2;hbFr+y9Lg)CiuK<9km= z>be+tF-c;0SMbrI2e6vqdNGZA-Dmos?A!CwU9fon_^d3p$GWLeXp_FM?R^asUYqmj z&wV_m2NImx^K^Q0aZ_$T`#bM8xNjzOoDXCz3)+#%vD=Y&dR-HxTu(FKe^H?BccN1D z>^(kKFou5qV&*}=_DDH>sx1SL7d(~d_e2G?8B=P%6DL*$3d(z=T_Al-^Lrv-KI?T} z7=~^yk7r)Nt*=9EY~Ob~=-G7_ff$8}eUn7IO@Vpt%Sk}pm=EOhb|Md1-tcJ;mDCRw z{{#Bh*QoG|pSK0E+jiO?4?pfs{7J~#gyL~G_8G3g5LvplCHWB^GF@~L8l2QEQ1t{{+oI5uO!Q_N&-dxE8^}2Kt|U;N_stte6?5)qAIU0E zFE9SEJKy4}Lj{PlkdLDYd3rebys`Cm(^K^`RHF5oQuuYJ8aTS-kAf8^;OG4m9J!5g zSiR?iQ@$O6@*{X7{rvp-g9D|{XVT=ezm8bnErH}l#0T6`a0DdqD?jY}AEr$f+pBf; zM{IA<#4Lza-5@u+x1rkt?tDJf7bMYEh9qmwd}q;P z{%YoSIAf;uDa7&me9k4%Y4WlJA>{M%V_P(kSoG!RD2DS7NDH?cTEf@KBsbKGt389~ z`>vc2u8~KY_WQ)KjRTrR(NG+_QFwxeArZK32X7nTK0#a_6EWv3PdfAK1`)U=JXvJz zo(#&Kh4R}m1LFaph|kEe^AKDH*t(Gm`?ji-=(+=-`uqtdTo^37`}(lP18F1ecznQM zCFw(R4tyiUIG84TS2Fcw{qvC)w*>z8PKN~^%;G6Won-m4JGCB#I2fITrA~lEM+xA)sD)m&GL+?*|0+k=^b#htrNL~G{zoCTv+_CQBJhUL41M}xP^r#e+bN|>HJKpE3^ec-p^&M&rDdts5`ZO14 zO=!gR?OY^W3Z=)~c3k7JaeezKgB||%uj;L>x2H4Z+j-4H8q-7wnN2(J9insmpacEm zz%_rau7Lto-)fj9rZwL`=^UW9J!&V!%C#D2sUcVeDgx?zsgWeCTyM$lcsG7z_2+oHXNwI4Yc+y zK&7F&D1F_&y40)xetI^#jDV;tMp@YP^8Fb=ME{<>K&>w_8lAj>GAurx6VKP(LR|a8 z*As`*4sCWs)i739q#J^}on-GjAp18rwdpb;@5WHVY6}WLCufW5#cO}_w&o46B5tqy z63fCjb-dZkx2d|w$A4bu`1Mo3>OXxv#Q#{C93e z48~3J-cR`ktnXhQNWzslDbB4sG3e4j)E_W59T^)`j6h6~B8rHI*45RP%c9>~(?pg* zDV8uc=*YW~WUJ=3kndG?u&l1#Qlb`X)p7s^Wvu2hEb>0#$8O+j{h&V+=&_R|610SI z#Pa^@BkJKxSQnu@IeE7{0J`Y($DnyE&=cyy^xJVyp9_1JW%c0bxd{eK8ZJ9R@#zk* z7;FQckLh}8BS^M}C8^&AKoLp%99ZF@BD z+K8CSzT%r)YQqGFPOsjR4t?V2 z*ijW4&8|R2-23u$Iey*kJ1#M&=X&Mk=zb!y0p^20;~((ZFMNFT7V?o)xut#s2;)I* zs2MrK*tib>Qepdk%*Zr)C4b^~H5_i`-jIGKoo*HUyg@>84;Pl&hXyA7lcxP(MrhTX z#Wi`m-Os(78hO zio_2M$OtyQzc9G#!~EXfZMyqJpt?9cJKge#^g_}}v0pv11x%5>2WIGWUYschkOf%0fiTQ`ba6dB?2dko)CIVt12;Q3ho=UrT;dv4yPceG>Lgr#j$( zt{(k0zSxLK7GrtRwS*rm-L%5SvigYIZR>gb|HjYJ7X2?CL{xzYau0+ScH^FypyM@( zK8;j$P~m=C1adg=Eiw3EeC=yKWp2{_#o&@o86prEwz>@yAPQ7q1Z8aL8ZSN`ZXYQB zm>?PWX522zTZhov$!2oJ4E-lXH~ARHL9F#NG+n{)we7gWL>WEQ-XA1$VgSyW3=;at z;GwvluAkODKYR<+Gm|fh2T$1eY~yGRddTO~s`OFj_P6f%X~jMa()Y9*`wIEe0!B$9 zSCpe~#;|=WCE~o4QN1Sa{9C8pS4XKW2;9v)S*YKk({-rJKWIrt1*w?@qekxbB|o$r z^PiQ)KR5jB0r&4|-9Tt#W%O<=Q0a$=$JOO09_bCmD}{&{C}!F-0C=pOS(LoWG}{Vu z39>{Rs8sRV8hF>`s8jyDJ4E>AnSZ%myZe-RK`ltKY>+`K;_T=if7d=5B`gCpZsRG7 z_kE*yy*JoyNe=h-ylK23>0oddFvy3xa~=Y@QP|}tNtw@WZ%)zJ1Q46LJ(g#A=G^-T z5iDFENT6Up4vmU*GRWN4*teGt+xtTRctUS~p@4umtIf7dM!>P-%Mrh%0?-n`ZtpnJ zprG6StVrag7dk2V^)7ta1${(cZ)gx@Luf=tfF@M*$8k3cyp&6VhlB2&y}$qaHr}`E z4T)MN_Z&}^3B_0c>Xc`X+`1RI1(xp43MCHtT}_V9`t+#+K<47tH)VTg2Xd(_7m4u2DML#sQp#*5$#+&+3F_ zoI4!*@e&;gN>}bOKget9y<+IGGn0p?6D_YJ83Datcas@)Fr)AQl|Kl&d#E>bK}A*5 zyDuc}mv5fqPsTVu6EAl?u4tIXZE$Xhsq7eD9H{Uv;-+4pL4)r4&-ZmKyMrPJR%D}p zIsRTX3fTjGX~89PCEIuYdG6ffnLR9^a%P*J=r;pLhkxvR?|A&kt)}TJN|1-Udq39E;m>It1Y1wMmKhOqJ3ks8^ zjDs{+Ns7DK`A`t3Of~f9^&-v~rd_K@u08LH0{wYXhd` zcMNv8uStEeISW?td|$%hfsYE8u^*>-EIZcMl=R&SD!^bK)2-cp288)lWXf&dmP!EY*9_T7^j!E4Qm5v2!?-<3C z;l1-02&&oTL-jJe;O@`vc-&DibnlSn%xlZo9Yjc}#eWaI1AFPvoUhK$xQe z#Lx}89`w6G2f+vm<+yn0Ut}Nt#L`}rcE5`_wKkn=b7XJF%exYY7Vy98zdnH%P~JB*GB9CgWNvI~XncBha`27* zFY%6j-gKNBPwH{0w3p8L*gXe&QIHUmI%N5*2y$_j|5HtZBH^ppK#lb?GjmmktEJ!b z{v-uEwJ;nO1Op68cYS(tbx>p_{zG|iQ6Vi26B+%$bbqg;gi?5L=*|0`rCD_mJq)^K z-B^UT=CN1IKTGXaNM+`Hqid2ReU;S>4*nLum(#OjAwhI_er#qiGBh?iJU%EYtVjPa zcrRMIkx^MWx$wHWF8}tAx5N9gsJgW6I(xs3&o^ff3NkSm8XDSe_x;QB)!W_t>g>>m zrLvltpY{NPuUKN$)3WcA7gO9sCJUL=Z?*U3@D<9YY9He}d}YPlHGY6+*VE^9hwuB+ z`=4sV-$lFvZgfcjxDij?44oB0K(4Bm*(5}xj>U4E?8yow zWwMK6^@XnBhdB8j$eB{|57g_I4^k`Rq?}F`_O_n&3s%2-b=}~62M-^mFiyY^{iS6@ z7TMgOC^Xu~NK%_+`|If7cz*{63wL*a>)`CfIn1WjCJdOm_|~SN%GBDxh(G@}IcO|!T8^)#^$0I( z@-p!(>E+=Z+0-zM$Tod{8SbXwRAtqvpGGpS_BlXm`j25$F3_G^~j_+{tQ;or!q}K2A6DBSI^7;7b zJS=CmE3~ip8QWNL7|VPg?_`ONXdPu`KwVKch}<}F>%J3q(f3?~H(^!9bPe)rF-6 zCGP_x3w>Xx_W{|TV&N%-_v0!6wrnCFbimMh{>_Pp;LCjlz=PuA*BGNy*+nl(d9omU z=(JDYULps=SmimsjsO4vX!i!R^RH=VomGxSI&&oMlY@5>MlTMmjLdW?rgq@uM#E7# zRjx>vq&2|F(Vb_Dyv9T-Pxa8z(lb+0uu#$WOv--`csqBfrr!#@7B+Eu`z}J*8FZzF zlb4_0)AI~w-?5Q%$@Kk!E9HqyEVXs>!LK>Tim2`nt=GzwK#+Q?Pmd1m0_Ztdu4 zi*sXfvh zaW846riNz1?`<@_gp<%PkpFW~7{m2q9n2~GfndER&}(H=PCu#;7l-I|Xj@Q4**h!_ z75)DF`oq912+wEWsmJ^iG71Qp|{T~}88$5^e4@NZANA<+c0m=?{f>XQ8R3Z}^li-6Fy@$m%pJ>`IMN7UWL&T?&ll z*IBD?HxS5B7;yo(y!!C+J2nw;w~qBQstG%O2L8gjc|=#`Ok>d~-uuP{6fAvmVfQ9o z;hMQ^F_I#Mh@B2uO*4w88@e>@-!U4-nm4!C8hlcj{7G`gf3R0T70ZAF5 zkT9>$!!Z$G7Q}-QQe_>J@1Cl}=Je#Y2Vu$#zF79sU9 z2E>IW#bgAgMrOmJU>x2a`PjJS|DzYd^11J-({JTn5nN0>8rlvIrdYmOYyWuWBF9DO zZ8OHn(b`(zU?i(5uI=>q@v^h>^fNE){s&-XI_eCI$t}diAz~Zqj=CJ3S}Wv~9q?wc zV34>$ds)G&pc|EoxT#n5Cz?!tZ5TXtDq}4AJBr8q`e(QdXVEpLhERX2$Phzy&SVEQ z9(B*SCvRH)b(V(HZzirbSGYrLfV|lBUl>^Q?XEuJI>7sA1u&*QeB!Guyll*@Di7g$AsDFNZO&Z5tSXV?e7@dud4+@Ws z4Et_d*`_~6O0GbEN&CkJCnRml@VG>Pl(x8fcz0S=O+_uBuqmXqwYYEy!={BN&`7nH zSh=mmgFw3+EUI`QK|8JqllWV?f{YD|WX%C5vRa8mO!qMwpXcQzNF)0D^ziwY! z3B*4pDtwfmM>Abj+3}$-oo&rs-h^jV_N{+I#G#;L;S!WkG<6S6tLUCTzD2+!q+s9_ zl2LnNVdwI~<0Y^&b3J8Ic1o<@`{VUFG2SLJ%tT0^Hpbd&in7y_lT*?%a|=t#Dk`fg zE6R!sa&vO?N^4sucQ5ae5Y8tHZ4tXu%=S2+m#+N7XXF!;Q&!VdS3TU@UYi+e%mMiT z*2m7;=FSsTY9UQ4kDv%hN>+YJMNLg@O;veu9?jdohc_md1 zEgju`1O5HI-JLDt+2``6{^#zaSDc0z1qOhQh}%r!2fu$r0cdq{Rw$N0+8TRPV%|(sz(%md=1!BYpfm)>b9$qBI${%%Hc z?1X=p>r#E5+d6u_i%iU|Y#W~6KKc0d;^XN)h*@L(T`lz>R%Rqb_&(E@1~zcDIaHe& z>29rWXyu#UdWOlV^D3dVbMD~#BMK%C9zLiC*u>N=+e(m`_A}%>2ue82%WPa}p93}}PpM;XSmZq`{4=wsxN0j8hh~#|CrxiaK zO(Tl?Hoiff0}G#oih=cW-;gLsQc7xWPF8wKd}QErQ+W>j>)DE=pcl^0UO|Zk?Q^Gp zQSm_dA|b>HK@zvu;f3YYyrS7`LtRnib2vh z!}*MFDwe;a;*yY2k`m!!prIgx>;{vNQBV?iXAWv245a%j5U~53O45SOn2+-K2|tv` zAO^m4;LB(7EuH<2LCvoP0!GvH1qvyvu!4rZk(rs9k)Dba4;?T%o_Pm{MMg%11;2X>5?4V!Zf+hvem-ty3e4N3=JXIJTZizx(JvU(?7~tCs+!t* zPmIhgZLBSgG-dc02oX=G8_RQ(!mLH{7K0Be^K&<3PNd@pZ;9BY)%1-_40M#lIH(EG z;P3BI@M*ZXxfw_>;jYj3R%ZrVD|6z59b^ed+^1f!^GNpxzv34u`pn>vyNc z86RlIk2?B>u8lGJQ8j7!j+jTu+{ycGK!D$CH!Cf17DCkf2P9l_Iw~U6A15o5{cW|S z*@+Qv>~;9@CY}$qM&u~ld&ZXz&()Q*vZwqNd!5z3{2hgmj$2a0#KFz$O+ZjcSVUA5 z)UN$JpP8r%GvXn9I^6w=K+Gnos;94~p(G+roE+}1OmzaEY^f@& zU=mTWbPL)E#KeRI1O!ARJHC>c|T-;T`Aly60MJmu!BA zhd)c@ZyVSAp_V>+iAKW6D<-f0|BNi%#n0xl{B>|U`DX7|m!@|SELxcRioK02u zY49*Hv2l>ER(i`bqu*F-Nb$2Xfa)Lp&r+d2YHq_OE~5Y=dX**|ekQ3`;{_4Bq>|=; zb)vPkwS|d+zOJ6Wp^3Srjh%yoy{-8ZWf5j#1!&A-{Ny~t` zSYA$Aln>O}aJP?W1jNMH$iJ^X1AE!qT3cCOT9_FtN{b16VQr``!%Ktl`wJqyW@usW z>ZhMSzidwQ_x1M=4lf-2!l2+12kEmAHybM}J2MUbzm1lxh~S{ejM}NM81!N~PoFuu zxO@A)d;k8e$Frw~+Da1Kj8vpJk6SGnK^BrUC>M)^ooziMvzzCC(eSa6P6vxKGjcN0 zQb)1fTmMi9s+zmKe*MDM^ofp!qND&P3j+fq6ZG+MadEP-FoJduAr}1A$;B@ebac4O z?WO7Qp}y|Uj;@~mfq~BY#P_yZGW_g}R75D>ca9&~%wo!V=Qa`L}QjUF;r$nKUr8gLuS@b7)4-~Gqil>{t`S>4Miyt zE(UT!JRCeCQYt!TRyI~f8d5xTq{koUo3l&1HxF=Mw?;bZD~t28a|$Y(dWJ`b+e;(u z8bGkPUXK+qraaniS#hnvkl4X z+x&`1A@MvmFEj3irZBJitE`c4xEu;5me!Wm)>coH#rRlh2r&@ufB!{51(g*e3mXe) z*CG8p+nnidZS7nCczrn2T$~Xf8T|HLcv4C0=U7zf#%1KJfE~{^9?iik*?o58l_@gIU24MhVX`Jy# zr|K_<$=mR#$b^#NuNV~2RY3;-3^Nm_M%?bHuIM;IqvMxS)>Ppq7)#qbsjQ5aYbG#=Yn(s( z@$cd8^JaJUTP1qb&vPZuv8ZZAoXu!DDJC7VYAQOm5lHZVFE8K;>bvDGBGC#+h;vip zB3`Z!R;P!1n5ikLJ$Y(v=lVWACC-%(VIW@RF`auiHMCxSRihSN_H}YWX;E%L!_0R~ zDh^=@DGAUWBE>;{yuJL5fOvm0(~=(_;`7|u+1)QTr@FPZv8KEr9TMi}Vy0;mRX*5N z9Hz^Oxl{655Poz8o<>MmOu<--x?*L#K2Bk_7%>xB3(~rI^@sp>dpzBc=q!Rhl4wSn zi-MN?iolTk=ggq;H8@9|_^vWE=u3;9 z)^AdF4&s9n7v?F}v=dHI4$Q7R9h}%Ne69&)4UIJ=h1LC=x1eWBgpZAm3_3B}i*u{{ zCu_YWkT;eZ(n6d}bWDPZI=YGiEYuVfv@Bd4EJ9`pHO-|FdQ5ObVT_qU5!aw?pIF&5 zJ~27BEXjbfoXYz=&HGFwq3HCP_|ly+PzF#?C0MTos`e_PmG8^2S(#NDxF{|@o- z%SuN&pX0&%Jw}tT%+m7WoQ$0Ew$Y{Sqw~)f9}iZ>`#M@$Iy&pKLoK9Ph|&KZjn!l& z#swSUxj&1;D^kcB-uppsmt0XA`GoGK)%~tLgwQd6<_|HqlF2hy7aRRo+H8ouu8YSK z15|ct?TbgB&)51&VnKm48-aoR1YR%mjMXN#u(CWS_PGr1a!E#c>YXTY#MnO)79JjE zaxD0ZmF}Ww8HE0f`B|;)!>#<>enQu;aqtAYGq!yOfI(x9!AMyPQn)fuF zYf@^6F6HMsyTh|a-q5Bq0ueKRNOoyuc`hW%RtSCc?L{0y$}iEkxgFE1E29;0?y7WO ztL?8FBk(P=mvCf#v+BFLn~LJS)aW0&sW}M427lpG)6qNZbV*G5>7(3Z~JRdrlZ38?M2oFjv_Ly>618X)> zxlBURt2&3r23rfm4ViAL%|G4+Ds^}-VNioK|2yXAsjH-72F=_cF#kr~RG0~BsKGupXc!)QPMK1IsH%uGC z@taio?;^vzO{JMI4|37F+o_cmSdpgEb+;4zFfB5NFK`8{qY7Jxr)Nf63tUApW>fSq z(jt&@QPsl>>gq~T0`%C>kLq93*SXpKm3yDvx(-jP=o%3pAMIyEQ=7VJkTr7r^WVem z=Y!?p#=K}ZC3?7lH&gC50|+z%GD=FaBAhh%NLRbl-3{f1Ia%3x#g(-!BWHM`7Cyo6 zo=GCSgM@!))^rI9j|dG42zd9-+eVFt=z1tO%!s1%4ta^+BXbym&pE!RBsU&29+sop0nI6Zp-IxmDC5EXjA~SN*qJ2z- zaSq!O^id%U@^jRNp_z3<>(^M+%uE!>WAZWm{O=39XVIBuy2VZ zdi;@$Q%qJ~MvRw<6yyGEX|TDnFgraRbaooLCeE-0ErTIRv2Qi;^My4Q2?bRR%q;C( z++D4;MW_%~$~~#OSf_Yf2#gczraoiwSw-d7)D$NA>Cvyr;+tgV$9pLg)>YH?6KjVS z4WA;B3tNO`RW{U@ro5A(`ZJcUHGD7Df-dD679HXLOh=6Rt|Q)ob<^gMEcY{w>Wk>~ z{Nl>$!f2f%U$G%Foxs%6hW766_WI(q2zMj*l4B+|X=7l!t*B{nzn) zUqeZDY61k3oKx1+zxszl_E|`D)H`#ILrs*|OBnQm3c6;NX4(>rm>)XhR4%B$*CH^h zy~^xdzd|PBPjpGrzoT>{9;m|LSO<7+AkZUEoE7WG2y{Mp;5{CHC+og z1ib3zR)!KpQ%XqkjW;A*(&}2O608Jwv&Ej&g-EVf{5GMf=V#Z+R zkowIB97-0@&*NdEBgIDewmsfjnjQ2zzZ1&0jJ-bvTMX$z`o0E9du^By?>2;&RH$vH~=yTNN*vW-JD2=}L)hvuEI` zB@ADLrkJ=w~8%tpZ( zwf%G3XIF3-gj9^|Jp6o|48$lOhjYD!;hW#ca0}_a%NsaBrr=dDbo7l(OwY4P}5L>&hl=5Wk!fTGyFgpTf;)mhO#R_bCLv}8mC1o(vH zj66aD9F&N|+PKwRVU3%=P%$x4{+v$N#p$C34aXyhI!EW$4=n6`y8eTJibF(BMbE@Y ziHCB%+LGibfHs%wXRc%LJf^sF{u3fTH8Z!6gsiMMJNC48bf|u4Ui<*Cbwv0diQFl{+Wjgm^2@t~YIfy8AVQP8pQ;T{!_gq)lh7x`wRGtHU+q7sj# z9bVkG_UR828U`jh3jB}rwbACH#2^PvAv!#SuRF_glOqFtpcL&WaM~61{3PI=-9EQ} z{_%KytRc;Vdx_w*8BftWp}2W)Zu|V(9Vjr+v9NFmhzZaiKCkx`g&DFT&K3q5%1X%T zxrQd?*Y!;=EY1wKS0>y2j#r+f2+OJ)SUkRg10%-2H|HCp4VfX<@=T~(HSdKUngi8U z{p+uoEfTse2n0>uC6{$fZJmAl`TO?s?o>=A_-AC%&X2Kg%O}c0_44!S&caZ0NphgM1U2GXWso%LV7!yLU)dpCCR@u zMyY?T9P~Y4cgvlIqmi`opLN{Q7Zq zdv|lX*jJYq=cU1nG?!^byO*X(c-~&vHJwAiQz%l3s2J69ip{0v5nbBYJv=eDy1p_u z*4tQ|68=I@h!TFO{Jj`rPlPJ3d|>l;Dvgkmi7yy*B3gD}ET5E?o|+i#YbuD@Cu^%V zN+9nZlUv(0I={NUvAQtc*Ib?z8(^cvj(;;*9HdGx?se$=Xji&}&aCE_(|d?QEu>-R z6B-#E5$L4Gco|=Hng_>g5t3HcGBCZeeQEtgii=tC>$R7Ocnb9-lZUw?OVRbg7Bx4A46?%hn@3*Ikj zl3yD7(e!e5@I~z*b@Nbt2AGPOT3VXvDG5^kX*Kp(h~6QVatKQ)0HgYW;gR9K_PUbH z*Z_NVUXuI8@?bf{?61;t1*-@&5(XYoS#@KF|M2JqK)1rm%0xq$;--@AL81d)*eWEo zq_KB=esyc_;PCKpe`j-fetBb|zrHXr&_<3HekRKdJw!~R`ZGSOsG5a)U`$qZ|N0dg z8K<1_i;(ziFygAJs;n$8%1(@Y^Hh^lc7Aqs@;rYJSE+}?@M2_yyy zJ(u9Ptg7y*9q1s~H`Z4dXD5bwhsS#> z)1$l$#VLODL!@@NQ#0>b6s`QCQ}V0ZM_0~%qmeKPDI2>4L?&cpK*c5L$q6wbo=;VI z$x%P{XZZ-9y2Y7e$r>3-qSzuKz8yy4(DI1Mt?3@02O0Z7U8)ngFCBT*7(9)Hk!Khr z6*~GY$jeDjhl2KIKIktT8^)DhC77jK#{KZs( z#p)DG&N;cPZE#{sN5D7=4PhG2D{tps~XztGJ)-I;C<}~=WThZxj~`)A~LO{ zp&JapzJWd*HM^*?q5aFCNJt6<3@{=?-oAKdEYD4WaynELB>gY0H2+C<=LASkvt0?C zcfUI|Uf^@e8`wVgbhp*uct}Q$An~Z&K>ULet7obY=32>CRTlad)KYwFP*&Ydq`GkU0cuK==k{9 z$WVV*TLYLACTA2C#QPZWqOX>|q%Cv{N0P7)O)GC7S=c_mhC>DISWXdnEi=cL0ijVb zfnW;Y@>EM+jFS|8zdO@Q0v=+El`!@V1&@RT5BbMlUy2^m%d!Q2&(!Mn*0MOwb_?fS zj_27!pE2o#)XZJq1V_Zg#eyW>*VR;2gqh%exjI4OYRC=9ISl>Il^Wo+nGA02zJ-dLUvW|(Zi|3nwKznObT_s@_3S9Wz)_8M< zz2_S|ji3M*lvGewk`d;hBSQH!RuTU~nFSvancfJ}dq=D8m)XAY2ZxSdUiYb^=bLvy zK>&f1xrPKQ5yD|tiapzg;&k#zalfzXagEg zuvir=zz{vFsG_c^rL`4kNvg{Vvr^*1-Z*GVDH|H8OVC|q;-AaSlWV?BEP=`dFMh$J zKUq-_)*wFa>SbZng6U-|pJa(8^H3p%Q- zRD_tw2neXS6qF$y12SHKeIMcm*k?tyk4k@P{l023AOEk zrxnq7`uuf3XhcMKM0i+8;M?a`dQ!B%8(1t-vCYy)uJG98P27WHQ?d)oDywU1sw+wh zbJ7x`LtZ-=D6nF|L0<~mNj6T{7PnbYN=Y-g{^uV++Xt1Jf$T^~LQY9dOGj5nlY@Z_ z`|)tNI>n7;jK(fxmr&HgKRP}!DJ>&CDK08J_^pSFy``z4fq{vYi%)2LPIdR(;SXe7 z3T9q$1$A9RVS`dW(OJaoAK4u^|_fX|6Sw4=+BnKc zRLh9eqK4k7_0w;658zYb5dp0n3kQ#YFwoP83h`kh-R^^m-B}FI|K!;kg^F8PVs;Ub zAk@^?RTSlBWu_%VVxyy?V;~7BS%p=t12bD6e?hyGEIh)Ja*9ey3bImS{Oq)Z$RDQ~ z(q2m==kyQ0Y`(;!<(5=Y*VNHbla~?aW*|ko7|nT7Cn?vAA^SF`?+AgIT}sE=0}Ou? zQ-Qt?s0WfDQK5b>Z1m-YSV+;ocGxzw?IsViOC#JqI3^cXH4lKy^y}5#KSUICY&>YH zNk`Af$UsL!L3FazSDxT5gWa%=-GwLP5|djAG;f{Vy+b2|-7O6@RTX8WB>+%qMNMOS z-`M=-$@d578=_%k{ZASs$j`+>O9nE<^{%`yGajT`T2Jnrl}8*hMou0ex@4gt#fCqd zs0fgmO}3djOop6bdAG7_WQ?2YE@#9P6m zbkvg5uOT|5lvOwNO|KuEeZ2T~`}-dPGRPBgaB;zu9<;x%>vN->r3qKOM1$}7t-`YF z2gXK5#;2xdmsjVP_qBTurze^v>@My|Gqa~ zpXMz`d|ocEnx#>)@*NHh4;Kp)?eX)@R7I2tVQBY}LD?CRxLs61=gKz}B1Qo@ZF8rW ze!*c8U=j*+9X>A{fHXvanGF4Ay}u?SP`dBcAekuFzvd-2XGmUoZQJnN>c-~Q?!hVe z5H~-5-rfDY`S$5(W2Wzo0U!2U;Ic(Lx~gwddEe5`&IU9PZtd-D%ui2GO^l6>3=NNr zO-#=(t?wRx`hNEh0cd)0@bK_(u`w|)u`p5YKd+B87sWXXqYQ=9g=NmkC$vm%93HRF zOmr56+i?vc{@T(=AOA}wWgU`HJG6BJ9W;t7>sbKx!W%z-f4{fh&!1TusDTDLDaN0J z;qrJdEiTNOw?-Hai7}?C#vb8GImNY|Lm)tmf@{nzEG@6BEG^7U4tFXojJ2Nvow*Z8QyGQ32S3m#4At0fkqM|^B zaNn-3zn!fQ*XKg~jo9J)g0T1(v1*BQgVOSIk|W<5&>sa8_#vo5x<3FNnbrHmVxTm> zMaH9K;RpWP_^F*E7})@6lsTA=i*YlOLOZDq>Aot&YZ;akwlS2E-L08H&s|>vHDqyZ zTSr?{Lw#LcLsL^@Lw!vJP%Q#?Y$Op&S$phWb3h>NnNl}#^c&>eci%6;xi~-A-Pu|P zA7OE6d3kAhbz^()==1~l_U?ZF`Sa)3?dAF2Iut`+eO}yKQxTG@-dMqg32RA~v~^5w zev)4k(SNmviOtiRHxVg$lx*KYa%y|$4{yQSr{e(rTV2P%1WegY4E4a=NRXYD7~}qA zuA?C8nJ7vPg+07U-Vc?WzMkSRdt-CgpxD&h;u5ILCJD%?5`jYr5AuFyq{K`5dsvJ# zVjO{zPs1&?bYSNvDmFU8ubUsY*WbT>INsme-QHXS9{`-?<<<2~FpfMt24Btj+414t z=JND#cS~(a7UaE^6#4B`LxK@@1z$&edp{#$p^KStIiieDddD6-K9jhveL!qxY0Jp+ z@ija;J_Q3ipNN#alB&A8nu?;VxF8qMBcuI2Tj(lF@K$I1RV~aXT(cQlmeCP(={Q)5G2D2)wxCQE(S z328V(h5Ln0D{2{2KCt;0m!412)D6frfdx;j9({X22BIvWYUBm7VR3OW5kX!KMrsml zq`TAkp31Z!BW|?iBnI?;uZ}Zh2J?vISXT`p4qmw@wr;NWrrPpgQp3hTMS_QRe>T^g zVvX-UbZ&~v4it{zi8*C$)BE55JpB3o@zW*XfBE?w4COaLIy*fD^h+bdLqo&E;2&^+ zSL*3(YpksV{mW>7TXlZ&` zX%=!4YECIdd2vo^eAI`_qqWKI+MFl{5ybdG4@BdPp|8qMy~7i-%bR*8*H1t{{%Cja z^z!QZ`FbJOFX`0jyVfSmB+#c2RW)~o>NWGqfv#<4?cl@JUm&dkr8yY|bOQm1De zR1DnSS%nFCtJq-dv-rakzv$$mkslPC>@;{N@CdkMiF6O(+6M|kiz3>Z*O0Vqg?wkCGfJ?^rQH=}dxGsqH?cXv)L1%woTbG1^ zKRAR~k0(>(b8EA$*}>Wrs}Pbf_?QhsN&Cpc?)4iC3Qj3Khr|pp3ho*Lv1xa2XMJsb z`}or(sO9&!*A}No`#W13YAQ>M^0Pr6kr)pu1t7Z#c>CJJ$;RA3OGTQO68W&VG!tYl zQBg6F?CODqjm^`4_;fsy8pd`nfe0|Sq`JPPYjAvKdF$Zh)At|09-x~YNQemVkH4=j zPB!O9I;*n5B8dto-bFV=e)#M#1zF72$KO*;!>8>7658+0`lR63jw+O6{ELcBkE}XA z2_@}QySJ#sbUEa(*R8im7J3KYNva!9r4YcMbA1{EuV0Ud{dbAIy4lBU08zd*u z5ut&8KAtZ2Ru)D&Kprc^&&@_pNrLumwmv;HJUSsIBPYM2V`_c><1bWl4k;}QXYb(X z)clIN=C;n>k%^gwwe9`m^Uq%{uWxRyZ?3_D&GGi~%n(rUrbhZ$DzW0;^h0EjeO4jk z``qSlUb@;TtGib%eL0ybbY%YBqC-v5ORf4Ms<3@#{|W(%l%7jWS?{TfZzw1(>RP%6 zMyH@U`K=vLK%bs}0+DNTd3JoDv#GYcFgqlg2KRh-$r@VD!_2l9Xk$^!!#mwz(NK|rec|Ay^disY!&|HGb@DGoUj!%vc z_krScVS1zoEPtfO2D?6yV8%M?N;N}JEYm%sm(lVH4e_!wR+4v1tgJ1J5}NqU>wH3| zAD-VndH4s7fRdS4Oi9<&?zvxRRD5bqQAI}|`1}9K{CD>bj!sUFkM_4$<|c-Ez~)gw zMq+G4&}*n9Srsb$rK2Rl!$5kt{c^lM-QW11B*l$E zFJugKvr(Y|9tJYphA-bcD{4fnRyR}^L?$AFv`h}spzxELr1F%f=#-dh^&sxSFZ$ZBn% zr7S5TBqSzp;TxCVJh}G`0h@wFKu*u$Z8#(~x2&P9y9b=U;jsyj4nmWV>8bJ2VUQ6v zR+r=g<+P83z9b6?{8Cl8E{bNb^$Mk?&C7S8&|)XRLyenNL{pS>@a#-rmvC)jK#cItEfN5J38&6>fEDVRlMv*jpz<1wlIWFB9d#d}ps-h21bJ zIfg<~GqSSN6C*sdxC!yG5SNqKyeYklCq5zIft?&BT??m|{vlDIWXQ@dE~~0*YU}D7 z9094>;_}-1e`j@hadv8SpsS@8m=5TMys*-PuFT*dUhPh`mnH_-sd5qAZ1rY%>u}@l zl{WOv5m{HB4f}Qr322dpC zXC%e`H&Pb^lB$nG>Fz>@f>pV{*$us;k}~s)KqDqI-dCRq{p)0*Vw`I_&AZ06-#9d! zVnDI#`Wo~K5}*ZJX=QCgOM5rC{n#Y9J;-fVS3y#+G(Q6zeouR2RZ$jDYrh5=k}wdv z!=2Bz6vVhIQ~jCCeX>mD|69!IZA4;9q9bK0$;GqA8yYpAw1&A0P!e-XX+C`(5CH-2 zs;r`_wywUR84Q}bIy=DKYe99M16F^+{5|dTFFOF8J~n2&kFbe zAj4dko1PpS>gxbr2fzp294lRU0kCX!vCxtcpvwZ^<8r|>ZJa*1^8<~D2Hn%ert=C+om#`>DdlEPdNCL)8qflf)9 zgB1PeY70c4Y6@qi5P{p|eL`+UOBd*%v^STegt=+3Ugt1oTt#lO`BiQH!($XtF|c{= z4|b)1ARZV_eN$^kcmL4HC@_6!PPVkPv^YNx+yV%;K;v9dl${ER418&=Bg;!q0DnAI zncyagF=&z;t5I==&mbtLW$x?(YI=QTKFZr>ddxRxY*w-5qelpYOhQTqcHsUH@VbDE zzp|>Trmn88y0W|!Ts|csCe-(ZodHw_i}rP@F3FN<VP+7ARp7i|TuZCdNlW_o}%x zE#xU5QUj+*p~nQ<^WudYELs62V_R_jSg_+!P*zz3wVd98;jwXWebBR;2WM^;Xv{|j zdpm)NmVxIL7ykaG?Grg(THJ@dfs$xD{)e1z0ZwD+JUSkrx-Y4$t*t39%7naoDvVl> z9TM?f*eknd9}b_9UryJ`Js=DiX+~~AQAuf8d3jk$VSa8_T4HQuun#D3m4K2E_4{&b ziX-QtaiQ}ro&MYS{QB-uU<|oqXO6e zU&9|58XcbmUTqF~c~D?YPmB!@^mYO7P*#+io)8t}VXY_2ON(>A+glK#N!Uq@W;BQ) zXc3fH*f=l^{P@bkWIvd(_?vJeR$|vxlRwMs+Ww0}!y~O_;rcct66)Ww!SY02em-bh zr9yiP0p2ba+H!&{pZ?GU+KarwGOjcFL*xc$Gs4mtQ$J@$MLoJ2S+9dP@ zM#xQKYi6%7Y4{cNZ9LvZKtN&$cBbl@fa&)E>lvGz`tJiQf(jAzO+lL3+ttLUs{r<9f%P=ba5wKCWRNlQ;p11pDdF%iMOFYL|0YXWoaU%P$zAv(k@cR8^i=(K$k z3+lQjmUlo*-ddj@@2)FI3bo*e&pQ~*LXmx)*1Gb$iXW(DlREKr?9LFIG+EM zhr{6h(=)*Qf$f7YU}}80AH1GA&^!g6=ZzbX(@B6aH0qa`@<4&9c8Up7C6DNws`k;f zv!6(q1Y{J{r!2)Vb93(y-n(zUcHCUK5 z2Fs^x6j=XGr|Od3Mc}h~t}6bp=)FxWYVMm@+}J-lIoe&D?5QtG33HXi?BEU89wXHX zDd+{}!zQk3?C28`83#50((ey-|&fsq9_Ly=IwH0f+bZ>WfOOB<@^m6 z4X+$Xth{`IfElXB1v$3&b4N=9b?9OpKGL`K-jYZonr%-$(mE93r$NcZErT;_n>%~^ z2YWlK(*sQ%5u7}R{SIu;J@ zo}MpVY)v#|xT!F{jOJLtlbRA(rga}860?e{7+5)Z`uGLD17hx%&mC<{bycJU*l38* zz@|=9W`H_=D`luu2fCFX=jhVr!Rg8I!Oq6~IN+b?ZwwY4uj1k##h_04D+)2Q zkOCm`3beZ7lhd>Fi$LIQ1fd;#gaJ?zj*f5c9-e|fu)nhg24KxqMcFA}og^gSrQH)5 zR=n$xR43MDzoMSla~7-E>gmr2xX_(E4o(ghMzE*|f3e&YZ;T*KaHEsZvVMn2!73!L z3FN3RUi-ZV5WL-;tW9*4!BQqQ5&FLmbFFz%j-b0hJFixIL#yH*nF_ih{gcZ(`$tE+ z>kH8FTUwZd9LZ*o4SoZ*f=_DQ)Hyt8M1q{n{F!F}cvWE1kd<3dTv7(i2%7s0jm<3o zctAh_2MPZE=F`FIWM6Yd4j7ypi&OvY^`&qoPFTSL2alMXksG?G%SDMXAB7aml)H<= zt!nEJ$*mpR2lr+dQP4HE1d9*QZD$|kVJ|0slwd}1?-!Hy8H4YKAs$ z-u_TgeGF(gCWC6DprWyJcy{gZ0(7MA@BjY(@$Dnna3AZc1CwX4cCrn1uhFXgfd};CiOoirBH2;T?UBTu(B(u1#v84l?_SWWlAUBNiHsM1b zk$-FRNz^xg@E9JGgdQ|2L}gU84K1u~?VmY62g3UIp;2+5HfrjfSlT`b3xf9f!S@U@ zd~QZEluzRjI+BiO9iYQ4tqi)$Jk(g%)5R|-A`0#tD-WY<0A?G|A6Ei1cN` z%;+wSSLEWRZ(_kZX-7XO+Ll%~wl>$-mcVjVM*|QmrGOPuPtd^^W~C-XhyQ!~<#cCx zYM`wKx^8MKNBegwQ)mCs6600ZFG?{(&+vrIqN>J@{*lSq#d(nT_B2&w#k?}&c&w(f zj`+@H8(Y>jcXR`X0)CEw{Qv!I0_Yl3kPv{T|It{U3mI#%R@3mx>5splF922oKu7b- z+5Y;%KB(&-8H(f1)9#6*VmwQ{{H3D*+OS= ztVj*lde96epJjN?%+AGMuy2M>41NoOm z)4qC*M#?2`>=qcEoCB>C!T7JettLI#ge~S8-l6T0N!=4t)Si%A1qPEF`{$Q8H@822 zTwk2+Z_W<3R^&k5gK~uo>7YH;PlIy9aad%S*fOp61euIW_KAZBD4#)u1$6pbNm_<}gT|gTwF(o}S6B6oSF7(BE zHk$lh<1q%Sl3frfhm1ZLbH*lT6@r?hrmg|BrVDaX4D5eG;uGSdLO>#=%!avLh!q=m%j=pwaEjEuc7+0dIz!^WpUwcT z8#vjpkl=TIz>An@DTuODVE*3e%YDti$KBsRY8+cL1D5!R>A3|ZBXbLNp;P}RaCBrYA4 zx?ukgEQG$ce-*kbA5IB|7qpwW2`!= zIDSyr)>P4^rdUy+0c(Rmo29_}*!>4nF^z2@iZRuiU_b(KTmP_atlFf?wpcYWAPO|G z*wi*{t(X$oef!>GY5YJ#VoMMMHf>5s8^Ok)R%_5RbLPyPnK?6e?qlyCkbQ6NIluFL z?wNUa&-Mr5srlx{RhRzl+4}|-pT6Ulm#o;hZSTROubv-x&-)iHzJB#v;l+n;<5&fZ;pYU#)i_8Zdv< zjvqa8Xzb}npssGYd2sfBpBtUE<4>EOIro88n?`p%b>zjf=i!%sa~50!FCJ+_dWGxb zaIIbillesp=Uw^knQxwczWex&uitXj+3&wRde?6T7O%bgdwZXm{N2$PUpx1|>C>lQ z1lut)X1;ye8?V3m((ym48n}J*&f7k=boSeh{q)P1Kel_>$tAb{aP07jGjPQ0in;UP znhzI@1^#~W*ZcNtxa{7Ye^|No>6ZrPuDE5>y$`|*Xnua+SBGDKU93N=&h9w8uK|9_ z{Mc^DPM;W@J*{{5nYFVX`2CCz-#Bvrt|z)sKVb1+PQU(dy)OjQ)px!NhN~A3%z)p+ zO#9avox=A&`S6Yh?)k!v%jR5kV&CY>!=s~DZ29q_lmDD~+1y3&W7bc7`ZKqx>bL>6 zdOxXt9S3_7^WO&pqjRr3|17*`VaK*_d~r={$&#hls&^R-E?d3+o^3nfQ0U>~XW#OU z%RhL{;Lz%|x2oaDR_O9~{%H3@@bLD?qmRPebr;NCzx(ZP-nDVv4a*n4cgAa-?+iV6 z=*jCw_n*3Ceq+sMI6pHSTtm4_6~R^$&a!p&RD@lV<(GdWkecYURB;uq5S;M02$!!D z7brQD7#2%8{7Hu&2s9()1(@BEeuQ@SwA&pkLa_h@zuN_^Gyb)358E4+>H48#2(;T1 z#t4N1X!zX;&axhISZ#R&a-`So5WzackWRaa5=a8T&#eynpDS)Hys-|ez-6q~fGZjl zJh305C_zh0z<5U_*O@WPeHv|%w8e!YGOKPcBKq=klTm!Uxhwxfap#SctV6C{2)Qw2w)-=6CZNa zBq;qF427kJ5Q`ZOlB!_w?rE0oachR z1?fPQjUp9=&{(~cl}BQlZ)@QX7Do(#Hl{RHW2@Eg$E>b&SmgYik=0oZ{L)fS1O?xq z4~!Mx%5OBOT9s7OuVhWfZ@obHVdhgRY@_Pq7)|NX^aSlji`qqtFbR)Vlmu4j`MK<& z%rBu=k!0=*y-w9pjoe(;c?xt}BWo6vPV2WB&Qi<_;iI0mgK{8Q0TEHb$i6>Bj+XH1 z5K~R~8aMST#pszu6NdF*c{MWWK~-VPNQ!L&D!;;U=xbUi=UM$}s`tqWP@;VX?4470 zrcKzUW81cE+cuxr$rIb@*tTuk?AUhFv2FJ|{msno{DY~TTC48bs*PILy6ZZRgJ|=< z))1;7mm$P(Ic*>#w~21fp7Xex`jN89EUWuFRlMMb$s#ECF|qKB2Nn6???MS23wFn> z#I{Z8lt0DE@-EvuNoDoHIA!lAQOj@XK?m|PXYcY-(MK4P8#$Um(5I}{rG(bl7YnXX zA#)P^Iy5>@nI0Wv8VzF1z4+@U@e(C?LB7ac2rCW5cy0gBe2~jqFiG}jJ2|#c*9d3% zJ=LZ29uD)Ni_q%q8(1$)f*3ZjJAC*a4gtYU!UTltW}l)h#_u9ao~l@W<2Id#^_wQb zmUGyoPw8Ofnl{>14CJPx+@)CUD%DDft5%j3j?!9N9T`8TGU|~PDYnNo&y7r&ILcw{ zvw4TpQfOz*b5wzXXBuO-oX_gAO$qQRL+V&#YFnPu!+XX;6DJ7(O}w_M+jFm5?>R3f z_{5zo$rAViPjE^*o=g9o69O{$`hrS7!RPkmq{9?krO!sf{WJV8oGkS~r@(F74>w#^ z;>>^wQ!kV3!|-Uk{o)CM2QQA;Ba+X+#7BN6{c|C6U8ET!M_GVH=uF#U3zTunp`kfg zN-a&(dvu|dxmnJ{Pur(|8HpbZ)~`!?i7r`<;4LxuMh+|qHa6FzO_Kd*6@5&!2&z^$ zodK8u?)FFU;vHUiX2OmtQ?Kh0crOpO@htwC*RzW-i+LcfSl zf5#PUJXJ}Y?e571;*KuDrV*EUPzLrohh|Z45fAAsVU_f$_E}U4zdRg?X~+wG@i<-% z<>-6Mb;yo0M0rwf#CxVrepnk5N%d6xxN@Y zij}>aSw0o`FL`rfdj+<=TCm@E%-Q7EGUccU;-CKF+nV<*)IDlbJD<*xgBDTx7Sw6H zrg4>>Wmt4PN_GbynCwT+uP)KOyg~Rs^7?J7a|b!PSrjFWMwhIba?97&e@@XC8G)2O z_M;9R2j1YG=P!mSm%XF4~ZUGr4m){`lQm$F3)P8t~}A47S*C z8uszhlG)R)_&4bMjw*=;vUQ3nw0EgDC(BXcT&ru5|FT*$gAykHVS#oXj%Tnlm)`O& zE8U^D&?J$CZ?!*2GA^pB+ZwLwc{MFklLnQQU|aoHE6h={)cfF4$~hr?jFdnn)*lF! zDOm=V7oB+xBMsLAi2AYlH0v9_`=g3Khv?lvDTqfjvTiNTNaGHol=ePYZ->~UME`iQ zfP=t7P7=JxQ`^$PG31T7qc1+QVAoiI3P0fCpFPH+=X~a4(BaUshzKd20 zNO97`>t%O9>Mw(&mRSB+R~}=i!2SoXMz7bpA8)iOHZ?(#cb%UZe4Et?AJ|t1ljyEg-21pQuDab!fSk;Us@?n4oWHPPTZbQ=w`_rB4j4=b z-cG*9^>N4H+4kS?Lk2$b=#%*Q{RUy*NG62M8@wA=x#SUSpvYXl4lJ7DZ{C9@4F6E? zrqq6S+tN_NA*A)xO%Br%cbfZKnz&C*1N;6VM<~Vx9%?g21qoNX6s)QJaq$8g@XKW5 zG8=BNIZF<9jrU8vJ&{BF#|n0w5lNGw&Tp-%2E}q?9QT=4Rp6s$$7p>eo(gOp*YKkd z3`Ub81r6wO7{&DZ{Wp^I(-~CYTYsYb@DQqwVl{@>YHINcgBB|}KxfjME$=$UtMC>- z`Szj%;Ec;qe9ef~m;-bteMj|!>st_9g(eEE!aX!82|Q_c1jm0yX{$YJ5v>t0YB)!3 z(OyEN&a|$xuBHgmR`1)ZHu_JZ$~l*IsKePe=w7xj(4U})AMxQ>B|#CZ&%u!PW~Btb zj_dw~fwh_4FB!-I4{TrREA?CTQ%-snd=AbFQuh~3x;@D)DIhGz3y@Qd#Js09k9!Z)-4g6*{#Hfve$NVy^s?H7kIf>&qhjUhQIE2Wx(*RE=otD*6xI zQ5vsACm!cXH55{bI^~ds1dhVz?vvlC7SoK`rGUQpgw+I@LMVs*U2O?f z-Z`BVQUEU2fJ#bN4g3bd81R3DquM`D`vcR0WD-GiM&F%yMp!AeY{Wvt#w+DxFQ$YP zo&!w3DN3#~8gG~umObOZxX2)IOBKUg#x)!Zn&Kcf(atO15R2+N!?~M=1ay*TY+yWD zkbI_MM&Cy;v~6pY5-Q}i)4vfhg8AU&lsy?xFd&(w{0>EcPi;u7Dc>BBI1z_p!W!iH z)yD)49VEJcif9Z7com=)?Ff>%Q6IvBmQ^9AmARj_6HM|-ecc?^$Lpz-~KDg&1x->}7b<$JltevBvc;CI3G|L_&h3vO9No z^Xs@yj06Q01_CTdgaqY(rvJ0yfA1;1EcdPW`ajG6_v^pu4HtI6wyFEgd*E}1QEj(p z-B5(>lzse;eXNu{>+MBqKW-2|h#Sli;txzOsu%hF|6lljoyXt*5(4Ei#I!-Rg$m{m zk}YJDn{`z&Ao9<6(k(J)KHLPZJ#$`wU75<%N2&y2Lkn;EZ1* z=+)TjkYphU=Dupfx>M4~8@;Y3nIqYQMNyerSFKHkyC#Vl83m)n{^pExN4~Q3B8ogn zDMU4Ke0dBfg$XaIZ%{&e((8i{YUyN{;23-;49U=1@^f%z+LK(9e$aK){j5)&8dH_G z>@nNdiwjqj_#Sexmq1>Fhje(^%jsjZPmprDM826$db>)h%SB%H&F#r$tKO_sA7D{V zl9HJ^hQ}^rdDD)oV4gbyVcP1#1Co*&*6YuTZ4B3)6DE5mV|ppcbduu=#kNj*-NWaM z#S^yu;I0HwLRn0SUYKX&duAprw>il=8yuuf9g`;J5V1q^bdt< z5#>Yb^tpSTns>^4M4=$i$yW7d4~v!=n@Q=lrR{=HfCmTB42=~xrnxw&d&~^p?I^5a z;k>yH>=b6Wc#tvGwxhix1*ZZ3eqEHg|7#h)pmMNzvz3g}9V=a~qCzPK^C&76Ehq|K z5JnSXMcoS0Pq%8UVmUq`qDic?!ba52!h{=kG>t=F(cR@lauQpE`mis3%X z(m^+<;?8Bpj_FdxEY4fsJzaslI{O^nJn-YYZg*ofEz);HgTp}7?^XzwZZOe8a0HaV-e zZJ$PKb>PJvS1ok^9?R6s?zZU(;4rxD^lP&^s91%ocVy$Z+6=R7i%400Xw656kzx@h zK>GR-XvOO-lG0<+)-q>JQn1CZCmuOk9M${mzdJDczTit2r6=oHus%jgC&tLzbZHUp zx*AOW9AYCsjt11p&atZwTGpx2$@p2ad+^iYM^#j%8J+ahLt90s8T8c}rXbJRUFM3_ zv2JPZ+E{zWw8++9#cNUX416?Fe|#0W>&%li@SKm=pevUnmxUvFr!6KfX8WrppnzDoG5Zs9gWm~$0nvZ&v(~oH@b>TJ8E3TwLAEVas)4L*?E5L0`b1IG6bBV zzhY)RQTm_jJ?QMm)abR(eqTC~W9Wsmm%eiZX>^D{fAq}a-7rGicU<+7KUJ8~ZxGDG zB)~9Soe&rJ^0B23ZlpbYJM^Vy>^D>JPFrXV zkD1uts}+sJJ-U1Iv zECTIYE37}TW*Z&<4bl@DQ{1{}tF`~{PEF4KVPIL&top-Rj41!-qS0V>Y;mDv&M}3vioShyCG^@*~F=<&a8c zj}xsajy$tDf8NOy+ugC1V=uZ<)b4o-5R|4F3P!EQ-d^TS*_YLA zyrYDd3(WOQiz-#UmK3*6SVz@b4A3kwxvBH5@?Ny6u6#OzIuj>0fGac-1Xk&(nqTOe z4b08aawa`R+W{CCE*iNOJkA@2{1N(ju|iIaeY#RO5zzPupR;m7d*KG{TzPI|wdUkC z_dvb9g=^YamoEK!dh=Zx0(7*y6klO_L$8XyLrnrxMC2rBp=H8x!PJ`!?QSRF)ePRJ6_m)H-qYp z*wid9xxqBw^az=y8j_ilsW^{@^@Y+r{{=ZM1gC_Eu%;QAd%A0xs&JTJFqjxmPcp?Q zeyH2Z+q%{ldHKS6_8vX)3-GyWrFM-?3s`n#q9)`?M1X9V1Un~=c<>G*(>{eH`WRF_ zhSMhEAd9p#@l{#1X*1?+ z4+dRsM8@mya3cgXj`O%3BjPr$t?h-RyKYP~c1o z`yN$2G^E|7gSkSn2iH7$>VT{T<((50RH_ge+&M~O9jwfsVog<}4!$XjWF6vK+Dz-& zg2PH^J0uY@%rd|>TfSkIXaVuOM+e=s*;To)w+ONb@$t&DSIfD**HbmKKqrB73b@r; zn(r<3(YmIB*BT7Ajl3@-t|0d1t46Iu}!{eW6d0^!`;~@(wZ93 zjke~zqX&Fh{E5NOV^yJxTHa(71(x?Wec#2qc|0CRJW_hTuG zmbT^unsG4q5q)u9CRgjNdPqu>D5^+4FwaDgBu7$Af;IIl1q|bAK$BA%f;Wa>$5EVPffwR#|mBNLz&S8H|vf0oAn!nbS8*eig6Q2 znu90hl1JjQ3Ysdn_*!p(Y2nn#}>T|!cEhHCR*qmrs&GcTrZAb?#fR&ceoUP2o-@Q;sDf!T}3;m=1p4R%dU0%)=j(Zh?2p{`h-&`te()YIQjWj zWKQ-L>GowD;=yka{LY7}uHa}*rU;ogI99M`D zsh@+kSp#`PcP(aPU6%&8FQz1?zaCw>|NLcYjAUJOs;v5y;xeJka$h+qGUn6wTI%Sh z6Lb0&3Q<04fY(rMh~O0TElV}Sbc|h_<4{ECL|+e$AY4}Th!zTDqS4wk5L6ayy0LhP zBdNS~emoeT4Dw;O->cbG6QfA87xpxUPhGPmLUbG(e|Ab~f~LX%cVF+ot<7*=tTU?_ zE`lcqO3GdT+RcqW`!%BW7Vka=vaPhpN!=x^+r|yNFVOEL@qo>C9Ra6}wNU1AsO}A@ zmddSM=?buy_*O#-gB#9trGi$50>50}NHMzHj|dMJOM6GnN8fjmY(pIQV_2<8(K4~N zQ>_}JNVcBl_1c-AFuuI1J3+eyN~<8=(3DH09AP?)MD=vy5*)k3-}d_@N%Uc6PG8xE zKV`I+3X`!>~=B@T$x#{3R< zEF}ZgrB*Yp1P@;GTT#XPv2o|Zh1Z2YY=)p5=NK-jaP_j%)g?JHh6nUGew*|RGuC*+ z=wFm?2)$MV%s=_pEq9EU&jj~Oe>LF^EU;Bqr7Av6OLOv&@vF)GE1v_kDhRWmj&i(9ADJD- zxWg0sFUpmj3!f0VLYK8%SFZWgw;+|;AtUpyCrdC%A}QLAri*lVLxB~s{&3T5872)B z@;&^qr?!yL!8~|C#VAztK0Nz6zKvoQ{6aNjqixfPhBk{x)*U-4SxsVfXM(XzS z!JI3OfmT>27q@ByIC{7W(1?Gf`=c=3gtp5`C|+(`pUWciu!)w0y14gGDTL@X~% z@l1ByqK$~yY0Xk{OZyEqyL#o(L)7vkq(MCnH~6_GuG1;7Z%={O*mhQZOCHOug6>n% z)Rt`%&ynLavGiSLDRC6DIhOk*`lv2YwcD~TybezVU6Z%3CmVDmxUgzmCCj3lx3*p& zQ!`NL{`2YQq7fm-Bdj77R8oE=U)K2#PJEIgDU!#~`D!y)2ZVgqvfD2<#GWGxb zvfPJh7^^ZpJGm>XeqOR}AOu@2WP=>M?b!`)3*gl%=f`<~=)$kIpj6DzR4av6foA%K zn#K=-e#b&Sj>@{KE(lPPVXMp)LPp-=T3Ti{kdh%-F3@PuQv)L&&@l6iSa88@d+^zq z$NTL-#nQ8S>!y<#n<2PjkP6$v`zTPd3|vk7*+RJ#9L}k=oU=jCi@!RlUwA7tvDBm2 z1Z>Hk^*E>Fa&Nm^pd&=LVEQe0FH9s@%9-`Hg^!0ru2r;hT(-o5%(rI6pGhlWWX?{I zi!E%Q@ME$4h#EvsCtuX>NRnI-aN|RH$u&4xJ8JC4P?I<0xexm-FiB*UbfqvFpKI={ zegd$r@eRoHSf=ok+aFVeWYX!Yr)72kAP2PtpW5=iCTz2!Eozk~!)1+>kv7Zzio+;BM0B*`A18 zdyyc3X*17dyT_?Upp$bSo)Y!OZ8A3?QK@tOleu!>G~Ot>Em)qK-bFt}J7h6(u_0Gz z9-qH1+$qjrwNwG}rM-az;VX39Lh*1?v3c3qG76E9c}NjiOCUCO_zV_`7Ss=iz0NUq z>3YZp70l~da}>?&kaZ(?%~r%dorKL`6?$5DN;o*~g2C_CCa8cshXJ~2a!mOWAT)ub zXXDFO(=g1;Z%GHpTjkbMs1n2-YdFp92Pd;2ooDL$k{cBaIdO6w$I~WN+BN=BSady^ z+PKgjRn)g;auaP%R8K6?Sxl^&55K-BMs#;G{7JMywGs5p`UeqxyY-?)X||m+%hS}X zDn2w0&RYVB>8O8I(jP!pCy+nSPqcuQAj*-8Zr9KxC2ERGjmYb@o5i`B!BK|}dv*s< zqYDNvY___DHOj)VMt31ufc>`EeUqtQ)p6KT6N?dKj{jQrbI{n#mZP?YJGE+AQjH1U z+&EKfTRHDvG0Q}^$Pg1<|3QadE|q&J<2$>1UC<3s>%&-puEkY70fMLJz|w(5{`*QGV|yc-m*?~STcREHo}r)F2urE08| z6*6Q=Eu>zF$WSuYb>vb(>z=DNF#E9OHDLGrDTE{3GZt58SR;@C%x6{-^)BHpK2?gY zJ8$1qozK%L4H=5vsH)0MfpC2(~VVE+L zhMCtb%e30DA9v>4@ygYnhqIlhs#5?B%Q16@^BvHe$-kPZB98w_?yNLbzEO;-X~hpS z=pn$ooTZWgo5$L!3nn>kwd`28*NWLRTfnf=_wEMN#-BMGD{3*>-qT~wgj%igrtq)6 z#HSKsKlWgmMfw~PowgKGwGmEo66TBiM69 z>sw;8XZ>nQ@|tUHr%R&Ik*)~VZ#{cL^2g@;985ea*N=4_%@}HN zMVUMqkh{Dwyd*G53ruyWTy-G)d4Whe5bBWb`jmHh@Eec40+J4!4(XkN!m~>G7ICp# zmO5zNG`~#dMbFzU!e`~OUjL*`MdXsXUKIjR?DUADyD)?QY~ZdSi>+aJR`W4g)@U{f zMV^)nRrNWC#bYD6_cy9tMOB||WGyEH(iGCq_#?8>OLCzdy~)}=(GknH*&EuK{P{Z3 zTOwu<^S?Wz6)CrT#j<>y>U`Q*7izM+?e%EhhyPe-Oxl(BY^XiXNvMRYw$rsUdU3gh zyQw=Kvt7MB;ArlqtUHXiB-N!Fbg{IItJm<|?{?=N^+0c1l!y&z!;BZ}Fb4PiX%6GE zqi@!f=acnr189FBz@OGnaoTnTaW3Eusn%!71dGitu-P+jzi0~pg`Opb3`O?_A>6M{ zdNXysPAb`^SA9niRDU%uvet@LVMMq2Xhi_wvy45!lvy@icTDYN8Nn?Ikz6olr<2|A zdj6U()hM(qwU_EvoCa^^kPCGXz`0vXoO`adC(h$$WuE}*{49AvQK8o?*rNK@4BM6W zflqDSy#!;+jRo6o;a}B+MK9Q~BH6)}LJAC&_hW!eP}IZoa1Per3@FE%vW) zwkenZddR3h7(H$?x$6fayc`)>f6i&>0DY444jQTs#unCm?QDJ*Fm-a3O{8rMB6i%{ zg(d!0oy;VZGJHhV6nJ@T>XQtVm^Xj$_-rjCX9{iF@NkQDpURJ-GoQ3D(94w&>qawO z$KnQIG^z6m;lYLR>fV274`|w?gLfXs0$R2T zuuV*;AXuN5tFfaUazm)w)VaEs5}GLZapl6{{es!KVcPOCj*5C_)PlLHv$2bNcpWJY z3k;xg2Rmq2h@`XkDel(VI!|e&0~)u=bT2Tzc4m`A=;up5yX#?zA$nb-=Vk|EK+RhI z0?f>FdUo>`e{^m$f??o)xUR(4Rr4GE^Hyq_b3M(*wP8&OQkN3hh%qeL1q~8qG;L3I z=dz_-cC*JW^oksXjY$8F`(w}(c4#Rv8#U=B1gVFrsDw!mAn3G1qGWg9(6(k+EB%>Z zh;2P=7g)dtjDvm^BSZB;VQ82maae)eK=CiOl<;;FNb7%nP&5K#u{!s`4o9KPk=mRY zI0#%SO!PM5T{-E+=uSAP#^ai>;M|839&EyW{z@2{S8lOa6PSK$6%kVIg1&PQFFLLc z>T`-vwL)!RF-)-nBW=+;(PGt8RiSMEXTdr3GJC`JiO?J#8xh= z{phi(S|w-UNU-5BA}&{&q>&wST`*|)p`4Wv8}$~?LzL+nPB*}+Qo0i?KG}UII6Ds2 zc1iU6xu~#q$y0DG9-H3cx*%$_yxe(zu?J= z6n1!i`xS}c7UwZ2t4wqREIZ#mY5o zSmW-|I?;2}yi73Jjc=H`Agw53`g*p*6<`S9$3_@ssYDX_6W*05=f$*%-+?OfuGry8 zqMbYle-ftvQ!Hyj&1ss&Um{belJWB8AKvToK+KtUMq;5+ z4M}128D-Arh%kqG7@h@Hyp(^@a>nx7?Mjm9WYs*aE|5uwU;%bHd8{F%oR@&vt3^w8 z1A)G-%zZ+00Yj7=EDrKgJ!6&NvzG>8JPAHQ`3YKc5pFH+Jr!~ zGkX9eroNK0bsJAc0HI{NHpB}8k=l62R4D#}oMxYuE!4RJVP?z`>pj3P5WnVCG;(UAD$aO8qU_ljK$< z8X60(cgKlAOFj3HMM&%#XFM%O(v2n#J0Zf4`A<&Z_p3q~DN=AD7T9NnB-a}WD2FXZ zcTh6rW^Y9$z&mJ;Vyt)-u5F!3-5Pp?pb}$L!;9Q|;qw=Fq@6)%>MBW$(XfRn60*Y* zjj_~S@RXbjjHd&p4OfmgDoqmAv2CKYJ*t#zs*X;8;o%m};nT6heXo(tHJ|d;yb##6 zY1Ep~P{^{(1k|YQCobX=Zp!iJVW8`2;k+#UMhoJdXoCh3i0$6+S zl;yNUwF zx@i|sEu2yY=8*Q8h9#NvW=tTYBiHHdMU>_pF-u-O0yIuas1Br9iC)i@j(fId1^N%sHsKUz=0k>e^TB|* zC(~7@!uee-LJx!E^8D3h70040iZgl@JFnT%>~7#a8AsBH9kn6zfIgq3FUOwc;I4U@ zA1a36Jzo(_3;v_?gn4^&*N|Td;0A|_%4gvwZC@#fEt%-NEi;QZtufjD3m&MRMjz+U zp_Pd59KNTg-q+~p_>b9cjmY9N_*F!}6ugnJJyd_Fn4nf>J5HU70F>p+*F?y3qrn&d zLv1nEzQ`zVY|a9qK~u;J+=#3(!??mZ3Y?D-3}sjbI>^1^DBw|>?tsWkqK1G$S*WKO zWx?qYT8`8%S$7=d{uuY}9OmJm(l0;-w;i&}H_T1d14HpIchl59PGYTZTiEakTwI5v zI#T)>ro5fc=jVJ$*kj8x4JLvd-6O~;yo>cGSdVPl7i~%K8BSf%JOSh3<;UJ5*FT`W z$vT1ZA}iv0h$$?MYOS6XKWg3)$t;XQo&B4jiq$ zp<)CK=$}TQTtq2;!4O(Qusn6Ds*9G1UdL+I*zi}oHgWA0wh77%)AHVslGd0P4!9qu zv`ksnkwwg=Uo8lOUqxqV)*?sX*Hjjc%m%Dk8WSUMi3gS0fXz1XNrT&Fl$LTtS4IJ>cSXh@vF?3{yxF zEbDaqCs9c%>Zyq6ZTeMJh3&Z5SOJGun{LhJIn$_@qe~ugjmhS9`|GF>aBc8uTv{}F zLXQbKYgYv^hYzlEOlOHs5qwh!^Na&N^zVx)Pha%W5BF0Ynn8y z$o_$6p}XQEzEGsPJqbZ^k0HxKB@MoxBD^Y)09o~~M)|`m{nWOfkmyWv60N`YTsoV& z`C6`KQd11xZqE|p6*L)48V=!F?UfW1*0M+GLA$-s|f=JvDllACc*xWE!<4{00`)o zlkCqR%7Dse{qCtQx)?T)JAIKepuD!wvb{*kmzkq7aK3u+y9laWcT&-8+Xbs0#13Et z1tEM;Ti~1G940DHXrQsxp@K7s=?`Og>MlwgdJe4D*$VoL*U6!#@tg6(57o=Ja4@^- zzZg!~DEAI)z1sgQXX2VG|JB(y`ZQw`6Nx;KDkQ6KMzZX4sPQEl)|}V4un9I+Q(Io-wBNPH2VvuH|M&rZFMw#?(Tvc{i>blXU2x%3nkU7G zWMnpXU~ndq7z?gfn42PCLp8G2&J(fzpi4`M8~OOV+JzC(+iSY!!7rTd)w0|}c0*M0 zZ_!TdRb*zC5TL*|u@i(*nQiBYZ`x`1_{G8%OlsO<)5lqw`YO&3rht7}C92K`0pex2(nnv80&UbEv(E9L~+oq-uds*N#|C_0ulIA}fA>RuRKIn_zgdWu#TRHpv zyY`~jAs%N?>;S#(_0?%CQiH8!INurzU(1)RwReZkFjRowa;@lMj6Jm)HU!j2 zAsmtl&2c+;lV%b7OiQ{Gc<#Y7vPk@^1bJ3$Vch(V2C*c38n*K{BmN z_FT_O8&miYt12}yh85#U^($jDLyIpzDCAE>P<#RHPU-^&<-FYlmqMKH`jTs7?hE;^ z2P=Mg=#7q0p}j}dC}rkGUWTb#6a5+D`9Qef$zGfYMUgzWSDY}aKDq}TL ztwOAj2>Pa4dCANZ33lgR5-5DNXYh%QG)B+{u`)w)+_RdZqoSzfp>d`y2cahGNUtkW z{xM|m!yc7SPWL9aB{+xnV;L8f5B=^*@|LX2{l;b)O|A-l`9$zIu+4nDU;YJXQo{;>2TZNt)|CntvGVVU?oG3 zxCy5(;9|J+_z*JW{mU)o6s=;Rd|^Wd7Kjw$ji1fB2V3DGi_GQnXd3#XQ)qS;YBvBL zO!@l1_Qq&HQSyyg-p!0%#>NJNdnZoDTBY0HGLS~rw@tvFm8JxYt*+Jj~WkpPJ zneatwxxWLJs&JlFI<#siA$vkuOFR3j@(|3yeF9bUKMV^o#B0`8N@g%l`~$cMm7aVd zrP)!T~6x%sPX1i)6PLy0pa2z>%ES?vrG$lcuMP69-XLQo~j<7-gtEO29JLT!d&yB&I{be082&jfx zGvRiwy$M@0b&I^NTc;v|8G#%F^(DiLpoqCx9TSi95k~>&+3odB-*cJ4a(9RI!>n)= zDqEBaiC_V6ofneB?jw@L%gdsA@Z?f*h644LL8}__A6;y&PRG^@Zz^U(Wg)s^{DTaH z_9j}Ky^@)CSwpW7ukv*V0uTz&7)W_1#pJvk?y{mtW(7ap48~x;Pj86EuX5MfQp+-P zgTWe<#=Agp|AqP4rAN9ps_3%m-dDRS-Lo0-AIzJ|hSZ9^l81lQaRIe=usJC5ih%2b z6xSt^SXvN{;kA=HHX{jUhYVA>6I>hV*eR^K@po8Xg zj=7`!U3;QZrDmPjY1@fUxJ=@$xdTs;XNmiyUVX731N*naP%J)qr`ZWPdlBR`f|VjH zg7Eoa6YlAe82>7&*}8n;Sz`z#u&=;p5M4C6rxT3PP|b{m_@}cZx&;D==q!J+dNb4b zIaaJFGw4$smWavL$bTM6|ID9qbBtd6{c-QQY7poEAxJn+7@acJAd}Ut4clkc&6%-v zDOdYs;`4H00J)qqTU+#HUO)yIJYKqvgv)))I)p`}nKO-nmN`^) z&^z(u7}-)#BE{vD^#s0uvhW6fRdE{&z^0@x1kASyj69%}=%02ysp|C$JTO5Q*tZ7- zZzL6wG1^sz!(l*P@X#geZhy+)6mfnTC^y_FJQOu4Y_hp`n$QPZ%=oR?Dwc(a2H#5v z6Xnnm666Xlt>(VMJ^=!FVM|5J9#(-0HL1Al0%BxYv=4WDLtgq5+-=RWW+CPGZ4)4* zwvkU!vP%8#&^>h$E8}i7ldvIxF+1Q-rF+QXsVc`*L0-J)<++K%M2bjd^^)<*Ir9HJ}&08a{eIKqU?&v$tgtY_Mo&-Hd2*iOwX8l%?ScP zA+5z}&pu|H%05P&v~lJlDnN;Duf(F8=OmP}8|o9#CP-m6gN4+e*2X6WA**ZGGB@va6cP7;%#N7nwO6+xsp8ji51F;<~;a|0}J)CN4VT4v-iN!l(U&C-& zh}f}DZ+Y-j7VJ_YSOFtw5dqt(!fdHXGLUqRII7flio{c;im+6`TU?<0T?w6}#Pd3R zUF1XZ6*M2D!D3lT;J`Ec#@E4Oy_j&)t6h-e{|$@)}_C;rFa1IAb7T1pve=H5z`=ckvwEsQU%`Dw)VpljKX z-iatJ(Zlmtg`@W$6FuwtQx$rF(Mnnk6n(l8MLhS11l=>la13M#0}hskP{m?dTJU}H zl22$8NvVWT2|UHh`Su8^fVxsE4rI-gBeaORwVTm*Mu{Vc8E6|GvO(pxAxHdV1q6B)T!OUYk&%P(fZyw6kn;&jBs zLjiQwl@vsoIK{^t+bDvH&I~}S*;<}BQzr;%`dq)i`gu+~$SJvC^~J*BLvc+8C;lNV zop9NHF5tWVC~J0ygP&;(p8Ca&V(n6A#=X|lQull34p5>hSx3A;Q9(qP6*&e;c;>YJOl;cm%Q2Avokt_98 zvNg@tOWxuh`VCWNpx>G$xq=8SqP+SGtyI(3XF*ACHAyOxIbF*%q;;bv|KNu@ybDrq zNV}^pL{>G6OXD20J_Ua58w-=pi<7Q+k@lu5Fzl{HR-Cv+v{`1C_l;MDAy2jEm~}S! zb5aUU49?N$=`d;D3O$kDg2KlfD(gK$6N+@FPTk&VxwnunChZy?4D_GzbfCF2!fuMc?4htEZFS2@ zc5t#Z-mF!QYa?kyi13yQvnR)uJb51@vNKyc@eA2BfeVmVYRGAaP6-h0IRr{#>TlfAQksY@Z5(Ds2gQWg zXK>YafN5PNC)^P&UkN|i5V){}~8 zTsoLs^$ZH)MF8xb1(BF|bov0sofu%BvLtACt&^vW=v771cKTsf>&z8>lLAZ-Z8141 z@Ref?o05?)5bRW`eHwz-Rf3WVZ$s8GkPiDd>2Wxdx?PS$D#K#skf^0bkD$U#F>Jpi z$zdX|v2P*6%7kJ+FK9)u3V!Jxlc@KLCD%%f?<(R5U;K1}^I>*;%)GHXN#C@K<&qwo zH?pd(sC(2T8Q)UA5|uGegcMFF4me;UgB3m7uL|lnd^rA&gNgdoYM3DpLW?>qqFpj^ zM7zqM@q#4=3BFyG0tlusma)Kj%1ykLeinQ25}Z*g==#6BYK~H3+ahL>Bl#ecaVP}q zkKafKVr|ASQiTS@f00KSlYX$Drjs2>g`R%Jp!O8)Z30^ys}{4;w-VIFgQrW@%IFoL zNg21}mUG7&0SXmLDUOVVOX#C=kCfySF6VZ&v1a3LuV{W?--43~y|9YgE*@repP%Xd zT%fHq?kC9=DJg?b>l~DzN<`FSDa&Ut&hKpC|lpJgbvo`^YXnyY;^VA020S_4rRu;x$?9mKL!lJ>JfxKM8n45cOFcdxgKRlWCq z0JAzA`X|SRXa${2wL@D0_v7sk4y|VVY>uY1Or`U4(}$$)T52)TiX4opUcxp$N7Rf| zo(7pZIwG*F&UfRdGfZJFmHk|O7fLzamKN#RUqOM&4QtXsZpNsZ!`T^BwWon5^p_ay z@jrtn{3(^m^799^gq$oIRZ=HtDU_xk+pv#{zfJy;CVdX8rBI>Gg)GhhNYA z|MA#Y<2g0caIgZc53U)p~oAFAH1 zy1SSIf6`V*F2tEp7Qz4iJQn-<{|6o%&<3fj=hb!eB=+}HzDxEwcJVCk$7&HhsGpv@ zE$E!W>(j!xputVGDtv$|R0AHg(#8L09wL4FWgYSF-SbKWcA@TD*-!TQMNhxczH-=q za<9{O#9H^CxO>k0*2BYCf4%gFjNUOs@4*kL{~JAGo+jCThkUz#XnGd$<50?fM_xKQ zxgs(~Pv)n@fApg4hn5kt-hbPM`zy!I(|4Qr-PwE8FwpJo+`B zH#mKE5+dh3!+c(0>Yuz{3o=FjJu86aP|ip`H);-KUZn;NeZ7dDdSVn3yernKdKeoh z&D_uyIGC3n{@8~~sq;_$TMRp?{`d25+WUH+qW`EQq{G&e=eEo0rBPFj2K%oaED+sa zhGetD zhE6yEq;7n&3i()0qW`r#Ckmr}MLfDE_S1ZgMkU&I);)*xdWQA(-8)XC^#45cO_CRI ze~%+)-mG5zl6X9%7B*G>e8P6f{d4mn{)@Po`K~V}t8==>@b8&$LK8`vz|Tm8WT|gX zZFt~+mF(P6OZ>fP{|UQID@Q-gvwo5C1hiI;R0r$?Z%Tg3FHp64>AU|g_U@{yjV@dO zaG|)ndvOa6#X@m+r#KXMiWMoPxI4w2;_edMU5dNA1&8GDt#f;R!kOI7O|oXqOy0d; zd3Io{$Go0&BS^y^W3_+0{Mib9J*MeGkzRa(Ox=YFrM*upL&0a=!aga%7azHZd})R? zEMYzF+Yr8-OFaUL9+XK;QFfkPTJKrJoPL^$eUX8@?IzE)oT1KN0C1qk$l>BZ zz%j2Pkn;5e6~6O`hw9}vcr2haF7>in0JruG&aruKe{O_A7yuKihi!DHkO_3pQu)BkC(K z6jk5=abNEBz>qUB=WkgT(^S@&T+6RR4)43voPJO#&N`G}JV!gV3*LoBnZP;K*n8<& z<>dB=`m*h%;R9IoZFLdI26}%ct1Lz_%nW4yh5#?1bAdAhg@k#*F=Rs zkHYd9bKfjAqZpOS(<>FoTOEp8bhNH!xcMLlX@8V!@(hNtUJs88J?xl0kMvpF0-@ef z0c%=DF)Nh_d_L*pyaot|f@L0VFA-rV2p<`LPV_CM~MYl2D;RbJd@Hrp|P*9qZ;&4?T7P#N{}9tZIbnLCxa z^9ReYg7L#}-#d1aQ}UtoS+6XeP6^>N$sKo7EUB(NCkd;*bzKa^vzSKS_Q7f0 zL;W}6In(6FS(Iu&Tfg!Ndj~6uU_)>26|UX!xnN+U`jWNUNG}I&{b+k_xM9{yhC~5E z{<&dYK^@&Pj)E^aP}RGSu_$GC$()-L!G-iNwbVL(v_^uaPPi~N_=MsobtRY&3VWci z_^$LYd&(=XlnXlbeK3m zPNFMu9aTWPRCHMeD-*cE5UA06c$-|-k9th`rHvYG|1Tu<%J}~D^q{8?!)R@){*ixNb{=&-RUAg;gG@?8rsLXa zXnPS`RECMp^-S;6&%>gb8=RKK^xKZW#lr+`Usru(>&>c|)2`TRAJAPlx}k+u(CZzv%?iBg{|{-TcFo*N*wT?U+&Y9Gi08a)(Om%qt?ofPEA zx<9^RE-_5~IRDTEIe)mUeg+fruzM6R0(07*nz6E~l08lcb5QAgL zN6IIDTeUk*puBdaxAW9KB*KNK{VtbTB`?nTIN^)>W-sYId~vx|=mI)!pbgB(9p(;U z7XtJ`=!juufPwDKa^2ger)8T^g97<=5&o;c|I-$Wb9K_8-u3%25_v!?rdg`>e#-CLl)}=jEUFJk!hcr zb9BgG&2kUxw?&C>Sgu_*-TRO5tE&5<;7LgkJH~xMQISfa)hq2XfB?K>>Yg~S5U|vH zxoC07?t240ZvP6}ZYoUzu|s!%Xq>k6ho;Ul^ls7xyj1{ra=4^Oc5=1WJ#hBdrg8#& zU*2Fx3c!>)*CbF(P&DV!{@3xHBDg7kTtF9HoATJx{ zY$MF+^%{mCzs6AhSHRSxIMkoMo*U@@no?uDnS3Oudw-q%pn2YxML7_#(y#{r2DF<6 z7>M0SL?qw5piX$#razW@OUe(a-kQVApS~(l4+J0&y=N82AB%cprj<507&8d+akNH7%c5kz;u#Ixh&o>b;s-L z6F}b8U+NJN|MjoPvAHv0+g-CH#0kU-%o8uDAOwS8AqVsT(NKu8M9uY7z*}WLz4H0; zE07-jxRR+vM&#iwR+7OVa&5O&(i5`>l{rf+5hiinsf29Y(Z-}=YBcDTm(DS8r+!F4q^t9@3@-jniNEk(pl1i@5i(bRQ z(94o;nS(?l$`907)uUIa-3-mpPi$N}Py)ZS9w(jsCpogQ5|&nxA~L{zvLuwsFCR|M z@S3G(5B6(1`E(G(ZeMQx&?m#{DN&eFD{FBFw6;roOK%BT1i&ZaW#<3`pu307ItH%~ zK46P>$|6viRzm1&nHtk*Gf%rLV@Uu?aOv4*-1ckw9MrmP&j)8hp*nQvi@AEIyw>63 zzRH#it(5E&-E{zTQR&gxU$!j@?$v1%t5I}Bg$64QT68fja;!0uV7!Qx%KQElf*-SW zA%OnS*YL~Np8+%;DA0f)|2h?cMLB~Il>iv%o69xjbf&u}v|L0vPo-+ppG9~$U;?V% z=&PD-Jn!E|oe4u8*Lo#Y{kCk0ObEK#M0pR>e?b?#MLxLw=njZR)iU^P<63r9#ND-# zF@6t1fPCxbe}z7hCk%XHM}~|XGLl2(e^80~`rkC!!TG7aS+TSnG&Xx0zmNyu>acr4 ztACBoi5dy_I>3}l8+~Uga=+*Wo)RrTh4wYZTEgS=SGN;+p6q9Hyp9t1&UR~72E3eS zCwv8q@HQ~$GM@WXnS#DNCgFRl5x!M|7vY6nBaPX&BDNO!Jlr5U0Z(Ua+k6Rx{?K#$ zr#n`WTHRFp^YVjL^fwu^!|d%&yxX>FN_PeqVdrd0-zoAZyHYR!2PHuiUHpAM@$3gz zZ#yp8>pIkr5ogAp8S?yBML#i(wt}=6JbnOz9IFJB^0ClBB7<_Snc+1##o`orp%yB+ zQfxle8j1Nd4*Co(*UCkH+g2Ay(9RO&c%=*E@XJ3kbzE1&i#mWXNaumDd*e0a)K>1N zOvribiZ8jG<4yqGo8d*ffdbcbDEVs=+JG9fM#Oe7sz237_Qus|zFwHi7 z%@8HfE)Q%*Syef$)IbhLT{(8OtAK!${Rh&QOquO-{))wy6uh3?Ob1fNIWj?MrSX=4hCDX?hESK*NQ)L?&acy6>0mCY~lg zZz7|ifdg@V{{QFyyaJCjn`%_E)%!qO#WN@a#or zsFRqgtgfV{y|38~R8&q*F8sPy4coLQ5F$!(dCnT$pk*QDoyK^j3dv*zYZoKvhj07c zQhIvnL1oz<1gUCUEGN*2pTr$pfv{$f_6rd{Fw>mXtwl)O$VGdcg;LF%^d0`PizQHMb}VOn+@o zJ30Jq9Pd{C4IbRF*s&-maN|n&kt==2r-RqCK~~#tU!`2sAv`>62AN>1aX5z!+x%Jb z4yLupDYYRc%Fx$c?fUNSiZIpg8RO(o$)*_XKEFo?_nCO4W($zw6CrUYmrmK$Jhx2W zSOFO<-cFwLyPE;<(0?wk$#1HyEO+wqHFI^fwe|5av#4n+$-{>0nTbyuk*&^AH8*yJqJ31qC#HL2sSw zS(|C60@vz^;zjauVidw8&Hb$_LulPy! zlzhW|2ax%iJe;q=@3WAjml=!ya&!Om66ae9?6**_#Z+c;$l2(W=%y{S*uuiXNsdcNjK{;> zIW)_s>6LtK<(|o;JkJ{o7EG@C9LX6zK>cRa&Y%rph~BD;jh&4R006N0W@J%NUR*lbRj^M?DMnyiKbaJL8d3?p{ZYh} zCNy-wWsQ(H#oCZ-w@(lp7O0{wx4OqG@N@F=%%M^decmEi!1@XcaA;5u>&~d6UW-cv zO!a*Ul9K&0H8{}6K*dPQO2bUgOhd!kKlLt$DXK`wNh?c@b&u1rR#p@hRaRC~Ps;zU zF|uf~)BbXpwhXNA_+D69RYAozEFN?BgZYqmMXyS8mX@q2EL%hDtB1G7<=)O9%-iV?_nZUHaq8YvklyG^^OYnztn_}qGfPpW#cQ#%6nq%461}?XZiYU_B7*)o?qJpa+F5YR) z_*A^@U5mT|+Fo&A!SugMu5%{O28IHN609ba2Ao`+qI@e@G;4YF)|xd4kupPo%G`>L zwSP0~i$=z3M2F@yzgKASq*7mkw0rnCO8?qeyFBb5QxK!$A`)U^Qet8fBBFjohsVB{ zdfWdG7n4;%-OGu?p(H0b+P$#IXO;CdruT93>Oaj~>4FgA!)d+`;+GfR%UOLJFa@-l zpj?Oih>|DVmTkd{%6z3sa2+ip)fZY#KPii>Pb`q|HFTH&&sz*UekNkPn%Ta8x%K@# zs#NaJ`L|OiuXR+EC8o`$#u(~ltyLG@Q)YckLX?$mpdKwHCa)x;Bo`9t)i_UNrx=ywuuExgQz|_<`H}^P@mZ9@b1lw5;q98+CbZ1xjyrAqPMRmkpj1hMho= z>lM_V7`@z+645cgqzc4jU@<4x8n!Yipd0MSDM!#H@r;zC z@?t3K>T-KEd;N(f<7ZM`$eu73YdOtfXMpzhaRktJlb;~Nh@7)EN zin{Z3_xQyKA|0Vp2vS zdmNi6tqQqWi`r{>=PRzl!u}G4-GAr-H8eFknYpyI_9vfd_@D{mocSSir0cI6(<;KY zoMV*ZA^Y=@kfkNV&Pfa^Gou6Sh}B2op6Wna)su?+$^Y$Urbqqq4-yOU z^R9G&Tt{p;4L>~J*}&kQn2fpMcLxoF&7-q-sdC^vw*2ykUA+W38@kdP_i5OJms3A{&2U8ZXzH^CtjBZoJa^f+9UL z`%l)NY@+i^`!ZJ9NM!f=*`$N~0hu;E@`{nD`?s@uCMuc&ACp4>d(iOhqLHZ_eB*ke zT}fd8U$1{Q1 zlTG(kUA3)^edP=SaFUWsIYX#^TBUg~8){GI88x&WCzE+L_*sdkRDp87}9tN5D{vweEz;c@YW zq2e1n=_5{4-g5M=0njAAJB#ieOExt*OkCjdyt%r6JJ~;YMfmG)DJObmhw;PBj}8BE z`G_i>=$>%+^w5eyW{83CK}=A?EsW9ngveSHH($zNGD$`IZySYc^jv147q+%w0~9kc z3Yigig791Qrl6m5IIN0=q;=e7Ni#r8ipT|8^*xz(=r@A}kD{*(jl~uL4k01ojwyl- z_}bZ}qP?*ypF@OwctAEJnds?T5$^yAFkl~Fy~+my&`#XSOc|Mo+!PB9Ld3;I?I)KO z^%lA1_uwM{@Zj}7eI_dX$GxYCO~C_#@O9SHv*QRGGz^ul&# zDQUsmOarVk##~WY5co~6iQ)En+|i7Fwp7!OD5!+_whIZZEo*9JW?`M!QuX}w1IC-y zh@Q-9T0R;sHCylD!APolusb?pd?Ug6iiT%lf#xeHN{p`bE^PS|*qYhnEwvXcT>tx} zid(#H_8xX&XZ`F5{3M`g#w_h2%IQtcGF1b`i1^b%j za(qnM;RVx>OpD1zaq}knw`24s;Zvs~z5o)1ps$VJuU=3E^AI|8&8=4_#IP=1UKC zUS8fo+%q9w4}FMW8CM5S+C!uW@51-K433uhOjt82fP%dIn23g!hDHLmSwU|wFx#GS zBntC8Z;BPe;|x)uHI@rC(X59|Z^`{^&-xG$YnUQO1*4c`=WNf*S{E*99IfHEHHS_p zDeA5vZ)>gpH}RU<{dOEjTRd}`BW%s=yHFxDvo__PcS}h@M^=n3{3prE^lM}1tq_CI z7-5-uM^vG}urrAA@{-cOCwFTOmGPvj!N=j&__K|JWzWDnL584aRiOypYjF!zBUb&oF{(8#TcQz-sfZ*vG2y-a9eUzNuX6T?DRSJzrL4%D1caEEG%O~3{F zl}d}USvq~xO~d@xdgXlZ-yBa z1*Z(LQ#ruac7J!5CnN}YcFy|7vR;R3Dy~^ciTMse@`sz`==hKXGFo<6;mp(9-OgyK zI1!)r^m6r&tc?wZW+d7s97sLY(vL6B@7~S#7r4-ksAnUn z77k_5Y3v2KrCNI(F3a@yFQY7nDWAbE@UH^OO^w@_K!0P_mNRq4QXl|=+IzQRMow1LKn;WIs)?pJOL27^$8?TI2?BMnqoLbnGp-ja4XmuBar2}*(@)EW z<?=<({ioerP3BQMOykS9WK@(r9^g^A^R3ay-@BKYX zx#dqD%b!ZHUr1lP_b-}^W-ETHpl8EytuJqPYnM9Py}0EM(dr}JB5O~=bvY4;=iiK~ zmYT+*s*YL`_I^G?kNESCfEVzid6nR}bPD$Fi>{%z`_J}*WYIB2e81m4d{I9p293Xd zO9Wf`!mx4w@N{yTMp8{lOi92ZM0ie5PeP(3L?m5PvXF%H@)8h83oY0m_(X)pnzR~y z4Vg?C3>i$hk7+8N)zne)CsC)tQ5TQugjEwL%Vl7KcHEan_azQgb^N}fGNy$7-kF>L zrV+_vTD`mw#$GWVrCpW0EkjZ~M6b2x9^mY`PFB)y@;iiug)=MAH2Yir*6_=aZWdeV z+&3LE_qsnJ`73MDAq2o8_KiMQW;8D%l4f9X;wSRMiBq~+sixucpc|#7rQ42P)o^lh z&PueYZ#jRW$;-{lqwW#OzGPR5jRx~2q_8yl8`qR)#Ja*Qc6PV*|YKU zj8S|J1>qK{HeYSKkaj8s>CWv43rAOOS9xZ>5Cc1$i3z?BMBLC-%oD{n zg*i`HEaU%gzoeVaB2Aybmxh)P9CV*( zU^zdLlA?<6(&3}isS-M?=)5Qt_^pe4#2pKLxMH+syn1+4DVOCRt> zPfkw7crG4Dwh@oj?dGZ;$sB$Q?ZBgY7D?GX+)CBl;N{}wO{=8%?%uMLeuXpjMZzIu zqSJZ@j7c^=)%PbINn)kXjKK^99&5(e2x>$=U|MtuQZl}Rr9=|y|LV+rlIExHkL8Nw zJh$CVrp#OXVyn*T->J;EUXZ+?o;UfXd`kJ0-NgW@7e!_c{%wiSVS`VW^G8KDZc(Ut zDP$pFDfd`X0-@@e-1<{ACR&UN=KMFfRXaK7dX8zXD_a40NlCbu0GC>I!a_R9F5M+_ zKhmtdf-kq8tY18QHO!WlQJ6|cQPo9KY8Z5RHPW6!{kAz{ERj#43caHf(l968kQ-eF&i=jL@1W<_ z#7(64!dg1Ol)1QFD#92S7uOq}n%l5cKzj^!X^Ry70Ky9b?Z3&)Hwnp~ejS1$OYeKH z6>Ln5%p)=GNmktu&o;r?+39-JNM~-NxU{$g9Ngr%Yyv$mhG)8?AmNQ~rFY@Z?B$-< z{rDvCB}r|8c`@zTA7+$(aD2qE{W$TG*_GT^aK2o%!|^e_)2kyJjbKxnLlY@1JR0rQ zx*L8K4}2e)v&J2wwGVbe+N-d4|1G;1N$ySkZsOp)3OuX+=}*eGV~*rB%Z%Y8C_z}U zW|qBCHy5e=KA3}=z+hAd0>69SSNG^D)n^}u4-XElWLC<>xLNuyBNH(YXVo2Mbwt|E z;S3?#7{btynd~~G=w13r=?DRyh30=|j0G+UpD{TIf(@3|rpRG;>u+vnKS>zLsR_Fy z)RTaRsQ*@ER0y&PN1pxKZipB!FJqeu|DHN@g88ptNd0Fs)27U) z0;}BqU!SvWlphwpb&PdUj>-^tZJ+J$zFjw_2(TcJ-YH5rnptdF$)Gw&*?3#(h4>ri zVY_Mx>7;sAbzzS@E#y)!F6#eD#lhXNq@R)qYBavdew&X~@y*&S@x}k6tvJ^&nT7d7 zG-2VOC0kQ3@!Yr`5JU-I=FmgZ6sCp6xECt(Oj7p|t#z8f^_(%$8Xu8K>C?@LkbXpO z<-m1nzFxsA0EgmC1lWyc;H;r zY|w`PnpoVbnHE!NC%jp+kS(cSr^@Ufk_>@E7)p*g%W~4ZA+^lEvin7#W}+zVqU1Lb zfX;u(e{yDR;P40I5!=~J!yRDW=0C&K>2ZsWf_@jkqS8jLCf%vnBkq-E6>b-Pmz%f* zm95-~*WD2L4CG%+vt;{OtGQRAEQ%Fk_&e_;Rb4j$*OW!vSsQYb6186?%heXtGZ(=)S|{R@OW)@v(tL-ZAUma~5&@44$qGao(aI89ryA5kZv!8K z2jKjG){d6OtK3$hhr==hPYN zbLfxH%CS?L>9~qiibD4Kq~!JWawsm+>Oo_*z32&6Qr+sH@9}vZ9f0Syt6?F_bj2Ui}Lq090X)nq}~i z6nk&Bc>|g&K-6}& zni)kfHAU(qKFZaD7t1zSdwgy8mIS^qnU_b?0?q(Cv#Ede)}dh$bTSlQ`$n?0`xl`6 zeRGSUZg3mRW56CO&S*}^^Ox)-!-Hb_$4Z)&NU($vbQH3EF{*2ajPy)~q_nc(GWv(R zrcgKnV4rEYv1)KM{Hqx6Y(`N=%0pez{j0o(%N#3OWrBp5Ze0ByfF+{FjTxC-;pKrc zvw{~syqaX~I%*nV(UBl;P%?>CBS$o#^ie&MMcxhP*M_XACKc{>q+7o7&?owSU`@tv zJdCqmoa^I&7)AM*>w2tCYxGn@meHiimHq>5?s~qtcr&^{(#V7t!UH5+P5o4J#p*50{pjdY5bW zn3BTG1QaexFWrw|aK9=c`btpE3(<}aM#y;lcJ;Gr3%CZhvRGR z($h5Kj{|_{M^IsA(g#%Jn|=3ecz>2#(!rJYAuyKuSKhOT_xE27(pp0u)(kx?PUD+rJpwM5GO%(y3XtJZeZYR zAWZRkkU)+kbKDrM7MCerjPm4;oxQ&V^lXwGhn<>YR!-(CW0Bnqn2i|*p6wI&Ctm86 zb#a9d(o64o0{BWN7wF0Hxs!n8W4TeaNo_z19irFk3Wg|ke7q^7>RTN+Y|f?Qi=r3% zfSZbL600u_P67^1N5woG5&AV(AguaJCwVN zy=O`D`wzfJ#^l9|^)z)sxDk<-l%4{at^McU!l+*n=?Sz9$m5zRv$74$e zhMI!d=q#~uOM4CAsHh|k(tA_noXm^6oZQW@*x1<6=+~C@R7$f6RE+}MvZy@DOe1~0 z6!LF9|2|3S1zV*}yM<4%mRgz~KK@ge2|>TiA4pZzMwt^VawA3fNMkLA8z|ZnoG2TDK`Ss`{0TVnE#+kNV#o%%@a-E0lm!UHV zITd@i@L@YR}q-ehg-de51o_vD6 zK;a#dbTWw-t3||gYvxzWI4YBL)46+Q=R}Lw8Jc`*L>OalWHx-|OZK;3-lJnCF3)Y~ z$bcog|Ex&FxofCp$m3w7Kt^ zLpJ|{Lwd_Y7RR&SLf(Ef{>wTa)Yr(Ce0{GE_yO5MKtLuZjr|#xmW0z_e?(j=7V6c? zc3wav@080p`aHh^WR@zaiDFjGjKXM0mS!$4LHO#tdccb@UO{dM6kf}|td8P64ADc~ zwm-CCof@scs&TGU>*cMN;=3AR+mRROPr`H*$=^y)Rgd2-*Z?eqj!ho=OU@y)92-1A zNMZ2F$8@OlEw#${f67!;$|AvOJpJ;GBkY*$# zXT5sD-|R;z&Y}cHX;^$eJR0wPzS#J8qv=GhTCQ&|J2x^FvT3K1tIDZPHHA<-V=o`v zxE?3B8e%bz!Fp!A0rlzFAg+$Crx|-Wgs(oznBk~%1@9hD<&?C$aiBS|DWUsSvnaxV z^eG>-k<6*3;P2;X>!5H|9Zn<6f}u@zl0K$-dj1Je)RQWy6khiBw1leVEL09*3D^Q| zcOFeV+7=)PDoQrdK+xY(u4b&YlK-feT3g2AhW%z6!7OBno?cL=OzKU8%>|B{w7DRr z__*J%`!3ykG?e6V%vdUfnUus{FjJ7@vTZyx1O?*EHn(zfnB?w}r08odZU{{;BCB7s zOn&^>fJB6SnAUrc*V@<_^p^EKm(K167dEQ_e%J(*{5)2$;Jl&r_gmEFc1>C9ppMeI z8Mpk2&@)_UFnq_Hg|Khmi67vINMnt&(Z%%^l|X|5F~QUElGp!?XmnCv@1>-1xf$sY@XzCOKyZx3Frt-L)v91BGmMwK#9%|-Rf{w(^2>Q5e3h8nBtDyn;U z4~=7!QFIQwWmIF2c;nL*6%BY3k8t+nuqFxAVxIVw&H`r|%x{=Zty!GSCJ_0uwQ#NB zQkN>2R*o?Sf8{*d^pzu+-9Q(ygvQ|_$+1gfAvrQ>QTs5ih(D)LKdE`3` zp*>^_nIv<&KuFT#4FAmoJ+FTLmXMwros?IB<0lV-T$$k+LnPdd`nu1aA=xf&uH(Pl zx8%d&s_>>&20^Fc{!M-=YvF7bTYJ~n(Rr-vQ^K=;8RXix)4whjNG0uQTv610=P5sh zi>FV#XQ|F?Js`C<%kTqIPs=vpYJnFi@@J2j1;kE&PZzc492x1NHeP}Uz7)S!z9mKq zZ3aMsB!0g5@#!3gPex@rD;AyM{4t#4wVUFy$-V<9d+2P|ZZr^#)OfeDcWahOSqoQkZRbc$}h#2!= z$V+?YzvOKyU!tj|632C);ir*Y`*Uov#LRdDO(Vm_*<~QtXAyq>&(mMA$~;IGAKLI^ z^!n&%3Mz^Mc2;jz1_z% zOF#{kh?VPEyQw-Vn-hw5fX3j#v?*DHJLhvZL->mJbL;en+jnfiikCm)Iw6i{&ru8r z@9j6@=81DKqdN(+HxaH^#x9QfNhN%Gtp=6u%tt=9?Z1oh{xv2y9T5r>mt*fU&26pPr-o)epljv+X`(=oymoV^^6s`PQ9TWTmDgr+XK; zn({{8hNwRXF{=R-lp7uMSXMm&=}f42n|M90t9fx;Z)9Z2Y1zrii5XeR@d%=-l2wEW{WIxb2T>9aq;iufBLy;6V55t>_lwRfHqZi{L<9g z`0QX-Q(wjLd457Qg80yf>Nb(=GYWHSp}`DaV3N80#5g`PQ)FC6ao(Q=78W;iLrYE% zoc^~-3x#|h-h*#EMwQK7rnTWrHa4Y9;hgcNFxitS`eqGb1sFI{+-unb3P_qXf*9T3 zQgjdy{*jZPS4KDP2kXhj2jw|yp#dBzgSle!PMT|5LL(>?OcErX)ZEfxCO9qB%C)HCbF<`%PhM_63 z-xv?z50T2f^mYe{y8qf?E!cV6bCdE{ZV#~%!#ji3>a-rfM$8 z$h9-r)c!eS6FCYsSi<-IA|~~#X5JYqZXsV-@-1KB$D?lLnQd+D?3l;I3Is&gpt~#% zau{5DZ?THp75yfJ{^uq48(em>W6A@GMo)(b$bvJDTVoz?nFV^ z;e`v4HA==4NHT=g@WSBg#*iqmsT&yPrPSgTtx?y(@_;X2OLi8*7*J5#rb;^ zNcf+Y4s460_~1w59xp~gcr8RtlF5On z@g3PiJ?ZxPX6fNq=QW(ap10gR+G82AVY$rEQ1`|Y=D}1o5Gs~}KtXPi%V(NXb>DTT zjr0kB?I76j$_GEzezV&gC*jvN8rN%1JEc_ycMv%`esJp_8z#B#FMm=DHJ6uoxj=ph z$LQuJyIW#w!n%JstWZUYTqea;wwe4UmG~tyQ3gF?JgSX}%jE)H4kmQlw&4d;{N@1C zY}JM7*PpzE1w}tQpq5NQsJFXmadFYZjoA65%gnkld~Pd6|0Q7hsph}DO3C^gC_FR7 z&JWH6CofC{&CTrwb*^^?NpKVaMc3B9W)s`9si4*=KT+(7h61kH3j!{Y_hj@1<;7Wf zXo;v~JimqZ*q1it7g7O%??tl}WqFmJaA|@nRg{nqXwFcI9_O8VcI9JeG`UN#YqRh3;v_)1QjrX2cBNq!OzxIcPomF@fRPaQm)Z)RKRvYSr0Y zU;~Zrzf(ESvl(`qCvx8^lpdvbdAx3&Kt|RFj-!JE+bTYABR}uzTRHwDI1XDYRX@ML zJ^E6}M)jImF*z~LT4rm12@mi2-A2t{S=mEc9+tyVkXU}E=T0D%bqA#r9IjkWwDuM$ zEj!jTCM6T~(PiOHcwIM*;{5c(N>x*FTUlFEUTbA}fQ6ZdskeilpM$q!MRQS`0Dzlw zSUcT|Avm5!ilf8k{CWET(b+(hELKOd>t~*2@DD@bSXqXbS#J7fN9TPqf~>F*L$RAb z#a-d83+0Rd4hEk|Q1aKn{oUj9#(3XG-jV{#ws}GU`QNUXb1g6rd^#AZg?R+&+G`pb zIJntarx)iY_A7(mw*_%898{1nL=?kn;;r00EHyTpxdm9&5!fldp{QQLC=5?*pRBrSje1 z(WBRjcsyyyTMfD*fu`@$7u(a#CeYw}Pf8q`6oa1NubE>96Pmrkt;cCZ!0fx1L;BH@ zb5dR4?U}@ZLPFO5z1#3{h^K-Qu+abH=j{G~86Aa!>E8TLJq~ZjjAkehNIc#oC9SB+ zDnNS`21jDy>|;rZ2exom1Y0aI4u@TVoRkAaaK^O_PRd6WB2gkEA{Dx+%c?5N5vKy^ zcg~Xj{=}qrt!UBVeRjFw$V6#lr*;XSp&%K5gr<98_afVKJx|uA(Spg|%(+-rLI^Q0 zx2CUTOaBNw{{9Joi8_&lYtgk9du%g0E|+!JC=ylj5<83_4lcs`SO0Jo$$Uv#8vA0A zkHLC=f3MxfwU$H#o#Y=nnS0AA2nF-V_hUfv@c5OP9M7`8E`vS*$#Q-t5n-ZJ5Fp$? zoG;(soLL+HkkFD-`(otrO&a0v12=cQo2#3fTOHS2!Vb-sZ$1T|#34LH3=}{iDLS^% zkzuBOxtgs;IEJ~%66~24@Xrb6O1oX$_)LR!(N_mVFVh)kq>&!6r0Af;#Gqv4NBi3N z0P-o%RC@mf%Mb@m9ToMlKb?J+@tXg*cpkzgCnKHJ@%Of{HIlGRy1Oze6~MEm-ijF_ zcDX)Tvu@#i%vSfGJBr_HKu^KRj@9pp6_9H0&%V1c9_(83b*N*e9ypwKooXrTm!&DOpT@T^craOxD_ z;f}Cf3H_!`UCd#D_TD3)?usIh;))|qhStA%NQ&zqb-fX?HvAE0(Ns6(3AKi(a2&Sx zmoIF@w`|96vx<^Oj7tJybyh2C_g9-pp4+nR#XJDv9gZ;D6|c||JPbwlbAQlF1%FUT3TEy zyYrRfFT5P`aHB)uOH0WIQTzuX5f*NTrI3G zUnKwG?C&T;Sp&HyTd5v&{UeBo}zcKoaG%8a2u3Ka|sn8464+`=# z$M;?c437nZVkw`DF>V^RLWTZ2Wjng>lUW5H?tZDDp$#=5UblJ9T+pg-K`eI@(=3@TAoSTfy zygLyYC->fKtp{eK%t4n37Jq$MZF+l9B?i($!vnGR?*I^eFM)j>{Y-ot`iM_ON^wZ{^|P556>`r@2S^DcNyC@g6oxd> zu?j|SQUi1(6x99P-&}gvRW~>|wQwnk!hfkRGCgjJtc38GNNh3npVjGdJhbV%^(>v5+drU zf63kL@o*U63-%gi5nyc4KZndBSy-@(s?g@pi2^IL`<{>cD}0pHBtsoUCy!fPAJFFZ z>Mmp+{$7Y(1vU8L6QhBIAC-H~VVYy*ox!5;-_+tufuwrJduXUT#-y893+)GD;^3S= zpKRW#B-reRj#lre&9c`5@8A;TCFW>Aqs}_FcSBbTBRBi+%L$vE`5uOGrx%}0iqkH| z-P5UF<4VA_>Ki}P;XjcaIw*Z)ST|-rdT{wD&`tsMbgY{qc@NEtmmOW%)!yv2cD#74 zQHE|K*Ha8^rjR}s6N>!AiXZDnW7S2~1oha1lnRR`pH)R2urf6V9lq^t7nA3R99*aB zMJSquR}E6ew#!>!V7!F5bZA5roJ%{GcKTi!ohX}xLfl8KEm~frn&@%qH-*7mm((PL zKxhE zW%MG2&+^{`3`r+8muU1&p&gZn>3flXRPP=V<05tn8_wH@(H!%C+SxO+v%UGbKXZ0_ z0K;q?qC30V5ol-rCyktvxbNEb-vdb;;Mj4;-~-C6zzzo_U=dL`TUpaL&BT)YDV=z{ zPO--=miE7!h@>Fi`c`s}h=D4`-uRBj7)Qs)XsGEas2C>}YsxNgCR|WWZczF2uw;-8}oa~+dl$Vx~@=y)TLI*>ATX#{eWt?+zvg~=i zgCplx-P1^T>=qCjGCe&zHZCC(bJy)17f`-U+YlJ=xrE6|&e9Z{-CW_JBB%dO$^}g^ zMz7cn!k&yJt5G||#LxZ>5CJx3!wAS{9z&6wj<;k|2 zxckk!?Edc~`=6WeB_CCO^f_d}ozOp@&zHQQq@TpP;o}wno+3<6PEN2o$xviV$CI6N z$&cEp5$H{&YxhD5IO0LbAikVbcFE$W(~I81(Ssa?-TpH?82d_57Ma6WBf&EKP zv6z52shK$1o8u1RK(U%f zlq`eQ8NSXM5HPN9&Gm59&PWkyZ@TV3-}2tRv5%7{+kb5IRDQ1jC5BBbFe*t~00vMTvudb}CXFb6kNfs~UiKFq+Ey}Xe$66-C zQbHJiDQj>cBsMS^9}VP>1{o5T4;*-7_q!q55@mtdEeP3pJ2Ko36+7v4B|q3i#U;8L zyZkeluug!5A455f8U|fHO8;#Aiz8SRPA5B>i_LGyk{jx zx5X9@4Fmh|2cf~4HG9L1{I}`WY>b^zj#=h~rNsOP7>ws9wGoE`Q2-HxhL4evXot47 z%qLn8r>dkNh_ARbpfCGnU>>7!T1kC#VV#4OosFXxOn&x+{0(GpyREH_qklg$8z1Ki zqEk04GYZ-Nc6uq)l8GLoQSTiwWyj3K1_A^A=CAMwQQ24B^#B7Y>Co)-h+tTRFPjdI zN$|1B`oLeVfHTyjL@m|fxsz>+UBR&;VNpy*(GRZ>K9#{!=in()%Y>iF1$}V3L#%L; z=~nV(`HN7CobVvn+2ft#zf&2Bw}u5hOmp$|EqY(l6BSPPc;T69(-U;0qzo;fjjw+` z9z>@Wc77%(Tf5u2xw+SXf9R0nAKcj0(TyraAzO6IVwm^)FOV?<`U`NzL~@S)Q&;Ps z;QXwb@~El5HRhLCz--#Wy(f%qhoCOm{An|vsfN;|az7A9{-}Jmv>i(z}|EETLIv+c^2Bv8SP-r3p4K_j-D`y|SS{?`4F#-Vg2O zbw^huHWe3^G--aMdG-MIaU}yi>bhD$3EGlV6xD4Cj}KJ1_}~D=m^hd}M4XIdM973t z!)oY{wDCVQZnE^yDqzg&fQP4#gY*3hINe_ChoYQjus+kpwBzE)yw&(M!GiOAb)Lp= z6yzaaY;pFxzgJUFswJLhj;DQ5C^aI#V{BeUj#R`~>3Ny5Q*Lk&$39Qf)rDMD|IMAf zEnR&*Tm%>x+Sr)bxp_I^i*EA9&XPFa0&9VA@0v#Ag0BxR!&a$qtkSZhxqpN z@=r?`rJ;T;iz=w5#G-3N=ryDC%4;A@coX0K4}c3PxUt zt9$fdDq#}LDc9GR*B=d5V09PR)9gJLIs!g0Jv+p&tJ&h?`Ly3DiW(x&)^GcY!Ex*% zYiWSP%kqfM?9KdF!M*F5=MzY4!uKh^_5-#r?0k(yz9zr0K#_iW2<)HeSU$i0G95=p zNl8mhNyWhOWHeK`Xw+Zs%02uPc<8yVYs9E+aFUglI9gl$?e8&>@z7mee}2m2vHI6O z-!;9wt2&XE0;o$widzj{r#PX(x&nvC8PG;6%TUO7zi+syL-_)I(8->G9JrEZJ+2yAO#Kb`k>l@T2pyBJr{7Pxia5@5O z?MiCi9;52Z%LRNL1%Wb;E6ifmErG%A8ZS2w7w>O5&xwUldIcV3bP3eI1orT%M&d15 zRYSd_*Wvz?1yK(>|CAW&ZRK4WYEgodGWpct!*S1_EO<2y4_4vZaCSb+mMpy21rO zn|?4b%0*vSPe)*TM8Mrn{6tD~+C?MZog0|+ok+VSzk7mdOb?P3x7c}mKfgb2&Q}92 zrwZ1#G;^+OsAr|1-oL~R@V8*z7BkCg{t&LNrj?0f|HegyqA8_+qb_QmSCLHlqBbvZ zmKy`yVCHRd2CMofDD>vz`v(u$8~x$u`9fP&D`+_cWO&%`&Jf5tL&y_J)hpDN+8CPJ znwpwgzJWZPSyBf1N`~Ii$+WGBqCc7WlMoXV6MlVq^|bNMFDgPDB-TC3p!riT6}M6j zqv3X`5!EYoM~E{N-eRYzuWSi)_xL$F-+#kJmOqo#C#f1_r6PTRH)_mEM>}(=;8+w7 zMENv=*sIiYYu98PaDR3-&)CVjqv71vmvlXZ&lF-gdNS132ISn-&cwNXztVJ1lTr~l zM`@#VFb-b}v)DkMzSbHc%{xVoRh(sHXa%x?S@MoOP)&*JFykndKZEteny4B<(lV3t zQ*mKoVL_LSeEapVE$ZZ=y+bc7Mix@kCBoF|e}G!WMpNN*Im5?F(SXT46*`U4B442j zYm1f|a*%>uEniZ@G$|W?gTl~mEJ{Z1-Rr1DUP(vL--Qe$KZI0XRyB^z{e-3 zLr^c*Ie=r@LDy#eXT){~8q$3n(|>-v&4MHn!2i|7yQ7tT?m#Vv_^)6*i21~0N9=gl zH++y1=;Ikd@IB(kPA*K&4^MY(XZMpu0AD~jH3>v>_ZJ`GgxgRgI1dx_#kLURfr49q zg2@D*6^v0r?y0F~_N;TnD2@5yXX7l-vo$w>J8T>r%)INnxml*PQg3{|&ObH2Eq%#v z438VDAcoRUyypsOseqfFC%7XWF+r39O4NEO5M)UWEgjv}JKpll*;0269 zU$@AHF0=C+ckNx27@%DE6T7#U1-kMHU&e)fvG?6H>RxJ$wLl6y9d-nn!3L8=Kc4*N z9ur4vb8lx~)L`m~(LlViSS-CRXtBNH^1G#jvR3)IT1-4Fd~9rNd@Q_>ulJa9th-l` z4QxSI*F}u4^dBgjm@)cl^8;kMkmfTmR(f!h2JXWv`;(mhnRSqW1mOTe7l#H48Sug> zu}^YW-aAQz;~!Su1!`^vyBxlrw>NMw2od$H@4w|OHi)f_RR_EB{1+*0Hy@vwsWvy74SyB>t$FQv8fbnX@&pWp6*FM3a=*Zuh$mpbR~Cjq zJaIKzd>+2)3$)IDC%|b2jF>g03*1lLm=N$@+pY!T`8k<^eDO{UNhOo7Xb&lL2|gf1 zdz~#?<@)nF48ZHvVh%W2Vj|dS za$Vxm>FM3?PEh!|+4@v>w+-nw;`9Ld_1;PXIvX-*&En7w&)hRSX~+e4xqm#l|B8MSRb3LvNX(($KcK6J8Bt`Hs=R*o{#_Mbw5g= z=k;MZ0wUq_qvl;k!@;-JZ(XE%m4E$h(1oG9>k&=*>ZRx7A!gPgpyPh&mWWD^)q$O~ z^sW=b?{yi&fW>pXJ$2ebw!>*Y3($!`;CH#Lk0kVoc;@ji_P5tQ1ex}2yj0|6r@h;6 zMW#H!{-UN+qi=rx8}je-2hQj&*LtVJ?IEN`41u(#;k;Zrf_KM9suj;n``1fE+tuf; z)v3N_Ci62-eW}N3@QYc!8DgiMqDPRPQH9P{!0te&!@u<>2jBYx1%!*vUK9Pvv>il! z#?!XCr}wilXpNaaW`EzVs;9fGTeMrM=Pj#jRN5G}#f#_F!osKh8|PEol{^%y&xKqa zfPV1_as;LW6*r`KM%t$)L`M;#9!m($vSF*SdwU2~7^T<-=2fdjNe2PjuB5+G1+9iN zEOLOB-E&~0vH6*4&p!f*IEot*a{OB=M&euTH1llD+z%L`O~Vf?`Sli@7Yya?se=GC zr!gOC)`{|{r!dNd;)J*3;Ypy6wlbOky_IR-y72t`NJ8Zvw0Ih28jTopO}O^%o}aKnS8s5>P^McFF~N6f_UxT z?lB1Wjro9LEJ#WS-^=$ePB`B@0U*OH`ItRkwoOFJI(P?!^|&-xI=89n3IruyY!6a*Eb(5`d>dPdZ<>$! z&^SMdgT}V7NDm2Alow{8P$MAUM)LHkEds{-RWWzf;WX$bd}mizlKr?>O&@G{)q~Vq z?}y;I>9#?L6*x4Nz^dQ2of4Ko2a2B)v;)G_15YAH$QG?Y$fjr<+;or8b}5fNI^Kb1 z6WwskV{csoflY1(Ee1Nk=PTPpJxB5ju@O_Q7efO*!tvKP zC{CO{{FP;&4l>Bb%G1rBH$}`@i>OMFagS|ANS~$3o7b0%1}u>lX?dv{h%`XAJvAo+U(9FD+0l+vrP^OneJ%LHkY={{fQ;^h)W$HloyqieVk4YjwT%2%D zLrrNbgyM2M3HTSsGIq{4?)84l_#K`EbiW5~A7L|n*x8J##?D9tCgU(#*ytj@2Hslo z7ChIvRBe8!=5nb1e_7J$)B1tzmyEF1uUSLA&HXvaMJRr$Ss zdXm1RMbc+`GhdAd834$_7F*P~E>(Q5jAT6qObJe)iif!t28RUVu^yZqXSW}9huC9j zxwZakHtRj`o^}!EOzhu5A`r*moti)9szG=i$DOH8!?y-X54Xm?>lHSGAeJzL_jT~J z-^Ngjj?#M-j_UMEJu+`Ph=l$Sn!QX*toHEAsGUZyiEv%=CFX~CaXg+2v0cAJ7%Vua z1A@`XmfTgwwbOT@dtAS_Z^uB30JrCqQt9z!)FAKpsavPzm+f7szLLRIPjfHJv!f25 zx4w80Wbrw8>>$3U6_$Vzlu}u19a1V8iS5&v{y)QL40ykCu>tOFY3zkg$0O)^fQ53 zyp@P|4`$C8j_jd?Rfslmpcj!aj3GuP6g4JpnP7_3I5dkyd>{oUY)@1#6rXC4?TO{D z^Fsn|DDnMI<3c;c!Gt^(7czq|O>bU=e147v@R)xWVSF6?zE}Wuux)e;4T3+kjQn0m zIbVfCWN`-0+BgQ@@}8&ftNqd?GByL+|Q_SwEU@FvFqX z2;b7Y;MV$5nSfvDf|`1vc3Ay_Y^k4wZCX5cC)c^hHkrsW z>tNPtCwNs+pCYYdq_N(5?v0X^B<|!zWBWL!kR+ev4y!BSG0U^B3ZGM3{adt=|NUkR z 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%0DV*Ma%TA2CGBiHhK>DA{)5xk`@J8V}D
    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 M!yr9HnsiE?{t@rBsjV5On- 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

    kbTd5-XV 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

    =9(is5^ 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

    1Knk9Quo(`)uI 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

    bd|KFEeax#zs}s;OokY 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®=8%O1n;sDGO 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 z -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 z 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 z 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 z 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�fpJ;I}y8FE=M+C4Pu|)l;2QRMEPMNW!CH>huzb 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
  • m;{@8k+3{@dQ3q4|T$AD{OpnhG-unx_uVc83a{@g0WqpkFq0))# zSXi6ut4N6o^7Df8B~Vxg#eFVzMhfis>qu&?d7sI-1O3DsFTa0zzd72J6==?W!%^AZ_2-mg33Jso|cvyF;n+Q1k_Betu2i8!1OHw zSLP(cejCM?wD8oy<{GwmQyByeNNKVrPj zg%`w-2`^;xG9)@KF+IPsvGeut)WY)e{8(2-;$u0qto4|iB}1c?racCSqK{G=Cy(IJ zz!?J$2J(-S<)N0EnwB?)(wm157Z3($mbj|n)GCl>cj?|>MC>QHP4Mo|xrH#GA z*vT^>c3BJeb1U6zBGB^-wQMO3Sta0-QPl)(Q{V^-RI`Ejq}Xtq z-Dysg8O%~|>E(>wf|GKxB5b)S1YY*wYX%k%tet*E!X_jpz(zbCtB$rN%eCdN*}L3s z^2U>OLu3_&cPQOJC#R#M=h1$d);xW1`Tgs~>E8O{%vgU*O>t(dpWQXA7AYFa_~8!- z-)0lG4%=B=(>m7S@u*pO_;@)O$+6+K2CLE{gF_-ggbhmj;h?|I@9|AlHnio&tRST- zWA(I(SPpgr-_bN)+}LGoMgb6*gS{WtaKsfjS*565d`tSMVqUim(H^ysz>T7^&2 z)Y<%#CAL~Z!_bnRsjUknG!*!cYyCw5a_irP*XX6y6?t%`;`FaMWG&+GXxwo1xO>Ml zB)fg#3=snx3mxhE$@*k}Q*l!8eM4TUqh0EikOI$1oODsFzS7J2CHSdJ=~4#<~00X8l17WWR8U^ zC?xbOY^;p5;8>KNmXa77`EqN#B{$Sg0Btw}1(Se`f(YesZf0trGMGh4c7gMDWMT90 z*7=9s+1|2ny>A3Y=z4x}DRDv0igc*o(V0}7gFt4Lla`bU4BiO>bTWg53U{*f`c-!1 zBV7)pdbwn>%p-D9Z7cg524Z-1i+mr{BN|rV2^o0Bq@~3LSV&R!`?9^&X}(Xj*H;%t znV`IQjuC~`DxNrnfQ7tP;3kBJfKEi@6Q+|^7#9?q+q!s(f`x~Vi-m!K1$wN|5H9xT z`d{TlJ~fkMBtYYn)--pxWuY!D#6}7~9KKtbjwS_S?5eK8uCn-tqO)}&OwaQ=#-@hb zOX9p8tsQ;h3LE=|M+Q0?8`_6AF2N}kIttRyv$Z$1ss7fYI0H`JYmsXtV#coCK_S6D zPKpHiq5&j#vIb8vDA|Q1fcUIrsQX>X4h$ovp&wf@c#VB?-y9f z6a3OiPnhg|nM@R48wQW&ZLbhNTdobI?nRa8mbLFFs0imPuWJi)3Tu0&w@yC1-&-6X znOHvjf(Y6|J|2M6pNhoi+I0H~=+m;V5IMB&_=Lr!q@~7(K2XI=R4ZWjDxLg-L&G5` zBFxJ~g1p%rr447VrC)!FL(L&9uVZ!R{!=gCfZ(uDe|H_`4<#ykeJ;bqx`~Upps{#$ z6trn|wt%CKhL(=r{=V+^hKl@@2w!(gO&Ku}2}MuPbXihek)Isws?LEmpF}0j6wx@f zy+0mP!!j@IT{86rn~au@k^uE$b7p*M1riwr>D#-F<(1vDFF)bFoo$SDRHTL6ktTR^ z)A_CUC=S2An|~B&z{<+P}yZn)K)w(V;8TW zh+5N$NDsNI!G*gV$CAY3KhOHC6<;f;WaI-TB^$qxAjrt^ zP~k2={{ZKZ*gyl%_cu2WK3snO_-=Eut1Q9Gh!eh2G>|ZPgGkia%_lTADGhWDq{M}Q z0^^3r){JCe<b-2-c zEkRWDwAKbq~x3wAXYXC^15;S^KSx3F_?u(L4IQj(RFlu_2RarezEYv_JE zIX%{2pBMeah#zaNqVZ zZp;icyqeE&=02OnH~Un1Z&E(T=is4@sh} zA{TWP+rZrJEd*RL8V1l4z|6`eB%@{X0Mu_<`p4$iwzpQsJImr8Yq8_gsXR@tdAkFT zOT%?dN!#eUvA(*T2p0nd(bX9~5*#=-oE#aQTv%OOngSoq2)@DdJ~&}Da+yF-$Ki>8 zNJyaXa}Ng-RZ(Vwi|#;_G~ID}i?HIJ#pBCwpN|%LibISDa{>j1sWm+#GRvF$MrW2c zK)|v#KhjZ|5$d8q+=lwSpTX#9aCB;JVOp4nGJcn7m_4zEg)BjdUM!`3Y+29j!FM!J z=9V{c^^eVN9hh3#K0f>Ses{LJFyfy1t-$<&Jw$vuZV8oNt7T;b9bhtm-gz{{?;rM- z#`;?8>zmqpdb?U{OS0m8tpyP>W?#n~P)Qp*J@)bSd2-uOhMn;9aE=o?dN@y54?MG` zXHD`DQEb#XyW!KwEBR+vz%lIZ*2>iD#=_V~%6NHR+J}7BF9SkC zgFOwnQD5=bk;l)Xky4Ukp7kfH&qW2`T#s&8MkMD`wR;(nQT}>rb^rb44|urC!6HwO>RnoJtzw3U_!^OeUKvhbBm4+A_<>%Sf%s_KRUU~}X=TA$D4fB6`$5@i) zQz8A1`5>-&F&Se{z^g_zUj?Y69a>`#dHr5m-1>6upt7e?g z@5U6m{v<55=vBwS_}tR!+S=0ea92%Mr~}{eb(UB}VT%V(Je@Qdb|ZK1ICmp4tJ-;b zJ$Ak>%Y-(QDqqlta=+$~kWa@oD6yzlK+%R9cdo6yj+lh%*rkuR|U?k0)sI zG%~BYYkueKJ0dD3HZJgQsA!n@Q~-N@Ye)A-&tANE^1#L3LSIFapM{zT3+Xd(d$m~+ zkIkeQ(HFDSio|P4L=Eq}3`?t?i-mL9RTc`(7SR(BX`_K{bvZpZG01ong&;nJ|m!F;elR9a?miw z$SEwRWqQ;3-lM0_o_M;0Vz{1)lpqNBa8SM;%=J~L`k8Tk%f?4BY)4_0)i<-W1hq>o zO)VXLBO_4h=D?YJ_ET|=!N@x{x2pB^==9v&RU1QTMwHJjRTiYKM;jO)Zlv`cppbz6 zel4?G_q_wdV-i!+(vsuCeH>MpK4+q6>Q|p)l2MUiZAazvE%D!tDQO*=T|YQ||88gD zO+!wo9q&a{)o}PWwesDNw91ar&C~D57`Q}apzVqo9R5hFf)nC9?)M*nZfZwB^iY=< zhvHQnukdFIrB5Upl-A}4}3y$>=kdToPz8){Wu8hAY4j&nWSB$`G@*+C7u5W7R z0~`t#J}DJF%U@pT=zRC?om)37jI@=dMXvZBn24wI?KyrbC;dSqi61i(>D2-3}ri z85K1p8R(k9#sVEUpwXR?8Fc3nqo4G~@mq#ni)~xK_;xX0rl#ijUc@8u)#%PwBn;5L ziG_~%Y3prmg1g|61B>M>h4S6t)Y6tWb9?7NegZNY(5@{arF2z&aIm)n9Y&f;QbJtJ zfG2{50{?z(urkJmA~Qb}$2hF)&DJ+G(4h+2R;VdS39wOq94`&N$_%t%T~vCRPi7fa zIlT252_2M(Q6Ymn+gp+NOqHldZh#?s35|kP6b_J%3rU3Ld3v@dP6XfKCQhj2{R?HU56{j5WC?QpI_TG zvbgu*2k5RMrDoz3xF)NjZD?j`ZDno@`ZR?&>4DLKKi>!OUPFHLU6DQ6t}YI@)Ru({ zG$LBiTQ4pJdj7@10?`s)pi>e;o|Bi|Y8XZv)z8tR()o1t{(T?d& z@|KVNCMQd-l$z>mw z-#&Hl6&V8uA0H3o$h#voagOX`ObLnb{MJ6PIbe%TEbqSmiin0oObOaCMWhtfbqov* z^|X|v1lg$ZQ7?Cxpp=q^j=lkCMpRV*Oeh)x zq=UgiU&&Q;zB8qO;@6uO;D`qc1NkS2?wWH$Y&dowFjMB9lkiEasws(cQK9X&#aa;L zxAyqG{z1xqP1VHdWmr<-tM0eca|@$g+4p`7n9Z}81!mN}S$X#z2^BO9A;Z64?Jo^8 zqij5%D?}Et@r%o?1aOA}zdsHiF{ND6b(6QNzM4pgTHyMUl> zyVR!cy4?u1VQ|swT?9NTHvVhU^5C#k9yDq~ZD2H{*a-V0gRkDx4Z zakf3zl74-GTW^d?$19<Gs0NyONl-bgeoy-^utT zRTSj}nQ%^;{Af)`;B_L(hBm*TfDSNfkW150krJT)+kK|ItN+{ z*A~b6YI8#DIJa$A&F9FJ90THV${RZeh9_ngR+iVd4&Hx;N5Q}ar+rYnFb69jMqwfx zO}7_B-qT=48jN7$udwez7q;& zHgNJSEeqIvd@NMhUnWZIk9#7v-QtKWvL&H_9@t z{Yocm`5+)HHX$h~Atubv%|rs5`aLPS@As^Xj!XnUT?$xCm*9ewC_%R*OPh=~wkxglI})+e6v zS;6pobP5h}byJ7C58UrqDRIG%r7j0gTjf?A;2Z6ssP-eifX7o zuni(&fQTzUD>){_+r?BtfRT)zL)9a)X8J2Wvxw^TTb|y55wXdcdBx?`SELfC!2uA5 zAU+Cs!rfX+l8Xul;obVwP=9ArZE;%Eb2Cw*wIUlNf8SPanek}07BaiU?h_mqDSi7# zK0#2kBWO(bdT__uKv|TP1Zk@!#^9#_&aPre%_=I5C@3$0R@FeSyK2n)FYtBNId6vN zH1v%EqQ&y!{M6V`UtI;@;6Sw8NWdct0L&{t|Eu=pxcJ1Rl+?`plBR)$4=5xoqH5;O z&jTY9GYcvJBXneXX>A)~X@H8x$??JN#?s8&?uOEg7=L$jC4PE5q)(d*6NB9?)di_x zPb{RU5ohv4?WD!{m2dgw_3olk3#eFt+&w%tAu%~IAvQ8B(C5irTSG-5(1$Tw6Q+Y~ z(=enQ+Yd*5&Cu;-AYht#no44|a9t1kA?6-g(ENIOX%#Rh=EjG5TIK3 z6$3nLE)iLiyFO9rrA@DAc0M6tlhCs9ODO4B+;3E}7EyREr5treNkes0&5g&0XO5kBq$v)5Ff9T(tnU7CduZfB+`PQJoJ^1jMS^VE?WT#k6fXlY`sH$a=40kuU zLdOA|RKQ4rSXRHd3uq`v@E6A$6J6EdyP;9>DMih1S1(Wrsag5O<<<0zp-A+$6Bu{h zJ)il7L?xu<6qEph8q~WEHaaMab@xD{tE08CwxT#EH9jKP_lc{$nT~=eCk+Aer}g2M ziY$;NKYMV`-R;3sFaMCpIEejNQBwzYKFG`f{-7VetnyW3`|GiV9blEwv9GvbfPg?s zNy7xXcBK_H^h_*)B!Ht~V+QU+kQU_wd`*bY1NtS<;NG`Z=cmL1vPV(lz}(?abif~C z=M@r@l9dOMkeV7`i~`E2k*Tet`(r>D1t`V*;w1oP3q)-JR{(%Z5x@=%1@{SfINCr2 zBT%d$1NqL*+)z8Txd3q_CN?$}5HixUatn$}LBoDEgh5MN&%iL)O7A`+fcTLL#J^%P ziYgk~Iy$;~hQ_8=z;3?q1zqy7iOHZ`keZYb3pmS9Tx506$wB0XG3S z***-6NiT032C4i{WZ;+}`Vr_-hnOTRY@9s&f}#>K3J@Ps-w3c`tpMZWraeSCwZ92? zE8va-J#|GXDA6GY#P)CR)+Qj1IG{#`1p>;xKNt{`6e975MMOqHS3;!blvFqNPi?*j zWHD+M-fQye`erw7yWD^B40r=TTLdiK;LxbJq_ph(;_^x`TWFyQz($D(eCcLqtS-gR zLWzs?Vfl4^UhEa&m`+s7?r}h5G9UqhhA%*9r~``rc5-p^@a*C{JV@S9Ae!P8{RCuP zfOYZ>Ft5(u9RhbdH!;-HTvMD87yR7ONRFEl^J2ECG(F14ALw~;L;uvq{>jI$Kd;y+ z_{0>9+#<5N4j{-V2A3`Tz#?Pjmr^yfzU>AU_lj*537C|z;Bty&Xt4@QAf`nFU{SoP zDKE;+NQ?^hdEj8I0@|~2;C6;zrTRN-@!atQdKp(U_6`M5L}-~903jTrF{7gq(y$3i zs~K85xk1Cx8Y*M4Q{f?fSOLjasH+O?`vQ?~#{uIwf~H<^g)O7YM}TI61u{KstXwV)eq9UwH2UN`bBx0Ac49sj8yCC9HwDe9WX`ehs#G~dAk=F**f(Ori1AuN` zF-a4zF1*Of2DD5_*TAT#CNpc<`G8mGO_1Suod2*|?JyaCp4x zkMOyKDdC5c)kI@Z6}^*6J0`Y2e7yYn9S+on&;hNEkqcbuU}Ssuk#}HNbYf~IAe%zy zfC34Cr?#pL;VUv^;cI_*x$V4@z~2Zuy9}>nV4DH*cH(J3#(gzpI!qzSWulq1d{-#AAp<$ zOanLo2ZTgoBG77ug9(@vUr(WX5o$nxu$d@UkGb5(*eyy0=a7u@)}e*{OL!DaD8i>_ zX5-=$x+W#3tgd5t-SUQmlMA31zJQ3&eqeV%%x9?0J2W&bEId2{jBqd@GPbWb;O*I5 z*Hyg6O;3XH4dn2tzBUph8;KM(eRSjO5YH82TLZ;ZGq7-c5geCU{0bc6?w-S=ViS;2 zGq6GYLBL>>S5Qz?R8mq_RJdZ3iV6b86B8{NAhCQtT<8Ps_O_yEg+H^SF8OYT<#)_~ zK!I)&5m(YNwg5ro!{^>t7>5F82Y?wO6@md+<-acG0Ab6o3qbCBxVbnx-m^^D=hTX zWP~_qU}1L_$9fw}Gh+kpTPSc6p7+Ko_SYFBXouI%{{-Eiyb>w~Wi^fMASjpxZuuP` zvH@+!z{bTV1lK44CL!Rzfm%CgRb*phVP;~Wrvtn=G9o;zD+cY}(r9;GaayFWvlbWD zYyu~9m086ZrIfW-bWUyW)W-Xt;1UW@)&NQ)t)QX_oQRo)m9_1Sn+}k^0>f(!*i_)= z4^1^?c^L^&0UmZHT1papY*4g-?&;`juF6k|^1pAbE<}rQ+?Vc19(`HG;+)*F0#Cpw ztZaPqo_A1WLV7;H^&cCuzZo(zG7=pffS>c1(e($%UtZMF(IzAFmrwm;qWz=4`t1~C z!5pO9|7sF{UbqeA`O-~Fd`_*cx~FVX|D`LFSNh5DVp|8M8;yO!ZMdeimAYA`P;?#E197`fZSJt z|7OGfpQz7o=la)kxcUnc=s#_X->3;BbbGth-xK?P$?W{kOY?Uo@gM&aG@ZYN__vSz z&mZ{r{o?OT?cXO1?8`6&{{0AC#j$@L|9)})I|=?u&cBlTZ~yr3XCnW9JJJ6^)_?f_ z{*%;KzyH6Q!9OhA@BZQMp22_hh5!0Rzgwo?`@laihkxvqf9FO2*n|I)U;X*(f8=F< zHG@C$qJP`7|1pDqn+SjG!~cq9{6i7|0sheQS9a}>zTuyL{aMB!4eS1veA^X8i6~ z{_XDnXJ7GOKlh(%O`tUJYy53a{a?J}kCepzNG|c}pf300xb}Bgx+}9lfv+f%R z=gi8+dRZk|ayJBi@}S!;$x^8-H_7<>xb)INmfn{j5%dX(g0I`-ih=GcZW{xt+q*94 zxZm&1Daj7=C`n^r6RdBR7U%gPs3jw!eAow1fPLg>}c=|{OEtL z38^T29)DUvAOwsPqoW!W0MUp)Tql zvccwEzjDFpitWHO^Dx}%o@Nmvl0tJV&G8WnBK?9FT2+RCc)x#VpKysxG15zq+>L{(NwU%xQ%{O_azx;|{uCp796=5o zK%kyn?^O{awCEM|h{u0$U-`e*JR;vKrjnPyU5doz&B ziYDKp-vCt^X#t<1gSBpK$sS4aTuIH5Z;mht8HQ4{I+3YY z;zjTsJz%7ZbAGXr1eK+F+lVv2K6rBJPG?iSQ8Wj}uIKr^y1TwqkdY5~bnBn86g845zff8_c2t2Y*Rd_gF;Dw->X2^{x#Cb<4G=EIU1 z!I-ofaGmI$>YVEl=2r{}&w;5wLlI>i=m9*fuU z_t8y7e={1r-)fvsV*l*=Q_aNSn*?!$J5XF&NTl|Jj5hT^2Qply{6lh*_MXuOToFa^ zeqUAib_=VKZKey1IpB0&gCEEy+RhDTYC|P$>L07#fK|H&*V#0x$1d%lv`UHCC2ro{ z2HYd)B8-z$OSZ-rJM13DM-9MgbcI#ujdukOXpY-|ljFn#-5=Qw*;{z`3g+_&4MZ}Y zFK?y;7vHd1SBrKzc|aGT7L;aaH|vMPS8+10B9k2e2;UQ5=Kb2l`*wJ6z(=p(CHRNJyKvJe!e5VigiL{>ym zbExUTSpwS6c^~rueKyWCydyNM6rb8jb723k`QKRMR38Rv3ky3b>3ivQ9d+H*}Y) zHwWUn9Y$U5l?U6CN;~?WPZ4alPilJ-7YYxQ(fl{I>7|mtU%;>JGV02M1k88Fi{P8D zxMdas5^)i5(19ONUqRl^!u)XUb|3O3!HQ5w7UvRZnO&sh`)m0`W5O<`|J5EJhkk8G zx)I|qY%j0$<4YWGjzNhldK4DIUUWZXumG2erGb?^ZyBNHjVV=@a|^R@{7DCDOl>p| z{XS+uhYgQGUZC#{{t6h#&w-2aS8~jnuiB&t&Y&cw{}fycCIWbhPxK@}{^#qGMwF|A zDZ~awSfr=Gt?NI{Q8NslghgB<{{Q`m1kK(*>7)zMWbCpC}B??`x4x zPismKU^8Zlg{1%@>^g&qqMcXImMQ_7%nkT{ZnJd8Y~V8EjFLEWQ^-bezO-Kbe!MAk(c*pdWtObqv9^;F@o1XkA3c^m z{2y1;YzNOxiV`xA+-<2Mn27_{g-xCH6hmA4U(nhE;_{jKN_7cn)Hyd)J`%0lH=W7T z!Zc}XF)DWO)|D-vfjS}_8K51VmFW$~GxN04cTYoFBCuI}hseMu*;_)*a0n+0#s?{7cG zsPsCjMwENk+bEm*t`c+~O>^G>uh;H$od=#K(6%2Xfz41-U zU}jqVKk8fed3`_D!nnAlJYa!!)ER-j$iYUW~z}47CZY%HyQN|;o{(I z9MB6dj;{o5#M!ZfG9qD9A}$H(M+Qs@eOa8b(3R1+jBn-J9@}ac}GJ5 zaNxYy@AmuufAjyIgugqd{MR1^892}|X;_Iw$`r{CZQ2ycLUPn75kT;`ASpOjuEw}` zz`i5q>}aV;6YUtUec5)R9u^N<9xlwgv7fN(Jv?}cURzeJ8r80y+xVg{*Z8}8t*RC4 zO3NbMIs=i$V3XwG!hR=erFNa!G9$m5PftP=+4p|L_srAZU+%-FD>J-TRdV@nVA+&FW6c*nr2)s^oOHj6Ct zz?74GA?kzmowJ>z5l`*Pz#Tcnapa#fv zs#cwy#2lt#iNs+;xz(Ocx^=0?kL1~)0e2m-HW{I{GNM7cWhJXsjwRHFWeo!`L-o{S z5Bo9|+6l%bnpJG|rOCxyas$hQH=Z1Ma_q5XOCOFMyZwr(LE`+l<;=!`!7TgFQy2AG zbZS>Ku5En|g~}>lN=pwzBc5s6JhyAlo@^!n2mS8cgRHTnnX(uh zS#+ygLl27iiwc7$%9#z0l+yU2Cs8GiJzT8Te!aZe(AoUK5O5Up7Lx%lN}R2gE307{SCGOxg{^6f7wJN#u(od_r@j^nJScTDr|! z`sxKM0;LMHk735`i%Q2)ZB|9Fgt;W*M^1|7cLTtfB+A)P|z^Ywcq*J?~c5NCXPw1|eO>(jI=)%qSI_H-*r9D!bvzOx#!!HmaI^`*)Xm6wf zxK)ZB<;-9CgY+!&mC5Z}z6TaBR#Q1bucYjqFHlYB8`|S6q^t=z;v1lcda9T=zvVtrZ*qoW`=;EuP2$GG;i0LspFW_IAUgdK7#g;1t2Zt96(=06pVd_5H&EwaB z4f>#Fh4q>w<`uzT@wph)z#yig8wKS%3&`JOim2132JA#&+hkz)5JxWo=Jnc2Sv9Un zm9*aU%Dn}x;YHWYng8nHO5-+N3K91?33Ac5l^e%dv0oD^E`RYkAMd{gT`Z(*g6y(l zkJLZ&S1vRL48x325^l<>VSv|Gzg`%-;&7}bQM^Mr;7;ZLG8T;Wxm(W1BOQyFKt3w& zh&laZ(nFrmXT!sRtp8F@2+aJU6=mvWNeo*C-au?`+(YL|tNQtdIne;+ z>lq(UPU=@-tFKAe&G_0ZnS3hFUFqR~=N3DSc7nu*5Cm@uc)7AcMYCbEM9w$phbdjt z4{;8i)~^V#hk(Lp{N_|JcOb91*KhP8-|>v+UkS_cr9V7@qr{Ly(C}|7mdk~c!Qe|c zm#;hZLhf7cXXCrwJ9dFxwgHtrWimWb46W3_+!S`~F*Iyst1{V4^gR!NW(n<`mjK85 z>A%fns7V|ep9$?x>qE34D#Y9K7v{-=WK;G!VgySp?9eM%TFf30ZNYc>G6S%PW}Jsm z$iZdVk;bN!*u;WMH!g^%n`-M|TmaPML(q(Pn76-PhDV ztvhN!*W{k7BAZP~*z830Kkv9g=4g$13{WA7faeIJH$fN<4?q3NZ?mox%VA?GDka_;W+?Qee@*dR z!9NL!U#tKu^4{OR|A%ADY-!&Qgxekow3ZF)rDW$Y9CD05AUNuSXd}N60Hg;&{lsG8 z!;qdtH_5pL6FV|G4!fqj4*?X~TANyRgUbkACR;&!;Bw5Vw7lK zsekt>fB}3x?yn~FUr4+Pha-q2~BvLC2J$silTpw!beAl z?z(rGRzQL6RH2ey+r<8W;-U{=c!TfU1|;G$zkuN&V*vuRXb|B5k3w3W&R_lSeg%;n zXVx%a<_IKzYd+Um^PX5f?<4^wd?CLf2BJw~d=`kk5$9PPkZOY%h4sHGLDb?Ej#~(D zk3hN}z!Zj%J14Za3YJ4Vzf$g*8awLR(|AQxc3=xtxQKb#$|j@@I4>-S-JU+M{0z~& zJ&-<_9k_Xtn9pv*9lBAW27(V)Hx)i(;Zi4Q#lpUuPtj&2XwSt?uSW`!q-s1Itn3f5 zT+E&ahW!=}Y$y^81$W(w2{5rMj7k7@mNHwr@6>MJZ0%)+Uk3GT?1pNeRin5b6+hTH zjMHs7XA1_YSJ4)r|2W}{EgThA;xdh3pE>t3>P(fpYS z9gX6d%cYMo5{*;}p@BaL&2kjXxDQJ>?13T&Cv z=~{Q8ZO4X(Ts%fqhyt3dZ~j7r3^pN5(FzE5=tXp$?7AF{TA!w%Im~8#OD*Xj5v2(q zAixYuzGKfq{F?y19(d`@(x)AbU&&}Y6-stkR8Z;-t)7keo8ZzzH?yz{@AIB}zG(~P zu~Q4^9>DQo;@P|&TkC>KwRsmIML6G|A0^Yy!bb(swkv)8F@zd*D|3U&JYwQ%OtHw0 z9imy4m|SPRpQQ)lA-WVpwq3YBfZl+I33DprkVLy=7XyG0*wFA}t>K80o z5*y(e5bUZuYA2$RZg({$fJX~oHDhi&0$w*-C7`S|!_$3OvFc-b;aDFnCsDMln=o4nKuSM3Rb9j!?n0w zwl{{`Nqq-Ym!~~B8BAUe1zQ92dxFAsX5&-3Q2(%Vu^6C15`f$L0Denn*1B0O8elFt z`FZskAX%)MB&Ir|tMi($X#3o*wMAiOC);440v{mPAzQJ zT8mtgC54?9-|RopJmj>0+SN+rc&;jMVNrV~b!S*-QviZo4CywEqc8~|rw$utm5-PF zQ|mhms0&3qQG2E-DukB-TS8+xfwpwO+lS*OND`*sPB2$53+CEKO_lN{Q$s%nR;zHK zJtzRSHhFfdlNz3@=0A%q?G#IrSLb_m0~*%P&OQT4;W(}xUO_1kRAwYWMhf9m0#szOKNHGo}gO`Dk%WS~GBd!Uy#;rD&1h z{@dQ7mBA*H@W|uqlLnjSHe06juAD1pUs}pa%`{2lxQ3|{LKs~DK;@{13G3>Zr3*q2 zvj$%KRcQo$pQNSJP&8Q}EqMqS?f zHFpLWI0%D89)SjZJ`IQ&rUAeK4uISxe;;s;OCT*7F&qZ=xswWBc#b9zg*a4bsl=Gv ze@q=5*`OLVQ$R}m@WS{|0QU|k>q(mhK9tI|Q;IbvHY2ee?E!C;trDV8;l!}}Q(LK0<)-6KK*3G6ALvmyYS0dD)>nvoZkkSk<=da!VGv}DFY^6@N5_YG+B=wj^ z^wR(}P0MSJLGsE(-k6YOIJ8ozSTjyI3ra8t4WJ5k%wnQ$gH#nzX=; zoE>j5;nGEF_53-S?uKBSqUGq)I_StOS7jX)$u* z!P9N1?6<*W3P~M{v1qk%;z5|Cc`7i!f6)YTY6SJKs06T?v-k zx6=}|bCOEU1FV5A=u0pIhWn--zoE9?vUHHfY1MEVOK~mp~@6?gx+E;st6bYZz)raVd!Z^ zJmYDKZI|=W&=umooWcml(mtBQcxS7Ts}bkX7VVx+l_I`uXRg|=J#$c*HW32?&m1BS zAEX_+3l;>_h6kJESa4Sd3lQ$bz5W#F9%CE5iIlP5`6Dpi3=O_iTk)bI^ zu`V#sm3-;5lQZLuWzYsK*Ok68M2S>ibC8*aP%7wHG|zTrA-i^n8Gznroz`nn5&v#ng%D{^emH85ZA?p7fO1B# z*VquWfmL~=2;9mmIqW}~{=ov%;ESt4msE|b%7x~FCC8FFZ-q;jO9GV(*vg7z zoQ&5J^AO8Cv)X$5kR^shfoW9)PH=?%5DPpsqgBAle>T)}lPo3e(aZ%_?EQxQM4=}k z^}!6*)mX#O5bj}EFh4Vrp$#}$u^Uu1pV3_C>|cbz*jCZkr`!n5_HIVCSbLiHF9ll| z9wks@tSnxx{!pu25aq1+f1c!$I#kg317J3{tlQX()w9{;p3Kww+rj=|4x(7Yto;~)WlXjLf zha2P;%{)_hjV+zztDi(ByA@zrJD#^hN{UFVmyuUjMjonbLC{T#q?#=~IoDb?y`&6? z&4u`?E2eISU%4y0v$2KSEoxmQOXAo2oAqp~PaUKARo7@pR`|DnRyDu& z>?|}guGlP`Leke6e5ODvPFhtr#txkWn%0JjM(L`Ss< zX{T*rtugc<8UKaYG-c?mQzyQMGmK4qH8ymo9WP z8mzQVR<^2&@JchHb41u-wP_X_DExv=0V1;uN$T#e2(865Miz>^XIhx$w6(SgrFDdF<@ja4gkIHX zT{w|FX;)Hu(|7%|9uCPdKZ(@Ft{X*DP+zV#KC&quC|B8BVKs2*jSHq9f|nXxFN+%RLc^uRI zt9}z4rs2ojj8w=H;d$*=VmXMrl9>};C=Q*@)WX(~P-IH>U7@&p^ZySg=@FW>%30XN z1Y=j03^GgKvHmPdb*`ybOB2_nwFA?QFqDiIa>benwPb9j>8K81sF(TJ%J!HnOT%Es zV&y=i%0(oD#VSRXR(BcRX1<8J@Xh#2Hl2O}Yv~<;aP{NRX6<^#+Tc(g(+^KUR<@^@ z!H5{2mb8aT7rJsqoHq2xX)hGs#%rz?@{Uip7IM=)H|Pt>{X?I*YYkv z=8CCO*2Xh7qpR$U#lj^?xr85x3cBje@ZW@W!(2p&up@pGb9D>W zZXWYe-Oswg-;sSS4!VY0X|ekXw)SgLan=I&S*Q z{rHaQ3&zp40NfHiu-~NiKe1MlA*R`BQFwF*M7{8wHA^wsT_kUy?O5Tz;sNQ*Z~ry6 zkyDU~FL+Y>rrfTcrXj2+mFw5!QjWb^vmzz(*cM%tNX^?|B^DxsoQQcHFh6kI!kx>D6`zp0Vl>+ zXz-#ku{FuLM{1WES8gq*shigBsIDufJ!jR4fZ)xnz$ul2j-O^?Y82=#_Y8YRZI}vr zV4AsUPy6H1rWacr%p1==of}p9!Y?fA2mUx&!Ir4tC{}9-1&mr{{eN!WIZT!+>u`j- zM_#b>FhEwxv+P|IbR4ZcO$msFCPuI41Uq{j*(78LR{uhBRG~{M`*b~r7FQkE0xLOi z-3KE__-#P1Ubby%%T`4&Js5&Dsp6*4N`e}xFN%h(A4|!1MLxb-B%m7bxu!-W%sDRnmV?&?{_;kE9$h8k{Crd4P%qP zn|)KyPyyK1;Px5C@11qGNIXWmeuRYuDt4+6?&8Y^!>a~W`765=BC zo#QvL(5QndVh*HdPI;lEXowT!Y49VI{-d*i30H!Q2qoh*>zXuV3;_i5Q=XV8u(3^w zVqOesR*d5qX~Dvd#9X=^QfaMooOLkhF(L}dUKmOrK9ZLp6I@^n35XmHnXY}NSM z)irL4MWl20=oqIoMl9jlP^Okvi=C6P)u?o1mjOf- z2h-z0<&djqGWXkVqp_1xN)}iwi@g^BWYHuE&3lQNHzU-rdJE_I&q1lzdeTy>CRH{E z8anjk}YN5(U>Ok+TmjPIS7eWdhM1LcGsdGZigO98uF!prk~r;(M>VaTCK#i zj$|{;31ved|AW$x7vDi*8@)hRXo2G*7z_mpKAS+DYcUUr-I?Vf(j)>PsEqn_w6XS=R^ zbui97dM0VB04#R`P0bA2wN{%-ujQV-+U+hdTh^UT1$gQ_8q{hlo%__@y_)|y>bjsL z+R9c&a0Dlb1_4dxl6PD5glbn;ighqyx>#*fHyn4mQz*Nv;fj-N+>>dYVoKCFsidT0 zIW;v~ig++{K{@K!DBHe9>fNM8RWUA?wZzjPAT>9S*vBVl1wFLyk=J&~Jb6CrFu-pr z)u_d4!`fO7uATbqY>u0D>s%^Pn7(JZWT#y|ZXSbcMp>~DF)a0vSxL4&aH}V$_s+Z zDtF<$Lzi7!9~n1N){DtxIw-0b>XhQ7m&=onXf(APOp+TQN1b@uF)Em;Dy?}wj-JGc zfQ6#IjxxMR)Qx^lH&PcF5<-q`ls9MPVcrHD)!im=#hwD!u$l#Dby*<8cTcgYo>7v# z26n;}t{NMxnHDx|>Y#Xyp+<$Yqj^f@#+iK?Xv3dSI#N%MQtM`Cx+QQXHF!3DPxkZk z*SS!NA)S0zIZ>b@Npy&_luXlDO;XnmkBKyCGaf~i$4VGto0#ZvZR+$;&AO9GV`qTq zibF0d6vaka{ZVe#m*GTY#D(M&aEbW17$M5hti-5nsO!`N33JAMCiX4C|;>FM1RZu%EwZB+)qtj%vjx0qij&4 zXum7txd|Cig>LVPBH&sba9_jqa5;;(k)n=rsbbecGnG~}nq0!@wu3Rt* z6nB9#Y}?LD|JYCOB^D(%g5OJcuGDclB6i8QnQa>pD}$zPoVqVG`m*CqW8Krpr^~imz@o}7Q3W)lF5V*k9KT-d zaUwNz#&B;Qyu}eTLYo)Pz0^VE;akF~M%4vsF#rOf) zT+^OnP10$nGqO<|QS!w$YU43<4e6&-4F`Yh;wl<8mTO6MqRy4o(1{&qLK=xp?Bd{@ ztu3e=hiQH^Wnhj)?X9HXV&<*7xYhD-g2yiVWwh#LS*ipwiWPHH%tR8AVYPSw46!SR z7BO*ABY_oN8BpSHo3^!>#mII;5#>KfPp+oH;jM86QBjQXr{kg znGuQUR7sN!vS(}=4V|YLTgc(~{HNn0f{_cSMZ{SBR7WI=-J0%>RInx*AYmJ}o#de4 zmV-FG-cEi4#Ff!bD0WL}DT6Z9?h0lnX`d1`eop_jcuoB}6N0p5Ib26rDkcH1n3Tk( zhKG<1_CV>%kyTG3gIHkIrZpfZwspa%hPoW+Gnvzx4)mq_Vht)s11}>Cen_t?HC6VO zCR;W6YU|0Us_t8SALhyih9#!h?PXI?aV6-LO+AZpl=!E9K2%liu1<;@y;b7yT|CFzW6o7>gAvILKCqbDwdc2Y{}QO{8*c$V;LqaGo?Ct>zf)+lR~mz(vi z9Zj`9Yp?(w8&o${kH)kv!X-^@jZMf6VM)q^GbpnzCeHh%*0cOMFIxfN7A7#Yo#S{r73jF+^z%V1R*Y! zW6PRFlIxtX`!7iz!v$Y*+%d0;phF_9D;B7kSNGn3wj(+kHWb&l5ZBD({8c=uZsHP_ z;67tT5#-6uiG>f)xUe>7Z8i3dhEyQP7@yAmv|`A*Q>(_^z1pn<$~Bcnd78In3-3@)-+TBO#a7&5120@wS&uBy8ts zmJb*3mXkKduxr`N`8)Oi=`6?uDp@>hqM;_T$_7@EpSpI_cA$5~?p^>$i|mqGd*W5p zp4pVfbduW?t5IbcjG&N6AYQpDJnso=ww5!j`s_A2!Uv?B-Y%8!vcLzq#6{pW1m zqqXF>=nUer(6)rH;%X_NVDUlaW*_-zog{sR!dEWyh@gM&8s!1ZI4iTBPV|{pUdZX2 zJc|cR!k*K{I6wc5+TJBFh%T0XM?_leVs`7}8! z;u7)oM_NgbZ%K8S^Gqi!nA3|4_}32#GeJrxCJ`pe&v)unnvar zMF^eE-t0cb-rba$V^AXLjZfNjx`X_To!}k&Z?0T6`#DJlDgv_@CcK(ub<7dxZ0ODiUU%@Ea9mshmB@3rOW4*UtII&lmndZ{B*JEx`)~X@%UC9*?0#b~I zV+ER=Un({ABp#;C;zUVJXrH9DsW%%C5t=&{B-`luKqt`q! zK|VsXg;0DUC^5?zgnth?V#rQTCenKb784_i#`kkxg>pHKNz4EaYhtwm_`}TRN)f$} zJPUyPZ6=ra+E-ybFQt}aGf z7@^?QorwIEVo^tlL+4m1ne{MbOM}rEBN{eM;J~pp z#M&Ay;pVtJg@X|#8kNwL9>GScf=N|w^-wJ0e4^{1O(AUN#5<}J)N$7rq`+M-i9LA-=h4%cf?2wTq8W+8muFVwY)`HZlZD&g3?S*SeCAHV4FPL`e6taS&4wE=1(#)&zsixycz9cOZthi@9yi$FU z=Vu2S?{Huur$M(G1q*2+^9z_aWKOMP|$+p2e=|iQ-#z z*WTEI@8REk0ZtQqu1=J5ASPX%U)}j))xd2g3`1S;D(R1iX_fe4ucDMqk~n96x>YFa z+C;et)C3W-Wx&$(Syta7+yTDO-Lt_?JOfOC_ljv^db4p0q=Su*mm(7AxS4*!PCE}6 z;*A_Oin_S%*o9NbsTZ>zD)J2o2>NZYT24DA1$G}EOb37HNT8h6)Ed=In~?H_J|FRn zV-OuI3|IAG+`tM4qk(&I+?$;^MB0iKyD)eQ^p%HOkp3SabqXFD9I`^oXN_Y)SA$om-!e( zne*S=dBO(nmX&HK3O^3u1wM>`N9_immJ2d~2Uuv6X4Bfahw=h^aAAsKw{Xu1<~sxt zW}L0nIG#-)AqlT_q9=?Mu3-BPW{G!?is)YI(EFJ{@O-fIcp_T z!?i_)PF6(ms=L{cmRG^%C^fWwwg_0}{HGM>uEZR%XLDeMdW(u(m~SRx1FCrw0<;aV z%|S86ne+BnjDeYp(VPO0!M|Zzb4DRFTO^*akQ5b#uoDVQ81X2!6@5V-$(?asBDPq0 z7mxM}1j~?fs1~pkbEoDc$1x2A+WddPg7E!37VOH`Ea2=xxX}I%_>l(+HJ++Co&h3v_NHp-L@f4#-g7pu(!>O%|$by zxp+^4z|Zh4mgc|@USzII|KdmZ-5@YvmG!9tPYrIJ0YOlFz?i}((wQX-ZOX4*@SZ=p z;wt2@k!>5kEQAIu&`9YI96)!d|+XIwdtSIg@L@iSmvZepD`zC zKq758{E4MHVrk~o2B7$j(d4jLOc>~Xw@rX zHex_AUV-5GhiVjwcR&Cs9kilLR4i@wS*J4#Vq#*MH;oAsn}1W_tr8tu7EVQQ4)y~m z2t7yLhvAV-o$(<^y})Auc7v_LZ4ijuW&3ZFBe3cu^w>1#C4f0MP@G8+yb=BpO}6U%^$6Ze-s?@V43vd29uh%cEjFSwPDNERpEnTdQBA^#dsUGTrw(O+C#Bx1 zk_@&-1l`HeyGR2P1$zO|3QrU#Z7D%s2nZd0BWftL5}$B%V$WRwW=oi7qk;w4JZPpw zL6)g8{A$eH*txQA7BM@{pi^5gm&7C-MW+|#BLqQM5b@ci#))d_P{@2h?+u(UI74T5 z;~!0!A78_`Nac!Rs0|LF;TM+%C~N}#03>anEyb!&*!b*WQZpZXvdJ#St5$&CrF$-1 z+e-Bsmk?~2SB+U6P8}{HwUPOvETy62620JnmaYxNkgc+;!}1NBBmxS-sNjArZqltm zrY8u%aaB_Tj2_fR${5VHv-Q8MZ34>A5 zK@t5m?Gux8GPBU#OgAPhg0R=O=T_AUCjn_afb2<5*D6QeFlL3xSpZ~WI-e7+1G1>L zPNj!%`j0iJg>m0#xnkJMJ3m2R!W%kIjbU*<9bm6t;jw6M)Ml5tvCKVB7ALR)YziXOzFq-x?&nZ#$qM0>^L}vM^2=mBUOME=UU2SyT{fJpFGU$N;r-jlR26 zw~!3nNAdht+i1OFvWAv>6NG^}c3Pmz(IMTDt2-R3(NKu73Ibc1l6q2z(Xn6!(Wfy< z6c+L2ye&j6C?RN({UHDaB|4xG99s!=OgxRd1Hn{i4t_Q<8iP@qTKbCYqA@|iIHZ%y zv&_+)>?nrcRJC@N0;-B@uYCZB#?@Gx(yA=eQ83M`RPA3GRFjJa*$nU0A6fG?H*ZxR)8;^|KUTxf8;sH6g4G@Dt#$RMyHo?K+90d%UK{EyaYU@(2 zG+d%{{3n-C=6V(DipU~OG)uFEN7V8xk}Gcqdp7rW zq%^`7h>_+Q`>*t0;+l*gwlJoGdG;&b|IGzGa2ebm9cm07T&*k_g30lRmRG( z1;Tn!bcY&tFJh{AFtAxcd&qZ5%yWJg7;21%6fBD%r@k25ycC@%_W#s^#3=gz0MCD; zjTyv9r|p0N-|I`NvD^8TW9L)B&(Mq7m-&@!N@_Zyfu{7u*VDUs^*ax& zfMHAv0R-)VJ?;SD&sOp1ZET`FD>jQx5b`4xL7g72DKhDI7o~?yCLE|Xt=)i%CY(=T zpNotGeHEOa{^PnbG*!G=_fz=<0edtFa_-889vDc)&HEQPvaDGB>|>2R0x)c3NE;6| z0$1e+1aL)1rKDHInFB+L+JZe=aQEahKvi5VqASJHH#)0l!U!ke>&s_?TMt*w+oit} zg^TU}*FKdqtZG=%BpQOG7hhyH&4NaOUVmmT_U}B$EOwk%|T!Vuf(|5sb7mH&|jA zFuK2lWn>0;#d)1r|6OH&XsMUCh)M7r(nrML2P+1hd%xPulhk6+=ntqRwCKvWe-Rc? z`YZ(S1^>cdF4rJc$~*T$g#w3Zb!Xka1#^;u z*JDJHU<3d!V(nNVa}9@8dL)DiKCC&c9B7FM8kkqD>-Ve_1Jm^aU_n3H0sLIF_@{Zj zF_++)y(4;*BYv9e+K&@Uvgi)u7|2&s-aBrL^DRYgi8}uJS;0`#|nCg6KDUCHAQuVVH zpqO+amAv|kWz@uy2t5`ULx(g;*F3vy3H=z9*c}w2m2xQ_dK8L!+`H-y(gvyLRIFc{ zvnV~5*^nO2KUUgB?4H(GIT+niosaQPU{6nxII%NE%(&!prk)`g$Clv)o(T5x>4#XM z<|7wjeg$eN%uRis;p#b`j*5UJ4>BOcm@r@?tdkM1QPUeGLIv!zH0cpNY6kWl8z?9Z z9ZnEQ?u0cdo&*57Fey5{G2f{0nT75Rr>M(|kI_o32A2j-mmV*|l|@Jxa~LQ5Ry;zz z#H`&M0?b+le083b0m#yr0g?$W)*TuEUJR#$+gZ0LBixl{b_p#lUzwj2MOhm7R;b2W zRBW0Yh^T;P6VFjH2oEf~vcstx0uY0KdNkg^(|_>m7x9w94D!c$lF4gnW@<|mVzm$u zs}+m~dlP~I8mDo@9Srh!qFkmid+B(Sq@Jw!R$Vuc+?kjUvKor$n1 zeOSQQyRc}VUiyLy*!Ag`@@g)L$CakLP~GemygK{VI}VO1Dx#_XUuLv z&rhU};+@KC{mW% z_1@{y&jUFAFXY{t!tYN;Eq>>)Y&of?%Wgw%#KZ}G2+MghV`Gp%4h@%er3*Rj11Q105CXZ`*FkMn0=>D8$on|;fHLgcdbz1+3F#eDF!@3~1$ZanBk zdUvi$SDo+u>30l=BOU`tJ+22lH~R5;r1?Au?#sP0mk@G&tr`D`GyD0T{i&s*@VN2rv_6B#8_9W$S z9NgJo`+)w1r24HW3+|{TOTRD|lIQ*Y>VVu21M{;Y6Y?>iz*Sz^q51s0y9G=2mgF+t z#A4yap4HWL%F2EV?gA73iHc8h-?1$luRj7V{l0KPy7@}D-Uj#i{aJoL7Vjab!FKoo z_6C33%?8z!5lDt&;hK39-1QZ``;h$+QhQztZq{RNwK(|wk8`ynLU zWk4S8*~s!f{ye~b%e?%E9Q}#Hzv}m68NA^HethyNV%eW9^Jxf(f~n>;p)=R;Q=d{L z&?S7qo%>Bbyn$U&$zc5W4LmCjz4TE3nbTA_|6aZAJsu;qjQT1Cc+7ufx{oL1LC-0< zea`+w=kcxkCkHYofqXJi%z(V0Y4O*oG*;yj1LF31#VB_@Ny`ED?{pk2(77Lq?H)_) zCgJ&sxsjzSC2SY@S_>MW-VXQ8zZxC*em}DPGk6rG3&U{yD8yD9k91h@dn}Emr|+5J znRw1g^s(xUkodyL^6iDNRN6I=CFLA`?ADec|62oYGCf zv%B-2S?sRhJc}5&aM2wtA3Ri!|AQ7aW%Dx3y<=>oyOby)BGaw_@5Jl-`>kWfd7%^e zpwU5m;9dUoDd5dBop?PU*?uP+j??P?ahOx)4fi`(irQWnR=%XCpvsG={AM(_WR-&Z z6|sR(1hnh+lTe<|Kbf-a=8Wv~n_B13li`!!^A@vw#(m}|WqJ8;NIF|^){C2eEq$t~ zX(mnWyF@@8FN^pho({HC=3aN;r*}TZoio&lM*1fx7CX}4p zmsNjy8iM1T9XCk_UkR0rXgrVm&Z_e39Wl>(LL}JFr=H)R9LT2P&NvCOzBpsoJ4`B5 zM<2WO1B zs=8WLYtFf9;(f{>y`1^{yV-JTF3NRe?Ex8Z75n8{M{WT^S!}Eyi4Y$y)G%N3kOwPD zDU_TD)jYfF3?NnW z=ms2kQ$1`in?1oFHj00vsa?!;Z}g$kpODvOp&0iY!%^lyhWS*w?_MWj zHfK8~L;ooce@`oeTTUA^vPqQqfKmy)MP;GN0{{!Ve;hDWk?M|GQ+>VpXy^9o8#|6u z$w5odPl~tdx^0! zqjaaRXH{XS{N{4(o}(o}&PNg~7ttFF_e9ls*lSi_^*6-uP9?uyr&V+3ApG1W%Z=x* z8B?BP9!o$3dKQBPZXM`4aX;K0CzF)SUaIswS^dwPtxAEiF@{X*=_QUo9uij;XgK5C zZ_5&e;;G+YKWIn%2mtwSg!Sh)lR54i36?t9Z^$zr4T7|1g9*DY@*+eH!eA`|3htOw zvx%%S;4pPXa*r@he;DM)v+Ry1$t zb?=KjqM0|D=TbQ}5++ z7WU7t_T+yPalXinkxqqOsVJF@$!HH-(utwPyu87`W=jP2)3`HQ`C;J}o!1p<-s-Bm zO{8gsMleV?-*E>ZjJ9X}n-yq#%WS?f(2#Y$hCbiyX~#!-@3k8mKKEF!_--Ad?PXTF zVVk!L;kOHIZI$njzh1g&3`i7AK`sC7v_sJ6fg*O$vQltMUUCW$wTNUsvJZ+}4qIwe0KNWAeGvD3QGb{7@PHDc@R|&L1-TLMKwfy&i~EWW9Avzj z5}d!Dm`YSqlKuc@%%@lY0d)KIl~}(%?jd-SAJi(ndtN2;oN6zcc{`s>)$m9+GoC-~ zW&Ny1 zOJCiLmXO`kQ0hvycUjLWyArb7Aq24iyJhafANtPT5lV3@Z)Dj9zK&M>?`>c z0x80-Dh53(X&)2H*=^$g0_=ak;M=72?PMmr(J5Scr?x)4x!wnb>nWak93XXx{JDQ} zzs(6s%IkH3WNtv^{e%Np&|^c-BMS zj-{?8J>@z)ys!n|q98ZBg6AQN89jua^9cS;to~si!Yu8deS_RNRZY^!tmfWL{$=NT zD+DwH)lPVl6xc@l3>ni6Be|n1bNrzF*m1SUb2n5b7lJ;yqJ-_kpycsbv*ec+(#M-CD`pOr;!=j8qUkFfJqovt6IBc>Zc z58BAfQhXi~LWEoI$IIuA`X-69?mBil(_cTpfZJOIdmBQZxvcEVRS9C1(o778pMqxB zb}ZXuhs2S~`)|xq4-nMxf+Ghz_l1i**{4?s6$c_@sER?&-DqhlU)K3D1Buyh zdb~n9ebETMl@1o(*Hd5ZU;=oGbw7iVy3I1$!@WOApA1Y-YKu!|CyY-Sj$W*Y*@Z>= zF9ou_xj}@V->-e#zvajIXt~Is`zD#?{StkS85L?b-470BrUTBRFFhl?fUx#zD%+_U z%evb$nv@EZAB)Ke7z1*2^bhwG5g)M-wc8)>b&I$po>+BVd$nmRS5u|KM;`=g0#|NN zf2VU9^c4SCd081wX&j|V?WaK>-x|yMk8VCJx_7Go0BWP+?RSyn>#7sFdz=dU2W}|U zdhTA1i|o~>o#{mSsI$rXk9`dX1NDqvIu`4l-W&d%8VKV%d9F`g1y^LcD+unT{TA+y zvmYsWpB6mR-|1dX?Ly}FSNK?dDV2WMXF7h8kU2t`H-6!!OMQEdzVA2~yA1*y?f{pr z{(=@5ApSXgJgT)td95C8CT>aL$j%q}v_=YxLJI1mJ~qHjO-a3C^?%%t{_#E!TGl~M z;l`tWta<7MUTbe#_WU4s`^ib+d5js#y})+By_2Kz{%@ub>K+l?IrVt5&>zuN23uz8 zXXpMw2SwrE7n=5&5yAaMVJcw@KL03X;<-#6k*cpfTcT?uaD8`RY-u}#c^Jt9ZFSh^ zI9u1l8b|xh#)E+Z>p|w2rk(FsK=p->>{;iJ2Nx#cUg_=4Y%krmV|%DWXm)ZQ)@{QF zgO#vmy)oJ9?yu^c9^t)%`JiF$-QG7%4A_~zzWrQM8Mm$F!7mfmkDH1k&AQvJyPK!! z(yzduAKRY~Ur?&oQ3xLT7ae9=*>b6zG40Uq?$j;b4l*zhFtET7002V9!QI_``8(^p znFRp`LH#3OL&kep}fkQ+Pzc@ptI8Q> zb#l;~0Qs_Ih~g^@B#m|MH!w)SfT&2FAF?v%36T%=X;nm9eu1P$s0o1KZ^&Fx!0_ke zLTSWx4ZzT_t-5)cznPmkXI)1p9S2unL8YCVnwG3*a!5onD*hXER$I?Ar=NnpZ^EP$ zf8G0a4d6Zo=&q5G6yfUu%$TM3nH|A^E9YWt-(X z_5I`~dx4Xqv}Km3rE>O7YEhOx0Nie7t-stG~3YNzE|1ICsqx`yVh&+pkl66`b8Ms~Dk$WI14;;~(gL5R z;dxLBd!8sDkk!QQ2j|(e8#GEY*o*=4@;$Dj68%V{>rM&V^>wI;p8C$B?Ch{v04t%~e+?a|EE&~-MKcOH?$;``2kkS zGDkyGW23u^TT?T~(xO@l=Al^$HT8g$bVysLqnnqxy@{=*k-3$z@%#O$s)-3Yx~en0 zoHf3Vceq7d+_b2(kGZ{tiJ9H)!1XM+0w$!TvLBQAFE+!T>HYY5U&O((T_UPm`G`*a z<1nA1Zmot*ljyY)_bL=tSXxV5ZC+0gPfrhzmKANB({F`r7zbA69ec&5UKovIu_d$z z^|GJzRvQ*@gU3dzvHLmxxu~qyGS)(#Kum(9KRUnG=h#^UggE)R1zGtPwii`2wKLN) z2(WSS4zBhsO)Sm7i!?u;0-K7%+W!3e_ouBbY{{2U@MBm>fw97tkRVH+uiFc8tz2`8 zIa|2CxslD=sjO@RW#52sqXNa7@D9#8c5Yy}1!ecvYd(le}5&#T{zVB2Z>< zva`VXoS&b+y`4X23Cn^yOxUGyK{MsRY#{WN2X~as#4hDT1D$f&N!W8>mWWN&ur+T6y%bLkAoRkOXm5c`66Zdq|5 z2|Xnf6&(Ww1p^rw6)ky5>Ax3|tJ>Pu#t(Mt<7K9*Z_bYWc9*NWvuhwiT2{&_`Umt` z)LgS3$xy#YP$%D({@?HIWm{g&FcyV;Q=@U%qpP@|HomL??CvQrHr$7tk4p%{Ag;)= z5C40YMOkZS<5^ib2U~EREVkw*gh~s!X#0^gz7B1%%mOp=JKdco-D9wUVH;}DOtS$g zX1daM>$RnggMDG~XLb$|HrCGF)N1e02F?T&uA`A35t5q*7M1xoZNrUetG#cJ4UX;? zGGg{09ex4-m$k*q%J7o3w6x~t=H*K`|Bt!ZslJt+ys*TWbP!~G@N|r4kCpV_ze{Oo zMsi8}`aj!NzFJroRI+g|j~xs|BVxhkN>6dLwY0RgTVEt88X0xpO`QL&g&%V(b#4BN zi49khkX4kC6qgg1lu;Cwkr||-DL1+#O!zhTY~>+Ejg=v3O-M8haV)-yjix^xlQ zH6^I+NGim{MdkI&O7=%Vah{o>`L_#B1gOt>vFl!O2y1Jm4ke2lH!nV9hO;dBp z^PTsScw+9HI#)FJc z_Kry?iAySqNkqgeiTn@~?H}o-W+*EC+?hpZ|7*dlw-xAshk=EQpW}glW1QdD`wIQJ z(Z8P+UP5i^<+=HJe*=#Y8zUz>J;h8%3tidJ!XnJgPtQ(H{=sz=Fp`v!m1Ll+@z7P< zSkQjeACBCqN5~j^RX#2U=TtwZg0^pLVq$EvPr}Mc1_7pRY-i@YJ+Lvc;9(%=>geXA ztEL6WNjrD8HUZC~HUzb{{#Q;%JN6^M&Y`ZJjh&sfw#NAuHcFPh^!FK#0Be1nyVoV~ zaGw|h4K)dnnVOOT8%Y@H*z+N_r!PVhz{fyFcl20!BV(EILYdNt$cVBJ6&4l-1^p^~ z|M2MI?&{{|;^O**6r(uBSZQx}b$LZhaB+2Y3ACwVo>q#FNBCxsG>E->OXB`MJj4Wa z9h+imEVv>lDk&)-J~eTwrC}YJSrk%8g}-{Y3e>ZDzx189&cpBE_6GU9pX9|&foFxc z#UsSTOfuMB5E^uN?Vka6A4*OqHreT9lpqr4B_vh~C9(QI{66*QxN8=LKAQP+=i45jikSB_L{C{Cj(PNJ;XH_IA)w zlM>N(_l@&|LJ>8%O#fRzTSo_v@Z0Od{r$ng^T{>Hy`_nnqoc|3$@|gy=hE56{r7|C z6A^oF@^ooh016g1aZY+-Hd01bPhVz7Q2t!hzqQw)RIZVqPk~G8;Fg`uU#CDI@a*j3 zx4rdCCFjzzMhZ6efw{#o*2Yvu)#ta%&YH*PF-0&Wr-gI~bGg5F>EQ(=prG#T?*@dq zhXc}+Go$`QB_^XFKl!2x&2%eJaoB>s>mG#H{J1{Vd@Z;t9IYL)J;_S?9zmM04Z#Kc+9svn> zc1`n#rK^#bjfaDwp@V}1NZs?VUO-p1^>3?lyv$#lZ&2}J;y)C}2YSbu8K_7p8Og~R zDM_gqdWI)Q$0Vc?GYM#6X>oZe5fKqNd0A0OK}o+uIWHvUgDv?i*ITKA}K{@On?D^vSFN#L40^Zj*}0{wznhJ>&rJpSFXK| zq%Ym{zaQwEI^~S;M(KuIRTQXiWP$oiN~sO-sbiZ_nVYG1xZT1;`OkYKr>g%{Q_%>d zFaXRzlI473T`C$V94-VhZ5ZSc?p<6s7BC7WNKnXnzuw)vVBUL|mX?l6Vx#RfzYE8G zJ$<4VQesk);==<&kb#*YF+owOsL#qwL_&VoXpS=9-z?Nyc1$+PiH)pd0^>P7V%eJ> z9b8aP4}3rR@0*42jV$pLGt3tD2oc&A-QqQXo&)4C8Z+5 zA*FVX7hh<#wuY$6coBfrOaoC1|>lQjP$tmlu8-aWDpcWG!O3B2d}`#OJM z0Z|?t8jE<4igHf61^1v7_q@!^Vgd3DkO>Zo3PN}x-bn*}Jy0_oVrL0>Kz4*^==ox; ztJzfa(+5?CrFB$xgoT}L*R^3V#N9C_>DSB2(d*CK1I&rmaM!pvJ;B1j#z!fDoCHgd za&t3tb5p~k)u5Ar^3N=fW17ZEd97KE$^OIRdsR}Hh(UDywu=J_$xz6b-fzid^W63a zL5cwi5P2^suU~X*EDy8FB%YV?SKNTdk7HYC6egx#o{bG%-?v9XEL2EB9y%LcT>*ib zg}^7sG8Qx~^zS~w0Q!<*NcfD<*p!s4VDM)YtD4*ZrQzY;fxceqJmVwO1Xb_ng|m$M zza{YoB0qop=2>YN9;BwAprRP~(r|03w0ZVw<>wbU!~6A5R(8zl7c!AhM>QQa*icd` z+CjVoiIj*BC0hXIj%Rp8dOAva9E7{GU(4Ie{?O~|>(KDzG`|5-9LfBbv7@7{P^E+ZkW<^L(?A-qTp43Gh=YRkhTbYz{qx% zVIl*oEsil0+n`lChXD=!NH%NwJl$@gg%$p5EpM;S?@gWo9{KB?!Ewb=9URxNfE|*t zVOhzDSUBXnkF&jdLknjUSJ#LA$K63@4~m+cfbdqH72Ry2%PT8utJ3Of``=cUS7(>R zcv;MT#*(pzssLx+cig@%U)No)?^RfZdAiJ5;Bl;os`-}Wk8 z08gd|X^TzBj6NG%?=ViKm06wh);rez-%BUV&NTQ62o&!n%>zBpO2Qr>M)49!H?uI$ zEy^o4Gu%BuM@s^rU}K`~>_g^(htPRV+M@7#e7Ln-F4ZI~swC8nM!PV%A(w=ClSWKy}x& zG{iLU2=fbaVuHtCBsK5CHVe{^D@B5OWBwSWx{CP)hj3mb_G ziy~2<5D2`mvuBWxMRwCDhTsuM#ymJonQOX*gY>ksQqeVq8A-^piE&*th0vnC0aUxC zQHQ-kOBJVbAy@AJY9oGYc}ih5BRw{y4!^BQHzimOAnLz_2fISC?V)_R+u0E@A;m8i zLKJc^+At6cbJhAE6QiXh>-^Hz*4NO`)_d!!HSzE}zlRpkdeJh}ApPXgBD}OJ1$l_Q zZxB|0?1>{G1e7YTo4_i60OF@61gTO2HHY9Hpwq%qmbVn2 zvRhbq*GuEwl1#A91NQQIv+ZIUv8Z3QX=>2OvWSWF3O4eL(UneE#CX~H~E#m zRuUbxoIn?cxuyv&CtcL9Xv+i9B3nSIMKs$vVr)yi+@R@1lzETVn`v@ zo=N+Z$C@zA8P9Be{x!4uGvR1(Kp5pcwAf`2Az1&^Rpm{HE4uKtKm6C2O3=jtPR(|g z0U@Ky!K-ZFfVQ?jrB?HWtM)*5x$Q$A|K|rC0~RPNVtgODclGr_$JkN!Zf)%@ux;Z9 zw=XRdp3gylLLCdCX#>yfN>fU~X6ukcBoi93hqCkb$;9o_Y&^)aV&+b8aj_tu zO5k-py3eeUuCdnyci??&*VSSKHsxfhHt<0jpqo z-OX%T27nz4QfVP_;%~igfeK^X6h*OZN*bnunuZPz>aA(rL@>A3dYZAQT9YsEWUA@M_Mu{~|bc8O`B9ZeB0+ zlkHl&?@l&p@bTPdD>V48L3J0QZ{`Jq68w|rnv4bjuR=Tv*xnuUy0>PGL=XHA6%5AKS|K5RY6YLxy{j) zT>{WRDLU1)vhg=Y9v2&if%=zXj_S8eQ;+BSJ}0(~Ya=J3{cYu$n-jCFIjAa_bVv%* zLXo;3afol8rBs3w>!W=q390!kgzw&Cr7QLbU~_oXG!!<*bZttL-+1am9vM{bUn(0# zM!?8@ezQge#_6Zzf$)%$<*7dQ5n)Fc-{a3YUA>6xowg9|Xc8NoKt-wPzNImdK*-ub z^EVn@KDU@3%yn)@^n59~O`Y~?QrfClG^ILI@^L=DtC`26;A=F^Lu^@2qh3dz7ADs> z^)*9&4^rO>xIsc9+jUu>Dy=OsFMM6frOj+)3(8Yj>XjdV=Y#RiH_(m9#ozd}lXmj@ zqrVyjVa$3RLi@SeS{nVGQWUggrU&N6<`zWsVj#bUe-sOvHEI8K5RqAaexLJE%1(oM zzd*>Bf5lA-3)U2I09?U?^XlK)8dNiWfoh>Wws%Yn)ab=swE}6hJ8zH_%QBv$M0;sJ zW>`s(7M22>`2_^uyc+7cHn(+CiFPd+#N!42T1qW_#X(wHcUXYTcM$2#(igQ^IGJ~J z+Z!9%<#O@!7FfL_M2o6y!!iI!x|@-t&d@T|R)kakCS`@}%vDchPpS&T(Ozf^iuX_y zVx=x~aj>$^ffw{exXtpSHcKK)`Ax`@8?F=?B7@(0Hk;g}{bnNl5>+GZ6H;6`68bP=7ZcJUKX9 z^%P2rDl{FdCYkQQJVZB-zPGoZFAg4Ta@#K4o4ZYFaMlmB5?bbhMMB*$wv+%@o8T;hmY4&t_gM!Qn3)WE+)zgtv5Dkh)dTSAk z&|r|~bG?P;TU+$;?Z7;x=SqhDj9j(+3_^aK>za+Awf;>L>8z5+4DDj|6aN>T3Xob| z+nHMNV<5n0X@rKx634U9)kYAkU|#O;TS+Px7dLlmadu}KaMrb><$Te z{w``#0vh^G(u@<#IL(&oB4_;)HkJ6w>rcJSP9*6OI=}5Hehxk^x|Mm^4<_DQprKh^ zcPm71VI_st5oXfscumaN)}Sf{7@wOcZK!vYN)UnC3ICNKOFmXMH&FpPO8#Xdwe~K{ zOa03M*CPUgOET0v^IS3WC)f?f%`njLk8VchHh)K=oUVD+2#{C;fuJMESY?g`8$C^B z&ix*?Jr=>Yr#cS759ICQ&s@iS2o0d{xlMaJ4GT?uuG#CeZ+2>IZf!TT{tkZlxLTmo zwg~pAjXuf>${plg1=(f`G9>K#IBR{4>Q6l8Gm30r5if5chdtvHGt6YYLy-APumv_) zVU(Gao|(FLSOlaQ@a2*Ly4Zb1jRZ=>cj4t5vsI)N++uI#Xshb&t|Xmzr?C4cxxhfn zMZP5sl$(g?%{MJ~Bz@sbTg#Y>6xYmFFnD;ULPkzfeRzzWgNc{Cx&cbfXl-qMeO&|( z{9kHr5AMm;$Iw(C(AL4{mzR@|3&n4MAR zT2>B$9oc0sl7LSyFKT;BRQ4)6c6GpY$VS+W9*>O^7ORX5%GHkqVearv#6+`b+?Po4 z5X7g;^W$AIB|OH{E8Q_Kb7mhCC+ojsCif_eEQfT8Fg*zVM45>OYJfC@)%sULc!I|b zZ$ndaGiwWLqk9nr_2D6EHdabTbP7by+?bWwUz(|e#7D=6uyCFvNssUf6ZF+pG-FV- zQpPqCEYJPxnoX~44J^cPbL{Zv;X>pnY`2l)zzGQ)R68rs zD%vm>w!SB9N{{g1)Og>05Fa%!wKN9@(^ zW4CZOsHu+!=iIuuh&fpKFFk7Ft7mH_V~6LnaE0GVschF2*F}ps|5qp4B)ES+sUT~x zw@x)K!IW#1Q7&!7!?XcV2mhrfMD$}YGu5YsLn5t|V*~`~XS0q3Mujyu>)3XyVFwZp&V(poe?;j^dW`uUMtA>2eQIM5_7$HW+ge`YK(ZtMJ^>mZ z?;Y(Kn&naq3>Bo*-o`7+j*pDVMc|1deN{2yv@d?eU zB%?t>mr)qff0z_d{(^Tm0mkUgbF)&;&96;tO^!?Ec!C|*C1_E%n0gR{Vq*+@K!!kE z1Va6F9vJ|PC@uU*Th5ElF= z!|k?cOo94$CMeL?!?dNdckc(bGdjJuj`Q8}E~K8^FiQl$g&6kpZMVc0V$Iu4s5h_o z6R3e~`rP^=fyv=YEVwW?!`0yA!m^Z{w#-uJSmXJRk-i6tS7itUU%w^zQ(_S@`=~KK zv?^!Ba|M`C2@r?U<&tzi zNjY)<;{-X+@6NP4dBH3WXht5V?DaMDc&23`XKf*EVu|(xj`){{WO17Nlnt?;Hts)# zo7ux5>9F>99xhK=hBq>{<|Y$E7aLO#5Q*}jNA$h+s581mU5xaIh;&n%KBqBRCu1jU2PF4I^I@ zK|kiLwvcc5k&%eo{L0$a>C4OP7X_lE2o&8lx#h<&5Oq=V|xY1haONoUUq71d_i7PP*_BG=n=4|C6V`m-ob#) ztlyP13>CjGfMs%?qyZo2d(N6LI?LpPphD!BiTl&iIltz-OS9(A`K=0CrPPj2Tm;Cz zi=4OY`MO1MKRm0v9)Cuh@OtvnB$OD_+#Wsb%UWBHJMRS<$UQ35Q2D0g|BHEafuFMb zySV}BeTw_j`wD1PF6+f87hCx$ly1QwF|J&QVKfojsx_fkH*HH1< zgU|N`fIgT8+?)r15F;O#JYf(-SFgBihe?IEZi?UV`?pI{RpeKW#V1T-D4OTQiT&sw zkdThyN$Md*>wD)bYiO$K>T2pBSKwcv_o%Io%q%5C2Y8gt(La zjSn&l^{1nKK!__fVA!{9=!vGC${;<)`SWY<{ZmCu@$mONpvUFUq=&3G6{71 z$=~@}dr|btP#A_*-I>XuTgn9F;UkX4G;`KF0ui&_y;lc zLX7m>%#0#!djyi3V4tyD&2iX7+_B2<7k99ULk#I-J$xC-sT)g)8Djf zhN-v)OiAIifio8}>D>p*_rY_GwlE0^Ii<+>8eP;+d2!MGSygsb`m2R0Uk+ngw0q{* zUZ?BTMB;HI&N1bbAiCl%vh6$)ku6)KqjB=;9?Yegr3E!j?|T9kA!9PZlwIP2ve4nd zL$?aOeKck1Wl?CYBhQN-I?1c8JOA~+mhUWyv(X)?UH5( z$3`|rlq91+rdqr9bf(p zVXD^BU0jD4AAcY;Kl&RSEu<v6t}!KFB5=?UFsHG< zf(e`u9v0c8HztJ%O7l$9UFGchE-ue%XP^@9T^SV&MaBnB+9j?yM}$O1Mu9{J+*@1N z<>IPr<7BS2^qM66oNb|&h`)1oz7@C7@qU`QID#bOV#Oq699(oryiKni=cK052^gRu zL&_Wq4Gb2z(rkJpGIB(Xi&>qF(<}eGd|;J5d$U`8P)o-$$N@*yBvd^i&zO_1dJ`cF zQ@=x~aT=-#LFAkfj@=Mf?YFg+4y2R2_RA-sAn8$PGV8aPZLD8BebSz`iV<0&Woxc- zH@36Oudc1g&21>IY9s0WT7=(jXnL?`!Nvzq$3Hy`|1aOKFu$2mD_Tbqj6K5$%7+S|4Wp9Mw+!xlP5t~XFzq)4WxC7$NIR9}AQ(kQZJQ8klabjkM(V%np)fY1v3* zjp6dC*zGW{LPy^o+P(>Tefit6V%4;;!o91TOT2BLp<%D$5bT0!P75`)Ff=JI^4GpKuMJr_ums@Cs&simhtE`0+ofp ziZ6l0D5a7>eyAc17sU#o--ny)quHsrdSVIHrVJK-?bGt)UA+y5cJp^H(W=thFmm~`#s{_>Q1R8Dl0Srj+VRFz(kTkaT}vIKr)yJEjUsC`XoI^y(JI=36_F9f<_C1LIQ_c zZx;EweW9r;r{#p5AdQ~QjaEXviOaMz4<^c{d`C92LkDKK^85mu=x?ItrVt0B2WSqr zCYAR;m5wV_e}vF-<`CX4O(H1z2c}9#rzdDMo@oj35MJ=2wzZ9e!iuQ4+QEkhNfCdr zyw17~lG){empgdh%O+iq*F&YhY%Tp5yP~ z^Tep&*&)5JIC3?%ReU6i0!K;>&Pz15_{-vmKJ~R3S$Njx(+e>=N@;RvG$0-#UX2Y?5>|{S6c6>YW1#A~4_|o&7Br z@WmBu3oL;8_E`+E3XGK#E=8w?>%j}SsB=b!@8N#={^P&qs|DpWGc+jgS=lM*r@&CMn2Hz4-?b825U0^>fvFK#{G z^G>wl9vK+!x>{*IggG=UrTLMAj{V3lKt;s$z9gb5clA>< zOe*AS^O*T+-h?%y7{MU#Q{KUMFU_SgtvO6;sAsBwczm!=L|P#%9`wt#v72vIF4lCy zaV%(tp0A#TTLrtavvSMNd9CX!ZsTsIA^+^Cw`{g)4@Y|IkYA11lhH>!STN>!R_e|v zY$kN#!$egD&3KQ!99l>}SX@}%#dIa9aW`z^x00`Z0~4WG$cdQ^7cC~DWEVfV&nEbL zml^xAR`LbdUgBQRMRK|Y`3n)5a2+NRdr(0?#BqKC4`opyaabdPQBp##T{2{+8)QfK zACGJ(A;JD*M@0JWnZV|70Oj@7PA=)j#gtnL_1oXbq|62?5B{7Wh`0o(W1Fh-nQ*5M zDqx7{;uJp*9cMMkpk{bJX+PQ~OIt-}^|`MGAOixuGdIt`N>WZ*M^9ayJcKVY3W^Y(vRY>8x*X+H zzZ2&&0_`on*T5j9aVR8#%iV*-xEmI_X8*_;POja%FR?11v6t?zZ#rYMT-Jjp_3r{6pM*DE|QI6EYcw!WTTHI;1qOUsHn$q6v%m>)<* zt=5KWV#bB>MFJ0I`{#cFw)F>fbrUDe44!Z~kXuLh#3Z{3092zsKcXsTri$OV+Uxwh zTiO}f>Dq6%4|{v}<7W=+0sU$?_3JaYoiA^4PRfGR+chW8AuS^T$72Ims+l(xbHW$o z=s~vd^n$Q!H{lq*I9_#<8sb;qwYk1IIEN@z9qr6444`evsJBJ?^^G~W;sinVKzXJa z&vP}%8(bdJx{iNW^!QG(^7H`_V zLx&cLumMO8sL}AHYTuwfGP1rPUwwgtFj#LQNt>*-PRMXcc~P05=$iSgcL+&W_vA$e zn#RJePIm_vV<#t{Qs^0gxW1KBuF^0o5;=t)i)HH&mrZZaMch&mbi3Aurpi*ICv@H3 zO8SW5Rhl_+N}+`0z+q#I!84W`r>h^%i8Z4VEK3r}8>_BH&%6y+Dgp0h(fIWTXXexzcAS+H(73<3tKQ#5RW{>0j+ILpl zSthYN6l3%lgMg|8@t12!&%j!wlC^KqERxCs%$)+U+t0EW)5chNg`6|%;3N}TZ8O69 z!Iis`tyHOpAS6W>Xq`8M^DVpU!2dWpD+hKPa=OJ2^Ws=H9}_H z@D8XWRS@ax64)ZB4{Ni#*(Mtw7__lO@k5H;ZO(hVw)!xz5(c{&r zzUyPJHlhr0gV|9nh(dK@yo~g}xPoda2PPCRv8Al5+Zw6>ENslIWOX%tW&PwVj7N>| zm!4^ilAS~qwfUKazKNgWLAX~|`5Zqn4;AJrRNhet3f9g`J6^kLBWJhPCPcv3U`Y>m z*dL|!S$R_!eNEWEdyDa{$Lk9OA0TgpUN4S~tjJV3&Zav^T(m6+6$|lXqI6$Y!omnN zecoxZd&bICDFkHQP*aAdeaYu#@w|kAS^A)Oa2pSwVw&1gR;xR#ScugPujH!u!`O;Q zsZvjvA*-dp-1ij&qDv5)8xrhu>agO+>a8wUN3b8`HO7n~{weI2l12%0GmFYeN2Fb) z^_%Du`L#-?YtkhL7@AxT*GNiJjEu~qatJkO{Wb@5ely{W&nx5tjWunp_ztudAl1$_ zUWMf+DSn zO<;sTcxXkG+!30U87Z=r63LtonYHuCi>aW2$@B2HF0^b|=AMj@x^C~qDv22GTn74^ znwI9&XM;?IxKHDMgyk$GLQQ=tkFE~p;>~Ztu9QC<^1=o_!kId2WRYE_Z_r5%tp%mK z9=x|P!ZeWmiznO=(6i-eWu*>EpsEQL>QRY2?S@sLwLHsNe@BXsK}t6cSPqMf3zPgY z&RAw=`0_rfqlEmljCAyBHRql&QiIx6726DZKKnx2YM0)OB|_fT+F_jxUCE3Vp=f z3D$1{s=!^Hn@d8?$h0!~1IK=B7KGFYJx5*ZR|syULwd_cTuhO>hpv;kqN2GEAPMeL z29B>ochMb>7k<0tolm4uI83@1V)$$4AS5yBPh5(ouFP@SWHdL>esfC%38-H5qD=z* zq?2?>2`dyP5YdSCT^^A02tv;C2@-LfIgib{A!mdM&5DQps@q(HYeX`b6r?KY$Sd%7 zak4UQDJc`6hhmw5jEEoSAh&@iXp8?T^W8;#xafkQV4K|yT8H%o;!n)Y?@Q~|azs7E z?kBkHK2kPXt8{06LzSTrG&hFN4;owFUc^T|CYfTqg%;O@kgfOTss%ODx%^lSU~z!` z0jl>mBPCe+rbV6$wOy%Kk;O@Z9n5SH*IQMRAphJMyX`FONb`*hsOEsuaA zqs0+65hOY^_fHdtU?@^8u-d@PhG#u0vh-P;A>whx2mG3olL+dMTEr9b35^8FOOtV( z_4S<867Ow`aIIVY*XY^?*w46U`b)m1H= z^KH#ktUcrJerB<@)hxU5?~$m<1wRk6i$q=F+B@)jJY-~Oa7czfp}oa>g&@|J`IdK3 z59&zkE#Fc<1^8MXB4wSttAFr4axiU%!heeKk0iFm$o7(w(9sPH%R0*$3h-`h3kwMG zt!QW2$ofm7_lTTmbGbu+d$(!5Fc3DU^>XBwTD!enydF=!^uC&UJKnSR!lywNsPkPm z&$c#hqJ#MHs4<9S=UW`^VT0;A6M~D_aIloUa*W`hxf-$3(x0O?{~4>k=uaE|@5 zmYUuXF>?|@2?(!m9qK?(k@zOI)STUNNk2N?H*q-3x;Lf<(Qzn5u*9UE{oXDAwKD)? z2_C)K2HqxF7TgaP8#yorcxY<7s@*V$Jk|x&K)guYtS$-!HUf0X?n1&MFZbswd*7iG zcq$j5NLv|`biTX!c6$80oc|TjY{WPw=jVawt&uVm)cNAn0K3RVu1g9nLLG2ZI9=}% ziSbV?%ST|GSp()LuDnHzRWk_p&3YV9v(DhE3AEUJA|Q|$A&W57Ilh~AK{D=`;3<*b z75$Y1=&T%)i0kV7{iero1?UXFg8J@(#{PPLwtb^SXB|6{0lpQrWsy~ND1wj6$frmQ z^-AjP806938r3spp@>_97)^0iHkY@K}$-FKL5;XQrC9 za_d-M#O{nia{;+V<{$7oHe?0jBV7}j@A-2g_xZjCavww_4l^jZTQ;%aY3Mt-Q=#>L z$4)rk?6~0_21O|2iKh~qmu1GHK4_j{Ha@g(R+ASI;i2KMuX<_@G z`crnpGIOcr&#Cg~DobtX;xDs#)6d5o(e&NI;5nGzNF&#wsSh<5n!%t>-(SDOw$S=E zK^c;vkTmnKhEp`NWzMsQgQKsjV+-%5D%Mk`zor}sn&J!}PiMZZgZab%uy;-|x^&@} zZ`(G%bK16T_i5XQ8=Y^!mv1-MQUbQs@L$4}4}O>6FolKD?dj)wZhQj{YQt5bELwr87aAl{28 zLkWpeA`(Bhhk(GZtChdw8!}zw^}i&Ss45#9T7<OtEg2f{(T1@U}Gzjfd>( zoa%q6S#d9F#qZXQQ>xA4pKikz`0;MHYR}}SSQo#Ls_LX2U{|Zi+W1t;(2&TZ66!2>}&x7r%7#EJC z@8Rq1lV-nP)HUs|A3w*Wv?n|&Qg8*ZL#3AGejW>zn@$k}FwCsoZ+35QPfuOUZ*DJu zJMAC^I9#}>^mvzd%KENabzNxaMm@wj*lv=@WrQdP->2}Lyk>H^p%g~{!U0U4$Jf|k zF5zQiuygso*D->S=5{w&D9LIX3+o*0U5o-O^Lp`z)pA|OIjeUi_#tV3a4aS{DN#=5 z|LfF`9E|-UGecLOV{378@VN%z9MW?7bm1)J+tcy+m2wqkbN=j$3NTK~z##m5F2@)P zai=uD*BJj!1k;RF_>>mIy~jrpxCSCXgt=Rv9zTS zDYnkUiuT{?z-MG6u~g?|RaI9y}?hFW$awOM-R9!rz&h3oCT?d#=tG*NM7Js7tU z*!p-Bu_c~V4tt$#&krbJ7v=O|Hr)ea22@8X4M- z@~N@8@9E?9{zJi&48D`#743dxm}>>h0`L`Q`tyZ7#@)1jXZA zdAa-6RkxF{jnACLvtDH9K0K`%3i4;KF(XU#SKFLp;bbQy>+2|MDW~No!<{Dj+7rqV zQ-?b#?)BQR4xL{gnaB(y`~F+@N>Bm9q+XBy>P*<_b)6;tmP^?Ol?LB8S2i{OAR-p_ zWffxz2#%h#Q!>!;)n#kYMN3G&?V#`4dbri4ZuEk(*kD>3qAo__zNW@2yN75fETF-Z zqcbS}*RZ2GzFS$ueww+2XJumwa8GsK|1k_o$3(ioGGE_6G9v#GT<#AN(EK;w{Qe^a zN9tbp;{s$%G__?_O&A5;V9eVn4zlO(Xq=>Z48BFKvAI~@9pkv66OZJT;s08=ZNcj= zbij6C+`Hu&%&{`IbvAp0%&Gka^}b85-%fcRuPOuKu%0ll{X&b-I+2gNR&5oQ2^mo`ZPH2Ry#Nz=pS(_O`mif53^<4g4+uDN4Xgqow%imtk*q?k=%w0+G zGMMO<4vux|;#yZhxj4y##7PHCD*Usqb-Vb+c;j}pnUG_k|HkdkrV)F@?bKFuWcx2 zAeDzAV!{>F%OF?@`kl_(6=?k*p=NhLD@V~OC${*yzJv?V=A9yGtj;q4j8%>BqkRAp z1WK?C?aYe`e-s)>f{Zo+mcM1RbTF+rt6|v05*yUaz0)9Msci4-Ykx=K+qcDsqx1Rm0Mn%;^Kg`cjWtjlk@TE{v|hd4pldR z4H6Xve>$$FMm7?amPX@rj(|gky>)YCT~LibG%o2C`D*UroCSI1*L(hrtcrn&aVVr_ zZE<}&yuiVTK#51Pqbw;sLsfBwr_B`*Y*Ed51D5@3_MZ~(=~1}{N=6jsu->;uc>e|2 z8x3u=GHbv%qQ{eVX6^5TdKz6Wbyu&nHx0xV=eFB2ycoUz=HN`)D1*TGBWM9?LQ!Qy zAm}qV!9Yp&`)T@H7*_jgawUfM8; z#4ssF2WW{4%nc6!mHN&GIK?4<83lz1*oPMnL(4pRivB4{M`*-j3)j~23Px~F@!Z|C zrcddxs{F>n>f*Mx=ITOk10Oe2^dvQ3AyJ#W{QT|qjNFyfQs|D%N@w&y-MEeeVcsj3 z!P8j|>rTtf9QC<%@e?+rT3Ua`O(mQ&O8+D+f3zN%{8OBaC*Mbi=q!;Xev-ZC3z+{V z1K`%hm#1$!zXI%%f1?PyLy7iiXz0Kl0@zUa^kuBAtz~4;)AEM6NFLxG!3>d_yltQM*jnT%LPk{q(z26BHG_iYP_GUIM2@52%gio-Y=;w6qJaE zZRefG+Mji`kZ6zOZ4(R5j2Dvf(nFqa2(pESwfjXZ&sO9~^X+x6C3MHy?)Hp=6&Mx* z8+KQu>MBRbJCFds?We&n)=Or(pQtkDX>QS{4)M>;SrX=UwNSCJ0PAUL&U7f#rpluAHf5T@tM*CAVZaq8?x zYKe2i%+vq^Fvte~D>2(cPh6ShaEC~MM%e^Wv&0pIKwwp3>f2_JZ5E?6fG$j@VE`Xy z^l;H3ZvcIAvwXSaAs`bq0^6(HlHO^%j*uL$w7B4_uXFV|a-%s#dQV(sgN>Ua*;isT z9k+j~PEP)pkuUx=6f8KO1p$HMYoD8W5r6_p^=k&`uN6~_Ku-1h65DVVa2Q8WA`q~^ z74)e2eEW+O*s#_y`#QP*as{5(3#>;>3Qk=SEQE$Xcj?{p>*?m**wIQSyt1a0io9(= zfgZs!p6L`|Iejl)iM{DJil29e8!O{yWevXF>OFi0ciWb?Qyc-y74dIc-C4JfIN7id z0LgWzoSTA*09Mh)Re(Dg5gh)Z0^PRDTYOQ}48T?n=hnQWkA4BFpY-bySIHr>QW#@) zms;PAbCg%1`*cABiVGf%$@Gja_G{%;y|zNH85jxj;)9BgKq%P<6oB{FMh;ZBeV5EX z!o-GVNy;H7b({Cyr9+-HO%jj-Ttoz=kMirctdYZzXx};V`>T;?83Y6b7#Oe*5m2Ov z>TYKA^}-{fqQYRHeSc$6f`NUJ>Kpin9am39xv*VJ!9LU}q8pOx*~z=96$N+BcFM#s zX4(fTld?w>bOcKvym1D`6?L{>|6wHU`Vuh)IV=2^i$+}hU5dTZ0sy@4p1wX_9_~(< z=e=h^Gu4*B45qmcJIR*8<4T9PJ`=*wp357iHxs8I8P1W?|3m-eVD0`{2TX!XmXSz* z-@*X+ia?nTtFuwsniyWAKv7h7`&(FIO9#Qr5>Hb^i|N7Eok#K7)48=xBYH+VWoRr~t#_u}K{>X{_z zfAVWfD;t~hu?noDq{5KyotT#s_DlNT*^>;zZ2^y}JT))-NF7=E&VsVyj=CqepQVM? zb(O>a0<0iANTBx$VIZhUxxXsZmworVxs&|vFk<_SfIR499|C9)ciM{uwdyauvNNe^r~}Sx{Zz=SLHS=4Z z!WU@A&E2~TdiujK{noS5*mDhjI(XIp{WbngWBhZB9mWqr@`HWQckm5M@-w9UU4jhk z`IeCQZlUPi-_gR4yZ&k3>)|`rZ#vp>`tV!I|M}kermOwb_a6NrNBOCJ!hR>C1oMjq zOx|q#bnJd6r^o5{nlpZXJpU*QeCK5Q-P*_5ZEfH8EcFOj>=1W+65k98a4h;wX80YS z_v{4veTM%GIe*_}{v^}<*fM-)LVwY)f8~4o{cH=k9QZv`^ms4!JQoSLyyWh@hhD$e z(tp43oyDf#6Z4X+{59Nd6i8_)gdU zUak?~J3!9-$hChpuX+=C`NX&RlpwzQQ2Y+H`Mjb3meBw7J8A#1SrRx;`Yz-1YySCM znCkff3cPpzyPLq*KgR39O*910cTa`t=aK!-6U%pL&rdeT4?HkHLF&`i^HRYyT|k|| zm&W6(n8VL@^aidOEidK4&#Ggd6=;a!RVTH--N7=pl2dgF29eOX=-0lQKoq&_zj*eC zPnF2KwR`N~+SN^MZG?&2OH71{HKsocY!|S6x#{J_Yllz*AO%-4@(}*8ZQ`SzWKeGnj2$h%tujwvArUDVpgwDr0`nvn34aYa@5j>EORzY^JHN-0)1kPS#fG4D$Q3<=n@rJ?yzHg?XsR_SDYpJsLK%r*q=T_Xa%^`%hL_F5n z&v?Uk^;^oNNcTbB`RtwIMipRTHbXwWu3yP`8Z$NYFsT(e4S2MqFXDo(vuVpaA=7X!Z)dSUGcAf4{Ml>2kf%xa*Z&s2~FDfX7?yfVnO6!2+RKMf_d9};@qkD zYFyFh)y;?9W&bdZ$2DKoqyKqk^%6LB?AZqN7@D;hcM}6tav#6AJ8O1d24?)Fo4+~r zZn^enFlTDicN7{{+Y@U!?Su#dEur{!n25mW96CXM!`w44jRX&B8f>V%17B|y($VcLBVne{YmGcJ@bI?5xqAsHbgJ1j(>(X2O=f}=`_I8M z)|BJL<8eN`-H~$~s;T>+_OPqOTYqGm>mfm8@v-8#SBMT*6u=El(O^`ti>6(~f1=*H z-xi(aqFQiA2*LcS{pPrm08*jZZX|G%Gj=tH{}6U36dtYjuJqbnal~2FyAKYPIQFGz zPS*0wy`S#oT43Zm275$f+hSJ5Mt@IxQa-{oIfUAf^p_!$tL?I2&V8^d<3GJRCa*c; zG^qixaM(5_Uh%v7^LP&BNA3PTW;F}c#2>Z0juuQSzJ4ucaGhG=K+?;oja-4j?wYTa z7;cf{GQOCB$QbtP(xT+e_vGC?S4;KIgZeIa_nCW^^x`>KwwX(j($uDa{dRS!W(Ne; zt~oaZw#Nq|i$Z7Zg-Gwb1qM*eoE&8l@q9%lH~<&A!P<$Sp&pc|#RWyLjhOHEMwDZi z16n^XQ49aM`AG{oUiLUL$VIgJauAm**5z;Iizdh&A#C>Xb~il;={Eeia(IJBWZ(E( zI4gV$3e4=J+;>CnFOjwWn1Tn*n#J@AYltk)Ct#Reg~*H}135h}WVd)i?74WUWYKit zG}-*a&WpazfPpkvJfEaVd0_W$_sQkX+x(^lGB*+7P>67Vwh&@Od_>Z$!e^i8L??YG zzh&PEbrgOVP8UV%7k0Oyn)9}}RBM%#FK)P^rAhVG9q`wVw&jklkNGWu;5h*yG8hF{!3V@hQJyl!B2x>y zO*0Hf#;Z8w%xNW7txUQc`3O_>ons5eq+MV6W-;N4+bwE~LPi;uda&Hp7Go0HLzuak>_r<@L>RhAu zpMb(VMahgi0q`BUbhsd;Ul6qjHQ>>WJ~##CdcMibs`3=pB1$|a=+qaTOC0rLa)I~kL50(0>}Hvs7xPv$d{vZwF*o|uHWuiEga z3T4tf;eFYY8v0&Z^<(oR$E4+ zI$Ohc>n$dr{W z^(Hs4#J9V+p}XjlQPCf}Bp=XNH;%GEsCL~lUkXPvwQ?0T3$&^wmqTLgTR68Wyp@Uo8CKEZh8x6*rNZ(c-`Kta?=ve&-ou zJwUmd%ZNwkB{JLTx02fbQ#W%V1pJ2ax^{XhSdgdcHrvk0raM;2eXuhjH#iHl+2NV} zLShGy0Um#~uOS|_2ygplv)J3AMq24~T&8pioq?a;H_#p-M4F#ENsmX@Wl|^L^Dm6o zf5>?5II=dMwu)HngC_m>zg(+yPJ^=>vOw2-L{d7I)RXj<{ctt@GqV_l@%RP>yy94S z=v{Tu)t#TW{3byCpYj(ZDLdb6Y$YQrF^`cOmhV=Am+ox>59i$}e-7yXfAIhQ5MF--pwFMY z5Y>})lXG?N=vq&|@%Yv4S@EXK8kekqJlS@@m5UeXfqcWX5=+e#+l`om)|!hwyuJG~ zxCHCZJ!#*m>-@|!kyqLrz{#$qM~NXqXrOP;%7q*Em0RVK6+3=(dqG(%b8Ewz4t?$l ztK15FuyDNw?VM`2{v+~dLs-vQd(1{cV$jyIc?+H1s| z#8NE0Id!cO#*{uBd36cJ+q>x2rarv6a1$YYY}s{~Qb-Z*`oa+y;mHmA-?X)Gow8dW z3F{?8TzjoopT+(AaBh6v$rde4gug_6+#-5YUz- z;rMby8;88SId{U=itOqjQBqYgrBEQ0k{X7zMjrd$o(E;D)D|L-R;dK_JPB0MjNgf| z69>Gwa^;5~*)^!UCfsNXcWNjvS`^ohd9FQL))Qx+H{MpSPt`lJ39CJmZJN?1M#iHZKGRWW05k2atl_b^6=h(6g zT0pBELNH_Mwmdt-nO3BU6LiY=R9XF@!}=cx91QC6-npwRGEsb{NdTY z>*6=Haj~x;bGnz96;_z&N37l6H3iBV{>)N+>gj;pP zF!l3F?D_oNEs7F1x7%?&(K*IBq-e95Ck7)f172e26T!;cpdhte``NLofl~FpBw*3ho zjA9Xx(bRzh!mjh~WWsxTJb>W{$3V9GD=q@!97!}=ZA$HA94ouafV~>dATr!-AHL>e z6S&ozr&@&;u7^iedX_FwzuP8A2EC0_<@TU|a)zm);@L<7e0#v(NkL|N7c1n1!Zr)U zmnEbJoo{hNx6Fbm>$L1+)%5`OK{GmBZ8RsBp1*2MO?s#9ZT8xwk zl(`}Y1k>rUm1K3Eq$&f)Lxo5sc^b%vFDgn^ij_%ee29t0v^kn5wc1#Pf%dUh&8iG0 z?I0H1KE%DGHlyZk8{qj;LQY`pp9VZjLt_6XU4{!yTweZt;WWXlR%VG1eFCJ=15B-2 zGt+O3vf|CtFv?%LSazo6&n;H<%h!A7EvU5V_W2<4`I(S%oVoSpPZt?3x{x(%eQZqx zjoLgli1rPXRo2_*B^E{e7+9IKR;Yc0Tn(bJ1lX*$-5pYEU{wUP{uZd@4A?{ng!mnLGZ8q#Ni%pXBd_QB+*1 z`+{M@c7uThkSF5ygGdS*gg6J}peyzXNIR67!iaPds>Ra$z{^G(Am?U(($Cp7BHp-laDalwk9DKF!AuiMyMo^|1Dx1 zC;%lZutq-jG&DrUvt7`BXe)tC5jh*EztQ?Kt7dT-W(fnKg!VB|0?P^UN5i6I{gjl) zH>1^CHqPqYfOOB(6CpF`B0o1~EmUp|EF3@Hb1|E8rH^Y%=n0fKKTNKuU-8<;nB1mC zo~XBOL1j6?NKLyPr9poaq=nGArGXm@8@olBD7SB(z`gV0BuX|K35hw_4E^E`=$7QnhADBx} zuYs4jLZqA1IE4P*_tB<&Qao)g^tbJ|chbamw|Lhi&0&)z{;Dw6n&O+q@_yCaH zy~{wugJJ|dl8NB94xb;CBo0zHL`tmQ7oPUu^o2g5x|d;LnJGP>eQ%$c(!}}|YcZXf zfr!ys@;B`d?;!3c+}@mFP>*9Sr*!Eq#O z^NQ&@EvNe2TN-An60w&!1$(1Er@FPfwF;&TVzFIF6X;$pPGU|eD+RBaIBT#` ze<8}r-bCtsOH|0jBT`agya{@kTpW*0dILw}PX;i!HnEK|$-QuFS1PzvG4CTk+H zKyGD0Zr3b$0NJ^ONmA{7>xFZH*-Hu|r1w*xq=(~uMKk6+WgQ26d|nL?d@Q5np9fc> zvIb09%|Bl)A5tFSOlMakJ7i3}{pV0kS|=0x38KT~3rv$6A+J;wF%rWH6&$q}(cC$1 zyJI{tvmp^yrZuSD^5XaZ+3HoL#zowuZ@7eNMKO4QGDmnSLT zr5JA(Z&acIWh6Y-Q#kkyWhB0^F>&P2p-E^bjL>d8KzYt}hvK#rY~HrD!!*A0KQz=`8(VAx+q6R`-d;CZbxTU*C}F>O$oqMAkpk_ zsANuXK*N*)*#3mP#)AA-EF!%809#s@`!K4>eULhf#5`rK)2Q}mVISu*JirRP6uux= ztThzdc(SnpGNV`eQsMH)v2D^k+*Y_~w-1G%$^`#z18l`_qR^s#M}y@pp+(5-)VgE+ zg3j;_c?mgihKds}Y`T$iyG_|_vr2U+_wSgEFTw4A?1 zZ!LB|C#HL(*7&#PBBXICB|c`9J$EKvUSVV!Wi@-gg2@IO7H0{TZ09}hzyq|k5zG{NKJI#18s_cO0YAPsEr6Dh()< z?{=gNb*TxpfCgZq@l~P>p zKx9Ir!q&aL0|4r6^7F7}V)7ENLDL@t%-DnSb?<`lGU|4k?;s+50t+jxKruMZLym(f zMJ`j&NC(kAb!oEJ$ixuOeD{E^4E@r1f$=j3HOq<5S1T49eVX_*5dKas{&Hj`Q4C#e z(qs`8c?!40$x}q9V;{M=Vgy$1kB_@xw^{Ky{}VZ!_C-6~3L`~f|6q9u#;#8NEvz7o zxwAVfQe{=eVAt*IKF(AW=h7FJ4;Ne#wmWDAgeFA+HDbn?k(;C(b>T+ETQ!v}D<8d_~oQ+4CsM0l1rrkL@dlj^5V7J8GCzby>p zri|B!KFsWfSK#En)*s!Cx>cyi)WJ(Y>BlPi4XuE1<8##3ed}0PinrA0@;A}QqI~nz zoTFCO1|NxQMo6doX?&{^$~*yNLNJLSp7M;EaSu?>I1)& zXlv0f868`jyoa)d?KuqpkUiv!UDas}De?aahc;@pS+n0n7g=(?scU zvFsFR4qW54fs|h>rZsV2o%w6dx(-4DUtL=tFVmh4tpQ%2d(%cJ4N zUqmvtX#72Pb zy*hMn-;qs=D4aAKqzX<i}lm%-Qf&X$+T^;7@!rStIQ}hU8=N#iXTK2|mNdQ>VNOA1eiiDormeVao@LDodG` zlJyIs^D6niX2Mjj0Wy+rWz{Nl`}K?7f|;t6gv;B-dCnsnC} zM8y%hxzl5NGTuI@FoR?M;=NT%M~4bAd^vQhf9zNevbEna%4;D85b&HiN=+tLs~VlI zQ3eF1aO!Q+OpdhTSo}|G;mh*`I_3CU)C5mbL8J_yzh!L)Bs87|tq2^W;GBNQjO?4U zc>*~5?AFetM>q{gy)~F{)ZfZQDQnqSaxr=K0$JvPz~gkPh@{Hr)swx3tGAjnV^gz-YyH&smm% zcBeUUy3ePD34D{AuGnXClB)x&A<3wo!HClcMs5v7LGGjooO&Nan<-YT*hs`=&ZWD= zKAIo0F-g~J(viI^Nf}!~DHmEM$N68cK5kDrJKM1lujEz>A zyDwch#CCQsH3q^cRc34A8F|)e#Dw_R6S!J;@<}{yO@gh)=F9TcE7IvTcg`Zd1dzdh zgfH1CvJcH$LiljT(wM6Bo_v~eAWt&iOfr8syRvc~^2h_C@Z|~CDowo)sHDU8{(IyO zxS>6Anh`R>TfI_N6Os-Q)@asR9!&Q=wM$mEK7AGKw#}cndbHy5HG~7|4yEsa0PsZY zTl8Ww8@v2eX|nC;3RSY!td38kv7j}w+U%y^z)Ich?vK@YO?M9@6TnkP1+?X|_rh-?6yh z=*Z5E^fYkL?UKXTXfuIRF`~GXX*Nj1VLmY|JdiK(EuZL!87IE~g;<;(vC23(KzgPV|vGi1}f%t2l4C?1XFpN6^uPvwjgyk=FYI^{UQD3}gd zW85c+&>PP$47RFPN|Dgg&O{mxFsp&YEbhaqTB*vFo6^-e@@d{0EpV!==v+|?Add}# zU8N$3jk4)V1qSpAeN7-sOoidwOj)>2V9zmfhord;Ve90EK zSnBGfr`uRaxLWSo=hm2fA9;?N!F0-`R8RhFYz`sANRks_No`@7I(+jrU^||WM0{Qu zSfss3&c}|ClRAqgw9Qts&pguT5;eC|wYggARwk-_>1fm5Hi@1?XuiL#Q0_};zE+H< z5F~fb6gH$joS-Cq(je?qU&qfB7ITfPoVU3et!(Ge1uKkdzmVU`74KfFT7rXDYTWFe zy)Yg%`qwMms29tK7xsJ=-)1jPwlyjk#EycR~8 zIIj`ttFN3qNfWlJSu$;G;K%fcDlX9$ z<|+4B&<%(mK*=HRk`%ILJ{(znAE#CadQ`C9KV$ggYz5DvOgh(BY!x_MvvUM%?a^Wi zv!so8)?IL_0rkcsLLGm@yj5ahJ(eHv5bcyLfz>lJeqcH-Ci845{r=xW_}$X=yooCZ z_4W+O9*_T;pSUnV12X$C&$>CljaJ=NB$;ZFCqJlV?zSp6bv^_-SkV+(ww6H`4Ue&A zp-riWnot7Pt%}sF)1$sSov?knSbR`JJPrFmht*ggk9&`Z85+svdf@e zym_T@o%<%K`U~fp->In$$gtWt;K@;=0X%ida49g7sq`+@c_8U~v4!Vp6IgqALyD5( zC~fSwS#qn60);Qb%q*lE$({2~ni`AHQR>Rep$OcZ*1%|3QdMJBb20^N4|oWhe$3i# z$rtd6q*QA@N&>Xca%V#1u; zW}&`USr=c)+twxm&RMW-Ig<4_7w<8`$=S7!E=7EJNhS4HI^;YbjW+cM>fp6HSRRCM zRcK8_{f-{iDOM^6Bf4V$19a4Fx9U<@<_b!&S|sD9Ep4oht1S!@?m~}PTFS1s4&7KV z+;hDcU_$XUWkrbTFff3?=U2Z%iuSFfoN4g6vti&S=UI8Sauu?2iY{L#oKmCdCslRC zukEodV=z4cI;v$wi$$7tG;!AwdqAhgU@t$ z0cS@vo!ywgz)m-FH6A#A--#oEN^OcxuPvI&O(EM@!hl63wMTfM!Bl1VR&b3Mw&^v( z7%#2{&!xJ`Wi<1LJH}iU>$zgFOI3EI(K>!3(~go0I)c9Sp)H94Yf*|48IU5Jr^GjX z1(1wSY-;bat5j-^tbxl4@m(Roral@&f}HppXBn}kqY~>Dsb{NNaq?Mna1>nEe#P+1 zpmMuTKhZ|L2D5c;*0I=WI`{%B*f{SPYDA}SrTXH&+dAF*`!IJY-YPO#zE%^AbD(M1 ztMPV&In`2AK2>CBfr{E+*)nB@Z4CjeW91xSN+@`u!umfP;fZoj<1%#_-Pm#+HK8g< zC&myDJw1L?H!XbF$hpZYnqO^N(Z zg8NUKP0Vw0hvxUoJ0w9EP$MG^ z)9i*L@xp>|eCP!AnQW3EHtBn>_LGrgq0aU#+xofLg3~0SmX=L|a*D9J`P}1T>hbJ~ z(l6Ci*y@{&D65mZp+~ICWA1R;(r-QjL?kDQg$wm<4<0y z>hg)cW-M#io!Mp5na2h!6Bx_^-n%W?Z=|7KoLeP~)Jwb&f2J z$)l+a{fZKpI8qQ1nAAP2@^jK0b2L>;_mcNcaV%bSV%xe5zlDwa%g34YTZKm+?&p%T zGrKxyJGQd_PR2EgtEcOf3{1%aUE8R12d0pfkem$$Pdg(nDp++QxmN1EmL^T-lMD0P zma{M^wz1T@m=Nrq47zadn7>2OAq85KGn>IG-oawEs?t>{Ob;~+*EFZijsj_HA4;yd zD!4>aMR$={C`#YT^w8?)!gbSY$?FBB`9#@Ewn7@(;v4QeZz430T5hd68VRx1-}WeT z&m4}GZj_vj+&OK?t9P#95~nBaJ=48vS8C324G(~|D|^*ptcXXOhMHQMZ+V_JZ7pfZ zq5N93jfir#5N^vEGM~&kMA+UG+M(Tf0UkOM^1o;;Q;4S(r0dr%^4ONdVTidpAx+qc zVkgIy)(kf#$5X9Tul{Q;<~~;II zW~*=MNja)Ve}SYvcTdky({_()TE+_nE)MzElt7UZIi5-j(X?W^?b^hBe=)-l8QzYV zt!he+DyjL)B<#*Vomh5Y-YiwZU63>HRg)jGky`n(IB z7-|L1jnX1{!eMp+OWg(^BsvVm^vQrYN!S6Dqys61PG&WV$->BD1^&ImdxPj2QnNio z!n6?i>&=X7lZaezwjp(!Xb#FxD@F^yx@)R=&L&5pIopoAW5V|w5iUS6fcRg-N=|HT zJyzGFlzQHL-0+HzGBR|%R0YFKk+-_zJmVhBNInXH{lzhG%5p9ar5rzlmK?t+@C_99 z4}E18A45+P{1Z|EcH8WNWZU6qVu9s(e(gp>!?eZu*uv4U%A`4PV;xB@KCAQEx&6kh zs{YJ9=0duVQjP)I{V#XTh?(J@b-cAM^KP_RlBN5nbT`Tci0{{aiv5%Y3a@$S(> zuW4G663aYQmDC#-gX2O3vxujAgl0A*b&KR3n7blYXW`#7+2@l3FaDuJA~`Tcnp~b~ zsKoSU|Ap#i?kg{$ZLWZ9WO->KwGQ`2XU~G(Xe#^}k+mYta|>sd!)J1H(lc&jM8FpHyaB|TG}zc_YPlKB0k?STD&Vh9hLJ8U3hYR%%e&v$cwIusu9}ZCc)*HLO|5D(84x*oa%x5rf0kn%;sDx1P{d_ z>^n~-jqwdS*zJPHnAMwNeoI3*$ckMpwa3p+X|-}Qo68OMC7C;Jd*yCnik+84OK2p7 z$2rlygin?09)EwI7$9Dxo4VC6&{Swf_p2_Jax-Ky=dq)OV8uYo<`rB-V|?@C=d24O zBQ9H)a5u?KxN0qkub|6T22u+hK1B*^P(IsHU4TpIxipViwi{2A*4lJJ z3>+5h@U9g|Q&B+F1PZ~QY1Y+BVD>=}6Z#+~?Y+O0ByVH3MIAoQZSEGM0jD;BmZH!6)~pLx8{n*;6J9Wdivl$ZaVVYQ9AMh=%j=>aU-Hi^Gcush8zlw3oZ z=&U&o&4H#vp6e<^%zgZVA zt+M+lOabv@oNqK!n*g1<;LdZ5M?ZAF*bUKZ^J-)tWu;y`oPsOV`b%yC$J)9sniHXA z5OYKNSBoHy6C_oQ^^KWDweeKXM73MKNfY{)9k3I!w2x80_ZZgy7#`;^%RdY;f}h?dwU< zk}5-^M9xolsBa?8X zFV*fJU24A=>~yAf6}&bEK{WZ?n|}M+_m$%wVLe}Ub|ku58Kgj}7M!&!?c$9F>W)|( z+8dVdTT=oy%xV+3AltnUXs-1-F}SR4vI9Twhx3yfdkwtRn;9&2wW zh(Mx6L%g|h!zXyajV~;@;E*O^b{)lsxCI2*ZW|ybX)a*60ck@+le^mUEdv6$;YgM` zTbbXqiV#ULni#6ozOgV?aD6$qGkpjFn6^2*?NdAe!^hIVUi=m%M{>FD=twV(dhuDr z#^MKK&ne6rr<%Mp+_pGfHHMmbd?nIIq>1Qc87e^*_(GU3>3l_&5q$Y+E4((_!5Jqm zhU)-d_S@NpsU78y1dH!>)_TbbMH64=P^dx#{SojlC0 z46<4}Ve9eH})?snOf$C zVUkl&k;^n?u%ayqIM6FwHJ96rC`469FHBe7f=^MB@QlvYU}pacbzwI>}^o>(i zepxP2e&*O^6-Px0guISIrKdGCP=O-{w`iWRvE@G;HY#7jM?j>;Gs-|Hew6lP3wwsJ zMs_acT%&^%L5Azjj(!imaJ3?eo8XX1Ph9##A>19n4LM$R&c^&Gi;9Rss$EssB;*;k zW}o7Gdf3i~P%)=b=P)qq-lo*KoNX~cN@U!LTZ2}9TC=4qsAWj-Abz z6GJ5yHDkPpvhYCpkykj_B8_D%l0$S!xFpR8qYPezW}oI>6+3wh@dWMz@=52_Ig2aD zr0>8(3s%TU-J~wr^>A;us<;P!u?2do0WG$JuVvA9DX2%daEoBAgt9&ZZa&*f;*b)p zVuW$c$W~Q3gL#FiWAX35g_ud0T$Cl%ZMH~;iG4DQxxVH&J59hs8AVBirD9BVr2#=8 zU1IB&XAkmYm?b9h_8oUyKT2b@qe** zj_s9nO~Vd$Y}>Xm(T?q8CdnidXX1%%+qP{^Y-3^@S8VQZKe>Ov`w!m!*q{2SUdQUH z>Q(2N!NNUMXjsE88Ybq&%->w;Ve~B>&&4g`1GbgtD;gGFFdG#3sf2TlT7pf>g-o!1 z7WSvDA>hIA+!f#h1}!^r)@1l`d&vbZzHFB`!rGXhMRrbf1m`aUp(83WJ9aX0tZjT} zsI)oR-x9B5O6=8Kgt#g^1vspugP9#u-0ayQa^L7V_IV=%x1pe6@c+AgxF`im=(cK( zwh1oValh=I|I{Wbuw-tMGg|M-hx|8)Doh$ovW|e>oYN^q=qz9iYj(sd30`b&djip$ z96%TCu>U7_Ep!}nDmNsHAW3~2W@%@8`%~%I8LLT1$JuffQWUtVc(8vVOc&jN(^bg3 z9#BsBdvLQ{ ziE$gZfbud9B4p#DzW!;PvOs|&1gZ*)(exKJlT6#r`=nqI5>*6jja7G=vSc@{Y$#@B zdt6oP`Sk0WjJi0yB@8IkC+0*?j^E0LMTPbubi&gU8W>I+BIUzfA_yc>=b4;!56>iM z5{v0jDMLXAOr)Vo*01Ba1{O7l(0Me`Zw5!D&FNY)PRJUZm-#8&KRdJyC&sUq?&dkp zCR>n4)LX3y(=E*g2O2_k%t>p}Ch74HB-<|qNbFNwn1sR!rdrT9^NkdH*$u+Es-}(f zcf%iv5|M4`j5?8s#IciBzF4ca&a9o~JcsCm-frwO%Vh~)CZBz?@7ms-;p2TgUJ)*acwI((p@ih$s)EDWup z9EI(baR#(-%)*qFDFD?8*}~0;65m?Ukb6Ku8;bH2 zo`H4w&}@YaTP5u?ozDx4CqPpGzSvJGWeMWs5l5GBTj=-L()A}M<`Cx_$3J{TDDwM- z70R6h9z#2dwWh{d5L~w)_9OE(_ir&tzv46$2&ea;|7h2Wt&n)JU&68!ZMv@75fx(3 z66ZSx2K-)!&3Z1au_o{m!f(y50Y0IRB$#HBdSTvtybZ5P(_9Zp(bG3uX_HFi@MZ0o zG8&Uqk#fI%Dd?*dpbzMvk!K9=NK-fnSGY4_kcsQe)2ScS>T~SsJxU<$+S2R$>lvD( zI`m;j+A4Xb7Gp;Afx4H+wkK_sDfQ|ySefa$F<6}oR^licHu*-c*SmOJv8sc`0z~)H zKd=C+wq5ht4AUGtD})@o5+*rHE}ONK;coFhdOjYF|8P?@mhSjLU$z;is6{=usvn{v zr6Rjks$@{E)+t5=>1@RujRyz_91b{p1Nep#5v5y(Evo2BdXF4SW+rWkRm5yHhSPI@ zuyo_jjhs-w=_3`$ODlvgpE7rbT#Yg>jHuPm25uJ$_l*t3yY{Y9yAu0Yuq1_S<8a#e zf5Mx#Dkb7sV`G$Mr=rgPrTiWB%@a(DSn8v=18R@CbI;f-eCVC6IlpRvC*!Yh| z*X8)HkU%3hSySJf&3oFv8@Nrz9@CCv9l33Gja6*^8raRrRVpLA4+Mwp+3Z0 z&7~2K5@$ii`#`6M5*j6GG#sx5t8x5yZ-#m5LDuiKzmlLQ9D0;h<9l* zYl`1`L7XWvoQvmLP(a=n*3ow3wN}LQ#9HIzWOd~~k2v8$8N2C(N)8oMSJ>6^6vBw> z-jLQ!N>nB95|Tj@*UEUnBNXk@c&imnuD|zEQ0_mo5%GN;sRXq(#6kj2KU>M7kjjRS z+MM)Afcr0Bj^zw*9sO52jt0bns4O%zE2v12PDA?2hwU#(au@(|5 z5KG&0X?PypVg`yTsvNHn52cEbeC}wFdEz|0`ZaW6IJUP#+{B`_1+$LwfQ(x|d{4!B zeHC9&I<7%-qO{|`Z;srVAtT-uKhA?P(jJExU<66ULab=Jp{_I6N+JuVqVE=z4qII) zpzaA*aS8)uBin6`b80rJ6QaH8#UQ8XP5vP*A=x0=cAOBPS~d_`;;9pCe@*gAEke^K z>^(Ugto2~$El&oF7 z06ajVQ=u8ea53_0_(7T|U|G{%p;_dXb2YRDy3SGEF|9r2GWzZ)xDQsBNFobEqthlO z>rf79%EmjZMxsII$ek(1^^1FD;S}iuKOVZkf_UGGgpup9J(ZDuxsZ>bZ7?H$AGoz@ zde+PvjcAOwkagd~saGVST7ADXxZHhc$$-j4PWRLe(@YfW-0eNw$COr;_^a2YV(Iv`W86})}q5rB6< z?B>qH#kA1BuJv`RoEXW+=Ty3jqK>d(VJ{bF?QIfu&xENh)7li-5*yCrKZqGT8;S9* zz3En{UMXwZFEI3@G0jtK8?F>(8y}{jZ_^}aS9lG3b2ueB=%)kXZZ1j%MvWa>2j7*u zoK^PlDa3y2uKf|Ccor_#=eeCljH92;kK14HMdHmW2co}ui5ei+wc>yM#`{s1K+LCxMud6D)pS9d6U7Osf1=?JlHO~_}Y$>?%u zSwgod_fef~H?V2uf7f%=tY&cCY)sh~S$FYym@K&?|Fi=96e*mh`Z?FnivS3qA$oQq*}W>AHwqM#)NrbDn<8VXE<(jVIIf_8;)WDVCW?frQ< z0S*l;-}h=Zk@qiV9*edJ%J#v6RDw1>MsZIm8L;u8S^J1~B9%UO z;^Nt^^U-@ip&{#~rxnrp=^>Y%%xO{-?4ySGw(bv#()SNu#aqlL5HqO0fB#2(K{mTC zuuE!GxTrN{_={A0L=#QduosJ%NhPtAqW~*v?aZ(-ZKCIZ)?EpO&t;F+(pe zeCSI|pZRGZa7y%x4E2Qx<2?!beX0%Y{Y^{}Xz?l9Ggz{HW2hV>r#=?89t z_MWc-9XzCh01OD;;P!>+@%N{dAa7Tw#COppQkE!Ma3f#h+xpxX`G+W$}j5PQm{Gh zdyop4+*pGgL~{N{e45wm;c+knxFL!S6FyHu_A4~GeKXD~4jLNj19rdGG~dxY_yR^zku@ zCJ0ztP(IiT(Km1n8$(c~{q>?aEgXvxB`eEJ(^s?eY5WzosERo{x7$d!>%NcJ&Br+P zSj<+TKZ^a{@*40joBhW~MiHgLt1l|_DsA^-fM^nfg!^0cxCdyf4{<#Kr2>DVCJ~qB z9W&dr9&OQEClTLwLBakHWAgtVec1GTSlswuEA&gimZwzCS3q3 zW#G{x)$ZJag>TraCN2m^!x*#wbtoSwd!=;&&egvE1w^kjr~t=@acbQh=V`8iShm5a z-+~uD@2x`OhMvtI=&BXD)3;vOBWA47!8r*k5x>Ph@y_mo418E#(n%V|x9gghKjM9d zA|%mz9)LjA13;`s<$Iw?uS0Y&(6S72Ph$);^jaqIn$WS6!k=?Y{k*O8L?wp+Hc=#H zI!7w<^$iw$WCJAZcQuN5{C=$+vZlp=VDn|kejj@4RUeuX9H-A!zG>R@qi!$L^71`e zA$^bC&Xw#1^{$$9>+dk|kIKKW>tjxI!zRJMH^uiRi`smDm?EpZQ~C5C*rQ8Nf?Ami zD;v2v{fqz_kP(}-k*WJ>^=dAK5(s_g@Kyd$A@4(Ta+?Lg1^F@%0*_xJEQkLl>~Fk!ADPUI;ilUMeHSD>4boFR!vdiec{lf%e*rLN40ZA_v?@9Pjd(R$~Q%l3m%ZHSs|NW9U;-n zG7kLvmpfF6VCgq76akjd&(+aW2b#OhPg`COTD&A@(KJ)DeW1^dmG}lBfevb?{LY6Q z8e_^dii%&*MwFih-pGszPx8>$p3`@3$QdHj=V?qw@;ndI-HnJ}_Fv84PuYH&xc%7P zdBunw`Ua^Mh#iSB)Xb~|?$ufL^Bab{yQY10yFgBt7KQ;JMQ%+TEJlpFH-7U4wos-I zf(+$%!1vh#4JkOxiD= zg)*;>X{S*)R{}H5z>L zNgTE{&&L$0Xc=9j4#yP^u;I5lv2Jd)Pg`>*L8G|{iP}J+VEoI|sD>|F;0bt=BzWG7d(P|2oSik3ZzmBDN zW!yw)cHhkyVT7nWj)7jV4{%9_JwBJx5U?d^QkUt7XD|V^hJyBbFcu5#t>74Oh<7@B zW0i4h6yYn4r7;*Dq90DXlpFOu6-T}Rj=HGkSlPCu0-!C={JtT-rS4nUM;KQ9q)(=_K1(MV(%3_6Rx7A@ixomBdw#7tg0c zFP}@m1w^n`F&D$ey5FbkM#eAsHoEE)xArVV;cGh8K7^>=hfO`yiuV=@8mc3G`^Wuc z&_PuzNIggXVoe-iyd<}p?dXayc-e2P(_AZ2n8B>yy>R6^T5YKb3cUii0U{de)&I9*mb5oCC$|B^|AC~`;@ZZ9}jn8SzJDDrI4<-Tj ziM~}(I|E;J>|?AvK|kRsijQRX3)*kQP1U2{ zfMz8K7qJDuiqHLqJ|G(_X3i1?hGl%*Z-7#M$nJSihG6BB-t$qUEi}@d%a^N9?QfC6 zFC2apVM&^4>DAz@F2?VoBKNr!t3mA%yk)B@t)Gl5olwI)nWjW=e@6U%W3UZ)(Sy6M zJn2AtIvE=tY9V+?<_^(PWoSk`wtHv_FS{uO&|4gvNDR>$hC7q=Hxhr`YP%PCFgssowo@uhrQrGzSmBDYd~Dn08I5IMtWZu zickw8)JCs8QtvZ3(2n87eHIiu1Ho_-N{}U^rbl6g@HhqEgp9_fb#|DH%Pz&1CGDz~f_%25Cy`=o5O@9%$hdRO}PCHxuNsu2rQJC8WZlsqB_C`i$ zvpgcH-a3_UEJ-Vzk9y*QlG{1p*cCkAU-x+*P1E{ReKQ~wgKqr&vMOV6s}}NAZP<;hrfK;U&Ax@( zJ{+P!p6)IBisXH&w(-A~>Sn5#d7C2S?UH<}n0fG<{!Di49f2MBPbEXr(Lb*NoJ5Xg z5_$ia%tLeau5f37RWviDf+Mzyb#2dE;t-MQJ(fXF;!ZI0f!)*VcoQ+b6J(Fv>>o(V z`-Dhxg-%<8Xjum${09u^2n+fEjGh+zNmfh0E%pGOhP`DO3_S%75~zw%7)AQvK6mo& zns?$N?~PRc+y3Rp^CYuT;Ul3*w4PAK^KYN*orHo#4InH zFca^mLU|PxrULQ|<)CWjS;QGx6B2ybvxjD{fMrvB#$e}XS!*U60AESd-8B8{d0p@4 zn}Nf(+bE_N)%BNR=m(^a2(V{zIH@&qPX|%N#k7k2+ku`naC802hVqS?yBzVF(&(>g!Y6x+HCN@p7&Hf zi`^$x3t~)~PxLM>u5OKdf_Ov{nq*aS8U!`)ley2hlg2 zaN5_=k4$3PT*8b00Z`pt3C23^ez-9RkG4*IZV8Vg{H#0%iVWv;=Ylu#^F4d}Uo#@mv(0TkcR%>U4A^km5D3hefhoClxlWW@=hjQfCfN%v$t zZ}yDb^y0bquOSWtkc+@W4WC>?pB3J|c5t6$Yr33TFHtL>*Wi~t%zLzJKZ*-K$l-QE zPIvu_E*Q-;-F04NH@6^XrY#DJEfPxdlHl@ue<`=GOU^B=S(YIODw2{M%J;3G>pqu@ z>srw1D95hm8f?(py_|9D?mOdq<#Xw^({g5V}Ct z9BQLKCc_KOjKqW{!69I?e)Mjt&cx8sBnvJ6?%KU2AT~f*XncqnAFr`I%k@8m=*8!I zN!s7IJU>HKdsS6KLqk#jULbeF#sS<@YbtGr)$Gt0i5g@9e8z)4zc&_&ap!;|O@q^I zrfjelL71t$%-Z+}h?Wo^oMNG8C@VCxf4l02QxVeld;!4#V8X;54N%AhsXZm#wJl`r zXH!7>b-A5Dk3;93k@+cY1BLHm(t6=(Q5mt>=t%$F*_#zMF)~e@*HXVI!aImJ478d(#d$qm1qM3+;*VQjB z5gp^)C9_O2 z7XyO;2gWcCmNP8uBk>!1-_Fd;%IL<%Y;}9JF1xW@ZSpQJXsX30pdbD&r5KhH-pICKiT0?F>&4OAA#R*3KSXLo-w2^1tMLv|J~9#!5%KTgANh!=z#P+pGTK3@mj*#T)szd9 zK3~iXFbkf}5JzRP+o>Qd165seWx`{T)@Om5gWTyFOo-HQiP;y8Rtn~&eT~3!Ji>uP z4a10nO{mXT;M?j>Q&U50V}}6cx(n9pM-3AKqtSm{R{V* zkuTqsu96z84N#B@g+PS%?xlZ1)6Q18IjtSyciGpl>;y+ukGZ1n!PxvLmb<2nx41DU zA|oTC6?-{7!`OH@!mT}f{9ex`YuwkOhFgm? zU0s~oubuXhF;6QaWfSVZy??xaMuUeiN6YT1a@vE;u|~oYj$y(%GAt}2AA#N{ww>;^ ztW!jDnKKohEc(9B@Y!Fzw@Z}tU4LWq8~feS^vUW;R>IzwwtM^PUus8XVplP{olFf8 z|2+bB0A0lBfMp&gZxjbA*~#>U9Zj?&hihK!P!4`{r<$Gd%?04ywQVobyl zJ31In3Q|_(XJ(~Gp5*_EB|&!fjqI~(NlEDY#sw5PWPhg6cyLGFGLa5qU?{^Ay>L{1 z?P4aX&#Nb3>=_qOQR(?^=o*}iJtY3B-)vymqQc;|M^R?1KL4`k2!=|G^nC$i^UeOl zNLgy~!bQ*d@z7CpJ-zt8IkgC~*E0F8_QO#zymw}jE}k|$i}2Lix}1?|Y;rp}F)=wl zJ~^?6p)9|!*2H~de))E8!Ms;l2%Rk3!_bB*AO`A*hrVy+t>n!_Mi)r~+MfKdm_{-L z0D5uv$ae_Jih{P_`z9jrz8AI^+6D55`{_79+`NLXv)c9&JWSIEQ964Qpdu;%1sR_& zQ_v(9=d|*q<^6Xqw}THRcn4j=EImltQCs;#+S+LhQ5n~<^OW4=;_1Av8o2`B?iFN@32!I$qK z@!^@n30fl=<~X}FbMrJeyF5fIUPD|u**kmgy3ec+sDAzT4$sO+&4z~~LV`wCR77^> z*2Kofc4ihbwxVT)l!Hk{iT^L#;kx04Vz<7Ka2rfht**FuC>XSQGIleY&%_3)qkCcseeeh`a2MYIEltHiBh1Cc#3W3^ zz{)6u-*xjJ7vBlpKV{Ts+ZtwOW|sb`Ke;_(1qmFt5#tpV6$}h=2o8OP2Hy${A>xj? z{?f$>Ll0oxS8jNP(T%`$>Q*9gB^pynNCZNCc$4F}HZ}nWi;GHXE2;f7)D^Y;$;$g; zh=jV{0}B&pp^zcDW8*gSaR4FGLql{W#U&-Bv~=Q3{_oDaOLOo@NN8|>sF}IBg*XL7 zzES-x?<(zS?{4b++lizdQ~CwYKbyE~oKM^@6gPx$YUJ!+Z*)SEpQtk6 z%g3|4^dkitDI+cG%UY9?k(-H+^uWW&(OKMDQr7#os=KFZVwLw6XG9)s*#{B zQB`N^QE8|^<{9I}#4bEjRe7bQ6|@xl-^Las##@hC7b3;>`v&)P3f&Kk~f%nae&WzKF@rc`ohK4x<6B}=1N2}j| z_CDq(?&jY@*8XZ>9oU7!y-_fIb!9gf0jU~aiw0h7Zj%QvWas-!UoSo@EiKPL6++R% zo4Q`CXS*&}*zb1##VL+1KF!nJ>^@-b9p{%GiO$W;(m2eg0IvuK4N4&Dds0GfCNc}8 z+-7#+37oXnk8A#&$;RzU7VGGMceR_Tp@!i}I1U>w> zak>_Fe@|vU3(f`ee|zov+uhL7^|1G`Kk)v(xyg)gIE+R0@$1)CcM%ta|9C*_NXJ>` ziVI4N63Qcw8H~;@F`QH|OwdP|G&}VlXB#Nh_~?tS!2QO^v-K61$48es>&mZf+5a5c z3r$)LLp1;jKB#N+LeYW>6RWS%F_OuONOxWEEp%j?we}Agu}`nRgs7ynm{hMoqn0@? z0Rki`>J=Ta5G5iZEh;G~D=O`)ogbRp?FZ=O=H_N{rO1xX&=$||`;JO4=|weLx53u7 z;Ct)eR(2jvZe))HKB^!?E~`mI&Lk7a(A!(lyuJp-$qA;w#fFmZDmQym;)~1u`8&i_ zJ$M{LpEA19ZDh0uSGVTC7#OC?a=_PfvxGkI{DlbLnO$E4zCL{%m1%&Oh?J$}lqB3@ zasvYXw@qh81}3LN;2}Yy;NYM@6XgYGM}|gbC&QDWt(Gt)0oJHBxt$f6iS@k2zfg(d zP~LhryUe?+d*})182{p)fLAtlLAI~;?1DT3vrBg!h4gS1nxyVNe|(KBzx!A}@187P z?BBgEj|L6el^p~3FfbDG1EQk=zx~5H`2|HbH}o>Ih_B9VtZgB!5FeTw3VLd5YYQq` zn(Q97&dQujnV~odVR`@Pi~a8tpT)_^sRfA!Mq&LS{S(m`N=Q#nNF1}$I(ljfxp|R1 zoty?TC^-F@3W z_O^z`L{-dnb%{*PUg5&Fqi2{eiKz@R)j1sQB4j5REKdkCw;SpK94YM?5dpCsja^^i zg#TqJ3L&X1H9FJ}vq{W^#Ko7O-akj;G!Y@{5qeg?kwYFqqnF}9}jLv*jw zv=0gXcMH8^V`v9DQuy5GAHStLbcrBuge4BRkR~_6@W!+y7pM3n#dhrsf180%PVc`A zwyON7lqqn}HB-nfnupXOFKufX1g9BmbX3%%AJ)0_&Mp z6Mz56!z113ADfyR6_ynh6p~X>3_(Lq{CE4gJn_a<)Y{S0(g}V!c^FjzNcw*}Vw)4I zmvxE>2+7F`GZ2-;J&iq8y@5g+ece`$9Uwa{d?$05*JTU*m1uw;mEP%{$q)t@01 z)ZXD(RMUXyQCF81Q`-1CpQdV{qIIoxVQq@MZ-}mBCB9coXGJRtYwh$)&4*a+Hmno|+NWxFc(x z&kSdY`zsIsu8D0XmEV_#P4qHa_V_X$QSrPn3V#AhRusaVcy-IkdxH%PD5m0}V&X$P zBnjy|IP&MGgamzv8mK(WJT1FLH-B~N87iy@(ld2`ZnsBni!~P&6qHt0)3Z^rFi_BX zmhjt%TEN0e)BeWA{Y?uiz{n|1>`dLZAhFA`yzGDGEdWi3rie>xy4*)=c(98F*(9Uj z789EaJHcCCVOcvMZHU%Zdmj-VK(C@GE*>0~l!7op!J&%&FSa+Qzi2;xzTsAm@mzPc zv*!T;9yKaD0y-Bk0HlM9gcW6v&qnvcf%oVDy4G{>EiY-V%r5hB{B3S*vn@v|Sy6>Y zf@05S7PYYd%^)l1e@k9g99Ydxf>JL@ejEV4y}Td2oQ{c!smbY{+3A7ggGOUMczJF@ zav$3g9mTVOp%s`&8Ge7kLWQ(JXLmO>%(ebXi4>V_Y^Drd8Ra=KDGg)T8|=j{CWlz4 zOUlhmAsua=@wC247^=c!BM%Ra3W1LOnEd`;QQ1Zt~7)_0ljn z=R6YLzdkJoL&4NOY96m{tjl5`XX*_A&Gn%K1w(zo8l5bE(EY> zAO-e^$5&>^0)m_D0@Si|-|8Lg@36ETHL-{C=-|%#z)vpCynMVoEv;^kD6z^tx_UoP zAp#7L@M~;ING@4W$UDBu8babMQX&gGZxr#7$jaBJ0ym;O<(WNn@?$hOaxn?9;7$dLEiR2C{Aww;ob zijU`mV_RZ+h%NfrS_ExljZCjUEEyy^wlhk{PRY<&UfEF9OD4JA-e+HIc7(gqjG{6F ztt%*qX55%FQ?{dm=C-1h+JCwu%-<#2PgMd7mm5Ts?HUiXZ{(a+jYr2oM^B80X7kQb zQNZu3sOK{;?>@ z;ena3LtK*l7B@R0wcUAM&wu_nc$i#IJ}c}_)rq5zaqMHFCj^oQ+)ZFW3i^6@yd0cg zoz1_SYI(?)mjyLcMpp+O*?RF^`^VqVt7bt-!2;RP%!y1Mv%IIU-7RkVe!lz5^ixuo znH^y!|4{uVBR)7FDFy0yay23g`7s5u6gAbPPA-S@>=Y0bSi@(6-a5ox;hfdbTIoJ` zp8zt8RJ9SybLPu7SGSs&{<%kQv(-daL_W+5n>@&=Q*h!+tZU4Q&xi0kArF%rqBZ|= z`~7|F&d}H1-dx*&OIUrq8(6egvD-1UgM)vlYNQmN`aT4z-9hiEC^WGER5OJ0{gDrc z_lF1!$b>&QesY&^1#vNvgy=GMEUWko?sF+*h60J*L+FYF0c-*l7B|VkGIOi{`nN~4 zzhm+{8=~V|!eean4GE-+$lG~xefYis2(rRMb^i@*FHJ*hkI#+`RnK?C7Mwnx3%dD}Q+Qn+hUHRjl%5AY8pEe6>0{0!SqMc|XUde~XwJ^6_Arbo$M|$`b1bjK6TL{13Y#aHUWN)S zl^;Ih0ccOD3>Y2@JD*e$#!ftNqDh1#_PL_0etN>fdJ-xmzF%kp(#Pvre|RDeDu(O* z0G`u5`bvsQeR5_OYC8M>m%h{+tcG&?yv z8-V6u-p2eI(aO#;A;~Q~J?&wW9Aat&7zm?dZ1ACz%*LD$fDL_JmoJQle~gr&$7ojo z4WLG_oYN<7&dbX;idUPS0GD4KH$(h>v${&N80#M_JTT=5zu$h`{~MXuH2me7&#K=S zHZzgyp)tliu&yk!7m?us(>_kYO1KFa=M`=SH ze(qD^fQD~;eiX8`?{vp?FmRwi=ex^wv!l7h!MT`-mp|IAUBh0rD(X-LR-`os%`%bG z@3x0vzm$#05-}A1%UgLa@rf$)O}r~#_Y9#sPWir~sfGQUHu$Aud+Dq4lhmp87E>gp zBHn5b@ehct2ba=|hQ&liN^DPD4nq@2di{-uVTLu@GLNv;EkBI5u~8IFQ%-wj(irU8 z()(XoJ4i((-epTYONr)E#z8>y7ajh@gF2=8;c?0CZZ_Ypg+}0)0r`t5nyN#Snoh=dy$+KsTo1HWLfe`Xb7SmMtVS@THhg)1#P7swb#)=0zdY-|CaC@_p``yO_ zXmYgWV&Tpccb1IVxvwyAFT#HpFpVG( z1)mM`$-KI82&!ONJ>acLEp{qU$;Xt;<`td%itd!kl6YY zweZnOChEk;&MR`qp~R-cgWFpgl2cRC&q696{KtvSPr#PSp-`X} zPHL34&~;@R$k^RnVdwn1wfVl;d3w8-ySzTX*&JMsZh)up?T-Lrd|V=yQBfaQa-hI) z{|FDGx1zXUN(E$@&neh+bg5#DYUv}BUn3?Gr&NqT`-5Cg0Y(F=U5Yi#K5 z{9ET|XrKSL>4m3!xwwRSSO!+8WpQb-)5HtB{R@i(1;ti^3yGbXh570PVXucNI^v(r zFNu;43Tu0CMqJ(VLZ`f*`^HiozJbZ)KaMH^X-zgtja!B+VRsz-B%P&B`(Wv*ekOYA zJ|z_hJ}qx>)n!>33mqW&(7l|Fi$gvSq`23a27uKZzcMk@7(nQpY5tn|GX!1#xn85L0(oNMWXce1?% z2c@N@N%c?HIK5wbdRxK;7nFsg8>^_}2xP>7qrG|Z=xN*mG3;I+ z&Ga8&9`s$abmwddfo6%1i)*c3XBQU4NZFvLiKG-|B8-qjJX5z=E8eJ}=5Hk(+*Q>F zH~Vi1C|Oa`>YF!NPEY}QjE(n<>+WIFqcmo?$y(o2Oh?1qg&kadk( z6&0*94#7yd>nowE3V}`2hl7CQ;MLJNn_DY~y0%q(C5)}7w>VRTvXnypqk2*)e5U%0 znDEMuA;Rg1Fx%LA-Q7e+OW7J%{|yon>E5xGa-EI8rLm^F#K##4GA$docr65oX;YA0h!!?^Yq015%UIlpG@~N?zMexB!5*rFd73IM0yzGAAX^Y*gpTG~Coa6*uRlT3Enyr#A?K&3W zvoj*HHb}0m?CW%k-5-I0L1C`^$$Njw?M$7IbEDi8hgYx0Z$H;J-FMCx)6|a((!-w9 z>{ey4Q7-z5C`qOlX+ivg?H)bO9ydaibuLz4{6f`w7@VGkARhpuCDTlw>Ml#RUDdek zIQ@CXjuQZ{{)siWN8}H0=j@-4fLNuKvZU{QDQ%dK9+CBv;7~C`)aLVY925LFrL`{+nzF z@n3pW%y;*7-G2qAX5@CzIQ#vv>y^1|hXZG!ua)~3n!x~UX7Rtyic_K^RRvz7%Ok3p zF^PeD9pP>4d?Z)@y-J$8IwBf@WXpNrjvmku96rSPj!qdV>1s3LJMS8lr8`wA1)wET=j@P}xb)Gv?3fnG%#@NEte-*1P)K&Sh+ln47`(R=x zWv3=2V4gnin#n(-5)V92SM<+)2N>guG3e;XQIP&Y7f^_*$JG0Rs!I&@iGMUKW)PiO z8U4N{!6mSNew9)PWNJ#{U{v#KXDa}po!L9JEUe_EIAW_97gmRIVKywjb6N?)h4r)O zs|A)_P()B0?~oEA2#>nBGA5t$cYtg+7AGMskpfhDvlj=j4(s&kwkuL2NARw|e_J{S5(Hn1S>ZMM;;* zqsuXK+D(=Vafa$XQ=oDlX-A`62q6;Qm)h64sx?z|;yt3QEUSi6N@1M|GYlD<@~1Q` zAth*ze!T>B>EtZ8Cw8PVFd5xizD7Hydb^>v@Wg+&`DoY#APHLdD2b?De+Q_HD-nFI z?w6HUh7F3HxT$;n0M`8NDYu1x6=g0q2QO|7OUD?^(f*ZjpR9+{5h*r;LB)Boami=o zqTr~iwEH|*QK?#x@cH=IdR&9d1S}Cl6_0sPCS1}f9yP=)T+^LXE~+_hQk`qn^B*qa zm_7P9b^wWqYtfE`$fFRKZQcT8q@y|SZKyKOjDCPgIleKVZW=!#J#+}=9^ZPD(6pbb z)^LIvZdA{b1ML)@{X4shRID~82%rYmt`udAlFwN#(xKX?CKQ2KI+nJ7i&JsjZHSA} zDzxv=XyJpEHs6Dw^?&XR)zLn9{Cl6>yRWHVza2hZUJP5AS-0NVm+ctQa*k7i20oPb zmhhj6Tw88td|#==BUM4U-HLADvN5KNo(UpA8{+r)?>em5pQ-27?bv{$RR0;1V50%hJa0kc8Y^_HM}g+gKu@+kj@!xd zQytIJ<{t37tz8cjn`&HT90R$9jh%TRFBeVc(=@LTEd|Gu<%&eF9l;HsqEONNy`#oJ zZn^q2+&w4%lUk+>Zt^jJfuw49p6FI&i;ZpxZL0c|m^6?0ylw`u5u0|Mr8f+GBw9hd z!fyrwWM#*anlc-NB4Hh<%L~#SrMm6Hr-u|%dsxPsD|mk|?~PktLCc#hcRzlpH7GpT zCyV)=c_kf!MFf(hqZyTw0(3iin4(=#rnEO~ z`2exGeRz{K20}5T^3u|-k8jTQ z-Apa>@nh=|_UNvAT4CBq-Z1%mCnrNjjgV)s%3TeR7^UfxvPL?Nsma)LfmecbbKS+P z=%Qxhd4K8Ns1#>L<}*Fiq3yi*w>CUfg3_H7slXMaL{FqfMapwcNuGPnGF?Ypkf2{w zHn7I@-T435JE!1Kf-jB7wrxAPv2EM7ZQI6;lN;N%ZQHh;Y_@9u5Bs?9+b=U!^U`%{ z=Je_5-}yd%iMQzs44qBJJ6|6skM;_hxe-YbMaiMXbzvOhs#cYUB4o4ZPUAB8^1Vp@~#FP}QtDk)ld()BoyP2Dfo6rs~vb19`FR<;-Ep`FIR>L#Dsp78wxs$k1$W>)cIR5lV0{BHm@8Bj}ZFE739( zjSnw37yoAZNu>y^Lks(Y0un)nQw`M?iNy--8sV;dqZ@=Yssf^vh@OSAs?@3R0M z-p|#0+~{9(^ogyMBb$cYo||V7z59$O{rj!w8S4ynu1`RirM2&UeH+oz4I2;J{wi%? zZ|R~(8>%)h-#W~YBGi=M(}|dvrlK_o$TAUHWGnF87PAj*ORRU(RKCtKn1mlo)=5@f zltQ^vuD;W?h)F6lV;iTHNpUqLiNv^=oXBJZ?LdRPf?j+&*W$H2doR-#S-M~7)z`GN ztE|ZG82}I$_|4kP*V^6L*2pZsFK$>&u*%)Am}PC`;7BMR1%9g@{sf`~x+y=@kO?hk zyI4GGkz?es#o7m1lCyZ3FIW4s^R=04M=uG@T`m^Ug>^2V^e2S6Z71bywb|@#*QwQiEJXqUUQ&;xTuI@`ja!Qd61^yM|0a7 zuDr2Y65_t$Kf*pCG47vE-mTOF+C?9E46S8ePA)z!u0QjNIk|e@#ZmLqAFyJ%ZjBtC{T#0oH=1F0xQ1#2czGeH-+G$n}z$p{6UY z@Nmy9X(gWJ3qVza;meU*A!Y8m&ims%(q*_B-#}q7RC|2Se9>-8$3t&?P7g8T)s|P+ zz!PPZz%9%kXN=p!mm91Qx+OG;RH1H-8s!Kmp0}^b&b_z+Wp%%iCqP#=4co}Qpp2<6 z49~4Gb%>T78>a_UyJ8_NLlh85C_B<=;M(#1WdH7L>1bkB#V(7{=w)ZL&iIR7#*Aj| zNV12B`4p^6CPKzs(^%>Hc%KpJB`shhWp=YmL19xJm~kxcWg=SI05s)Wz22!#`2~Iw zVRfv4N}P#)`dWyBQuu0ql4%sPWx|xWwq>e*Cs5 zD5SA*u44Rr(OouFG!!!Q7I7V^9(Dn4aG{RFcx8m^Km=%90#tAOVpO%UCtl6SP#b~u zQKi@1DQ}BG0s$N@Qe`?9-5vV^n^uu z{HACY+k?o)%fv|;*4mlHj?Y#T+!@G>eyx2OgBC(KPfOU^Wy&U++X)_xaUE;Dj3vzyiZoR=`Z1b@XWzco#q3r`)4 z8zZ{lEfeEK3l;X}y02#OfZ20J(#GR0N;D4S*6X7aQxXv_jLC;Y0Xt7ZVgs!BoV3Ft zQVNUb@gLs156X$;{mI!8*?beD-1xd(C;XA@2QN17;erzY*yu#V&&w4G$X^&(w&^%* z2mKXMSKTaoX;mOOaFSDTZu}n&ttrYTp{W!tU zvL$sWvFX6z=El-&!9zo!ZKt=>WKcOyaSWC5TAjDG3Th0`vXk_ak#W+cAO7O}p>A)@ z+#FSfbsaT4O+=wX>ugOQ#87~sw8-FWr*owJ0)Q_#Qyz$Ms20shZ9F`=WbZq1)OHq> zuqa|@bJOj&*<>h;wQe5wrvVogX{`UuIZ$bCT5*UPq$2+i>l{(arpj5k05er&W(wd- zJ@j5)V={rYa`S(7e^fV6jEe+3JE6tIDkC#RRnB#V!B;J=#&OG1wRTRJPCHnzg9s0a zxMM`@nnvcxk90n06Yrq`zc3ggvDuZCZYCn_A046ZnhuRAe%IB0KoGkQ6^_mX>ii>}vl40c{0 zNb7-6fl}3Q!%XZ@y5+Tpj`F+lpLDwKZPp?wbw$L>P0d#G&&>=#_|};t?&rcjs4Uhs zaFC#+92?8SrsZWCeF#X;z@Xk1Fp7tIOU~()4brB~w%hnc|5iIfikh+q7H-7!;NY9l z#WJ7{I%x|}5bD8-QpnQ8c~lIN(}P0yj3 zSm{{D)6Uu#^U`<|+GLC#@X?BQI@7;vy`0~#9;WY&%|tBYyI{s1AHbaE3MEiHB?iK_ z1q=)by9ppyl|6XqFtz{qMF{ov4o^$Rc-=LRhKyo3scq6W@48@@+C4ozIXAH=ACrf0 zv!IZ1Rlb;(U$7ARXnX?7jkj1_9e~f;uWIY*?SRnXgpG`ZcAP^Y182Jg*X$AcemF;m zi;bM%!|97hJ~kutWzMvZ+!9tG-FU!rH-*>fxsHV4|1Dhkt5Ka`kTczsW^9VG47kwv zYU^!o@9q2Wuo4v0wl}OwdlT&GozElkMS;h}f%azBi8mV@=r@`iFEj=Nmwect4Kfm*ih8=K`= zM}P^mm{=4~Qyb)70531#E>v}4Wh28M-qis`ndqc|)Y!AoTbY=V`W;=0J%{0>c5e3K5 zZPOb_ND#OycO5eTE2*{dUo~oJL$UKCY)qhfCwysb69Xz9=1#%mHZ41iqNgmOeMd<- z4SByvRM@RUaZguUSz8$#b5C)hG0HDL6$kginnw0ALaXJca2HK&c6M1+4WVNi zfN3bIYVTi~v95a?g(99r(?AqgE-zgiOQ9!(-EGryqLn8p3fptcOt+rKj=J6#1Kak7 zdLoiBy;L0z6FPeBM4{mga?Tbr)7;5hytu+BuRI_FUysF4@ivi__o4mqI!8uG z_=|T`EMAwI59hX^v2;GyG`p49ovlsU3Zc(-;W({%u@CpSayr<-%#c|kKJ zO?&whJV4?s^}CD5bDmkxINL-rBpqSb@>ziChraQ`>W>zF9dzbq$`Iw3b515*bwD?o z^BNq7i{JD@(W<+rIEmx6Jf+vlesI`U{1^t!07=tv4lg%}H?NbHm)L+(kgB$1nc zz-tKP06{`C00l0k=Im#)I6XHqy@{!m;yH*Y4>xK~Q9Fz1ZEq-n%|GHz}nV zmIwg`2TJ|KxanYe9Cb>W>m#g7_wb-J$boZfETlkhybmKG>gd)_n3Lc8!iXgpA&_|W zmmMM`DKIrYdVReUA}2Rfi#wUosamwthwV5dUu`008von=9x_y9dW4>)qN=8*f^t$U z`o>w>K)fWuq+27fFV9fNnq;;Lj}N0frV%^>Rz+O+db{Az*hfyU87pB+vF(9{k*PAr z^k{pv%VjceFN5cLZh*})vgSih->E`~_ASMR_(4mIFM(f+3v}_?3AQmx2R&hd zxy~W**3rv(M_WxH`U4B`yk%(nUf2#9Z&6ewLubdpSTudZHegO-SCN2oaAZkSP9ZBS z9qGlJQ%KW@?<{bKmAR_0xvZ+fEw87djfiXdC!iStwcnoPYX7gw859&phks#bJ*WBO z^3op$R#04AG*eMc$4_U9g}KH2@PGmI;K#{mW%DF3!#3e@xju=B=`ra@DEGpt2=%e! z($&y0yH6&ff=*Ni51+({3emo4Ym*dCB z!{?XcRvMCdRU~JUL{}9?Gtb08qPh{8^-PIGomtY($%TW$@@~Y8h;;8WPdOk>&q&rg z#XclB+>aCRMW%6q_RQW%QP}HVy?2)Bjw@3F(cM5BLoPOyX zItV_Et|J05QBg5{z62H3rS_kOA(gg;CFmlrYPU$+;9OQkrv#tY@jaPvqY75C@){~1 ze7N@n?7E&|Ze-8?erR$#am`^)xM{NZSCG8nl$Mwt;M|WJ2E7S)ET+2hop=!x&jds* z)pnks=Vkr9q(lX#`k-w7z2%m_5F$1O5ACr?+T;$B1 zpTVLdkZysI*~P_0akZ~hc6j^g+>!A>7KVX9{M<-hnR4un&)9IVqm>=j9alB75A#H~ z2FUhF#E8@NjxNuq#XkN}RI`G6%C-&zywKV;WP3{B^&cfC>J0FmDtvFA&D4iiqMo-dYgQpT~qRYOy)kK0;2329%}ere>fIRLe>`P%UUh;Eo}{4J4;x}Clw%g zZ?lJ%%Fo}o>HI#Su;3LKYawqXC~E5bLBpjc#wR8uBkt=J_Xw|Jmx|pl8VH#;bIG`y zYrb7&o~%jju8`S< zUmt?tg=!XnZ5wXf5geBac4l2~AK@SUj!LP8>(d>AIzCOcH^_(pQU9QafApCkuyG+% z$QR&DErLSxK=?7p7CqBYRn)uadpjD|RxyuhrFq8F{bq-4p5{^ycUPO6Q;rtJx=2n-_uj{l1=vhEF58rne zyMwRERegAKk(#Pe8K_3|fl1s!bHasZi3-fD4USLWM-PuqMy^x153!vM^EPs6N7ZWo zkf;5CYKk*esO*`Uk|%78WNo5*OV7|^GXJ#_B67zsEX00A8-gy&t}lu`nUme*!1d#6 zJbrfxXr`0(?zo3b=pGw&Rh^s1`RS9S1}S!TcMuX3XOcYO;KE;}`B2B&hS{KdkW&_l zIInU+H%*fc?f0po?_kNr-m{|I+?@$AHy2c44|R)toKE5iv9urn=r{@Kk@Hx(C;6B1 z7gP_1wnh{4&h+|B%+j2fF0sTMdxk7tcHv>dC{a|?Q8vdmepxIz z+CL(nUKoS#4jKw{FX3+P-?G7DBm$_}SY+7Y0t+(poV(bsiPjs#`L_%@z!f{}Fm+Z( z)#&GOJ)mu>ri99n-QC&I)WF2(x{o^eE*)o2Tr-OJx;MU2; z*%dWvfqC@=P4-mj<@t1Es0IG3EY-}-OD3`zqPk+08yZ9gjIvDPZZ02?K3h8F zwM^moev((6=C83#A2NgE9rV5Z?C!u+3Kx!8!(qR}4&It?=eiOXK*sXw_D%+J7P`rqDNV6=PL}7PdwU%NPix`Yory5A`%Co)i+PS}YH2Wk zQJT26~FTAbZ8v^dcEX3OaZ~jsnB?N>Co=u zLWb>CkJx-47A@)br8daZ_;YOo+P$HV$<1?-}%r$a)o@I{>!3-=&r1Qc8ZIuljrKF^o zhXbe8-nMsvGO7$~xml)W)TK!D4 z)P#9q<8ODLS%8B4ZAFmt^1;M2rP3Giu)}NvBSm3}v(YtFa0sv1ZuW!nh8vWPij*0r zD!0ALRo?`m9m_NNiUbXhgt`2@E2%1K8Nek7fbw8~!A`Jsl)R{2NAuk68wTtR-b)B%P4PO>P!M!gJTMMSLg#-9GK^Y6NQT5* z_~8kd@x>!$#6qb{wb+DovDFPZ5N;VhKd*$+hb-vO@R{|C3n@=uRL_N^RQdE0Y-s!Z z*c!HWw2|>~FztqPHH5ht+kTz00?~=T9x}_=WaS2YZ$b1n1&OaSBG}Nfv=lb~wrqLg z?UMn@t`i3LFTc+N{VhRvRx=?F{b<*;9KZdege)jHv61DBN0ssHV#uucH$3W z!$e6;(@+3^EoSExL8-s=_4)RO+FDiDP=d#B-ywd_T*)Mhtd`vYBKsjJzaR^CUD{cV zNdQPv-=c>u!|VCm>hvZAo2UDOVWsJ+Z*g=t{s2QFrvc1nj^;J{%|5}?;Z4T{=xnZU zZhknvBR8@J4O==QR4&X5T;k3u0blF-mR+?3J*^?~7gycj>3u?kNeGS*5)|cC`)vT- zR%d4cY;5g)^YBME)-^Xfx!=CFweaoo3X+J0fBwzM0D8@2^q<|oxwJY=pJj zX*065b=_DT99&%;e0;X~!{1h4U)SJwJNi`i@h3b5zEq0U4W=pCc(13p^(SMa|JkJal!Nyi-U{ziZ-J6GB z707<)j1q!jkB=5^`AE1GGisrKW+j+ne+4nPfb#7~D!hpc_m*=g1->$;0C}!HiVAz@ zC2FDqcPn%x{}@GSxy9M@7?QoJXSCuMRjqS?1jw1J%-ZDER|k};!?;Ba2$BQuGR^Ph z=lpw7HXgpIUqn106vU6Pc_@nZ0Gkfwy70pJTX zNCqh4SZk-&(b2`t#W?%iP6BP-8I=-CgO5y#cYoGGpZnZvLW{;bdh&OT;20?neM|AT zU3d=M*_2DI#(#8jJoXNEmT{Dfq{hhLXK;ZJA}jQ7>+4|Q;v>!M0!V2T>{JzQwhnYXC96BB(bKgl@P(R8a|{lE5n+*)$>p~*DLaBsR1PqrH-Khy z1q%}!U;@AAM*%Y{b8~xuteWcB=G4&j@%g~Y^=SJlHYE={t;+z zWC1DY{dP*JdxnI3JLX{VNBsH8hjzeWSD%^8h%+~6d{+2adj5YB!X7c{xRLds{FT!{ zk%HJkZKfN_*;Fbg(US0j4FNq|B7iXE*!}a78KI{B51$CX^Y%MC1BGCi1&8q$fq)A@ z0gaypEP=h9Js_B;$U8VbL>FW}4lPbyevX~~MRDNxEiJ&3Pq6q+=_Vz>y)X3f;l-d4 zJ{{)}{R8{ejT}51doFZl$?~LRB*5wfXVN;L17&zkjBi64@pkJav3VY$B7t}-D$iYr z_0#?5w&BWii$LS^of*}R`gNvNCC7Z&{fF$%GZk5G_aHEHBSX{#1ttdH13J(N;>Cc- z=n65^#!*J}b8U_z6P6^3($GQBc#81+H76qN!!AB=(lXsQB$c)R(vMrkBYy z@BeMW6skkyqJ!(14TZUHuYkU>u~7^8T1v;46x7k^B2#xifXAkVB=JG04>I%HurYCT z53l`QSb%PKeYc@xh#92R+rMHI2X&WqL9uW&$BXP3o-VOl- zak)KP~FwcSn?mb_1d=l2|NAq zuND`I4smZ}-2&F>{7uv04GBcqmo%}i%fZVvdGhz0Ob&3;6aW!N!)zotOrH8uDa^2w z{?8p=g1Leocb}NMd4DabCGQ)O@~vNt+aILUi|ap>Y4hcwEw*1`#VNhFSe|`fKmc*m zf+KUD+Wl8$Kvih@WgF_;fIJ^BQ&v*o07=`i1oS`OQKpt&RC~bzbh({?a{=qXJAF@` zfFvE|gYc+%DCYDDvajgno>)=Zj1Ys3|Uqyvq{v!;`si*s&S4%8T6&*!G);{hm2G&uG9TU+EGT+R)ADkkig()c=g zHLtVNgB*N(*N+Lma%uDPbH&4*mH)xZP3+Fp{Ps4OxoVHsTrS#uF3)X8TTves$#-oe zUr*pq;+LK9kD24=&G!es+Fe-HE3(yV#jRiRmmm3h&-dexBcfmOH+|CAMa|F5=e-@; z-1mpj9iR0OzH|3ckMcJk@nUYyQJh%E6MV&McB$Ws*sYL*edPE1Yp(B|-*Z3@$L1{O zw|*gk+4qJy@Zvk4I#zGPkDukIFYV7j?oVzaCK=3s>(2b_hyi$e9OJ{DMlt*GedlUk z`w_qOysh-0ecsUA+UdR0Pu#&gZtj{(d@}he#e=QO5B@a3|Lnc|uq^yoX7Ih;-W>fT z#eEwMeD&lU%1Ph4jsK`!yvJ>g=l*^Fd6xS@-FS=hd+^h$*L(PRA-md1`>c`sc7UAK z`w>Hb!jHe*$=v6wkMz4)`bjVOb_MkNbMe#I%|{QA9Q6HNw)1^N#q#yg@O2ciWBmC- z{#qjUP3`f>mvsma|GlvCxd-0k_c+4?xqk8O%fGa&Dqjj>(%#%$aU&nF^LdalcLU9l zsP_A!GTnH8w=-lgV?enRI1$6RjntuinNnhxJzIR=JX6)Wb zPV`jN3FZoYik&~Bj}7^y6#mG&e>}N+eds|=^aSnN<$bHbefy|<;IDMAZ)o{J-j4v^ zNxkdseht*W`t`kq1wCH0>2*Buq0HChd|$l(s7m#E{k-q@(EZ>??!fi_c%k?Oeczz{ zu(3?;2)|Z*swMt3g@4Og&hTe7_bfvd5k%C06%ziy8meKv`gwNL)3i8XxYtN*w7U)4 zoE#Ykr3^~eBfp%IM~Fy>AW)$2uQ85XxGZ41%h5^G+nz9TeA>_1@Otd9oAG&W-x%B! zXxT*&-1V$He_Xe~R zyr0cpfyNn<*(WnFOfJXmmh2)(n#PwPe!&WSSuMX@G;oXJOb`)e9h z_(eSn7@Q=>{`+3p_AWUt6TGA^BU|r>senFfyskX-bOLFFvoj$P0_@QovA2ERCE5XT@}&oiSIFGALL?Ua-jP{L3V4|;^}`=SN!=K?Ji))y`?-pD z%EW${kK9MPcYprHyH6k~#|#=F$`{09q@x9UVru2$4ENP&B-bRWh&_JPFVh+pRy#P- zDAUH0De1t!h=|p6#V8vl71n3bLwOGq+tSXQw!Rney^+hhw1Yu%ILp33UF=8IMnNL zg53I{$h7zPnX8q7qss7^+q1wEQ7LJlzaHJM1ye*}f61>){EfdRTe*gjs$^ICJMl0< znTdqU!cWUPn=;@fH$}qEE)p;sw{wC;wimEhNPV4Q4ik;WJ)@4DDTK*}LSk!b-dV{= zuA3V#*RZI^r&=&&i(-}l+U8zCT*IZ>YOK=+sQN+jYHuv4u&5=)Tw5H(pN;CpdF7&Z=_A=$=l=chzop9oo&l6hDWT)d3E9KmOuq)w}br z2K?8(mJ*u{dm+;Yp#vbvSK7>|ti?X;wD-B=tSGClU0<9C9(Tp4_NQ}u#h)?Us_%NT zePG+H({`$K#5OzB@K*Iw9n#_X43Caxn;FcM8z%Csykr}=xvnu}R_rXBT>8d>eo>M_ zkR=A0b}7>^f1mQGT<0sE&4f6KF=C=|GXauSddNdtztI$I;+>$R_7V5G!$NS1Ig=9#{B-I%W(Rh3cw%05 z#V{)8feuwNnTVnsiV^MK2f&X%!(1BIOge}4qVbHxxy-;XY(-;8)8O%`^$Og7@r2-1 z$OA%~BHcm}4BLXA#e&Hbe|ZJ`eZg4j_}9ARZ{@C-NOP#&e*E*->)R3sopf3iZ?fc8#VuR%UPw>rddcnAHw-ogzo}1)vb1#nC}f7 z5B=igbbU5keq?w1D6jHk`gOkxda1_(DZ_e*13src4&bM@t@5c4+k{*=_Mmo*rxeTw z8`=D;VISD{^$$3dY3#m@K{FDQKl$0Xt|wnMZUu3L<;r;K^9#q^$g-|qJs#>QW*?+- za_0+|2EpCHAJ;{RDbN*0qg+dtd-h{q^0ug^Ad-(*>YPKrZVo>yB~MpZU#xf3a^^RcHYa%CSp%qWC{HW zh6sWPtkf^|QLKrjV=5)jGf9R*`1^Z#H^qH`>wYb$Z zb7Wsc2oNAZfCBjcbNN*w`OhfzRC+1=Ao}0W5pL9}0fA;3Uar5-mAh2*5;(WI*!ae@ zou*ih|N7yCzG>sbdNbe7^@;)i|IPnB2%kTCz&R)Tj`nM3CO%Fkb_sGEaBrO#d-o2Y z0tow&|I7oahf{Vl_A}4=~-8gUR>%+&fQL&YLWYwC7o5 zsL`SwN1Z-}}iWo26G^SNPKi#Wvt zVG|9q?NF#V9SWp@#F1hR_4cmQwsQ;n^!fM2{22)cx&CMR*QOb?h05H8m!9sOoH}{AABULF<>+%uSHDf zF(6b2Wa0UXt6@^MeT|)pP8Rj_?QHUgc2|@rXKXJ&ZQ-s~j=ug+Yc1RA=aOTNG|)_4 zv_Z|1B}?WMShZ)BwzBXugHxt8!TXUrn+w;!mReWECM$N|WNCw9?%?TaY0Xcu-LVI{ zbQ47E;^q*SoEjKJX;tM>=&2HD0!u&bf})oA!Lb-lVgal>{H$349C z07ck2GhEh*GZOnL1N>tJ@)nhlhs^|bmQHcc0=o<_>24L()s!lTI@U)sd87eB4^T%p zA|~*SKC)fC%cn-InWWhQa!~Xy^l55FM0~9691LA5bI&#)uKoe$CVp7iil(sCT$&d( zIJ-2eCgmiRd&u^eTJrW8bs8RZf7q1j*e<-53Jqy%%Ar1o76rqsgm&e1SBx38jVD92 z57UNPHgY8^SN$TO<}OXL^8tz87z4ppHoD_ZJ<@K4m0;k>1*ahQ=Jjmb*)r|f@u%g{ zXYvYSYKm8>f~B+l^Tte&F{&d^Gky1@q33a_a^13nE#01#3s+5cXHwXT;Azq#`9 z4CT}BgewC&bwF7+rT`Q9#|WMR2WqOca?Gmcj|G#S46uXwI+7*yfB#fQ84EM|6v$MC z;Aq?U+_>n78;0B3&1ntj0_}CgzI-AsKr5)}D~`~dxwo=7%G9fyPTN33O-q;Yqh%&? zCt1x>c?*`VlnOz&U9_GgA)AAf3R5ajIx}GJk>>EdI_$5bPVI+9Y2rGKy#~OPv1VJ2+yQ%Y1r4FXd*|NX`J=^a0Dg5T-bKG;D^$sz17pfq zHtdOb>Pfl?3`X2~k^edEQs@2A0ho@!`(}AWEKK7pJ*I z#BZGtEL+psV{7oC8+L=zs_Tssz~&#Bs2j}7CA5$^sm2BH0G9iVgIqoA+-dBh57H)2 z)0cu=LX7mHI9m}Ti~nx79?4iX9jz34}CarwzyL;s|CvnE61rL0f-+T(CZ>ON8Wc zKS?{_1otVU7XTwf^+J8mx^2w{B1>ros-S-iT-Aa7l?oJV-@Ce!pn}w}hlS##Iik`5 z{9^$h^VTo^$DLHJCwosC(2=OYB{)&X0jX&D4>)X0cCY>{UOEpC=8dFbAttzHk<(7d*@Z9C$0OY4*^peZNuXV~i#vP&F8&c$2pR^{@> z*PSfgJWm^9h2~)Q67YS>xej$Wx_>MO9IOBiU{1vB3e0S8JjEokoQzJLb7MfvUy;IOU7(pP)r2LQTlOr?jYq?Mhq44@YVt|=#7;-PN)S_^Wz8_+ zptTy}73gC2+mqy*e$u3y*`ov-!*F4<&M^ji?LP=SJHS~e=@Mf{8x4l;)LM6@eg)04 z$`jkQ+0aOI{^$aCTD2kwxyfL;r`-tDk{UU^dd*6$Vlw;e0#)gA@59KcVP-~g?)t`P z0^CLrfpZ{YfU8xS65TfYkQ|kR=A{s2hP$D19ZSs4w701IL=M!!8;G`?*Gnl$PKlAo zSM#?miWBM6uECT@1OCtfDywo4|wKZeZ_g2@Yb^^9Vq_Jnfam^%s!*P+*5^`HveUIVVSpUFAsBlo& zulTppZiKE)8OtqReIGXDJSFbgv}UQQY`cbd!3CO}^Qx*(;yMe7I35yfv=oP(e>AAY zfKz^I2v}T@(g(R7FNOMxl9%gF+REc|@hqVhD{e^io*L5-xqJ}llBV#HsTSm+TvVB2 zQqi}xrsB#NbdX$Y)Ap8RJ2ceJz2@*WJta=5zNgy2S_#V6*c@q^8FO^oJU2$UY?kIT zsY^WX+h;YCy3j3+%tFJhY+d%1#*JVf6`w4yUT4Vx&*|!f1nOG#X}IvYTTifeELe0UdLmc3s9?IHAK4=FP|B5pw$AKf&HX_SwW1t znekJ<;RpUh^U7umf~`n)Alslth)@jJc_Zy0fcZBi129*O%tc*^ymg z%C1FxD0J8qTQx5&1C`fsZCn>H5Ofnfqv+3{=iISMK?8NcA6Hb(x1$HCs0&vyh<%=> zkko{RF00ShscP3$5wc-9l=iXvv|CN0#1JLq{sXbt$BJ-DTnPoxyYLn%AAQAiH^sT} z&~o)kR2ZAgGicPky4$h4`cE^EHh~+o4FTK#GcAhgSMzJ2-+P9%QxZ)r;n(7u0ofcE z-GNO@uzimMf$h3>Q$ymiD)PYG#nfSbR22zaQYX$^<8^s78sYSBfo{nXW9OM?7zBl5 zXpAYgvwv4DP%}GRzfk^xbn3^016Q1cC&4{#!_F-9CnVh%A!fX>;fh>hqjLLqMuI>& zrF7yf=%ybx)-GU-r3SS)jyxNK*15}GQ(@4EOXpb*sXa_22I$^C#FG?ILyU}%m0On7 zSQf!FK=~X579r3rNIPir--Cnzbv`(piN-7f4g8w0kd4EV82*@Ks?zQo^(HMX`?l@F z(Y`d`H9N6ZkjlC16legeVO!j&JS3Wi%aEs#Mf)@ueL&R(erpgxUgiX4LNmWjD=0>D5emo6bsZ`Bin5?oM82eRm`^8CJvGo`elwHoZ_5dXT30{K^xtQyL095LSyoIQK<+!!Qe4pyT= z6=@dP+Z)STlH;7N-vbay0&ifC&IA4{X+zIIk|g+cGPS0$D;-A25i%6BM^v1 z$wB|I>F^%HPUXMs%4V)wbQ0jbcZjUOwaZjUijW8jEJh;1Y=>NZ*M{HnG04F{@8vjC zWz}^m5tVE}o=eZZU*LJXIy{u`3?O@+!qmOF8jGVPDfV_ry zTnhnKuLNfc)bdBowT}l)vl#s!2BKiymurQc9NNU7g+yH|5>nlK1NX{oOVfC$%Ga{? z8FeXL&XZHQTh;>Gt8O-ty%#Hh# ziF7qHQ^eY9_w1?GT^wmC6AK(V*R%}>)6;*-*Xhk`wD*c_3l)S~|7hAm8Vo@88RPX# z;FF5=R4Yl%E-6kjRx(~YLye`y^xV8A9z3|}+Iw|ONT*?h zqP50U<`E>550ktOv7@@@|0E|ExqyA|kB)m*#Vi&t?13-E)3bO5`G#27c$AQCw665C z#YZ&I6pWomWpvY}lT2&aoisP!ss?W3V2GB~#;`gjL=B!%?MlU%$|U`@*=M%9D`(TN zmF?Va0(>Vq71?#zp6c`k%|V1yWJp6QXu;Iz)DhWk-=^BKEwFcniiWA~{wv45Ku~62 zKN~^Fn4?XF9&7VO_QcU;QKK$F3w%8+Du&|afI?ft?e~mjRIR-tYXt&_<0aWp5kM$q z)E&XY`Voo_y47S`w|z`@KIN;Xr)PB1T7xDlS*A#*?W4iPDW!@X8uheD6+;h8fSu0( z*-7HH5sGVo?Y0!fWc%!9)>6M)9iR)@na+M+&|8k@a?-!nwG1=H>u&q&9vBssq%5FY zzfitW-iRrU5CyoCP;%L_WbZ-6f8;O%dV>W1O#(M5iNfxc+C|V0BI^*X{JpKRKBF&%)Tn-)Fyr}yYeXFnzGBo|b?LA?y6 zase1uW||hMEu#Cw*J1002sKGaZ~4GnnYv4W9Z5kolx6})ouOaDro%-@(C^D!`FdBE6 zq4n^Qc@OXMK_v$~Hj$ivXtWiUMa}V5koVd4>n0XeH>uGJ zbS_cFee@}m_s>xtvzlX5#$0KlmP+eyu}I&fA#wj5VZ z^g?s2pEq5cC`xG?Tt*<=|>sM)1GbJE!f?nr4BnBs#~pe*_G0jAK!8Kb;N{nG z(U-KnQFkePg36ZqBbl`)xtlVe8B6aDZnSa{astn(j{(`@?5$00iR-EEpa|wWP|r+;@qa#HH1Y9)P+x*AgFabG0J>L z^n}UA2|sYI*=Me7Qc5EY;#``fEx*mAgJ)&)UBt)fg5;G-)qpOm!2^wR~aFVS?FqV=)+hheHd+&i}z(J zUchOU%VCNH09G7ZkUXTz)e-3IpDgGl1gYw{j)2M!iSK!ErmM6n3KikuiSVdQII?F9 zYRNOSsMmCDN5b3xpzvK!x*~5^#A0pa=Q?%CY1+dhb%%;*rsFnY*DSOzKgm6;hc~Zm zxL-}ITx(Q0dBAG(v<>Zv4s&gis#)tcnv^bxU`3KVlYS#ClHzpRdsCXHaHm}bGP_zd zvv7m#f$zA6f~q;Zu&4Z`R;=5e1S;&maV>L2lWYJwe?QU)B%z{LC~%?~1j;KkV2O09 zD$@tsdnHSWHL>;9PDvhbt)-wFsm58*-G=z8G}|vZ7*#!m7ZsuJvoFEyBXJn7=MaRL z3yeltb#L*xOsB0=GbT%+YOnkEi!Q6(7&GaS)S8Gs8Otk}!cb_HGrBlzD1CQRJ|Mf! zqAu$fQhy_tOq@P9Vs$>R;*WVd2M9J{0RhnV%+466s~QjzM6(Y%(I$VAT(X@oIZeJW zH8%|H+|u1qHI}?^c?{Z<%5dW)f+x#&bCA^dlH7vpv_A{+DED2gN!F=NTI8k{6y|Hx zrgw;(vuPD90U7DYL#G?~HXFFVT)$0hMt}b{@-}?=>Qkob+YE{(MD25%xL>T6QPXeJ zO@+UPUCgtzyqg3(odUC35F7QQ3bDitloQop`}o#dxqgY~H8Lq_cOdU~n;vIEwyRjI z$Yv`%@*!e@TB`SWOgXaYD3B`pW4A#XvTLyGSUsLW%-D>hp_1bIkgCv--PlDxMRRVi{a=SI)MzWJDoI%s zBZbf!G((pc)>msdsVcbdMr2CWtG#+2%cD!7F0G%eVcnZI#$uxs&zU}vZCOV6_~?p` z;*Y_T+cvkb`>g2^>CWzr*`U8ZAFI=@Yi_}=eWCGGPQo;GHxgAzOqdHokHxz`u#dKU z^mIlI&poeby%DoqRBCrc?)|wkCXWu^^1NLfh z@~Pkq;OqdxwI$neo**^th~(CEX~UUr+0%%4*^uC|nJ|ns;xHXpsIZOP45EKY$rIEtss7jK(*Z^J3QzvuQ zQ>ohDh2+FFSYdXQIwbrj0!Mn(H2V>Ld!CN@zasfk`R1@DD_cz!HelhVHh=&dbxqIE zh|sd0{-$ixjHNB$TNP16|C%`$4aMe^eH8WvD;N+qmk`6_z82@T96M8$kB;e6$P$KO zDo#6dgl@{l4N!vxTgChW*`nMcG(e{G0MERq>s>}I305tUzLjmK-W#x8#8Tz``Ltnc zd##?B?1=`|n))}XhdfDG*qpmJ)nT55Qh8${x2VupK->bhsG1w=>TYCh>vficI9v9i zmbTqCX(K(IBq=iIR2Qj?jj5ka$zo0|;7ju(xE+;#&n!9VRza`*zZY9pK4M59VplK| zRR>ovI7>o^#%Sw@A!tyI7g})8@`f=7nCsdQG6lfm<&4J(@$n~1MkcuH*8%jd?XcQN zMFvd@iKUE|vaTx^>y&cX?BZe0?(SA;-p)5U1^RxwO+ywfqWKp=@jKcv?{{d%quUU@ zY_{r|ceiNuVUh^w!IfRfRWm|}v}~-Dd&%!cE%4~?8L2@BgDi3W=b0&-RwypANp3X` z<#RSG&X~zpQ(jVBe-%0yEko}_S`v84DfgY%VZoR5MkqZ%-9<$8VmiKLfmAMl=;QH* zx~WYjbah%cHtos9CgwAOBM9KM8^~y=KDatp%If)*pCN*=No(k#3`w}?gOBz87=q1L z<>6=IRW6;c=X5yq`6EX<6B&tT-<*gsH4(&;I7V(8udGuzAF?~?M-sJqCQ(~IQowEq zAT&ZgQ-daai-aU(M`Zr>Kg?~0JP#Dztqi*^rlK9rGmk!qceG%^UWK#4PdOnHg3Piu zzOj9CTs^QTR>kx?eQwNjMh;D}W?QY{Po|n`pAM~}UK#n8DtiPcB>{w~M25N$DqNw} z<@GGg|uP%%nJZa^%5+O_pREqew_OKY0nYlBrHh7>^ORe+{uv3gYD1&aE}G-Y@H4?)yuqDu z9Cn_*k8IYwRyH|t{H^FN$Nfu;=k`m)qwu8*Jio7+luw zC29Krn0VJO7NM8V0>b z;2xsTM0oY4(17f+CHt=7y{TA%K2p|%wEVLd z2GE*oeX4Fzqh6N`%jC5mdK4yU0DinGC|<#7lJ+XF8H`^#D0NhkZ6D4-pEe5?ay&>m zD8Y4M0Y18fo7;~(_w%~M*h^ME(#NNee?cplb^g=qSU{VGYtd({!a-Vs74FfxO*{FD zaDPPSV!Nn}G=;XFw=pEv5{zWlhKmx90m|B}HDg1ZIBI2FMCAuX`^451D(uxu zbFL!02e+LU3=pE+n8~`hUz&`T@ijZ>pm*rduwh9o-3X7puwK6!Oq*r@9DFC<4q7IxhjxhZT^ba{!5iwhe)GnEbtFAhQ!eQNV;c{mZaG-$7X+rD3_ zwprPEO$-zyA4}4k*u#?Pl0jf2ZYc>P|M*%2SH<**#h;H@Q?_$~QL&^$&I>6n>oA7- zfgx9_=^9|HZZ1zr4U>Pn@RtpNZP5fKAFm)jvxo?gPDO9eVgZ0f@v9L zg#@ho(Hcz}g%x)V8BDfsr%yzL&>tO%N;+XQRVgnDK9xyj8383QFASc{=y z0DmHI3Y8KO)Y;0>Qb=}5oXwxxb>*^rP_^?dimhK4aL+-BJU6X~jv-Dnh|TvgWfj|! z=;GPhgcQJ?F8!Uau{B_qLOrV8v|{W+vN&}?9b>hjbt z4x^ou_mH@6s>IocNlW@j6~DdYe5Lg-DIQKT)cvqJ(zGQkHn*ea0<(}k1K47_0_652 z(R?*`dbQxk>cl$bRV=TenmCFuQ-fG(mEB3PTJ=om0&)AFn#?f?p@;l=tiKE4E2-W? zs$ZGQczcT$R#l6z8K!3JR8&3C9^+?3%F%Ytdy-I4)+KR1tAI&a=<&d-;ve!V#-&HI zaZ{w_`@PHY0+wd|)5fxH7K@uIo6nrY`$)xwAszV|KGQd7K)pRevt4lFd>x1D5f-3i0E}cKV-O!3yP6 z^j8Fn$3bsrj08vLUM|jQlYn?PABr3^SY`?f@hEZUPozs-;*5mdOUv)PTa(4$XU>Jl zNJygRJ=~eqq9`VaI%2`eJvZzUmVP^Tj(v2ggRdAsH+Mn~MLxT~MDl;&_`pRH!8 z!ZjT&T#Tc z$b^qlpXA)9(Vdk&6y$3wdd=oz*qMeUJWy=x-yB#^)C|7M6#8Wmu_BIH=5zd~w*?DT z6<@+Jwq`kD%6hN!!17*!-IW|xP7Npov0M&PJ#A>!b=?sgfH&PypN~bS(g%GkjbUe3 zHbsT$vlWDG>Dd6i!T$D01m7_Yi)BsZ_L7bcWTuODb%C17{T#xQ|RA|UJYors(Eh~u942@?vzKEm3n4KQuG_Cj?Bb7O6M&dZlRv*qUF*>|H8LknY$_N>uL$*iYgPgz|j4&WJOu|&a@#m=F=RO%)rG!wk#i0aS zVZnKUk%q`S1Sm!Nj<|{~S~anP0oWMmKNO5Lw^iGfQ9BSW0lAIA!(SMmGYfR0nCE;Z z&<~_=J$JB5ajhFOi;jUGb8&WSM)4P%K{>a=*Blu|Hof%yVjgj#vj{G{QoXOy>^=OsM+dQffG927D zAhk|XVGc8$EVz^GDF7m0zGdH~K8DeyR-A1U9_Znim<tG6Eq}p|K1lp|fJ!gMdJH;Yatf&@d{IEA#S! z&JraUB*RCh8NveXGya`{C7SD<4dh(Y(T$GjK|nl+VF3L$$Jvn@{Q-xqEGjkUjnrVp zb7!58>LBSF#S1ASgLWd51g%eWvWa0y0T776c6w6ftkqqYP>E_#F`6931?_@r&oi$E zv9|Ifp2p91+O!pI56Yh>Uf1i(VL+x}2xS$!nRPMdM)VNS2MRLiEACxcprm$-31?+d z6_D}S)C*zEFh;0znmf+cHuDB(8d3INsznd}Th}}T;L`XMU>o|J7t`7i?PB{l5eEz4 zf$$D-=f6ENMboHpuazch_daE!qQ76EtBsR3(NBwGh-)lV+4qrLygq`n65QxCZ%f#0 zA^ag>rYYP=uWl4}I7lR#pE}!I?|=v)Yb#Z}aluy1={jhZe_b8XS9RW(+*j$uc*{yw z*imLN3)z&nsZS4!t@0ODlrF1)L-0hbhelhVCZ;oh!6+&XE_{g;D}0Vr;=*Dy!qMKm zH#3r1etN*&=AyfOG0D=^0pvSx!U{d2f42(0>kLYpS>y@X6@=*=9WjocZbFWbCSwc{ z*?Uz(rSAlrVhA7T-_Ms3wlSaI5p0$vb-YR&i;WO3zHfk0~IOTi{b6kfY^w%eb^dJe5F%boVz6*?)VwuYw z5fbw_XWT(@2t&XmSph13VWe3aCg(0Vhr7>>)}=b0iG`_=+r+h+jc`j7*|fJ}7N-}p zncgutE8=8pJfh`ek3j|SUnnLQ@ri~94iQp+S&J(7?&uTr_({U;V-Z+Ju5~dC7f99sTX5Bes&T1Wa>zDBem+u>}EK11GpbbeAivGC94%WUl@(Y18u4DB5-p z#%JM^9Ld0YOxlvP{L_GZ3Ic6Iow}s;IJ8m8Bje58>N^qK{LFp|+^@gDT`%Q`yIu)k z3Lwn4il}8~Ogjcaune+d5%y!B*2qromS%FzW?-ZbhINU6V#SQsnzCS)-ZH~BQ_aKE zT+h=(eWJ|ofW?Q*F{)|@ssH}qEn^j}wlHi-KkM9=d|m#fCjA5MThm&!&iy*-De}3;t z-+MKZC{khBH51(do!-F#4%XnscAyX zDLivdP+-PG{P`6Os*FT2{3-Pj6E+b<~;w zW?NW_9h1R7&UkmQMoOF$m+W#|s(Z>qWEd_QMB_PKT#586ROH(a+-wOEVP;(S(w^M7 zvn)89#FAFXV`Z167T7e>dU_oK+bCy%OzaekDXLeL+{fWpXB$2!^1jBFd-BBubhD zdK9wp9Jdi%KFPV8CVbg0d>)(40rlg(gii}rDG7CxkG=DB%JV&L0{l4Ur?zSW9f9%9 zCZsr{HNj`_Ecyw8iUq~I`DQG;MM{Z9ff%6!;6Y5=9(x5hF;*ieg4~#?1wA?bzSU=E zF9_-@&gTcvq)vMWdIC-c;A=M)v%1W^6cM&g(xVf!#aPpe4!NsKTNS#HaArqAKfM8r z8em3pzU;t(1_XlUJd}58huIV^y=TagqzkE3xWyw@$Ne{w&uofdfbKM>@MJxEc8Dv| zhJ(1GG)RTrb_cWk*-rh3b6+hcr#NJ9k_b$9AhC6XfiUHCyW?ZY!PdLm5>9(zV=I)L zga_N{APbY`=&3C<8nWY~@cKuOr92X`T=n{C{|J>N6Vtu}0wnGQDXs!m^S$F>JQ5U^ z#247Idy5M5I7A+$LWRfF(EvHPq|-r>%~|3rc#;zg9uJl-L;s#`B(dzXBaQkLIKzA) zq{RrtL1VQ>^zn}!&*|>;P9xLQu*Ee7yvZU0YyG(ue3632#O)VHX0nS06!S2Wh>Mry zp3n7?^d&v=DK>OnyWPUwy!ny!jUjQ}IsqG{heB|b_0a(f6Hxbjw!|w1eiIFo5nQ8B z6fWp)0*-1t@$a%dOhg4_$e3px!lto{4v%2IV;uge!1Xx zQ*)@aP5Q?7>GwSen)!bHxq?()-0}T+$vsOx?fJ<`{U&GsT5kM)%~bS4&FxI^ezUEK zhKT!oTG9RaaM%mxzma~;XV{teW=EI1dH(|Pxj%2I|GfL?c>Ve4N&nC5a|*h`p!hlDd%=CprrU+& z>G5!@Xsl%)cKH+&e9ayG2@$njeawFRMR^at9=MiWevc_<^6Na&e;yxz{Am2_tWI;c z`Zy-O*dhXtk4bN?&BXL}to)3y?B1wzfO*-T=mvk9D2;_Wn7p=#{x~#u|Co>sq&6YlodL@5-`ddmUTA#^gZhx~ z9&qx{PQo7&%>TUIlmhai-(DP~eGImoKF+uhn6}@j!W<#({3zced-#9{{iJ(&pM*|K zHQ?Q-4q)|OCAA0isy}$E9^ZDO zdwe@|O?)p8kK5oQ?YYs}wz7Gex?0do+L(hw6#s`k>2oF0{jeTD*_3nTUN~~XcD5Gxh@GqFWUJfM zf*vHW;w4}AJ-8)%YPA=C(c8xt?}2=ua=P|&I+J*cm+j_NXGP%b`~!Ul_>h~ms9jq7 zhL`@qVY$bGZVGR1&@!TtpM;XYbB6uQRpOpZlWFdRJt|r1duYn!z4-O@bv|3_C&y-r zzI9%+fbxl!pV(gK-#tZRzLf#FrPI zgfxmkth^v>-VyD#m!47yN2`Pk0z| z8|E|EeBOy_&43CHk(E_(oM`lVFMZX|G$*iI+V%0e^%{q9>olotc1tpFASrDjmHFcp zi)(hIJGaki?+mXi?g4zDHJ8z&cN93cqJWT`k?lUzDtQucu}pa> z{c{cITKpW>r(3|sBjh?RvEblAY93iIpzX1LS~#MkxI~u(EKBHu`MP+5&=jclAVLm z075wg>o|W*4qKKL5oa=AHQ%4Jo4EILjQawUd?lN=9dky|Sl5NO^GxRGBFokTutB%M zC`yiF^xF~qA7TE?e(MyC;{6jE_Ltz5CH`I#Q=yyCTN^6+{T{2egB;~rkidBou&%PV zEm}5SSo#EoCnbcg4Y>#wdN%u(%*iDDQj%(iV%?s=^A^eKQlT-^pKNA76zhiG2n|S3 z9s*wPucJ?7>CjIS)GXW&91&HFK&=(?aynqJgw+d4# zeg#iHQ&}{znHx>PpE0}}4hghx2?9PAZ}9j+SwgMQ;?^j;e$L{-~6_Dwzg<=oc zJ))zpK^&c1x&iqFZQ1W^)d8l@QGMKEg4ioU-!|V{LSM1xZ=km6X?2(7Yw}~dp96^Q zUc$cmk?o(FA2knO0cyre_O~;r9Q}}KT2sJ8 zObcJQL-&vRlzVQ6?b}5&b7zfYiETTL^EnH?+vS@pX}IPVfFg@YKD+??bmma+ZR~iJ z9vPDds=7ibR6n|ZLk?8l*>O79!8d71QTc}&JF|;ZgsOks<4>XNJoq(SE4wdjWV9re((1Mii+Pl)cj@#1DF9aqt z2ZMu-Sf8aTzBL@gF=wM&PR88gs^>JnsSb}-{>W7bq?J8%{FVej(}j;RPF+aDU4!bI|QmOHBbB3$)`Y_F>{|2Xq1)O#2p1c?_Gz zE8vMNbuSfEeWq~P{pk7O{_3AFZ1~{cmRN~9nQOz9pbcDIM^3s=W`F-)h+#JL43iAX zuPC+U*{>s~>p5nofC2()fXx#v-%MoY?&8kMdRIcr;FoV>HF6JChP=7!M}J#*Ki~}+ z$<1kzP3LSI8Bo6YW-A@^e9k5Nwe+T9NkjlqZXV^GBn$Oi0{Ay|!gf>hlzxW}l~@*^ z(9!>FW#RkWk&-7C$W2G~FfTqnmqUBIt+UIe?ps0)0XPOoG(N?jU+KTrl06JIW%Zee z-R`s9oXb%XyHE2ziMggK9%$W>y7K(6PeB$z<(bEEGkC)iTQ)&bLg>UoLxgDV^ z7Wf)$I&lO{qThJ9O>cxwIyQ0;PYQEm&+WX##Mm72Wyrp9_7K0FG*Q%*P9*2&B76zf z%iY%7V?~ zjirwEKNXxIcHyf{%8u9a6Cy@QLwM71X(37VlqaNN-tPE(8Av)$yzcMO4|2tppP8|Y zdz9U0vK?8&x_`U?oVYok>0kgN#_U#ToVZRj1#z9?P5zmJJ;M^%#529c?J*ntIW}Mp z8i%3jL3X{!pS@l3+P(~Z21bVLE;)9r%SrsHym5C=TvpgISnTXEXb6tq`3f*@7>R~DfZG90fazY1tA~nAIG&m3G zCRkA-e!KN6*djjsC`dd3^7+x87#P{&(GiMH3Of=w_9T{a{dzZ8lr4|F;qw$x|>wUPolq`;UI%>$MBHy4$D*xmgdfIDG(>9>zlXd2* zd#u)1sa%$w>IOk){h{oUa%n94ZP6%j0*-&M`AQeaBA`Ml9=Q`gy8#Z1OE4!zmZ+8>>}9mt;{ z4~H!`_sc0eu#>a40B%7aQ0ey;?sRem6)xJxsZc!nuid!cYZ^yL_e|gGy_YF36tLXx z1O2nV5Hi-x(1#1aw_tBCsGonHAAz0zy%8;AtMV~W!&-EAb>Ec85a*rf%s0c{OC+(+ zUl4wCpN&oA$OH0=mS~FHJZP%Yy`deHH}wE-KA7{X&!iqm^OEI=RC6v#WCXq%pbVb= zi2mT$`xcr!upl~MNoXEFw2w&c5PvcYzYALgd?d#05z2X7@Jl-V%!*N2rOfyoJ3aiZ z>geNtCM}lT(fF*)9W6P|;rQCTT0A=1BV?X>Xp(Ll?-bz1i5PLU9I=kz~o_V92^rm2dee*Git(9Y9RXB%pv|%!| zb@%ce1LrGIyav0UcuR4uNkOVjrJ3nUctPIt-PJdP{lPwHW8XfsIE-EQ)ydP9%FXSU z%m-Lu?h^XCPlel{zj%%J{Ztg2e($S~(v9%eojhps%Z<$SzP7Y;qlZHn@|L9E%EmUv zZcFA_vGcv7r5l5vjm!EV*7@cNedw;jkFq=}`k1Hs%&z`?qV<)Aj^9ty3VYMC4n-mfb>he< z53W+^Zqvm&D;I_GvLX;}k0YR4ckh7A6uHgN^YwJw+I*luMur9CBx?%Di0Po;#r@f#;eTmwbwtQ0%S!5NBW%wmEY?lLY|v4$xK}FSHJ5v`3VRZ7$_(x zFf4X&^74B9@V@}M>>TPm-FEs>c;pYpjm_tvvnCsjUQchuFA}$w()Vh>`az%>MQ)Ak zD@hVscnTfQ-*vjbfpWygdZ)>$+!gjBLSp>m$Er76X=rXVw|ZPx`Zq7x{6sXhMRin# z;-CXSe&vJ}g)DP3LMcv!dUxwjY)(4bC%0AW-@z-t;pW(0c%E*Vro32)C zFKsm?RJSAocx+%&LbUnP6?zZL2I8&SJAxJ6{D8>qe1%3>DawnqO`afOP~u;F>ae$< zx{TuczA>n%s3<8Z>6`RCQi0IsBnt@#1^GnR5oC@92`$Ssp`Agj0kya;@&1B?G{xDb z$L{43Itm(QW?EWOQdU-08Ui{pDk2&d4hBHq#nsjG(%hRo}t9T{t!NruRNBPI_F5rlO9D(#ov5n)YAStlZ=b3}j3+oLyI&@Bu?^ z%}j9Bm+Ooj#tv%_Xp54To3x#-m)-pAzy&2&czS$Y{-55w-MHDhx;nerej#Du0H9Cr zF5XmR0CQ{+q7^(hkdfjOl$4c4 z_NGQ>Cl_be7boY&CKlzx(h+d(b0{RaH4QJh_d)B!RMo8>r=TF==~3dED%-tXRHV!l zUDb_wRtARIot>36WhK?PWF&M%oYRx5yUX$iWKBzI=}7JtTTE=s?asTdEfyBGHftMm zW5b`r@{ZD$T3>-b66$Uu%1$y?T3TLSURqjKGEPPy7{dJc^6cavp)XUmm^v#9iaiBR zZv{zdvoGQP_x7H@&Z~Zf=riw-vdXvMxc-xi9Rvh~c!X}88|#`$`Pe6x6caGZJdW4+ zV0nGW^j9*q$4)Qk*bv~(==kJ7H4!m|f!BO-J!K0)6=}7d(Z#`0JzG;@Q9%y_r(efz z>W32f$jEPDRMAXL$;c8s)MB6Nc9ejxvj$?H2+j<{J@!tF&@=qbBPK33Izq(zzQd%$ zB77eVBnX>B`)k>kn{7r`Mm8YVHk-WC!eYpw6zEH*BK2EO$E_nuKsmCAPAeE?5@i@G z9wDUEBo)@CC!6i&#yf}zN!pvNbsk~jJd-`tE{fW!n&R^Onu>xdirNathiBxS+riC< z<8A-FyYl>;<@Wik!?HR7-O+IEESxKCoGYuUYe8Z?1E+=EjGAW^Sy)(DXIWZYUWC?s zh>O?7feCg33KkwJGCD#^QdU}CURqjKQc6ZXHZCR}7L0q+S;$itID&3|7bge%;C>Jk z9Dx-pTG_{?BT_m$hCc`ghWYsf#DqjdgoMO}c?J3ThI;x3NC^szc2E-ImKbT<4c_}; zoHXj*JX&~~JIw4|#&4rT>_ntJ^>1&tvjV!N-sUb2R%t!CH|~dbPQGC7j3`Rini^^T zprZ29!m=u$78U1MYJ$DYOiit}7rQ{tgcw2oL5GWtQIkW&`=MK4a^G($Oie8Cl^Q8Kq2SXZ9Q0+nAn*DiC5Qw;xRVcf0Dw( zBY*Hr1oFaTqhVl!$kJT})U{O2g{4m(YL3tMFN;S1_^AsJG|GU!e}KIK3;62Nr~RvzePTr|7JcJPKVg>$pp%r6lbo2Grlp{w ztt_kOBJ}DyiFGov`Q~0C0usHumJ0%qh8x;?T({b{RCJG`N3i|%x4s35{ zYY9_hRj}co_haqq8E9MI%jp?90tN~eB5o=G8NlOhkQ)U`AQ~z(7w9aQ9y;o;n?z+9 zpw8nxbePOkhvxU^tgURUZ!SC6*S6QyHFdIbGt;r~aq%wsZ~j>R2JC9P(~DsChut&R z)wQ{$#XojqgPThO%Yr)MA!3~BLbGEX%Tn4w5$T}75E(##lXGn?{j5CPe(X+R#~b62 zC+|)0AK89KX=$;kiSdbFN_H|RfHY_ra1x*n<=D=@z-1&efL_`}W{1de!6>l3e-CfF ztBa9C$xqeUTV1Z;;v=Q_d_G*q`a%_Uc3Zby_=DLmp=5g^_9rX0YYMyP+%wki;D}33YyUYaeHgG)9oD?7$`2_ z_w)X?5ZX{{2NAY=P@5|Ux8wiI`15vkgW&_!eS3adxa&~6sLZV0{(Z`xfq!$uq08-& z!+&$e=Q@0TUl5THprt2E1aT2w{x>eyS%9olOJiewYs1&q;eBu5?Cfmp?qk5!)`d;= z*pxiPlRLv=A`;r64?aGX1hn&rd*DNU*$&n53+<_zVCR@9(td zq+}%IgG1w@T7(o4L1B@x!ojhkp*f{L1(!KxCt%3W)7RVEMUIdAeV~wlfViudN8m3C z47s;)woyIx^b{SvM9M&?gj^`>y@fmFObg4Jd_)@T-qz+mbksz{9V<=9*qo4_w8+U;C@j~ z7X6KmkC4(-mzX_92nr0&S5Xpr$_n!{ZFUgEd$dvZCuf#gKOEt(&}6(K-q%)+*TJMm zn&0eR?((~^u`NFg|0lYlrywHqmee_ms5nO@4VIoa_%-2G$vmVPujEu5~2nGwHg1uzAbSkRKV(&Z*6F{7irKO*-mZEZ8 zZfIb1x_?SURuBR_I5I5g-o@E>nlibpKLL`PC^Gv22axaxNbr`%DzbfL9fVr9rMbLq6!d@knlaow~P%;jScbwKU074 z>1bH{Cj;3{Z*6Dk=o6YBxx4vhev#q=5+WiXvV;~I9%5u@sxERiI(*;I0sRI@35tq( zbmO`Tz>+2P^_^7+=+L;Nh-CX~eb4igkC)@ult5g3pubY!g62DKao1eGo8?kdlas^a zqa*JbLWBOmuTHJ2>T8TM%SuX0Emfdn>@7BC<~H-ZQfQ=9YPFg&iohBAvGLJS3F(MP zD4pFSAmX7x0r)9i3o3@KKAPSUG4XeY#*StNZeG@o);3qDP!LgbnK)^Gm+Q|%6qG{( z5&_sjMkxy}Ffo%^d^|x!dj&*BNJvB-m)#g6kk!*()S2nsI0i@x3=YuZ#d^U0} zs%R!;VjjEKzve@cpgcsx#4K=SMFSuRFTJn#{msY2#mC5{tCkT{Jw|`aEzNA~ zY`qRW9~PFtG>DqNYleFh8~pO+UZ1~z-@mn`t$|p(FbX|DQ9;p>{=R{MzJ3r`Xbqe? zJ4i~iK0Iv@8L_wpU0})Fe~hDau(0`uGf0OibSF>gH&8`}QW)W998 zdk-KpXJ_N$URme)JC(y$jj}pNS8E3%|EGAW)*JY%prf$0%KB+=wUp@^8v0@TvW@5c z`F?dVa!^=EOd%>DA~M`dUaD_&w2zLKnBc#kv?*H0hz?d6>xV#*Ls4O&-2oUuzQbN( z;`+Os6G-9U;)6{&*-|@kG(84Q^6L7CijbBO6CD{G9-A5%80r&}7nSmh z1a-iR1B?3;5P;khm)6?an)WLyObbf7BrOBT2bcs?NJii1YdxrV|4%=ENEvx9 zi(6}%|FL%tQI-Tu8ZFzlZQHhO+qR7^+jf_2+eVjd8&m&c&dhq&lbe@|Jh{ll%gBhh z_k)39DYh@Wd1*E0l3pkT>ej(q=K)9w9+lVG>i+{a6kt&|3IToZ>g}Q}E|{DZh?7iH z=Lk8L|3+3+?K}v9eW+Rdo6Vc2*ZmzbPGNj{hz|z_lq|)ALnC9Svzm--P})~!kksX& zsG}rzkeVYdprU1GDCh>(1S%mlS!08py90K?hD1dLg+npsx{P8X9Zg2sM_SahLyiz@1 zH@~4Fu`oLZ<4|A1zHBopaqz3F`)dHXVG=7(z8a4(f7k>qCGF6>)I1H|mt;?wrOnvT ztekFoa%4hAIwm&Efk6|`D<@ElWy&)B^9V?CfJLDofnbo^X{Vg?JV*xvLYknZ2rWR6A^A=X%mx5 zd3BQ(qY*LmN*SC_S!(BQo!kIfz557DkqcCQ++R}kED-{n^}1}mbRdS}#d<&lI*vml zO|<3;l>%L1cpl3Wm>Z5kk^=MX$Yna`i}*K!@nVB(GfQew2uFe+%6&TYtG|N*2uk`)AuxOt$uZLr_q569Dpz5KPZoXjh@I zm1lTJ7$^r38lt8qqnuRCV#zg*dyk}^T`Q=N9HlGrP1hYW3X6(M{Ox|xrF`leBq}@s z23Ts3ND1nElM8f&l$5kQlrwX3vG67?4J2b9d_I-AD_wdZu@S2Be6R7r?xBToA(=pf zz9nq$ZeZC(o+A6L(+do0USg=ahDu0Y1`hg!xtu(o-`Ble>43V|EFG0n6`=BduDyp# zNM3g?1LwfV02@$7zzFZ`-0P!FUB3AUxCVqzXkDMMg)(LEE?0kjwnBT`yxUHiO4VJdY|XIi3^)0exbIR%k0!LvKrIUBJ$; zXZj^Un{$GZ8=<8qrJ)-SzOGn9D-!rx-kGY~yk-4h#DdDz{{;i(q|6PLK;nV&7(#v( zS0r}j+$RW5^ig(sd_q&kH5Ep6aiGKUE%f`yds>y36$NM6Ti7UBN%_P#uVL$el1v9w zhaqCgDYjEvRZgT0tx4{ZHPARNVa(Gco_mFVXh|jcE=80%VM9(w!(l8}cMBUOE+`=j z>BuI(DnyMvl@o{UNuHM9!A+Pf(;%j|fgHy8Jc#q}HcFgvgOH-GxW-M<1<9Ufb$73F zUqCMk#?_Rb=P{NyPPL7%bthzvE5x<=zbUv3dEn>h670cV_><%;aWOB4 zI~ARz*q{^AxV{I_wR;YyAu4v9zz^1&A7W%?$H(YtX=!Nsa&fROY^mm>plfH63rp=8+?3`3QMZVaIi?5%!5LE>O=9Bpr} zo*8v%RY*cYNLhhzg_-Vn{NB%NI?55B)#NJ?XM+yPvVtLmOhz2~3Y(OnL$a%Lho6~$ z&vZR-jI7Ai)Wn=F>FJ~J2}NTv)$w-~6%mViZQ&8eX*uR@<;Q0tp60(TW)))xs0hi4 zhr~i%nG_F4;u)p4-W(952a2rF!&6f(g3@6i{w*LS-g~Lp`5E5j8>wmP?rd#;eR`^E zE7O*5qN5&`j)Hb&gi!jn5In1;;PALU)?`C7h*nPvXy8rfa01jWfW3FT$o- z?d3N6krbAZ4~O`(Cz{pur^wfuzf28I&kJFyw@kFWv2LxlJ_y&OwBLQRZAfvk5#S}m z`4O0)CMv3|vbOnsVXdW5Txjw=!9qpLO^i|3SYDrBTv%F{Q_)U=54Q(pFP$3v^wpiV zt&JJz!<#EyHTysI4J^IBt7_6Q9S$4W3oG}2CcwYO0HLe8!ak~$a6rUy18H8B@71=2 zhk<)-WME_O^t{aV4^J<$({y`TJV1jnGBX2{0xoz7$2+`JM*ikZ0by}D(Y(%@cj^`Z z{cgSJ7BOL|&z*`EYm$3zlHh&3zrBKrmZdGR0To3_QE8LIGgh<@qt*sJa3UKIUT{@P zS+V1Ly@P^958g zkpux(>E#b5&2{~C6%pcci-&SrKqjnN28S$FyRjBmi=(lv?!och*3wu0t!Onj7x;VQ z0z_p*Gq8A>t(fN!M=bWV}tWHnQ0}6X9gQ}bMpTu+h0Q(apJyT+7r<+ML z?)Lfx`wJ54B@M_^l{MDaw&!(plT(oJanW`y{l)cV<o1e~a4GKuf5v%!0-^Tf{EMAl^AU)Ihy+%loEZ)%N{092O{FW2Yu(a7) zUNG@M<1%#tY#vEThlcwIky=Aqn#=qhK+3Vwl79yXVXtkSd=CKYCL%ggYJQ5EuDZUq zpviFHUOX&H;M|sAyS3rmlgPNBhBNSaU?t0cXlnnc4s%#SBh+}TcpsdHqqx%N<|EG6 zIo;g`!Q|kwz`3!Zfmtc>EYZM^`}+2K*u>^XrQNm-ft1^e_nU#K0Bve_l(E6by|kWu zOb)v4mXI~-Kkk%S?RsV}bp(b)hrgFn(=ssB7gqheJ=9OvVt^E*sHo&`h)PO{%v4zH z;UVB90Yt$O^3lQH?06fTz`zxL{=PBKb#=Eg{V~lXHer_3y%|;1o~^5X?@!zOAkXU===bO43?fJCGP^m#-@UN2E-Wc5t~B75n#8eI5j0l0@DI}O0ACJ;EC>jvn&Z~x5T@+S$rpNM(4iOcQ331)R z9a0^xqd!F1ly%_s#0iYR!M`)`KAFBa+8!`42Gnw6ZGGKe*+ZX%M%Gn53sh4NS<5KD zOXxAE(*Z2&9)7}|1rHN{-^9x6B}G%|^b?kr3kVGh%g|RFoEw0eLzueecXRD2qZ}9+ znxUuqjc<&6?&#&1nVlaQ=O<&F&@@tB3I9%r_7DhE7WOZ}@66~!yNaE1l~Jf0GXL#k z+3AH178&gw9-EXBitu`^XI#*7a$m=hr`;l?$L7ICyl&t z3~}hMl$x=}@!?g&tQ?b&1*9)5EdSHW+_f%oj!Z-HZ0GA2&H_Y~Cbf+HEDUuQG14+q z6EmtS^B4Oeq#`>{W53`wUu*JVqRQM*S4BNKtkqdo`W;>JdUgAUMS#4Z0a#1~cQ8GH zrRj#`nb4}WiIU0B(Jlq1kAW$R{XxWpteIWkVmf?KB|ZoH3#m8S^!)Zkf4d{sQnqnF zc;n3CCuyAf9wFO5H9RR8%7iO?(rS*EmV|g^O9o_4FonYk7ar-w@^789{sR?pZ}575 z$bg;$q?|IM!DMshv8l0@F?D3>JdB!05btpV`d?uxv+Moy!;33>8lm{`$zspR?m4zH z-&brzhWaiLJU1{ZCM75?GBWAPosGM-_s#CZy9<0qV*s6WjtakC-qO}WuKU^$#WW2E zO(u}*7LXun6^4mN9>0Q)BOKgI<6)jw*S+KjArCD(J26|IS^@(%anfQVNN{p)WI`r_ z9Y;{9 z3E>a%jXO~4cfl;jSr1tr!^Do)<@KIX&8YX~DtfY3fmU!8@**r7_u)|bj$7#mS0~tU zOPm}$8(C-8`Gr+f63-E0R~;nqJyV|15>Z&!{x7FRC0AEUH-OA+GR0xUeisMv3`w1_ z_VK#6?2t>WYGHdznA5g^>Pc7`JolFYYjkV=C4?jdgBI7mE?e zd#c)Jm6u>_=j$(z;<7h9)|Tz_u=F17Mc(coy`@o&afW#Z>dg=nwbtP5!tUk@F7mA) z!}P~HcUl}+x7394d1Z12s{yvg0NYyIRs#TD%=$9T$<^Ae{ZIBaygW)f1myN91G zQeS9LG4|CEN&h8DV`mwV(*Aj3QtqUvHNU_{yH~-au4jvxT@rDiLE!XB(%S2hSCMkF zGxM2Krk3We-5nc4;D?{xeN26O+3D%p`RCRAaeO$rcRrD&3?jp%#;7X%u(_HnqA^~- zr!U*09;76xCg^%{IO5F#^7;b(RCWB7_UU|{7bh?O2M#_~rbj3JZ04nxQsnau7O0uv zg)$g!V>oM7m0rL39_p6CDC@ZM%?1N6FB#(NOGe!HV(flK$s5D6{u-g8&{$@8_k444 zHcx(s=26`|#G8AayN#!L`QTg20rl;O9Ih()npegP@rj$xZ_iOOa$a!zdfU(v)wa9) zYB`kixBssVZja98Jm}jUykLbjF^SC;)-s1t+$4Lm-Cp2`=|E`_Ik)#m&;D$PoHcCJ^w<16a*tEq9r%M~@$>ZNb)M3X_2lH`OFa*FDkQet#fZPYMR2@>M9&(WS{^K z6fSmezVH$?Sm(vb%EP%WsjITPxwNX2@$Ow=^-J7PKE-Fd_jZ-4{u!$!u}FV+td5=dwRmcTGi6g zFmq>k+%M)dH>G*oqTpWE?uxdgd?caA2z|=+0v2WH%iZH#(prToPFN`l%gdbYMV>zw z@0w2DMXeZ=e+98rj9)8vQ@}{UF^bL#S9^n(htsc>aZxt~6?@l5T2x4Ac#E5>D8C5^ zXAte^H@%chJSY^I(PY9QSWYA)$sqZYNOu6QCV7O_*Z0es%gTvheGpvweP2Rbv!RwP zSAMOnNna3{`x(J!q#4=FP5kpmWD@%ftlA^=y4J7J%vqGWR`#a6}lU0}P zcnC>FbA_GEb6;T>pq> zjlc5N*4n{G%u<(Fn%P!U(+*2Q)*}2N|E7?$K+#uAv^UDDO%%IplN9q=M90VrDG5o< z&#^MK_W0WYXM5Y&+yAALfp0+}f6bIcswL64v6s>sn_9IaUxuc`T@MAyGu3V6w-T%I!RhfwJ}^|G%6_}(mt#?V1kyK z)SsVgBO;%Y3XFE)*wID0@WJGLKinp~fhEWH7jq&Kaw033oM6(4sV2gD=^p%@EGHQi z6&4QqPLVQ7ok}p|K!>sE^_F`y6{WHf%*RKN`L5zJsC5AyKy8}4@edFa68mwlYv*BG z&`CmeQ3ozMPO}M;QS??aq_a!<$o0{h@3JBh2sz!|*DWFv*}Ipl)y0mdup=Tq`Wx8# zXYYwoQFe1&L%Y^@b_ch(a%CODx0W7PG`R650V&}8V~8k zO(E&1#Zha82$vonAt&((4E}xS9=X82Xt7%KNQ9Jp=ko(=uahZn{h5!aZBdcHBulkb zx^I;0q@t9$NXtAf{mZ_Sw{3@y`CWuAfjLlMS{IiHA&s{dAmR{|O2~z&7k=9iCiSSyAyC#&`V`yL%-G zfWQq8hzZNh1c5#qT(PjN%u4_`4uGdy$yqgl36Xxz=%%*Un^ps->M~a-gTf6X|J9EA zET*I-o_~M$%mV)WtJ?~@KA|1{ZAi1Ezjl=(9`PE_t?xXZZ^j`Af+B!=+ z`?_i>+L=ko#CIO4I*Mg~U3(~x6a`jWOVX%f(Owo1Q$IXp-8{zuxT3&f-pa3(aX}H~ zl{5KSKOpP9+4D+v~~g+0?_arHpZ1HRP4)nAbhdYjsLSOR^>d2J zvGM3p?hNS6paORR%abI!jaO3MQ6X(&ID0Ry!h__5Wb-CD}y8Q7v0oB5*lrR4`0IlFRstfA4Lln7(EYCcg(L@=s)G!T z-Teh1`f_<>|It9()9ch&btFj$R9<*HMD!Cn6W%9@d-YkJTUv?eljrgpW78van4EMZ z?1Pt475T)lw8$7aezEZ$BFZl0wJV1f)$+U4$i#z%>6fJ1%&!xjo+759^j6f0Nee`9 ztg7V!t@|c2GAbet0tzZxoZJK>BNOYeW(JPM4EI>8;p$Crf&kD8EC-;-Eb!;v(8aQq zVflDWZ${Go)-+Q6xx7FBRPfC_F?|h3fz*()a}1UJN}^8#%&;e(LOU$+;TCe$JN2nq}? z@KN())I-zZkDVj|DVm)~t$yPU0;-8onXs14oM#avXA-%4LvyV0;6z@hjLz@K(B&sr z(u%<2PjR~nE$2tA*}?|u%uaA|^3qa3c$>P;b|P}VKDi|5645kpx;Ny`(pYy5BST+r z#Wh<*r;wV8K;PYuAe7NoFT0o4qQPkXBiKR-g^?9q^K@1 zwE3JKV54VgEKf1Bc06K1=2_?B_qK0nYA^kUjgf-?fa7y=tno4|sweCch;yfx%ib|3 zm3*z>(kMiSlxUy(4-|kPme^xpQq0RKFy!dP+G+88Iy7lq#Ew49H(pS4Zh|5@o=HPd zRaR0(-Ah?%84!@3B4)x~edInBG>l_!dV`7%0Zmwlk?sBfUK_a7l`X3Z?$@A)b~gU^XX7S1NK z(IKLeb3E<4t$$E92hZYuS10MSJRG-i4*RiX>}rRIT5gE;YoF#7Ch)==BrfX9vzdW& zYi@3GdxndBY%SI_t}zm^SJY*52JNDbu*KiMxtmiEO^nOHd1&H~0yduOaLbF=l{yG( zZ^ji#^n2FDy}KM2UaV4*Ic-!#Nt+WgV_2uF)Kx_$Iwho$*BUG|JTfU84$q=(;}4rk z>k*|XH@(8m&DQ_N2a_J8kD$mXxPG5~I5svwN>Ed1?lim7KfZo9&x`D!0}tmstCou{ zzOGM};UY!vwG=u<;XFM-OTfd&O3chl$u;+HLO?Mh1LVn|a4Q^nv&P(&EGBp*f+*DFJA`(ChgrFDFfjJ?+TAeG~ zfzZR%hs2zX$dbJ@pntJ0x$r$V@@Tc}mLlCF zWa)9r24|}a9iT*4^kT$T+ImyG1)e6xHHFj@Q(|tGEzDZk7dBlTUuE(!fr<}q_U}cG z-X{0=w>l8re z@YHGMyD6ic7t)k{t$F7JQuiZ#D|xiYt=2GgXnT#%fT*Bbv$oxF_CE?RsP@ps>u~wfPwNcol*yxWq+S?;DkA!-13g1lO}KYGvU(N~L-} zQG~36e(a@g#~3*wh{*v*fR+kp4ao@TW8pio>ceXgc)Zlh9{oPd4A3@2JHbZ8pJl-{ z?cW_!2G0GBw^PmOv`&gwop1pik7FvrAz+R~%NS>W%11%CNV&0@4UXoW^;n)GsIfJ8 z-yh$mW!m9Snv468=fMrnN?c=~j@li2(3D4W8c(6xiIXDo3~a^KW>?F;cc@xrKO^b-W{gqVh1>y zyi6^?!yu)z%5Fq&P6#XJ^lPABw*x(Ck-PB;5Em2s^s3_nyxy%8S`e|j>6Y`HKaF%3 z$j>XglEw6Tg@d2!M+oy~B)uYDq&FkLvi;e8-8!!tOiJo*K518jK*3-%|0L^iiM!s^eiHcQ1;U6=YR2$?B2ItzH@=S|Ot z$)I$19>eCJgyYi&d_7oKbyIgMr1|X$irK|zOfO+xlL-N5X_7S%Gwo0-8bDTPeEW$C z3=M#qB&e7KCV`hM4(aVrHjwRaOpwZa_B-~_a$#PjmjV3jg|CJE84DEOFZ|9}zv$iI z_<@D+^1YGb73Ss`fC?MRi)lE}+9)7roFwMr^qY!5&YiQ5ofg%qN_vM5SG=&4?|m?{ zU4^MQ^7j%G6G0|u{p{GptOyo4H7}>`lX)3CFrxj&DO;+&-9AniF;##nrS4aZ^_=^T zZTpZ|JT9@35b+L8VbRvjaS>llPRkx(>ocjlG#I&I z&fNg#D>y?*K{e;~R@3#ZuHSMac_PN_F+nR1*!$E%+t%|n!~xq8z-K`T`}RY?K>fM{7YRpi5%AiyEN=D&S86>~}8h{`O?!oB@M(1`H-)-k6hy zD*sVSjG(Z>Ow?TEZhiK8Ssswk4cl=|g*CUkX9A&PwT{b=zZI~z#?^~)^L=8S6$H@| zB;{@V5GXu)T?3;qQK5%oKqjtb4kLWTk^Rip+F|cD z+Z~>nNB5{ZF7#8M-9<7wKu*XRRe%$)CL0v=Vb;vsFByEUkg7GznJYv7Bc*W^ww|Ny zHDQFa1fsFag>pFSo#YA$7u9rnYq2Dh*?O~e$cY25IK!Kt(t0mXQGSD!n~im2I|j#k z;(c=yo$#D+&9pZE`sT^K(>@TmVfJY-<_nQ>wg2=X-yKj4T-U^-Ycu_b0&-Tr(;Ny( zddoOUk1W0AgN1;JjgEY5T_g1+bfk?Clx!?xc``M!x9)xsm<&L)S!4v@MhXT82+2u` z3R;}M>A$Xub5J=L%Xb>S;^xz9U}0IqEiGltYl4-fs&hnTK!&~D;I)s6l9HUD9G{n# zfP%Se=Bli$_}$PESQ4!-qQoX)g9Q-Iz&oV}SDTtRU5cM2eO8+CWvs1it9YJtPi^H( z*G*w_A7F|Avt}E>hH-dd=dLZC8GI^iUu+Ripgx5ISKD#KJjY&39@cjdIG>V{_HR9rjvrntn<^yq4jsmxA~%asu?NReDEGPxHuGV1*(X z-ZoKi6ihD>Fa#wAT|TKXlQHZQkUKj702jXpuQr;;zMPzff*QnyGFMVOB>u)})O0T-eTv zn{-c!vDMJ!D*Ff5da0It!Z}uOl)9qQ{rd^rfPw*^;k4I}!wZ^(`~o|e_+XJ95Z1}q z_h{I}Ut3jAsXV--6a#wqEx}=IJp|>^uJ1sx9$JF3`~ovWo4Z3$t8Ofe?}EVAz?LZ)xR`} z)eSO2a%O^>VrufY4uHA!$oG#7Ht1asm)eIc(+6G~WxRK2Tr|ROec!*x2AM&c)B-hM zhNr#C32cG}J!S0iWs-{kxR86_bBt~5l}Hx3{rl8%X68Yj=tlD^OFTeSwI{JFl%|^gU1J|)rcCz^B|Sn>Rasq9OF=aw6$fq8w324X zr$^N++TT#vmbT0QJvxHdUSypYqbS4!x}z3RI{v0i;bqna&jTFC{N5}pV#kJ77XD`o z%c{y~2&g9qF9Qoei&xh#Yb)T$-CpkK@_~(qn^#@Br^`(qz#&2=J6mgUj+vwV&-3Mb zaQ$R9j~@@eYa7TI4AI*uY0wuBQ)izfNZ)EA*1_MRy2wj2CLHf&(IXf6ha(Mxk=-Y7 ziu!0tlLk-LdgpZMv*G;xy<=ly;WK7v48Wb*m(xzEZ5+pX-~;-ia8`-RyMLv$wVq)g z(YJ0AvQ=^^wmes)#~T) z1rwYttMc~lYo6Dq5a9*u5?2ur{7VSdxA_7b^QTh>#6|^%#oQhpUac%V8i?B(T7|U6 z{sn>VU)S>YJKlC*fDM~gm>5aT1DH3pub03d2p9e(0H zySt!-fhi*({ypsf6cUK(6Az)FghtyqQX>xjoivb8KhRH_(IS-!74w@jV`?v1p z?bYL!Zwvqn7hjOwwW*hjdj>XD8G;b!O%N7uCEdi2XVxBpsE4b71oGbS#d- z^A7E_(R!uR4T#T+Bf&%<005EX|2w_q3uP?^$7Wav+ zdvWZlrlbKCmp3G&1(7KD1uo~AdGlTZVxUcO@$`P#zxoPKQ`hO7?%$sDzbn~**hGwD zWBc+k@xa$YB86NJLXz?$+A8O35~$#&0%-{)LEV!%7Lih5TW@1mL$H0Pv|{m(_HB6@ z%e*aNLNg?Q@||Yqr$<1l{&aF%Ktx1=Rj@}71i-e!o|;a3heMs|l~v#-U)7Sg z49WR|9=aEp%3V&Uw$}7&^b{6OAJm#IzmifC-$4!T?E0UKs6c> ziNxDI4}W)K$HLkYDt^=m+VB;=e53`ZD4mW%V-v9CQh6O6-MkKgD5u*(U+fy>bkt;}2VZX-$Sa!=6BXC0?DbZ2Q&STFy;1-RgTNgSYyJ+X5(WXO zqN=j8GB}q3sYDn7O&Ka#9lV zfibY|H0!WtB%)vso;*QfT}^ipa(>5Xpt^7uhrkFpXLV3ZLdid7`5k~d$*|G^&kz8i zq!=23nrUz&ObbYm_pJ~P0bY18RlQMgvsKm<6VZV0j6?|Rqs{)~ErMdaY6~yEm1TaW zr~RX?%g4jlF$I2&X)<&4RrhV6|7e@$vkJHwONfXE_@HB%gHMzqMeun)_BK8r?0Pnc{@lyHLJRfn_AiD zCBP>$JdN1QMy3F9l8_I6@81o+%y2ZNJH)_Nx(L0lLTek#4-AS|!tT)`@Z*tp_2uM1 zjElmcD6UgHXYZ`gI(*O`o_#2#D zo!G!e6{O0vj57FhV{y9sy|& zz{t3wka%KDHUeEBhdDxX^&SMpvha^j4qg@o)YD=PT=7ORLr(3u>Kjxne5Ax>2nu+! zi6cMvczYSD{}#2&B-Tips(lL4Q)+?6b7BXT1yF&- zi%+n&L@Y*%%krS(XEt9vvQyu`7B9CxiEgbx6vnJ>yx>OsOk7-G62XFR=iYR6Gr^I5 zD-C~na%yB-QOG(4!@#tdfCfQ7G6X9DPMNtcZG%?28S%g_l{4z(EpYRMUys8OS%IO| z69z?V0S~y(_~`Wa--1*U>hCj!Ffn1wOzD4&?We5a`9neP+Zi>+1YbmD#s|Qv;i;hy>pLp_i6W{{b&I2HeZ*EVxK7w}Pz%QNP;bfxlDhbAJVK^08n$`g- zT#T~f7C#AeLPiY_!J5l25Q34wx5dr#d=K#RK^M-07XibFsIIQInIq72p_}Ux!VUZe z;6Dk_!ttONF!F&>um{LU36K5)zSUs$l)Q~XkrKLfi>W~$yju2@RP67ub30xQY`JZS zd9^T?^>a!;>8{GAzSowd%0zPz zN2yXR39Q7^?DfGJQ_0 z{xrLO4n8l^0)#iB(g+*izBhj%OaC0O_FjoHlLUQ?=Da=)+@${8G<~q=yxWo&`z=QH z^1%Hx;Nd`gT7CR*?EZX*^`3=3?pzJgAGbD3{s4XcM7R9Bm+N~2k`3GcgY?23&TGlT zJ^87A>U}&o(fhPh`sA7Pe|WIZ`Tl`;?e#zH?YJWr%8Aw~0Qjg%UJ!Cw%G$ap-5e@#n+-XWQ{- z8u#a^`R6qY*Z%p3?BiRD|EHk+ zN7(Of)#fv9=e>s1-&^$+zixM5)WZ0EXY177voEghi9PRy-23Fl?PuZp(9gf^*q-O1 zb@e+Idbao7oZGiNkq}l-1YA|jABEPB_E*Rlu(Mp?SLyXxe*Hym?59HmEEUP0=CJ`l z`$Z3XH|v^qVl7^4_x?Fg(Iyv^Kqw=kObm^@=Bm0Kz{^4kO@n-C& zZyU^K{iWRI2mXQ&y`eCE8dp;Lkhyw8`xXn?tMkCEJktrF`}V-_DZc5y`qQ$5HsbG= zl4tPYH{VOY-kiI0#Qygd*XwM@{TV)V65sfCvUvww1`7rH2j-O@JEFxOcF3~;B{?Th z{>SIf?V_mvN^pz5-7WZosh{;{T*5~YY&`rI)4X5LG5ylitS`d7uEA~I;KzgP_mra_ z<>UAK`^rP@4+d*F2E5kf+hmNt_iP@(=XhAJ!Dn8_kUjtBzal>_oPa;30;4}H2D#jT zCX@7ftIxITV7{N+5`Js+i=UII{?m{8y-)ut`GMc#j(?P{c=?syABr*_=yJHfd(Eb6 z!yy}(X!&{1y=B$3BlJOTCkyNDzw zKZw<7lzNJDvI?#TB-g;EL>i zYF8OQUYp9UGhWB{1f)OCwH$E*QJs(Zj4wsBTeRhs@?gN=DEKD;8 zYcB@!&N7VO+L-|&?bNjAnRO@BfvC>~K>q;iv|f0(4H%jyks0)g2nyIQ3KK>v@3Q9e zyQXN`pDz~3yVzsGa+5xRY7_p0e&eRF;9%KIMPra$crYa43ll7PbyNxTH+~em-1>KD z@q-jwo@$_ZlIsxu>r9QoUDFyQ7Hk;(#7e69R1j7U9V#24ZJwpfq+@u69MkXWyL&@( z!rpXn3lKQqC3K4GQgQB(lvLo6(Z_wbFFk<}!>`Wv+M2mThRD)whz#UE)?sme#tV28 z#^=Zo!0@Y~2hmG}@oFF21HYO6hkej^+s!xWdwD;N@!C_6zY2mogc}|;M&z3WGY(>! zyVu2vbdPA3ZkM?1PU|`kz3%FBG#t)|EFXa1S_3%N*r)p;dapp{Nr0wLe_uijX}o9N zt~^>=_K1=0PeO~`HjC+ta4s61d6%`_m)>uApQnUJkg3oBZY2_KP-d~~J8a6b*l_XJ z*r1)>At_#l;|O96hhEjTo2Us9C#$(HO)T;JPTuezUH{mji9cC_7-hNkf|YNt^`fPy zEYUas$B=GnI?>c6_>(VgzmD=HnL!Nf&mosYj!OOAM36_`Iuf32A7F2CRUhOVVOW%= zBB@Eebd@E8XmBIjAH;56&(QAhGD;qxJ_K1DnJzO9&8UExpXqm{Gqha!^sitMldiwf zR2!Py;>IEHr=fb7dLsc4nSIKitFwlc1Mle@p3V-AcL^)@+w5pwTbx`kHcHxE_1SmG zpQd+e8ki`5tkkc0UnvGnM;i&l`M3Hd4Y#hGOO#WlumLp(dRzIf)t)P~V(rGW%uqG< z(x3cDZk^FjqNH$d5Ib?#|F+crusCi9bz0i1zk>Lb?iKlgx!$=C1=%N@LA@Xrpdx>S@W$1_SVoB&=X?Zb#C5?Zcy6!Ubr3zqb@_2Qd$1)9n+wE zs?hF|WB$B|AMif8{QO| zVS1rcPi@nZ)AqBjGPub1=88BmOI#fv% zIdDiLp^^$wN`mmp_$$9nlPWZW5=^(zwTe6DcmIYk?PLY$%&m}J!O1u?_;ju)}QkCp3KWU0T=rGjASEXtI5D?2z2qV9;H(^^FYg`IhwUgGy46m!q|4ZFy$r}>Qd8AWna@8M#_azHvC8`@<}Ac zj(ONAjSb*#@6OD-@HkIBSOJMs)u{zPJBce)k0xINoM#&;RN&*hxu49hh=xctG{?vI z+q}TpdxvoG?EvmQ0IKwh5b#aD+^88mnEH|Sk^gucRyd8W)6OU5*oyUi<-jQ%T+Dv& zU&=Sb(A)|c0`NC54!q5E|+mlaPz=%XUPFn^0cZ0Ctusg>W?Z zPgKH*kJh+)+sDHD1GKg`)&`AN3a*>I&SoJoY%{xw11oB#phx1zIO~qK&@QsT`10Vvf`9qdu3i zFl-Q@)sA^=b^So@r0dQR(W-0i13sv+Ypg^y3GBpSgSLtJ4#H*TQoERT^XJH+$NV!& zRu{fRR%wHNWmn6OVTip33J0v+7c1T2*t)s6an-Upo%w69H82#0wz2JAw`tMnyfSOl zt4(zbp_K!I7?eeG$q^}7wQbFO^7;+)=Em6LH9-3l#@Jsk<6C}A^4*p_dwOiZ6peOq z^$ju-d_#aG4f0Y#W08i6BiJJlE>IQ#I|rwA1<` z_HgE5z+E7VyS}(yuwW!UV@@~vWrjH|lox>|NKjc4G=-18Eij3p)O;@4;D{>|r&Paz zhs8FIPlwY~DRkTxi7|+N@kKcZNmP$1o!XcPvTq4rA=;3f;`~-vnNrm())-04k`)W~ zym0Lz9(MGaWYNs4$HBMmj)sz`qE{cgc;{j^#Ow(|Zh;E@mYt3IcH!6=L$+JVc-?BH zCCCK^tA8WnQ@?Q;8zWeiee!j+F?mR(`!A&7PlqdQIQT(336TLSuiE&LfUg=-1f}+G z$Zh}JkjSls2wK))DDsg|g-(qzcz&;5l^RuwRr5UNX(@Z;YB)9hxKxh-2vR828sWZ# zBasZ+nLH`%i-9GTi#!rj**~fvoOq3_((M}5A&0CCDb{~k(}XFC2G3E^s&6D|+#P)9 z?pQ}acYsQPqQ7Cj;Z*lqroGv3E!!0WeQi^35=aSq!_`U(lgl$}PUaWL^hdYS-RoqS zLHS1TrZpQDFEH#eE#`WK(bTGmJ6s>elBV2-nIP}$kSlj(QEF3@MDAO3W(dZ!PlJ@q zx_`G7wzSf3IGq!_g)iZt2v1HXYXTY11)Z0D5P3}E=nmH;lT`NGm`7a?vv5=LDzgST zwsk%Bx^go&e2yo0{RgR+6L>XqUTyShmbCu?M*euL-82{2G03g$nACSdy*jtA*tmZ% z^c2nK?}Yvr05w3$zojdeiUshj0QxHsz&7NsQGv7z*KIs;NiN2w8_aOVhuwBHF&pRc zv|>)T*YjZ)StU>L6wUM&}M#CaSmsVDJCmiX&_f!hVEYjU|N49#Ew z*U-@NTp)AfQ?c*Pw-=CDsx-Poo$M%6D{>|D3-n-p%s|StTC+p?jWxm!nsqt|$UelU z)_@7?;3KV&g|>#y7_?}WR$q6*Xtg_C&&U1T)SO<$k9V2ND%7P*n631U5$vX#BWm$- zXglr)@r81uI~c=5(IOMp?=&j~>AG-QlC$ew%0{?`>6<%U*^;A@Ff^ySye256YY^RGMQuoG;0uFC**#T1e(Pn8xe<`AX&}oA|(+ z%^~iUumNa4luSG?0uw*vwMJLBm|qWqczcG<9p?rwlPJ!#FgGA?W(}a*huvnyDb1nj zn0mjdm8#958aNJk@lblyc^^mN;`;R)Kkp>E^2*V_ZpekC)_{Feat0xxvE zTp)|?R9uHcTTxORMOI@hm6kc$--W|Yna)Rt;*ys~u3%RoG zdKtsZ?RmLahU%$`a9V{PPKzXPzF6;$@DgnCBHWO$GRv91qEB}mXgP1@p57>AHX&4m zD|JCXtpvcp%&u_&ha+L1#Cu}l^_Sc4*VAqZIkfeD17-xO*%=xRIdrpESM$}5;m=ol z96EC*Ok8073$V^`QE(}QtxiP$BAPFESE&F`UR1=(Itl?kNYE0`oY+Cw6L`wJlvz1o z^ZbaXa_1fFy4fvDhsn^MoQrhivv{?IXWs#oumwlI#~#2ixcvmh-1n61=5*Mvqlu&U z8kKUTH835*Bd$LI?H5jv5(f@X$gl=95<02DHLu4QR=U7?#M%C1DSoE-5jg zIKpDIXh-DznWq-{%wajPhmC?F$%RULWCsy@3^)hKk)RBMdvpS@lv=r5rftAQSIe4O z0O~q#iDL3L^w!hq3RuB*o~RRe2fpo(XQ(0mPP_!d3<>R<<91nE8Qe-XICUH>_SiVy zM^FlW7d{-eBLRBhG=k#M8Qkaxs7|nk0PnDx2aW+j0#mDfXTFBS<9tBNF#}SFc*1*R zap(}rWdMxCh&JjKEhlF7JJM(-r3Cg8eS_;itmmH5D&w&#bM?TLGuUJgdO9LU*lTI> z(bXoEL-VL~?CI)o<-jxMb?3eX-_WSH`#Os(9I{vRAE^i64~xh^>J_f#Z~#|!t2u&* zffdZ5vXCA+07-`EB!bVjz?>EFo`G%#S(`Og7T{6A931O~!j04EuwB6gkE^^THkX2u z&mNuSq#qsOK>*3{SaRpJYAJgT+k)>-3;Mp;HoVyawv9wOum;rv&L0=ToYt$k>%!{f zgKj1E#}$3DUG{UK1($KH+K{XLk;5Yi>v6Cu#Bws|6+}XWawKpA78=0-ZA;AN2<tQDce*~A%_GsEuqQX1HkIl`a$#O`bS+V15K1I1U(_`(C`Ei5V1 zyN;Ay+g}TP!*;=3A10-(3j4)0Bm`xRYEpHeAB*JCCeac;X#qgBfEx%*y(bU7%GjN* zuc8ds3gihSLawOYZovg9Kmz_q-PR8ZaMyCyk55yj=PgbG95oC+L2fz$c*I?3v>L4; zTs?3_SqUm(vF}V`QVbF$AkxLu)my5#)>mSF;8+8mm#o!=JIAd;Wx*F}2tdc3a!$N% zgU0F@DUIzQZ?A@WaVuD2*kYBZXSnwArGL6;Lc zQrC?D`Y4!?!Lt3_DhF#}JU#G)x=E6%)ly#AhkbDdt81AJF2~IZy1#&(Arl7W$q@vD zm9W~m&3Mu<6hG@;3at_FRlmX;TSw5kdbc7+aw%Ic@VTbHgcPVP_%XOP_)H1|SroXZ zIByF%06}D%`Qywe1_s~rmuIP7;G{UfGMFfS}lOiB80`OI%-az z!Oy|az{=n;dR8m%CD&}xZ> zw#00Jr;Mslc@?tbPSSf;7o4WmV=+hk38gxkA(12zd=g1|b#P6;drNiVPsI`jBFBL`e$F z{t{tIuT?A8dR`3M1fj&U_j7j)T}Jq6jJuUQf7)&{a%BL<-P|k1&?kV-C6J_N8{-jx z9?ZFIfO??jc;+`|+fk=lJyo5>@vsgpg!gK>Irdk4uB53fz@cOTPX}8sNL;KLQ=uqs zMzw}N(* z+Q$?*z~HUH_QuGWEYh^^0n8I{3mXZ@2C%-I6Zw|o+2cy&NUcs`ae{(fksuH*O9Z2S zFquYMu~2~mW)UI)$Y`a4be@|P-dxY*T3wT7O(C-?NXC-S;m<{w4d%gMSQ|Y+`3cbI zVjjBY5D_0G$q4?y`R#Wg2Uv5r24+7jyp~`!CQ6={7dbK^Qy4#BY)B2H3$Y_y+kBej z+-|8aSedEc!|K!vD{IqsLciX+81WJL8k{OX(;CUAIP~V{Y!UDaDHDP()f$4G({vzd zbxEtL(!uZX(xg4-vAbeUlBs2{UbHyT4SU;C`u)KM6fz@+RR+bfR7IwM92GX9TbN-gVzA^l=7e~ z*cF%(0NXVOcm~CtNV}92ZWGNHn|*YYw6^X{7mKMOaQphmbUfD@jPVIV$BEsRPX|tE z2S->HAdi9q+pMYCy9o1 z;hlphXEW=G3&aX(U#$tyB9TYAFovI#JR9LTqCK;Zy>VICt}gkug?Nir6dJXHrhB1p z4qNrM4k?Ic0U|@hWB`w@*)3kZTt5i-VtwfDlm^hHMQL!DAm1?%&&*HqI#-3k@S@c^ zayml0(e#!XZXd17hE-W`wN@W*i>JQh1a{4l4r;TRUr&Q>lo7?t!ZRok^Bgc_io^l5 zl5)>6V%QUccP8+ZBLf5a@KOg@Zh;9aCCwRk_4uux8&edKgH>Ol0wuU_8C3dQAQ**aMzT5!vTdX3t5n20EyVvj56NfXt#wX({wueoAK5qm&#H5kcY9WLH_HDJsl+$;Nro8p~wfe}7_Hd{L zNDneRkyYI*+H_b7IkgRFNU*V0skDtSjzgm&Ok0Y+1x~Q7LEaAr$IY;Lak!SZIv!`` zcznv&2W0G#oeS+=NrpkRg++BV>gry+=j37qCpQV5UbZKk%Uxv5TE$baDBAI2qN~^S z3L#&%Sl}wzs?E#W(z4+$j@Q$|)Z{|b@B-hciE^dgQl+Dv9~=s_PAXs z%G`XfS7%~%XnAz`DIHpOn8B(vgQWJJ#AK(@K1dl^s{pXtwyvF**IaJyDibabKXI5kkYL+Jz$(s^idV3=$ex+R z!NeebrgyVq|cg=`j?B~!fNzQOiuGMQ5Hd=1a>s8gBOg+ixA9v-7?X}jmja;s4*XUqwd2Sz1LddJz7Xn`_Hb;gr z9@~M}Ka2})pERTXF07}G#Haw`O^s-4(lPF9?n8(mhF(z^3?Kmbl%_Y^qwL(`l&f z#iigZ4$zBA4M?u7PSr(LntMy$Zt%OR8O&yZQ5r6tlOSYvF|2SuSMe)4cwOV;bJakC zer^X%!&O|a)T&)qs@ZG$T%#_T;qE#v4qQ_y`*MXd#M7A{!%)vWV*oQTU#(_FKFk-n zMX}c}B4xYc25W9Mb;fZi=OU38yUoM-WG%J}UG86tbwF`Mwm?yow*~xC#N))*w~|^# z-is2E-A1<8lC=EU+V8}QvuL>S7IEdwt~)#T$a9CeSqAnaV1!DnnD;wfO9=){V_`Hk(=4b>0i=dqvpuRus8SVYT54_5P?WcNf-dr*tf* zcf5EPDh_09NjHb9c9aqL^TO5^*Qv3(UKgc!S?C~1OzC0D4%_Cio;$lou>y=@nSl8K z>2r@YoBGtSo_9V36@jW^6mycqZ~ZpcYjszGk`w1qi>nN%L`At#-_dJ=H_J>0CY%n?Aypx((qO3R zMrAt@TZ5ABG(4DDltkxK->f=Dc|0t|9G9=m)>A{b4ar^%i^D?J0>1I>VO8Gg%kgFJ zZ_CAbXIRx%C3C)t?R-`A7m+cWs`ZRiZkb9D`&Cz2(2Nh%77iivD;@}9*C8-l0U~*wh3g0 zD1I^bdQyMCFAqU7$WxX|z;G5~(Pe+IHFipU%xbsD)?0d0D*3H&wVvu)X&g=lp>~vV zNR)}FUFgQRm0LD}2j~5zWCg{lnC)#heXob`rsvESi@C4Y#7Uu*n=F;3KAqbAz8xPk z=Y_tr7Tg(f-p+QqO1r9e*Mi7x{EoDm#3wNi^kv(F!Y*)n9_K~2+n0yH^CaX(TlP+? znibAwIAFb77UOzN=cHpj%XPdJmnXDF^5g@tX{+^BkB-;F+^ALcz;C%HLo3E8dc-@i z)Iho>dyXBoINFG+tUCiCqv+LPIo$B-z?n=#XH@3wxSV(Q8#5d1k*q#(u(?4=G0#W$ zC~I@MIcP~nX+N0nfqI>myqm`d7-HRa%w8qWnck_|YY1?{-o!IejH+cPT}N|b069wE zy9CLymvxME?Pjy*a?ItR>}`!3vM=o0{_1!}xu&WhD zxlORicTLBFzMSG|bdWUM4Qo>4HmhDhAilcl+NhXxYf8*3qOm|cazLyzryv3;<8lF| zzQg(;mfB;(8V%YSZ^S_!dC<*vH8o4CTHd@AHF35r4>ajmt7PippcS8vE5CM7r<=_w z*EP+yFwhsspq7Nej4RYT?W(dj!kx22a+C`qH9SJ-PmzA@PPyYykMqp|bsOmYGCz02 z^@Y3ckqYaz#^Fh+_s8Q-(Jz;Qb57eybLbWt?RKMZ9F_F)h ze92WiC>u(fn!7BGJtQAibEnPM9Ao0jx`iCYbu@8ByEQC1{o3BHcXDliyo356>EEgH zJ?K?SG7U!_&#%Z&3R~;k9&Dtdn$KpuJU0rXxi=8y(iGLhS*}HPgL*{z6)_&>c!Z?2 z60f&oWzty)c_bt1nek+~-S1aHBlPD&PPqo%Q>VSmAkz)h+O45P3iN&5MS<&0_wZVE zq?J@tY}qg%%Q!Tvd;a2Xz?x;Jl!46Yi$&ki^zLatTNx|PDS3x1q8L;Nm0eBgPv#KL zwv*BH$@;KgI7L~VA*0u<6{VBg9dJc0cWg?Urk2)9wT<#6ijSz3R*U?+m*td7EvLiY z1#UO46bFsDrT<1;~=vB!Zfe<`E6%c7+7r|NsiXKQv>oFQ@8*-KR_O)tY)|RS}I4zNi<;XQHP=yRIv>?e)mnaW$}~s)dI?2-{<@o4TDX(+$znM*%h!oDDlV$q ztmqU=-cCextf>mOFr;iJqc)A%N#K{IFceGmX1yfFMWNv%^)rK>FZl+q)oWT_JWLE@ zvcK-UBezh>Wu%rek~VN>k=<$r$UJv5A##rJv>w$;k(J7E6VBI{NY=XW3zh6)q8FE) znlJXk13Cp_7w%&w^&BhTC|*0ZzoeBgTF@+xux??`Gv*r2u`ak=)eer;MX zSmmKbon2wH-fcr5*21KII!vW1@)$#+UEvRro!=SPB0@ccvV)4WH2V#)&1Lv)dE!Y; zBUqqxFRJZ++1BOU$=8)lrfu3ruOgpkdTyMTjrjp(sT0b3$J1e9afWND1K5PVJEaI$ z9OPspI-!J;B`S$P&^&N+G1xvtIZomAAyrM$SG3`M0STbI(%LA8H2)=oq5l3!ev2vIfwg=G)Uh5t56DHJcpLy7OoX zcU36(tMF`=%FZ$)AyC`eS${W-xMJH3B0?>}s=Jldd}iv{dOfd>r$<4$I;9d2^nQ}J zy^C;i1-VnJZsAkvg{$o!tqlhwlBK$1tB-10O^&mdLk5t(Q4)^_zR)tm{jFGYkoI&2o6dFSv^;Fo3o|GwjCs|dq%lx2iw!EdeJf1dw z#nG*Te^Jze7+r-Ka#gvkAjoP1$pG8zmos|t)X=?Xi_E;6^qru)DF>sOnJT(<%%Vwz z?7pfAwp{RAgzRpk@fja*-=VdhcgTI zI+NLjowX^NE1_8L_B&<4%w?2PW1x>antYj5r?sfP5R2t|ic#Il10o@Th}30L2}XUTGv4SVNhPh6;}^qN zRh>2R9I#O`w+@Vvv&mMP4NVbvQ7Nj*q2H7S1ZVy7BvWw2;g#E6)kZN^3U+%&IfU}m zI5nO4$Z?l=(2>H;RYWK^gbiBtXJTcW@wt4tTHI&5LB8h2)ZilvtLFJMoFA{N+Hy^& zunohFROyZlebg>-x>}oOWE3rk#TQh_=QF4uN`7&m=WC{F&JH~C*?X^e-t>@4RVa&H zR0I@|7n^IggdQwvKf-pW6zgwLnQ6S`GxiM^rK_Qfb?Pg+Vp}o_FHVf`g z^A>tk_5gCjUgbI{_yRxJPerv-%`azpxiLF%QlZkQYl06+UF;$>;V4DABh3f;G1Q6 z+vKtc_kc)>XT6l0azH!V{-_)q)$kj{AMx7*;ZaZOM&R%c)g6$|rw+-FuOmX;{dQO|ELYnGc;tPptZd zv4{SSZlzS|pd}A&ifuJxEXqL?)Fjn*Yn#q=+LskG2t2!gsf>4Gv5uS`$nQ7NpgG;- z=E#FkZNjQw^QBC+KOQ#oqGqkd0`m4{)@kLmM0dS(s#;@{?-*_n`c_9C<;5Oqh^TsL zHC2+-%C4ynQ5hcfhQ_#>8D1}aKVB`-kte!`Oz&j(_v*mvXk~q^)au2}epbk20?nF6 zD6b9sBdVRYtGT10pNx6zRqHb)Gt!nkza6RW^}4&rxm~R~=W^I7u0{Wk%q?37PbBMt z=GpyZaCI*|cZ&3dADuxJ6kL@vv7xlGN9f#m(9Es#(L_*5g8|8>abe&tGKy9yD1~~p zx9Ova1bqSBVXvIA4?^CWEsTfvp8d@!z#hsv3qEzV@s+X~Qe^su2DAOQM4s;w@X0f^FhXS^KG z_m}JWBIF>Aon|@5#bb1dASRDjtHlfnU*6bdt@v<0EX**s)yxG43zwC0m1|H2V)I?S zje2I0pVfr(Xo4s!3Q!e3Ow8dJa8VvLK;l7=_<1qslvIm2mX)J7*6qM5HGP3Y3A3Qj&>$j9*VvFFVUn#4a2mrN+8HuowmM#sv(BMy zxexSJRxV+6U}@GIRVI?Mxi?hL7S|hZmPQuNtnF^NtRh@a{IM>2$UB6d(L}pYmWzA( zrUziQTg}{oCM*n1;OmI~<~>oLuD1)XR~+w3dN4za+Ym20`{Jb%Y!QteR#V_nH@;*k zWK*TnVhPKVSzFo0%pHcUKG%fHiToZH#Rj!}P{DT$bx;nYS#u@84o3Pnj^n%slMBJ=r z7cFOoOt}}7!d=5ejW$Liq-P@(L(^_iT#t;Mxz31LboH*LRF8_O^+JVU3z>|V(<)j) z+y$dDA2!PR9$gjvN(MDnm(%(NB`MKFUN3TvRa}TFwG^ZG9d+rda&$PM?2{oyNdqwC zvO%h-jIyL$to6+x-kq;#dNBL(pgh^42^f)KuY|(a6o-2n&Gy&KWjnLr(2j1~LnnZ| zj7%9|Zp{~w$O~~?t$b#Je%|nsMTjX2;1Gfa(+SauO5I6lNkgI?EddZ_AaQS0RV4T% z_HCOB%-4eO|kS5nnjQoMO;k~0>+4y<9Cs7^w7VK#>p_+98bHs z*~n$`VJqCARRH`SRIy*^RXxmIiShNB^wOEeD7JadfJfO7scu8qWQ#FtP+Kz&vp zL0Assa(*sq^a*@|F=~~>sLJL1qf|iOH&Wq%5fZW?69=UPgSBt&H#1$b#N0lp*bx=E z&_k|?Teoq&nl*oq8lpgH(M8FiT&O;FI#NH})WRzY5`b|fVXD^3k)Q${kh$R3Zc90B zxB}YD0F@LpY@(t&K(e=n_NhaRRtSAG=(WmHEHCF!<#QIdlB~DU5jv~d#ks(CL_H9F z;BSvFwW18F4b*sxdNQ5BVMV1z^ifgU&cu{6z1g`Otlqe~n9k0O8wc+5bjr}#Jl-p=T*RuPtdpuWTBp>@Mbv104vk;%9LH!hHQK7zZ zs>o9(Ao~8#W zyDK_dSwkC{ytlM@bvs&1B?3_}shwJZo0ib>azNIWrUKBVQUd)L0ohV^5bXhQ;z*x2 zWPJ|I4HcnY1!?c(w9>9H4EF+F5C1(M!}bn>HO57*sPEdfl~_Uni@VNR+hQb@F`hva zCe&=e5_W)!XY~HwdL7Y3N`3l$j1N?(?Ht$Azyu5qX~bG|2AiykCi`j0j+Tw!B$w*# z-eB18)JxLVSm|w~>(HiBLn9$zH0#r6^wYG2CL=j>s>&2BA&-~MDzdQi5FHjr-r|B* zFA9MVVKZoy9O$x?6{+psso8oN!sOKSjdi9PD>48y-GnCR5uE|BIcotyHn^b9s~r?8RVMMims^dgF_G{UtBDvb!OZ6_G*8XD1{lD4wm_NE5}Oobe9 z_;u}8`fa7!%FPdocTxbjiKk#H+PaZzVcoEsxm{bN3>mE)rKZQ{?X*5XG7OL`>5+9kU<2bF!5oQ3GA9EO#&!ow%CAHTehTR#w z&H0sWFA{P{+w9P~KDA5rWq*DYbLbR9QWsu*){7-Xld!?)Nt#zf|k$S8vR+l;;y+Y_-k}?@hnAo3ORi| ziQH;;-k$6!j7Jv-Onvqmj}I%wiV@ng{ydN`GU}r#$qsTGeY0NZI){R_uu|J0Z1S1K}6o{W@=D4UElo3V4 zhS4VsDrPV9aem&AOU^#uGT=sNgpN{EyQQn`>N`|erV9)PB=ZN!G+QzxhD~BBsHX(m z{eYG5OK^I8n2jX07?`NrQ~Zp}5U~Wk%rqz&lO@|IeaNs0we?gAsO0w6^Q?gid#P>s zXck=0%zU$()2Cb5JvR7vQyN!WDHo15^NEHcpW(E*OczB6io_}Fa=)dJUc7Z5JB)*g;})w67=2K6>kUpyc< z^=Jb%`XwATnntJ*g=R1@28K>ppfZA)=qqfpUikHT?KifKgGQY=XwN~55ZWoXXMka9 zDW{1!Gy}0-RuUofZA=QY9F!mJn60u5q-$RD$^k8;=r^h34brY#>1V1&xS-x(>LCNL zMYp)o)#U5aM;fpagkrUiDu*#b{&8>dRo%lYS^Lryj@Y5moX{zIkRBxCFl&UY7}8=G zU&0U>QqsuYpr4wJwiL zw3(VR-#(X-kfxq>0{-VMY!~%}?PsX2!1i*K&oe!YWF;-qDjXGNEtVHRM(N z-=0zCt|H{iq0T_Fuc%&7Sqg2R%E>Q;an*?qs1&vkINRv^L-F8wawDWQ|ry5{P0G$_8ormj&64eU`p ze+k?1)PP-wY-#+y?nH=+lCu%7D_<4O`08j;wlVB?)%E!}&5#G3D{W^*ok~#N9^8-( z;v0plrHhE80YS-gVV;;^pR~{gvt#W;5riW=7vdJD&l>BzG4nR)bfi+=rF>H0GIHqk z#0;IVvCE;_-)0MCG;~WFQ|ugOdXb1gY(cGJo&0v}*+LDoe4Q%FH0B)X>6Q(qQC^Gs zNC;K{BpgwlT*-B331fwfg(dq?2neDldeNFP^xFhu4Vd*Fq7*d2Sb7p^6znyb=0|1}(HY(q#5zzJQIO&Og@shx8e` z7myfJuh!b8{&XZ)(Qzy(GzN@;Kg-~Ow8}u*G#-LJ-!QOx+AdSc)XWgQRhS1gD%a^q z>}+#wd!BUjCbLa!3XNu**_bb8qpo|DIgL)ejFBGU6x-Ff9!XUMI@pn$HBf?ae0$Vf z47hQW$rdXJDru%3fA7!$W{LVbo4qj_b}<6R#7+!8jSh<-y(BOf3sV%ZK-A8#X1I%{Z&YeD@0HHE+# zK9P+ECnk}YAhL31qljfyznP{wET%>_> z(rOgeu2l@%tkw{h5E@*PxeL11s+jb^StAw7<}NToLsK#hr~xvKKwJU~TI88j&Y}BM^e3qOOZJc(BCQdeYz1V^%%=93jAoB0f7m>#a z9>eOFGPcQwyw--3p!s(ip~pxOJOlb>Yx0WP#--XAGr?Q3ArXL$Gra`Jpf4xl*nna| zwjegtD@rrc)b&c=h5&d357)|{(26$3v`eL((2nXHA*T?d9>88BFLzlMhr#N?HgFsF zzI~MfO?0uLcp7=9wlg-a4zG**sg1v)Tq9jrT6ukn@JMTpET0A?7{WojGwYz-LXz>d z1AtWEM`&aABeaAXEHq5?sHq|kgVw`KWr|LK`7Vow8uWalQ4qldnOQ$)$u8y!XcUZE z>oLp<7=|R?3~Vs%+$dP@jbLSE5OiXQfgIFrgg==Aq=CMqZ#kKa1LB20w??gMF`K~v z*Lt~u)KWQ5-#_&Q{r^|LqGC*qj-u1bz8H z3wFAHZtlByLrLnQlXH(0aSv^)q}Mng){~BqdFBChRIlQAc9JkqYE|tcB6nm_2q#m| z?`;T>pjvVm$k>t~8c!H^%MZ}k{<8<@8P z#5{HOEnozM@68V7gz&8q%>L5U>xD*KPe+n#8g{6uXxfFu;_DKqq=xZG;ydCCHV;72 zH#w79XQ!Wf6Ph%`c)&==xSEZrV7wUCl`K8`Vi1^BkEU!94a3k;%u18_wFdf!5YGUr zGFVC|mwn9u8?XQwtX+o<=ide)nF3+32jlDXZ4qc+#=cjeJwc?2UB);hjW^(6>3c3P zd`Z)^Y@ij+nPD#arh+AgU!C#+X7J(NTB%wg?0h7~RCCAcAP7Y&Y280Zy2W*J99; zz72t9?C@0*G-ix2azo>nAOL*7e>DnyDF^$$k7U%H*4^OJ_d`?=^|CosHd4zLeaeP9 zUKX1fV3>a5rRAl5comke9xSfaZ9h;_SOUXg-bkJN7Ll$v4QbFT3@FK z|2hu*^;rMwNc$y0Pny5}^uK)<-_ZU)K{A7?SYMxY|I73L-@h**>`(Q_kE#0SpMT=# zZ>~#I|35+Y?HTVhJ|6v*_+M<3NdNKk=YOTv&mVt&*#e{gTf+ZNroO);{g_|T`RmWW z67kocuk`=dfBpRN3u51Hex)6Umz>|r`iIl{zuv(2Oq{-)z<>Rm{xj?FpgW;|{`trB z2iDJ@^zV=9{~Tl6c54-K*&;J1RFYCt->>~N=|KJXO{iwg# z24-v*KmO^J-$)^|0)NmUJQjBFJM`1Tep8OVCqJ=X$p)}~e%0UKw>gPDNY)Qnf(QG5 zgC+mCiC>U$v%gbD{EO)S359#8)135{G0uKd+Y6{ z7ia!k=Hs2X@8Q6=H2uB6C%3%Q|I2&6VbTlz{{%#y_y6sc|EQ$zQgPqGn>f9IreE-k zOya|Q|33Xsu6?USUZMp8$R*5=fpE#K( zWj`M{?ytX|z$Q)jH$UH>{G{h)2aKEqYkjk553id}u7AbHFZbSfm7L=%JvSuu*B5d7 zhb=t+{PSn(3=)w^knVTHKjZ-cNLs<(iBH|0BL4o;luZ4^2C#ljZ3=Au>LTpmNy}XT zeog&Dq<{YWgI<1@m{(DM(X%Jl(?@^X*>_}-uHSCDZ{W$&FE{*5P*qBN|AG1!rA!`o zyW{=YX@U7l`}Z8BBl!|>eiexO&2)q}>d7qpt>nDyEA{pl(!M+L-=+O#AD$BY%}ZYF z$$#A~0CArgzTe>eFPME32y#|0{QG_4Z=t~>&`BHLZz!V|-h`jXrx^SBuHW3p7m0yI zXHR;p-yokI*&`@>kpKSdFC-EDk1+nngZXKR{`+mbyn#6?Jnt>nkf_J^vQ91x>&1z^ z1o}@Y|Ar{`KBQvUx-U!7^w_+yoonaPwXe{ zrO@vg7^^7BlPpj(So$k=%m_nq5O!kW_|!$OP_J68f-)j~&q`K$3sFWi_8W zPU8eXXM()b2e?tcBR|1wU+~3KFP@ubBA4uirBPq=Vy|omoe!{k7ghFu_P$>T3T}A_ z0plNCpDZMw$hfAZ9XtmwzJqQFw75CeDfsYyYJdHkGKw#3dmcYNe0ZVn6<2)~oTs4SYNlU!@iRqx&-nc!YtEqm%R|}0k(mAoI#LpnI)OX+ zAe^osS`*P`H{jDh*@2PlCKi^7G5z@GgXQ-h9x>owf80^yElzwS-foBYUE&kZ{bCmH zcrqdGDWNyf11-0Gk&?h)J|Q%V?Gms2njIw>Wh`ZnWaq`?B%RK@i6mLJM9lALlY4;j z8aLcb;+LT2rnPJn-y94v^(oBipCCA;+(~fCc>gB|zAIZI)Qnit?c~+40BLjbh?Sr9 zl|9>CPiheWE%jJU+HJrf#*lWLZaYyETq#c-uLQAM>{lA!Cn+Lrkut4G`i@Gb?%UkK0Fy3bKtp zEMWSE*CSvXW%`lg{#QiFxcHU)uZ0a}Q<9^<@8F(=xyxUorjOUbsU(jkow%o~K|Tr3 zD)WY_Q!OC;Ph_Nh`&tHh+| z&2~RYM{$!Lz{K&7l(D|Y)d{+Nbx^P3^P=uaCM!wK!Q;?l2{$t}eNC6%b6yWbPBh)% z1{1kNN!Vpyedm1xH(Si4@R>SH5KFSYiAd7Y|1+`1$$BO%iLpNt@AB7OrCyGjJQrKf zLh7qUyKBmyEa7{5{6qHc^xrp}l7}0?_p`nsj#qJic=7bX5@wkGJ3&$;*zfeeY?NgG zxq(|PIECVv!NkY+6#d=pkylHthXcBs2*!721a9t+g-vO3e*%IRaZUu}W=(FW`{~7g zs_9drYj5noRptLpcfN!`H*HBc{(u}e7j!$yr*zzS@r|g_@k7bJh72iR#zf~qKYQO( zSdzkP%BiqRQ(;3QMyxn+=OSa+4Ykw5(?tcsnruD^f_E&t38v zPa!i&S@%gkDG;+DPbIm_!u?>``~P6YjT9*lv&1ZD%CtOf8!!(&oDepJSIo0c-y38I zAf{3BgEc9&C3$Dg_Ab*8RKr{%3CS}4=peC&zKbSZ@-NY-7ebnvmXpbEz z0aRKfmoEr{uz2!u0uo>vUoh9*=sj7NSifZ500by{7?JPFG6|4l>(QHXH)^RUh`pZC znV35~Dk-9*LWM*eQ|=n%5}dtlfGpmFHFy7%@bbQc1j?MQ6NQeX{3M0InUtbMW)$t zrBo^POWG>klsc_SFYu2Jf&o}sI2jhS-47^bu#>mZ{^`Oe{cuK)DDLMCq$ZG%30)#k z_oGT}JY7k z5iVQLQ+w5?w+;OHuZLauQp$ZHpV;~EDo-K0tI@MacW33pir?sGB;E~ennWTw0iHMV zr;nQ1cc~3Znf;jl>(=o2$e?{o{Zke3)1CTubjk}Q>iY_!UOe8-9wjfJ zQ%d;%mHM;*Q>{CJBPf6~roB1w_mjFE)XkU>Y)oMmawE5OOUk@u4uAefiv2Iv{my+R zfqyWH?oWCVox6Q{$k;6laicTkaOe^0zsXrXyyer{Jq^lhB$@L0Kc;^$U-M!z>43jx z&~HqpH{$YtCyGz$D!MzBWVlZkk$B;l_nqer+9h0;Fjik8n$#Gc{ibt+a77X zr)T(%{u{%Y6x@>yH+V<%O$ln&%2{z^wMH!1!qU=KPTmW&VwP4popbT@1)kC>MJd&cCs>)Q@+ zSBe)YxyPr8tADE5)0QPpA0>h5^xsd!$D)F?>by5uBzL7dEN+G}o#nml>n)FR6W|p6 z&;j)i;KoOR;PuVvjK`Y>T_ zFJA2K%btmyw3T~3(S)0im2l$Ca;1>iUBlmZ`TY)FLw?4cd!n3fNOb_;4j_$#Qk9xC zg>PWxm3{*8X~rgA=o|XeVdhOs-nYQoq+X2w-CNy#+rx>mjiq1AEY7Q^dB?=Bmi$-d zFR=+<0NR&~{S)~f#dD-lP-^Qb{=ZAl>(Ts)`rb2wyz%K92k}k( z@W%dUxA>z_&ti%NFi}*b3=)*UqqBrK# znZvxB*5tSt3?N^cgzm{(@z48tznGdAg#SkU{a1F*H?dBj?yDTXz}hE?s$^d_l5BwGw!V=659}vDFeT9O!m4Ksao6`3IQTe$ z_t^3sFTR)hZbE*`Nj;6}ZF^}ZrH$vijZO3Z$G_08@C>#eZsj$F@s7n43A;6SzNzWm zyu91Sr=h<|V@lML4Se^Ow_@k3?YWIfJ!0*I`j@W5L|NX@c%mXx}QFWyFA{^#y3a)l`+r!+c(nuC~VSOf6*368M?Hr z-|{%=O)wOyja;T+<*O}u=JOwW_$B?|%fFsnxmoNVKmMP` ziQe!;7qyX#9dC*$0WjGyDFEBcH#$Z{R7)Dc?a)p%xV^mWQBq z4_CjH9T0zuN7BSUqk@}sso3Kq75ELDNu|KQ+K6B6DAB2h&%YVHyF}ku@{*js`@UP2 zg)+ZyY)|f1)&IC31)Fzzgc@JC&r%9s2qa63mGZVfrjtJq_NeOQ#!l$yo56iBngyv8 z7`_d@-4&GymHNlO6V88;^2diaeDp|LeG#7TX@5vF8~92q=l8OgvH~|G_YF-qZB7M! z-$?p*2mKO?zYy@X#7E`kSJ3s;nBSd@Vv3Z)Nl)&5@uz`z~)zMe*t-43~!2xZ{+*E6De^ziN3#Ij*pPFe05mQk+%Ej3vnY^|2V<* zs{J>_@w7ho3PRdfr)m0ijF;j_lFRrW>)ab#5{G*OZeyuXse{~j6t{k#A3KmT7;fp^DvUhKRDSXNor z226K%r*uezba$sHh#;YYq9`GP(%s$N-QC?K-Ke0Tv?3P%`{0b@%scbF^UnAF{p{;P z)aN(P{&(+1}=-~3q!0)srCOITMBB7=vvMVVKkzw=~wz4;D(X7`6N_KL(5~NeBQk*BA21bFl z^fKMW%Plf8M3Qf0aD0M+{wFc)+S&(Y>po{tgyK{pZadf0-P6PC3uw|3NVJe}EUx7*U(+}LUAGdMN0Ca56?5I!TO;UnY!d%DV^ zXFBeCBAk|;`b!|JHbHtFtVp#fuJ$TB{~%F$p5^x~5UUAV(((`M4wgZmsoiyZU;!Nj zEd1u+?=x89&gkl_03jhGBPAs#=g|iwJUlckEaWX{hP!8*fK!*f+u{OjSw1NVb)QE- z1}4t&!?U-(oNLjCDgUKoE=Jlw`^OUV3V*!^Tu_ufKd~XQGGm<{Dq^y_>f#DVhmq&@ z!ot4Oo+1l$c8mn`R z>{PYw%}#T#+rOTmLB5Ypw@aH|1fcIPh}fAvJHoqw&)xo)7YJ=2wm!&r7a+3FFFy;% z*_o5j@`Tuoz$8Wl8a^&y?ydg67BYret?Oh1Z+RrJ;|njW4eUL4Z%<#1Iuwu=ZKO-l zRl1+V$PM?A)K=Kq8GkD#B6sUc`-I$o2w#V_GTI0N8bVb#@vEJVp>o6Y1$oAvlkyn(+sIy!qrbZ0(- zpNr1gR54I=khIVgH8D|jo_ayTL&HKs2U)tk^L$@B=TCzkLsvZ_4R&9{qJ*5=e@T6> zTnxH8q68E<N2QeG8WI43H3BUK<&wp`_;OEUM^f_R8z6Z7r>AZ=n@nq2gYey%;YHdyeM{2tRzs zOx#+(+XsbUq?l_%ARit-uIC{YK>RVNh9tnlNsUiSO3cUr7q^m@b~5s|ku`C*U`&&@ zS8&syfbiPPOj(tqzpw`83vN#@k6`S%nsP=R^}vQfv?-E~8zXDP^c+H8W@~nNa&>EI zWnEFzKs6l-@r<-{vSBvGTeS8l<(R%EI#6V6c+g8!pKmvE++`soX6h_zsjl>MH*&6P zEi7*!-V9&1md~7b^i;m>fj18Cg9M9P!7}u##}k7z}wa3^92&<4>DhW z7cpLbp02gd)!xp<#if;gZb>Bt<;XOjux~&O^7S zXYNu^x{dGY@%{+`7Ah_}LP2_ZY+`&mOdMb*uP*LsCGDhaB)_`lrP)%saWgB!5SbxGcyyH;|{V3|N6a# zh)CS~afG6A8uk+KNhs{60j#`qe21c7FOVn9S_I4rEcl*vITh_}AiYZm{Rv({N=8mj zPD)-{WNLEy^HHbzE2+k3X6GbgV&EZRgKf=BkMEptqk1Q!q9v)aHMu;(_A#>dcur5O z>?c5kvl;fO9-<&0912xI!9PAgLB>c=(N|mB*zs`WATqp2$j8R<`FsWm50Vi7`2*y+ z`*qhzSthJfcW|NBJ#buJ-@P`sG^jWnx26PL-b-S_?;Y|l>%JF0e$k9X1M@B-$#nM$+GhX1wUZuXb!${tPDs8_jYigD0wJ;H~RrwXMMH}EfR?5h~15)z@{5`=2z zX6C0oaqC!&C;vT!6!g>Fn83bu0d6)v{w1aC)D+16)SPS$O=WFuZFO}3U}s5DUjr^_ zN?t);R#tjC_{hTI>MstyAA4(4$M@&)WGVxIcUMziM=L8c2NUbe(!Qn=3>>H&5oR5) ziE@a%$mA$>nZ4QV1ujN`p$c^M(-}N2JUTEkGBgw(92=V&8k!jynHU6wmv^hRvC)3- zbTVwP^@o?+ySA~;!^`jS@B8cS$1T2pfBx=cQ9*xy52?@pDkfgue73udJ4KYNkd(0`S*+<8?fQt3{e0|I`9$@9UTnh z_k4bId$qFh3D&0KVdyGu#mq>*XJw!T^qRW*BaIG_(eLs32L}bGZAw*cX>s14S6Em= zN2H#{OJ7AWv>k2D3|#(~UC%)7O&!AS|8Z){+YSC}6d5E~E@Bq1p*E+i!;CM7Q( z92F8982H2BdU}1@xIZ{JSQz-+y1aaB9KTE0&kyLC-|r9T$%#D)-N?|cYj8%0ovpUJ z>iHMx9~~PaBPc2?{p=H;h=_u;cW7i>K-{0*wVj4{1#WGqgnx^_H?76>HjLIhoelaY zN=L$+QWMN%36?gi3uK_+2WzXWoOqBL{L0|O$fEcM*&v_T_ru%s{S6ihZY%-@93L2o z$sL-D%N>#mi;D~nkA#JXqfJv&R5Ls`>`zEQXk=C}A_nNMGMJaA#W1%pFZ))G+*&#Y zpr|wtb|!vyZf0IyR%Uj#&L&@a9%#rhQPLyTrpIVm*{L53Z`vwa+9_F#pXXpvJ{EDu z7~g~2rJHqT4?5`~Z)WCdXK1OWC-ZVU^?q%Rii?bGCeLpOrDYn=97Maiv~(1i(9@Dp z5RI8cl5k+0PeejQT)2;zpfW!RXGMOAl&mvmyXn9VD%t}ZSIzgJNb0?4nx zIIEfr1-o;uVOmg1LhkZ+3-~*0>gfW~veUD5Gyz^c&5i%AQE-u|$?1V5>&l4Mwbr=W z8SZcIVW5E-MMZ-{Lco5x1IIfby<$QVxUH6W;!NB#voJeFQCsPBh@0u-`icw|w)N2w z7XziNT&%Rb;0KC*GHJ%+UGH=lT9uWPlEEIollCRuMo?jCuC>$O-$Ow{LIx6%l9D<> z$)+`B6;zbe%&V!eG+Jv2u^0TjCo<}x$>EV9pgt0^fl*-e5XhIe!MpF774Wo>;p3-N zo{t-Wexd@Sy{t^Scsv7;qTVqILQ-OCdNLY{+Pt!&s)B-oDoP46dLU+3Uf7{O8jYaS z$zog{ztEm+eGVUVZjhKFEZ0Izmf+;7uQ@xs-U6pcP-!QK4Djxs-JSoXyqVgXS|aho zlWSW+V}rBf6FFLPc`)`7I2nx5_?wrNTmL;1Inal=$2kXnJ1!=phq`zCT?fc3{mFgF z{dGa0_Ad`RzphdzqhKccEOvYXA;2SKAd4XQUwp*1)@P0}(0|}f5Cb%oK$^}^O@cf0 zBoos>uKJX@ZtA7r8<|3$oZPKl6J7;glEHwMBq{gYr{N;p|f^u^9 zL5jd2Fc5MHP528An5C($CZHoD8<4x=(e?`ZvM=qb8E9*|xC2FoiAoHAFn=qZt``BB zsrrhPlBvF0rVWk#1qm6r1bFyI7yI6;3!?feQsS41;cd~8v3E~6>gcO-wb(d+tt!eZ zC~2rBCZ%Ph{fX#Zp~j{Mr^ja|yaN()(1#co9xwxgVj})y>O6g2uWTF)J${Zn&yU(e z_T4((LP0`BgiA?EL`!n3oZqob3vGR`R_AkD}> zx2&L-l#1ul*>vsr{kvm<9HTs)oO*GOgZ%e&2vJvXd2@x=^A9#G{O2knLPP{brNxCr zW+8(qNPdMv5(R`p5kpDhhxC!_ZO#pCjjVk4$6c|GrRN>tXdfE&J7HkqBcELypSZ7% z3@oh)D*S6G4~f~{?&O$exG0;5gwi!JFDND)8SM`?g56qOdWHtqb~H15*n!o<`t$3} zWq#mxJAT3H-?RGrNcqFy+Nw;9GyQ!aXmFm0Ok$)af_p$UZdfMQsWH)gHHK!PtxalS>DPB%m4qc%}!-?nepoKHGYF z+ucDVeWL2@?5(@k1o(LPmv+6n*}1rXEv;?J>}}4^fT`e{60C2|F8_k%K(3sgJnz(} z7q^cG)Ue;)R8(ZVw|xI#8DcOP^s8!V8SHJkw>P~$PNp}%4i{P6-QB@ZZH%0-6}Q?T zQ)r;-w57r$1kEOghkX(>fNWNi1)uh)DP6Yenp)aTVH)mvTw84g&qp=&WmI5Zt4lgE z5`Ws{cueRAVcE;)34r)jwNwm@qd?kj$fIlnH3EEyc0x^O3h{TIOe^V!MrEPr#H17* zWi<%qy$4hlc5V<-w{IdQEHQ&xMpo{PWksbQhDSnTR#u`Km~v1HdY-wt+wSer*5}sJ z*$+H$%sEAUrDd0-;P5|~Aag@qJ?La{A?e7daM&dx94Jg&c-9FB59Ox63nuJOs1j4` zo?i;AK!{{MAl!+9dT^|7WL7>P>D_c+*;Lg^Lb$qAP89ToR34Ac3QU~Hco&ZsUQtgu zDy9$xe`^!yGB&pLS=_<0iA71Y5A4<1W@K4Vjz>k)nCm?y$W7M=d;TbHH^_u-P+RqC zwXwG1d)^14gDLll4Jg3W^g#ki4wQdSVsk@`l$xEUt^%%cvjW-h zhd>Yqk$UlOdbd4#9$`(4^^z?UfOFyq_`@A0{K9VWgy0estz{L5xRp4Rh*9k|zL>PLYOXt39ieSZO8b)Rf7m za1e6{MeyzWahx_kN@Zy~#zIb2(p_9w&`ig>auGQvCL8HY&lsz852!)PU1zmxe*+gA zDlH)kU7LSXQG9L2Lur`A+~9|Ti~`T>2shA=lc1-kSF9f24{d2eWFQbAz@VEsm(^>C zYX>`SE&dLG15=iF6#GS_{c82Ah$NTa9huw?fN!U6b=eJlm?pY;oto6pVi@9+2^k#i zof_O`Q71s(V(ta)%yBEXSh?+V2QO8o9ZUg4gUQmHwkC!h-C8YV<7UUwA*wb-q;y-M z$@vj7NN@Ul1d1#j=21 zN_zkUaD|GUrKP2!VW5$P>7==*>uO_IV`wyeModl%h*I!RjRAR5`w^M)PM}=K`=%C6 z)a=xxbUdS(fD38C9rEA<=LY~@YNc5YaaGUXWsG@}YK-g0^_yLsyQ-%pZaYY5=AxN} zOjP+h{?Qzhi9qbuxz}Y*(oj;4%}z=wL_cqsNJ*;q})BVNdHQzL=HKhb>QC`o4QUdKVNk?##|e$}R83+RMtjjNUee93O|= zJ$nn>m9uwa(2m^9NnvsQ5+x%QZl2tzm!52SWb$N8=NHr%nZN`tkul%7) z2M?E;o0f=vY@CNL-i#8@Ty9mYk#tiM(M*Id9S`@Um@u{RQ{u0@qo?W}mnf)u8k&me zXzb3Ny$%h%o*8JUh{=2B9imyHe=bG@mg>6T?vyRK?)b`A49RWr<8(kOWUi{qxPz(j zD7MFZMV%&4u6fWmC>r^AaP0t+Q&I6zF|kwC=Gno9^s}z%;ni_N?a}UL&NYh+_EX~% z5>VU6ByTNAryn;<1!Mgy>WAOvOS&lCMDUe$wS$&Sy@`w^cIVcXvOc?_DHUMQ_@~s- zzC*2tamv6rb35=|MOzFNnW6Qcr!!wg$H~NO68B^?=gk>&r_gdEC!rKbHW=0Og(m=1Een{#WHxZcMN217U*&veki#ay7Dq`8ZK5~<3EePVWJ*bP(Z7bx$cB&P9n2jJEsjZf}?^6(rUp? zSDj(yrWqI%+)l#YcpZH%|7`qpa>>ozx3@Gya*+)?2>Y~k)E4^$Wt5b4mF2b6av)m6 z3|*p6ePyLiFX=(x$%)AD_|S;{-ihYWIq6*_C$6p)nSe=J54%!|X522EaHvvE3K*CX z-sAir6z@Hqc6GB;&rBGF*3xfC!WgfhwVTw>H_S<$ZHS%fF53I3e)8BOoP?xgeN9zm zB~WN;MYDzN#ns)_W!>~l#LuPYhCm?Doz&u%f~l;Do@L{@Hl+AO~o37#e@G^wvybV zh%cfJ^Iw<;w+}EdlVmS>2auT?7Lbh+Cq`QAdWhyDEVbH)li~8fexZTq6-cOvm>cMS4ETZ`=vm(l{x z8JvJ*G_X!k9^OONUy7&L9{p2Q_SPXfj4>Qyndv7?&9m{56a?Y9grt|1W3Igo3mOW} zJ_SCi-vy}ik;(@#C~ITf)oStc&3LSp zVyVn4s-L3?M4eMqUt#Y&1-I%pgyKSrxx%Y< z`576NTN(uE1AaxCv~%UfYw6|WqGR|1CVkvLGI~0y5Lv$OB*mojx&v0KZzCgoOmvBf zc^~aF^{85@2HG#yagnVh&{xs>xD2T!$MaCC>(-(tzMl}r`d$=!ZQ#+~pj$axXh`Kr z{^%PN5cLUy7Z=a|@c@3As{K3J=pE}hwBp|O2hH|5K9}|#G%QqXq}b#*)!$R!MaA4+!Anm{ z-N{BYytgzcq^64zg6;WSS>MOeDsA*jB7a@(kB)={gTzGP&2875`ZPI56fJ=+kND8g z@UZB2*M~Rok{9`D&W)c~{|E&saUVWC3}?^2-9gr7c4|q@;sTY(j=Acb89SaID1m(D)z(xPSly21M?s znwMK{-&oO zOPjjLH?}UvDGJ_FUVi3|{+AF6C`GKVGI0yqW&l6IA<`lv6T@F7Ikh8o=f!rO#(g zK%+u;3y_fyy|XK$;bbZt2X+n=t$jqS&AnVA!;rCXkz)peZih4x=CK09 z!@A3OS4AQ{PuLOoNeqKLz&9Zsm5_vd`SI!1!J&DJzRaJXJl|ZJRtF{`{o?_z8)BzgxAjPK;8p!e3Gb z7BpCSmU6hlEAaaTeK@_tg{h6-C$!eKW_GvdrXtiMo-TuAhc?jiFKrxO-zP6DWj;|op*+stFpQw#L7n_IK$Z( z{-(ypzM#@OFf%>wDJrwKy8wcR$maVD{M?>O4*sbZgG1cYq!7_72dYKK5ar`7$(ov9 z6ApxT+J_{p)@naEmO{p_iNO{(Ol(ym#-wGe*FsPq?F-`>?*NHO$QTC&6#n`*W6vqt zUWJ(}jS>D5!&5WDFaqrY&>69@%MwmHC0VzQH2LDJv2Ev|l3fl7e%A)U2 zW@bhL%SKBkjJhx&ky^y97C^Fi7t9^NDeb%5zH-$Xa}G- z#K}uEqG9Rv8=Dy8jRrz^ws^QbdRrI%T+w?Y-VTrxdo6M|QcoL&vE(jxmbG&Sj{1#U zMeD1}uf~gKg=K=@4dAvCM9Pb9FJRCjQ(H+BKO#K9LA|`0jp$0=;2Os3?;RZ<=80xR z69W9qu`v%yM&Ebr-32+Up^}q85bUgNPidgB4?a%+_*_-f$vvU18=^a_5P?^m&|kY+ zJ%+U_HlzHzTp{9dE(Dnpb|w zH8(e_z0JF=L(Erp>6nK$G|`;>*&pUrQLz`5^GHbvfw|ltn%ak~EpfO^;OK4zZOz67?z_z84gKOB=Iw34YEzC^Zgga{pDSe!T-EK*$65eNOyE(qO zxiTUOQJFcJ)+bVqHqPSw4DpXmj|hbX{dV_ySl$_5WsqPX=dqT#Z&V?{9gcHB{YqsV zlZ+SV%~$}H54Q6XSRRE-TO+C4r0QFNq^_bGr^@9O66emLe=>lCwker+yhnh4tV=1) z`eU7@6m8`dA}lQJ@5-5I+Tze)j;y1sl5s{G%cpVH!MZqQlDpE_^Wfc3X>El81p@(k zXHi^AIraBo{*Pq)LBI^Ig4jKW3l`e%Q3(?5F5=`e5DkJ~!D7MgyGo_!BrPb5JY&{q zP#0Tb!~No(EUK6%Hg-nm$Z7F9038h-D0z70!0Po<&i2|QI=rhm@vI{A#BKQ-fG?BE zmEU=uFQVF|RR7Zcs2jl?C71j9SOWS(wGvw*%1d|}r{);a$5bs?!uBNAwnYC&$8x5X zQwP%6En|B}b3JLl*sDxFm6HC8_ZoY5i<_s5jEalc*BLx7HuctwrdA!i-Se2m+T&?s zbq(t*jq>GQT>wZ=u-Arhj`lVaDHVkP1=o^Pc7cL+-p%!PZAZOrWvBfKHgR)8VZyYX zxAWy7GW!d-jEFoyJusJQu>yg35k*d5aB>m97OZ>Xgx?r>ukg~j1RO%l)Xg@?UsBvn zNn1@U8q2(MB&yJ(@>N~_w~hy-TgK4u^1cakFNZP7D(ePcE;zoR?dEkQ`NXts zc#6k0NrXsox4Yr1LFGnfW*Ke_x47LY_8|a?EOX(wM?_@QonZs%K}2?QaXb5m%q8jr zz`Gq{pX*8QtGoJ`>iYyllg4L~lNldN?u#!u0X$s1>*a#N6GiL5v;&gV-aS}!bQG-f ztj_qd+x-D)iLRb1gpR}-LtZIhh_o%-zCYCPkdGRl3U8E5t+3M5NtaZg;+~fb>4EGo z*c(h*A;58stYxa# zFZ`gy6y%R>gOqUBPq|c1m64~PWP^+W%NAUeUp<6wCqG9vso8< z%sP-FCRy;mQL>HCVQ9^ye5@f#y;4$LVs73klG$DSy$i~kJU)-_I#(C3(8!YEu25$6 zrvx%}xQ6x>+iZNdHANCr(~%M0Eb2>35H&>rTE@Fe3mf;MDg(!GUr9Y04vO7xoBI#z zcL{gx$;b1Niaz)0M{@9+&LKGH6}Ux1OBfc4oy%)#8NJBLh=pBcP>SY1oufZR z)1|9e#q%%nHQ2g*ffC>lJQSNSK5Xp~3Hkl~0Xr{GuabxeyZ8a{jLaJ_RhPOy{M*P4 zjValuxfu&Dc5+869i}8$M6)jk9T5)2H$DV3VJT)9@lHTvn>wfDm)SsGr=vm8&_! z%+c~{c60W=^)#)jCgmCvQV7OBy~s?pN0J1S`&#%Ls$;%X)j;n8c@6W(N?OaV?-c z%_U7;7Ew&qfOY;T&7C`K_(&58DRtS{+ut}T>+1{+p5NFx;oLjFj2ycPdB;~})Al?P zq6kkUY|iJPh|zAUo`*%ioE?}Y!=v6Et63IRkV@r+#cMVO;qIiCj}{K@>8asz(->Jc z@;G`5o3NEBGd$k=Mx=*ZF(+eDyvczbwaD1u*gTZzsi*!V_e7EsumB%j5_JKKqwKat zXVLPBNijkF!b4G!6EZ{hJ-(378@s(dQNyF7BLjR!WOnFb150s<4O`~uM$oTcL5?mr zt$qsLF>_PXR~MN&+hTAJ`hU3Jdb(6pGLuXJkUPc1$P(8#HZPz%__Xjsv}6Ydps4w| z=txNDu%6eYjUUmvFs0tB+P|_BSi3c_jf1|_p>x%A@yAsQ68OXAV1IMWw|bwsXY;j~ z(3k)t#YKi>>Z@w2i)ZCVKpOro;$GiOd!RM$a zTVJZWvV|>PAHS8dlw>J7h#K*%R zfB=2NS*vPB7Z+GD{YYb6!R8DRl@*Kd)0HMrlyqbGZ2$q4`xk_V;^UXo)Qd6K%h>0U zljD$_jcu(pz-UO~+x6YGgZw=wHbFssb7@P_C9-uJj!oImw4b%*l26u#H;)U4gMk2n z=GVxbjZ8`}6@pPn9fsj0GB+6t4G9*xPY`^g_K!)Er<3P&n&noM)5L+S#cwt=TfSq2 zkL{|Cc+BCYCRH-cdW=TzL-n<6W}VQH(NKw;>K-mJ!9iekV0K3x6}omJ_JOo7ga#{6 zz=9-BMy7s>`Gy~Eu1kNj!2upO6dw%+1`Zz4fOIiM_v%*0T47pN;(cP*(itIQ(bSVk z8x<43T`ez8*-s^DLO$wOK0~eqZ?5YV8U(`b3O2Mi6rTcixHw`Ub_r@3Xm~olDq7>= zv&b^&0_7^r?fQ*88=pOgK17lKj(*Ier7~H7~H;$SrdW#kg~9# z;HAcRMVD#L0R6r`j^WPf&=C|7>(IuuoIPfo=KM@DpD zl)x9dW<`d(A~iKiS2>k2(t~G|{(t_A$?*4Uut5#gN(in}V#gPN5beGXg0zU0^*hWh;cl#~Y|H@(z#b;G zgbx?_cH}Z`i|6l}+r5et^#{~ejjNttT^ZHhNwuO>_(iJi@$>#ep0c^Xe1HFCrImek z6<}j)OUsXQULg&`h|z}&dsH=8^p6q4zW`(Pw~6QA#>j@QPWX}94jnu*f9Vz%EdA3( z3j!a>Z=DiAHZdW|V0U_1WP=KNG7G{~#Rc%GD@s(YKpzRQ@3szp)g*i~+F)5~mVg75 ze&A?nCuL2U%lbh|b#gxEa3Yovdb6$c$6qRFba?dpab=OBcl9`){in0YfZ}X70s$Xx z9|+bof{Ut|Sf^FMd(XOQva(@BZ_3lTUK9t%Wm9^}~?a5JjB=jADs z`LM^(h+#3P^+#zb1kRvoz9;3X)d%OzPZb@s{rx?EH~*cffdg~M_w?q-f0F9(V>>;A z$Vf5w})frP^QDq+z*@Gx}390*p{ zWpr+=Xk=;xNgqjNhEKJ6i;EcU*EaYs|-g3;Vg9SN$~4H?7G%oeq1Sg2lprjnWp zx{cYwlzt7GfjB<&EyJ1R^A-Cm}k~e&?Y0+3g!bv!#YlIhCn0@xy~)ot0Ws z&PqW#F(Z>|#t!t1r+*}9J>=*+dupA&IvXQXI!Z=DIyN%up=xv+d3?a1q4!#O4^N%s zYe;&#Y8k)Gah@@7a<6IS{;isrt-RbF$wP}@WbU%^oPKPGO{C=E+Q|G_mV`lCXk70g z)%Zot%bmUSi&mWqPo+|)b-Fnu0;5Z&kO8CCS8Pyl?L11uYT@j-0Y+|SVrGV_49^=_ zVT`uIbbs%!v(5{#6&^vdFb{ceJxyPA9_o~rt*xAkn5Chsv~wQ`iqu9e9C~?#8~7c) z-fy^Q`I)K7IJcA`KaRy^9#*bi&@j2t+B~=Ezb)N`nHqxb-al#g%i8BiWvgNwA@sp| zCr74E806lo(D2y7b9Sejy^gLr$|<45_VpwT@#BBQWM&;z$V@)M~Ac$CUp zN1+>`MSaLSm!O1%s)=TN+=X1X%+fCRHb*M`3GV#34yWh)d)uxu@pa;jxJm0wPve*? zMf*!yyvRu31`@0DXeowjE1Z1oP1grV9Aso(p2RN#=lKLC2bnVc`i_se@$-E>8e=vl zSLUVc`~t+ND1De;@f|fMv;F&jlmbeyOkNps<)7I{GVcEr3YPv>m6bK=<2x5Cfhq+! z%d_EV5cDy)zn=wMvB^2ABPYFF7_-f%p0+W5ee9LLCd1O%Tmc7xC@R^d>G#4nYhqbZ zLF)DS=$t-IgmHdik#`QL$8w7X1*b_Vx>8i2;L{*IQI@KhTq;N6 z@VG+=!43WF1yV)K3+1?qJMpq=mi}%|2>o#vbJaWhECDF}^z@F4Lp-#on1B(SJ#GQ& zo=!)8ISaG8qQ%Flt86`HuFHZdfatK0l&my=php}esQGMqLMPo z@rd{CwhRnGjyQ(O9+{{_vUN2SQ4w+72HJv#%=%cT`zjVPq$A^|D@RNmXsF zk9!xK&CZwWKu}~KQzdz9-QcT;cjteVHas~Ck56sNZXzrdo#ZL4&pWxk-;eta){bpZ zS+*M$4aQSL%*lPjU4~0{;WReaIGI_PcxP7S^pdyT^x^9t4zIyWwNK&kdeWOi3mXfv z`dY!sU>@d0>@3Vv zx@YV4Hf+c*rg3Rq9XaF4tE2h}bB=u@wQG{03u;J6H3t$2sF z(^~>1CCCbnKWFJw%EOPaMcEVDDCzU?s+iqycNp_Q{ z6-RxVAKs5A9u2HLwEc^Ll=1gD-VQ*K0m+rFu{AXac7T*#Nl*3+JCUDp+g6}|FHY>o z@=i&xa#5t904yrxJe0${Ky6d7a`Ok#BsZ8i&~_Et*{-S5X2hzoZU~~{~dIPDu{5^k)IuF4Ok(ZBuEZWruTDgKaapt;EOO-6S5Bv&qDt#JHhgN zlYO*5YV&goE2=8-hz6jg>NtAq{8nvZQTCDbCb)%BJUM*3Ja4ae7G9=Zg|zFd!9J(u zq*~upLDAOi5i^bU{W+O;3J6 zO-aKKEEJS#FUfC4q4cxqPKL( z_*O3#f;+mpmD59N{#cr;91oYrvv5Vp`ndW7hdBAXQo1NJ)$HU1nS3!%j1a2DI2dW*v7=u>IkE(=nMJ;YsXs8mQ z{#eZ08KJ$r-sik&D7rCQER%4D<)Rb>j|b%t!?~DpG5M-f>jtkDs@>I06fGjKB-Sqb z7HBjfOxx;s$B7TPE2#n&`@kMyw6%m;*?+)Pk3kO}`Q*A7+bWEZfGK|BUKc0he}k(E zH~I{Z>ZG3M3v{}LO1Pwm9KT_rflSi0&!ZArPfs~f1c@b_j0f6=2gx7Ywf(>9z|)2MLla;>L0$= zc4mMegLQ9O8)$V3Eb2+5R*2Jjb+f*yorz^N7Ioh+hiIJDeKvV#0*_%R0)dxG23^xgnL%F>Dl~d^dq%!axOz~c0)A}?zCK()vI5@ zA<=MxovgUV(%0Tj!?B%$>Kf^I6NRcpj8&QJhq#?37U8WjEn^4Kk-=9maH7fFg}|#3 z@_#;jSh{N|kIf=vq55m5ABtDrgZTRumc8}F1wtbAqxFd_0%K`3Frj!GnffDT$6FX^ z!T8YMOxnhV5rXuH^%T%I(Ldt~40QYC;pf;^4QV#IjZWGzC&Wn&@NkhMV}e&MS~b?2 z-X4_Ml*rw=qJK^ve%nabZ+(J{Rgj5#QT4-THr4tUBGf;^LEhO_UfEmQNKbJP3#n_e zqP2lR?t(K5J!sWntGy}xl`hHa^gyesWOn`%izIW_>5!t{miOz0weWwAu=L0CKR)Vak#Jq@nIQX4Y z+hP*Zq0awVN()a0WB2y;acdxPpzDZ{f-TbUm*^EdExlY+n4JQ_Zg)vvEcae~^7&lc zOtHr(4KF<#2@4Ay7d`XZ=(@Om=%1ra(UIlWxQQcV@_0+JrCQB2Y)Rc$W%0q|r`TQk ziXu0|7Z_%4_On(2dm#aH_$=VRecw1wC@^y42`7G7Hk$p{rFl+>H_P^XgGIhKRfcPSbeXBH&^5X}P&%x*Olv?NZgBjJ&Om&R=^t zl5TYYk7eNwr4Y5N7$u`X)`qb0PWKH!4B$=bpz`^PL1D3RU7yAcRwFG5;pwlYY_QW+ zSNI)X5P@$qR5c(|X*v9Yp?|NgEo>{QDQBdj5MJCmZL3I!WTP8+0GS7VGFriKO%Z?g z3h`%?J?l#~PvR-HJT|OU-cA#OrxC-`c;OU)ub!)I@$z_D8Yo$arar#Wv|K-fS`hoK zwvb1>=1uW}W(BKvLW7xw_%FEf=g{KLwnFoVISBRwvhxDfCl|k}lh5~aR^B%%BAx6{ zGc}ryiidzlHde2?2NEN7M)Z9K^G_0&I?OIW>W2tdu;aT+s{KH$lKDX{Xb2Glra3IU zaj)$v#uQ@i{hUQqf`Ly>3b^ODmF0pl6vZqc=Xc~#KgO>|@d#KI&$^DFF5aX`9G{dN zbj1y|HraUF?zLcyt zzrrOsFZ|PZ@8IKbb->Y^h{}EXNyaMfL36YA`QD>7NB-}6yR%!vy0MV&XExzKd2(S< zBJ3HUfjrlAG19tUH-_2%6WBAiywCP=aIsQhEes4g;gPB<{$_ZMoCr>Q!6CJAlUwY9 zKL#iWezwnFk2G8cD=O&tP`Mf%wHp5jFzO9`@nc)3ACrLUGh#v_f)qsML5o^WW%W`e zuJc;?DOo{o6O4^XL_l~6H2;q47LBYCOnDGD$!=(iQW~5&?XD;TF)$DFzWDZ$&MKjQ7usObj%g37%Tt2TqxNpS%1faI|P6TaK{4_!1O zgTT1UL=q}E3Pg#+y;f}xoyvC}BPAIsE^xDc{A+t+mQ4{Y-Z!oLlOWo(FQ_cAe|+wY z=5>?iyM0H|nj(S)uSS&=Tlvp&z_T|Ir!fwUOHPwj*;-!U;o;)o;T~O^*;WEO#I1Bi z^Ii&h%sQZnvzmf2Zy^{`bKyWE?a(Y#p&wj&tWB-Fk1NL6e$To2K0NC|P|W6)B^{6p zMnH5k1pA)=&ku}2)&c$V^l2#Vp(G*VojV;D5qxCgXsvT{|BI23rN6u&0QE{#3;gHi zYLkPf_Gh+5Hxup5mSi^k>+Q|`efX510Fg--Rb?Rvk|S;l*c=zzzY%JFwD%v{!6QVl zpz}CsnHJuoau@`}t7kjUI;eC4(wSCbG9vILeG1I!5jC>#97kO*`;K}-Dl!`K9?Uj` zrm?rW$Hgu6ngCE}bRL+6O*d?}LjT75h)Y=|4^?P3%T%^ zNJywhP*|VvR69GPvSM#}Tu`64HveshCN6=k9Yv)yHAVGBR?dIes(xmtKoPdEb(9pj z)3v;QPw0PxfTx7URQdyfo%q5@-S~m9z^%wiKqwruc!iCaBmZ)XBZ40FpxjPAxMBEf z(DJ(c4u!n)2LOkQd7i$fr-_8bjrJ}W5o#k73J0OJ!Lq(^G`l*#z`@7GD)47!WML9q z--J@8kogxm^iX?nZffa*^O*6gYb)a>F?3cQ;>D;9bG0Kj1G5HVn3fI&zjN=-rRC5CVokBP|`(R95$<-f`yU5nwS@&t64I^RrLU zSSEG;$KE*vX~M(ZzHQr_wry+L*3;J0wykN~wr$(CZF}07?)%nV+^W0$_TMV0N;b(N zmHczg@3<3l3kgzX{dj1DTGSy!M{ku|jQ=O!hT<*@SciQJMd`w2e+Er-kWv&9$JEmW zjb52a3!s5ZuohWpf-H|u%Rq44*&(d1vzUl*V2L*-&#_T>ZCOb<0Y&1lkY}W)hkNui zETxo-V$U&p+MVx+|H=$@xA4*UZ#BAV;b*o2j-^K!2>d&1iGq+tRN}gDYuVt&O_MrM zxixlu!CILRzmi?B*W2Hjq$jGZ@G}6ry=T|Auol(@0Ur1G21NCla~Csv{=sMe*_47b z$%L~nXLJ4L4?k>x{~6Rg|05t65ygvxDE_43hR1>FIVrRPy(SO4@Cj&5Hg_~!q()Qgi%@`Wjp$tK&tf3?XkWp!g=8U;S)NI?_;*G* zk~YY@Yq$t+z3p(15H0tIyNO{(Y^ka)u9w7kKWTy08CHhcDz{8Vu^Y4x|IfQKD^I>T zxF08kCMrfEsACaWe2&OLO9QM+yPKQq>(fgRmS#9SyuPfGjylqMy=BC{0J2{$qq`lB z^<qHutdxb4N4#Uz^IaDX6pB!#;qLFP_x!v`db~=XVkb@Jz*J% zISePM|4wOFToFzypW`<25~EUfLV{_<){PmkrOMAVWK>6LZAi10+D*@(=KS_rZztcM z>+HS>271U6pZGekB50%c?4{gfFq^Y4NGKE$f@!c~1xIN|N96?`ov&=XfAFfipAk!X zSJt7Kk!V4>a?8KkE$+v%_UrQrt;YYPI}Ci2_`1}$9GjPs4@mOs6W2(;EEX9!qe&_J z>$lp^P+DE)YUu>0C&WV`M|ij%8sOxX1Sy8SM+%1N`wT5?4nKl*+N1>^mWeZ-0?xr` z4>#L!L+AEco7|opFxlrHV731$$uBj5m}Em?`!8>6`rTWj|2`x%?)7zzv7J|--Q0a@ z60AEB%4;d6oJ4I7N+9%nd~dhUQ&4Et|F*TlQTac=W^OG~8@(I?NR%Q*cj^Ej0n(N> zRP2`?`74EB-HX6adv;}P!%2>+xYBQ`GEjSlgW&M)#YVUQK^U#bNg24mjjZ{|H)Qza z9I*K|giNogBi`rw9_ahlKO)-|xR2NL1!pLork;yo$A z-qS*<@UyoEKTpicWcYLULmjn|QczHABJsBP6XpDve))hq3~>rmC4KB9eHS$Qdv4sd z#6#Si3RyqoRorLY?@|0*?Ecs`{5bUO$&U!B9co@|ZTX}B`!Q|!QGpls{6RK9#J(Us z@CQBm0c`m5-?%G~K1h|Fzp+Jq7;)X$_TkO^$PfO!tP@*-KqtQq>3+@5_@jSwU6lOT zWB*`-`f=eVo_T#;SXd{$G0cAnNxbD9zv;nz<$XW=2ygsQFW!y(_y_hgqZ+|{{h)$w z^bz<&#~3hv^BMfRy899d>ho{vOV!hON$dJTx%dCLRm}VMFD%dh(f;?nru&yWm~Y?h zp6?Zt;18eGSB%cj4bLb3>j$*K`_$ME^y|l?_ZKwR+n(>U0r3y<-d&$V)X!T+pWb~~ z*-sMRKWw`PMWRphh701|voNTi`;VUyvp(p%yuI_hu|)sxX=3F!DvEE9w!G)hJ^l+~ zgHNf~567ZDbg>_N)JtON?>@9!p`JHl>9;lPe`Rq$cRoLT#l!wm>HaQhc^q$HQG-HW zw{zIiKhL#4cgx@;nBS!c{v8niwyu8KU7@hQkR>_|gg$%`|LzGMr!jriO{MyG&OtYR z@qUYE7?^#Yke9nXhE>v2FA5WXBg^>oX;eNVW4kr~biw;?KT>V`(FXa|UHsD}|EK5q zimWLs{r$9)7X_S0?2Y47`;x7p6SuD4Rv#}!_D^75V1_ak8E{pVYy?z0D3O!bHF;Dmg6-m;aAI%=6;y+9zhc1gCKTD#_>0OI$BQvPiHF;=G&0HPrYenDJ)Sr{y6aOq zH86!4}M;R5SfA4=1nHeipe7{M?%On>RUSZP|z6w;iJJ6TlYTivkR3 zcy3EPf~p?|B>iDK9m20&_qXl6&ZajLR=lGNJT?zysuS6?uKJ!(v+$|Lx5Rj}D?;hM zBI9u|s$JvW7j`tN+|?~bmPdJKH-QGo3Be&C~D|LYytp^oYNBjjVioxlLWLWY7p z<`eT{bwntnd--sIv9aa+TKdBSgR2xEzW`cAWZ$JVa1d&ZFri+e?!u>dQAk+32NRd7 zUDc}o#Y_LyS7_hc)5v^nE&$myBarcfUHadl=`X;tt4fRy4GJSm%YD7l)Zlys+|xfp z)r#}CmO<_@R3V=$Ar>)%mJkef<8F)B-q(zZ=qHgAIJ?-N`^xwcr2aV~4h+^IV=*qT z^|z}?&UYGRRnmSVum@|Rs0L{m779m~2?yakD|TuMnLOZZ15VN3WlcvR^KeDgmq$7& zSD)YG@$nz52IM;`jb=~dvM#5EECWbbJYQXyc|c3~seMv;%;_$1J-zSfSN$6R1{uuy zblu@Z6fQHxZy18F$HOuuSG{{T7~}}yB!6%4EAPU#S$c*5<_zfL$jnz z6q#Drs!c04cN9~IPkCtT^B6GX$vF@3W2yR0YRPv`Qus@6 zdY#0ji8R%Y&dJ%jjGdlGpkeencZbG(F#u6pKFHt?pW`K(!00}3UY~P=T=3EDkK^wZ z*LA7P-q92x#r?V)*+g;&Z)Y>^3dMCtiT4`DNHM9(24h{g@4Zfc4w545w_1ebl-gz< zlur5~d^l>h6uI#~G0a=VPf#d^va9+JM!v;l39&|>jTy-Qy3QN|^)S4f1v`nuPd`Ll zHs@p=-Qf)?z4ZySFj2cYL59LU!B1;YA$zUS@0(Av?)s~0VIjNtbE?PT{XB7k`X#%jYV(@wqZ&5X43V3tj4CuCODT?me&TY3RK_`N zOwd;}U^_sQ-#7})Q#&P1_g=5?(A10xSd9Bac;%;$@9h`5E)4t#!s!&tsxpMy_YS`l zMF-e2zYXTg;uKHbHu|~lZv~SWAcoCUNYAvaj+XY3Q?=OJ@l+B8a)z{q+WMch+crT5 zj__>N2d3vbc+0d|OMEUFUmTGZ`ixg=w&P;nTD8w!1JsV?w)70bh<*F!X*bF=!}>^T zV_{uSfxGTW-p4*#hrdQ+P1F1e6LrC<{UZ}3F60iH?;m^5CPD6CRv=Y@_TamH+K_Xr zpUsdaNql||3mPsgGRJ4V{p-b>P%x=nNSMEU;sU8)BW3Vu6pW%K56 z>kxA=d1;(Zqo&FUQ-$X6eu)3tyjK!hK4cts1X3xdVxugGP2CIreUG2XzIC;ng25l0 z5n)hFz3yapY!MpmA@aJfh+D@aiY3*i>OOB0)-LVk9Wjaf`B~z6M&8CaIVLaoZUph! z`5RC1(*|i>beXb~bK=(=`=33nXHnLP0w%wxiCQy~H#v9EfC#ZVNZ+LPhgnDlr)1<| zjnJP_pvQ$exPBDa0(sqO9!{*@W;?i3Bu_&9gC!y!`ZwJS?Uk3CoHisVFc3k3!ptb# zv2*73t6m6D!2^cOIRCE!4;22tQwD_hH=MfymH;1aA)e|J(VWZ^F-yGl@s%;1BlNKhC6MyrwBd#yh_bp`(X|z7EZgi{oi!uLc8$rDF)#3j@33?K|&-&VbEw}rAs69u|W-Yo2T_#)hY0qWUxM`&3o0F zQ9QTeaf3~%RsT`Sxb;{Gm}Imm$}UEnT6V9WLW_Bi5iQ!eL6(yAf+8U0 zxdt}v+_tuJX3co@0G5c|!j9fE2gWFT_{&O-SC+HMWIbLy`?QBi9i1Qw=|+4Mrftd; za_kv3y3^Iw1d-@=0kp01_GmMyS2w^GU5MP3I&3EuAbe-pf=llvr45w5xGq}l_08bi z6W77m|SxBYN*;-Vm~gtb;C14CW45v-jH zo}g)u`n2)OjF02-TdAI_P~R3=evB3Brjk2X#<|22k|nocul7{cdzqGo%zcyjAeXh6 zXkS4=`MCNQ<>3iybU1nV`a+8k3SnaQ6t+yfFg*16v%{YRqjc^eZbRL6lnQP>LI4TH zgl-1R0Iu>Nd9zP}R;`-#vt&-Syr$VfXI4y(a#i_>sWf*T7+da!REt^c5zn~Z9HoLz z`Q%z7i*~&5+T-{g$E0UrvIpFt2oGbS9!Vgh`N8nmg7=IJYO2WHeB{b#zYA5VU~n`0uJNYPXZplHK}9Zv~I zqPtqmeL27iD>4Ppq&n;PDF3ZQ@X_=SbZ|@D%|u|ct$M<^Pmk%Wz&<6abM#My>>QgJ z#F%)X>=WuJi_P)7B@0t*>3=_3Q#M5l%eQtbshIR}*?+**FK-wVY@;QE^}}ilEI${r z6~_OF1OCf~w`q^1L9f_QNi)5Ot<+xQTh8%7CgiT^ zxm=!o$`{PKapHB1iJg8^qECtBhB-pgrkq7SlP;TxR2o^ovyQ6qqetq-dBKgFNjZfrCQVAi< z2mF@?(xBWcnY)nn2w1w`PbpJSRSNd1=XS`@voZfXE9Ki76c{zB(q!6yFeD`q2oFi-!w@=n@#nO;KgH!tUP3CWOc+cFXieV2f#4+I|o&&A#?r+h4%Idw>ZV;IV+#crw? zknM7-&mI#o$qXc-=la~C&0XIyRxqT^XB|=gowY^2g=`*0kxdjuI~_a-%?M1ecWain zq-Z~K!17AHl}f{Uw~W7(I~0&2djaWt43@3M0Q2qwpyoY<<@82_O!r!*?G{@_jtUG z(rf)Pn%+I=Y~bI(8R3KCrObh_A<9(+SLI}uEU7b0ncBRmpHQAsvMUt~`2&0O;mEB_ZgW?ol~}~x zhpdxNc_i6D8}rWoA-ub^ii;t0J`-YEVl*b@0P*xdCRyAkpG(n^FP zSVnGAYy$ROu@my_7%{X5dwT94)b{;pNK{{*s8PmdN7GFd(p`|p*+C)DOpvnUMu)sA z+*yRPE+PF{7m*H%1fBGd=!*XsgMWifPG&s}xZR>tb9-XLycTk+e7VRNM}!%a`K9Rd z-#WJLP(y^lB|sxVVZfkI+YcRV;&`9o1{GTtLK=|pJIUYxw&zeN_XpF%qXAHQ4%rS6 z9*pk@r5XY912(=C(9>T;JU+j1M8~9-m=zttup*cds@#HIp_GFO_}mMeV+ot|;*o;0 z$F|N=`?!^}dBH>K;REwP=6zzBd&0;l8lv_=W+eijeq$YH_E4&Iu;CycXogav_6bqx zN<9IUBOB6CD-ID*$m)^$k&LMzK-N;Iq@<3?hj)ZgBk2FdJjoq0jWHBPq+1M}v}Z`6 z|Mw_-`~q88+_&C%bOR!S2$f5$ zO>^JeWGRd2R}V{jLcKl(r)l(lmbW?wy0(hF&jiQJgN^f_Lp?<$c-DC@Tt@XkaVHpg z0Wfnpb8W^$FVJnIg$_P2xFqhfibLkgiHi8$_|2t}am7XG{1C6AjY0LgFXtc(tBL{YB*BT`aJ zG^*9Kc!xp@BqsZcT9ZYnr68?dp*|U&B614JDtxuWT51p|KbhSD z4OZW}Ld0J{!$V{ec#soOmE4ftGg>w5UXs(?6Ijnv17Bn3wNtBEKybdK-A#FpF2KHB zke@po)|Q+OW1VU&cbBsVq;oPczGG052U#uhe!m0p zwIWnPe?hbbCLKHkOEbrmp_f~CRoVo)4QERCM;a401omC$D@az6+)%X$kH-$K*s(dw z);2CN-pIDD2e6_guAKDfJuMqgpH+bvV$}-ZVXHH?qiyy{tj4JkOZKjCv^HvvF)vc4>gh@idU?qg zX&TPolG11j509zkDhe%pKoBa}Bk8k?fUHms_tq}3+yfE36O<`O#nwM4gJE^EsB*tu z2rpbpKmx;Rq`R)|J+L}3E7IN z8h|7+MN{g$`T$ko3S}m7I=y(kr<^S>i29sw>E4j20Z*Dmu{?@U$DVO@HkO2zt|AHL z9WaJJJHk)7mLA9CxCp=}Js*3lQM%?KwE=;RKO2;vJ;)MsS2`T?(QWd@hPBoc03J!u~o3)vuOE z9m@oMkXmcN#U$X*a>3ldfKH9yV20RQWbJ5F?SNZ>Kab706puW6nvc8M%vpfsk~2=e zcM1sn{cZJU+DH(zUQ!zBFYXHfljBrVTb{dSwSk@tyT|DM1J$H^K2(z*J5# zrK)5i1p!b&EHe{xgui7BL_`#emPWtrciFUp2v&jDZ$u|nPa_=JsBwHL7*qP9Ua+1( zZ^442`KoV`h|RZuLX99h;fboO3t}ex*daEnSH%* z_j+h?AhII-nYA7*YT~K%Rmo{52WA?6Oibce8l_q_78&ounOrhS&YT8dH*mU`yO~lz zx%qM7`)EUTh}8IFu&e%Gid!cLt_2&H)2b^_>9$jdIj2Qe{u0gQvjx5`HNoHdLFt$3h`6VOLx>OmEg?fDDs>FEU>b zbsON>By1)@b-*aqL?R{6ftWRM&kXbnJCcGgu@;NsDA4U@=UB(EVysL%=qW(A zCx8T?yVd|&WKiq%RYs<9K|e^!Q;<&lRqJpuRtj!n#6U=JwUfDDsc9lTb{LFJDW-j?R!}uqYDAHK&t0vcIbkHA!5W${I&a2L zsV`^Z*3PX>aax#5D%){K1j16u-36}h%YpiG?f00!SV2Ov7kzmM%4Hd^Mq*X1g!*7k z#^f&jC!F7essb4~4YYoq+L$t0CFV_RB$n*t$*nD@R*P13asmPXzY(pcV7uv34x@j8 z!iraez-hUFpoxFGfN~aXC$ISbl{SMC1c6K7u|NB+r+4gLZKWzNsYz>Cnl`&CJ<}di z7y}WFR>FmtWG7610^75?8eFtAO%vF7DIE%4Wl_=+_CmyDg+|m%PwO-zWZ(>>mj$^NPtm0~4#TIGo${y4rL)~ZB(#yPO4>nsW+^wP%>n;`9l*%V~q zYjNt>dT0v**dd^lYcx43a(i_^t#HF> zR~$$l1@T~dmCXa}c8W-dice0raaxrls>7td8=u1Tmf^5eyTW`x8@hZZ&&&k6xZNrFEU)^{?Q|H^?c4&z%> z&&3Rcv6>>1&-MCPd}59|78bR&3pJYh@(eEd?y7Z3s+BWj<|kLyxqA|vms+I@3&<*d zW#^gg^U$*|IGf7mqt-1%>*mdo9lE{S?7Hs1Zc!$yO=@?qsGkp&(N0q)0J~AzZ7g{T za~&PJ_?z>kFqIs%*X$y-DP{$iv#V3oyI_u(_+ncPcy!x342qne9Tj$24-Fyl^*YgE zF}#V@{ajUP1j0HJY|gX6`9=W%TJoAHSNBibAh4$dhLu zc#<)cJ(Rf29GR>E3frS1Be~*#IwD(Yjo2Y-I``Z^fXm#!*_7#yPb4G=i$2M~s`WlZbnKn6w1cxUlzc+%)p zBPR01$A70KENRqLUAIby)x6F7csJ^CIdl=ZZ(NN=L28+Q+r^Rp(un z#~+tIdl#*1>K)#Voch4es%xIYr$Q^aXi(#gHf=eGT+`@i!+7j)yxL}U7GsJ=2{Cln zhf!q4JqE_yH!p56AiBlu%Cg1vE2Msx<{Q zQ93{N_RL{{VB^ZzaH#Pyoo{T^*J9KrSczW^Irc@$ooI#gNO#ZH3@%J|ZT7cHtsK3X z&Zz6BTyDCyMP#Ne3fA4pNleG#;acX#Na6Ox$2{7a@zbwqd>QNCmo7CZYc@3^xi*D{ zw9{qcx0vggDXvSyOlM3Tv;Gw`Y95FAvOGxETnlOG%pOvgEyphp&8L>eG=7s87O?Zl zNhTp19u>jAug`vT=}+M{0L z&oX8U&Dd3YTeIRin%B6~f~`xDpQ}28*Hz<8Ij+BATg(aPwfgY6O_Qq`S|xkRypf=c z9e6%ABs}ITJ?6Q{6J;?H=}?oKS$*hCR(KuhRB_XLef=&m|U69j4jL7VBXQ zsF=s4yODk4{$MzegPD=lDbi3hfn-%J_07xGl5$hsm~xxHN2nFMb9h;{QPFhT`ff?G zR*`t-?WP!oAy#Y{n!i2&^5I#-AqA3K)aqv!$4958!*EH`WQ@h?&v-`9Ips)Yz`AW0 zZ$R{>D@a9C@?tp8NFZxO|Dr*sV2dlma5rbpSEdBR7E*v+;AhBHOp?WywbZNcG^Wu6 z6#sk_v;rV1V7-3V=3Kcpnf>hNmeBXbMJGCN|BckIY(?B6O8v9aZhQ05?hNsEUF5Y| zHz86r)AscaY|8$?THYbFV4<{a2LcRT3J zC&ZO))|3TwJeneGq6>3O$aU0Gh$idPwy90jxFN+QUT%)&(W;c#hzkMjFSciIah23c z?MD1--A{2DWtq{CiXE1wu^YjK4Qoc11%&ATN;Krl@M{;yTRo!e!96R1|>6Nj##%uGRo{#P`N>3ac_ z!;N9Rkfm+^LLHqm&lo6$=VEo)t4u%#?vb@adkzo7Kk%ok(-63|)uLnE(Z&>-^}Jl6 zErq?2t#tl$Rk)KW9INXebls>$L*qT91E8C%rAnel3P^T1qOF2GY$(l9M)>t=&aQ5! zxRdZNb5pa$X(_T!rUCAg-DM`jma}1E#!1Y1d7PnLRL>!HI1Jnd|1Ga&Lp?&M=E%@X z4MjL?=!%=*z= zW_s-EcRuzTE45+mKo;L0Sp+IZO>o;(FnL{&K6{+zP#QlZ&Gmi_}AutqEu?- zW>G&?^lP8eg$gXd?y@R?(%&t$0OLhc#tlCC$-ZWCPsxtcRZqsA|*?Qx;^vV(VNclKUjRZf_%uO z!}9Wqll!t5XAi%lUF(4T;p3!Q-RF*Uz948NMuU9}g1w(O8wa)22qFsMpnYE@!F3h; zrAGV0`X>J2Y$FyOIZ}&;uaZR^d`%{$vY6<8EIhKlK2B)W%(k*5i;8!=M*Os&H%)no zS5c)bU!NnE_*e}r`G|H-EPNZI9MzUCG9ouAoqn28z`8~>RtN2+6NUQvOk1J8MjIUc z%&%b})*9pz-PXV;CREV{g(f}-Cjy_ko@5^ENJvhdn?xQRNfL2u;#vF1Nql#ij8l#BtBcXd)WE<{**=6nVFryL*dN{4zTgcMqxAN=Dyl> z=b~AM*z4p&QmR}`J9QFR{)EYaTe1a|LUyPW6lEIUg918Ih^e}IM2fX+6%h>8=t>UTY&JDd%%YJ82bpnV_Nx#7aH@6H zo*qX0C?YpS`G+KL?cgnr!k>1Hj6* zQJ+r98gQzlE7r>B;LV!Qsi;&t!h?*4y>J! zt*7Oe4majm-k6sYXEC{eS@cof00c5;-lYvW+Zr$zf_GwO`rs{>%7E`cOcA(NUXHlc zQnGp}V8pfRXGV|6w(CR##~Sc(9!r`o2(eG#6`1wt2bI4!cMwxcGoIscT_7306EVwSAMG`|SV`G!UU8nJnYgH1{e-YL?g4zmeTWAf6P5~_V zd@U-8ae)H6k)C=RDe$)b#*u#3X_)2|HG5SG?FfdPnd)P5z$*vY86nfCnLtb2oG&Z= zH29U(d2w&)Q_Uh-V!;&EsFCYpePXjQ33uMCPOs(~oTL@?eJ+XzmGZTy$bMNXNL9Vk zg{tt{OyWAG@}Mc4vh)$^;i91O{G-{r=!aE+vv#|`JTK(QX**}>s+_*mZJ2VN0`g9> z6Jip+Zs^$AyLN|LWkxNVsDMD7+Gu&dUgKX*cnA*t90mBJ#skR*ZBbHf^wW1<6Q`cX_*J$GQ(ROyvH{BvZcHq)F_1xJ6oO4qMg z*=LGP_!K}3j1&O>O6$kc^V`lqh!Pk!o*AX6()!D7+@YPHF6al{Y~sj z!#buuzcY;6qI82-&)$*VB%zL_ysS~Wok%=7Hnq5qH`N)Xf9Hsg$k|cYH*&5}yNK%& zxwg>HZQrvkI*ARxA)VE9Dj8iX@H~;(d&r24KNR6)mJ=sgL|wE3xB*I_r{2iF26U>} z2l$1KGDRn5GPNNtXAed2(N}NA2GLGgogTMlDbyb|sbR@)n(-y)D=t&homYB9dYOMO zzr;_9a8yQp8`j3r?No+#WE3)^cK$t1-*~4eOH>2hW~`*C#3Y{0M!4Hv8BATL-OSLc zWxtddxNO%UK7ys@OMA>N!Y&+|T|r=^nsKq#&4C3pghx<1*I-2fe3P!VQnbOD+0nBKD|d5c=G z8FwUpeUT+;<>JgOM{XwKwDrQiDMdpsrY6RL#@UuBa@(jztGbOZ2gt$17zw|Of~;)j znBaW|J64nVf?I;8FdKTZpl#M;w_JavDTOdPkT0Z#i;aC#E*qqE?erMPg`4l4k5kpO5s#-~;U zR+Q{mT(g`Pr9Sjb>*@`Au9=K|xHyGxFNFS;Zrxj&CETuS(eua0xmRPj20+0g!qVU_VKZ z=n>5ScMsWGw}mZ|acvYNSQY82w0}kgb5Gs6ZCWX^WMnSps>~1ex_ADK1@@HT_V`dg zE?-l?vnw;=6}%RM3zbzYrv_WITVf2oFnnpk53#V=aY{RYq{z$Aqfl~mXOv`ia?Hhh z&bB;6Kle=M$+oGhymR)NBr|0{Gb}^=U9?Ak#;WXD9+F*MXs%kWbkL|D@79l($ieq; zK5xhf%kUZ4%J@*5FEh0<-H9>t7C%v4YOTFV$HJi!Es3NW!O(EN95i#`vni*{BP91x zqGI3J^B-I}z$7P5r&$rH0}F0?TsE+=&Padti!kg7T~WkNTA3NTq2T^*$?c zr5_k#na@gI$R0glrzUE}W5@Euxf%)`I%F~8hbj-oE_$!zWqLX-4X7xl%g9hyXKc8d zLHRow@Mp{}d7@43S0uY!;e+bNBX>fZF=bV&R^=6a6Ust>{K|U3mD0%l3 zkyj;dIVm(1`IcQmgiGxPEsPIC{LEjHeW_b+m@Z-|PF+%LLp*jNx9estr;mhurbV6U zW~1WZ>Id*Bf^aOkV%h3k+Ru?95k2X3OWb6Uo{O`au{EklNU6^TA2Wr`w^-sozp$-f z7;J*lIgy#!<5>E=a!%v)+Ga+Y2tuur8B6m}aW)|Z>BD2yxQcp6iUOPvx}e>W6#0;t z75BImd#vIo3LKP_6;@5nNQuv5&pm4zLj#W+7N{|4ZPmi(g&^riS4BcjnNg&Wsm)24 zM4=b9 zlXJ8~D)boh=^`P>kCTn$7(;UD%)H>!6kUkyswoOai^2@CmAX`TeYQ++v&u9p zmlB@VdQ9bl*UbAXgod}>F&d|{(Z=Y)eWHBGB*f_RJQ4Lu`-8>+cGBdEh;Wf8^il_A z%ZLbwi+zGA$bAG7%@l{%$%&hUK}Hr2mz^;jzWR@q{c*>!dLL@0VwEu9!TKh0hEWkj zdDKOxOa5EqknA{(hT7(O5$2{%R% zm3`gpF^w9vJN)?+E$RW4#)EtSC_BK0yXDsGTG$NO+#8bCh3YMQmG7rZy=Iu{!kbOH;CgD#6aS8 z6$OG#7t({2M!RWmfEP{-Rm{Wj^vJBX4Iz9LUk#6RmT6z*0N7JP?x9MdC1 zUms&?R&kltspmSqdkN8~2Nj)L98>zMwNlz*6ui{vB||DbN+k zah;a5FO_s~dKuek-zUq`F`&SV5os=k<1xAlNB2eW5KErdz>u_EpF}6`OWt{50Yha% z-TT_PqBqhf_Fjl)kZyyWv*6Xh0%W98C1%1R~3X5AEX*Md-9azv)g z|NBJ)P`qh8dg5||M0WtaS*YjHMJO|*G&O#OJ40pivd;I2{>MxZn7~brAZJMiXd;i1 z19K-+dC>9?pW6qOd}m1uxe)lBnm$Bnomv0N$@GCAO^;<64c`)VHF%ZQ`mq8~?haln zN?5Q~!dUBh16vQ_?=B9WoF3f2lG3`T-paD6Wj9HW4Zcg&Z)zcYJSo7RW%mDFw9))6 zA*)V;`RMA*P8K_I27|**TS7#FR=yg9Yo@4TYFpw+u<1KUPRPIME7Kff&*)}w zw$^bDCv5vVI0+hVX-Wu^gP1{Abc6-_aa`2UXJ!pW1%%4D$#ymf)ey0D?HhJ`rjv#% zv$(S`y1WeqE4RLLMyBvLb};?^>(utw;=Ef{=ocV%vW+p&D0OBmQ z^S-Q_Z5zN*)-6E^-8Q-Q{H6&(ht4#SNfkHtYRm(aSpWckO53EFy=Sx`NDsT;0Iy5T z7tHC*4Rmpu@t)Wg;kmwPWkiW^<|EL}Mcn2Zf3co;aCd{P9d2ddlKI`mIW|47$rO=*r&3;3G!A(xSbxray5Ir=*}dz99Hpk$u*;^wm*L4{q52H z0B<5!ma0q_$(a1*78X(&@EJM#MS1Ay15$dDA?|c#b}iwra(deFZnpy1>aJGL-b==c z1J(63i??$*I;?cU;HlSX1?djP?NI)^>*i5QD<=+bFBDqIfc(Hl=pYs#dP7S52G1IR z0j*tugZTPtKsg9I>~B+w1Q^^eM{BbdO7HrzfCi<_5%x}wlp(<+3Csb)v=Jq)+2PWv z#T_k#aU<833NiWQ8dN)$B2R!6(2>Ww8e*Tky;A|)vshiHLZG^9eiNZpVgcbW;2`R1 znsIs_BER{P8p~ir2~#I2zd|~CG3I6RzM2VoiA_bUBtm;OLnw2?6~jWCxqp|g=GM49 z*Ig&wvb;zvAcMeWcad9Mb?Pl6K@Ham-K5ea2!%!+z6!jgFms0927!~K2l7-fO4ftO z1F;_bqN=@Nc_D??Y+7|eMYw<^-?yBZK*!eAk47y}V7^2nuDRmRhIT&@0=026`ln1f zxLMXf#!}&x*UkDAV=#ZXxRG)1GK*47oH)KIAfK502ZSkhre#}eberH*yMCn=6hlOk zOrBz^cTiG^Nkq-S_48Ak4P^XwAyh9MlS+48eUJna(RC@DgdsVG_Hc9kt!0BTSP7V? zmaGjc=_&mH>a_~?^Rzx03?7gjT= zoU*Z(gLhpwo(Pv|h+Sm@2r1N^o9G2dW+uS{ifo&irx&x`yLF8U)^9D=$GFQ8>2!wz z7Zu=jlzZgS8$}$4FE-Z8BOgQQy(vU&W%M@E{|jhX&a<5Y)(={_uJbUOA|LH2=`Ze> z5+=5;1X3_-$@wjMH0V84*F zR^h#q`l22c77cCXh@!3=?1+w}YWam=eQB1C9*D5kd?YcY7*8(-drV}>MU@?GQjH4+ zy2wrotZ&c&S!5ZC4#9MpYdm*fV@3>Gm)0$bqK}FMq;KzeebkzU>f&;I@!ZInp!M63 zbCehf+sMi}*cV3P9Xb4CZ}u}77wqrKU@)D@%xln~9wWOH4H-kFw7!`nExLVTHP3gA zt0lCmda?z#nNI#9XD~HdPP?fwDo)i%*l~1r7+KDIAtF%)wyr00hYrC5gXQGdeA_I3Ds6#8r5uP>Xfx-)Du>c8TgLZnk-Hw+s zb2(%URArXQxaQQG8j_|~C@m~P4-Itr9WWngThMtsn$R_|E=C0GMt`;VIRbVAD-{Zy zXUJBTG@FDnY;9V#oH^Zf97qddm-wES&el*h3>u$Oa6jdiZ6Ow@ zD}0f2g`6;8|vVq2HxvusYU+>z8bSQDi^d_9BwtPvP z!n9&9lGdp|cb-qPm|xQ|H2US}ia4Bw`ox@BBs)A_rtSGg;nq;%(CRwNkN!xKOh-jL z8ghcRU4UE?Txb{=XbY|?BT~<={R^UNK9yp~WUs^FrxX6KEWKg>p3&+G3dij7*0^o@qJ(QGnZKf6_^4FIiwe&;McX9Q*6|zK8v7 zY@3bQIE|CWMuWySPt@S#Bqz4ru(561HX7Tu&Og5waKD3l9?pY#F!PzU_Fj9f>+*~? zQzgSE_4kY|VuhAz1k`vscYpTXNYXhyTr1*@gxfgNeD`>5gjyX|CPDgVz}Mq9b5TB1 zVzWbWrhnCdxh&Q5X(Y9!u!{T-Ja_O;-TQ;Rke#0Z9i@gpU^odh^Ix*HRc@v?1vH;d z?slUw(zjd(^vZv-sWMg#=WcPiH4)ywC0_>36d5`Qke9!cjM9bi$kJV|5OE0-{aUf+ z#@opKHG3p4SN-ArTAB3v*s<1G8|=L=cQZkI79qM!#Q4gOSx%u+Z^HD2nK9uqPa8Za z-{_q<`zIFIwY(jFdM(Y5E?}Yh(1J{Xcz-59I{O9mLI$hKvZ`Xh^6~28&3i?D*nKI| z`XR2|Dv*8`0-3glyoR{e;eTK&dltQ2zq-3y#=L)fxn*^e?D|C7u;xSP=-)3PN>*MS zOEJe_Z%aA8;*ZV4(<+fJ%iX9Ka?B4&wl2qB*8Ck#u=K~jpMz+x|2Xd|t^}>2`&H3E*{xBut#Qv=x68Aw|vNIKP1<3X#-8vuaf{d84 zDZ*SY0lL1vq%=_{eiRnn(KX&JWkX&dI|w{ChDm#md;gumfIDj;_(5?SkJ%D@?0%VF zg}RmZuTE8Eo*yLZyVlFMs@#F#6{2`u$VXe&4f)-vGW^rAx6d(#h%0%d4{!D(&zk@v z=#`lP8{~}B84FQk5EOcmwtS8T9e}|h?*;W;z`bmp?bEz0va64g%kk&SfH{1?OVXP( zjPX1;YOy5YSszFUgbH|@8b}&L# z>M}J7>VQh8@X|bW>vZJGQfS~GVEEEc^gk%@9wS-ub@LRs;OzCF-tdmEhaU#dVJS0w zDHcM!{BoGhYINk){Q|1m%Ti|B(|vz`AMD1*!rHp880z07>~F<{NW7nWGJnt#jsw6L z;FZfRcHzSR&Y2c{@Vk+fXMLaW@*Iq=d%6zM*;|Cj{j##;US+KfL^4!+VgYiVNRn~m zTj2z`&!xNH8ltKJ9Pi(&NWH{K_-WVEljQ zulId<+i>o%oe>b?NfAic1^ zbrO($4DTcRAtG>uO*r-Fm3zF;F8lpm;$teTOThO|3g8gj{8+)*1->|S!iIFuUuXU^ z9G1g5gR>r?n-&Mhz2MUpe$dFGjf`~3L7c|AQl_HtGUKwRZ|=e_(XNJR{|YG2LwebL zevBDH0+HVzNL?!PhYK4=ejA z>(ME3-{mLJIrDPFtGjH|iKO(P=ILq)@^K#%2s&`; z3A`v)Pu@xnJ%9gni!F6s06ND`WLJFPnH=W9MMzUleqT7DBF>KJ*WL$}?$?L@&NXR% z$Uz}*AV$hAM2q<0ZiIGi7rI;Zpm27m@V@B)`b|Um+=;TxqyyJW;2(2!bFO{*09MML z1nYT+6WoxGm~=#+ng!xvWr??ObdpRoviD#)++8eWJ7w#|OK`jMrSh*?IfBuP0jTZI z8a`aL3rI~~N#w^vD5J>l&>#IIjzS!PM!yHYPUoFg_r2r+FbVykLsP$~8hRJHqV2*WY7Rgh~!$%^~Mp^#otKj={JBZ+Y;VdhkVy+*{FVP+%n@ew0|v3o-QJ*oI>;z>}J z7uv%jxm+M{cPSke^o1CVOiOR@{vjYQ6n1+?0v0S|G{B+UAP2s5dp&(?Q0GvD+R08$DEie{U7UaAsuvVLq14V!_DB3STGbSuEL zY))T4(4%n)I&H^bK5-rSdqw}xu7HI-Le|l1n>DsdYB;v2f+5K1L3;Ku-6kxrqX-(| z`9$NNI=OjjV+eku$j+2L9Qs}QV!o=xA6l!b(zm~m2rO#m_L%{g|5)hQkHVs4+hrqw zVa*p=_d-6MEy6d|IQj8g57OZ-+3m7AIKD030rs2A5DQ5}eq)>DK>tJ^;7&qo;m2VC z>_a#Fqhp`oNm*R}gLG3HgR_ao)TBSJlrKJqr=00!nu}((gy!WEst?;_A+2EKkj`QbVo)>IYZ5(-&pf5nxU>Mx|nt1gc(bsb;4{?9yS!|IprWXAjt|K|Kf$>WV z%_>?2t5?atj^#Y0$`@1WNiz_cF9gp`p2-qZ@lO79Rpa!Y2nQ{>eW`A3Sb_KX3njCH zwp<1fXsNr=5BEH|6+bCS*K9i(Kzwj^$ZMy@y&;*RYBM(~R?XUOzpjBdK)hOs_owoo zFYJK@609E7#^h!>XmA1;hSH~FE1Ye;X zbh1Y;f4{+^dt#xqgu!Uhk>_QHrnp(WwXs_m#E=rCxUktyHaSrObiBYe&o7qIT4!NrV zNs`(3KZXM(Sq<(j@OUmdI(Xi@CnCunvYjc6FS8+_;wdHV|Z*%#|*Mt4yDYX%UfEMe7-ye{b9{%C$GaTGIkx)x> z7m#)-r{F#=)*$oiPwV61<}v)Y$3=*~<;M7D=Q|EVHpWwhOd9_S{PDoIO#=upuPJ;}^T(YX^i+|IYSU6t{;Eq6guBHHE(a%=Jlj0n z34B||>PcODrs#g?v^&sr9p%4;Pxr_e0P)O6pJKZrD<)9!>W?aNm|vp%`1YD@*nSOx zjj3yelu?2b#yhR2NzaAHneT-dR6M?jG90|3MRa^w=ehS3B21Y54AvfA3RwD^cTeks z06b3-38d*Pjjfu)TU6Pi@>?OO67D&jr?VTF2JE72bhKe|Y%TvMPNX?>-ja z=EHl~qX~|m!BP~w(H$3+g7LfGv8UuB9;pnydFBLKs?hf311{SA{IbOAZ3yzVOHQ#R zSm{ok=}7TXR4MLT67x(e<2@m4ka^p-3+@|f!rGnK7vjt&d&`C5NrL}ry-^Hd`u4t2 zSK3eQ8V|#*Mz7e)w2Xh#bw*HFPxm`qx^4&4%Hddd$Hh>P&~v8>rfAkOjB+kk)Bo~O zUJ0n#240WtnJZl(eg;72@m$^ih=!TCW0koH`4K?#x#xTksS0UsGR;DA=3#@dWGroB z`#!2u_;}yo%UrD&4`mLCtTitBGCuV~T_^=56@UD~24C$6SqbqSQy0#iSvdFV zTAui{vkFLUVnOl++*7anyVKkH0>Jj)?+++8^bjIgFF7m&>dHkv9!A~EWWaR{{h_az zrm~sf!3Xk*FyVI2xor2(6?O@CEyc$r_pT%XARTYYDdyy2Yn8O3t9y-iMpg6OB5C=E@A%U0VJ(mWQn_|5X?@)y_ zPW4V+Mb&Z+JskkLq9kx4R7GCgH+dZaG#o8m7OUVUyvLjIOEeG|8kro>d_c_kR>R!Y zepCLRa@nvo;n`*N%p>}Cu`Zx}l$`a!A^1=TfofP8-g|FCuLH{9r!GWTOQ9=0sH~wGm!w+&v z-&oTDoS6I=oX~A@;QP9JFp>V?rfJWrYuIk&baCgD&dJN?(Q$Wc@6Z`Ivz%35*Tj61R}0`7v1kY5;Q|0>*7>Ao}223QW)laxmMcwbEt*Qr;;iEZZ|5%1 z#BN^jhk{=(I^fYsNl7y^GBS*L`S|#Sflpf-=jlsTD+aAr#z-Q?WhIQPG`&NUGLrtc zp7y0xEUX(#Jz5!i))=Im$(kZL#c=@uJs)w%nl1{+ng5qT+RHcgxv`PWwqQXS? z=l~rvMa5sxkN3Zgl|9B(rU`jNN*RKtz=t(HP8Vd~!Glrm*Yu`KAxBqdr{6A*S9doL z57*cCuk0Z2Pd}m1n!bJp*+z#sz}DR7AT=(lb;swY!FPU+wW`yEj)gzlmH23ET@(C& zr`_^krMtIUmGwmDwtBr3C>d#$L=jt{bzXv{l{4Fn%+2k+k7v!xZY`C`xaZYUun)}( zDWACJl1YueJwH_b3*+lS_92`|(0!U`2JPIOz)35m>FCwBxOoFWO<}iq2Nsr!$`nuO z+0uB68{3ob(rvW?N137TG}C{njE!wZCw7Q#wg2Aq1f&p9;;!wD}>7g&0j*rrbcE~Rvu4R z6!yPq2oa6lhUlpnT>9aH+R?QXc3WNVbRgy;V8&x zSNG2DPVHX1;Ys_Rw=RX2-Ha71`ZaBy#AfbpU)H`n3GI1fo_!XbprJZXuf;K^sk%3( zmMk?RUYpMBn5Qz?76po#zm1N`Nr%_faV#37;W$1P!;Gkb;|aM^(Co;fkSBX&gYG-9 znbM7V%+%{q#_i6|?Ck8yQRdAgnzId27R}*OYZov7#>fcCo%$$tGnd*p_w)?#aPhMX zH8q#F=hl|~PwT4!3q zHd0o>`(%7^yn!RsCBFwZ7I>&>`2?zp%S#&@8w(3dsadHQ#?RxwLtd!FR>(Hww{cCg zWwazTA}2Rp?@=SB=$Wgm?M{zRtN`|(XRpk_p& zA3JJZM>fd*yABZV?WM{yG1=Y0#=^$N#=_d!HObAR>=kowxO#AP|Lq2HJUrk|k2olb zAv!7blXc>V-SyTcwPlh;bLP-Iq|;}(pV2DNlNn5|bGwO|9G)DRn3|A@Mty8|((`#9 zpg~%a1){dawog7QKdIY^aS#O;YLa&No6g=a5$W&)v+mrumXZz&CE$T=Yn^u1Um8u_ zdS3hzkW*hD?N1_7zuV2~<91fT=6=cjp(11DVfHEMQFXQf0;QxZq<}g$a?U1VdUgux zW)e>qHfKZ&8)RVDp^xx|7Sj+kMwu&iwH>h6b9osD=lALTlNIsN>L2y_W_vh^3Tu?F z8ud}i*BW0ApL5ox87+F@>Mc#)Xo5r2(&}jJRlgc7R_z0{r{?Sj$Xj^ug-r zNo(-ue>xJB0ub?$9P00(qb#u4!C5ZKH}`mBZl-6lWh#qUT)O1*3hKAS`^8nyy`X_x zFa+Zv*bYQPfvidXBYwd50pAer6|;JwA>?@JD;4#S=D2a$rC*2)0GrdgOX$o8pUbmct}ENu@rA zh;?~cVYTw7X*DIr@P`B_yFMc~ytK72`olN@yAUts{F1)~NC~%ndcJ*da<+GXO%Ru; z_RBz9KRE$s`w%oSdv+%q`*8q`kDl$@3{xF4ZbzVfTq29;H1jjAnp<343?rM+KXPm9 zYd>3i+;&8{sDzoiD~cTq!S(g^UwNrtN(REAy8e-~v$f%+pWyR@MK`VM%F4-y#>Ioe z;Fs3blhW|o_}sUQ@%jGcPtTIb(b?S*W=5i;y8r3z)y*|DCu$5#V7%%q#x2Z14`VJC zr%_YN!Dou}TI+P1nIE4W{K%?n<9S*r9zR?AOjxt=@g_eQg<#LVetEF`%wCLJX_*NL z>FEiXNq@3FIpLr3$1nmoEre9KBZBZZd@@Yj^w{{UBwa0?pBieqpZ?SN)tOrlM=LYe z&vu5DM|O60K5p&~fx<%CLFo{9GWRB)B@LWI%S#6;f~x>+zULsCg3z+^$_jv$osC0r z3G>L*C=+u@xqUg~Xf(Q;d#kzE`gT@b2;e_w+J3qMC@t=*{nk~+t4eJn?61EKMA@Gj zgAW=fFE%GqJI7@VS1z4SF7lqx0_QfX>T<7D5dQ!}K%Q==2fYo^h%cu0HVv$?JMq zx+}X&+j?tQ{}hhQoefV5UaTAvH&wfpFFU=;8}?|s2HKlj`@F2o^>juLmhPN=ibr^n zd)@=wZ_rVq!sW-lm6QS;E`frA!mlRYx7c>F%yxDpW=5u_#wJF8^K!gjU+$4PI(^>Z z;;vIFqEaFfu%`y;3JWbo*YL;6Y^ydqH(%~>QK6CH@zLSX@Lnbl(%mmN0iC)84po!z zoKquA^o(ET%P^PI(_Z1>LV~l=gpaKOrBxM`Ul4Q!yx^sa@HBZEJ57xK7cMa|u@hor zF|aYaT?sy&nO-edp*G?1d%Q{S+uE5zJ&pvg6*cDQhti|GIQ41ou04MB!SByKYjb{m`I^7U>%In8{XLp! zs;!Bg2ZAcRIUmBcww25^TUR@{uJM`-HN+Ptzp${t(#XWZ-1Km3=U^Kf11hA|Q0dq= zI6A8*M?B>2_h($iG0X1{^x#W9E@6-fyK<_j>Bj520Ifl3{Msz9>eSNFgE{qj2Hs** z@?#RxpbBCC?PmH)&B#K*z|f*>)5WzFib813fQad%B*kcw0k}*aY_&z6!#2s?#Zs%g zkw4`RKKMGCZ+3v2@^f~YTM%yMgXSO8Ql)|9EF41g9XjJV{lmVG~yHC5N=JLrV4H-*jZ^RN%gEBSxe)#77O*35LIYcfxf zasE)>GS4fbrlJj*OEy$jB^oz#_t}HzYN-G1>iYZMy{=d7lhns+VPf^SsGV{BQ`4ZbYaQx3Z1~gcwbE=v3Tx~OXR@pe2t=WsJ2ovj1Hz5wpP*VCF zDK9AcsEq0J6Z(HG&+w1Gu}K3Cv+;tCV*Pq3h7nNi?pXFKZk+n0jPk|Z?kWk5bMw4C+dAK%ob&)2;K6R#Inn9Ey`6)Doju>9jLd+5fCOZA zYWC{<_nT6pG$NZ5BKW<5ui6D)`1Vy;Nv)?)+C&c>usabV}M~58`*t(PG3%0+< z<^g$(f-s4pOG3Ju((?i;24uzUhlM4BU?i#c7w%&+ID}jdxJ($OBT>+)jLOJWRAW=b z6*N@E6h3VqvDq;p>DVAlY-mzc+*EW-3Sly|orD=-z_;;k?V2_~m(dPp!cWzi>6y8? zxtX&xLQG6d3JT1f=`A%lDGM}56w2zJhp=0hUI)safw$JW_m4h06hT$~?>_8=xD}s~ z$e`VMw=(ZG#%jxJnlvP10|Q2s*ZuV*h*KJ+ULALTKWY9xCaa;op#^l^{^uAG8(LqH z+uYL{5%UX~lG`sBYepm_XATZk$G;MRFfdOZ&BNOML18Uk8KCFpXPf7dgil+@A4wIX zS7JP8i>;lV-mrkM4|6Y<-FyC>QX_j|zp8(~UAGR4j|j9=F_h($+S@`?c?0+Anb&$> z_teo&2+0KOEyDJ4c>wDzj~MZkJm|{QHb`iGTF_$RVDjNi5+k|{w(rvmi$b9J`Ps#f z;B|8uarC~@GkpBL;7AmU;Jky=A@?c+%IF)u$O0O+grtQAO~8gj=jQ55_4C8RXz%=y zioLg*7kV)pUt4o~V`FPQn*b+gQ*-;9310N-N9RT5vK;|M+3e=%V=aIwaA&ME1IIh~Wg_EaiL{reix5G{ePAw#raw<#PVRAzT8|jqkhTz(Ch-?_;B9J2F%F=;wSz_uOXhcGU zM41x3)hj{!_n(?!@VkGoWT+hxnt>>0QKV-Lz(FI9zDJDM{dJ} zMltKUZ|&Jh1;7Z;X{YwmuC~Bpy zs^lbTE$f7c6}ZIX?ppta`Tp~8Q+bHaGMR_{$|z)-!|&hD{z2dZ9SzLk=jJgeAjZR# z){Tt9i8roWsMPkWXyCk5+WapTk;r;7|aeaBfh!*W6n|uVU{@ZkVxIwQCblNzp53BsNQ`Jt&!e1VlQA39P zwEq3WCCM7N?h8>EC)HciBNKAI5AGMBs>;u&7vQE~p@3y$s5tj{c_Zx?koXiV<4}7L zTp9`zAKBOkZ{hbI(NQHJpXwfY$OzWxIv7ctKx^UhqL@F3oBd~rFM`kMA%RsMWx4*F z1_O_lTGR)rTT+Y`_MV8|=SN~&x}m^&U6<=cXk~bP>VK>}F}}r-tuutkKq*>UppB|v zWQ-LI3f9YFbe7LXrTcmLw`h{UfZ$9d%kz~V5P4=B9U>%tCB%w3O>$3|;J_!ZR>5Y- zG$M}Nc-1+fA@CNH6#9K`EbO8*e>W+>#=+NAYj0&?4(+zSxcFe{ zy3A&V!96|u^&gHP(#s-$V571wvKl3{w_t}+-K$sIMqOQ}5nMFxsIBEx7T@o?>f~A+ z5p2SPL3Mzsq?5I|_u-zDkYjWDV3?vZyFlzOsYktFEuMk=K)iNwApT&=7BASpXby} z!*bCr94aZfl9uQoo_`ChNb*869a_Xa122TH&4 zlbYuH>u7f7T!MNE58{MCD>Prf*EN^c@=}eSw$^YleE>CAg)XL-eVlZwVy}#1Y+sNkwbIm`R2w2oiE%1#hMFVqdDR3&oER~)#9*s?Sv+THU3s)+$-JGyLdSKyTcPk z4XG~v4|!y0Cj991Z9v~ApO&mfJ1FT}Kouf^=d)yfgJLx4uRR)1ZD0z(kqPwjOPmd3|yYMzUy*E zL}3kKU=pfQs&+Zb}VuE)`$-DwJ+##WP$}%2LTC$6Bmp_5G ztLMD+TM^_=S4a`cW0MmT6H18g?D^v|Uq^aaF7%fN3ygNKaCQ#=4tN@ndxn)2s{3g4 zFyy#B4XnPb@)I=_U(|5oX=Zwh_d=}!vQ*6mvSgO4ECX$`mSaX3EzK-`Z--a3Dxy2k4J?QSY#d*x1y_v+TzDjr=S09dcBuVeQYqNxyCC-0udPI#vL5~8&hLd+X zzGpEd#&OinVvFfl+~pJCfeiCRxaA1w_Aqb{DM=!P75GRP+!}teS6_cidNL-q+?*cP zs(xtCb*7i(;+p@|*6vXUH|y9U$G6iz3Rjo5Uw-g5wEsyk{CoJDG?}%|g7DAtQ2q!> z%|%DlIMka`9B0~N53hfVbaJ$lb8g8ykt`)0CDhGAr`EBZGZO!q4~b8}X69mp@=M^9 zL(K6s8t$e#`}{~Nz#o3@juO=L)u;AyWyAtxF}_|z`@~<4z(t36&&*X~@2)a7JPV~`@m$PK4=YS~*vF`sUALhEqNWIVf zMj;^?kBK0)eq3fDz6uc@FyGlVr5MlyAaBjgilqp6Z%B9~QSR8mw?x*I9RK{rfaV-I z&{+PTd?jsxc{Bpod$W@szuR84yb_t18%-wmVpGPNH&kD4LM@WKe2yUOLjKO^OY*N` z5p$YPb!*Fd4VUUxfrQ~7f^2YzA36<`4iQ%UaqxI`TUrLQTuki{TQM)pfP}}9W47iq zy`bl)UTx#gqM)9mJa|mW^;>cT#A=brhW<2TW?F0N2`raT z1eZBXQ}2v#Y~H{@n_#&giRov5zMxw66487nchZf)J0nX|PpRP!ssb8pXq?<(iJXqNb z=s876L_vu8a^k3KdN>cy`w*CqgH~KhFAj%xc=!c+Zfpr4@G3=Xxo=i57zF!cf`=X} zvZOpWH@7sWqOPNcl9i7Ufny~77hU~+pw@7WfiR1544QM3K#u$HDo;geT@%feCg9LW z8+Qz`YW^iBNK@BvW;-?Yv}{7&k0vr)nbkhqBPuu`CM2p6(`@n=p8H;UrQx$6SwwZ} ze@ujUL@y~Z*?+kjpWWqZ0mNu_Z_sOTwluV}9TStlQv!$(rjTfC+jjJZj0atE~ zJUr@HW?z@nPKt-8MkZtoj_vT&iToe00 zOFafvm7OoX!QwJv3ciSsvuHQsh|vYsNyppS-XX*yCOXY#dgXf=)g9)n2%wYcIszfReK$nalJ zzZ6(V75DO#G&wOD0~0GwZ+>2+q5i|+bu2~M(2?+gSbH7lxY;v!7FaVAr-t{P=Yp>l z2s>0@-kTEecjxp1^lwxmF8xSSe|}w@vc6v(YSm(qu7Hhlad&>=0pG+0S@qFzy=Cz# zN`HyHvfb9z%^aIFJ3h!z)j;yzx7I&0pN&Uo`#{F?NpjIHnAnLs4^Sgpd`x)6;B??( zfBY{uLc}o*=J($jqb}tBd?J(`SQ^*# zG zJ}L5Vgp5LUL3w0zE}4`o?sA)EDG7 ze^w-U={8ranfsRwQgQK-@l?9h8zt08z|BfFV0%hgZ)#pY>=6JX|?rA8} zo8P{0H$cmMR!(l@YIN=2cJ-Db%3&*e@vtBV(NkC=O!^*iK3x`eI=_+H{0&Vt&$_QpVF|J zoFuX(r26XXR5~rxSfO+IP>cJUr{Jj}_Vl#cjswasYFMup&!=FC9(!XQIaNIg-?E^i zUcWh(0IkG&Gl2yls^vzhrv*<#N(gCB6d#$A$M;g}FU~f4HV!{A(RPxMG?gA>orxM; zG%Hh2uT1lmIl4F^t@QhHjF!{Nk>&~5WN_Mvb=BjrfqxjRMruKOG=9EW6`Ibw%Wr$T zi<4oG%P<~RW!|0!{90MH>NBRc~=9Zb68DOWibvv7D}Z7GBDw+#*)N{LCrKhL6uiv}NE@rpcb>h%67~FN+Kd zm@_PaB{sw>VYEY_p-W^1>1Hogf!R*V&n0!N+>dFj;`zB=jWDUPL5W6fPs(S?$&#ak zAW~+M@uRtHyiBX{fZG!Rew$hE$=balEJ<{S1ZUYYa{fy^LseakM8lP~>Xvt#a{e6> z$*T;TeJ>Nn_{^*$&d90Wf~q19BT{8;kBFbhsG?DT)$SLX&%`M%t3DT z6oV*`K+Wm8s?CGjD0F~S$Duk;2k^A801X`|FQ)Fcgv5{8;hXl`Xl7bKk3$De2kY*z zZ_2>iPo4xxih{<`tdz3ekc>|6Z}|PkQHHKAiSx7*ZNPwDb-4{P>fUTa{M|F~nyLmlev~k#V93~=c)Ou#pwfjKpriq!)Ula43UV=~o zaRChTnmnSR)5pYzt%u&YNFXW|F|DEZvQL-rdvgvO4dd`_+D>8P z7K zHKiRp{4|}Ybd)hII9bGJUB~nLvIqyaK-0tV?%4DGRAO!#?NB7wJ`4eZyM+!1bmeiV ziwh!CHV7lbU}14V70c%Y6(F_=$3jR$h)MSHqUA-Sr*e=VWMINdq?DYT4Hh0=8vy`M z(`tBy^ca5HCDFf*;R51kV{=exGoCD5SoH^^3S@=wrLQftd`_QUEEPydBF{DGP0Zu&CiUTn|gWGyac)f8yj zs(m{aUiwzqVZ`Jupv* zC92VvCyn;mvvI|tw$<*nXaK8urm_~O#<5kZ1+96QbA;xq2W5hlzx86B)5iRbmV;lI zfnjw@H2rwDjt;f6MQ?qt9W+0-9mrI&Od^-u8O9(SfAUAiuVtYD_nDBefT}syqSJaI z#?ruBY)E2rMGNM*Zr5KhlcZ8hJ449jVMkFD5*ny(RXwZ_h3eL@xYuK7$E1LS9BMC# z&*pZ86r~uj_qVmMw49BT<;qW3!$EU>F*mH@2yjQtW}oNm|ET`dn9k#s8o0mL!CJv{n_9R zm0?E$Qq?(_H2#xx4!x_!$%);UnZ(eU9KZZKh9J*tPaRQch<<<@jkK=)k`#{^|M=1@ zheD!51OEAS|E|`mlmD%n8+Z-f3itBT3ZIn!M2ILNSTPxTJ`()%RxA<3YB27 zq258Ue|kquNG-zxK&Z?6q~;8*IZFK9{DYp7rvCO)X(h7c!mKcEN+I>fn`lXpc|p*3%ShBaG*TgNz08#O z)HG>>DJ^B$z^L%lSPU0_*<$}UA2ZiaZ9L1+r@X0ghv}RKH)Xke&5pWag2DEL7~J{c zaJsuVc(NwrCF_5QOVf)rqG_!FKi}eob#20yn5n8`*;Jj=sH7+wd2dlYt%-hKUcG5s z=p8=0<{@-3-{}%fJyH9Cs~FJigLLwT!@6Z0}i_w5@^!{^D7flgus zk!_Cf#(5;KL7m2rHVA*yHmZBqe}<2*>RRLmT^nyV=Neu%3fm}Q)oHEN??o49i8qrk zM*)>zPQDy_YBSVqZ+tho41VUct}rR%2ez*2tbR`7EDD?Kh>l?0-ljkI6t;&-4}t`) zS)B#5cU0!$yf2z3%Q{PU;&`s$(i4-zl7jr84mI3wG}63A6!nVq1M(=L^~&pEhP%EA zvD_tk+dL^WC)_VnX$sh5p?cHtHyDG0jaA|6sc^(-dNz7_FO1IHL0V zv(2=0PeZUVN_k*-ut!Qc{JX{p3rUt>$xfR3%Er>tPs2p46Q_SW)s*DV7VfQ=`nP@I z3U$I$x#mp$eU`kDBxBV<`JXJ{lH%fHs}kAi!*n$vWk&_R-=(raZUD@=I(D_)uH(?W zd0r?vz7jrMM_P(Z0B)8rW(fmJq><_4$kD{BJQ9O1Gjn;#@2(o$qp?8 zpXUcoT9TycWGLCAK@acJraxB}yp1#k(!{h)$w_(Xx4*G_8s_3MYsn<@bYqvw($|>^N3(zAud4b|{VlX5=JcidE&LZz zGd2PRo){k+o0#}^7o;g$9)YP=6%2efqrBv`E1pnJ6h|V9aH4e6KfV9e0ebTzL1qX zqxv>VJ8`dxCdtVgxdX5KkFS;AkO$Ah^TMH{+2tWYGgU%H=d3!*E_8NM2Gr0ZD+2C7SD4HM~QX~)gMny$=dn%a~ z%UGl%heh^%KRvzaB7eb9Q@7RRnX0h+@bvKVQ!EE-&*zYOvY+jOtsFaa#8?W8fg6gy z5St($_l7RnX>p&D5}iG1{J-gUv!j(;MHD?K&{<|u+(EBa(=N$WIX6C;`gm>v$MvP= z0=KZWPtUkkbgME;b>txsv`d|cUo&G6^D88M=TybP3TRdzS_3gP+FEU1VZjw|aqPS^1;ayM#gbqwrialNE!Bpn@0HuSlB9 zU9~H#TI)iV=SfI1cKeiD)5?(I#r3C{=DI@j4qDWMswBI(Gx5cC1osfH~b@d5#*N}F|vJ=lM>Ow zYUGF2nq}RA%M#obx+8+Id%p&Nm|*y3xOd@#`9z>sz?Z ziYv>@|Fs#zY>aHpW%O+{ne@W|+(;sc7o7E)Z^CYo)YTZ!7=!bU7oIGzP_4D`$Ow~{4K40VDWbFJ_*R3J(A!0_iek9ukkq;R(I?9e0@Kx=9HWm z%{X2KsGy<%UAS@t5?g$aL~*TZ{2VVYLJu=hV=RFNYBe_Tytm>pKmjna15{%$2bz2; z9)l*QSo$mNK@((ER@UCt%mc!sW?w`YOdp(ebrq*Ec6`s<)CaS<~pIS%EpK-5 z`De*ntVh@0IPDMN8WPSL?v~02`&fypOYHn+pmeUwBMVE?`cX+>el0BP(-B^KTB!bl zxV4Db&f>nR&Z@rjt_qNz?OW`tX~zWvde%xVspqC;%;SEuHCBg&m}#))D0nBQCq@-h zO^FU~xw)sInGVaeENL+_^)9KYm=^FH#c$XVb1N33VNwZwuGVGM%(vYCaKF}5%#7g! zB#Y6fO4iQZEL=*X`6iTFwA`x^gE&j^qor2o_{j;n>kC}Gt%H(9Yq-61hE>KJQcL zH2zA`iZ)>%h5|~(p)p5GTc9)g+?-H7WQLI{LYr*=bCIK~ESG&qJn&CXCEa!Z@csRT+ZwQmxQw<<{z^6J6IC}p#>ayx*A)p`g=#pfE?6p}2D z>Rq`^8CSf><(kwunfbwODpQ)79vV8y2VAy@CPVhle z^)U$oZ5S2c+;~SiuXXeMJJGWAzw1J`^{Gaoo-xB%>9Ga+VN)74SG0&msg+O^A_G$v;ssFmsn_?_epgN&D|7q>ftmG6^X#1+4itiXLDy4*h= z^Rd9+UD%%xvxHlT*z*a3;7~|3V5^#`C{R3>#xKd2IPfBl_f-r2d=fBHRQ3r%a9E!6 z`${YQ#!w~I`J7H{aKxK0c~F{FbS7|%rLo1y);I9~x_|RjQZQd5Ba74a;m!4hCyaIB z(&O(gaJ!md;dyUnhp622jc3gq$*rxKigi;n9f5=b7cWkIruXfqDkUBSEN1Nw(SLGW zpoLe|1ZF}Hm-(o~-oUwc>-J~3eLXnz2>(FQKuqVp9;ik^2HZtoDZ|UkvLV9eZj#O7uuo8Zo1E$q&;sRFn6HYajt zJBP~54>Hu2XIa_2K0EgZ5^|Q`tP3hTqhjH$J1O3V#sSccsr`L4q^$-1=EuO!Rwhbb zxx+1``)Y0)Hq1k5;aDmVZ=m1)dyXB0<-lYIOpaS#YGirnF+^ih7!<~kS3yZi2r?1W z!{TIttWe4py?potS912jfBywly%rJDtPLM!z6?I-N@@}xg4`B-gvA9$V(=ypzx;wz zl2E{~3@qGw6zBVm5UIFfsvcy~R%9_wpfB6ajwv`8nfxsfCAgboG4+Bpy-xm2t5Ig0f|PPdBKT>I z4QRuYQ=scBadQQ^h1bu4WC}hoy56J|jQpscl?o#(a#SB6C;=7nxX3=uRk^hqGt zL`>k9aCVSntVFgBuKVEG(RJXU%MDP5|I|gE-@HKFj`Ao846n@~xe3LpvQm zdEbKkoBubS-SAPy=bh*bDJWlW8wk|7#`>G)r&8NASc8t_s(T%bG>OTEK;77WOBCXK zKxl9{(R%|=2DOtAf2Eu&hiS%>Z{q;&QuH`6C6osNJvUmr!6{Ns6Vmhz;G3{xqo>C( z1F#{)9+vHI*rEvqo0BfYp`#8k=QFy-M$S^#`)#P1i?Qz+(Gqtaw}>B{xlV?32KwOZ zY7h)mUs@eZ-5&ag+rEd71qBn;krkEK3K%V_{QC|I=BT$4MmV@a_2o$Egd7|dofi+| zK$^Wa z^5%S1QORP(DS2jth%lMeci`(d_g7B-kX^pti9P`a5r&6yBpp}brx66rcN$5wIU~4OcDjYkYpb* zb-m$#c{n!w*-xp$h#hqW!5-x7)hS}DIx6-$zHNDz3jf4t?gJ@0{>xOHg76wFPmOtX zFf2ms?XwUaJ*ccN3YB;UJ0e5j9}2S0s9`x@69U*g>`~eIHjib#zt}l?TIfNQ%D5jLdT10kq zGV%8=J>If%2FYpBIf-FLF2ws&P4^LsS}He<=i?{xn?Tc+Hjk}$F5e=y=nA~7OS zXOV@#SohugI(n*o=jK}DSwE}+GQx6oeX(r?r;`UgYXtJBmhbXqzdDx!uB;%`VydCx z&-?4+&&K`H?ri}-CCI=YDBrG+xoar)y=YAWJ>P-FNupli(miBN7H)fczo!#FqYrQ? z%Hm^8GVmPpGotF+${K2#F~x1&&qZEVM81l#!a6E&aI^duHJ z*R3UP#M4r{$zEqG{by*o8KznXYdZ&sXB8E5(e(I33KIzX|DM7U#Ih;`D2{ZnvIFk^ zzJ_xBi{uEF_+m}a+@I6m4OB&7fpNVLe4PB(!K`+}C<%QN=H@LZrKceIC*nCwe-hh0 zyV~d(CII8T_Oq5et=V$9dqjYSiH}o~C?g?I%2gz>Tj)Do_iSwG;^ufSCcx!H6A79e zT@uH+D>x*6ol%hyG(UR^`*sL&VB&2Av&AqYPpRs5k?NU?vdVFDgaaXVzK0E5P0h*0 z#<&8ST2zot%iQ-cP0P41Pl$1T{NlYa*b8WFl^`qp24OQ%WGKPyZV?~IEjlzg+p3Y*AlO3;FfA>0dt|J)AEsEhE5Cl zgjA#P`QdVD%kx`o&;h<5hovvI2E_mVxJpOEz4#0S3+YE_O!iT91>Onc!+vW?s;?f! z953@JUhnMXpb={_m4}R+b$DCiT;pW=etY8~py6#SqFjv3oV*Xb9Ht8rF`dqU zOz#Xlr#324>j|oX;Sd?m+4>;dvReETlP0yxM?M|(%46`a;sjc*Fk62{;W{gH z8~D6^|ITU2Peg!6fD`1diA-c!r5RT#J3dx!`1Bz>(QbG-L;*rD79JP?*W@B4{DLbg zB3@RKPz$oi0_uI20QujDWJoBKd^dbCGSS{4V(3}r%1LQJd;l|&5f$ioSY#CT<=}v@ zoVKKGy3l|hXci0@rh@`ih({i>HMS?}UNDNt;{E$$(n#SE@{2Ae8Y`~YQkvMi4x&-ZPps#t`?5VSzn@_OIf3$z*q_8|PZbA@X zF6+2|Dc3klS$dkf<2%q7?m^=ymWOle&EZB236%;mCqay?8RBlMi0QqT0%`&Jby+&S zN;i9IK}ltC66kVkZ}YJ@Qwn^!2`CO$1`DwJotlGu0Fmz*Qko|6>)`qloqK;89Qqs< zT6m)uk%56hVLDhCW&wh8aa`apsH-uEE?!$xpV-!+sg!Ud$?Z7GGxHqXXMo||*|Yj2 z8zrRhw5F<>a)36{1wN~!L5`8j^3Fcvz4tHTw7x@;J}D__9O!NgFN(hF@}RopI6Tk{ zLTN*2v+(fX(7-UT{Te^tU$zA;7XwY$N3mcekzO1*hje+60UoQHi<>X6R17PC*osDopg7d&-M~<(`s~=4J>IO0~4KBQa$ZoP(R=_p=oYxy7Pz z_LLG7Q2_{0NqtAipo`636G!N@u~8hA`hvuSv79h!=gX z@0XoRyP-ZVAIuoyV*H8!7KtSocwc(D_Z)Qc^T+v zm}kJ}+ps5XGy*f4f4%_JtLjs-ZG;l-&g`&%-i|5!5FEc@tuUNJnIIg_v~R@L+-{=V zzQEgmOI-$nz)a0W||44#)+pd?lz0B!3|Y7L^s6=gsfGKdw~ zJ~Oau6ZC3(=bvf!+J5gAi~+)OjOTpZDX|}rJL6F+65^(85R{h^hHZ1Yyd`acFywnK zQ$OEl4fFWo*ai45!$*264V;n^9f#MS04zuUUypi){fxs{GI9}-A%bKMNL1l+euvwry>ET!4&eSW z^9t6Kf)XJcWN!&Q6-C^w!Z|eww)iHXk)Lm6cU{#GLhpVlBt0TQ*icDxR9AC`te9@9 zb#Yr6zU%LJ1M0iXg(uqnw~M`sSF9M5AZQkf*J)Hm%f6G*$FIxJ#Ky|b)!G{j5#GDL z!)=!~do$~*>Lw&s<*wMkgT05X?WTA<2nWiR?jaNOuvSa%w)cKI{HTfq#p}qo6fWI7 z6u=YXWm8LT?q0~Z8A$b)5Vnv4$ip%X%`dj6)4ROM4=kl`4LGym zUF*Ae_E(ALFv#KEu`eOUM2x( zwYt9QE`E0p|2&jG=YHu5J){}FKkWWcxqQE{eI^-xG~Rq01o`vs5^=nivVFGh{=|a+ z_%`g)+|E+H{+m=g=*Otx$DHXKO6cWZ;IrJP|Lg4!jLP>LzCZKsuKb;Un%yVE=$l9H z<7~mZh0>=!&$m?1%dGf^$L==~$~lqZ{f+5+r~gm5(1+05lcB_ClJ-yT=T9}af6D#O zv^6~R+Y9+?5vTu6d$+?^LF(%wRBy&<+H9gI`sa(B)85V3hM~g8OYZk!D**G9>d$u< zbH~TI0m|(Q1s*jskYUVFee5|mw6*k`ckheAN20lx?lUiyIyog#b}im3(SM-IzpCv@ z08V|aw~UO8h|9Nj@zWr8n<^!N>Zi*3V>0+hHTGsr1jAD^K%eK&r#A3XDay@9iSFwY zC{+6lEWb@67ux@3lAVbV--XNG75UDQAiFepae#C4sQ?E3uwnNeyxdH@-ZmZ7D&1sk zdKA5RKs*Sj`Tt(|F>?u=25=>AYkzAQe?A>TmI#0VQht!!9}e$?xWaDe0{EX6y}$U* z{ZWlpef`xo{MFE301qGZ{;H&3Dm2v}ektA#U;b;?9-CtDH%irSr3!T)Qx1SJpNL4)*Qo(=t34g+{STlfJUNWjoo6LibB?>2d# zYQAplLUv!f4Uu;?GkbC8i2^>5hJS!2y*W>%0u84oJs(Q~3V{1JpH7dPT1SF!wp1bJ zo$3iP`+X*j&!2$T-p_^H=nt$z&GR42(cXzpkD0IH{@EU&zv#D6C}jP;p~R2h-b3`^ z*6?@d&xd;I?)2+6v_CjR@7?rIHJE>WO>cH}Z!|C9@bM+)gUk5K+wyY+Dwts46~OpC zzJ5<+edn|9FW~7f`cpd)E1(Wwxe`DD(;&#fazEJyxMLuXmA5$y-AHCi*); z{8%VL&39sE7|#}d@7@2vKXm7POBp($C?t0YrqWxf<#zDXTpu3cuTMaYc>M4K;cv9hyNa|4 z%Em*wMdVg>`UF8)XltM;d9Vsb8N%_I+U?S_h7w9BH9KKQe7qs5gUg>bCt%f@(x-V^ z=0ma+{%1(!=x|gFt>8s-nIO8$29nI?a2iA60GXP#=(mH4(BvKImRRu0s;MPC=Lhro||M>f~tkrY{7h6Ohi zyuXo+V)k3+_N!h|O8=`q(9FZSYaSe{=gGYo-De+&p z0&Yr(cFR)aZc1|d;F@*D=x{o!GoOTou|$Y}bhaU=Bo;yE4dgB{6e;`bB05r%8%ZHE zLf39R!C~%_pSsTgZPAo(?5qPMbqUgbqq{A(*Nv|e`M|av@ySV-ny;AV9?f0eAcr$A zP`NmQzHlC^6!w5OZ7o$PCqUx80=dElUu{T+Yplf z>qfoe-J=33Nx`bATv?I|VBP6@2N_G_Yi)2i-%)~Q+fP}U(9=`vbALzZhx8epvgC5x zmVi4PhgNzo7|BwmVU99aEjpt^zOg@y<$IGzb7LbT4St0sbJA}x+brX>kOKAjcm%N^ zmLo-B3|br-U^IWx49A<-us#~h@@)iGp6J1kSAAg>zxt-1qtkS5XZQ;%_wNEUq`u^> z@gZ%#ZJIiqI=8UcnI?rK#$qZ{V%D>r;Wow0;eBXgT9Ifu|IiRFokb&B9m0|M>a%kI zkOGYp%9!H6eo-MXlo#%Le)Bqg%ncWkFSJfu`!PN9c8L~L4jk?>@e-bSF4D_qO3`mF z3?h!S9;hCb2G*SJNXq*V@T=T9^i`_gzTms9IT2*c%UsOE%_7}LKZ}6!>SeqxV|FQ4 zx&ImM)U7dZ19Ns2no6G2L*R0zUQ&)ylj%4{oa`Ht1GD*J$k|2tdO zj0He2y$H@$iLFnO_{u!$p70E$Ry&Uxuc>4>+@;y=^AB2847()_P(9B6To7zd*j$l- z|0M-BJ+3%6IFd$4c{WK@lC5aPd~!mCIYeUpg>{iP8dZD|mkW7*ol};>;j89{4PX5t zJkW*F__FuK)c^A5I`LitbWxTKAo5TXM2mTQN%v-OM_?^>L?Tf8z94nmc@v@tj@CS* zZhT+U_;dDY17rg*Vj=EwxL~*PGyKtDBMP~;nwYbgj4V6P2{GVgrk}M>i3cWX<|L3{ z1~Cm;%9*mgOBc2w?N5f_O&+in8))uo)4QI)p!Rz~IrDz0* z{qbK{l-vu8K&L3U-QXZ6X!}_1%%Cb^xbi9Fc1k!5dZam2mkYz@biOzyIXVD zx_Z=k`Jub+kVp9Ly?V&Acxvm1m)VOBb+c6>#Nmj|y`TQS_;82VRkt-t5;?na4Y zPVS7`H*7sV2KPOAb7s?yc=MD>5APh;Zd$UYy_@xrfh6-^#1KsZ*xq!E;XCp%qe5K5_%B)N_|uds7>a z(GuF@HYL`Le9U%Tj{iA=TZ|+gQm4lWjIw%H>$E4#MuK?=T(?|epdITkksooe+(^m|E6 z2Y(xv>y>NRG<$bzRI1CYRb)@&r?Pn{qhb=+2u85BtGXD)qK+%-`K+m}q&(dgyXD9r z*A|3@584xizb@u$|BEv}@eX7}?T>6=_6uw}55g7^ybkEeJ(otdRD^gdk;Q;IdrU_r zUbO z&J3Ak5cK}%9bjwCd&n-|!i9)_`gZOAt@)54#OmXwimR%i>Y(?ZIIqmnKu6pM&>LrZ zglzMS6Zgrx+am7M(eLOV{tH7kMW<-}`Z*ku4MGdE7+Es<2~lT+FfzJW3hP^DD#0=F zovxyy1U~@3f`Wm{yd{vW>?97Zx0aCWt6h!l%hAm!(H5^GXKEo>V>*&=b@30}iEg)f zhBoaTTi)tDEkN3imIQ#JC}~dS|J1@}0l+k~=Sotn-*~~|7GpG|Ud<$s{Mi=TgBR)A zAgq;_FCW2*YJ;8g&|hU|h=17|AbQX#ke*OuxU3igf|Y7wX7rAk#?{m{4yEGRGnyV` zIbBjSTyoDP7Izpj3Hw#&&jI<@$#5_Ut z-VHCRapxg=(W}u4wmvSjXk|;Sey85Ldii)VEmI6SSD|eJI{EIASBtJda)rEtGTFj^2n-S` zoZ_iA=}nj_gX^9np-4b}*;g9SSSNr!{4&Bi!4&#>$GgrDj*DTTgT9jgRGpxr7XJ1d+OApgX%?4lkXb z;ncEb)kdez-$>gRdw;M|c~X@eN@nW-b)e~?0WD^zetu+5ZkND7FQr#U40_VwbJq@_ z2HFlTKx*b#4IwJDQTo%Y6WVw5%3TLxk>Um?UFVOggWJ1ybp{)mIow%_*6si|WOr{%Bp0v>rk})zSI?TEC!VVE@EsHPu@Z7T6{X`U{ zB{o1nT+2l-p5HJ55buVlBIU(Obi# zQ&i4iW$P6@KH(kXmM!;9QHt;B?ZVc|x#Sy~B%<$^0l$eNGRvN#;2S)q2{PFzS)+b( z=w&4TqI0+IO!kC(RfbLb2IpQVa=gX7^DnH?PssM;FLwwfpa@*nlXZ!z72fq{U!-Y& z#K6?hgBPZM{=2UDGRF~MjQC8isGwtof{owYDGz>D8gS>jmUzQXm)&e9`|M>{|2G;# z!eoF5Tpe121yDi~1EzHn6fj!1!jIj#lCRG+Xgooopas?ApIjNn7YR*wwYR&6D!zcw zu{YQDz?ti%tVJ{1p96!_p>tq;P(OHu;;2& z)^FCj+}uI;wK#F^IE1)QI7%@q1U3~Z9}M*5oZr(9IC3Dko;oU0!YM;t1!*R=kc1Ii zTEuluzfVQ;xD$c=PCaD|Kv(`%sW|~T(BNfYJ%awC8~~cN?>#QCk9aQ({**3S4MKZ6 z_Y}4VBKks_3Fi5@IqluOPAGhc;)m7*84O`y|EXsnu);Z9t%;aG3X@W1F)+@@^cO~D%d03v0nq3W_;VzBd4!U~Ryu&j1_i}Tj9+?^7tFdg6NbZuEiRq5JOI@i=fIu^~m#*8%v3I^5$ zXe!MMS6R3Fj(;P}lK1JksHj%~C~>-%9Xmt{Cm-;lEe16K7<)EF24dLBZFXlk&09ND z)MRr4u?>WptRvB6A=27Nf57JA!ApwGnKqBDJ!VXiV~|C4R2{K1sH$&9Z?mD1P4VlX znOTUn2skZr>XivQLi|}f>wpA)3ecC|jFsv(7z{p{$2Mr?_Ay2gF@v{)bZt&UHbeX( zK}i}UCvs}%Pe(hhaMg*4Xeho=35lVL12-ps0Zz3q+eXc$!Vo5do4|!G$LpErkYwUg z^U6hF3*K>;r#^(y{MdD>i z&mFN{xgAGraCY3<{q@M^MUNo?PB_l(jP!pP*5LBdA=`DUB_+~k8WC@j-?)==+*;;Z zy0p7UcHvqxco|cir3-i2XxF{!brH;ie#gH0w(G34?K_z#d&q95JE{9brFV)eyHtr( z7XJQEE#zMUj5?klUJIL{tw z5owz?!%1U!JzxuO9;ft|`3eTWEIL@C8ftE!fh#{110T;8UEcJKq!9Z+8UNK?_w;XU zGh1SI_ku9kfe&Y0u#hdElVtg$WdFP47V#U6V|29Ioar}gAA}*DwD;g+&@kkk(N)}t zw4b{VF=S<%;MzNNj77~lZ4{jgPv%j~8L3ssEJ(bzdAdOY7#otrT1@iqt$;41(XT4D z$=mJmlYs*SxLC(ajaChZr}tmU{NCO6Q1c~Kzcio}J8hXJva}7Kn~3r0R=6MS_6&X7wzX%(N)Fk-6%DI}0tkI;+Z5DpA(7|8|?Z!5laAS*=9?oU~t z+B43;a!DAI}o}v@w1;4|~ldm-fxFk+46;=Z#->*VO!%aa)jl_luwj;Snj{9}Tl z&PqXTRqdE-z7<>y*7b1ub?qq8<5PLVtQ60DreMw{{srhxw*Ucx2&!Ttl(9ZhJphlr zcjS4y)}!Hy-cnz?_zGV||AhC~f0@IGTRdf{cl8A6RjDry!!OsEc5mRM#|hmbl(##e zR2s!xkKz6De%~Rs7#r<3?$ic?r+EENhLxo~eb^co?5B6Nnpr;SB9A7{bOIl3x(unFSRbD_F#A#+t8U$6EBG*ECRDX#BQVvqxuBbV|Aj zAXAfMJZz`!bqAk5i6R)pnQaZ<99oMV@mfI$>SXH@>sRJr>3Ui z?Jru+kZ-$Hn@AT3;#m84`4(OiUW#ftu+6+?baiCWxRY1^?f6rxS~k?FU{O_}mP<&V z^YVU+>>kM?z=%z|R0{(mh+*2~?Pos@bqM7D5X zwG4R)-MLFGX6o*vIW0NBC}B{9oAhZyg>u~7M%asA0oV`Rj(iRNpcZDxp;62S61F2g@S}xu5Hg_O(r?;71h{6>%`i!48M}yw)BQp0XxbsQ5au?{GO6i z8;qWoJbH`R%vl0R8=qEtr~kT1)73&ereVV8XbGhh9_AuStXpUG{?oC{aF0KwGx!JI z-%f6zq%sirF;>v4Mt!r}Z?MmK{0k}-@b1Wt$MNP~!+{v=R6}%Cd%8_1QU|hio>^kV z#az;zz*TL1qIKq(;oi0@QDk4V-ndoouw3GG&f5VkM`bOqkySUzgy`IC@zJ9%s6T8o zpK#Rd_;fPAWTh8houpH)`9K-~4caQoN&NwFq-I^Re8~Za>JeeLGw%IiHl1B@Pno6J zg3x33SXs!la@yIZze>N!e6kK}{Y#nsDAdlYqneDVN6%}XvE$C%A0yGoO}^4gfB6)y zs0eSnqdQIgoPS;MJzDOhsW89*O$Q{E`<;^t)m7UQ#m&QhkC))|)lAB$1GHJ|qX0rCwwrYAG6DaMYBRgG%(!t~ z5pXyfp!=I+>s3|}nsAYhh?^1oR?z*UyRG)M=|v0A4!qJBx*EaAA~3aZ@Pz-yg1%o! zT75Abj~TYc!qyW7#n~D?^mQSHZ%?XKTO-A})lX;SclicQf5IgLLqyK9XOgCcHx~E5 zbY0m>mDDQx9#57USR0HcA4mfN2F!xZRCDiW-Lhrpm5}phazFI-n!>A%{%>Es>HP7c zPgenl7SWOwV+jSQIqVWZK+=DV7D4yo^h-MWOC%~^)vNa=iL(zabB?A8S6+@1j-du7 zyv;AS9T{uLyp01j+^&)uns5qcLqxU(8hi1Zkyo$lg%?Ug+ZCOSBfm5gkX5 zP?N`I>rbT-pOU324z4KkdW~I&K*{V&Ey*5B*tf2b85vL2uN3293q*qgruFD8%btwY z(JWMF%#OJfF{K&zD*OGd$rTOAD8ikws}+@qZ3`9LG@S0RWqa&GW*J z{t$1J8pKki=P2wi(>%Z;sDiqcv)u+3z`A2!c**-j{^|`)_ws1K@oYR?^q8J& z1g+9FCta~l%tm?*N%WNd*yisk!n2bk6f4F|bPp>JTnCQ*OXaz+tyd9((U99R(4q1< zT_>%onhPf$Qpa@V#X6Xlb8g68JBi6X0k|n()~$;B7HS!b0-NX&YQkoSz`Ho?n_O!@ zt&P7?9e0?j`Kz)#mm9BUt(6wX$4gr`(JY{&J0okxA0cGu8Y~GiH3sj&6M+pJgo>ce{WEo0Nq$%ea($B`b=`<}cq> znnj!n?&f6|-Wu|6{=9a5o-vq0A*R+P^EYelPv)(vk(7=sx{A|p#k0o-U|ENgN1C4{ zCSyN0rmWwl2(-iya14zkev6hZEreQ=tmzNJgeFDrYDbY(fV6tz$)sXSXbToOGtSeJ z)t>2nb6^tsWwn7m))uCPWR{x|#<6iH>rCjK3eAOc&Ds@vbkH=1JPk-fP4&dO^|^9u zTFq?xDy!&7OfELeq0MIN@l;7=fsWdYy_pWH&S~_2NZc|9Nb_Yya)qi@ zB*Rzm^plolt8dJ=awX$VVO&bmE`ZRV9PHp(Bfs3k~-q^<%t{!rmG6Q;Z6-Tq$ zwf$EbN7{tI@k2AAOS3dznU~4wvSwP$HxRS0pj^IoZ;i@`BI{1fREElqCY@h~x>3U| zpruAD60=*xQ3{(nW(`_XX;N{UAI=YI)X*k1=apieWQ-CnPW!C+7E3Fyhx;SY>w`q6j~**JIZ<^n328+uF%ieUaxqhw^IhWB2FdK^=byFkeBt4CV0O}plb ziJJP={Fr`EEW|y50FT$$=EMeyuVVbsRnc7>gvltx+4z&NK;JiH?`uy0@{)7Wc0~o> zj#_w}w(I7w3bq16HB;E?#1SbO$KfoVhAM9?U9|7YZ`%tZ7~GA%noT?Oh63&k+7a9C z-I*NUm%X?x4Wncw;Ewe?5O!Th;*PY!fZnG2&E6wyk|7%OMggz;-Bt<6pf1>Hyj}ZHDIMtlclW?m)fIsK}_~|Wk3RxEy>i-x%0XLEWx-?WWN2W=HUvu zk^Pn)&o@Qmm|1)YC^>@s)n@m9Z7oC3e^?wgpVS!yhe~9~t$C-yR!=;lT;cO z!EU(2-w{t5;>)+}pR+Ios8o^u7<=%|uvTi)hT@-ETt2fya_fyA5;9djR1%vj`N5SL zBgefh*LBWV)Cg)msre*|yulJ|qzuwE%iyO|8E`01=KT7@a1qN>iwRc-<)e~R+hpBN zjkz7kG9IG3T|7bS>_n?W?Q=5# zt007Szq0aE}m1z(FwANRqpI+(3VqJ z(W=az)$$eTrHmIrB3YWvr*K)YLH{;zMjhpol+_s=W!d34#j)KY_cs_>MeVhEm)rSW zgot>0m;Te4huXbUJ#@33><_q@_&`>gVq?vjHy>JaLl2+RX84&hPWsn@WYk2_tLIMW zwIymyDn`xL^-?tLSY~L}1J6VhT%2xZ!`$|f583VplfrNMv3hxZ1w0=6>V!iix+QKh z8@A>a)pi@zAN@m3ll*e|@XY%UycsoSuU#j&-4=)ci&DX&`|hUePJx%}g1# zyzag^)jgd*{)X2Kw8ojn-KQ4|?Q~qvQXSQU`qkB{38G4^0mIRZ2@NBtrhK;(b|y&s zurpyc>qe}`?%8?4mf#tXM3zr%6A7%BqY-x4)7OCd*c|CyYEa-P2!v+x&y6_s*28o~ z6CO=tj>ei&@x8sPQzL^zq+~j=b@Ku0@zkVpE|vm1^;K%e<*}EAS14&dv|F6raQP;g zRWYL|4WsLvsc3JXwRu*>90Aij19zMz2q;678bjmm+}oYGnS@hB$Lxd#BvvGml9bP+ z_QZsFi$u}iR#iSko!UEV4DG^=2|YOuhJ?hQqON#Uo#&2R#D~C=+I#&m=Ipmq(Gr$T z2YSQPRAtBVC7cxj64Ww+tWB5gMYFD_YWa1Lsj5krZ|=hfYSdKA1!JOiKXjUh!^7t} zQ2g_Ftjm1;B&-XghW#NuMJ?(r%3bg`>fbGu)+4%ARgR%GFK&Fe(TA3M+F7ww?4&}! z5i~?hbkfK|sk5XEyt>qYsb2J2*#l7qr^{`F`qSBg=9-I;>Cu1Pn|-ENJAySBTj)n^ z(eV(2PHXD*A}apV$0%C2(vEcVAwj>Gw*EFg3f5~z$Qmq$&Po?W`v!vLY=C^QtB(_vW^knK7SY z9B*Vy)nrIeTurqm4X$KQshFpfOce`Ea6knsR!d{(G(jn|pr>N{)T=ya4#I4Papan) zf-hmgRUpIip=u&PSn2mj25%b>%#R^d=&!c-W1a9RQ71q6@;eViSJ|xJ;&OiIn5{(4 z>XvFPq^`~njPpuq2ZTwTyeqjsHo<9oXIV@?kvlK7C`S+eHnAcmMzNbTXA$Yel>QA zMeC2UwAvfMTMNp=4NF7lH)Jf9Bas=@YQVC_%kxL~EXkkFq$qYyxcTuJ&YEIt)*s3r2pG4K-;d@4b=4ibMArDE zzNQsh1_X{G{^AFKQ1%9CHyx*tjsTcDT6E>9+?mFbtFH?=o4qPkH%4%#Kw=Seh> znVE~8lhs6Ka{q29KD{J&VBvKGe)DD6pEgul*XIi-^0}b9p@-`j0tVeGc8q)LTLX0} zBjjdv@84i0SLXgzs^)E7Fs5$Y@Fd=FpI?tdCBnDu3EHP0hSX!vjd9Wk&bRXH{w#?L zz@B06WS9tF4#|1Bo|)Pomvt23Fq)?!^Js1l92{|txD)=uKLsfRw<~{GIW$>^pKD(q zws$g0=I^uQ(X@OFuiny1*(mwjFp)9=;YIP9&MEBA5`6Gvoj-ZFO{3M!YHhy>valV2 zt24SlQ5D&h7ueh{gqYRQhUc^+u|wD)>IOZZ!2n!y#eDOAQ#(|6#E^Co{)BK`yYP7D zJb;ERZlE_`A+w^@diZ)n{`20ra;%#rzpJHKkq*yS`}G+?WJeMyLO*drE?!&WRa3Rm z4^xQI?7b@-#$7LoT(QFe#leG`h*RCTJ`gF*8(qoPMR#gq5a6n^N{{yY)RoMAnaer}H>MU%p}RVi%Zb-Xvr z%{z<#9=eqN{LZ*@yVdiGWsIs#c!VpK)wm3CrYdVvz0@hrcfsl}Gr)y(?)>^5j)PR6 zS8+mh3z|)QvQ5O&;yh1_I;)tqq=Fj>6{V_i#WqV=tI`E>vwc|Jf4pd=Y4{wrhpxh} zGq!(VqjdEB*2zEaFZ)&&UC3c;#$)ummmV&oDAsTt4nD9abvpz6p^Qlx0xvdOFNZMH zpzc6Bg_|d;8^))%v9fMh=-5E*Z?5Xen4gnv5k+JkB3WeZ$J4i&j%;mfv$!lUdoCo? z3UHIXNKl=>fCA}Csc5D^LwFu(fP8byx)H3si`8$40>xm-TSl8c{=M?xhK{~?`_a4o!88Ie@ zSm?HG4LACZkCprtM*5I4Z{yrlupYVniu3ee+msNcYFijJY6&arsjWxf z@J9ay9VL+53T9%jHa-l(pG1CWUd(_CnK~h|SFPQDZ@$}K-JEqKQVu(E4l`r=bpJ;Q zc1?)m=1}vSW|H8BeLP4R0in?s$B0pk_986iY+VJ;wxO-D1{ND~0`n-cS z?B{hY7Z+h1M?!5+HbB*&Yr9?{f5}p+WH3w1|VoZN11iTVlidzWqVxyf-1V%d-FDPBK+L~0T;Cy|< zF@0If#aDSuOoLA2I;zP`gjd;Ki7j>=2W?=Xsz#!u=UDeqQdYV8I2P_w(r}TnE)+S0 z^|qz7FfR`kQ9dY-T9dXZM^odVP%#~Z0&v!0~L_g!^sH9S1g*wy&0`;;i}S5j68xf+Gr5;nxi zNGS%+xgbskDTDZ8Qm!^=Zb@~}$Lhmgg`#<0b~45u+sDm8Wh@95#~+o6>X3m*K%Nz% zGz(}h|73wtO@`j$5X0bUs6&3dwpK|u#vpm!1}g)$f+91sr0vww2#i?Kjx@uhM`9b> z;r97#Rh76Veigck(hE3KW9%|^YF{xM@SA^P@qw@EkFgpsT)HAoRxnU8 zU;9Wv@bpx@*1u5a>qKf$qzEmPwWTy%61$ENLF>Y;6!Wd}q0$b6CH#E?yikP+V<=cG zXW7EvGygX1{Gs2-Fjyw);CveoQE{&NG)&Dt!4v#e2MU=mRd^;-^b=|8omE1F#fsZ= zN*l1sfc^^%V=g`4v)81pgoNpyb!L=Tu{MzSK-T}um2%wGP^mOnik>8+U@4c; z04gSOMAe_N-I|0`Ix z!=2LNWrA3N4UYD@dBU8Se2OjQ9|wVsZw&*4I1V@_07ZVGJkh>cg92iz8|fAC(i~+# zLQ9meV4i|M;KBlro8x%g*`Z}C*X@pZw3LB+K5)WU3E#f@%!c7YXaWQib8;}5;VkC~ zh0g|j`EQw@U)FDyoa}5tr%s4N35r~=$U44eFEI>RpukiGv-9OYi0QXz0lS!ght23) zSQyGUvtVZ$KFr*UMKGmtxh#|gEe}ArLIqSYfrnhuf(y?Df{YvY4;R#_&mDn<>o22O zw|)y@DATbyy68N@=ST1B`NOB(b?WFK9An)e?+G9YCeqLC6iRqhEg^ZLFu;z6!};mP z)REs;;jO*$Rn^bZ@D%?}@Xj-3#X?rk$}|QH{fC_4r6H2 z3Q=2GUl($A7`&ChPfhyAfWmQ3EokjX(F*A+t{lT4T<@n&4dBl%P0>HYD9OIlS1-0T^mqWGZ|*d;(36AoUWI zEKpLn)PK{L@4mAVwCBYvYPp$Wq)CA!Ut<>0FscREl#M3ZT(=o{SohfxL5rkq9844s z1Rc{}v8@bK9LuNZ)lV7XL2&oX>K?EAbgq-<>93hNB;^g=9n_Y5y4rO99?!aJzakEp$ zDXk^5@KI>K*=R^w;@z-|z3Pr3x6+z_(gP!-7WnQw;gx5r6G!Cr@%#D1gp&v|1$*g+ zcM*gH`|_tGvryKxI>66?Pi=w$b`*iR>@hajYw?>O={YHk5kcBug>Qp>LmRf$j-oks z3_z$5qXGcDYS;`WAW$OQT5bvx4{)e;4(CXts6Q(sqsratj6A;Nk!K~Azo0$^HZfx| zqS{|UGgU3y#Q`;84E=3#5f#snY-o$E(F415)4XVn+Js@d^p4zohRm+&h=&j3o zhPw}}$jzGQ7%x6JI%J8bj`Yvs*8ey09i5U%Tt@O#_qTSp|k+kfu1OgmFe+=B5t8HnpmOo z0|#bAuyT!D%`iH|3^0&fv`!gBgIM7L4!2q9>a&aCLuqmsGn%0J^-A%iUjjxjsO*5D zEpGJ%^x;(T8nsm?Ct!8szc;P3ZU(Mn*3}ShKF?d+NJdLH>y4$)i~Yy|bjUWFYa#y( zG8g78ihb0(Q-VzUkOj|HKIW=O8r# zWcRP~MCO-iXb~k%d=?MiaxRVE%5=?h zxw;F{h~8An=Cxj(X--{XhO(xREDsGnLRg)Sg{;VpK(bJ?Hq_IuB@n=)44f>0~WB&tWPIuNgH`tG|lQWGcnftfZa;-YM5Q#SU{SN;uf0Y zuwF@7!kRlhlyQpD<(}{yq*hM-a3;~tazPtzC9+(w+%}BJf-2jBVVh!UA#jU9%ww}4 z7>Os9mSIwP#InT*W3{cq!c;TO-7)=IwMJJg%;B7YXbPfdgUKGS<4xu@5uY@|n-6mQ zEMnCWA4d4N=tu-F$!d|BugvqkA^y>kMoF z3D}B1iDg^4LT6f@FhcB`hbU1hTJsW>!j8bu{RtIkhB|^|&gBrQm=FC63mE^(Wn}pe5F+WDLYjD04 z)2X!K?mejo8SVhwN^!4O1r!XbTwTbnAvlK|L8NFcc-3Sab2MAZ-y&(Hfkt@*1BSZj zC!hla0(fS&IL`Sy8Vq_;FYv$YmUzQ9J`6gU47yRSvouZY zG&&Y3-dGu4IHzj}&9!XM=Z)XVmFVQsj*aCZ+DwuC^}NmCh6K6h2pvh7x3+z1elaJP zb6#x4`?1Do4HdwbF?#dfeYN{vUrY~5C>;w0J4UQfFp29w9l45Oc_ zM$HYShnU7r^F3i44Jr*m+ZvZrtg^Kk)vn+lvm8?Or-D^|y%&EzX0|x>AQny46a&=X zg2z3fnFtq(Zz09rzZcvfC(?)~>%Yw=p<(3lPIRj1I=Bmef@oxU@n3qwRM2pX+9%Y2 zwyI@8A?;15X@YA-E1gi{cE^kmGKQ-#kd`LRe@C0tfz~I#t1?+T&TT0N!Oav11qk|7 zq>W7a9Yr@ZfgqFgxDRUSZ9tq&rB#Y~23rlFp^S*c%5M|<%?Tw=zrVIE8@!pG*)LPc z(hE5I7LKtq=s6H$8u~NG2QO(9SZlEutEk{Qdf>p&N!YKhaA_%;2E2|HlhjiKzWC9(@N|zr1PN?C=$7UK8$Jr2;)jPDO?o^TJCjbNYiBrA{uIuGb7G z*|qNw>-0L!M&uT@{}hs(?DnId3dmZ3Z-1_uYI!c2+*hCr=crPV?uo!KXp$VA=8Wn3 ztCa@J>rv1H4o`fIajQ4Dcs<$}pH#)?g%rQsO#ra-Qxn`Wb16A#Z;C)J{FrTLeU0JF zVD{lSsB&%f-RGr%ObTsm+g{{z)1OEeQU?zsy>%F%ZdDmW_NYk1GYH_2Q=F<)CSfvz zlRvHwC)7YINnYz>4s*z0v_zdc57g}$S%mgb?52U2FzA$NLAe*ANj+``tOuI~$!45tbfW8E9SUkySs2zu*r?k5|$ z-Zzsz!fXswij1({$ylGf2^xWf^U~P-v8)Pfob&GFK(N2w9lbejzJJ4SWG$uuKIjSd zVsv%C<+q+3*AjYocoTHK_GkFNJ-Yk}ULI|?KZ0)Pb6!4~y8&a@@OJzlNZ-r4-}jGi z=k%Xy_a%Xn^h=Fg`=g8P>zLea7kUe^&?9mFd->;J?tQ}*Zrl3eC2Wt$ zD8R#?``woQdtcnaKkyq+Wb4`T)YB(Trpi<~0`+xEj5JUKeoKJ2i&OQnZ!-?~loOuq<3ud&DyUaq#`t_K54czpqCJ%oTEnUY;2D4i|cRgXw1c z@&#e>gJRt^YU?*aLe5<(FFfAZQ{59m<}>M0>`vml!Ctao`fL}+r)BM?jT*x~;s zdz6pyK~uZi_!dam7QGEnf1Mo6am!&r80t`56nP4n`NZ4m;T$YMC|V>w^mfJsjL_Mg zfdOrf0#JG}#xYCqEo2DZb7$ZOnE-@56238?B8`~T6eYNT>wWg8hYQCi>^o8I`=qlfNDg*dWaJ0JIKWs zA&eKJ9E6Jv*=PSMSk#8f6$Xz7|Kzsfan6QQfI%My!!zp()1$hy zndOVbZtIFX@qWL@rU=`iLhns0JevJPK<2@Jxy365zQ^k=M#MkzRhM3jS9G7>4;`iU z&goZiqLVl8sxE(QSi>=rtIe-VdA$7Z`yAa;0IeMVXfE_M0cGiXH<>^AzIjXi%KfQE zckh-rH6r*kh#L0s*NdRa)H7&N@soJJtiSsp!QPcF0N5A6syd9uup2C7`#>HH$G7o7 za+@H(IvUl80|nrn6DG))n*79niWjlgXgblgwJPahHX%gn1E7Ex3A}mv){x%g(EqyX z9%YQHGGC1MQ^RVN6<$m{thn=`0pCX+29RR?D{o}F_>57p;790cGu-}QdV>*P# z^K|JhQ+4Vg$xi_3mLCAz)$?T!YIgxN%d0xpF_sZG^zyB3l~rsI~=9A@<@av=a z*EaqRwG#4J9eHP}36bCWJ$__Jt8J$gGQSD8{Mz{7g!)G=1KOn{`60T8glqO?B3_Pu zyDj`p;!zQ5QTRx<~I6F=$OeSW%W*0$rAr)MZ7kj^)3uH=Cv$agW$%#m!!Pk6);%h#KILp2K` zX*S&1oieA#8Fidb(JoOQ|I~ao%^{M{RrJ$Uty0Xe(_@ksy580DX1(rTrF?`-D?Tj3lFsFt?<>2WYbxy8AzF*A)zm(K7D9H^eT&?_*6aw*`t!$&KH{nQe!Ntoq zpwl$P6{j=q^?1O{R_@RTp&*CG_weyKSLD0(na~e<;k=DxSV+lZ+4b`4fp|8y!_((6 zxQrO&vxX}Hv-fkOrcxg}YtVyCO$?APP*a`(B;gVV-Vm`ms!d9{Jo^ZM>?>e<-7Alu z;W<1TGo|#F_YxJtD)?SiC0NUW{!U{ECmd`M5mx$i7nxeLxJ@aki}j>Ug6^|@*!E+_ z&ot9Y=iiL}82n7EeK?H#mCrwS=(@V0@|>3t8N}}oD7m`LqXp~82EqBd(c_B~fi>xU ziA!fx{EpjM5sARpyz3Qr6?xt{r7o5@{nmsxB6wMr&NW$rYIAhF-DFrBa34b^KLsp%q||kb3T|Sc&NzTH8-W%hHxVV?f0IIIOzy$ z0LH6#r~LtCV1!82XDOe$`%ZHJ|7ObtFx<_E(f99JB};=yd^|#r*Co$>O(QU}mw!2& z9uLf_8JFB*owI>Xhm!DttJf7ccdYFe4I`I%z(&jFxb?A>`r71;l_bqZTpno5M!NQV zOQO(%zEs!D@VVN3QoM9$9#d1ZQ;Ov#lf$~3{0MZ9;lAciKrpo}`j#c>&t2M_zoGyl z_!`+vDC`T^7?oYMGt>-pli1NUPjt`!Mk8Rz+vFu*h~>Ucwe@*iaW$5TzGu;RApb{c zvjPNYKQ@&wf74NuS}0$fSNO^oE+IFpG#Cd&#F?9UA?zj&@{E+B9)7&Wuxr{T-_<@q zMh*ImLu8-G&+SH-cc#Q4N42%NoNaD>sybK!B>=u}U8U z|Fe(vx6>|XwDVNH+-ywx)Tm`#bNmZ3Nyaey?HWsh!9b(umq`^lUc} z;T?oGWj9h{MAL~4R@3+$Uzg|-n4c`HcKlZ`>nO~CXUrM+ z15rk$tuD184dl0K{;=B~sI<|%@0tz-2MP~T6<_5&*NiqTxUAI7l@^P8ru|R7n+~RJ zLy8HY?gvdB;dK;J-4l7Vx2xsU`yt4AskzOTEdjlJdn2ZAx8~x98TzPn^0RC78>@tt z9&+tuc8*8vjnr2k+5+86%9+x&~c&BSSTR|il=ry2H# zp7R;@GslV(o)hw#C!udgcG5BOoP^xt;8E^JghXe=$mrgz|ddM_!{t-ErTgrKCEaUE)%A zfaaf3*LJdNKQzbIq!X);-lubanZ@m=R)!&+(b%1Wut_~x9r*Nf`{rP|@{;wxs(rLn zd!KGzge~1l;iwE$nvr;|mIw>pDEu%8?lI&qmB)V-`l^`jDktsW2A0z;$3QrI<;rwf zh)X$O;sgoUY|WPX*Fyd&^d3e`8S94Y%X`JTQ*_bO5cHdQ2mbA$VmV*ye%o?zTlVx0x>SxP8M$ zIh@feLEG~$zJ`u;N+f&mb5nh0AE>5{Hf_;clyY|_J;8rmq*_N0o3rC#;Z!AIQUMd$AeSojK5nG z%ky|<6>$HEP+|vqVWbKc_3b=Ud3CT&ld_VNd20{!A+Whvqozp!5NC8%y9b}@QmxsJ zz7d&V)=e!Vvo&qM%{=RhAIz7ynKAM^^_erz2{UE?qfMbQTC>>jHtzWs0QN)=aDVng zI75l~q`k)XqX&nU4?KV4pSzGyj4z@7l%>j17SSaF$a&TI zX$id-vR9VaSw51~v370AJW=C{tnP4w=52d7^xiS7nR0Gb-GA-5s(mp#cM&I;D(R!B z%kvIuoybC`OLjbGo#0ftf&l7$hVb7PyF7o>)a}vN?y{plp55L0CVtz(^PkdsH6VPT zNNq1`UacH2)JWPNwEjcL_gl3U{0Qvc>xD!t~tZNc9?7Jm~p`almQ z-#Jm8kk=&a*=BhUUaTQ#H|)P|G0PstP}KO8Q`iQ;6`P)+TJCt3* zNWQn!sCoFWT&Z0EKOrZ)$7(r%#KtXwc~7<7_0n6nyX)zjp2uffuy70dxooeZUg{NT zVCaA*{s^z{n(SRq_7VTL?W8;U>-TMg`<9tk)}U|5dH2r@H=PSFaOGr;WwyI3j%@$Mg^e&Q}~sODDc}?2SqNENCD*rlGO6 zqSyT)%g#;?yrvG{oG~y`ESIY}xw$!YnmW90{hR*1Iu4h>$>DNW+Dk~vDayoVMERwo z5*Y4ZHhd+|KS;<^v(inzXJeLe_SY@GgJv4F%o7B>9 z-S$%Pd!jVNT>2+U4rR1b_w9>G%I4X+?r$>aso{e2v>4w&0J(o6N>0u0e+5jFu5pKv_z@#WGzNLYY{^d)5 zHc{Rnf=gzwGg8yj)3Uft4XmuZ(9`R}RyiZ?RoO7&2<+P2->W-9N>W;4YI1S_0s;br z^B^D}pPwIIon1T|*IO>Y2h$l@OZ??|G}ON*r(|R!?+-s0uGTIn5STgBQ|x6@Q5kDa z(W<^;dKO?0fq(TXJ3ac#bmNt&&(L5o^O;aqRT~g@O({niUib!b32Lu}L%R4ys zc+}WeBe;qe1cSP+Ybi9q3KN}SXEbyj?ChPN1=2e@GR~{cr{P^vtg2{fC*`m)F*CWG z&l>B>+KL{BsNtvCZ93fDJl@~H!61SHgM-9H#Kc5}BLuPU#FdRi+}zY96molNVoJDA zZsB@`@8UzzMbvR@#nvYj{WD`=_Feu~wK;X7EA0$M)mE-`pQ`-OCuDSawhU*dr#XQH zOQ0FbDv79jx#U9{*wx|AiD~-%cnNk>XWC>&NJ{gpO&#YrnAm73iOI>y>FM$Dm^f(o zxI6pq&u=PP)G!MTV(lK}@>p4nO|{)-$0s29p06*jkPra}NO6Du5IWN|wr;b&P?*Ta z%0;ORcM+havx)_&aL}C zy}-t%L!u<51!ZPthJk@0rbWYIazXKKlEfE3C78VHO6*QxZWSDN->EGNFtt-Q5cAP6 zcDB|Q_I7rc6qK{@GODc^p%vG60%VBv6qyTG`H7LwGaxdnc%d}&O&~bA4gb){fr1!g-U%cyXH+z z*Hv9`x)xmijP|5$GIl?O`XK}87*2vmoSkC`_^nNx$9CVeTYfwdK?E%!{JKv3aTkSW#JkRF=DvN z9rr+NFe{*AX`4lGvp2VF47m2Oe+-<=oUClrlgbv`0m_x67mrumu-3V((2e9ea9C&; zMp17ZweQh`jl1CFr|K=p%PHr>Hp)MKI_z}VIrIG0jv{K;i$N93o1MLbLs-OL1Z0#MNOWG%&oC2p=ymq!>f zd?->-$ez^1kKb^Y#NsjMSu9+(t`p=mj3tHbZCyoq#U#XJy_fmd_HT;#A(wDjEX zAtJ-1CC8}AiE1ipDk{k-=x7JVrpASU0My18Hl=|9p*V=IU&;cN6j+I)qm$D=hzkW3 zB`q~IJ$;Su_mifmsIiJOT;o~!4;BBB8JYOsR9+xm`j(97lqwmyGu(I-j2(mGqI^Q) z-=xGPg?Xk1$FE1*tj-VeIURP7!Q8C^y0-N4Hz|C6ySHhgtWA$_|G>@XfU8waA7U&B z7MNL@njP)$qy5|y)&BljnB7=go1a(LRnpK=RDOY*$+U$4If_eskwr=cXMjVj@aH!$ z*zZlBZ*YJKpP(wYI6K3^&PY#B*V4S+ygs|S#KFYG#XY$`KWzup6qR*1x7Sw|Qt*>g z)4p~vT~#mZOLlsl=3fTEuwm$J+IPD{ZV*fkgr2Z&aDkK|$ITRQmo>EXG<9W{x%I4)g==C}K}$;d<=@og{P_6j+~moTd;upz z#>5n6KNrWKE9@^UB-CGEfU;137d~Eomae(hE5_aN9)i#7!^ZfCyY}#~IM{GY9y1~) zE`|@skBfbAeSUd*b#~FZyadvttfBhX7t_kZfhdx7g%s2NkGZ>wweUpOG-TIj7XsIM zx&==9`jzXmD@&rO*n1nd#_EcW!%wdAB?cxoQbMZg`pVjEuC1M!8z$Ga`|Rr6(%Q!2 z25kOD2z+obK~%ILPLM9a+4U(1#*(_4N;(2QJr@xRMK6Y?o&*Q1fs4Mo^}?1kXiTI=N@DsEnO#o|NH84W8>oD0>`YO!O?bmsz+D-?_W3ecLM_}H@$0dt@I4+49zDI z_lK9$#mV!QYyQg0>Pni)ZXiURE^qGp#u`3$N)Qkr{+GT|^;tGv?w-PY*PFSOmxF_Y z!3FXH;!t>R-k(CU>+|Mzp$wzp8a+jAd5N8k-`acaudcSH+q;R$-tBC_(%O9I!{AA+ z06#rFy=@Ors))J!PBCz)U)=3+158Cucdovkfq}lhzJY;3Zo#G3*3Z-Lt?l)l_4Pjr zlHvLN^wrhU+x&XUObHnoS+-z??{7~|?w-cxrU<{F2ziO05lc!aFeV@jepAoD$BS`8 zN98Y2a8`&+TYb2NZ+DmF-RlIq#s#II9lsC6$D!YW;9;vU#++1?-SE%PBKY6$lnqJ>m zv@AwO{4`b7);?RJBmJa=WCi(oKbnn!zOiA*@bGy5poF-nSYSkV+s)os?`QB`XX8t0 zZS2lYZRpCuWdHaPBr!9LR_Y5$qSNHXhL?YTzJbB}phyt7TiZ(NNvXt5or~&rj}ITz z!v16b_}da$-zJrSL^f~1P9 zl9IHvlD5ieZe!rj{{h7f(D)d{&YUo#OKatuMd+VEXt2P@z}Qf4?{E(l7A`$TRL4uB zAnqJ(W{In)8VgDr=*FpzX+|L#c4JrDOW1SeBPuK|zCJYQ%kSE46@bkUxc#RD40VOW z{UvBD8x8;&U4$xiSeZP&hIhI-*crqCW! zxJ8Jwd^Q_fz-7=7r;^cxort!iOAjGAjb7_Xjw*&K`<(p`>O&Z5Xnef0xBEj{B5#u0 z3#jTys%W2&GLlrXu&~VX`^X$K*A zAivJ7#}bH$%~bDyBSiF0Qurhi5|@~wrl6p#_=mT!xICYNp0s~TLNci4T-$)qXHpGDc1NM(6$!{O#N3I(z0Ny%0@aMNwpFFIWaUt_-dh z6Sj$5ua?!e4^$Z_Q#~Y_$|4H_0q};i{K@aWrasB8eQ^X!bBoe4B16L8WRo*fef<*h z(y~8Am6#B$=FaY(UI4_2Ecg#}@R1;PIn2cHV_w3YAA0t?Gx2flNc<2R6_`xzM>1g=Xwqn8g5%)IYt zW3SPj>65B$3V@#mfy@M_WI8_42OE?8)m!jmf<;CPi;Rs@h8|!wMxWxOrE0DAldX+` zGr?Vr`p^+lU_yNm#eQOo6jaM$&`zKDWlBLyopC`Fvpva0yELmFnZh|C44|eU1{VUs zaWYQE)-X&R>&(c=^579bVv&=T6r1XFdhkBm><)~NJVr%5{zJIOv!0r&jeO+8%}50< zdE0wM<#}*$d19?sg?)PDIq{g~=6Jh!J#T@Lu080<(EYpmafkM!hN>=i6**&|q$CE% zWvRVrNeOEmV_t;E1|L98r}{H(vlrKvJl)?1;YC+O@Lnv)WpQ{Mj6xAB8D(>?YGw3` z2?9gaVo`+IGrH(!WdNA(oeFy@n!4-3{0l2DGI>H#D$caHJRrnJ$cu}~$%n;5JnEU4 z2z_bFexwky(u!)|owDk-0^5Vr6$LddC0;LuzlxgweqHl;f$f5yfC7(GG?Jq*Ba&9y z+SnNGBm{IE?jRwq(z^@1^#YH5=KqwZUS1#mJH2{v3JY8wdy8A}@8c>ZmdiE5WW!(a zO>JRu-B-5>rZRm4np$Z%XB5&<_Dl-M2G^C{p5Tl_4Yze6-dR$_xPH%7R z%0uT~zrTO~-uzwo*;{e3N2oaU`C2=HP$WxBu%9?AUkVgDfz3|`wO|^ooF#ng>x2B3 z8=35*Zj_f&6?{e9Taw2V=$>4hTzq+;{4`v{UK7`+c6h064$kLb$78&hH5rEJ=xE0m zpxFS9Gc}g#Oyz1D`rS!ghot-7%Bcnc8`8R=Dq4%`GzHR(-bHjSFWJi}9si%U#g z;PIZ~r(;DimyGjq#iL8lnOBVE%5{6l&c+gxJv8HB7%qdPb zpLHofMoCmhQ%Xwpu(lhC6%Gy#yq>7~0+~trOnv*#|JYjgp~)B=bM$sj#~IDUD9Nek z<-r{zDppY8a52d8s@rF)+9i3o7#*X=J(vW8%@<-q%j|@kK$q8oS~>>)&c(6Kz}m*d z#Qil`O~Fa?kM{D)c@ll<4o2>7-ceIMr6*m@F8ZNN}+3B}`Nmyr!6rd}!I)k%XYH@S*F?m3U zk?C}Ow|2pl9n#}S-#gZji9ka&U32>9TNFlMIW>3&Qdx0OfNj8hB00 z+Y+>3jJT(dGVNJ+YKxJZpvEpRww+<6=bC#=kuy~lKHg&gj>vuC^C8>2BtPVHV1^!! z)8$N>ejPMLTjFzLV*b9p51C^kxK&)ElHAUJ>YiRZ^Q31uC4IpC*sGtgtO%bc=Ar%f zDw)!uRLLN=2X@iVeD4q+Krhv)RMtj+xLqsqyENa{XKeM~0zC;AWkqdgbzML- zJu@kObDn*k&eO2?Kjp*&(ihAd^ml0DY8(oJ*m!;ehsWrUjDS4YM`9e+y%X{kqr^gv z4Cc*M_*9|Ex|vY0fOu#e2%SoOp z`^Lcsr?OsPiL5_4E8|rA$nY* z-w6g2xzpgub+Dy@%&i+8Lz~ev{qEfDm>HHP_vYinol}oKLK%_pK!YhTsRWcg zA8%C@*ND1i2nII;_do5El6Hq`xvwl^nC?N&>r|Rl>>|-NEXh2&5Qb?Z*4gs)o_Bv? znX%sSzA-WJyGL_T-(hI>Rc62YJkhRubyUQEO!w5-Yd@pr_H9gP6x?IGlT4z6Bgur_ z${SOg_ZKx2(v;HAGU;7H)l&)t0anb_tdv{i3~h~}na9@C8Jv2cw^t|6)kdew<4;hl zIeMduEw+szQ^ZShTFoF!ZG~?a6fGP$6dxbm(NjlBm+T?d?gyo2;@Xt=}fcD%ZRb0 zs*M1H`8z48yZ8W`6?Juu^s|aP6xcRWTGV;%(F;IF+goP^$J+Ad06h&GX-m1M2OLUa z99M@&xtm({G~^Ov_RkB*u<2SY%Qm%Tf$s&%y7dM8rP4%Cu90Y(aXdA{e@g= zY(cJe9U(eYeqwB9A`-!liKj8g>SlPM8$q>gU;$z8z)Naxc+NcO>WFVG4_SfJ5C8*D z{v+9f1&WXwp(?X&oS$71oLrxp(M*LtG%lf%Xjw%unqK~yLLc=Cie^ioW}X`w;ToN%%p(+D}B&Nsfef}{|&Dzx%>0O*Z>JB4?C8B~bK_}DPqaTnQ?{0^632Pd- z?%oroOHBnb^vRvo${)N*5PpO-;1a{mk9jV53|qI%i7$KI96+D%a$06LqYs3FxoIt= zo|*`Jrik@57Wua-Np}?8D(qr5admomdS>RWsTCaJ<@#jr*=h1wYb$?%!7{Vd7KI0^ z-ffo35p>u%^S5(%_i`U$wxp0mP>P(krnAg(2gyheAMUYv8LcR=O{?@4xw{;y;UACN z=n5@WOM6ih8~OZwcpMV~+$Z1uPC2EF6gnGM{!|>1ZPASWV!}A67h9f2k~OG&aS4Iz zfyWrUGn1+T6s|M;gt^ayhv(};QNvX-vVo3He)(W2 zu}Uh)TJh2m#92Jx2z8EO6he%tjaQb53D)kckRnV zr+;TGG$Gg!;eaL$cu3EHw;5?JHVY`KgL)?^PfpzZ)b7!G=a$`{#S;aek%d>d z#(!hYixm&5{f#=-9gzl1ib5BSgQ*1V!s_%8Bb}r~!j=gcBaisK$6MrdlX8Bq`bYM< zmhKk4;IxMct_hmk33lP31KDUy;IoO1a@iert7B9ARA^)-f~pQyPEKAPKBC@AhO(lP z_J0IzJiJPmRfy5_A&4exYBh+6$jJKF)2iV(`@)-E8eK7!mMYv%ruNovlZ~{bMpBUt z!U~Gn*n;Q&Uk@R{jg!&CNa>i8sJygkbYM7^h(IvE;){fT@YAbAIZRtN6Pv8XsKg&*q?)ddH2;4 z#4M${dWIj_HFC1dhQOyONL)@f`rh8-V0WK=-A%dDi|7ZA-g|$RmXHdSro?AsX>opn zjh6knDF)i_BGcAR2Ae`bR}In>@tHfl0%pO$ztiR~8^5!${-Vm!{7Q7#cJC2fuV0cPsz-N9!`*5zS} z@FS`u3A=p^q#BQC!BL7zGKzl5;84Gi_`u-6$iSKp_gbo+=;7m?jdX$VBP;G^ZhW_f zlcJc5s#N5%H*J-$Euo62l<3Il;AH>s^w`iCshz;W==g56yq!7+GRIb%{b#eOfRTfb zF{n|fXGm~}$9nm_64B@8g-i_oLCKKMx)SdG`4t)>@`bZtR7{-q+6pbhsET)hsF&6z zahu5vE%tBDgR5V5j6Ghd*j5#kv~+Ye*B(3_-3=X#&!vnD@-b#2D}2>&yF6sz8MT8x zI+`0rBf^MRdJ6ToKNIsi*WKM1jxTX7g3|ILskBXwa@QMbLKYAn@iQ@&4NTM>1j1K$ zoFX|VD{f$eg@s178)aCl?SyoTpUn-MqU#YZ%Nt%oDECx2TGvh6J%E}zr*myPvi9=W;(u0$;fh9i# z+kqwBclR$k@hU^>(QxxPkYZiGU%Akczi#Yi_2mAMLx7R0!B;EYgiHUb?=QO=R`2Fr zB{lVbJY#Ta>F-XV)}5_mV9Rkm5DgkWL_IDU8Yw|ra^(-syc}P9ds8!r4tP7JU)Qc@ z|mo;n=oq+jhk^Dt7Y4PAax-qhi~(S+Q-q^Y_z(p7y-Yl1NtzSj@ z68u$ZzA@d19XtZZ?ub$oTe`V`;6Vu5c({mD+2~PF4a*Hp3{G)3?<5(F<0;+_tu=Lo z&rFI54onP8hq-rn^LUz>U~301UI^MycHG-&BnxskFh2`u0-XI=zhw(5-gEeZqZCwJ zl&sQ16B8@W$$iw8P@A_LUfHW^C!YjQ@Vpf!X-ljB(oohZ;3be!PN%Kwy0%`T669jx z9{8SCRzu*aIW3^lxlyJgdF~^5pf8)OD^T|2XDfI+R2l6ESBtZMZtU?Hiv0t3O&lRv z-pa2_X9sQQ2x`nKn1>msk%lA>UK?$OOpuidyfSgpmm4lL3#@7x^aZB)&;T!eQxk=nv?OdKrDGmptbJYsEU@GN~kiT#7xz&1M%c-*+F`e*)K|c7@?WrZiyHWjyVZBJY@{F`Y8ys@eyk;h21)FZ{L}B6ww8s z)ZaNKh|r0_Mgu3nqX^4RbBhv!lO3R;9hwH6_G~%nUD5s1gClwDSG=Y6^BH!2sOp3fbxSeSdncW~&MI?Wy*hpdw>p;-7g<3EAZ) z+{)Sa%r+ird8;#XlcS@flZ%U^!`sSv2y0&;DtO^Us*rZtpg||DGFCzn^z8gLFX*pN z@_L(aXk^t2y{A}S&gBf{Tc+SQ^^;eVUf5#Xq49&lZ^E?@5}6t9lThen&+_npkp2vE zm0h7>Zg>#(NcZV{&_opd3wrLcRLr48X3$`*t6=37EIu+ZBiq^(6Qdye=M|ZwRL<10 zPlNrWy{MmQuuLTl=fu<{Y7+m0mB40xBE1bFid}F=n00kNK z$gsFHNEHj2nBXlmygQ}5zmduy6g9w_lRbcm9M0yF5etvVc4a5kZpgeaw*glGDgDBo zNSwUBvAy7D{|g7>=q?aSNd}i7Hed^L!diyW^R5d)9tG+mM-KN(dW?E_LKrb$!hh4V zUo;ul?pU+4c}u1@-&#t2V3h(H9{p;(;@JX>Ebc4|-%jdrmWYO|R9(i__E*cW+WoEH zM2R7$HcLofiPb(jMk*Gn_lPD6ZFj4LYfm*zUsJi;OCwzr+G-@}l=$B|Knz@HTAXrJ z1k{r&M}iQd1rrX1(f+YvZ>N1b)vMx;mA9p7bIn~sZq&kbaYB5m{Z{qF>le|3Ek6P99B{&feTLil1BG_ep2~76vJ0>Uwwl zSnzWR#~i15NQjw$Vc7Kt!WJXOlf8R%Ol;^=J@pygf@T^9?t;I}n5ZV6bO^_jtGXvjE4PJmRw*1g z=RxwT^0F8Md1Lp#pjsca%=!y9+R>sK$>kMS* zwSfSRk3B~ApERfujRMuCs1c5WyykqCO_i_L(0vP-qbJU;9V}LgmczOIt&oTi{}n<` zj2yPX43*%}+_T{V!y>VB_#&hNPNDeY=s3)74N=so`0I?)|_qkBWjI3 zk0TEc)1SZ!ZOsC-;ds;``ZZ4Ru6QopJ0aQG4m|+xBvH{HEJf}o-_QLEMd%S1 z_0pn@tGV0w>Twe{xq9g+HQtp|{cS?PmYI_wyre4?X zFfyhZ{#EDEE_I8;UK0ky%KVRmAT_1S&)G=YQ(pY|fr0}Wn;agWp3JEhib|?(&cQM` z*>FCRX|KByLDgW+nm2B7UTN^yB}pQ;T^{wc-%h2uX4$iv%zCE&7N^3kJigBro5bMofXGMnqK(PCeYVQI*|4$E zDJ(I!9HIe(t?ySS%YsHG{^j){YKHEHdrt%L#PMvwtRiyv>Mm_T=ezs1L zGu*=iUIN4w^dbIdpwH$eqPc+4&hNr1#sT52<>9lVmCGShn~={lo`2(eS!f0$6(sZ? z+d;EI_>4Qy*(L(J$;xx{x&+qYys4Y-$gv6j{ux+apIX-XMaOEi#&XL~lAYP^i(oa^ zf)r}aT^>r2pmXsEim={q>zILRQ zT^kdBu{qQ*ZEf!s1t7t~vv+j5{Pr|`=2eDf-9EUB*)<=<{#=}_;AD->Shy;m^Ud=8 zLXe#0>cmY|_;nm~WvFHe4AIY618JoksC&uKf7Q>)#W%Sk(U{q&PJi^}#YbYKi~>UU zz!+KR^4Fh}Q3O2ekyS6eT~ zkN@5?QFfAysMH0m08Li*Vd^#f>uA0*C~OCa3oT@FOmC&*N{Z^(^K#rnl%85WYXp0_ z(*DXtb|3!+w@9^Zk1$i~AE4)Zw{Z8XI;DIA>v`Y+UH2is*?0N`^IzDLCEki)eqnxV zZX(R{euLMmQumdjjQjnY8mn6Q25&Hm?_uG@3BZp3)!F1^7og!$85$f@p776*iN~-$ z)s(nI>_jA4Cy2{wNU{bDkk#%!B$3K=@*8oqU(0h!YN}!{$y*od@xqymwc||?`qwjSuNWuu=jlj7b502P2 zQKs4-+5??E8T^+pXVg;AXwJwi-*WdA)%}|dYj{%3PvW#8yEwHJ%$015DYzahZ$9`x zq-gH9;91RK^=F074Ek~TV8^Jmpr9Ka&jj7c%8d^YK>vhL>un{oZc#Sf-4{S7f<9PF z?F?7;;m9K2a85?J?v^?KE62@l>qo(qp|&OTc=fe3_3*XIBj&stHbiL5zpI?w^IAxg zbu<(Bg|1h)P;-2wFG%R6n0-_zsSzyUbsi9!8yo3Q)wkad zsL?rIT4Nq%+%WG{j&u{+-bqUt7q)cxxsg7cmWZwF8#Q7n+}q}4IqRi#;-u?rE^a6u zI)628DRHsR{gdo|aJC8z^AE;(9~e|ra5Fb0GJjlNTGdpr9j_x(DVG)H$a1!-c!^l{ zl4CChe|;4{ba{RwnCaBh{km~AgX^rR83NAY3z_xhAifhB6R-L8v>*(ww=iMAw8LfP zW?IfVqv7)&q(BqX+WmNV&l7O+>V5u1IB1tLiNe~TT%Cj^hcc4%YV)^UjLpUo_a*r< z3>V94EF2aV=8h@hLVi&!4c6GrJ${M5^WQHz+be90Oe9R~gE677*T;$D%jEbdTJ2+0 zNe65TX3s*o1H|oUxJ5txI@j@u0g;?Q|LD*_{ocp)R*kXV11BmRY#aiwr@hO&(wbUu zJwL(E+9s~2X{D#&vT(fZ5%cTBLdF;T+1b{ziZlxd8KhUe=PlUg#WQkiQvd80Ig!m z_njANo$`P|95H@OH>Sc`NunhqHTQ_ekrhV++w{>ktHyx8lw7QnEwtfVd-!wgd4jMdt{vQQRdqkl zPdn{o@^PW?dY)?J&dNJ%D(20*X3^>m!Ts>LXT2{(w)g11nT!_2mH{sC zCZccU++xS3$J?8idr?0b|I)U2@`WQu0Cl^=135P%J<#Cjg?y&9K3`9s*)>3c7x$i# zB19X;sFMy6Whwj}N&i<>&$d#gd%Bfhk*?|pu8WHc{FEq)>`9>I%A;)mJ5yS*a}-?T zVez8ubx83MI=bnI2kteg=Er2^dFl!emjHi9L`WnZb{cL?hz?9)wu#$^kAY_kqhTU5 z;96xiC_{pEf4_dQtH8sh^C>(!cH4L3gX_7BVLFAox*_RUT6d{;a=tXXrXyGV*dPjV zqhdV#i7lSQid#AgnIm9=gr=gz++&lL>~E!CXo$bX?bOD^2q-@KX}oXCOa)7KM3HvA zW290RxGF;US6ln^x+nb1+dz!X9y49C%(#NLEr+N12g08lT}3>;WBO=waMGZK+e5!-VyytKTYi{zkBZwLpN(v`K+2~l<o@6AmD zI@k0800A0Ka+)4%XK-i-*VB!my^gK$57yfj5*FS!z#Kbqk~ePRH& zoa_Fc#mKvNVwMHJJ$dm4VCH+f+3{SlZh>{8b8jp+#))XeAt9-5Uq6bgY4999W>4T- zS6lyK*Ga!1>hXMK`g(>B;j4s9p#5?ATtgAUi(4@+4ZD|ps&bR)_LO}uH%d=E7VW?* zt?~#_5q_2CrE6&XTu7;S#Lls?vZSq%l8JU^MCBVop`NRIlMCMNqlkFS7On%K|FjDF6&iejcemtNd7Wvl4B z3RT+Sk^W1`|BB-uNNe^q;^Jb2dOF&ShnPrzU7gd(+Pyh_TU~sgul`jG$I)?q*vX<2 zyT{+p_hK~#%{GW((^O&o7vX1KDkdyKiyG=_+A>`2-r_@y#H5svc|>7XtBv5CO5XX% zrxYb!$yn<9cm}lm4(gQOFlYMC&xo*yw@oUgm-C~;T^Y&?>bZojDVn*2GhB4!tgPTq zEyJD=E5=robJSd5!LJsa0}(sLfMx_5BVGGjtk((xpdH^2RAewNm(pj0|1xJ@!m zH0y>+%+4`WRkXLa)>k$YF8!{;hKbSH)AB~(rn4Fv>)HT)Pvh)vJvT+2<;~r7W2uT0 zQ1Q3Z!}A?$ErbI5N>2S?i`=dkVeJKAjPy_EN2~XhkE-<$ZH4ExZ9t4K#e!LHSmADK zCo~Au=;T|WW(v~vfvC>9m0-~o$}cPB0&%rBH+KM*IB%ahy>!H(8g6iMa&G1n&E-si zz!&e(sLLzQ_t*D#&vv~Y&$;o9gGT@Al70c#f>)g5!x?vhO|B0fjn93Se386rvNcik znzr)OIT8%+hPbR0|DmPzoNj+ZfV-Bill||Hr9B?y-LPO)miUBtrMZS%87j;3Yz_`? zYrsPs8Y26fiChr%gpYvhfSD{ux^YQr^(LT>a~X-kz)HqNaGGV8ZPT3#=|QWcjcn$0S(-uZmW@e^``4#=exA6>PjiO1URnQ28sdnf`_ zohUsnIQRj_?d%r(0asjg3f@d+A=--51AMH4v^-o#akm|tj!M~VQ8rhtC~1-RJcc|H zYMxl_?H3W$H+22ABA29m-*n&D5G@f6bxn!W-37Odj1y`gsr38mFTv=P(DeJR+95-F zk$pj{W7PBn9aU}hq(mItv-2wx+al_rU)}GW{G7dU{esS0jlcc%w6z!h zQ-YhRhMeJGEr~i@oR<wIV@)>4$op(OYbXnW@jUdXWo~_K zQ$s@&*Iydx_hQN~G`pQK)p%4AmE-#&{Ev-6I;!{Q*TqiKqXb?nE0?}`MNuIB$D)5! z9BV6fGs`;@_*|Vh%Q^As$(N#u_8QI1aY0mzpLM`DBK0sdXHvy^;puJZb-NDq!Jiw8 zT=)F1z#%q>P5)xtRA>wkq-##I^(96q3q#!UilT!3Q?h`ZT-rPMwm!MuX|I#&M$x-} zcznTAU4;siIWbS$6_XJF{yz3&bRO)RBu&Mo-haC(nd|uGxS-(jm3D;VO}{bDccKdB z`;(Yf7Ur|q*s|)Icas(7%G`^S*p|@9+o+FzxRCF$zjvx1-{`1wPKj3S-D%mn>hEte zm+-^%o{B7=R({I`_g!GHNu%-1mfo8Lg(rAVFs!N9H}iAd<@N9YELO5QvL5{~HPTAbKHwip%VjP_!%EnrnOIWbjpm9g4edWeK{ zV4mOWK8M!p1IpWaICY<|+i=#JIfKQHFEU?2zz1#wN{~>T7Yc%8=S$_7tfsg!&+UpA z0ccc3jJR)zGp2`23c_j-*qOU=pUU^5EP44Fq~X9OjZM4ACw(iGo6*s$tpn~~`-P8A zq`1TQeC$E(!=@NEoX`S0QGM=lXXX1tiA!ljAKDNQ5iDCTotGxD`+bd#go1J5H=-Tr zL?8U;Nb?Y)s&?MchlmhgiJz!fHs;yI*25ANJ~b#KCI;_X)F6b^+=TjV=pZDfWJ70? zw{gfFk}=q1`B9G1Z-|(zuqZ@X1EWkH{SStYtFqY@6UH90>Z46 zS(_iP4Jh&?ABu6Rd1FM0(0F)oz;{|05#b7LNqaeDP+W%k=ylA>Q1&oco0Jc8U4Cf| z_dUfUn>y5=3qI8cxo!FSH(#jZNR2TO1s@Fk3&q6r!S0A%CuVUA>@6Qz;Vp;sD%Mt z_N%=dN?@}uckQ&>&o`9NzRrPZTIxyQel#jdJ-gDZJfRV5n>%1+>xwEF$excxuDUGhTMRuZm$o|t z9^1{cJ0D3gZX3JIRrSdlVpaqIy7CI?-7qem(TUg2oN-@Q#|KPX>J@SW7E_Qxe4vbB7T3Q+!29N{>!fbdsnXmtPG4v zpdD<=z(;8lLJ%{79Yq}9C0r1iAfrYoteLq&E{A~I);J6e`y-nPI99ko5B6DEjr|o) z=DYMHU1g>H;T|>+UuBr$3~h!@4WBoMvHn~bzJRHrp{GbVqF*ofuE!+Jb)B{UEq8HK zv`}kV1>N+oaOhiCZa)#FFapTs^GG~;#VEdY{@Bf9mIW^dCGgjGOKRL6lpqW!j zfVJ{!=kOGe_$ltDrAx{>T+=~dqZyNuH`TJ~=sLFoFG`h3h>Vt2_tpl2sD2L6K!Rye zJ1kRlR5a{^@L$L|BSh5BDJ8_mBmZVZJX(tftk0!M6d#xe=~EoE`c;LhLP(c6mTMC{ z2;%v2tuD-|sRwe_)xOz#p+N-4{*br(5Wc99X19HgVGH8Q$auutzs zg%b^8Cn9VKu2`FQiJTAP$eOU<56XwUusI?h11(9%ja(f9sr8FVJ&pyy7p1_+Q@?RI zJJ0;~aH(5y))FrvAi$5EHrkjLJxOWJ^K>n6fi6WP&DMPas5jHN# zQf4dt78UuWa{ZFfyqh}Fu?j|JA~nPfTvT>!KK#a;VMQwqlkd#H04J{sUYsPa*#SWg z!tHDZpP7|zApN+y20MM#EsR|EOURbC!p`RWjL?^b``+`3zMtIl)5r=>UI};HF`>6k z6EAtcc-V7656M+dG7EkjoO&lK8Z}@0w{36C#nL;xjq;C@&+Y>&iTHiAo zJ|-1`aNBKZoYx*3Y+>6%lm$R#ckhH20zPw+ki5jNyoxvu#y17@iY!GdNakaIh?!@ zKHuW?H9I-^p=bsVrCcSxZr7i0G!z_^lVgwf^5R`XO$f`I7X1g+5(qAw(Xg93+H}vO zrz)jz3$6Ch-Zmen=fW{gLXPf>f=e5Q894#ZSzWC-WWqC0G-+-_4A-r)@;P=82;g7E zq@JZSTBMzz_TM`IqL4!j(x&<6jz1R*OT0G#JQxKISHlsYjl`Mr38xvt=O#7GA_>TL z17-m_+DVA~$-Rl&KK-JrmhO5kPId;m-g68jLikwgii%NMDiPbyF{e~}Abch&tX-6? zcBAT2*FU-8U{2um%j9cgy~%KJv2rw)xLSRM=<3Xk&j#4~oki)=;kg)UsGeKE@MN8(s z95=m-3;dc*f2;1*Bpad(Amp~@@=79B=Kk-PD*p&5*4yQYzPE&ci;KOp6#u_NH7{s% z9|=~a3>y;TVdFppS6{-K==ts+!d{}{!qPuZqNAweD?{V z_~=N;2z#3TX|U?wjv_W_0DNN;n?j7sMIkV%T=~ zmHXQ8!+{|=w19+TCnIc44gxTwqlL}hP{-jEeyu=|571LfQ!^VcKLlx7F5cClNeL+< z@!$}+H?f13DS%AEZ28H}ThwUbZoV1Z>EE4&c69i=lDML>_#8*$3y_$k zpnSM$85t?hsq6oAbqbxFu$@^-DYDSxFokTjW#9hZJC2r`l@gyEIJ+J91naqjaQ_?iFpI?oM?&kp|g(}*OXw-7n7-!t!+NKM2;L$w@b%j ztIHf0>_H68SqKDWixFOJ*Q$1DWmZum6iUve=I>u?kOkjZb67q@Dr&F!l4rC(h5O>C5=qJ0bHZP3=}bIbAAee!-{;GdAkD4!?ENEpG*kwv!&9BW5Skn66InenlD6MUn1KRH zBCWKqPgvOB3sSsyA$ShNqZ^U%4)J9j_v}8t0_f?AY1O#Ik9Ep95B?Z99mueURL$Yl zgBuDY{1)n$d+ffk=UG}v!hdX%n6#ib(6w%Y({gZ4D;Oo>qCBIQDH=lVbS&)J*DlVU zJUUs5|0pL%hQ=cRM%Kh5f}&rfgPgJF3MyJ^n$Zd1 zXgQ;A0p|EF3WyK-Ae+#Q(7KVv+O9pQXJ8|IzQet6-Zg*mrclC zq$|jfo1NKN0=ZUPX|&Aqig6gHd6WWC(9SC^eJ1uW8u9nL7YCssm#d7{`{M?Abuzym+N{#?FE;hl1@M`yA@S2wfS!;(b8}HvLD&k%V z(V#kx_o9ycAKMQ#1_WwbEXV~L*-mwp|DALfFSl!ivf`#SAC=(ZEIUh&g{>h>YId14 zKxv=OwV3-(^(^7QP)6Ioim1d0-Ywg?HIkhga&B#J$MfEO<<4N@M4#k9Mev#+LwQ+% zqa_#~O$6C8nUqqFk<0gZg|gTbWCG&Kq0CxrN78%T?ZXfXDFaC{BQsCB4k=>7cp%Vw zqlS2%7I@}Q4jQKIXd#9okD<-J z^9nDL4Q>?g==S<&3aN-I4@kHqGO;kQuK8@}J%!?_QqcF; zOR1QMB*QCt$_8%s`Y^e<(6SR%9}l9-H^J7I@aTu6`v{aRL8m4$+hC#(>$eHhx8e?J zN82hfnnzRMj&k~st8kX{s8r(Znp1Q(4tT|$C@8^x1}_=Yq}L$BCahy{C0d?m&>U5b zy;;6@l%ArZ#OvSu^y%A{bMU$XNZ=C%og(lqL_k+t*oIx5o0B-;H_!!qVEMD zi}nfemR+;Y-vjvYKkdbm?%G=CI}iOFVm%L1@u`iS5hXDML6`uw@Tno0R0h3n??V_z z@~9<(0Tn{sSz_^>Cg24$D@EeP!I#cAyQ8&}-)>&UE|!LN6svTT0DHIAncj<}=1wX| z_AQ7DZH9^6)HxY$xjOt%K-2XSCWsXW@Go&&A1oiKTG9n_-ojZ@GneWcQttE^LP^`$+S+>kC#kV#$@db-PAqO4_RH7y+rQE8>+E_l z?mHUiI{`t^1aizT;r%;e_IveI!3xOgI|O69*xnYr{8s;+5aokY@E(^QP20D*?1zqS zzt__2EBWOo`a;_K*Qj?`vlb!8h zOplw`gTTs(Si04g$q9Sqjvi$FUv-C=(7w5}>oT{(B}cLIcv8|P3QyZz5B$t8q1PY! zHTDJ9V{cV`vn?OQDT4JyJx@3IuY_&gf-)Lce`o6{rx z_7qM&MMJJi58keKUnu%(M!!L$1b=~Sew6pRHT7ss85B?S#BLL6GbPLg=$__6eOk{z z!EIl@xB-13?J^<~`(7F<9RKu?#{9L-S;*B=iO>ez{mU} z0f?a4uG_0$|JQNui<6iiHqem4?wd~k_dkA9G(@a5vML%r6 zK|bHkhpvh3e<(&kg7Wc5*gLNG*H?|Fob!ID--J^Kyn|llzVApi3|gjG~tPIsK< zY(Is*bvO27PuEKp+XA26v(#S*AKS7yU5UNh?oGLrD}D^$xthxN_VRMygX>>GpM=wW zgrptj!GcjYEvz?!syhlHkEyJk+w^gMc_V^!&EKWXv=eruq5hB!bcB5I5Bl;L7r1@m zk?-a3U+2;~bs4W=t`#biaWp^pzTrYrS%L4bv%pHS2t98(Us%**|aI=u3P6}Ou9 z8%Y84B_kxMk%C^&)o1k%ht5q{2$Ps5T)xQI7o>wQ)FbZLVY~JvE$>wY9a2YW$}wT} zbhNm^6dzXum-;e7;Oe6}_wfp1uk}9xFq#VnGFAu$ty@eK=DEEj6 zZf__HNt@VHFCZXQ7i*^hfhIswSfY(63KzT)Ex-hbo(7WU5nXg`5K9$|^z6is*Gl6d zV_t2#09Ze&X`|kpJw7S!ZXBBM)MtnAp^KnE;buUGmneAY8=*XnCZ{*(o*eNBU7LAK zG`gtD4(+altYpoqhBEK_8|rKK3b z1w}itvH4$!VBC9*UWmwad@>&*v|hmVeczQk=O<=yg_u5>IM5|G40hqsH79Qck`f@M zW4m>rJ+)r9YaJBSMHt@wGSnxIWzDdeuBI02A0Hh{L>e0y1>y{6F zV-kUHa#&gl&9gKTrWIm>FUu7cEnq~@hU5<%YOMnovb)+3lh2^9JxuC?Djqm+lU1o@ z{(WEY3+H|$u;p7OAlD&4;Z>pXdX~Z6R2?yt-f!3MTI4M|oio-z22v2)^31uh_GzZ? zGya9--CpJ;Vsf5Efm~DQT+T1Vmvqi5ja8lHGhXy4d{QtB%+;a2?SFe>Fel8980`00 z-~TR+w~+>8VGH8e+L!!yU^gk=>dhRah0MQdUPO}?Ap*E#-}R7}Z&2%Ky;9s$)GYb< z;_Z!gaU;!&3DLwvb!`Gnw{Edq*iWf1Tt2%$f`#(WD^QcPH5qg3okgpm zGuU0_HainFh^5+HO(-S`$sLGR(oUPbp(*U!?>rG-+)jc$%JeIf%Ljc@)uXkUhXSAx zG8EOBPPhvB{wT~>K6J=NWky2gr>xCBLrys!tg&cgh)q9GSR03!Fb>!kf#H7eUP!-% z-@NJB{5o5Urzi9|I9!m5?U$Z{s-y@AN+TY75`CbyJ+5IuYCesTLG}4lnm;DSn)T!j z2-P@yLD&y5Qm9$V#I*Ty5xRs|Yu6iM^iqLBcH-1gg@{*xnDECuM>`LA(a7qr8+4P?Eu6g)LRvhKJob0@(*KKxUmj+ z0&4eNv|cwEw`oM>dtXEGTH6)SPxc$@2YX4Am!j)e7^svRr!`~Mr?rnUHJk(v5(MVm z#`_VVTm`oFS%aAk!5;Xt$=xlLC zL>tp4!so)Q3}+|Y@aaKp+R&!Zx3A$qAZbMOpBY>>`X}e&h^TP zDXjeL45T0X@0f_!cscOzIabJzmu^G!@aPx3!KKaXz>i+2n#_CuF+ZoUF2jb(FFDnj z*sd01hmrdQpRe#_U^R|-XDgnwE>wY79m%YjOL$SrSS`p1=4q#97oiR)t(!ho!WQFQ z9(6etkDjfc7FrrF(-AZu5US>{^vpR z-v=oy3<`{7Gr0-Z|EKhSRon{R%l+wnt}0jCJc@D}#qwHtYbA4id}+c9ge?rI8 zAg@VRfVYS9RxDdGqP3f}|Ei83vV8SuS1sXIxt6XF4!apD->ez(#R$C8X3-0Mx%%-L zaO)!pi>WI)mS>Ep^@@M1IdPNInv41OWIvx%JxHq8RF9<|mN^{q_A#rJxwu#=Xseqnbk*RFj|OrsYVR-GN8!(V#FXij_S?kxDQ`oG*^$F zTw0qbmRM;#J;7hMIZf~C$oV&-+hiR>vFlx@i;wXBY1g3@_yjnM#Xg+U{xxArzU#_E zke8;oG;k{wlq)|%>O;^DtJk{G3pR}=n^Y0)x?L+pw(v*w$b)%vjr@TXoaimlcu;s) zBU$rLqe(b#b-$7VZ_`h3^0EuX{nV{vU~B7yA*#o~UOpFm1HCm{cB1r^Fv;nL5ylJY z$VJO}k$t@wA!YZ;Sk$zbnlU>#tut61%YjspXK@N(N3Iv>FPtoU-D29drr(}@+*910 zMTR=vnKRy@GBg~TDmkg{bG*H}xZA?9bV$ppo;!6U>~$8W|6iUj62Tj@IWt64u51OQ zTPxtROW_K2nz(KgvQ@Mhy_r;*O6tjRp*PDOt?64OtShcCj*-kbe-R6D3(=~%vj>O} z(+<*^-1)ic^u9feF_*4*EODmnc++$$Bg`oOThYm09940Q*L&C9^{EXGLfOL-R2z9_ zNUdEax5xN2ORilrNPnT?*mrt3vwk><;At`zwJ^kAD8(-%XN;k?Y%Zb6lbt9rtxJcC z-6@k}ccbP>o%$51KyT^nv0czyVd}TLLt-PUlqR&ybGONXxAl=-34t)sE&HC#_&S>r zjy6jnA_ICC+`s(&w@GB?E(&<{uJVENz8guy=Ovvse7n+Yr$s1A<2~m56Ef7tZkgVd z(NCMx5zs5}sV?*R>v_ei+qEr+O?;AXinSBhn7IpANkwDTGe2L4;V`W*43M0aO5c~y zTJv6uUh*>Qfb>l)W)0bMd;K#8(>Mn%cR|FvMLhC&^Ua&s z1T4_WyDzJPb=$Vip58x!UnN>4O6bvmbw|!tBG=A0XriWUhn$DItsiN|i^=dRuJ*`i zhO{va@);FZ!v`juyZ_~mJ;&`OR{e43sr>rQgop6fC10Ub!GzEY5(AXOMyl%?39TD$ z7&}Vi^r~dp$W4f7Ex8+zL3mk>CYrZ1!f*MoS|-)!Qs!zE(G)mxrsO;@py!S{4~oS@ zhkw+mH!Zb*L!NAqvF1si@KAk8y2vKh(M%PEh+VY>x(|gNhFygrjva?IS@`Jc*B&=C zpl4YOqifd!iT&7aOOi{M$_(_{fQn@QPK6~Zg1UNY5{G&`m1Brban{Bk{#5%b;!l+S zzAJY7X8#%&2I;q=PMGJy?=+BaT;W*rIUH?oiN&I{F@u>wz)1&1%sE@jl2vXE_NQy1 zz8Xcwk5k@bo?VY|wD5V0>#eE2aYpvW2? zNBouTa^>z_q;Y=Su%S2i&%47u5(a+ zWOpNRG$PmdQgRKH{iF$Q2^v@?!^Uz?d7fBPxBZGO_H8!ZARr3cG`kD0G|2tw4$~7} ziHb_Im(PA3-J~n`x{hJPAZ*EtnBPEXenez{G9D31ey1FSbhVDb7{b>h-QC{Om%6gf zNJg$Dku@ZaHRSBx{w(>|UXykpkpLk$5R)mf#c=me;IcripRhZNb6qitR4?NFGnNoA zdVlK03L{qFz}?Rr@I-cxnOkhIa^YIjB~~eUnDifhFg3k}=*rn|l|qX{(G_tHC@hfz z4mQU7Gr~G;rnpisgkKT9;Iyo~nNyAMlX7)p$U7@HOOl3y04_3cDHUxv$wd&*-e&?= z1ZCczg-%Ctn+e7vAH?CndgPrpW3B*6`Qd;a)wOm+Gv?OSwxB?DQlB0@DK7`fS?rnm zXUwEoz#%{^hHIHQyyq%4f5l>v)>FVqC&u#)X=JqUELx8&uI7_Ty%|f^$ zT>%94PdU^YfvPv~B+LQY^hzk$Z{-V$fH5TKr@f+EKPbI8f*k_j7M4Hxa7E3$_ayst z&<13_;uzJLz115RhFa9>Y?l3!mvJiR!&I6HuPj_Z3iYuR(|L&#n6TWpNNFxzb`Zxl zZPs2Y2Y6@+nQe(W@lW?_5wwk2za>8=%GK?#3Qy^>+>QO31@=PtMu^)F{sc%9RfCaX zlNw{_s9+-G)4NMoXtq^N=?(<(ZR9tmNYIO8IAc{c7qreuLo)k?(DEAt zs0qn_eeH*iBq7?yIXs12(s~}eu{lX9)^eWRlyXSIld*}j_~pveBG1}~7aeKtLyS?L zozHB60q&QOY5owyouLkHO z3?5f!@pZRoRq)YG8diT-no?|WyCK&M-}k&e6lGU)thq+W{Ly*q%w4OiFzChLKXnjjxRn?=^RvkrN7kR~nb~J#)f~^o2TkB#7@qIx2PyIMR zccrZ53eU=z#YIHmkOfGHfmUDrE3bAz?Ogq$BaC0D6^Q`EL}u|Hx3w=uGDsZ9VrlqA z)e;qEeZM7aR?E7Wzd3tQfb-&8A<{|IYcH2%0L$JH3L0!^9KU;VF?JdKfQ_lOdfUP| zyG(*Xb*09ZRQN&pX|PG+C?ub>J3g2(krA2tu8|K|j2c>5lXJ$hUc(jgTac=uNIGs* zHG_wp;RH~2n&~hMo>X`^4eYxmFUox(eJ(wbsWDt5?xFV)nl?NT)T@PB23}6gO&}or zMTEf%H2qhR7odF9CPk&R(7|`QA(#sHQ6oV;kdguF-oKW9@~)&uD3~Zf#x2T~J6E(? ztV9!R>kOwFk*jTEPt&2S-aW&Gl;3)KdPged#m7QzP?33LoQNwdLcMx9Q;vwJJp-Ws zXr-kxcq#Q4W;r1dxYYr!$x(kJ`u=h2W70H&-Wrdg1<*e7=_!CsnLzsDwhKT}tWn!( zbXv!_ShA#RUt>efx-^djB11a{9&b5@)YyMabtHWns zqUSL`N+mM|jiC}t*4s#_s|WT6f#5VV5^bUw2p8BD@h9w(WlGvCkV|(B9Q`_uI*C|A z8cQ=G=7VE;R;h((#DM0=^nggKj~>W8`YltY`k0;(B|uqyFMhk~c;CO;WKnts#8L9$ zl#`aOW-n&0H51eEGFi9f<29l0@9AhQM3?^|ipf2FF}-OBsVUPYEDOph>R}HMcO<+s z29CV@bt^bkxds*6WY%K4KC@GJt@Fp_!$m4P~H5eo0$)j$Kyd zW!y-)pDYHduNQ}tTGkQbR{CQ=z?%%AhbHxC_on>0!KmgrL<6>^Vcu1aX0x}58<*Zk zaf&f9j>3%R!C6u6NujBh!&rVo9x$e0(J;zfA+to8pvp>xTGk%8R4D#4a4qQ`uA&H( zp#`k#@#mCDQ61MBPQ8zI6-&%ngDpawL~aYgi&erEmAb?7l4Y(s(xbc;wB#LO^Dhi; zn=@5Uzv(S|PgTi5MWtQUWrihv`6iI~|mG9yN3T!5U6O0ZF z*ZsnKwv zgbBlSTFh5trY83PJyiClT^>WxdhR~M1B=2Rm+t+iLr5}XyL_5j0gg^ zfE7_TJ9GO^2*Cg=R5hIVJjyV950Yf}5@WB`>g2ri=!_ixP}fp*As<=>9IOofMLI#v z%H|4eX#fIB)L3i8fp6<>ik;thg=&GYRk8J5^#Vqq6T)9PG4hO6-H^wD_4VAlCp>Vq+p{Wk2>k6~UVys7 zxPf-T7LI414Mh{d5Ay!xI8|AZ-t+gjefc+?4$iu26 z3-l)VJSI~%1Sctv*}e>Hx`XE)s%L>&X;o?|9PT3odZ@`Xgijei{T#BL&vH4Sk|Ku#Y1G= z^5CLj5TnA)ZP7}i^umcNvo>yY3inB8XI`T{Av-KgKkB_N3Ly(BS|b4bh>{`yof!!c z<|4#a-3AVi^lZY6^V~XoGTGT=mlO2sSf_=<;M%L%D(^o11VbIb+yysN9kSW<)z^xX zK6{y|h-s?Ur?@8EZWcReiNrazscmb@ld@#T>YcJRUJc=9(!m!EQB3B)WjmzJQYqi; zPNUJrRe4~~?kwK8<%FXd%0)>O5S4A`z{*S=QsG1Ex_7tyv4D1lTiiqo-4c^RUR4U) z_s$=Q*Kz@=(n@swSB|>*yRHjCJ|tr6Rxy|nRG!W>C6dT}WR6S4b^{1RrPMn`)S*7D zrZydSA9S9udK38ZB{Y&pcgmf`54)WV+I?GsCq)XmHzgs2!;@JnQrug3UoPcrlk7&=9}72W&0 z1wez5Px(B|F!pAG95B;(WO;EWsY39~a0FB*|eU^XC=LO^8u8^cCkUM899=KV?dm<|G~% zF;U%0Uqxl5`_(tA!3~C?BhFU(jaTC3os-Rm>kmiPTo0jdA<^$ihuPj2E;bFt$_>h8 zP4Ja&^d7#Qtf*a6_Aa~aA6=5*+H51YF;HEF`hhzA-C{1aE}R6rgk{v_$>&$@ zPA&Xdn=(2yaY-XUXe6zfnYZ4a6JzsseDo6g;#+8);urg?}WB{s$`wzKB5B%Z$59l%EcNkU~V)%H@Z6DaoZI`mSh&03YXi^Thm z>Wu|YWv7SUpnPTWaW+1H`;}v^1$vjNp<8elKf>X96y zno_Az*AkNY@w{>npH0l2k^6RY&+Ol^sSk!~e32a<)UZMmLN$2?mBu!7SrhxDbv#e+ zq!#b`Kg0|y^S&Bru3&UN%;)5;+E{EeWhAE=N5q*tZ)h_3BinH8!1_8&M(K z;aziPYdjWeV!RM!E@~}CZEc#t69gn`D$Odu&CE&UpflH}T1I;DLp4h?1`JwqstxSS z^wxe5g~u5*(de0$Ng5LmTjulhExNTm9;sj3Pv&8q^8ot}JXQ-F6PHQn8bUhi11(E4 zcOSXbs^nQLQ+u+)mTmXJ^x>1#^hsPH;c}Ii8LUpe-QhFu#*CPZ5_d(IVsu5Pw+5DC zm^z_a;@Zd!lPP$OvTWc);@*bJjZ6lO4^?WB-f1jV)U*mx_^&=3)W*mZI$P-{b%Jhn zoK;qV>TBt4`+k*4$LrXM#)w0WMiVxF7H9cz(LP!`7p?w`_Wc%BmE+}nE-mrGtab*D zrh~Ow&1^9{nw+a)bF@{qw>HhJzx=?vg(KIR-TT8S)GNu3UCu1U%V+RYMl3dmA^-Za zfmSl#%h}hGt_-E%fMPO+%iG6Cllj4%ivDIaU2wG;wQWsjGxO%nrUtz+X)L>Nbt)3ZfkHO zuo#w-ytH*kN+Zsv^g#xkFTo7Bc3y{uO*k$0s!hzT=|0C?*65;>FW9hC>TGv*a29pX-s8|$adlqOt69GC zuxY2XC0;3Wr4??rba1UapK|ipG7Jl6;T&I&@ZdR_2GlF*c>U1EwWJ=*ORRMwAvA`J z5U*f2ISVOL)3^kjYd05}DU>AOgzUK{(O7REgG5v2j1*9)+pIbDxXn(*^OXJmiM(GI zu*Uk<@d)hr^%gr(He5h0o$tNOzr+mXpbIZZLfA=i?KC5#cL}1_*>>oOK}ktXH@FW zHb9zC<0AIel{rd(_NNw)TzYQPi9B(c*-$X0nMN>bT67 zG0eKS@ZkRY)#mkBI7 zqb7L%cO~Yh(Gb5%-zDCcd(^m^V@qG*H9<@hI!IIpv+1l2VOcIaSLuk(OP$#IS<=;lun|31o))>| zIlw&NF13_87P!l^$T!*#Y;$M^*ZwJb3ZRE|p1lM(TTXIvxjYTGMEC+?aS=ox1?|S` zsoR%5i_)X2m|@-%g*DoatikP%b?uKsZQd<&QfU0 z_V(#mm|kqOh#!&ZPfDHadg|B1o*>xGYu#jp*HQD7xVm^vXll?vO*W4@bf!(9*||L0 z=EWG+$MzS;3Z)lT5|2+Z^9>w4oBxV0&D&OMB{ne$*TgkLm7ZwQwL(#ny{fNp^k*vX z_MCQg5_L)$kpu0N5`|`noN0W#&R~aYSh8othwCr@JVZp??k}En1qoX!wNFLs5^@$G z(Ne4c`n7P8>YuEGskO@n`qf+QyH#uL%^P)17%y9u!qDvtwCDdg4R4yGzM+TDH?L1U ztp}F+jNFGxPkUcKJ!~AyvS+_rDiJ7LPByh9AQ3UH%++H2DRy$EfMsHhOP_S7yb&)I zTf)D-G|m^WDJbB#RZ}H87u)VxB^zbS1eZ6O$V@EXK>bQqg08)FlO%gB*4spE*KGtk zT){`cezVzq*D04=+cI|Hv;!^FzG3ScC|QUFRl3H$Om!c@!_Zity>>Ak zw{;l_pHNxC3v@)c9)68?NP_1Lp+Vpa|m-xJ3Fd|y{{P`qB@hX z!=R%KC1NiS~p|-i14T@1xCH3@uLsH2-;c9+KQaoyR5Ftaj$%k%h zf54VHhxgp3jOwtk>YChnp?OPHjSk&Rl`anDtI{x1&|e$jh3uQ@QL)kUtVL^_qYV4P zq)xep)JP84k%RFe$45W)ZS=N5({5!p`V7;FFDi}8c&wSiv4xf%${T784eERltx63h z9gugC&KxIf2m`j!1w(H3CAKm28WIJKmqbf;fkW#VC4wT+m_y61U^s}*6<9)og2u5*8)odZ6Y(He z*T>9Ca@4r0*5RoY;uPCAXbYtz(5b(r4!fEuj*?Yc*V9A97WDDwl*AUT)mF?FfPu=; z)y@M8FdNd=kqt`TZ{W7KPO%P#0}~s(m^q17&4>x%;L?*|DS0-W+ivpJ#qfG3=Be6( zmECe{Pw%%|zp|57k{Z=`gbOFDm?|JSJcu_|_T<+3DDn?&j6X+5MyacTxtpi!oM~Wm zn)@@p1~Z5qeH5 z8O(v9Jd>~<%rz@bR`e?{$3!o=LnhCE4(PQ!IJsc2ru|pm;{ByBgCSvUmnpWcS?=+! z*980wm}b&hI#yOZbX(Pucq*PhKUJwj$)iFM>#2g00|f{B9szaD&x!+p3GkVzV=dZD zbWr1)U+0}n#!8l}sg9@m^;JR#wUFWlPdn4Vm*O-9&%%i3yY`B{@oVZgQUayIFdM_3 z^UaUhdBgT-ZnjU^k)LF&omr};N3yTOH>7-W z)U&7LIX^ed_D0jwmWqX#;+d|=!#7G_&n?(&1#SsEc;?MtYE8DE6A z(cW&D`i$-Y=t$ZI^QQXl17!2J5$QCY#dEkM{FQz4OcyF{C1v!q%YlU0&sLY4(>bPU z8fF*E9WjW!!fh&;=5dkK;FWc}+Af^4QF*5^_A)2bojKgPsNRABZ_R6&x{ctEDu13B zE2nA(?8~l_<^9~WtY%+=T%%M)@7ls58cKj|l?-yu3#)bQ3+tO~70AkO2Jeg|Nrh)H zNCGp0@*5`@P3RaAq`ra%C;#i#8pr*}S)hTwUPgXgHtgD*A~Rw-@%r(`r^1owS2{v&c11@q=@k*_H<$~hLqR395KD{*%4DikIrFJzIMHnoLKwxe- zhTS~*6#W)<<|Py+4UhjCsNup5HY#R$%VLOVm5>ar2kc3k7w>>cDF>!)mao*r7al%~ zial^W2v@p$)H0nsIY_dITg$4Wlk-wGO6)TGvP=RQAa7$?wF3gXv4t@^7-tc~dE726x_q$Cm8W{_s+g?}8rmTM1r6 zxG>&~a<>W4x-0cRH*>RQ-!YTAq9P2&!v=(}Gv5ib0IP-pwC?XN{UFxTV33UU)G<4A zP?2ue0i6^GK_UNEQU`edBmE_955a0-_H#no4X?RQ%3||WaoX}*f1Qq{VBEBYavdBD z=V^W&8*8P)i{?y;8**KdMpAiq8XDbdrtHvCykmE(9b3v}$J+8!wRg!l#eX%;RxL0O z<&-m>1(b2M?aJ`!dh)z=wpwxEaI?39InR`Nw&FQz)6! zXCT7lMhgXc>{MSol=c#)%jSy?=WNQ%cjd)%Jj@ubOSTE9wS~a_I1ReOmQlx1aaA`j z-?o1VT~_oC177Cmr-Nprte{eH7}N39Z%3Du>s7%p7%8}q>wAJ>f5NK(WSteY#dAck zNN%Uko#TWv4h6xQmZ0j_)41?=N!9^LU-pezsqx%$m-KbvsOsHx+NGy`d;jSa<8oA% zWsB56I7Z=x^Z$W=N}stZ3>v@zwuXzD2Nt!DxuBNeGijz)`2(2aHU)~E5wq~(W$2a% zXy~*Ma}vac2n4uGm0t&BSd$rfB7K;^>8UA^vxQYBph^e#i_b$TA@VE^n;NYT=x_^M)XskS0AC( zxdQsMP4sIz-IcD6ZBx$`UCnx=j_vAb@s-uV|LKmP+%y*!UhIv4bHz1X? z(a9;+*XU*zMcf07V6^{IxFNiK=Z%)@!3fIPGMiGBa>lbU&^R>h)m>VdGb57Eu&t)|NQ?{-Elj+T`Fciom#*kankR8@Uj+6m6ARv^tftT)=<{S50nFac4|Ka5FjZ z-v^LJUb&S>egPWvPYw8Kax_#bEb;LJH(%LRtXG|*RB!MK73!#V`+#zm8^8;y^;tYTLDhDd!u#(S^Jm>^{ zUi$x@RE{dQ5?QPqtJAy5%5odI!7NZ!!@4cz@vXZnvr zZ4ryHUv?o_73wLn@gCKzBR(Y}gMSLQKsff1XF_an_Nsqb`pLX=;f(cS3}4h#ZIv(Y zt@+{B+;|dPPJ}_%00~k@&M;xQ-+*LS2vWx`nkE5~p0Y4IO{5sngmK@=9*({^-cjhF zpf#XgX#zYJo~|DFj@U@4s_pO3r=8wKykXo3@vQt4Cpxm6I9TQ`z^%{YlehT zAY;BbCava0X_QkOjqHFK)&}6NC&Romt>W|@OzNVHJE*03$*uh$qv*hSdm&ED-4`#- ziPf15qJT-9v(qSw%SqX{oeVZobnY2U>q|4^jql_07D}}{%SJ2fY zb*HmLnt7DM`t=oA6G+9Wm=L}76{<73T11Oehk1$F72a8o|4h+L?qS z6@2LS;Zju#%-Yh<^@=h$mcoa+z)@0zV|sP!i3^0OOiPPN;H!H~j{jThFrL!G1y2eA z%2H|pdOkr&gIsnvP!VB1HFUMz%A-*jd^r{IatAM7#OKy-3acN2y0t#?c!|8uRg|_V z07yTA4yuQi6%(3-Qg!0Fd9gLmArT>)2p|9VN}9V+!54~C$0OJYKFN*wrU_+|2?#MM zjhbe!RzzcBEFZUE&}bPVUQ|K*Pmhn4m>X)#0&c`8Hs|;(!o~G&Qrmr_zN8u&p+u6o zxG&Dxvo=G=26D*7_QvqjQBx$MG;E}wpN3O%4LHfi)-9qYaIO51zGox^d?C}pAwhcp z->_D1f$_g+C(Tz?QvKi-DvEtZ4Pi2`OsaNtf`hK=+>;B z8v)ryj^;tUR*eIz#V6}f-AwqzmuviPE`Xz>f-9l5W>h9d~2v- z{r9ttEy3X`i~)j)j7b^Mh|o{MViZb&BTr z0MkUXpC(qArHki!XQolW4wQ=ni*_;<%)(y>IK9RcCgFO4V%!Rt{GnENyh421W+I3l z4b1%FZq!SdyeyBb7LR@AI77xoh8Q>vkJ;@(MK<#A(zJ~Rg&a++)dNSrAc=DJ`b)7T zCx!oLFb&(UceUhb;W;Wgx*Av5Av{KwLbS8D8oaB;Q1Wka*B+YYt@CENikFnC?jxd7 z`0k1_&P))Rs;<}Z|I=29pyu+SI;@oA)L0~E($=#wmI!n|oMqj|p@TaZ=&#kVg>KNH z8(Rs=>-SFRb6c{_k;GXzO&r ze8?@bWQKffk(PkGs~?$lWYgMjQpCgtDre?KhEs16)8r0F(~Av@GL{%rDkB~V`XUqwV&Kz5B$4qj!Z=91g4hY!e9e3dn(5zGrtMq8-i!v%g$ab06s1C0yp0lWx_Kvza}PeO<>j#en+Z>PM{?2I#>94+5xwOZgKvPsrg3!EeZ zK8d?19M>m@KZ#;vXI9eZ1bfEB|Bl`mv7QDGKJ^nI#+P^m)-&o?Il5d@-*a;}vPMW> zJYE(Q^9%10W}#=D^KLwHKRG8+Y)w5}pndie;;B?r5`w6%$-FnEPt_~Z^n8BfvU0Bf)s|W|I zDbhk{q1EsOco+rGJhFf&VjeT^JBYvHfv-<(4|i^@BIS1*w#2pU%rc|1XBw)VLg@Lb zrKd{JTxQSS5^bzXhzPb+!dC0vz#Zl|T6;Tgv7(A~qTh)--6sN3-s#mr*(ntpMWrbA z%$K^kR(u;>z@V(Jg5=}DF0U59c^ap)Go)&sPh4$G$>K>j3$hN^a33=@VS|IRwmPC~ zPMP+u{k0u5a>odMdo7y*6a!P6V~vHkMND#_W2P0781~xj7Pk3ShA81ndDix)4o%3n zmaOh0GtZz6dH&`7aL|ZfGrMXAu1rGG|!kxKX3CuWsBC%lNZD@P(W}P+HQdQ zhmkh6D>?elQO%_X#orSV6Y|6Qvs5ldZYiJrd0G5|H2F&8RrQSPu6wAE+UC51+khB| zqPAC}D9^XRl%BM((w!T|)u01Rn&7cO6ZJ#`0>ce=)c14clOsaWW*X+Nl6975xTnE{nb8wTnP$HPVqa?dE69SCbrz`r^X=+pDT{IMyC8<$ATNXPNjYdy2ye?Sf-WdxK=};5BNm#;xbm?^ z4vfZ9O^A_u63!`w$bXhlxbv=-pHbw8WoyUWWO0|N>O zUek8xciha=4+nJD`PV`1&r8%E#h+3GfYCmpZtu_c!DyU+o)-&gWCqON794)FTDl=bc1aL5}(`vi$eg&5nP> zcdpdO-Mawscdp~#%~!-L`mfQOR3>yl{P)jmT-rQpx`Dzj!Ts$_ED+eIq-L8--{}w8 zoqzG=FVd>l#{V12e*s{z{MhR8p;n-h>%*V57%s(kyvuO*Lwu8ad+U?N33d;?&cJvV z$K~ng=nMn><#8tf_f=yb;rpXbmZl+757djEJ7nPdkn4QwUMY|Rpd`xOV*H}wT=$Q+ zdDn6CY=E7?SGbdYP{)5-Qhtx`s?zLVXjarXHryG>e*^kl&QS@Pju%4-m}`;EFU z1p0R4@ruPR=~ZJ8CSoA)#`iUT^1YnUi#x=zV2y zWctsy@YLzisw=Hv|2xJ5JqPJ9pN%2Gr(2Bn^48-YP3|JHg1?N9^U5K>0gjZOBxRJN z!H2Rxu2qH5ZSvB;B@p7{4Cts<~zen!;=l-j=UFSTL%B3UsSRul{;r0(m-nUQr z&mV%6;UBWj$+TVo4_#oBL^zh=zcJ*P-u!Pq$hQN?&b0?we*gkv(Fcaa(~ZFQ>q9y4 z3}R2Z;yciHTiCTh(RaFde_?Nhj`M~?GFAR}?PB!hUEGerqC1V()+R#9BQZftjNTN57>nx6!G+lmboZFyG;p6+p zZ01}D8ZUyq$M2SBJ>0u(bI3wCLS_D)Onf^+iu7st9$@St>w7635~rGyKJUmZfm?^&5iFa`q^L0Xg)s0clLVo0}#v;eei$o zx>39F7k}FV|GF5qYaIJ9xVeiGThSZ|XF$zCv2Z$}zsuSgjvSKmFP-R>ea&7T#Ta`c z5mA`Pru?~YUu89j()H*Q1tNh)yo2mf;c6%Y>+mO#xhD04XN}X)zeYkq1#K=TCy{dp$+b&93-hbe+6TH`E|+;)#x_WR;~N&c3L1HmQ#k>1GgpOmc3+3IaQ zK@uJ#9kKIm#1CmGYbeeFV%Np+S7G!`()kGWV-1hO5d5=#Qz{;RrAhG~l`~z+{(iTs zLZD=X8JZ36LxV?uU1~aOI`IhORaE)rh2Ho9vVHFUPpu|M9OqBQ#pm-dfRe_v<9Rgq z%wleW=}RH8a15y6hAFyRq_#LInP^@!{pU5*)Av4w|k~Zy`cQS`f@q0?yj5}ZmS!!*YIwp^-N4X*)vUG>> z)^?h=+bLsQV>AbfP$_(MQ?fSK+32dm|0h#y1oDfPO$q_Xf&cm^hQ|o)jo^%UAPS~8 zw=eZxnmRb{NNTaGvv~E0x!~-}m4eX;?*-e*m(s}^jR5F?jj6EqpCIo-eG%%>+?TOx z7xS%{hkhTU${yo5y)k?E`YN{5y$8esU=QCGzb9@oByXTHM^ zaH9YIHjfTq!$Ag(qGIaE-}NjNK!Yw1dE6kW8!FA!+ztLtD@w|glI0`M9zF`|jrqDs z1b&`$UAe9SdpY5qd}iY&rT(y>HNO`=MA-|==d^N8Z~wX=8uqEpYX95m-W3%1QCa0B z9?~w52qovw`^9{aTDKMlRxc29iy)Pjm5{pQXif}~rDiMT3gjf~V~J3RWyHy}`v=^c zi0fFCFhbl9K8IHS=k>t=5i`Cd3@r2=AxcXyEKZhkIqxtW#rX8MMH%gVOxZjp_&Z;B#PTY^&QUs*kY;paI^&*m_a|6aWD z@NuqiLcRG=E`V?KHEORr7+Zig{)gtv$^+Y^5v-11A$_+$@s-Eoa*c{Mdl6pc-(9G4 z+J|=}nUliZiGiRstsQs3eqdOY1gBr|cj~{?-7e@UdH=QD7XWBMybe`jT%&H_Jf;I(ysJl79 zjj1pm?0#?k60DO@CSXLcOoZV?ehICk6h*EmKsZYKkGz`g&ppD@eRqj^7eV!h zW}@lcSVe7-k#0_sA8`*9m~w6-BqY7TqoaFPPy_HZs&<+F#x=HFeF*cja^>ezkw-O9y%XRw<1MHFKgR@; zhLY)LDW{yA`Kx(6!w92@pk4l4J3U~jLD%sbBXxg*(1$CJ(8_RMBR!4_W*s3Z#MO2S z_WEpwkIT}sC`}MJP0*o1nII_V-+7c&M?VwzgM0~`hWYK>IIsNhxLLhZrST`leD)76 zQ5dn`jWTfG^|{v9?K34MjSR=KrF>QHlTzI7QmQo+@)Vu3G+$ua-FAg4(m#5-}n9kS|oDlbIawanfD)2-qT%-!LwJPkP&aO z?@XN2UT>7Hhi^u{1I8%eWeCjwrEV1y?9fj2S6&kQyS3JFf_?+cEf{Y;6$z;8K{2)@ zihd&Mk+0)l?Up7`e22{8a_qG}<{zc9$O<9K$0#cl6hKQy(%JvRSq^~_e6c0I9Iga$o(h`6~wWQw;y zt~mn^AB0vS9TWHtmaA0ClFWuf(Nli*EfyG_%zlN8pt6Wx-6H7yd9Dq6-+6jDLon8p z8U44~jY8@9hT71!x|uF}O@&3pGk^N$o97KW7GSpPl~Vg+rg$;DQ~U|}5XN-kaGMZGP=r_%SO1t^Zjf#Dda9B2n}6ErOc=4tM}4ao+x`B1$wRSq9G&&+(Rycp+%G+*x@f*I&=WWS zKmI+N=Y0JpDX%5`9=r;0o5MemEclenM~%i9(#|qmjiT5F#LD~rH$+d_fjnOkQJx&T zsc|eAPwwkdsn9S&@Bf`_MLZH%XP9RU{oHC=#rYv}JAiG2|0IHXau!N}JiF%IJV(s{ zkbb^^6g6J26h``VGGmLfmXSVr@R)NTZ^88hFr^xAQSKI0u1|i#cdhzTI0tI?6#|&F zwR!`ArH|(4E#d%HZ@eHTwrNQRLtdvkT*P9hA4pvRBdHu(SzVcCRZwTIpDK5a-op-- z-sEo^EV_x$J>`g?z|c(r;@c)0Hf%?7ue9AU-F-Gzhp-N1tmO9e2r_3l-8?g^Yg-Qg z3Iu(7QNL;rcLLScgGYy}Ru;+qf;oD>7jH_*_=*B8Mi-)AOyr|}GJ|yPwJJQmP8tsr zA{pUIyE#Le9O4Qo!J`OfwC|&adYIZ)ZpWJr#iWp-vV}jXP;bxuat=w1yi}ueIDEr! zB3^e~GYwUOh7Dpr_;h~Uy(y*_^{+8OFH@C)BhI!odKXPpmO4ryy4!OgX%%?lS0j=5 z@c*TjJz{8lH3}uXa7NwyKpwRKDmvufi@g}go_U$pj((x3bf=^wW^P8&moxZt zBqz1~Q-#RY6xMBfz4JHD-`pGKNN(!nk))Xkj^_w|D^D(&Vi4N6QM&&)tLv=v7x_m> zn1e*v86A)Qae;GG8sv#RQi8De@)J!oz9o6hzefY(GykJ30r1+K8UB$(-^o_r$0Xny z=dtf$d97)$@99QWMM-_mVCwda@lnt89_yS0aQ{ie&o|*(?(Y4Iyyfvj+A0J%i2*LL zpNWp*M@->**a<9A2R90jgsF zF@t#6ZjqLFa)3X@!=b?TVJPe>x9QOQYJH?>s+lyU*NMP-{tAgVN^$meG7@QQQ4@(da82 z&HcA;KY2;4*Wr!TSLoU+&CYws&FdS!I-l*~??t>uMa+{ofo}YHIoNjx_2PsZ-pKX{ z@y~fJ->KN0C`{Qb#J$fCrl3byA4Mjk-iFgBWf3&FALfx^c#*=BBgfg5&3s?zYO}SijMHDueAMI5ZR)736=} zcX|H_5(NkYg#f_-|Np@MH6OP>0w5UldTw1#6KhA?pc)z+|Gn@zxw!Z_{%m*iv}W6L z>UX>DWerkYpp=A;HZQ5677c-Ut)-t*M%>MEq=qrym(y&Xh#ZLh|6qlFz zm^(`>?x!?xk+I3`iJ-aE=s;a?!emw)+BZEOZtw44U$s8{y7{*BZn*V&otKw&4MgtB z7#V1;fG3~QN0Y6DG~$?O!FpL6?J2m8-5F>bD=g0Wu<4o5Kxq)8%L{6%9c-QEuP3K6 zIqY?N0b6r(ci3Y~xnOUjIh+GCHM;G-Z}YuGo> z3_-@tB$A(R=&}i%&50Y2g!i3<4APJ+MaT*^DU*N||dt6=n6& zuC&I{)?CYS=JeRRXOkGcSaH~F^V-`?U-*@zE(;7TPk%qAH=Z!)Z|5d=zUUc=^YZfY zbw3X+EG!IeT>;BZPT8bR^Q>y6W1W^!{R@Y7WLo&eo%`xydZ}h0yNaYjPPXkF^9z%k zo!}YFvwx$*SM8$mR+Is7t2jO0)}M5yJ+8N0oO-;z&W~8w&AqWBl|iZ&Uk#3ZU_j_F zvFlSVuoOa*5UPz6S?*-YadPT-Zcg_@%l587*?qh^I@`BhoI0GY8rsVv>f-}@^5g5v z*Lv(QYPTIb9)Qf(H&z4)897N=X?cl>nW?G04GM@!NCpN)M1nv;KYhD+H?OyP0B6xx z&?b6p;8JM-Zf4%5rL*nzEXtQe#0hN=~XQ&YpX%QcX4xyDuwKB&#ROPP!EN)t-QZ=;bo_3ZLfcZhDbe; zNy*G^1jePLq#}Mv{7z2whBBU-lK-vlodF0Y9qX7lW|dR;2S(lh;u3rf+WPzHN3U3M ztq)@|d+c@Dxlhr2OBKucsnoX4);U5;jXfU%@gs~Na2i_3$)_cvKQ!=VFLad2c)##` ziVRd7r*3@??9bmvN>5N%+E5dqV;q)Hh=;xVv~%n6+l6@kLTplMdhVb%STOK@;g`41 zuuu@gCi}<;oU=PC6N5`f5N*NjJtfG- z;C$dj$H(&v&-agv8Z=bv9O(_%RN7b!l5L04^lk58Vnh8r$_u}s-+|z6hc(NHxh^_J zNx&h`Xx>r!+&f6{ab3Ze z5^(=moawRE{S`b|XpEAevcS^N(CFgq?Bd+e*vQPnJinl<0_3L1ffWCBCRnw`0R?Du zkWdxnOaqob0?eGPzp13`D&Hpv^U^|&L)Y{7rk~r;%0s((%vya zKbzbpC8ch%O8QD#ORMwW15cg!{DJvOPUBX;BIXb=vSKnavSG0h@V9oZwR9}2^6@+) zUQRg4&m57!=W;7X9xN=Z^bZjA>&$da0?5z+jkgcaj;(g5@&0vH1raIjM@9-1JT9W= z>97!st*4Oj{A&w0QOkP$MTz%q?s9K3%Ib48q|Qm`)V`t5jOkLAiHn^&=yA*TAvHLL z4#-i9hvywun0!LYyo2&!8m+q(djAVn)x`K|9mYSNDl8%N? zBP%B&%)iO;IT=Bx1Q<9tC^$H<mIeylb2bWzKrc+4)%3oDu zV{2t&11aINIIn4-qo<^jhDoNOv;I}KM%Lt=P=Y<18DTUq*x!80kZASN9U91;;57y)0Io)8-mte~kZ zf7OVkB#^Vy;Apnp5J{t^-q}2RmG`&S#CH3vic#7wExLDa)>3;P<%mN%AzQ&hl zW3z$=4hk9)8-?bWq|V0%)G3tD_eJ- zw`Yf!^NW%ma`v`$sSnjSvGQZ&*H;***k}g&8=G?+%U!r62dEU_y*#W@Y zHGb>s-yO~005>-~9Qdz`(Nq$-VlAgSpZ-v6EHo6H)U=FvjZaU@$G6Y>e>$Fs#11<> zAun`9eN&T@)7_ey-tC{>M_cFX5M%G_=bgz%#qALk-PLYp;OSCh^83JC1b=Gl+8(>+ zE8dTvM}ucdFm`-bKkxDI@IaAVAGfj@bO=_qYr6nX&Q3-E0Kf=|$-xg4@aX(K9M#Un zc>P8y`}Myvj7pD-++GvI0~CBhvO+=%5-veWK~Z68>Bx_(DN_X*KQ*p47a<`dBPS^> zH9eP)%ZXMSot+-PulqNYvE$|C<>S)0JgTwx(W$H2ow-@2x;m#jC@AO%C}?QtTc>&^ z4}o5ZlE&f=QXVdH+F6Ww;+ufkw8P7R`}daZ(gg+$fkLA_B;>?|c$EM`>Hl_(O)dd% zk9$)SUTNVcEG{xMl{lH<;1jh5y_VQBDxK17(9;0}8eyq%QFis<5BO~Ly!mI0RJd9Z(Mn=Z^I;UHx z@NlWIF{*OQ(^D)2CSvFCJwiIPHDKPV?3k6tLceOZVXg5xKVflPWTealJ?#x9-o}QI zSQ$}qF^}-{nBc^y%*?37?2tP`HZCS$_Vwk?kds1^;NU@p9EKjPtwF1=gXQN|JyNLt z56Q7TE_4KaAtfm*EiW%GuJpov;(;KLFt1gFxdarHeWQH4+TWFGZ)$sW_B#4nhd@A} z$A_XvU|&Y;4<*lj4T%sfKkNQ!yf0FqiWGZP~N*l?6& zC4~9d4^flgVSxM1O}%)v{v8XCh=h!inwE~9k(rg9ljpGD5%Ht4iYn?l`o`uKmM1Js zjr4Rh)l`)grlA9xo0*%LnVOowr0Hs^D#}QT3JVDc@bmK@KFrI*#lgnH zbcp^S9W4zF4K-o|1waoDM1YHhvAgqaXBQn4mw*I(=MWP!3kwS?D;p~dGcyYtI|m3S zH$P0TgqVb+xCjpm12q{Tc*3g}(-Tv3Z$D!ZQXFLCmr&3!IAMSBI;7%WzQ`dWJR%Y~ z?}PRF*{*tWqHEPSYJo;n3Ald z2tPL)^C5cBmX?+dk$v1L_ktQZ*&gzHPJ{7%YwhjZ_aDFPVqinuBcq_CgozjSF^WdTI(%qJq4f?Cjiv5{lZ!CvEI(ZES6=Pg+@8oiI1n*FJ{) zo`;>0mVy}KE++c!_nq&%5EmgTVnVEh0E2^zyBBuw@IV2G$upDV^Gayw8ffJ{nx5xdP$k78-l$H<^m5@=@HM6^T&GE{GvkrDA zEldoLYbqnBX_kXjq(r!w-#1rZFHDaO_xC=2{J5`waQNxy#PiwtC5W8so7>-ZzVCc_ z(%046+}POE+SxZUJ~=fpJ~lQ!`5bn{@h5|j$aQvhboL+_!3%ik^{d6j#pRW?PoF=7 zp?iR!fB%ApMMOcz#CcdmLPkLuNeqwgiJrcpi8!*@i{@RDa(%wBCF%-7}oNfRx35pEU^0XbbuTRXe6H{1ilV-k|nlH7SHQ&QXQv}+dXTT1qqU|O zGx6@q;^Ieaauy+3wc|#{M*7<7YMQ$G21tm(M*Fm~FuR6BC!}`r%I*6%9E{avgqTRs z-cPh;`d_}~8J%E(2Ec7(A^exWa^^ec5>z#V@@f$k&&f45S zLqSrg&;6_R=Et?PbWH7UdW9zBRkc5PvHBGQwnajs0}z`Tm^pa(1%-tK`FYrxn3!1^ z=^)sVVy{p1)R$%_$Hjm|h5CEmxpvO(^TVB;k4L6oefYTb`Sa$d zjrH}-ZxWOFw-`23@Li@ zjY?4KtY=hqWo!S_F*qJgO)so`+`+^pgx&uD0S*S*_ivl;UcFqJ9d0g6j_~)q?|jSg z@@Z2wF-|&STugLyh4YFJ!$^N&bK^9cxvO3JBd z8(+txVP<2b#98S~K2LTtxSH9@CpxRLr@yyz;u9V*F(J;zP>v(z<-#f^Ywz&Lz&kg+ zvIlk;NwxpndsFJ?j zrK=Y$ReA6qnKFO#?f!y)fM9o_C4wiMu^eB__~QNc-r=$N)vuU%a9kkVook4;CiP^_ zW4f5!^#PB9mL9TZ9+~5o=4R%$r!2LEsXn&GoZ{R{VVrTM?vRTbArLfh^bQL0xnrXy zK(*26!{fV;S-yNTwKy+5+S`gB<29{y`aHG#<>2(PhUVtF zvYa?yONR8YTH*Wgg>?j^6jao-v@{fiyNhj!XDRPiKM}tjUEDQ~LB)MkPC-#w$HvJE z(id2|QQ^L~EacdTcis)ApTxTUWan}nI-7#7fu;mA;fH~IS4Q=dtUfItiRmHnVB;2& zQq?oJwzE5Fs;ex{Nr^U`YQC80O<^5gKC*^O$;<~O5_vgk2~lBw9!@S!78?AmnXa0= zSa&S~*SG<}Gu}S#*KJIV&8+RuUb!EfTJd;x9UYJ803jac=f&<+o7Wuk7D?Sp+gLP* zSXiM5POvjm9jMSx@lYnX`q}G`pFVA)6CC7|ls{&0`d$DeFFt{hiRqbX31MCr4dg^v z(aMguNp%|KzagX`{?eD?sK79zj!AH>;5i<%h>Yw}2}v0xEt6A@ZhoOrvGGv)f;i&o zXevqjp~9KWy0nhb+&i(Tz8%iplapgZt>uMzImw}Jc8Y9R9S;0%Bo4_9eS>YqaXvS% zyM-hd)^v`&!z897%>E zR8%C`t7BaqPe0((aLZY^_yz?A1cpRJ$0w&G$Ax)aGEo($ejZ4Qmn8W(afjbbdFArbdh{y-(^@rY7yK1=G)GPiN;i)b0()elWK;SzTisgAOjP7#`WhD65a)Q@fw9THH`w}#!x z;j%N_=G=Gn3XD!Ku5Eoh^lW@`;@LnuTyc1uR^uc4*qh^P%s66SOo$%v_-f_+_C{}p zzq@yEYV%tvxd%DJo4EKGD+48A=jGU#B(Enwn%%~ugqs{OF%e!y!ucGdmUmSQdM+Vp zWvwGK&!2QvCf$`7pSZ!`-td){M@W#1j$q?)lz91s^svOZa>6{Fg3S##PtOO}>`b&2 zAv%!beE+mm?@6thuA0|loB!nH>y_0_bX*cT4iQB?%hMOHIlKFXgoOtAdV|xY6jZfz z4?LZmnVXpy?t}u4?-hM9dd$g+@JsScB;@R>XWhK+o)98j92^{dI=W7$;gQ?7@*RC^ zsxJ2O5%e0r+bP?s!Bt~xSj3R~GSMFR*cEkbq#G{}Tl`#bc3tn-^ul0e%sGZ|-KTmf z;{=>XWhD4nD6v=C0vJRXYF~6+Y^c{M_`<4SVt>}oP*I4P4D-YD?&`wKSXWu}rgqW` zl^=+xXsF?Me~6i#M_5+V_~hx!x4nX65|iSig8lsh!s4?^Y9Kf49eVogNqe+%9h|&FV-pi%!vnoN zJbXjqvx>{1UWin-YbuJf;(}by9GBugNJ;?vDkj>;rIEU1_v4&+%N^O#$z6oX?ul86 zp7Kvz!kMllRQC)IcU5Nu*c^<0`rs)#F6Nu2z$1|oGF9ZJVdXlvQf@DQXV7p73BIGSIDV7-R7~~o(#M_e zo3BP1(!I2Z%4``4X{D~jweN76`Q>(u&(BZx)nx`)msT>Ljca;=NzE;#u6JBXn2iz- z3yx<*e>~@yWU~R1(o$pEl?pI8t8dcU635^<8sDSO@fOGYoR68 z-9Us(NY%pLT9c1(eVu?u`^*^~`oh_Gwi}7neRH3%h)9UAw_iPN&X06IXKr9%=5Qw< zxx8z1W@@lLGr*R2T2k95r)vp~h?YY{MoH-?FD>r7XU|@v5zul8@Gz2LuMOup(O$?+ z8XNLSj^*}z_;eL2By@D-Sc@GG3oF})o<12Kc{=f8<>Oa0Ol%xn;)DE3Ms^n*Z{5Cq z%kknFd;2q&oIPO&s@^N?_V%>amSn^PxSlhT=c7g&E%wu=9S(Nztlec4;G^9r^STjS zw?WQCx8XaG&Uq;~xwvC~myn!_l9T`&eS39ra=8C-@8IantM{v~p4BJ0NN>B?dg0cN zu40kUGIQ~Z91-G#)Uhr#Dx>o)F1>)%Q9%|;B8=tMNR__fcEJVTB0-<>C(9d1UG~dz zUrBs;Oh#dTYD{EIYGGa1$ixhkdf$9Kz%H$8VQp;%l_x`};#k?8yY3d0n2(%!N(!=5 zVuC$yozj!xBKy=8XK^5=Bt^~BP2yygX>jQ2HM2U*Nn$rX&sgV9j3I8gT)7qBJo_1& z5UQw136qwV8pzGJs1s#D6UglbD8)0~VnWA1meVK+4@P2SwSKaWOM?^+xO=HWW z=7y%hby7|-siUGo0z%?)$8-$Mtn4n_@rz1MO^EPwy=rTuCdJQ8j`^xJ-Wty=GI5h$ zK=d%}M)66Uwl(Fjrm5MUtn=9ZQOs#y4@`NwEGc>>7B&nle8xUN#lXfZBy!}4Fh3_F zIr@0c8FU8bWhLLDfwx?OQ1_CSmN?9SGoGry5$^Md$||9IgM?E`Nlu87lmHKV`*~gL z-4l8z??>jR8f$Z7Cb~s#w=-k(?2#XD=R%IIygAKa&+zc?)DZM z0UeKoBAgiwj4jXI_VjkUY$DIcK!*2yWvsOz;+p6J*G3z?x`Xq*Tc@>n@kVkYWAeLK zFbVK?rrW9-2I`m@D`Ibp#^+TmvN|NRFJqB2@rX!*nnE1Z7*CURdc5;^-Ag8RNe`)L zXlWc%k`|!du5;YN3{9!5;=CN+IEP7lSXy3!ofI1j7Z-hHq`n|MEi1nuHzmT&h;bs^ z;Z|bn?Aqt8wO3Qm*9h4atnLIv#zX~sJDrf_6Hq?sc+WGu=ovaKuQ-%VWu&F$kLl{` z$RDP|+gu#&uFZ{nV9dK2$YlOj$i^)o$lv|^F~*flbL^DJ9s806G%U0?UH6Wz=-4Y# z;xZ|lsva=7A{yTQfq<5cPmrIRkz}(oTq4PJL^-T=gOpWRR$E6?S(5({?$a;^679NT zJbjAOVOiDvudygOgpY8Np>3hz;$weV9`9|b%8&Q95ydOxRCvvCz>ON;%p)u*r>uL0 zkWJ3Q$u~42#K+l6nylwO2j0OG<E2Etam9Pc)U(;q^ z3w5OrNuo6SgSf}Cl(c2e&u z)&WvtysgoqdyMWi<0@h8o8+8giW*`9?9|vV8+>VT0?CBvYp%|lL=;w5HTBPI;M1`( z5`Td;i9>*kzBb!inQ%vDCm{9V>73R_Sr}^L=$i8A-8lYkt?s8S09jchBhw6E@Ii#ceV03vyC!6p3)_ z53$;YWEG@%s-VSNc`O;_j*NA-jBJq{Vy44?`S46%Ey1Pay55n&)`B2IoKqo{;72gY|O3s?tCAW zk9xF@onHv>H#_{OSya}f?q~FFl5r`XydNB&nO~3<>uo2Bl|@sZZ0$yRz3BNa!2!Ij zXT`p{)FVNX>&1z6ct%MRMBK9K8VUjwQ+IB4=sDZ5M(j`pKBH8;mC!W%1q)+!s4&FU zJ+}SB_jhw|aSrkd^Rtp}bw?`|_>75N@(m64uoe1n$t{@TLe|I^BC3OQltlNr(nwRN z4LxJilSAyOuaIGwh80znmBQ6;*`u-LR#MslsJvAF7V&-7L8S=xC zD`YzpS^WZ!Nz%k6B&D$CQOBd|oUkhjG|Tnn&*@LbG|z2*`#4h{BHyNec9CAZTu=GCCI z^0uL=+3C@qiUiM7>PMxH-;8|NJNt63H~#_iHL|T^u2E^(SxF&IYNYv--2ubsq?9CB zpFU!>RoHsv8T+Jl!^n`$kgOTWEu8Kvpm}lmr8FV^{litY{-4n}epElkt4A*Bz z`nr1r#uqgYJRNGuay^{gUCCh|kd#x9n;hb-LDj(7E}u2EOF%-!EN0@KR697cxcK75 z%MAY4dcPDETJwEfP?_fPvf%lMrBhemB{a;$bGnLU)jX z8mrrma7FHzlz!9%F$)u3ht2hHZtEL2ZrpL!TWSzV9sPoP0C|dpjD|zbJ|MSka^(vK z7RI;L*}>+ASqV{Lp-AsmR9K+by=(TS>Jl83*sG&WxgqBSW>rWmlH)ZJt+B7Rk*T>v zWL35g&n&d?%f=}v zqhVxWqI9UM-i`52Zr|%&+~vi&>4{2bmQIF!ZB zZO&e~^}s7IJSHwKIxNup{uL{AA@cb+2Fq!U2man?n0VLIaHUVX1x9C7v=5Cw?QJNC z_jf+2%#Qsy>at_ju2R@DYDFtsGi}&gnaRFSH>LU5$+6Q?(a_UV;mw4GtM2Fq7Iluz zFTW|yNlT202#*N&agd_ko*tWCUjO{<>-)hxKfP~(ukM!hG$&fDkv`Hl=L*6n&Lp=8 zN-r$RO^pfmc5`uZ@d!yN?;L*#0KS^+E>H43Ek*INJ}0Mo=siB8xc*hYgo2uu_IBjp zm>uVLUXG|3E9^lJ8W}AW?lZ3|?DcpYN44zS!qW;0QbV0}c}Tv#oShyUoq9(m=ae!; zC~kS)Qd3r#>kv8CtBwqh<19NPwYjlwQe}sXo^jX&q?gq_ks7zuQt?!7dWBr!hz`7Qf>U*--Q=c|1Bg)Y({3oR^)IonO}2 zJ2v-nd1-pMwK&$*fMYFkZ3In(|08Lnb}8l&hv3}i;hCl7<)xV?9c2lwDwucu{Jsg9 zUUzf5bwU&?v9;n{X3r-oQN7a_Z8fzCxjozRIy~=^yi2jftOFjApNMUpU*CBDa%SQgw55zrOfS6ou=aLgqPIRb!bz2C z@LJ%I{}?_U9sYPg{Zc8NWoSw7i?y$4aBg0H){yLUxbB!Yv4K}&QB`e4Zp;I1x{>?q z;gN#D?Q7V$=nHi*PNq;2cz%Fa_fB+i&x>sa?elhWOcX@87$2Xvq&f*Mxnvn|`&Q25 zvq~8_+;3s*T=X#41+Aj)N`5g{xkHBti^ENMM;aUn%} z?}W0cgEk4BufJoUf7^z5@on##4--z{3xjo;K^LU(O1N`LLdS@ObWfc&I)a^e!4g9+ z_~FpE5#`;Rj0;g7O>S<_j8ho~+X9hd0iDh3iW!9Oy3~ z1|fp_{m0q%oPd+O?}M5GjPn1S-_-V6%bd@K5;uN3-rgJkvXBn0JX9g zPrE8pymY9#_0ni!#xW^bc=&kPX>gY+?^E!qEx&ucFf;k2DJ$%O38k9_VI&9E#oYd} zDtCT@!#*85RO|vmhuNsGKdh6;+|TWM^?CnRi;{|xjFzEvuZ*DY@b4tIb_>w67blCi@zTk^*lW z=f$cuI@xx!6@yvo_{lSuZn_4<=T;9c?vRVh@epo&eEFoUGCkm&Eahxq-(8c!sgLLw z+lw7B>ZRWgd6qqWEh`No&QA2IHq?mqkYU;s9+R*bFE#q|H!4xX%lF*fZrLcY;=Ed= z(elpg7+-w1i4NCURB+XWzCPDqljeP#I638QVBc3Fayn*S2^C$F6DKY8W#}igPvkJ1 ziYV=#oPRO#xFYr{Z%c|bhK5&q!|;pupFVGGyjz?c>ZmPD3Ubot-cBROJzkH^t8vN+ zdLbhcGYe{Zp05+Lv5~!Bcrn^mkrCvmFLnsM`E-^V(>dP|PZJ__H<`o<0v2H@xd+go z?RMK*f^MJNe)0Yh@F#zjhU9s6X`Q-p&($prdV`ar{Trb1jpios_Qjn7w?{>ti&~@sNrlWsMVqB=J{-JKpusCe#i-D;Ro4N)@Muz&k zAJvr?W+sOFTsIWLZ`7V9ja{afvvTo|$tbC=YiR8oefjCjN`F&zS!P_YtF7KK1#xa_ z^o8zU5xEp1O|@?+-Vh55hZ(7P3wkW*4wQwyEgg*j;nQNg|sE}BR)Y~+b% z5rjUc5I1!SOvtZlZtEUED(=HIS+Q`acD;GZI4pwG1K1ogM+kP>bNL?73 zBj=uv4t6#?%ub3=ENGkkPDn)$En+m3B>3MJI}@%D3a#ixJG0ZUfkSJo*m<9Bh7Y@S^a)W%j{l&IO4MCPC?HsP&_X$e`NA7(Fy?)T3`F(ri-O}vj*yM{<3}Sjt z0Wongk;5GHB%pnMx4$osauZ5{{8FbZ0x(2{!} z>2i!of*!l}p{b?!pODrd_d?r!&PoI9Z* zMD?*F{tQDFjd~A>2yCj)&}sM;^-rF?cnR8Pw50jyi7{3ekdDc*q0XvgSIN>_-*4A{ zVUV_P35?GwDyt|jP4-Y)Qo0t;&JjCF$aYlcWCS$)eGB!_s99y2&$ zbIR7zP~`|S!RzLP>#}rc>tFF`xkQg}lMf&FA5o7R!C_N4amyzn4)U4^9~w8I^Z7ufQMf=)MR8ZG8u!QcD3ukSORE222w)*qNh^1li%P2}P zVRiAlXnB-bF11%X5W1L z4tMt?`<;={;C5I5+9@=lFT@9Ah-Z#0tW9-!?2HpX3 zF!T51YXLR|DuuSVNT<2^0-z9epWJ(ywCc8SQT>3TBpd}<7KrMwsqi^Cs7GDbsY z$b>blF5bL*|Gtak852b=yne5*j5`<7+GpNvetI|EQ;{5S-NELfM@-cO8Wo?szV+El z=j@D?1xdy{dQK3D9!ltCPx`>3c@;3Mhc=5Xbfh_tik2R_Tfu3B#U!Pn$6n9C$jI=x zmWqrBCmrF|Xho<6WxB6eAESXsVnyHlXB;R`a|=KVi~{r@LMNjXwD7ai5o5j`u86)O z{MwfE>PsF=@1)Y!;pa=sua~Buw3jFQ+VHRX-1`>yjzQl1>H|;c^LBMSsltg?uFy{u zJc4#jaTiMv1va_?cG}YHsl;mR~MVoDiJI`9%&N{$q>XlIXXn6YNyZ7&x zCVQ$04apUP)!0<8QXH2uUev4l+P%A>8)x z2^@ibFBLTqW%;9U$|1vgJ5U;8MPE7ny_87yLSRPi;No88nw3XTTvl0A&jePW!x-TS8P4tu}x*w+>&~22fClE5e>KPao z7VLe)R2Z-H5YLrS8hP7$en7N=CYb5uZd=g4pq>UMRZdlkjdHF@ep`TL)dPAWbm4O6(sVm3lI7xaH zb`GY1+5Pa$s?KL~Z&p8k{)Uc)PqJ5khn`v$HBBuoO(5S%2(r@>e0o+EVnQ6zX8oG` zgnLXb5Lc!b7iUKv6@*_D+YSmr&-lutb=f^AEHc#J#ZsK8mVfu$_(8QxzEP<;g-|Ae z{`DYFr_;vAjtX$@^)nv8-kPWjH^#jrez|jdt%1OhH+h}M(l4udY~?#HF?5qKGD0u+ zp+jH;EZ#i_k`osd;bWsE`ZC>+=p_E>4i9JUcQ&=tz?n$_+DLpvu&*x=u(Hb^4NkpU z`+|;iS3)tFjFbr2k25_b(bpulTrm_{$))W*A~VXHfNId+S)SslPgQ~YF!%$rn!T$p zG#+|6n~34p@ot}+px3wxp`^67zNx;ZtS~bn-1q*46Pj|uT#Qr)ur_Bpa{P4g0~*aH zvFKkX;FG6r2|I)qcFujmCW7i5bfGgdGVC?4LhOW2Xdx~wXB;wW zB#9n_%9jk>0~5`p$achj5}9of@~xc1q+mG=H!6DO_E%hhYUL06|8*;6HuNez`Du@S zJRY^vu0gRG1!d(A^Ai0}AKCIVVk*Ys(y+O8&;8zYD;1Wl6bv8VHyrx6;W`X5oUYD} zM-3H4nekyhch16X9uETv#+%`)`1|T)6}Z(t&)+Vd89tPbE_p4wtpC+F=+C5QVu4oL zL(u(Bj`TZ|KzI2;XmRGErXVB4+MMq#k9X5!eHlZZSIuo|FTUzVn~lz+f5{Cl65a1y zId#HNSL2w9l05WgvQp!%KPiiJROTh8rk5~vi?0}bi$l$QRLklj80P2i=W*Loo@UA| zve#z>k3(EtQ%6bk&~Ba1Hb(`K>{-9~yvk;vh71h!bTk2fASu${_0kCq2~KM4mA>Mz z3rF!PMc=S_W%`$@NoV8Bxg=CSd5ca!4*heitkC&P2fh3FI9R}mzyO{AbeU7Gy?!zJ zxS=R1$mN6#6V`Y&5UIL%*^S&2t9s{Fp)7?o82ni6gNWK_RR(H5)vm4L+JhVCchGqbbP6Hog)8p`vaInwo#xvB^g(Z`{Zkkf*@ z6$Zo+Wh?=tCrUnZntP|#k1X%tAS;&v93RmhFL%0gDO_I?$bim0FpjY~gCHlLJ5T~Vf8>rSbCLZt3qyM9plLSTAL-`s~?975Q%pm7^mA3%PX zdxrF90;>#ooPi$KZ8$^}^v@$*P7S@!-|ga49O6DAr(tAs!O7h(G&(6G7xK1-mUbWo z!K_bB&&la-N!UsOg}RYh4AVcId$ z!?ip;6C3Xl8BMdZF5V%rX}Kj8RkgszD$UPKj0{A`bh3POcpnBU6M+5HMQdAodk35+hQ{Y!!I1&_*uQ=L z^#0Y{SbtkhQF?5!r^^LPLrowwAmk39>Co@7dmz6X>#EL62=cgYZLFmPqM>JEbME?G zcciC2FfafJ4G0;)5E2nV;4VYYF*e3`00(Z{8Muz9n4EbK5R(Z<fSv|X}cYuSo&$I?&7;t}~pF2CRpr{lGcO~HQ`9&p_ zjqQC;CT4-;Ha+odu&1pNI+N2AqQap`3HaPdXBkks@4G7e`tTt_;48?@0>*DxfY*J;(?BB?=jQ-Y4jCB*74)$4i_1f@?Qrd$S720f zPH8RD_yiofk>TNi-mcdAio*1mpa=GvlH9bwZ9X4a{%n^@&D7zRo0mT*kFdlefhCSm zGxvF#2sIffz3{83#0;PrHX!82R$xZ%b*AspYk?<>Fol6|nx2xB0F>;=Fyv_KatWd; za5Ule7ZPrST?6zKjPIY<-@cri8XJM&|ERvQBsVoS6xy3%9<;SIHFS+n*j>1O=O+(H z$tozVs%vNhO68-L=BCE#vZAc`P%lRdMKM8c{^O4R1q17ZOh;tZ3@lGyaCAnP`ag;5 zZvgy49XEhW|px3&jC_gs~__E;n2#q;B1o)Z2cR6co zWo}}qudA(jOj!YlEJ8oghxR!`MEE$E-#@;Y8yje^uXTvI_%Wdb|E_d#N z?0rT8C>E#fpfSbF)Y!<-5Q+*&2fCuH%aHuVBwiG2RD&)_*ghBT#! z${y1-wK;ojpBKMJ#@S=z?9s&c*zR|3AtYGn>bXWy8s_C*bfGK zUjq2ym(W@M^A`+|4;c7Emy^5e9j85hm8GeHj=GWzki_7l64a0;fWK|6fi1w}?qSojifNPC4ot>gsB0DvHqXdqj{AqC6e&Q(*pgzixlt{J8mL2Mr1Wz#5}x=72m~2EvV* z?YV1r+<}%J8Jm>0&vCA-t_A07Xhhtv4&mee%q&jbpF{X8f}4xuc{}(NhmzEheX<*T zBi912c?2lAPavoa0Us9_HgLbxSXW(+ z5Ve8v5f#57qZ9MlH5%1lYGWyA6nf129umw5aB24 zn^-^p;e$B*Mt8!pYKLBZC!}E&lvX#kz3k%QhnSF+2m47q(nr?Y z*FS);vxkNT2L|?8&5gD2X@~r*)P(5J0B_e@7i^3*6~qs-(2(GMe>aWruCo)vfq(An zwf}V%cbBUU;5LG^yF;llg>Ow0`*x_gj%rz6b_LtQB4gqc;vtM6p)&yJFK#~q6F75V z$lezgkl2ui@bq)CQsR)U_PV9201etmEFVpieZ>~5){Wqd>fRSyxa5$H$U;Ov1FnR8 zo*_Cuac^tMM+m&Y_b+uJ|gS=82=I5L}{q{39V4oM4mLc&A`62-l zG@F{5VZH203rJ&qO=Wp$Q9iP!_t{dXj9%@xM5hzoQh^zvdU0SKBkOyoCw* zI}334B;^o(7*HF5!{c!F%o&H%r|nPKS)VX7Lil!yG7<>i4%j3lz_Z<4S$zHsQtWEz znoCQHjf7@c57*m{7woMJ)#XHaA@kiFt%|v4p;|p+&gv>n9`+*w|M5^ZcYNS}6k&+M@?BjaSkyR_f1! zaE)Pt;1dKt%l=&b1NnJ`=H@0jd4&A>L;k6v|HE^?wnJgxj(={&PfsGM|CjatgIT|s zkKdT_H)r98^3BaZ>Hc3r{9h0IYp?n@Cgbf5FIK7VQ5U`v1`k1z6(9hY^ry^&4qIKA7;|k2e1iF24y?`k^Zp)fA--2fWt4p{#OtG?sxyvhQA)?FCY8+um0^2fB(5Z{N-Qi@~?;d-BbU; z`~UMt|IC8FG3w8c{f)o9XN?<=u;|NgnKxBu)P-oE$nFVFrc1pXZ*|KKZsC{_GaAKojvH2%8M@{=MzaQ~tF zpVch)jey7Zt7N}X?AN;g{OtY%jeq##zcT5E3VXW#kiGx?U8Sq#kM8hW<$v5%{G|>1 zGx4()`?I$9mcJ;~B4#xGs80Q<@;~GKyUG83J$@gN`rmo;z5;T;*!iz3#=pY!r^WKG zl>ce4KXJj|x{18J>>r^1Jt%u_{9E_k*S_Hw750t(Ya5U;et`L_dyBtSCExcznO{nU zKUd)7q<(XA@cRY$WAtCW8XVx4S=+<@m%sV(^uO>1M1T3FU*7V!wEyY)46&g}My~#M zRnVVt`>ntKYG_3LAEEG9Q}@Gjex*K)4n^-jorL|dVFAeeJlB6)_g^jmf1}}#rTPff)2Uv3C~@txnP@{^Uw^LxSc*X!@sxcxKj_b*_7EkA|IpMUnNeMVmX*U=OH@}~=q zpVa@Y@9e3x?;yxuA^`j}g};C6KLr1`&iv~M_~`{d2ihMhLS#X7K&<>ftzB7m<2VdF zSUS$VyS=3+cRW`ga6#_7BMpTfvVs=}w@ zxVTTS<66oVczsD2mX&{HKno>cT@x5z%FaNWcC3r0mwvDeO;)B)qanz&AokVpL0v zXYlLw)$aUGHvB}w%DCLEoXYTR30HJI{oIjf_k+Pxa5DeBo?ozt{21!vBsG|AIj!S@ zBMfs>%ij5oGZyfi`e*>zz{S#jq0Jzx{!@q=|%Qo8baiJceDqHJf3 zWptp$;RS&zG3)&91()r@->U)9(2QT7`JiJ-r`%uxhd!HEl9Ws*y}&OcvS0!82d(if z%B#4aNRM}s=U;3O$pcA5ST!Em{1=@--v;-0o0Hh}hnvbmEm;zWz92Vs;dJ3ka$7^IJUo@qq>z;Z z_Nw@JJ{JdJtPeiwG*mPI7gLl0!NHi=v27xeUFVm*rqq=Z-LrR*s;y3flpGA`nVzc) zJzDeUkuk9Fze5S2ZnLmG}=kJy=G zInI%Kn0s4c7xSq<Ym=;vk3 z7BUw43BSb!bu)`+T7d~VtDMQ}Bhx%@Rj*nGr57Or#xdmh%gGvk>-(y_9Q~S)AQWF( zvU}|S+lPd2j2L*RKI*Osv?i7CNpwuvRK-S!(q#Tf_E7ss*3|mYD3L>*zDF^Z!c~2& zQXy7slvNC8#cgF5_3P{?C23Bc7D6=~l_(N6qSaU+)kpqfDp%XxR zI_|{*bgNryo#*L#yWJP%09NdsL$@$Iu%(Y}+qP}{J+^Jzwr$(CZQHi()8Acv|3J?> zld6@>QW<2WvY&l=tX__4*RhixK<&-t5aZASNKYGgl-*R=v}{@38Kw>oPLLMr16*RI z&A%SdmWBTNlINSpTmR1Z3&%f&JC}^*=Y4eW?nNF%o5)Fc&+ay<^hBvRr0ncjzyeI< zJK+f@_qQK-wFDb141GA05ly&8SF6{sbXw#jE#mn1^_uf!2(G7t4|MiE0DZ9YK_PLW z)$;iZF}9!Q_mC}9B3Q!{)myT?2{v)ia5i#t7wmWPgW?SG2VZ!Wg-L!uZSc$+hp>4> zhJrjKscO5Y8%*DE{~gwxuz#0rN6L(c7+!G;f4eKw86xaSBM`%F8lz282?EcmQU9Fn z-22jg;K>;@<3aXh;=!P3oWN5(AFC4MiNBNAi5oVHZ|=uc9eq{{%u~40yfKU0GlV__ zF4R@zEvxe)n0^DY%eL>_Z%70ttTU#8w|oWji~O5mnn;qikT<$(BY+Y~BepTCv&pw0 zw)CGK=t(K7#8xbG6GUrN^cvh#BdR&RRp0#LqBhu$GQvU_}>JC8n8B~-BU+UL# z1gh5ua+ z4-Xe0XfIRx5hWn{pXvWy4G`Eis}1h!aZ^#tb6UYQj=rtj#7^uu&E%i+Ud=vee|uT& z*8;YK?Pk6I|H=RRCj9-e&Re!PxY)aN?daC+;lqFp6&PTU(M8c^(S_;QI>sbUb?Nwe zf=;l?)k1caPN0^mJzq%q1ax?%0+A2WYiP zD>QWks#2-FcowbPzJdz_8w%@^m7Osz&{cp)(&K5HlIjD|`BI>^PK~3HtTy$^KV%WYD)~yIM8ElN+++upfi7#qyb>+M`K@=BS~P z3KDSU5j*7OA(%{}F?$@f;#sxDF0Y09M0>DYnu#hj#oDw;}?a7I@)WZRQ2JCSD_-_azt{9wdqa|G!vWX&i+-OswHK(4$ zREd4akZr^@VmkD7zZXmsv<48`|GNx&DXrSHvBSGJA2q5(vBJAcs>D!%`q)XM8W6fY z_w~vHqusPC@x+kW$YvJSjwgq9wd-T}M(udlQq85XCm)SUmmxzeKI>To-Dc0S!~HtX z1jaK*wWwBYiqunr4?ZRV2BA>9V)b&ywT#_=VFPZfXNzcERUiK}YQ@xx!>OBMKvnWt zu|#vlrAKw>&$&mlM%mu1lXW;Oz}`%PA2VYH2tEAeSDRuPJoP5l+b{U$Jb5K3jZ^AY zj&7AJ)G5ikYsZ%D>cvvBlpT_1jSc*!Q+L%-hMa*rRwkLoxlI}dh$=)3)x6n1WjQma z*MPG&j8vaqiJIsmtqS&e4jPFslV0Fk#8*PMCV492R_SD_;`OLuiC%}xOS~Mzw|h5_ zldRtZIqt^Ql@4c2yTGL5mn87tL7+qytIR2xXP*u|dSm2x-aqhfCKqmw^#^}H=6~Dx z1xiein4{SfCoM#&^SJ#OynZ~86Q1dBgFX%ZJHHat@syhLXefj%lCoJDntqnQ#g$hM zT`)PN*ExrUtQvTrJj7X30=Y-qR#UEI(=9S~Qd(YyLIYQ72zYQtu-q?FjAc?legV~A zI|uH)@l8vjxqh6D2!c!lRP_KM)|r?|a9WoGIoS#PWJTJwNJYj2XYtqQw5cD|oHSib z6D3qk9`riTeg~a;p{Z!MW~5%NJ(1HpCco`CDuss0_+SU#u*4ihmN^6qo|s_+eUi>{^a{=VJ0qF0B=&V14$G&9TjYE%J>8YLTanYFkzZ>x_M3rPVvxDnzcTPhT*oYeFBo*ey3@CX$OQUAwg*wi)JY_7aaJP#AjjGig?%R$JLN1VH=hIa8AhkH zoT^hu<1UuEEkgtW^WeOrAf^M;D{tr@#hk3!6fjz0JSz}tj)elIHNXg@sc=8y{r8js za%<_&sjnxl2>LpnFED6BzYsq1?A5$r{hY=601W%v=gvjLyi1w1gtvgMegmEY2qZMO zzr6IL9%b&}quiHDwDQLIO;+eS%e$iKpb7O1UH~P1`sfrbApW3b{h12Si*->AaZ`Dt zeafSY7nh#WsfHb#neJe2{q<}%K-YMae2)g0*s9Bo5;+g#{a0BO->4mNTg27`CyD(B z4mU0L{*+k#Iw7wD4gqmc6-kF%RR2FQ`(jv<4@mP7r9E5pVpzwU2p)HR#Ke3OvEHdi zmO}Wa3EV<041iRZmu?CxS#r%=jCyG$>_dvF;dRts@AYZn>-BL=<%Bpax%Q6x<1c?Y znkPp6`n<0pq-{|#p#*wqbi&0=(@ooOh!J~QXybV1i8%&JAWvx!*H1_WU7R^00?~aJ zbx=^*!JK4!_}~n!d%L?!^jHS|WpRKrB=etjJMQwK~>Q)EQMRk_(r z+P7?nZqA+72tH9=xcq`Mduh=CV9%GE{mV3RLzD9m=;E1`K;v8?qy7U53kp0!p3d<) zrE)NX+-%@APiS;ghaA_u5@S;c5}QLaP0pN8J2{rF>&(72wDnJOjtHB{H~bx*^z| z?2)<#7dSP@4(*mD_85b0X z)0Rd#$<9cM(LBstpijM8H}dl+1}Zd>{j7d$>Q~E^z(HWjIzU*I@;p_T8NIfKwF6V7 z{jV3qRNybd_luDa#UvVxVq=I zk67R@fmcDiU`pDxu&bBukiN~4LRw|8q76^@YvDOCe`+=Al0Yh)BZWE=yB+T$8@Q^g zn3kEA9doY~1eFQba!Ugf;T}!-j~~khu^20-asCnP|ohf_$>nGy!-Z=O=x2 z_3YsIIiWR;jIH2V26og*-YG2QcEJ)BUWhb~HT;K>RLT8J1QIGnDnLNawJvHJ__rgt zrdtn7v+9jcchqF-OIOSct+<#$vOPBrl6U|;aY4j?;zNVht<@d^q#CenU{?!}uPo1s zx(A3!aPsA2jF!jorvk=qWtz7?yzn}!-PXCFBR(crdv@EJ(ilfsB%&I@lj_Z zMkATF93oEdR0H2Y86ys+lwl_1JW?6}E1tmlup~l7Q2p(>NdNXRVyr2qr(7j6$u|I< z%f@pTyn~LRyTjhY%UN8!Ogv0%$x#(HvbwA}vO;=GqLi#?TCyQ0OE{s-@LR~Gehb0K zX_5n|!qDttgpRNxz$X5++miJxz070XiGUi29kLx6Jjgc*&&19-)`GY%S+{EXr_O*8 zt}*HF5n6w$+Biz2&0Dh?RD3T^Dwl%xB*Yz;Vhg$hW*oNX#^_jaoWlnQd?RFFY55B{ z?TQrX9_&y0X6HeWZXWmFsxmbyo_jpq_%h>f%>d!aQ=b`^4m#HG){7m5Gg10p4Y-{G z2!HK3TBevLvTZn_#{;|Sgxb!S{{#{v>ME?ibj)L8+WvbI$&NVQQ!Ml(M zmvq>W+L(nFdfZV=C$b(RR-BHi`l7t$?Cg@YmF&s08;#=$Vn|zNjE>K%s;Di{RazC!Zr-*Cv$dlzY z0XF=V+RY^$8%0C4imUg8xrxX;O`<}spb?R3cMXqaoxS?;?aCBO@s;Q(JF%QvaaCB1zd1g2#9LHc_R ztS(=kgj(gzh${&(5vm}uB~TTVt39lFlx?z2Rpm>e{NQ*z1a3erfQ-TR1_Kh}0WAOZ?}+OQ#n1*w8D2ZIm74gg zP~Zc0<+@gRpom4WmP1wo{maT=pO;oao<~pNoVOKXe7KL8@rGh1++A;o#$#*BJ}E_Q zGn@OTj|7_^Vo=vy4WZNiY}zKwd6C{z%MB@8YxtaY=At(t8w~UyJ3L?#f)Vc8J#)_6 zl(tm74^vaP-;UG&2%sr9?b@^9MmE(XQeU{iYCW0@+YcX(Q`My~L2FnU7jG134~u2o zhmrMSIpl9tc$^`Q9G_ZFu&NwVY+SxjfyOkxi0$SJQOk6#O#NV4pf2AYbN6Nm5jrC~+kv*Gij?l2 z)P!bo>`4Cxa;Y8c3;=Fpw%c-TZp~}RH}y;`3t8V9rXIA>h^tk~$yY0m!~1slY^w;9 zkzKQ8<3H40jH4=uW$12!>l|rog?jDFHKWi06<*efb+5Kv5c|1BT0d3@L3wSZEm!OY z1yxzYDtqQpH$2Q`?6useUaQ!xzjqjbSFQSgLWEHTebtj5T#?Qj&Yj#77!~q8h|;Ji zlFyt5?NFF*s*TD;#xBJsE)6@wJxtlQv72euuulut7q7BvRr!t(_Q;UO`KVQL1Z@bO z$Z%GnyYfJrCZ&n{vMNPO_<=e9Lx}9o`b~%q%PyVWnzoT9<-A%oBYL#RmG2QwRW%jz z?J0qnqy8I-pwO`je-wM&n)EsU#d23`Kb}ho(^cG+rYCQBZO(I68i~2^z~nlFv1D=O z9)Cr*Rh1&Q3TM-+af=kIQ{x7xn99_Qww}u2G-?Ls6lm_qV(_tOK7WJ2v^;T%$kYWJ zWvEAo#RbhH>Dtxm)At!lB^#AFQ7yO>DHT?&##D4~YHnSbD=h;dl}F2LJpDY03A=YfExLCJ-! zly%I|1g%Y)4(}o%ec_K?8C&~N-rdTk ztGY90wY7k_P`_lE_{UAO#vU%KuR#m-gDq3QbxJ79`+NTGneLmpa=Ko##g>DA0-?%JFhReH9pg zZoD~o;H+P0=wz%g#h!G-8T=c+%YoNolJDJ*8)e-m{;TWQZ+^ec>Xz)a>QD%WzbZwA znbV0W^PTuZsS=Jdv#BY-73Qi)y(Zp#a3uiwk>!>Iy#t`+#a6%#SLxk z=86Y#GFZ2Ml#TFoZE!`g(FqlE9b`-&9)=t2dVQqe&rHLM7#Z3l+sS z2mjf#E+urVeTR;0&7%j$VoK<-7*#sMd@=#->hPbM{D8$G3DS3wHb9f%E4ImSW#RG+ zZiq)|zlKW*!=NgysqWQcl9(4|mdb3B;ws04=2UZyt|+gpxYosf#7w4RbmXWym8JOa zJjO`DMs!qZ0=0&tV8q(U$RUHGQ&{Fo%t_;Jc zbnB59ahAR+6{)q21?E?gwpuSV3tv!E<2kx*33{U`F^XWaoYPdkrJB@c@+c8j_j;fG zELe&?{b|@Ofe5J8?Z$-A3|MiCp?A(Js*=^%ApYUF4qTbe*)-MKbJxeS+GJf=CN?LPEsn3oJRG8m zMJY~F9fCvMaI!y!)W8!M6|`0?Oix3Xz4OBr88@B6w8~NghCS)&-yDka;_R6%*TZ}& zuv-nA8=!e-TD#V=(MU$0KLwghOt{z}dgG}}^bye1=V#Rq%lPK=OV-`gD}s1Sob?)K zb*0s9&J|>0Up5Ri!wRHbDNMb44k%Vwgj*3o99D9|vPqRDeBn@XEZ8R^y(@Kio7?>r z!(M_}mu!Vl6qFb3ntIHvz+oW$2KBp@jZ7YE=%jsD5?p}2g3<|Pr1Rwa_SHyINF{lN zMD~tG#7ZnpxLLCj2r}ZT=%6J&siMrA*8SbqWXM~Kf$xb`s!$(L+b%Ua)UgdbT}uk|2j%A%k^{nPhMO@wC7%rW(@kCud;e;oO{e$c5Kv` z>&PogHSvXf8K(7>!C!dztt_8bo!vG=aynQsuGS{0Yf(VM zPsP}cBsV7b5GH}AtSuHBmzhfs);Tdw5E(SQ_v@ZU50=kYf>$H%VyYYC!;k^fZyj(9 znkOaFo#VqC1K+C)J+Wqv@9V3x=Ulkc<$4my0(>)a!_jzTw6;b{qN5*Y-HiKT zh5|lh#$M||TSvFOO#FPdMSDmiC$}XyT8z5X&C5si&1Tfx%PqK6Z|y0S#l1_mX!9ne zRALciu1u%~ih8;PN|x8}z79^uBMw=q&}KcWy!V;GcOG_pt@cBnHr6jxpP2geWW@4` zZWb_LVCc2iW^?t>GiSCXk~@nSVVJ?B?&wQ+<_q1^S=^omwW*X}9AB4bJiS}xs|j-o zP%u;+2fJ0xwX+5;>vPz864fVV>xkx^d9_`zrt0@=ykdE+Q&E{QW>>3V%TApZ3o)@Q z?NyvKE;yQ2JbkM8^mpUh6Yhu1nP`Q)0K9JuW(HEDYjng7s}y7dL7>H_crH85_2ygI+Bf*mFj& zY3#ekDYfL7jZt#TZ0mOPd!wyYFtkx#EZ?hy!pt$}lWSLMD!H8&RU+%v>5(RV9QWYH zGxp^%2t34eokqgU?)|5p#vM6SPUpnqiTaa;)?7-U z?9lP7jX-OqcU7p<>haz)1bZw&D^W~q4pf-~-CJ}AK{loM$(64Ur{QOUM`79pu{DAe}RSW>1-b5~Y5?%a2r7`0b4AECJ4Q``yH8WE?9 zDz-SToMzrcI2z_2tm3aZg0WkvFF6~tOtP8M91EAD-BnJ=6dPJ(9v@v%!GT@$H3Bqf zuv`}ySVwYUs2zV`=qVnV@vRM695gqKHM)S(rc}ZX-%5d$6Ub>W_Bbw=vSErJ(YE@)O_g9 z8n@%qX40or1JKKnAz@L^Ll9F-VWL$vV^c;E0$%7lM?)p_uQ$$19$pv*L#SAN=jKhUT0WF&dhDOw;oH#|(T~=N;C$LH* zJKOrs+d1wpR#*wC;Ocf3jJXJBM=T+cH!|u53F(hTt!Vqv?BQDSoR7z?S5_#PQJc9s zowV&aoyF_{A!CWN&6T@GyMQUwYq+o3rS^l^qE-$XX=cQj>yS=w7E7(MDiauKeh$Ue zB-cZ1|81G1$#rLgbIP4__H5AYL&p@{WbSx!)@h^tB3x?Uk^E&&P;Pr-(X4n1XX7r* z3tI~9w`6XpSZGHf+`T`+X^UTZrruDzRz6vE-voCt=PcL&2FhiYiyNBgYsm(*0bs-r zdkHW#dD~^*aH|p%R}AWIp~qv*DTQIJL<{<`JA3q-Fm&;9r>}dntyNMsJus?Om^+s@ zKsUfP_5%yLK8^5!?*zr$GjX?NY=MqR^-(HoUTQn7-BY2MO7#}nFiA7+>SeMi_GqY; zasx)2m1u&^^u@`v=ODVz_%Jh{8^bh5Mg1@PN>B$|Rd923C z?1(;z*vZGuHe{dB;y6(_^pc#yl(1?_mc)+e547{ME*rXXW8gu(c!F-@ri*hiH*JZU zbe))W)B=}uitW^=hC#Psb7k{Xe2}@N!?RfP%+61N_M*$GuF}ar-{x0UU0FIMS_Il$ z7_5b)WF-w667x@?;x19hs%;%v+@NYv>)FPbdckq(GhF6EQ#>truL)zPH@dl+4gs4n zL0Y>k<&MBouhVd2^CK8$z1Q zyYpbB!j%XWaWh1h8iRi9*XNB8NkNRHR@Rt`Mr=M2T*!o^03D6=9q`CSYtX>Grw>28;%KxhOEHYBpHoBOb znP>JS`oj^ZA+DwzK0D(@1!%?(owRZ*t60(Bd)4q?mseMa+q3Kg*mEU~5k{$HM9o=?~=j2dg&?ksPPYj4VaBk(U7yN=olfBa+F7yBdWW&(AC-4 zX;J7M{#u}E6kU?grLv7Ww+L>fli-V^GZ4IZswAz|7m3&WCC&jk8-YoZrN zS%}xNRN!%e+dvpjURK0-j}M?WJ-V#Y=w;JpCKL4P+PP(JN}^lVYK?1hV|*zek2x{V zVw?7*=HRx|( zn{gfSbkINuRm!#&eBa?=pfa@1I&zwbgadN%Kz(|&P~3D{{dV8|T!~(WTOnY4)Nd+Cbe8ISQX$jKsFnXtc+3`D$gh(vj@eg1Xe~XH zJ0$JZxJ8FUy90!e{W&v><0=4YD8Y$ME%19ryL!FrzWiy$wW(eqbCJu4!SI&L?jO|y zAstsyITb5dRTVbQ@*U5ZSNdgSO@Mzay3J*pNn`^iX*oOqqDhP!L?a% zjY+;cRH=L&WvZ(31UwfO&OpIVg}C8Vw%UXaqsH)Rd~QnNM01AqYxh$|cA;TyX8KBq z7sZ8H;As%@6m%v3$dFf2vu2V|&uTSl(Hmy<7X@CpiE)JP#NQ*wafaJCO5Ln$*6{xCBW`m1T3WgV=Ma^S2xrSQtWNUEptm z@!BbeV5$G&UlGNfHsKbhDs7W;b?X|rku#!cO;BA-6o*K=y>otWdcL&N7|a|&2TnBr zuEw%@|II1K2`N&S4!ucj6$O?Xxs(1Oj3(WDZ!dI@f_rj{qTsIh!Qr&tS`ig{U;f-Q z>x-4ss_t0~W?oh6r~l`8Ot)XXCv-!88`lk)=Q9;)e^`Sl)vqLI)AE&@mh)>bR!Z5V zG9CNn2@XH|tmB(<<(aUrfz8)i#5g@{zE2e@u7j?aj`>)~+C=rW=8}#*=5xXDKClLL zJPD9(>u3KF$2mkyHzSiPK;KC?S`pNEuir?Tt=bTcWxwK>zkC^rOMz!O0HDt%0fmmJ9^`-igsC099fF=_ut{kz?Rl`wupZY`qh$Q)*7^d@>QSn)T%%X2%;Nlh z>sZvO=u;jaogyHVX;&2YZ`I&{Kd0t4H?CUl-xhEP{z@hjugeDRU?X}pZVP!Ulo8B2 zXx?&GjcES9*psJ)o(XTW8&tUM>KtO${tww&8f83S_=(79vRgC-{7h@(smnepuCCjt zeYv@7zZ!*b?)Bf{n>r0TRY3Nb-F?;3Xl9gZVp>RDM&fF1yhbLq1x0YPR;=o+I-FlI zLUxlWq4^Ya`F0EC>*qj7NB30pdaDInl-H3SkPp#Z-c+>NR&9}sliIP@$g|@}9}Vk0 zW$i2KG;H&Qx9b!r<$$h77x}PkhGf(<0_LkW%u5rT1Xd-g_1iSsKgJqJpFa9WNL-fo z)9P8Ax$(5APumQ{SqlnO=Q1xpWKi?gy|6_!ML&pb;9|RlrwXaA8kAeuEwQB+|Dk^n z?YcM;Zwu^2{}isXI*rv_W&I#`rAVVLRv!;1Gs9*DMaMP>INOiVgD#f2<`bwR4X{7Q zK1+Uzsg=cwk_a56vzSFs)MqxG1lASpP~OEX?j|)o=nVYSt)5K|%GU^>V;zjy-OUzo z?f@mOWLX-^!OgrM>p0_|`j>tGL% zYE=X-YGGB`!tRnPwIPLagd6c-1l4GQ+N4(EZ-u$K6Zh?xje7fW()}2WrFAMjHsQc+ zQcadNIXSyH3t@=;fp-3_)t*m?wS&gA=4nvjw+xO%oVgtZrsq9=c;;39GZa;rfZLR3 zz$#NcM`ZIdAJOmm6e&Lk{HrE1klCZ_-z5mZuq5ySNf zbmF95Mdx_{_~S^xRq7LuRmz%su&u8bC0Zj1j+MXcKy(yHUjV|)oMI?kot29M)!i#l8THut>4U* z?^x){+Uzukqfr}Fr~VlTBk@aLv)TVYUHl^v(+zl`t zget6s{K@xtB8Ge>UW<(FgokQWwq;8&BuXj{Ru6bs(cc{6v%b}G#;l^QSp~=!b}iX? zp(q_w?|Aye7%RF^C}o7=j4?`fWG(@ARYl|)o%Ns@&{Y5o_aBpcte=j8%?U0OBKdwE z+Kqu#85{GWvwkG!+Im>KLr&J={71%n?L-OsQbFfR8@$;P z65RAA70w@U+GrkL{mq<_Jg3wKK{Gv{18l3Zi=!ZcB8Y=jJGGam^&RRHavmCJV}W~) zYgS{4Q=JNn-C+S~D$b+>E61R2`BnOPYccynBR+eD4=&;LJW8+!)$7xmGUGu-R8fQ( z&E>ps4e9VLa+>Iws_}PCb9nvZ-euLZbypCB3n+IVy&GwaoL*stF^NtK{2Furpz;|uRtvp zfM8XZna&novadK`8%!f)?E;AMi`nl%#^V1j+&$;nYSlP)evSjUD($! zHwUG2>6f?sSPVy$n#O8PD_;i6Mni*5n+H~^)|nqVGR)k+umyl!bZhCFurw|4miuAk z4CSj*&;;4jUSk#TX!dVT#o%4Nky=`XTr44w$BvXUZxs6d)ej`jhZ|lqom_z0w1J>Y z_yTBY=i3dG$byCFbX-}mk-1f-R~d9rC(-s(3{=QRv0a6gmAYIyk~}1>3g|q?`p)Pn z6@c5AYH?^@&GVpP;S`DV2K8yWhE6<3_;?W z-wvlP;?DRV-RM@Wvc<=^g0TV-G`fD7mkFy8kQKog#cwo&7_f*VgU7HD*s)}Ck-m<& zbL~n0=etNC6vxv7Y>2%CNymg=?sw?glBB@5&JYXJLIxFPVb;emkGez{vG^a8B_TS0 z+bW;5SrFGJhisIdEmj#}hO+{{E2LSBcy z!o^aztN_%Obut|q_bAI*buFxb9WjhiehEy!MUZNtACk3Kfx5dw)K~d@3Bry`bix&* z#$p?1<9S^OddvY|qfpB{)1Im2=mZ9211FFYTLHx7Rx{_YV%bR;=AS=#hOB%TFf!Fz z%HH8@ZRn~DOlh@GPdlqAdOAIr-0&3FIaC$o3<*+Veup@ZGd>ElMm})4&$@UPA=a0L zlOwc63{aP&EukNz<5Gl~JJ|0xCpC0VDJc<)-$-{Fm-5&Xvh?{aeq* zX|xApvvxBL{bs%zj<5y*6Nbt|wXOl2BC=B|%VzLXgdlW);3$N81Hz9w=%|ZN8~b^HX5~ z*3%2cusMiAA)Fa_3~Y(0T_|!9ktY)({+sS*1BJ7YH)Y0jWfvb%4vI+dpahVWSyYjGQS z4pV_EFZnp?QARy>Z7g4DvLnhy`8M(_;j%XXsQ;5C^0V*VX_knVA`10P+kW>vZ^5vw=kj& z7X~ocO>fY}cM|zXn92P}$O!2?WDbS~%rmb(SUJTF_e~JGJ#mA`IUVBL2yj} z6lE#{5!eK++aVIf=>H><>Ga0rQkx9vc%JV8gNrm!=S=<62hz-dUtbbSjoQSHuC*6k zzDo{YNU1TB$#6+k!W($DS|p4UC8==^Co`LdD58l4?-Cu2q=zz{3&gBsXQRpMHUY?O z8MsDH75G`lP!g03!h7*%k`h&rT#wlris@030x(TyDZ+~sJkcB@Q0utcJU4*eDpQR) zo%)aPR`14G59j6y07yK2SMV=*6!4&sr6R}yhJ--IrGCw6UW<{T8~Pz4^j}s{#Zh1{ zGG{K}nAjU25qEI$ z8wd&W35L6NLx$S(da)f}LB+Rm>MPswzoX@e?$4KrZNW=%L#SsYLeB`DZ{a zF|N)z=d5lz!k1=asi4mBbz zEoesAXvo_6bVDXJ_~lT0XQ%cYKhZ2(q4aYJP-m#9fO?c>0`yWo@n{|LJ}voN&uVAhcBmDmjI; zR^SFG9ron@zc-(sGc0{#m61a~`=GnMzaaXbHa*FapDlhq{vZs|s7_kE=SnzOU%1kYG4?%q>H(rHlbA&0F9%2XBjW0RW@O*(19sx6W>tTZJW|#fqM^s1 z1v@RDC0Aq*-&=jZ-$LKVYIF5pL#w|^6MDpZYgt1=vr{RZ_cJd`{B{@5;3b7|2S?KH zpMU~CHUEArU1Y-3;7JTg(*qK3!&vJno}CjcB^}Xv{kGpA_AEsOaz`3@d*Tne9Jt-bHBZx0gE2+MHJ^XzpcRje&WAg ztn0uBGrN3q}@I#vi(w~`nc66G29^;2OE*yrJmB=7fHQ0M32_Ze2l zyUnrkLto;jA#{0Gcd`;@|D-YAhlmIFQ14&2{aW-*QM{zNZ|Cx7I1H)$liR*$75pL9 z)JF3P-DCh5vU4vQrWevkUe@6tnb-Sv74x3rqLJhc>_N?|Fg$ z1J;1ZKU17eF6N;qq)$=ejpKFAXJ_w@EUo-WddppNYA-l#@BIbc1t}$}_vvfw<&TlyZ@fgq2_5(s|0xgKB;C+>ax))zXv z`1>Ds>T#-8w6D&9U8EoQ?AshOf^7SN?Tz0z3p|fC_lRLc8qY&Q#W(!BgBM&qB-Mm* zOdQKo62u21?9Q*OK>EPs7A?V7ULDO6Y>AJnhLCt)wE;w9Bk%X%9%c2O-3LiOde?I@ zrQNqE6co})@riU}G&~S*8e1K;z6a<$g?FShJbvHZ4(}%4b+AP?&5bP&q#}v=6IAnh z9HmNWJ?>;_oB*X?W8St*FayudLlV~maZKPG{`6y>b5Q!YJSDO4cqGz#)~Tmz$WI27 zO+{`1$X#2%Ui#2})ZTCL7g<0cZ(fT1^YpV}RpCF9z9K)134D0pcvQmaH$HO)$q)G_ zaA27fc+Gp;S-0kq_|=_8yNK-D-L^Zt}Z*r#@synAL}{3U>ViEcp<#L_b53E$Ok4bzfVq|uR4CkKT~K4myAkkM&j09 zWAa3bx99OL^NS-z?9Qk>uKP9b8?_e)Bqj^QIfszmzmRXj7Oy@$vY=Juy~ZEQocIw8 z>rLjR&+7nMKOw1S1qXxy`UqK)?DJYOO4j?cKyxBjRn{Zf z96t!VDe|bqG=uFcmGUYJedqC>G3ccZ(9PSibaXpmiOkHSfc^+M9; z32+i-cW6iNW;RzG_eo{)#NWeEQbV*-ZthpuY?c4Zr5Uxe~G-8h7v@U@^M zIOcDEvgku%f@>Qw6nrrz7?K%_c#P>b${(uDeJ}(&MRk4$aW*%ex+Cc9+`cXflb6 zILPzcmvalaX!GM)TyC1#z0O)8Hun5aB+O-+l}`0hFc|hd;bEoO&2t$vR%CbioByYl z_nGSsX+h+}=W~-9oz!^SiidQ@nwt>w-<2T!JA{^G#kNrgpMk6EX$UeO`!%11tIV$p z^S;lQLGGtDAVQ0AhllN=h?hrR?h>TfS4uzPsfS6VLMdUYPZxg5`*DGUA;F6m?VeUP z=bHQ?@?siND?A(kSzP3Ucw&0mQa2<_f*z72f&7L-ay_rvTYBWLTJ|-?tH2NW8qv<; z%XUk8v5Z>wXh_()H21iytvf+qa8s!jSf-VH=yyMwJ&eRlVmm-3@%fEB?kk%vX>YIl zYX~U!kZMVW$fxpbF3N;^diGn9Swi_81v?l0exl7*dw{r&5#wD!+ zh1V=07~1Z0CnmfmL*-QSjjx_55)AC_~5= zW3j^ua1P1_B36a0Yjz+qiqozCqlf2fXWN(}$mjQPelI_fdTr1|W4X<^8RG4i%&kA? zrx%ba_4+g;Da|9zCsgH5%9B(aUcG4|(;iaok?#Kb^~H(mw!>f$4&5$`7pX$~0`mpD58UrhQ1~$E63+=TLb$~9 zGelT3PLFk0&k59(*XOI9R+7Ii`Q-P49G@-Rvj}%+(mAog8Lv&cZp4JvUDTJqz+blf zLU{-ao=7`-OKwZScVjs>< _s=R9WH-3n}8Hv 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�*Zb8h4WdOWD#a8he{ofWi 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 Z%Q*U_Qg>jR# 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
    Iyv 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�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

    S+ToG{cTX0z`?y2(wUTH)|aTC(`t%= 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�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

    e!s3Qf-^|Ua+*?^kx6nzg>O`p&Evd6xi`l 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
    nWIy!-;8tsRRmurqEKifaN*Lo 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

    L8SQC-kYyj*vZc#NS9 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 P{J#2sLIVF6?JJCdnCAOz literal 0 HcmV?d00001 diff --git a/previews/PR300/literated/run-0001/parameters.txt b/previews/PR300/literated/run-0001/parameters.txt new file mode 100644 index 000000000..b0cf4d9a5 --- /dev/null +++ b/previews/PR300/literated/run-0001/parameters.txt @@ -0,0 +1 @@ +Parameters{SpeedyWeather.ShallowWaterModel}(Float32, 63, OctahedralGaussianGrid, 2.0, SpeedyWeather.Earth(6.371e6, 7.29e-5, 9.81, true, 24.0, true, 365.25, Dates.DateTime("2000-03-20T00:00:00"), 23.4), 28.9649, 18.0153, 1004.0, 8.3145, 287.05433127682124, 461.52437095135804, 2501.0, 2801.0, 5.67e-8, 5.0, 288.0, 216.0, 480000.0, 7.5, 1000.0, 2.5, 0.7, 17.0, 8.5, SpeedyWeather.GenLogisticCoefs(-0.283, 0.871, 0.414, 6.695, 10.336, 0.602, 5.812), 0.2, Float64[], 1, HyperDiffusion(4.0, 2.4, 0.5, 2.0, 0.2, true, 0.0001, 2.0), NoVerticalDiffusion{Float32}(), SpeedyWeather.StaticEnergyDiffusion{Float64}(6.0, 0.1), false, 96.0, 300.0, true, 3, false, SpeedyWeather.MagnusCoefs{Float32}(6.108f0, 273.16f0, 35.86f0, 7.66f0, 17.269f0, 21.875f0), 2, 0.95, 0.1, 0.9, 4.0, 0.8, 0.9, 0.7, 6.0, 0.5, 0.8, 4, SpeedyWeather.RadiationCoefs{Float32}(0.05f0, 0.98f0, 100000.0, 342.0f0, 0.02f0, 0.3f0, 1.0f0, 1.4285715f0, 0.2f0, 10.0f0, 0.2f0, 0.4f0, 0.25f0, 0.6f0, 0.15f0, 0.43f0, 0.5f0, 0.015f0, 0.15f0, 0.033f0, 0.033f0, 0.022f0, 15.0f0, 0.3f0, 6.0f0, 0.7f0, 50.0f0, 0.6f0, 12.0f0), LinearDrag{Float64}(0.7, 24.0), HeldSuarez{Float64}(0.7, 960.0, 96.0, 200.0, 315.0, 60.0, 10.0), Dates.DateTime("2000-01-01T00:00:00"), 30.0, 30.0, 0.05, 0.53, 1.0, 100, false, Float64, :linear, "", EarthOrography(true, 1.0, 0.1, 85), 1.0, "", "orography_F512.nc", 123456789, ZonalJet(45, 19.28571428571429, 80, 45, 270, 19.098593171027442, 3.819718634205488, 120), false, true, true, true, 6.0, "/home/runner/work/SpeedyWeather.jl/SpeedyWeather.jl/docs/build/literated", "0001", "output.nc", [:vor, :u], 3, (u = 7, v = 7, vor = 5, div = 5, temp = 10, pres = 12, humid = 7), v"0.5.0", Float32, 0, FullGaussianGrid, SpeedyWeather.RingGrids.AnvilInterpolator, false, (0, 1, 2, 3), ((2, 2), (1, 2), (1, 1), (2, 1)), NaN, true, "/home/runner/work/SpeedyWeather.jl/SpeedyWeather.jl/docs/build/literated", 1) \ No newline at end of file diff --git a/previews/PR300/literated/run-0001/progress.txt b/previews/PR300/literated/run-0001/progress.txt new file mode 100644 index 000000000..705669b2e --- /dev/null +++ b/previews/PR300/literated/run-0001/progress.txt @@ -0,0 +1,27 @@ +Starting SpeedyWeather.jl run 0001 on Wed, 24 May 2023 23:10:30 +Integrating 30.0 days at a spectral resolution of T63 on a 96-ring OctahedralGaussianGrid with 10944 grid points. +Number format is Float32. +All data will be stored in /home/runner/work/SpeedyWeather.jl/SpeedyWeather.jl/docs/build/literated/run-0001. + + 5%, ETA: 0:00:18, 347.11 years/day + 10%, ETA: 0:00:12, 694.22 years/day + 15%, ETA: 0:00:09, 1041.33 years/day + 20%, ETA: 0:00:08, 1388.45 years/day + 25%, ETA: 0:00:07, 1735.56 years/day + 30%, ETA: 0:00:06, 2.08 millenia/day + 35%, ETA: 0:00:06, 803.82 years/day + 40%, ETA: 0:00:05, 832.10 years/day + 45%, ETA: 0:00:05, 859.52 years/day + 50%, ETA: 0:00:04, 860.69 years/day + 55%, ETA: 0:00:04, 881.50 years/day + 60%, ETA: 0:00:03, 880.58 years/day + 65%, ETA: 0:00:03, 898.05 years/day + 70%, ETA: 0:00:02, 912.76 years/day + 75%, ETA: 0:00:02, 910.24 years/day + 80%, ETA: 0:00:02, 911.20 years/day + 85%, ETA: 0:00:01, 908.94 years/day + 90%, ETA: 0:00:01, 919.83 years/day + 95%, ETA: 0:00:00, 930.03 years/day +100%, ETA: 0:00:00, 927.08 years/day + +Integration done in 7 seconds, 660 milliseconds. diff --git a/previews/PR300/literated/run-0001/restart.jld2 b/previews/PR300/literated/run-0001/restart.jld2 new file mode 100644 index 0000000000000000000000000000000000000000..eda074e8ffe7bec39d31da7a30dcffb31d5b3f96 GIT binary patch literal 44241 zcmeFY30PA}urL}$1!Yqi1r!L1iX%cqc3Cox3MvXJvd9(z*+T*eJ0Xmsg0hJyD65K! z$}amBWEUcdfb2T~qHG}qNJ0|w5`h_=>)bnc?*0D%z3)wbhI6{Qy1Kf$s!vx{d-|lV zioC52(*BzCSud!wjr2(yPaA1nIKs`w^RTqHJp$3g} z^?(o_9l$TD9CT?;3(UsN9stnTwhpkBQ#-=>t>gRv06u`b4T96=$x$M}Rt*k>+phMt z1pp8@&KYkVKVS=B1Hgr=c@R%OcY6TOdM*KO;W8u0`Mu{>IAw+C%KO@1)%eZlR^Iha z7@qrz!5xEB)~(`mDR9dPIKp0mtJ{~kqj0IO&^!3G6#y`Dx3|CMXKHWb>12;kxPX8= z!r(|xXFDS=goBNp{bgr2d!(nmJCbL$pTKIruXJ^xa2rphqg>F2)pm|FzZSi1E6(2mE2blYSiGJKG^oz+p&F8<-~&!21{D^R2>n{*aEI zJ)E;n2tNQ|^I!DevI^JyVgGY*AA7`Q4(BjOFQ^UTyp1Qq+0GuR@FTeIR|@=pF^<40 zd`%0!m(xn^GQtLibl_}JNCghS&J$q+{T(Fu7j%VI;XjuDX*j~!9}e@hfu3}BaPZ>p zd8_jj{tJ3rSK)hqD33F4?oektXHO$18z>a+V`{^(ffdAUe?f2iD*VUm{4JgH@N4!^ zfXFJo=nuy~al!bcy*FnG06(qbt(pa3O&^i+D;;pmwgdANb)of7r=68$XT) ztXT;FAiCP`&vqd859x{j1-)H=liu%k^_5WoVE13plURlSZ|S+@D!sM+;#bb6R^bGk zqaXHP4MFNJ_yGP1Ubkux(yQ?QYCZlu-#ve#x26YsSKMXr0f0lR?b}z|zpkIj%CX46%guJpuH{zoHm>4b_TsGY>O1%0wE3ILzpwvF z;9m*+D}jF{@UH~^mB7Ce_*Vk|>k?RrQ(WWO&52WRJbkVk;`xVn^4|(VaF53CR~h66 zB{<}MuW#VIE1T>+yE5F#jhuF#&FeT&E+Wqs0M8%s48DEb=zuhU>j|upU9GvZ;*C5w8 zAsKGq2l@NF)^kEPoGE`-y4Kv+@1Xy&vh6v{YDIPvJUmZ%eo@^G0Q|;5L)ct%_TtD+ zQ5wiu18$K9i1GnMgSc&Q4hLL^f5VSj9T7I(&Ype%z8^JSf?VUoOay+^^mVl$o=(no zt}uHfC;s&#BwRVf+Zo{r@w9hy2mJIyj8cHu58)3y0TO@F0P%t$?QEd-*8tLgg~4&1 z0Qm!E*kVdNApC$-632&_aEW?2ky9-ooyED%_aZ+AhM~8NS_sc{z2*y)=V&7maOB$oR`(u`Mf^w0;?TSX_+@QJ=Ztv`aQfRC5^&-7DhCw_Fk7o4ow@S? zTwSZ%!I9j$)A#j}>t)p?0Qc{K)o%g5-$S@)Zvnrp0UaQAoOmdl6JY^_uEDrg$yr-C z(w!3@=hy_tR-s71y>BOq4_*bYNcquP*FWG6UQj6D$$x}@-6jFA)*7HN$e;S;tTl1r zFn7ptK=Gd-zXIN^LAbjq$J`ts?g%(%&$0)+Uu(fVaECbB!`GJpA`oF~oH_*Ap$Cf|w!OyApDheQ1j4O5{&;AX+sB)|^ki+bX zaRJum{Ec-1zEz5q6UcXA?{F4t^xr4y_+rK52)wwPy{EG>Bjj4at+JT9(E034?qEwS6733 zc*7+C0s;R-2XF~Uz{B6iL2``x8ieyz<0hDreh1?Vpl(ROi+?l#=YVt#;tQzwo!D1^ zpCX{{pOf=D3h4hI^oDrD5!al(6#)zXb0S9pg6sZ?+*eqDc)}rG-W>7l{~r@k1Ze+{ zX&eO@|05dq&K#xmwt;$aw8m}Snk9Y%UHQ&<{oeGqb{=j2M3z5#pA0R^eCw8{8h?bXnt;E0=Hm zDeg?^Z=_>ZaHp0H{G{3o`5WOHTXI4uJ7)IudO(jy*;Z_;Ne_oUW4;-$ZX(r z(gSf2I7L+~Z()V)|CRjjx6|T=V85Lf*VVu9^taC|!yW$7B6O{CyvAkoDwoxJ4dVWx zaJkC%Ef<_DCm?C3#l97C_TLM4ZBhS*aM7!*eJ5OwnQY*sY{!mr2H_M>_{uW@yUbV_ z@BdtUnj6;mcHUeg8`0QgvBJl79(7I#fiqpMv2r4)KMcw`yZt!N`?q!zZj@?G!6pC1 z3n%9UV0^r=^D8gwLf7$-R^k~~IdIN*ildePAcD_{VgkheNyo1lBDR9xxK$H^3K z;Dq-*l~(GEPFcA$vUc5@|LYFP zmC-r?_d*5VAr71C*RSVWLtpI$Sa+VQkgH{QbrN-mT0!4LuU@&!mc4H`UEQ$$dT8h` z(p$Ij;a;Yc@Nui$+BWXnFDIq9etk-B4NZIwnF{+wdhcEiWG}Z*D5rIXX<|&8*Rbo8 zN^O{0NKT)~u3Uao;17k;{9NkPsbIw!qHnYv(JdUzP)ugR!z-5~Jv19AeI$j3B=2ww z4JiRzE!A#KkYek9sYF*?lC%PLdiMIY8CG_gYpaEe^nHeIH;QOSC#8 zJXE4AK8zh#fRCcV2$q3@VQ0fKfs$(pFBC;TK140IU{WujE9D3YBfZ^4xsgGpO>$QXADydC{nb@w%jiO_k#u!r5oQ({w3KSA|Jvh$0 zi;-bTuoI^?QJ*lAX_||V%LFRt`c1kQv%+P^9!1P$J|r3CUQFx5d}yaJk@6 zyPZvoV@y^l%G5k}I!6>cX+Ib?mvnHj!r|(CAidw^_Mk%3974PyjO2h-H!3_I=Y<@j zW*qiH`#8k3S8DnJFP5z3F` zeG)Ez_u02w)k7SDzBSEy%hDkF2&AIoiH}MIgqBPeE8v^FJ0^x}A`pEp^bQ(oE2dZC zCJ85^dBo2g4U8it*iz%(PP>A$cmhbfhAVU5!qN{1W$T59ftM@fbjn7`5XmN2mM_E_ zV&~G{1~zCga-l#5ZlOj9J4W>d>H7K_XR$DejF%|Qv9b#}|~43AHwF*GOfVKVY@(IAvkzCsdgM*zU7oRdn#ed7wJi*VCJZ#qg(GvY_KBpN42zqOy=h~Z zaJ{&y&9>|fqOqhe(zr@UpYo!FRU>&qCM#v z_0qKUDirtdx5CKzVG>M66^s3rE=`#h_K&n5#r)ih5xgNfL(vkkXW7vMRr!Enl$yD~ zhviibMq}ncY+?2o)j`Qt(zK?>tJ@nYRHs&noqHlKMgSFSxYjQk);Z!Ux*P^*Ujo&} zy;2mx2eEqSIFC|^fJ-R9kAfN9%b0DCj!o3lX#sw z-r%M|wA0N&wZYpJkpsFJ6nTNmi$7y0<8o&h(&}iRt;nqgF@Wl~{Bl$f-@_S^p4uA=OLbZ^(QPSgDQG;#}Hf56s+9OIN za?YIC+=U~JA2u0$kv%9YTrPf63)|h$$jZ4r2wsp$%f_m(-bECb%S$jS!h!TxU9&kf zTO~gmQB##*sw}oJ#^D3O733@R5{~t?h&65UQ@G2HZ6ZfigpQ^3zvq!xgp4ee?ku_b zQuF@DFhi+LRS9#w)xAT%c+5%8U`c|Of#Q{PKw(_34LFx|UD$ls$Xhfm26dwnBr}uM zwCLtBB{8xi3@FP!$t&_I{lYuE!`K0~?>j&HA?RH{yw>^gbeH^Ew2QUu@I4rUh*B zV+~D^-!3QlkwIwKCRxJUN%W`)hJFDJ+E>4c*%!tXFfHz;dt>MB+lhco`^_+Tv6%;n zffneLSkm}u32fO6eA-=~QdR#@FK6|eJC+=$@Lt}vjpTB#tsF%zLa zt^AN&5-9Fx8d(iwwlvZjcs!d;WN5}&2v*3b(enK;usu`iQw=rpmS8F^YYwT2$aSqe zi_4J$RpX45l#ixZ3$G_AWzG@~^eybg7+OT@n;cC!{9u8X^}ee3H?T{@?AS>eTmOvR z8r~X|b<0*nM~&xG$Tt28f2;Az9=>y-gK&E~uT<74bWnuR#M729i-d9$Ij?RxjbafG zW@-3t8T3QL?uP?QNhOGqX#e)eKCcw=m9g@v$8n z@jzZiW)8y$w}9G8E_rPEp`o`Rv>ncxCA(79Lz(*;=6Kj6S9JoLB&@z%M@s}4*LR1L z8+6?T10&=#E8d^ak4G^sbxeB&m-)nd2qa-Xg-Q6v#-F#$YtDN#wULPVa;m(ew5m-n zh(#t!yB(*#ODaFLn=o`%PGxUa?E~M7LB@T(TbP5-(NzSs>70Tt$n9VUnjmEO)57Qy zVP4JpCmB%0kh@}WOL)uCpb?|xv9dSyhbBo&7x5qWA=2qR^)u>c4K4tg27^^;zE4xA zF|t-675xmTl*QymHEfc8=0`(i1&PeDW1W~cdV-!0kDXaIPH6cRbpt|MI7B%RIpcYP zTGq*c&F1@GufMTb1&dUhpGC^#cNtf8oxMWMJzNRG8nW+-Rmd@z3IsP|6!6PW1x-ep zzNgV5$jYNW?^J<;L$sqyd@hnS6Qfs}g$cRf^B0`ocz+5(Ne}i@Y~+r-V}qN}VVv)c z{g9M`P+Nm~^roGpxm`jpUDK36m&tuX%PNqPOVE}xBW(-wwzcEta%a9F$b{K;4m z*J7{AL`wNKZ2>eQ^G)HQ-T|LyCgXXef+4#~QS1^C6vXuDb-ekNpghjvZ2a=dz1V=?m)1Gitci7odS>_M2fry=*^Wyamf&h@V+UqhTEmzl)U z%#Ztv$DWBZ@1#0TMvFKL(&KSMrYc|bmtU$xA|prUj<8NoE>E3;Ja6YqI`ne%)Ut<= zqSunC%ZpFo{E0N(iOUie!V1+P>LJO-0dr}6hZe^S{R0(CXgN{~*hkD>zLY=^M)UKj zpph@xp_44@&o>%Iin7_pDFe@&4SH=D<|7XswgFvB2DH;fJPxO{h*>-aN`_gy=@IYT z=Qy&p^*_Z{>e6<}2;>bB9SnjgKeugzbRA!y&5jUGCQ zy0dQAM))0-Qt}bXjYMe$lQybc^Uw&jQ4rPsMQ_kKH+rGA66=Ru7?1Y|TyiP~3YNyA ztFR;QOb2cT?-8943S|EJl)U(rnzmKl9zCOrS>i%d0_(%1KM>4e0b5X@pE->j8fr=INS| zq{h+XJr`K+v5PM%y3Yyafs=1#-n3Xx=P^L^7KJ{yHL2t38T-1mfj^X|6Be5-o{*)nme|P$48~8 zzv3kpZh*--zHR)Me3IkHFGNb*X?{WC+9uS%IPxBdWPuE%%?gpoR8RJP$~)$iNL9(z ziY>2`ow&+uIcr@Y=r|m&7UvUrx25U0|D_E%aI0QupxgU%b?&(!DR>g>-!lvwjlxO)`lAbq(z+L2D73 zs9yDvcAuezFEa;Uu-wu_wFr+JS^chKHP%Ql6$boup|u1*DF#tQE*dO`;yxXhGT)0S?)UY%-|9{}59cA@+7N=dmp z=qI(utZ94@!~JSCIQ-~tiP=QU_Xm~?JVgbHb;?J!_$?`ugwbRB`t|_j4=fG`g6U_O zC2GeE4bNz&iZ-&{gET{vgHfSDi4cspo6gPd5R=-?0YU|@S>!y_d6}U!)8>x>JJjZ% zfnQ?~LHS$ck0j6>EzD~RwBd6SJcF;ZX~U{2e9)w83M0W~pQ4%J>GN7HNw4tjHt8v; z-fgau=)zX(@mtv*40Js3-v%v%`{NrWsK7%UioW6&-@$~S|_3z;Fld)i(hVoai!6u zF&D3FDJ=9(bVW4k24O%swc%adeB@wAQUahq-ld~MJOKJYy+G+k81h`+)wNxffR=&CDiTY&K(Y-^yJ z<+~JrWxI$W9qK7~_1(TF1`S5@i$?Xm`g3#6wh*_h8If!`aaksS#~*LI&Ojn0+sWMH zsp;L$+SuUe)rRd*Sxbq?J{n+lHL&OP6$nmBV%g! zgO@6zJrv{o3}G*CxgV{V(ZG{*hYXYJVg@5BJ`Y!`MQ-QicXrhJIqp3P+UyhgLJ}4u z^TkCgZTyMfEI1=9fjD}6IW~@5ZvviUbfcVnygNHzyU=uJQ_w$4%7J~C4`v(q5W2e@ z#;?RbR5cfEODc}4@Q1RAZFe7eOZw8aLkIGGvj_adHtf`Sshv*TGCfK+(QE~~&NQROM*ExVb|LVo2R zc4T_r^WLq4eEQJvKCo6Z=~d7kpJ`&@i`tjv^RpT#lL|dWKI@lOPRgv%{!z8Umlf_^ zXO_a64H4G`gv#FF{nn| zva&=qK=KyPsOsWUG_5XJ_>MODCF$*B@09aGVvA1_J2hs5wbWbg=%~BpBo*FZwO8J- zb5A#m)?X|eP8|+$xYsM(8f2S2(pHtSe6>9fSo=9SorrgqEx0eCM{RA>UwBk0Rdabx zp=>72t@*svh!5?P(G8$4QKZMH|3f7Ww=@RRlHILilnYbSxOl!w2a(sM^-oOGc@aJJfe_LOMg>7aKF!*Mwj6OhZT2y3VH zq`;3g{yB3+ey>lp`)A4EGs1@=mph1sk=pa`=6kf{LPY2{a3yCk=`Kmuv+r}VN9eU? zJ&&f-2hM^QAqJI`)WiE7x^FI4_q)pt)=+)NH7sRJ7LIp2({K+KmNKE6iY8vZiJj2P z)`eXa>C3|WCW+Y@460C1R?R(3T+X;v(G{tBIlbkyFp@tG7sx$YAng-U_);GXDiy`UJ^arum8q|_}eX9Cw zj4}5u%A+;}ClmU@hqi>YCe1z8I_>&#FT!I%%39X5(R}><8!6z;ey2+duf;raiL|F}9WjJqFIuu;JDzl^ zf5eY>W;-5t-m%<(QSs?UCyC$MJRd1L5&@dmhy=594cpa74O$CgG`dCoE%O^Ylj~&i=7(;E-Dwnbe2eB$|Bd=JgY>7H@i9tW z1uT+xeJdRmuPIC82X~?WTjFgO+UMA8gdL+ z@m%U-!ed-?rL$VsB6Lie{^Fr;F3w{fV|hlYN<`|`M&IR6chqkb#nd(y8C-Qe7T{JR z-0KUeqEqJv$id}>F%qfl8=!W5_1|tk3>(uf5UAid0m>NL-G$YYv-P~{ruvcJb@IWEOrGV`=6wB1gj_)}ldfs~J5l#_@TnDorp(qnGQ(Gq!P zk&p~lF3)))%eX5u`Kj>R+fJiOspt=GAY!ekF^;5{T)olvlyE598Rm6M!t*||Hh5Ov z`YM0rr0KAfzq=Y)uF}#GcaNVM19qzR>3?t7u%MppnB(#b)3sasZI!>a=Q^B0+5EMh&Q2ui$U~101{0f9B+ps;JVRfAv_fZ% zD`eOj1IDig@Lx^^9!Sytl!{qQxp%ix)28xqxuLfN+A;<6W|{aYT;nq7tg4Jdt+3$J znGWQu0prhXKN6tRv;ZlODrM~NNb&jAXD+VveR*xB)Xjj4Kuw68qU%iYydF;6(WJC= zw}kSmx|Da_xTgyhIzrvBz zGnA=~x?K`*V{$jYU`4VSf!8B6D(C>DwKjjf)sePPpPQf01=fxkKs))XWd``ASW!}v z$9V|$$5M3O@z`z!4Ia=mJ?fCiCq#dO4P|ZmGYBp>(Tj}44vJLB%IPGk(?06c_F8p5w&#hIW4XCjAEW_ zAvq(x!8d^{sHwRywEX5asV)!d{aYHN9EAJ`dY!!4 zTgJ4tYkq^^9%~ThzZC4wfwp8L{tNJ3-tP z!TBPSiZk9cE>*RlHuH{zEba&fZx===m7_Ao0z~_LeKrVnxdqW6$^Kmrt^KH^P!PLu z9wJW?%>^c%G0o{si}rKd$DXx#k(ZDwr1z$`-D7-|{mwR|{|!;Q;1%IZd$Yl8#-jzP zOrI|2e8YnG^s@dTI%Z{I_4munF zuV&Qcf6RgG!-oc&&QSC}fyRT`hqT&HbS?!|)88*R0}AJWl7af>x2%|*!PBwZLyQV? zs|vZ!h>}^mv>3ME zmyJO+ZPv2O*`K9=OkjyfXL|rzELXM?o9RMaS8<8I{Qb}RHD+$Lq*Q~hcNOHCE3&qC zbl)ZP`Z1f|2M*Q3A+`#hOV0H>di@M!@g+XqTFJtdbl`qw71LOD$w4$F)qx?aQ$`m$ zuI(Zj-@-0x2P2)c+hC(lA5JA)CSg%`=;ce>y?3L#_zg|jBm*Yaew;-?em+QrD&Q7U zYd=TPiXvSds{ zE(RQ4mOG-woGo$OnMG!C_`KrQ0#|; zE9s67qiAxS5U@E-_q}2IPQODsY~HC3)XM(`0Q@g!ZgaWU8dgifYMOa*X7-|QqH(Xh zyD_$KYHmuBLD~FMHP#wI^p47>2V#43j;3If>p4 z>$hF!1nvkBbe8;%#3(Tc(n+s7#Dj}n2-!Y*Xb zv8EG)CfPphkYKh{XH-5uj)0}7_ffT{U6!;Py>@FrdWKKo)R5>$lo$QF8W234)%B$j zp%ar&Usj){Bhd6fS(cXBVo@Tzr$3ynH9b9FnO{SkXNW$$8 zG6Pi)Lnh&6lA_a}1zpM;rq!K^a;epKax)6>!U$Y!6un5Ys0(Qlh<2fZp~Un|ZP!ke z3$n+RSmE65IFM!GN@QeK^q|XHb$|tUf_Fwf8SU(rZK^Zi+|cHYqNhf9n5V$so|$A= zlr6e4X6z>IkY=4TMU?g{!xN`mfklJ|aEjlR?y@|b4e2+&@ zWY}&&{-6T7;Fg+ztT8YFMoe+6V`)xPyvx}3u7d^SzC_W6M2MSe&`$yq`HLo%OhQQ~ z@x^8)<*hd9s!5-(DriP0sl$(0*@1VuOnoP&r6c~3B-BfPC22|vveweZmpHb>2v0Lv zIm+XFQmlb&kMi(9GR@C@1HWmHPij~ErhX{FPgUNUvbi!z<#1ohrv)g(*HY|ygJx!B zS9lf z3K(91xdx<;()I@&lShLnm1@iN!JD^~L3${db67{x>@#gjsZOtl+aJGOqjL#`N@>e|=ah(jTY1LN8s7Ap)$PEO&Yw<=Uh$a^dnlrqt{m=5N_K-cT zbB7np^EX6V7hqEK@*0%w%!u_T_^;x%p$aAgVffE#eRqzdMNc?wm#{oj-YxNy8bl>x z;578QO1yN?lh@<7Wm0a}g#=8g91`4pUalkb1lWIU66D7@2}z-zs|@nK*sM&Z9Pw~5 zSGV(FWvL`sZ7}LoDpU{>=1(B?m`N250`pzf9NO6f83;h}_Bi+X@(BAn%7Fy|*1LH; z`ioM;{p_k8TE&Y-ZFBAQli4lzL#iZTlDBG7bnD1I!;5(ryIZ}Ox!9fKis`g!-8s$j zSiEG^St5B!nb?q-BrC)iuvB2Dj(dCozSs!SRY5a##N$}>C69b!|C5oX1{-ZXgI^}; zpQyGOizqXKs)_H@M#rk=JL(z=42VH^_4S(1VLFy4Ah?m5X@^0Jws?wj4uRsIe~Rr} z4Y5t>+Zk&~8$;jLXko9DYtySbUdg7CFga z?E+2TZmSsYjZ!-V?*f`Yl8KZn#lM{JNXcr_ON0bRSbGe&=a26(XuT|9pJteM_exLO zMe=XE-D!QD%h(?_uc8@i`n%{O{URL2FU+xWEs9qa9;;eqS} zTocx4G^li!sq7FIb-baPHf(3iR*|M3e4!J&*)AX44 z;PJ4A2DJ$(^)HB+4zy%!AnihU87?i8b!KqftA9Kr>(&{+p0ioe{N$wEkF!=Nr-rC2 zV-1p!o|Z|`pyA(QvD(i0<;z&DCAIAGss3`$hxJiQUj1WNZL~XE1j-*e?w08V*;P5% zZWJuCzNb_poI%+<{gmPP;H9*FG^vg=B1tsf2BM(#L{6z|lNB3kF} z&Z>`T9hDotN0aRclk2#&qyj8?@Myn7*lsHWjSM16B5v{S=8Y0arW^d^E&Q!s z5Gl|2*vnWFU#c; z?N=qN_zqtMM}hjiyl+jG9u=1?RI0?qRNjqKZcZHC3|bm968qetnm01;e2%6 z09CDmIOtkd@!_FR(#dREv~}x-f(RMpX1(ER8VR2smD*=0I_g4tCagY?gqI^R6+r`m z@o^CY_^>pzBd9orQoToDC{^7-0kyx-96L1SJ+46Y5k6<_Z0CRMkdD;txLF&?NKh6r zinndfHLa}eE-5XyE{b+pN+G0P)b#-==50b>zt>2f#Ag#m`LWjpY6`7JC1cs04}~jH zR+9s;bHxL50}Inl6&8?sv-wA=Pg+7OLQd=qT<(NH_pQPO5Z-i6F`OGe8FF)V~);cb! zL>Z)oyeQDYo+(59tP)1>$gEftVb2I3(px&3Rh;TzcfQ|MXHvci&Z_}4Jmk2&6K!B* zxMgwpOxA1(WNEszc^IypmJl#pmYcqfQr* z$MR<}^*(ZbPs+&`b4WVm#$#ld`jW3XYDdUev0gbqeX3-X%E@iaO7PYR z_QZr&%TjKKJ+BD7KPgr*|=0*6` zfW&U`%Q%t??2o6HQpI`%HTFFpC^j@Bcnd!+cZUHpCKB5(Z~ zGMyvz(ht~A5o(=Fb`Cz~0W#2P=yG5xhU=%T3q?#N-mqJ&|CECk;>->t~a9 zTP*1V#Tk2qYK#lskL{|W((JW>HC7r;y6PDn!{(Fx65AMt)%$bnsiNd{N!yf$oOOQw zQ2k&MX9xD1V0G?@8J*2<+hr~93rf7_XcjhIs3UdDaLOs=)b!I%L_INV!Z73LrUg4! z50z)IX64t%&c)^7T+4BE;oIa18+UnF%|v@wIkwSZN7&Hqh+35Du<-JX%j=pq8YPCA z2}xhH2boMCdi*BB8&q996Gn>&g33XLk#^;LGhg-(+|`alS~ZMap<8CC@hb9xKW~d{ z+iG^?z+jjrKJ^N!rqFXc?^L%LFkSY&yt8z9m>%LxPxf;2OhVh6&FK|y9$SRDjSn=R z@nFt9w{4+&f5}t1mDpk}n4p1Kbd5Nx^jSIKqb(-Kq+*xVR?1Z((q$NNzBu>xZ?X&P zdKTn04&W?AhWUb8megXJUdQ@9+yysPdmJlV-;$X$WOD`Sn4N`F0$Jpx?*f9SPAYY# zMlaReQ5Y24Ipc1hYHAmqP*qFm>JlRtrK|9!StZFVitvvO6z`E$XZm~*5ePdo#kRlX zs{+??&t4w8QM`e@sFs0MO91JpNor2D>s;4*=+<@7U{q-UExr>oT&$L**tk(aa7zHf zv$SevV!vY$!BH>`i6r=j5pC%kPKwG1pvC*jVDW@4vB4&PAo{j&JV z!JeX-7cUcG$_v&XxC$+vJAj#3G}sNYF3;2n+PCv{N~mOKwKo1?WqLqX?aQ1Kl#I-U z20c{e{gU@8qgqxGr3GQu69Ofs^6U|KS5>8g8Zg$RoX@-4ObfU_HYYPN$v_)hGHHrP zaaXclsU8(1W3Y>s z=iJ`R@;HN*3#`y+bLO~+*}%Czh6W?4tPROZZ?1?kyebt^Yi8Na@2Kl6Ivj}sD&Tov z05z*pOP_j;x1Aa8+Lb8OSQ(knY*^@;!9297O`mx)P=(igzpf5{%IJ-HKe5a-SsZ^7A1W0g7)3VPpra%_=u?=V4dg)Z(an=7xh|5?Od)cg^~O& zDC+lfj?d~v(PlZKy(tYsarb2#H-+w7CxGRezRwu29AL&Lg89eNm5I2bO4H*EshFJ+`GcpyKjCYnV% zfvZRkXy)Bydc(p}6hFwmha2UqSIt+TK=~ zxHz*7JEm@xmAWz{D$6<`6l7fvHlUBr2~-HVHJjd`DW`n1J5S&LW3 zJ|79(Pv<+wyld6fm6yq1cL7zigYaC|WzR@^X6>Pp`yG_}swAI{<#JxhMDlf(IgPnJ z@ET9)r2pgwm9xcupR$*RZmAG@M=H&)PgW3fQ*^+$cMk>!`19%YTYIPv_bX_`7V8O* zO+Xbes5_aax|Nf+ru?E8#td>ch9G3TOuZGQRJV&rH7G1?6CJKEQ#sP(;cGJKkoXf% z=TU>qiW30_Ntoud@F6PFobpWGbLbSh;momLkl=B8Pfa*bw40Z>7(ZRO{6_274>?(o z@jlI%UA)b|i7xMu$%l^^Eh<75%#Ybe=n*pHht6q#MvkbKrMo59*E98a%Tv;V0;he+7NU`b>?mod1KODw8 zBK9FkmwNR@oGVKK_*8i03Ep$WVXBE}+jwT`=SU3yf!X9~CkbYH@LkEM?E#;iOoMjC znt&+9ylz=OpZJ#+G|@E*L1uDTX9dnh*TA3H)jvz6Pu{sR&`vJbZ#E$n>01<5x3R*> z2o%OLtyPCE9S{$mX}e6{R*7yd9rHKW`8beXzc5jB{57_nP2MMwy9Sin%}<=w!%ag8ZYjtqc zbocS8%SJSvEY6unfgh5P9q4U$eWQ6nO0j>uNrv*y$s4J+A4i4FrIN}Ww*V39B`^EN zt}LOYw0t{8ygb6;T1a{H1B;x8=8}RjsR6{ZSy7rO-s~fHWo;>C;JcmU-pM+PHA;c+ za((zdSKTL~Y{2n>?(=(fM)h5{_dP|HHjQC}SSr{pqdMAf4b< z_X*x|_u@!0YR-Ok-hmd7a(pttOLWm<1D=sL==xj1kRRMq(a+h{wKuXXZ`Q>eUr0rF zP34rmnjGCeFIv>yjC8)U>p8|fF+1b>=wo2&!;r_5E>OWJbp>57l~O-4zJxk~IVFr! z6739av(4)JHGD^J2m2tS`$UlmQD#Yhu#B~Ao!JseDci|5s5Ugako{$ZoU?QrZuSy6 zHxj~jDP$Rb$qw8@^>kf6o*5Q#$Dyi6t8bzXG8-1>63f&r`cP@1`P^W%SW zUT=2fgza@^E3NB}s?~WG#WZ=H4{df&qRsAjLA;B@R4TCaV+B&})vm~ryWKf*vU49; zFQW~oPAy_#Ime?idv)^$N&c^#+cx6w2Zb7fMjQi!gyEl5%7G_EO0}z<$DZ_;x|;bO zaiDLrY^)i*f~5s+`{38vYgXnDuk^IPGH6pY#t1bZWDAVfJst~qkMh}eIP8v#qMjQD zU&zm^d=G>^sf4y446Ybzpi~4LN}FY*hx^H)ugkj%6_X}_!Mm{OwFip3ryojw5v-UR zxHwHr8nNjYWiiP&Q80$aPINFXpU6Q z>bnecz;9`A5*xfDH*zQb-BBuq&F_v@%%Xohr=nU4YsMQQ5`8L|pql*gj_Im+!^+w9 z!jt4-Z<@Q(^cCM{6;c^xFR?{ww|ISDt{V|A|H2Q>oSrExk%V@dKM9+RSvr^Qoc-u{ zm=?b*Q&+Ff4o#|)?N5I91R?J4rGytXq(7&0XXKygHDwht6%yEB7W9k1<^*Bkn_wCCM6&dbq#Qs)_J)wSD)K68p0 zk=M@#yu9UwjB_12Ne$ZEwu@RZFW8nWr*@A&H!N1r2B~CO?^l95o@_5Q6C&tgka3~R zH}92}KH5*^kleGZuYxB)*Dp*qVWBu-jz5&>7|FMn9a&b-)-a=nEA zt@|OZACC2h6xB<9(urRfJ2N$<>AF9DFRpQaiozR(d>uxTof&@5tp0=aw)CtVTn9(;VrgWyt$YSLLJGBcgi@FA81B)Lk(%Bl5 ziLmA)uc&%siMH~rRQ8BUW`hkytpgUQ@$>nIy#2x^AL`hLq=eCw(=)@IBOUG?aWATO zbN1{Po3Iyh>_ZY>Wb{2MWvO7X!3af0OUUoA82wqxWLIvZBH zc<1}d>}rBl3=z!d#YoOCx;DVUH;fA#gbM?K11!rW4|9fp(LgLlG9*m7l^tkxMt~y4 zcA5QE6#N{Y1yefwK^*Tl&dN{m3EQ61E|*LU;@s;~^(Ec|e%ctz&{Hqy#Rt@~Uk3&& z=-sFQ-<8e33)BKC47aHtt4J`GGDw->Rl^4UTCU_Hc4G(1a>nhBYd@obHNltw`tiD7 zAa#7a#c(^Ez<%x5&kwE@U$9#Gg=q6444h{U6z8A5IlUh^8yry=rWte@+*>6)6(rTE zS+QJsVrGl%!0|5r!b+7$YwJ((vEWkev@6XK^{qT5ycUNk3XA>NM_HRdws&dzvbBMV zFgfzsK>RL<0?6@*ZpkJAYd1WmxBkek&Op6kd5cU3^z2jI)pF$)*l zG~fH=-v6h$?~ZEf+tvkXA_!6hq(!7Dy+{urB3(d1K&49WNhlI}6A)Txd> zS0#rHYnxwq3muP>t$TRpu{noB?Y7V^=IgEGO1%n;XwI(B$}t+tJSi3Sr;Q^%jkB8+ zG_RGal_8(mTbkXDakVBjbDoojE#B}rR)vx7R3CCM$<~aD`!Np|+`5t;HKe>O~A*;_#_~6RPeT4}N#JmjbZEf>%LxY_Ui$RpaCEQ4;p8uy* zpEa2-;)gNeZ<_rJzCSrMrIt``dVb#x5uyKW(K@g3mHsvx@UVP%b#%z*&gq)0yr!Fw zd{73a!`vTJ{W{Nk9iugm6Kk$@v!VYp2gH53Xrq ztL4-|G537XiDe5W7f*|FQc(Vn;93bK0sbaUzd*I9!q1`5tj$jGAHdkIR|ooT)PPri zYxU~{>7YtL&Hl%I(*1>p-#;Xd`L}%fm*B`G;Gfa_2}e%-Z}ftYf8M_RztL0nl2ZJ~ zhY0-3*~pAj-G6I{{+D00|9vWv{u&SlT33tzUwlgYzd-$3x^N5zjHb=m)C1swjRk_dl43Ot1F{(cmA3D?ww@-6=g zYr>EFe#q}q2ob~KlRu*Y{JxknlkE8HQW@o2}yr6={GJRF7uFgFh4t`0d-J$il8_JEv5)|7^ZmImk4%<9a7+jpmoOyNu!4KM3gTRzOr%pFY_>xqI?K`$Gc61|HmS3ll! za%rk7dgl#)0FTsn7Xe^weO=ruU)Glu)fKtf2kQEA#(mrFmHt*a-(5T*-Tb;4hR@qQ ztSS0diPt>D-0(hZsnS0L_Mdz^fyaG=92meO$Fp* zH$`)qR}J8~r>(Hz64t@#T#M5!vj?YJK~(`ci=TEeU8r3QQpwcGWy40)(!tl)1=fIT zIUK;_Pp$KTdarPbeg=maaQ`l*1MK3I8TcBf*jfbp)G|2R1>2Rr7n|B|dcVybb+9Yj z=I9&z*y`{Ye|l*JbWy*>57O|NuZqsJHw!M%cB3^71G+d!-6o0*LGxs?x&>S8e?`#sp!?2hY;`Ti=#$$*3d)*r+d;yYhBWDle!0o3vY9o z7Odfuw(AAopgQ&2-5I^IuO0wL_y%CJSC5o4dhkLkn#qj8wK4P6&f-yQy^YzMFlR`+ zxp1gXCQqPW0VBDQ&TB&hGeuUl%oi`LG3qryL*Yc4PYdh)_}S}Pg^tXKI;jQuEJn<- z`arN1vq?Ma&i&2&?5|fxF3*~7TF=>}qA-tZ-nqXRgM6Yt&2SlQh&di9EIi`rbuD9B zq_2XUgUImk@SzWOqUp7OivaQ^C?AO_!u0 zC%rr6^wt^a7Z%C12Bvv?8wfl3swlPUw4SwzbIngLEVTFWDH-0xA$oaW?b^4)-RK*+ zxJLXkmzX7rd3yY9aN9Tvy;A0ng5LSrmi%zKgN0cO{-*JRB;VJ1z(;FH%tP@&t*Y?h z{OW3Eea~9d*6U`5Z)c+eI1lT4oJGVP@S)^UZV zwmPk$99Bx$L*Xx~ar8W+A|9?y{MTywGkR_)qDB^GdbPwKgOW;v`3V zUzoK#<@bGj7m)X@=d@8BlKURdyf*;B!PE!P!I%f146+hmY-AP6=3W8t8wRtxusATB zY!yE7ncUXAty4kOE;HLBJ1Y`FV@ye1 zqjR+T#1^#Foco#QI7au`Y+00u>!|(E6y^AKkp)~^bIWVZ%Q?I;SQnS=<0H5mB#zB_ zAj;%cev7~MYpc<1+Q}Fhm=XJcyjB8S;3(?7H*JtIO~v$eosH!evTIV}+qzo!*Ld2c zd7D0GFj8mq*c;FqcKRuJG?+2ONb%|g30kDkk1p9$R=F{$8dVmGx~41?+YjiLy?hVn z(`r>2(zvekF6SW|mGP9cHgY4wAZ{go>gk@gho?foTmtN?Id>;n59Z?T*E`%>bx1Gs z@FfrM=(9pw&I%?H-znOBzAqQH^`z+AGUV^urUum99jbKhDRoH#W+7elD`T%zOP2G> zJjcB|lPf1{!*!T_S9leIJd9GmrXIaQ`zgOY&L*cO+NRkYI2yL@(22BLT7Qsv|1|UY z0+rVIw}Amk>mb9d6h;Rn8Ay~pB!+nTNp20{)y zc*FTj0R4g%fA4XsF3#i*RVy-Hbs5R-1ewSkSxQJbbb*V!xTo#=w2AUpGFjsB%ZF_c369rkuFBcDZgZhYLwhnrBrJ(-cO48I0 zUwiNx>565@>h!>L`%69p0N$BVH0J}Dehw!#W1*)MA6BcHRhzW^V0Y?98-Mo>L+5)s zF^R~G!;5;-=;Kl3>KU;^$}eIsrF@a!5}q!GFFDXl)l@vZEn^(>O;Aie8yG%6mM%TM z$pxzHu+q5h&+>()#1{UFFNZs*{QXBz58PDv)M@fVHEPYud6m5Jz`VsaGW7T*<$#yU zI=_KTv-5z3w$jd>OAWeVfUrG*7FnOL-fs}C;32vA#>Pd+&ZY{Rw8w`0zMruf3{~&M z>uWgO&feyj(04neKN5UGomQ#+)P|+0DpW%xii+v;d#dJ|u#8oUdACXpDt6K;zOLGY zx0_$Dr0aPvbcH{laY@?Li=ThQ@nz%mxeez84}-o|bMy>`2w^kuQDs;8mXmjFqr)`X zKdvwir>+o) z!d_54uQs%4S`J0JZ~GwYn$>Sc7Rn+ghpN=IFe}(?Bz|SU?Tn)3!jh+jESgN5Z>p!0R_-NSPj}(Iza5 zhOwc+dC}54N*t;8&U-o*st*{JzE&Y@9@u-_77P+}dL!K>68{o>?#uIRjmqm1!%pB$Gu_zsl3T~;5~R*kD;8-j$u~kS_%*S#N=e0Bs#tbGfADK- z9}_BjAVu#MH_A#)BPz64&3$Xj47#j8K4~}~mVAhO6gL{W(y*!@AA$(fUATX?Zx89t z!0OM*(o3S&+4wocI9F|>583S#ViRDNsE^iAf)~?Qb(?fWm_Lv-ONS31E`5-stO$%u z@$1+KYCO0C4JOKv%Jfv937iA+f{AIW$|HKGta)pQ<5(lBBR z5~z@+LtltzLCd@`_bC-9wRRy@uR)90vdAW&Jz|@?b5TG{A!RN}RZ&R{NE0U<^6i36 z_Nywjs`(Rki#eZsBM(vVh||T^VawY})6?2JKs1Jq{V9_=Q)iu{Q8AnEPICFc(jzvU zAGxe=)cwV{{6TcT{{R>JR`(z)?SlSxvClcNDITy76~cU9i9bvn`z4)RS)XBrA1%?4 zRPI^2nvPynTC?!I{N|;_K=XLHCJ20&)`aFxV+Y97Y~ws^>QYber9JD+mN5CSl5XVW z0fStc2I#Rap!SMEc|4<@yTp$ zUH2pZd0SW<-q;K2yZhzYiO9QS*}g*jvms5*3&NN%!)<-zosY^MF?!}fKj0qO68-5r>Nn5A*m&+VAP2_Tsk|R0qkI=q0;*iBjo_@OHJiDa9i$%1fjpw$y@L=E@q4&E zysuPE-@gjYx070sjXY(pxENfWm==y`fta(^g|^=wooBf|sD|f7J@8`k1`D*Mv~kOm zTYicQirTr&jT}>0^__Y(c(8<)d-IObEvp|ZS~DVvoK;=&5kx{IThs%;GQMr{$ zd5zhTh9^jhD9I@RvI|Sjf9>?Hw!<@{@^klsxZ=$e&Qhq$P7~fm@87gm3eB>xdU;`{ z2G$kicX`krM$?j%qi~Sl|5e>yXXV&1O%U3?#qv^+m}oz=*8#t z*W6(aU!XU_IB&UM(2?d!1XL~rM%AFr+qPc%vmc$J;5Xj6CG!Xo@~18-wi+FBy^&$L-4?6v))x~W749P)o!i#;E<{*SZHY)$rTS)Nr-z`J z0=?3kyz+uh(|1~4XeX;PX>;0fjc6bS$ps28?@V96?r|i7%RktCvLS`f3m6BO)~k+Z9!=Go~VIjq`cOkuW( zr_%M$5DhZgFLJm(T{jmMQSFWFm69uK+wQ=n+kAWVHt!{LF=TSM|~&t8%c1ZPw!r___S>t z4Pwp;46$JfX<}Ghc=oUta}C#0pnY3Mzz>y&*B|As0zGdLo7oGGXhmDawt*yJQ)Tr} z7-&zq;zaEF$8{#~CDAU8l@mSA*Zb$?!y_%BS&7F97&B_&42!Ku%90lQ918?jic=8qUIdvpr3;&y#bq z*lvjGE?LW+TnUUygpY@)7fYb-YqS;AO+6MM(GL=~7{7l+{ z*7est_$s5=eiQJr+3hM+i8m@MIj0j(+Bz3FMAdenL{(LPVbRDcs_ubOkAKz&cK-<- zp3;jP5ZUu?vp1`r>M$bGt>d=LkxNq0N0g`5f=#Bk^i0DClhNEQ$oQ4_cz#Nt&_Vn( zSgKptY9N0rv(xC2U*FK9Zwdp0Qn80rX17H1WEM>>I>bBp^RZ9WYIS`bYa=?kb<)h% z`LXCzQb~d)gXhWsyM|@{L0sTlP#- zyuO4t0PmfXGcVnu6{lfmc@->mdW!~c%b{P8-ijPwVJNcD^Bp#G5Hli@S!cnJIg_qSnSnHYI-9-93#tZ!<1@K#^xUB42**b*9$vib0MNyc_2iUQc}y#K)zO^d_SJLk zbhRDP*f{o?yqwm33u4?Ou8%x)3s+6TxxVcgch0K^8N#O99=Bq~x$J zEuZhnF*6j9fpM^PX*^+;ELDj6yPf4~Qj|KC^0QSPP`7 z5705x5AxU(2<+0ke*UY@q6-yDk1l5jaHSY}d6OrmhqHrWd=T5Zq0u6BGh9Z@5ZOAvu{OdbZXg?iFc%4nil}Dv-q={ zf9}n4=&)(OKmumy0y&I6)u~tZj<1hEUYX`yisAf#J1-ZJD?#xYbGA z5_wj57hSkk8b#o@l~eYY)P;{i(+=C4`7bIQl;?#JiM^lcT_ zaz4&ZmQL)FOe(Rmv}R|`*Tv>0GB*xGrCTS}m+Oc|a>FJt(R0kbL(9>88AbZ3$YEisXM&gSq<;-bFWLy zak>Q3eF|_r7AFE|ZO+D75;^D-M4&DHu|rDygUl$)R#k9y+?;?xV=U8bi^|mR3cifqqWH zA+gZDKiy$-6766KMV%MZqcwXaqg`#6t?HtUdHn4va0IjOGbHyq=K(J-p4kk{cFf1n z&vQIZ-S64sLjTZ9Y7VbhqfxL6psP(S4Gl++2bXP@^%RIoc>!Y9xPn1@iV{==a< z7VcE$up*`fKS`+@)T-z-I!m|of-N^mzLP8r#Zjs_dsGw#9MGuftCaW!%Ni%kLH&{N zuGc`hNAi5`a%YTE|BBpx3jBRT27dc#G=z%PQ{v#*#LOeL(`Q916DejIWUIk;?jKt4rNdBc|u4 z#>9L8&O3@z;TkksXEY3VZeY5VXUAs7p_I_x9qufNXU#N=CZ!+*y*25`SJQ=scge@b zOA&B>g?L1jL(ApR269W3_I(Y}p(YVvmdmxB)(gY3r2GdrT&k++r=Q<)io1LCc}@@& zo}NRlUkppP5pITBa;HaTokqUYK3!uW-fUh z7URR)S3HH4fogtbc$P!vz|%ouF`;!^hz*ZF(l->`CnFDdnyhpML+Ytkz|G%5=U5gB z&+}^EkQECNQ8;EueuQMwJLpROTt3z;GoC46O<$6-Dx+$3&FAIX;pY+JS*p$ub;WSN z0k9uJ)UJ3T=P24{gu+IL#X-rpJz>#(xgl^U#@AttOf_~rm<%yiuoOOt!t~tHh|Bqq zks|H`&iG)+oqeCb?qzPD56+87G^IDZw=Gs{*#*erVsx|woZ=&&TDVn9B12a$=h%5T zFtLa8%6x|S6j$Q&D)+hY(4udI(E?>~8T%9T_0IB7tWOuu`t7bGM_IqqssemGb^R`k zI!u1ilg+LKAlM7>;A~>dt82bf+kARov^~x=6e3n+8|BF`6vwsXXd|;u`4=N2`YFIN zw%i9Bl{uzi!~W5|vnW-z1)5RE{WC{{(TJey7&C7`TeDZN=oxzshE+=R`{qvey>vfv zb!zS*i0C4s1H04&Uz5~<|R3Bj!e1}oPB{DMT} z)Uz8_ESVc`@v@7}?OjiT`RTiWI=fIJH%32oafRS6@1N6UxYnGb=XE2iI- z)lZfAeI|oreSLQ>jn6MFoZW%d)OcBn;c|?^psJN5JN$a9?A~9P6vI3xDhH^tR<5`! zUB5r67-NUFQan_30P@K$=#G%JTw<0D^OwN#I5@1mqw@7)0Ik8R1HM+qdXia$&)ga) zbCK=O8_fB(bm&^omabztwND*L0uuy7SaR(`%HvuON9u0xyO2ZG6m8Ds_uKbPETd;d zb_40|-y7YO?UTrA(^2JKjTWjNR@p^vs3pQ+|cBEd?%vgYHQW}J+TAU_VA)JHA999BOuv? zHi3li>8!52v6(27J)hKVqbC$0Qn2huAHjg$037;kzXI}>&2yKJf_C2pDrVnPthlP% zd>4R|+6>-j177H5U@f~OnSsnlcxA`5wE>v>dnXqjOu}`wMbp@D&waziS6g6RFb#u2 z=QzI&OMg$O-Do5MG&AZC(&Z z_sIDPV8Wpl)g1`K9?H?zTl|e<&xwL+umUV3s!n3tFplh|FjjeD(5J+MBV@n)nu?+V zEN15POn*>!KyGn=F=8l4*UhVYTdos-i0&p|3*dvtbB;&&OpYrYja>1WEDaVDw|3Rg zfF{ZdFMO_D;=(Z0-LkZ0xxwE5rN;|UW%G$heoWA%VDhROn zadwc#zbsWsW0hpY1U_!jyuIC5dn;HiHQK3}W4gL7`uOV3o=k}M@+mnmsSI676DU@z zuE_erKlV!$=AGd9+p{&9AG}eudkGQ=idIn;BeUm}>gaM=r^L&e_XFThBU@I>=2GcY zgA(Qeq^`d6XBm_9>!HT@?07@rYV;f} zo&UbT&7s>LOYPcPs-jG?p7D2(XVAM|IbBn7nc|c8*7xE+Jf+!a8~N_N96(fISe=pW zx7i0|HbQd-vRHOw#=6p=tC+VB{8u^anH4q7H7z5RSlS(hT94^iZoyU|Qfp%|g#R}# zW2CHDg~c20ZeO@iATti$*QhE{%2IJhF@2%TH+1OF2H-q^*=Xc*JVZrmXf#ZFS?X=A=>C1LkL}!rw>tz>+s8Y#u*=hHqO zqq_AV_$cr?`T#nBe=v1Hf4@I^rGBmePWNiLcqcHYvZqr0sHAkEvdZeoV))m}qymcx z$65xFtHtAKRZH6}L3q}aCk`H9|DzDK>(0}A{B>vA<+k6X;)-G#FS_%!^}sbPp0z&x zSThL`;$p2^z7bUmeRhM&EE0cUc)Y4L+4*%+TrRcFicW+Q#wa-a*;fCBpG!$qMFL&? zV8J5`U^NM-96`qP9T!fEc&Bx$ARE(UC;BQfD9W(0&1@)ZK3eldU`!)l23;3_#!h*P z7Wym6q-1N6xcW$a_a`n{ywooA9OT5}D+3>3b2YENqq~C3lVLiCA@zf7Cy*XXg%s8w} zWC=_@hbBJZ3%vInww|l^V(Vk$RG7@}@+NV=P=x1v#&xrzuauULZR5}yK_W_MX|E1l zb|m|#asB?uwWIb8=CwewD&66}H2;p9)CaK#VMfoeZo}b|g=dERvxc#1%P@ zS)8qSYKl%hV`lR8FJWcLM*`O5`g|ecMt5B@E3EIoUIsDfn|KE&t|zIEwodktEODK0 z?-Y!@Tfu;@*m_B!`k`D5(}bo4GPXTi!+<^To77WFKrFV6!yJd7f4k zZu6-VuOW4okIuD`u#6mUr*nnO*Hx?r=&!2y5lpxM_O-G6ntl;6*jk5#>o8V&i0~z> zoz$l3#_qor>6>2E-4FU6Y{dXr7oQ_73F)TJk&up*3ofnFpqa;trFoj)D@#7Z*+Nv^ zi)LVL??u1!h3UV58?IXh8Nc8)AzS7Q>Hbvf`3>*gA68TEs82l7-Qtf2xwX^RYU|cDlfL<0?t$nTH40#Yow4(f)%D7^PbXujejm0<0nIs^BzdWJkHEg z$_r4My#9n$b#ZS~&^z&gjc}`>)1B=nW7W%;`@A=BUfXx{zsiE715||a7m*~(Y-$ww zZ1a70mjD(X`KzH$0~3vYM^-DW2OE7?az3$B^qtw~S`A$@=kSnD*h8y`1myMKyj{|B zOW(a43^^P4F>5V{bT943NL8pR(u#W~<__C<-ck%p&*^PVq>?q5qp=(Rj5UT+N`346 z8fUbTFArMoyi$pV*CL(+%5%~U8DO_QnVqi}6BtTi!o5u}+l0SnOAiYG zVwii|IbU=}D}YdQhJ%-!-DXD;1h6|b2ePd zkDuBg_jUDt2XkkE6<+bWzW(NcbzJhiunea?n|G9nrgCS1f>BNhOR$xm%G5{zw~T>c zk8nZ2O^SD^7FX|RB3DW|iejL(AxFoQ?>_EorLShqU@|xoJ8l?{f*!iRdJ0$kdS7}rcULVJO z-thz~W$ZCR+0TuvVRX0mFWdg>on0Z}3p@EP!Jc?K;Pb$LP4p>Jw#_cl$Uau@?VMNy`@Y^?OIU493 zrqYi@XI}>7sOZoe<9HyPL(QiP?9SafB2-pWF@#swi!yHrh30e@gH_R>S2wE0^-T=l z?o)p6H2 zq#`Sd)%hjPX2(Fc^i)lmbXz@l9vErHIqDPeb4O zWx$O%szyvQK=R@IHtA@$L;M}s6D`Dz1NeCK?g4 zN5=~G$rs<#LBZ44MwwGx0aL~i%ZY%^vvQ#Y`zv=^`1(BG7{A$oJ6*(hqBh;@r6zlb z4uCpegDGZbJEYd70rRy*L(yudfY5}1HAP8WIfZ^fRD-qSLwla%Rl{@p^FiB<+Yx2%{9%I@)(mYOHI3#tg+s=Lx!`Es9#ut= zJp0au9n<4=8U5lN}i{C~I zw+(XeUJJ)82t&d?`sfM76WjVbG5s$+A7zYY%~SWs%k)e{OVN;fqP2)CQOaNy%Pki{qIHp9F!!Rr3$nv9(^fnCt~xJ}Hsfx-J^ z4FxcX*5T0ujLUZ@MqAIW2-1?KEPPR2)E!Ah7Ui>#=i_e#J13kDoRA$ehZ4iQ z!6|-KglF_#rKNeBsC%UU+kN+@Z2^dkVlO+&rHDBzfGfAZRHjiz=BexiGvNoI@~Q6z z?Tm8Ke!)|G*Y;(6N{MN$)c}i0)2>ArMsu+Dme=w-B@w0NM`LNT?;F#`A&58#Wdljf z=pCI&f?R@!qTGL6O0K$)YGzBOW|+`n*WG_AVlvlqKuK$8m4ax8d` zAxf2T+C;1E{NWAHGoO}Te38h12@mQS*XJw=W3FP@NdiDsdf^_FvNIEx?O|_c##Il7 z!q;Wt#@OQTB77-(m1h0gxwlj+rwLgJnQ8ok(ed(%5_kJDp30O&QBAT%X zO_IlxeU;687@Q0fXFl*TTss-L-1b3#8w4ZX0CvhkqgZAJ@5InJm))qiJ&lZ(n+ld( zsVIkedAV*ct`cja_nXjN7YPbOl3(P(=XQxqyyUD-2U z8+`(en*&a@gnqgHwy%u+V}uz4m78KS8Gm!C_-Xm%B-BGTGDEi`d?nmdEUP|G3PeZM z>kGZIDU1zWC%78}^4>FbWSX|Mu(wW;d(f(^5-Z=W2zB~+8Mh6npJ*+{pX}*gG2S0L zis(6VeA$CMFOzfK);jQYP_*ua*3nXb4EJY>zOPpDz_3NMSlQraQM=0Eyj!;Yg64*e zBk0MT>`s^*PPLHDQz_hcrcwHf{aQE^urJL_M<$mAW;Aco&$`=%^YH1CGkq{xyL4yX zhIG1+#z?q} z)B1M}BU3drH-vU8V9Wfvj!H%_TsCp4lyW;{*97KMvmyuiUYnG@@=B5$Rv=dAe@qLF@jt`c90?d-E3uRqvjyI_zt; zwj@{%wohNCizq)%qsS0|l*@iPzE@B#&=%6D_Wh2bqyIZe7=)$<{@xqOsCX*zft6iS zDBqH{pP_xuYNV38ANqOWDikZ?v2#i4yP(ug0)}{Q(ui>jqDVgk5@!B ze_tl&k>D)5xGL4bN>c884~lWkE@f@Bv|&*YXbVmCbX(hQik{{AUchlgJmkbC9~vz2 z+=0pum1E8;5AFH*pmjRN_}nqM@xrRkTlI@BYeO2aFf7qv0M_xj+D+vLMQ>ggN)T2s{VJ!cdR%!>GgRg)v1WB&CA-xMdvPJT(s z^x$c?x64atXPs|}8qVZ7M!C{Dpg}^P!(!%@SBqdBmIS8_m@n2l_i;YS2EWrrbrPD~ zs6KxLl&U^8)@aY$^?%_4onLw{aNYT_9qs~W*C7rOj5!UqkR+w~H+HyF7W~{~{^t(& zkS@cz|Huyazek)r{?$4C@)%)<`@aER`Ueuz$B$gS3DlNiXMfUM{ve0`moNr&gvfs* zD}GQg{wY+0!p=X3ppr!BC-Q;N1rgZJ!wF>j1N=Y$7yMBCPy44O-21!#AEQDr_qXe- zg!6wFybMFQ}EmG|FuA9{?74hg!4b;-wlMi@TUde znQqme6Yx)2WP5%!`^_RtRGPk05}o}Am4}^&ovYm=Pdg&&-~77P-cGKzM2x>L|D}ARC-nMz zz6qR_|3y@ejI@6GedC{DQ+kSi-f{Nwj{traNF{{!m#CNgJbM2+);rfX{xs!9!1&yd zB7FNJyZ$9Nf7tx(rr=Mr|L{popqM>FL{3Ca@WRdw?B)B{kp3|LV>z55d=e8w`m}#` z&+`wFocYP**()|50FA$#<`zhkT@mqiBC1x)CX#HQ>Oa3OH{-gc%-}Kpk=%s$sY5$>@&i=u( z{9o9#=%s!`u>R0X|9-mtp_lpnu=qnS`}^tehhFaYGWtiogxK$-B=9=_7cq|0tNodv zZ~mXDarv**U<7-B9Na;kUQRZaj|pV-kE~toJi7?__(RAE<_YOT>gD8S7x!yLlQaCK zqj+rR;pqf&5BRk_$eI6AQ`y>i+ITpDy$D|w{#xJUgajp6A-DAM1>1QZ{nGw3*VXX{ G4gUu!8(=^H literal 0 HcmV?d00001 diff --git a/previews/PR300/new_model_setups/index.html b/previews/PR300/new_model_setups/index.html new file mode 100644 index 000000000..8657044e4 --- /dev/null +++ b/previews/PR300/new_model_setups/index.html @@ -0,0 +1,2 @@ + +New model setups · SpeedyWeather.jl diff --git a/previews/PR300/parametrizations/index.html b/previews/PR300/parametrizations/index.html new file mode 100644 index 000000000..1d4044c96 --- /dev/null +++ b/previews/PR300/parametrizations/index.html @@ -0,0 +1,2 @@ + +Parameterizations · SpeedyWeather.jl
    diff --git a/previews/PR300/search/index.html b/previews/PR300/search/index.html new file mode 100644 index 000000000..71f429766 --- /dev/null +++ b/previews/PR300/search/index.html @@ -0,0 +1,2 @@ + +Search · SpeedyWeather.jl

    Loading search...

      diff --git a/previews/PR300/search_index.js b/previews/PR300/search_index.js new file mode 100644 index 000000000..533689acf --- /dev/null +++ b/previews/PR300/search_index.js @@ -0,0 +1,3 @@ +var documenterSearchIndex = {"docs": +[{"location":"development/#Development-notes","page":"Development notes","title":"Development notes","text":"","category":"section"},{"location":"development/","page":"Development notes","title":"Development notes","text":"To run tests, from the path of your local clone of the repository do:","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"julia --project=. -e 'import Pkg; Pkg.test()'","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"To install dependencies:","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"julia --project -e 'import Pkg; Pkg.instantiate()`","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"then opening:","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"julia --project","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"you are able to using SpeedyWeather.","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"To generate the docs:","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"julia --project=docs -e 'import Pkg; Pkg.develop(path=\".\"); Pkg.instantiate()'\njulia --project=docs docs/make.jl","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"If the docs are generated successfully, you view them by opening docs/build/index.html in your favorite browser.","category":"page"},{"location":"functions/#Function-and-type-index","page":"Function and type index","title":"Function and type index","text":"","category":"section"},{"location":"functions/#Parameters-and-constants","page":"Function and type index","title":"Parameters and constants","text":"","category":"section"},{"location":"functions/","page":"Function and type index","title":"Function and type index","text":"SpeedyWeather.Parameters\nSpeedyWeather.Constants","category":"page"},{"location":"functions/#SpeedyWeather.Parameters","page":"Function and type index","title":"SpeedyWeather.Parameters","text":"P = Parameters{M<:ModelSetup}(kwargs...) <: AbstractParameters{M}\n\nA struct to hold all model parameters that may be changed by the user. The struct uses keywords such that default values can be changed at creation. The default values of the keywords define the default model setup.\n\nNF::DataType: number format\ntrunc::Int64: spectral truncation\nGrid::Type{<:SpeedyWeather.RingGrids.AbstractGrid}: grid in use\ndealiasing::Float64: dealiasing factor, 1=linear, 2=quadratic, 3=cubic grid\nplanet::SpeedyWeather.Planet: planet\nmol_mass_dry_air::Any: molar mass of dry air [g/mol]\nmol_mass_vapour::Any: molar mass of water vapour [g/mol]\ncₚ::Float64: specific heat at constant pressure [J/K/kg]\nR_gas::Float64: universal gas constant [J/K/mol]\nR_dry::Float64: specific gas constant for dry air [J/kg/K]\nR_vapour::Float64: specific gas constant for water vapour [J/kg/K]\nalhc::Float64: latent heat of condensation [J/g] for consistency with specific humidity [g/Kg]\nalhs::Float64: latent heat of sublimation [?]\nsbc::Float64: stefan-Boltzmann constant [W/m²/K⁴]\nlapse_rate::Float64: moist adiabatic temperature lapse rate -dTdz [K/km]\ntemp_ref::Float64: absolute temperature at surface z=0 [K]\ntemp_top::Float64: absolute temperature in stratosphere [K]\nΔT_stratosphere::Float64: for stratospheric lapse rate [K] after Jablonowski\nscale_height::Float64: scale height for pressure [km]\npres_ref::Float64: surface pressure [hPa]\nscale_height_humid::Float64: scale height for specific humidity [km]\nrelhumid_ref::Float64: relative humidity of near-surface air [1]\nwater_pres_ref::Float64: saturation water vapour pressure [Pa]\nlayer_thickness::Float64: layer thickness for the shallow water model [km]\nGLcoefs::SpeedyWeather.Coefficients: vertical coordinates of the nlev vertical levels, defined by a generalised logistic function, interpolating ECMWF's L31 configuration\nσ_tropopause::Float64: σ coordinate where the tropopause starts\nσ_levels_half::Vector{Float64}: only used if set manually, otherwise empty\nnlev::Int64: number of vertical levels\ndiffusion::SpeedyWeather.DiffusionParameters: horizontal (hyper)-diffusion\nvertical_diffusion::SpeedyWeather.VerticalDiffusion: vertical diffusion\nstatic_energy_diffusion::SpeedyWeather.VerticalDiffusion: static energy diffusion\ninterface_relaxation::Bool: turn on interface relaxation for shallow water?\ninterface_relax_time::Float64: time scale [hrs] of interface relaxation\ninterface_relax_amplitude::Float64: Amplitude [m] of interface relaxation\nphysics::Bool: en/disables the physics parameterizations\nn_shortwave::Int64: Compute shortwave radiation every n steps\nsppt_on::Bool: Turn on SPPT?\nmagnus_coefs::SpeedyWeather.Coefficients: For computing saturation vapour pressure\nk_lsc::Int64: Index of atmospheric level at which large-scale condensation begins\nRH_thresh_pbl_lsc::Float64: Relative humidity threshold for boundary layer\nRH_thresh_range_lsc::Float64: Vertical range of relative humidity threshold\nRH_thresh_max_lsc::Float64: Maximum relative humidity threshold\nhumid_relax_time_lsc::Float64: Relaxation time for humidity (hours)\npres_thresh_cnv::Float64: Minimum (normalised) surface pressure for the occurrence of convection\nRH_thresh_pbl_cnv::Float64: Relative humidity threshold for convection in PBL\nRH_thresh_trop_cnv::Float64: Relative humidity threshold for convection in the troposphere\nhumid_relax_time_cnv::Float64: Relaxation time for PBL humidity (hours)\nmax_entrainment::Float64: Maximum entrainment as a fraction of cloud-base mass flux\nratio_secondary_mass_flux::Float64: Ratio between secondary and primary mass flux at cloud-base\nnband::Int64: Number of bands used to compute fband\nradiation_coefs::SpeedyWeather.Coefficients: radiation coefficients\nboundary_layer::SpeedyWeather.BoundaryLayer{Float64}: boundary layer drag\ntemperature_relaxation::SpeedyWeather.TemperatureRelaxation{Float64}: temperature relaxation\nstartdate::Dates.DateTime: time at which the integration starts\nn_days::Float64: number of days to integrate for\nΔt_at_T31::Float64: time step in minutes for T31, scale linearly to trunc\nrobert_filter::Float64: Robert (1966) time filter coefficeint to suppress comput. mode\nwilliams_filter::Float64: William's time filter (Amezcua 2011) coefficient for 3rd order acc\nimplicit_α::Float64: coefficient for semi-implicit computations to filter gravity waves\nrecalculate_implicit::Int64: recalculate implicit operators on temperature profile every n time steps\nrecompute_legendre::Bool: recomputation is slower but requires less memory\nlegendre_NF::DataType: which format to use to calculate the Legendre polynomials\nlegendre_shortcut::Symbol: :linear, :quadratic, :cubic, :lincub_coslat, :linquad_coslat²\nboundary_path::String: package location is default\norography::SpeedyWeather.AbstractOrography: orography\norography_scale::Float64: scale orography by a factor\norography_path::String: path of orography\norography_file::String: filename of orography\nseed::Int64: random seed for the global random number generator\ninitial_conditions::SpeedyWeather.InitialConditions: initial conditions\npressure_on_orography::Bool: calculate the initial surface pressure from orography\nverbose::Bool: print dialog for feedback\ndebug::Bool: print debug info, NaR detection\noutput::Bool: Store data in netCDF?\noutput_dt::Float64: output time step [hours]\noutput_path::String: path to output folder\nrun_id::Union{Int64, String}: name of the output folder, defaults to 4-digit number counting up from run-0001\noutput_filename::String: name of the output netcdf file\noutput_vars::Vector{Symbol}: variables to output: :u, :v, :vor, :div, :temp, :humid\ncompression_level::Int64: compression level; 1=low but fast, 9=high but slow\nkeepbits::NamedTuple: mantissa bits to keep for every variable\nversion::VersionNumber: SpeedyWeather.jl version number\noutput_NF::DataType: number format used for output\noutput_nlat_half::Int64: 0 = reuse nlat_half from dynamical core\noutput_Grid::Type{<:SpeedyWeather.RingGrids.AbstractFullGrid}: output grid\noutput_Interpolator::Type{<:SpeedyWeather.RingGrids.AbstractInterpolator}: output interpolator\noutput_matrix::Bool: if true sort gridpoints into a matrix\noutput_quadrant_rotation::NTuple{4, Int64}: rotation of output quadrant\noutput_matrix_quadrant::NTuple{4, Tuple{Int64, Int64}}: matrix of output quadrant\nmissing_value::Float64: missing value to be used in netcdf output\nwrite_restart::Bool: also write restart file if output==true?\nrestart_path::String: path for restart file\nrestart_id::Union{Int64, String}: run_id of restart file in run-????/restart.jld2\n\n\n\n\n\n","category":"type"},{"location":"functions/#Boundaries-and-boundary-conditions","page":"Function and type index","title":"Boundaries and boundary conditions","text":"","category":"section"},{"location":"functions/","page":"Function and type index","title":"Function and type index","text":"SpeedyWeather.Boundaries","category":"page"},{"location":"functions/#Spherical-harmonic-transform","page":"Function and type index","title":"Spherical harmonic transform","text":"","category":"section"},{"location":"functions/","page":"Function and type index","title":"Function and type index","text":"SpeedyWeather.GeoSpectral\nSpeedyWeather.SpectralTransform\nSpeedyWeather.spectral\nSpeedyWeather.spectral!\nSpeedyWeather.gridded\nSpeedyWeather.gridded!\nSpeedyWeather.triangular_truncation\nSpeedyWeather.roundup_fft\nSpeedyWeather.spectral_truncation\nSpeedyWeather.spectral_truncation!\nSpeedyWeather.spectral_interpolation!\nSpeedyWeather.get_legendre_polynomials!\nSpeedyWeather.∇²!\nSpeedyWeather.∇²\nSpeedyWeather.∇⁻²!\nSpeedyWeather.∇⁻²\nSpeedyWeather.gradient_latitude!\nSpeedyWeather.gradient_latitude\nSpeedyWeather.gradient_longitude!\nSpeedyWeather.gradient_longitude\nSpeedyWeather.divergence!\nSpeedyWeather.curl!\nSpeedyWeather._divergence!\nSpeedyWeather.curl_div!\nSpeedyWeather.UV_from_vordiv!\nSpeedyWeather.UV_from_vor!\nSpeedyWeather.ϵlm\nSpeedyWeather.get_recursion_factors","category":"page"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.SpectralTransform","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.SpectralTransform","text":"S = SpectralTransform{NF<:AbstractFloat}(...)\n\nSpectralTransform struct that contains all parameters and preallocated arrays for the spectral transform.\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.spectral","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.spectral","text":"alms = spectral( map::AbstractMatrix;\n Grid::Type{<:AbstractGrid}=DEFAULT_GRID,\n kwargs...)\n\nConverts map to grid(map) to execute spectral(map::AbstractGrid;kwargs...).\n\n\n\n\n\nalms = spectral( map::AbstractGrid;\n Grid::Type{<:AbstractGrid}=DEFAULT_GRID,\n kwargs...)\n\nConverts map to Grid(map) to execute spectral(map::AbstractGrid;kwargs...).\n\n\n\n\n\nalms = spectral( map::AbstractMatrix;\n Grid::Type{<:AbstractGrid}=DEFAULT_GRID,\n kwargs...)\n\nSpectral transform (grid to spectral) map to grid(map) to execute spectral(map::AbstractGrid;kwargs...).\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.spectral!","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.spectral!","text":"spectral!( alms::LowerTriangularMatrix,\n map::AbstractGrid,\n S::SpectralTransform)\n\nSpectral transform (grid to spectral space) from the gridded field map on a grid<:AbstractGrid to a LowerTriangularMatrix of spherical harmonic coefficients alms. Uses FFT in the zonal direction, and a Legendre Transform in the meridional direction exploiting symmetries. The spectral transform is number format-flexible as long as the parametric types of map, alms, S are identical. The spectral transform is grid-flexible as long as the typeof(map)<:AbstractGrid. Uses the precalculated arrays, FFT plans and other constants in the SpectralTransform struct S.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.gridded","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.gridded","text":"map = gridded( alms::AbstractMatrix;\n recompute_legendre::Bool=true,\n grid::Type{<:AbstractGrid}=DEFAULT_GRID)\n\nSpectral transform (spectral to grid space) from spherical coefficients alms to a newly allocated gridded field map. Based on the size of alms the grid type grid, the spatial resolution is retrieved based on the truncation defined for grid. SpectralTransform struct S is allocated to execute gridded(alms,S).\n\n\n\n\n\nmap = gridded( alms::AbstractMatrix,\n S::SpectralTransform)\n\nSpectral transform (spectral to grid space) from spherical coefficients alms to a newly allocated gridded field map with precalculated properties based on the SpectralTransform struct S. alms is converted to a LowerTriangularMatrix to execute the in-place gridded!.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.gridded!","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.gridded!","text":"gridded!( map::AbstractGrid,\n alms::LowerTriangularMatrix,\n S::SpectralTransform)\n\nSpectral transform (spectral to grid) of the spherical harmonic coefficients alms to a gridded field map. The spectral transform is number format-flexible as long as the parametric types of map, alms, S are identical. The spectral transform is grid-flexible as long as the typeof(map)<:AbstractGrid. Uses the precalculated arrays, FFT plans and other constants in the SpectralTransform struct S.\n\n\n\n\n\ngridded!( diagn::DiagnosticVariables{NF}, # all diagnostic variables\n progn::PrognosticVariables{NF}, # all prognostic variables\n M::BarotropicModel, # everything that's constant\n lf::Int=1 # leapfrog index\n ) where NF\n\nPropagate the spectral state of the prognostic variables progn to the diagnostic variables in diagn for the barotropic vorticity model. Updates grid vorticity, spectral stream function and spectral and grid velocities u,v.\n\n\n\n\n\ngridded!( diagn::DiagnosticVariables{NF}, # all diagnostic variables\n progn::PrognosticVariables{NF}, # all prognostic variables\n lf::Int=1 # leapfrog index\n M::ShallowWaterModel, # everything that's constant\n ) where NF\n\nPropagate the spectral state of the prognostic variables progn to the diagnostic variables in diagn for the shallow water model. Updates grid vorticity, grid divergence, grid interface displacement (pres_grid) and the velocities U,V (scaled by cos(lat)).\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.spectral_truncation","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.spectral_truncation","text":"alms_trunc = spectral_truncation(alms,trunc)\n\nReturns a spectral coefficient matrix alms_trunc that is truncated from alms to the size (trunc+1)². alms_trunc only contains those coefficient of alms for which m,l ≤ trunc, and l ≥ m are zero anyway. If trunc is larger than the implicit truncation in alms obtained from its size than spectral_interpolation is automatically called instead, returning alms_interp, a coefficient matrix that is larger than alms with padded zero coefficients.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.spectral_truncation!","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.spectral_truncation!","text":"spectral_truncation!(alms::AbstractMatrix,ltrunc::Integer,mtrunc::Integer)\n\nTruncate spectral coefficients alms in-place by setting (a) the upper right triangle to zero and (b) all coefficients for which the degree l is larger than the truncation ltrunc or order m larger than the truncaction mtrunc.\n\n\n\n\n\nspectral_truncation!(alms::LowerTriangularMatrix,ltrunc::Integer,mtrunc::Integer)\n\nTruncate spectral coefficients alms in-place by setting all coefficients for which the degree l is larger than the truncation ltrunc or order m larger than the truncaction mtrunc. Similar to spectral_truncation!(::AbstractMatrix, ...) but skips the upper triangle which is zero by design for LowerTriangularMatrix.\n\n\n\n\n\nspectral_truncation!(alms,trunc)\n\nTruncate spectral coefficients alms in-place by setting (a) the upper right triangle to zero and (b) all coefficients for which the degree l is larger than the truncation trunc.\n\n\n\n\n\nspectral_truncation!(alms)\n\nTruncate spectral coefficients alms in-place by setting the upper right triangle to zero. This is to enforce that all coefficients for which the degree l is larger than order m are zero.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.∇²!","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.∇²!","text":"∇²!( ∇²alms::LowerTriangularMatrix,\n alms::LowerTriangularMatrix,\n S::SpectralTransform;\n add::Bool=false,\n flipsign::Bool=false,\n inverse::Bool=false)\n\nLaplace operator ∇² applied to the spectral coefficients alms in spherical coordinates. The radius R is omitted in the eigenvalues which are precomputed in S. ∇²! is the in-place version which directly stores the output in the first argument ∇²alms.\n\nKeyword arguments\n\nadd=true adds the ∇²(alms) to the output\nflipsign=true computes -∇²(alms) instead\ninverse=true computes ∇⁻²(alms) instead\n\nDefault is add=false, flipsign=false, inverse=false. These options can be combined.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.∇⁻²!","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.∇⁻²!","text":"∇⁻²!( ∇⁻²alms::LowerTriangularMatrix,\n alms::LowerTriangularMatrix,\n S::SpectralTransform;\n add::Bool=false,\n flipsign::Bool=false)\n\nCalls ∇²!(∇⁻²alms, alms, S; add, flipsign, inverse=true).\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.divergence!","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.divergence!","text":"divergence!(div::LowerTriangularMatrix,\n u::LowerTriangularMatrix,\n v::LowerTriangularMatrix,\n S::SpectralTransform{NF};\n flipsign::Bool=false,\n add::Bool=false,\n )\n\nDivergence of a vector u,v written into div, div = ∇⋅(u,v). u,v are expected to have a 1/coslat-scaling included, then div is not scaled. flipsign option calculates -∇⋅(u,v) instead. add option calculates div += ∇⋅(u,v) instead. flipsign and add can be combined. This functions only creates the kernel and calls the generic divergence function _divergence! subsequently.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.curl!","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.curl!","text":"curl!( curl::LowerTriangularMatrix,\n u::LowerTriangularMatrix,\n v::LowerTriangularMatrix,\n S::SpectralTransform;\n flipsign::Bool=false,\n add::Bool=false,\n )\n\nCurl of a vector u,v written into curl, curl = ∇×(u,v). u,v are expected to have a 1/coslat-scaling included, then curl is not scaled. flipsign option calculates -∇×(u,v) instead. add option calculates curl += ∇×(u,v) instead. flipsign and add can be combined. This functions only creates the kernel and calls the generic divergence function _divergence! subsequently with flipped u,v -> v,u for the curl.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.UV_from_vordiv!","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.UV_from_vordiv!","text":"UV_from_vordiv!(U::LowerTriangularMatrix,\n V::LowerTriangularMatrix,\n vor::LowerTriangularMatrix,\n div::LowerTriangularMatrix,\n S::SpectralTransform)\n\nGet U,V (=(u,v)*coslat) from vorticity ζ and divergence D in spectral space. Two operations are combined into a single linear operation. First, invert the spherical Laplace ∇² operator to get stream function from vorticity and velocity potential from divergence. Then compute zonal and meridional gradients to get U,V.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.UV_from_vor!","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.UV_from_vor!","text":"UV_from_vor!( U::LowerTriangularMatrix,\n V::LowerTriangularMatrix,\n vor::LowerTriangularMatrix,\n S::SpectralTransform)\n\nGet U,V (=(u,v)*coslat) from vorticity ζ spectral space (divergence D=0) Two operations are combined into a single linear operation. First, invert the spherical Laplace ∇² operator to get stream function from vorticity. Then compute zonal and meridional gradients to get U,V.\n\n\n\n\n\n","category":"function"},{"location":"functions/#Dynamics","page":"Function and type index","title":"Dynamics","text":"","category":"section"},{"location":"functions/","page":"Function and type index","title":"Function and type index","text":"SpeedyWeather.bernoulli_potential!\nSpeedyWeather.volume_flux_divergence!\nSpeedyWeather.vorticity_fluxes!\nSpeedyWeather.vorticity_flux_curl!\nSpeedyWeather.vorticity_flux_divergence!","category":"page"},{"location":"functions/#SpeedyWeather.bernoulli_potential!","page":"Function and type index","title":"SpeedyWeather.bernoulli_potential!","text":"bernoulli_potential!( diagn::DiagnosticVariablesLayer, \n G::Geometry,\n S::SpectralTransform)\n\nComputes the Laplace operator ∇² of the Bernoulli potential B in spectral space.\n\ncomputes the kinetic energy KE = ½(u²+v²) on the grid\ntransforms KE to spectral space\nadds geopotential for the Bernoulli potential in spectral space\ntakes the Laplace operator.\n\nThis version is used for both ShallowWater and PrimitiveEquation, only the geopotential calculation in geopotential! differs.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.volume_flux_divergence!","page":"Function and type index","title":"SpeedyWeather.volume_flux_divergence!","text":"volume_flux_divergence!(diagn::DiagnosticVariablesLayer,\n surface::SurfaceVariables,\n model::ShallowWater)\n\nComputes the (negative) divergence of the volume fluxes uh,vh for the continuity equation, -∇⋅(uh,vh).\n\n\n\n\n\n","category":"function"},{"location":"functions/#Geometry","page":"Function and type index","title":"Geometry","text":"","category":"section"},{"location":"functions/","page":"Function and type index","title":"Function and type index","text":"SpeedyWeather.Geometry\nSpeedyWeather.vertical_coordinates\nSpeedyWeather.GenLogisticCoefs\nSpeedyWeather.generalised_logistic","category":"page"},{"location":"functions/#SpeedyWeather.Geometry","page":"Function and type index","title":"SpeedyWeather.Geometry","text":"Geometry{NF<:AbstractFloat} <: AbstractGeometry\n\nGeometry struct containing parameters and arrays describing an iso-latitude grid <:AbstractGrid and the vertical levels. NF is the number format used for the precomputed constants.\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.vertical_coordinates","page":"Function and type index","title":"SpeedyWeather.vertical_coordinates","text":"σ_levels_half = vertical_coordinates(P::Parameters)\n\nVertical sigma coordinates defined by their nlev+1 half levels σ_levels_half. Sigma coordinates are fraction of surface pressure (p/p0) and are sorted from top (stratosphere) to bottom (surface). The first half level is at 0 the last at 1. Evaluate a generalised logistic function with coefficients in P for the distribution of values in between. Default coefficients follow the L31 configuration historically used at ECMWF.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.GenLogisticCoefs","page":"Function and type index","title":"SpeedyWeather.GenLogisticCoefs","text":"Coefficients of the generalised logistic function to describe the vertical coordinate. Default coefficients A,K,C,Q,B,M,ν are fitted to the old L31 configuration at ECMWF. See geometry.jl and function vertical_coordinate for more informaiton.\n\nFollowing the notation of https://en.wikipedia.org/wiki/Generalisedlogisticfunction (Dec 15 2021).\n\nChange default parameters for more/fewer levels in the stratosphere vs troposphere vs boundary layer.\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.generalised_logistic","page":"Function and type index","title":"SpeedyWeather.generalised_logistic","text":"Generalised logistic function based on the coefficients in coefs.\n\n\n\n\n\n","category":"function"},{"location":"functions/#Time-stepping","page":"Function and type index","title":"Time stepping","text":"","category":"section"},{"location":"functions/","page":"Function and type index","title":"Function and type index","text":"SpeedyWeather.time_stepping!\nSpeedyWeather.timestep!\nSpeedyWeather.first_timesteps!\nSpeedyWeather.leapfrog!","category":"page"},{"location":"functions/#SpeedyWeather.time_stepping!","page":"Function and type index","title":"SpeedyWeather.time_stepping!","text":"time_stepping!( progn::PrognosticVariables, # all prognostic variables\n diagn::DiagnosticVariables, # all pre-allocated diagnostic variables\n model::ModelSetup) # all precalculated structs\n\nMain time loop that that initialises output and feedback, loops over all time steps and calls the output and feedback functions.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.timestep!","page":"Function and type index","title":"SpeedyWeather.timestep!","text":"timestep!( progn::PrognosticVariables, # all prognostic variables\n diagn::DiagnosticVariables, # all pre-allocated diagnostic variables\n time::DateTime, # time at timestep\n dt::Real, # time step (mostly =2Δt, but for init steps =Δt,Δt/2)\n lf1::Int=2, # leapfrog index 1 (dis/enables Robert+William's filter)\n lf2::Int=2, # leapfrog index 2 (time step used for tendencies)\n M::BarotropicModel, # everything that's constant at runtime\n )\n\nCalculate a single time step for the barotropic vorticity equation model of SpeedyWeather.jl \n\n\n\n\n\ntimestep!( progn::PrognosticVariables{NF}, # all prognostic variables\n diagn::DiagnosticVariables{NF}, # all pre-allocated diagnostic variables\n time::DateTime, # time at timestep\n dt::Real, # time step (mostly =2Δt, but for init steps =Δt,Δt/2)\n M::ShallowWaterModel, # everything that's constant at runtime\n lf1::Int=2, # leapfrog index 1 (dis/enables Robert+William's filter)\n lf2::Int=2 # leapfrog index 2 (time step used for tendencies)\n ) where {NF<:AbstractFloat}\n\nCalculate a single time step for the shallow water model of SpeedyWeather.jl \n\n\n\n\n\ntimestep!( progn::PrognosticVariables{NF}, # all prognostic variables\n diagn::DiagnosticVariables{NF}, # all pre-allocated diagnostic variables\n time::DateTime, # time at timestep\n dt::Real, # time step (mostly =2Δt, but for init steps =Δt,Δt/2)\n M::PrimitiveEquation, # everything that's constant at runtime\n lf1::Int=2, # leapfrog index 1 (dis/enables Robert+William's filter)\n lf2::Int=2 # leapfrog index 2 (time step used for tendencies)\n ) where {NF<:AbstractFloat}\n\nCalculate a single time step for the primitive equation model of SpeedyWeather.jl \n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.first_timesteps!","page":"Function and type index","title":"SpeedyWeather.first_timesteps!","text":"first_timesteps!( progn::PrognosticVariables, # all prognostic variables\n diagn::DiagnosticVariables, # all pre-allocated diagnostic variables\n time::DateTime, # time at timestep\n M::ModelSetup, # everything that is constant at runtime\n feedback::AbstractFeedback # feedback struct\n )\n\nPerforms the first two initial time steps (Euler forward, unfiltered leapfrog) to populate the prognostic variables with two time steps (t=0,Δt) that can then be used in the normal leap frogging.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.leapfrog!","page":"Function and type index","title":"SpeedyWeather.leapfrog!","text":"leapfrog!( A_old::LowerTriangularMatrix{Complex{NF}}, # prognostic variable at t\n A_new::LowerTriangularMatrix{Complex{NF}}, # prognostic variable at t+dt\n tendency::LowerTriangularMatrix{Complex{NF}}, # tendency (dynamics+physics) of A\n dt::Real, # time step (=2Δt, but for init steps =Δt,Δt/2)\n lf::Int=2, # leapfrog index to dis/enable William's filter\n C::DynamicsConstants{NF}, # struct with constants used at runtime\n ) where {NF<:AbstractFloat} # number format NF\n\nPerforms one leapfrog time step with (lf=2) or without (lf=1) Robert+William's filter (see William (2009), Montly Weather Review, Eq. 7-9).\n\n\n\n\n\n","category":"function"},{"location":"functions/#Longwave-radiation","page":"Function and type index","title":"Longwave radiation","text":"","category":"section"},{"location":"functions/","page":"Function and type index","title":"Function and type index","text":"SpeedyWeather.radset!\nSpeedyWeather.radlw_down!\nSpeedyWeather.compute_bbe!\nSpeedyWeather.radlw_up!","category":"page"},{"location":"functions/#SpeedyWeather.radset!","page":"Function and type index","title":"SpeedyWeather.radset!","text":"function radset!(model::PrimitiveEquation) where {NF<:AbstractFloat}\n\nCompute energy fractions in four longwave bands as a function of temperature.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.radlw_down!","page":"Function and type index","title":"SpeedyWeather.radlw_down!","text":"function radlw_down!(\n column::ColumnVariables{NF}, model::PrimitiveEquation\n) where {NF<:AbstractFloat}\n\nCompute the downward flux of longwave radiation. Inputs variables are temp,wvi,tau2. Output column varables arefsfcd,dfabs,flux,st4a`.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.compute_bbe!","page":"Function and type index","title":"SpeedyWeather.compute_bbe!","text":"function compute_bbe!(\n column::ColumnVariables{NF}, model::PrimitiveEquation\n) where {NF<:AbstractFloat}\n\nComputes black-body (or grey-body) emissions.\n\nInput and output variables are ts and fsfcu, respectively.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.radlw_up!","page":"Function and type index","title":"SpeedyWeather.radlw_up!","text":"function radlw_up!(\n column::ColumnVariables{NF}, model::PrimitiveEquation\n) where {NF<:AbstractFloat}\n\nComputes the upward flux of longwave radiation.\n\nInput variables are nlev, temp, fsfcu, fsfcd, flux, ts, tau2, st4a, dfabs, stratc, σ_levels_thick, n_stratosphere_levels. Output column variables are fsfc and ftop.\n\n\n\n\n\n","category":"function"},{"location":"functions/#Shortwave-radiation","page":"Function and type index","title":"Shortwave radiation","text":"","category":"section"},{"location":"functions/","page":"Function and type index","title":"Function and type index","text":"SpeedyWeather.shortwave_radiation!\nSpeedyWeather.solar!\nSpeedyWeather.sol_oz!\nSpeedyWeather.cloud!\nSpeedyWeather.radsw!","category":"page"},{"location":"functions/#SpeedyWeather.shortwave_radiation!","page":"Function and type index","title":"SpeedyWeather.shortwave_radiation!","text":"function shortwave_radiation!(\n column::ColumnVariables{NF}, model::PrimitiveEquation\n)\n\nCompute air temperature tendencies from shortwave radiation for an atmospheric column. For more details see http://users.ictp.it/~kucharsk/speedydescription/kmver41_appendixA.pdf\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.solar!","page":"Function and type index","title":"SpeedyWeather.solar!","text":"function solar!(column::ColumnVariables{NF})\n\nCompute average daily flux of solar radiation for an atmospheric column, from Hartmann (1994).\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.sol_oz!","page":"Function and type index","title":"SpeedyWeather.sol_oz!","text":"function sol_oz!(\n column::ColumnVariables{NF}, model::PrimitiveEquation\n)\n\nCompute solar radiation parametres for an atmospheric column.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.cloud!","page":"Function and type index","title":"SpeedyWeather.cloud!","text":"function cloud!(\n column::ColumnVariables{NF}, model::PrimitiveEquation\n)\n\nCompute shortwave radiation cloud contibutions for an atmospheric column.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.radsw!","page":"Function and type index","title":"SpeedyWeather.radsw!","text":"function radsw!(\n column::ColumnVariables{NF}, model::PrimitiveEquation\n)\n\nCompute shortwave radiation fluxes for an atmospheric column.\n\n\n\n\n\n","category":"function"},{"location":"parametrizations/#Parameterizations","page":"Parameterizations","title":"Parameterizations","text":"","category":"section"},{"location":"parametrizations/","page":"Parameterizations","title":"Parameterizations","text":"This page describes the mathematical formulation of the parameterizations used in SpeedyWeather.jl to represent physical processes in the atmopshere. Every section is followed by a brief description of implementation details.","category":"page"},{"location":"parametrizations/#Convection","page":"Parameterizations","title":"Convection","text":"","category":"section"},{"location":"parametrizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"parametrizations/#Large-scale-condensation","page":"Parameterizations","title":"Large-scale condensation","text":"","category":"section"},{"location":"parametrizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"parametrizations/#Clouds","page":"Parameterizations","title":"Clouds","text":"","category":"section"},{"location":"parametrizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"parametrizations/#Short-wave-radiation","page":"Parameterizations","title":"Short-wave radiation","text":"","category":"section"},{"location":"parametrizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"parametrizations/#Long-wave-radiation","page":"Parameterizations","title":"Long-wave radiation","text":"","category":"section"},{"location":"parametrizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"parametrizations/#Surface-fluxes-of-momentum-and-energy","page":"Parameterizations","title":"Surface fluxes of momentum and energy","text":"","category":"section"},{"location":"parametrizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"parametrizations/#Vertical-diffusion","page":"Parameterizations","title":"Vertical diffusion","text":"","category":"section"},{"location":"parametrizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"how_to_run_speedy/#How-to-run-SpeedyWeather.jl","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"","category":"section"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"The simplest way to run SpeedyWeather.jl with default parameters is","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"using SpeedyWeather\nrun_speedy()","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"Hooray, you have just simulated the Earth's atmosphere. Parameters, their meanings and defaults are documented in Parameters. For example, if you want to run the primitive equation dry core (no humidity) simulation in double precision (Float64), at higher resolution (trunc, the triangular spectral truncation), slow down the rotation of the Earth (rotation in s^-1), and create some netCDF ouput, do","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"run_speedy(Float64,PrimitiveDryCore,trunc=42,planet=Earth(rotation=1e-5),output=true)","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"If provided, the number format has to be the first argument, the model (Barotropic, ShallowWater, PrimitiveDryCore, PrimitiveWetCore are available) the second, and all other arguments are keyword arguments.","category":"page"},{"location":"how_to_run_speedy/#The-run_speedy-interface","page":"How to run SpeedyWeather.jl","title":"The run_speedy interface","text":"","category":"section"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"run_speedy","category":"page"},{"location":"how_to_run_speedy/#SpeedyWeather.run_speedy","page":"How to run SpeedyWeather.jl","title":"SpeedyWeather.run_speedy","text":"progn_vars = run_speedy(NF,Model;kwargs...) or\nprogn_vars = run_speedy(NF;kwargs...) or\nprogn_vars = run_speedy(Model;kwargs...)\n\nRuns SpeedyWeather.jl with number format NF and the model Model and any additional parameters in the keyword arguments kwargs.... Any unspecified parameters will use the default values as defined in Parameters.\n\n\n\n\n\n","category":"function"},{"location":"how_to_run_speedy/#The-initialize_speedy-interface","page":"How to run SpeedyWeather.jl","title":"The initialize_speedy interface","text":"","category":"section"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"initialize_speedy","category":"page"},{"location":"how_to_run_speedy/#SpeedyWeather.initialize_speedy","page":"How to run SpeedyWeather.jl","title":"SpeedyWeather.initialize_speedy","text":"progn_vars, diagn_vars, model_setup = initialize_speedy(NF,Model;kwargs...) or\nprogn_vars, diagn_vars, model_setup = initialize_speedy(NF,kwargs...) or\nprogn_vars, diagn_vars, model_setup = initialize_speedy(Model,kwargs...)\n\nInitialize the model by returning\n\nprogn_vars, the initial conditions of the prognostic variables\ndiagn_vars, the preallocated the diagnotic variables (initialised to zero)\nmodel_setup, the collected pre-calculated structs that don't change throughout integration.\n\nThe keyword arguments kwargs are the same as for run_speedy. The model_setup contains fields that hold the parameters, constants, geometry, spectral transform, boundaries and diffusion.\n\n\n\n\n\n","category":"function"},{"location":"grids/#Grids","page":"Grids","title":"Grids","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"The spectral transform (the Spherical Harmonic Transform) in SpeedyWeather.jl supports any ring-based equi-longitude grid. Several grids are already implemented but other can be added. The following pages will describe an overview of these grids and how they can be used.","category":"page"},{"location":"grids/#Ring-based-equi-longitude-grids","page":"Grids","title":"Ring-based equi-longitude grids","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"SpeedyWeather.jl's spectral transform currently only supports ring-based equi-longitude grids. These grids have their grid points located on rings with constant latitude and on rings the points are equi-spaced in longitude. There is technically no constrain on the spacing of the latitude rings, but the Legendre transform requires a quadrature to map those to spectral space and back. Common choices for latitudes are the Gaussian latitudes which use the Gaussian quadrature, or equi-angle latitudes (i.e. just regular latitudes but excluding the poles) that use the Clenshaw-Curtis quadrature. The longitudes have to be equi-spaced on every ring, which is necessary for the fast Fourier transform, as one would otherwise need to use a non-uniform Fourier transform. In SpeedyWeather.jl the first grid point on any ring can have a longitudinal offset though, for example by spacing 4 points around the globe at 45˚E, 135˚E, 225˚E, and 315˚E. In this case the offset is 45˚E as the first point is not at 0˚E.","category":"page"},{"location":"grids/#Implemented-grids","page":"Grids","title":"Implemented grids","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"All grids in SpeedyWeather.jl are a subtype of AbstractGrid, i.e. <: AbstractGrid. We further distinguish between full, and reduced grids. Full grids have the same number of longitude points on every latitude ring (i.e. points converge towards the poles) and reduced grids reduce the number of points towards the poles to have them more evenly spread out across the globe. More evenly does not necessarily mean that a grid is equal-area, meaning that every grid cell covers exactly the same area (although the shape changes).","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"Currently the following full grids <: AbstractFullGrid are implemented","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"FullGaussianGrid, a full grid with Gaussian latitudes\nFullClenshawGrid, a full grid with equi-angle latitudes","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"and additionally we have FullHEALPixGrid and FullOctaHEALPixGrid which are the full grid equivalents to the HEALPix grid and the OctaHEALPix grid discussed below. Full grid equivalent means that they have the same latitude rings, but no reduction in the number of points per ring towards the poles and no longitude offset. Other implemented reduced grids are","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"OctahedralGaussianGrid, a reduced grid with Gaussian latitudes based on an octahedron\nOctahedralClenshawGrid, similar but based on equi-angle latitudes\nHEALPixGrid, an equal-area grid based on a dodecahedron with 12 faces\nOctaHEALPixGrid, an equal-area grid from the class of HEALPix grids but based on an octahedron.","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"An overview of these grids is visualised here","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"(Image: Overview of implemented grids in SpeedyWeather.jl)","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"Visualised are each grid's grid points (white dots) and grid faces (white lines). All grids shown have 16 latitude rings on one hemisphere, Equator included. The total number of grid points is denoted in the top left of every subplot. The sphere is shaded with grey, orange and turquoise regions to denote the hemispheres in a and b, the 8 octahedral faces c, d,f and the 12 dodecahedral faces (or base pixels) in e. Coastlines are added for orientation.","category":"page"},{"location":"grids/#Resolution","page":"Grids","title":"Resolution","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"All grids use the same resolution parameter nlat_half, i.e. the number of rings on one hemisphere, Equator included. The Gaussian grids (full and reduced) do not have a ring on the equator, so their total number of rings nlat is always even and twice nlat_half. Clenshaw-Curtis grids and the HEALPix grids have a ring on the equator such their total number of rings is always odd and one less than the Gaussian grids at the same nlat_half. ","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"info: HEALPix grids do not use Nside as resolution parameter\nThe original formulation for HEALPix grids use N_side, the number of grid points along the edges of each basepixel (8 in the figure above), SpeedyWeather.jl uses nlat_half, the number of rings on one hemisphere, Equator included, for all grids. This is done for consistency across grids. We may use N_side for the documentation or within functions though.","category":"page"},{"location":"grids/#Truncation","page":"Grids","title":"Truncation","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"A given spectral resolution can be matched to a variety of grid resolutions. A cubic grid, for example, combines a spectral truncation T with a grid resolution N (=nlat_half) such that T + 1 = N. Using T31 and an O32 is therefore often abbreviated as Tco31 meaning that the spherical harmonics are truncated at l_max=31 in combination with N=32, i.e. 64 latitude rings in total on an octahedral Gaussian grid.","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"Let J be the total number of rings. Then we have","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"T approx J for linear truncation\nfrac32T approx J for quadratic truncation\n2T approx J for cubic truncation","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"and in general fracm+12T approx J for m-th order truncation. So the higher the truncaction order the more grid points are used in combination with the same spectral resolution. A higher truncation order therefore makes all grid-point calculations more expensive, but can represent products of terms on the grid (which will have higher wavenumber components) to a higher accuracy as more grid points are available within a given wavelength. Using a sufficiently high truncation is therefore one way to avoid aliasing. In SpeedyWeather.jl the parameter dealiasing controls this option, = 1 would be linear, = 2 quadratic, = 3 cubic etc.","category":"page"},{"location":"grids/#Full-Gaussian-grid","page":"Grids","title":"Full Gaussian grid","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"...","category":"page"},{"location":"grids/#Full-Clenshaw-Curtis-grid","page":"Grids","title":"Full Clenshaw-Curtis grid","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"...","category":"page"},{"location":"grids/#Octahedral-Gaussian-grid","page":"Grids","title":"Octahedral Gaussian grid","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"...","category":"page"},{"location":"grids/#The-HEALPix-grid","page":"Grids","title":"The HEALPix grid","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"Technically, HEALPix grids are a class of grids that tessalate the sphere into faces that are often called basepixels. For each member of this class there are N_varphi basepixels in zonal direction and N_theta basepixels in meridional direction. For N_varphi = 4 and N_theta = 3 we obtain the classical HEALPix grid with N_varphi N_theta = 12 basepixels shown above in Implemented Grids. Each basepixel has a quadratic number of grid points in them. There's an equatorial zone where the number of zonal grid points is constant (always 2N, so 32 at N=16) and there are polar caps above and below the equatorial zone with the border at cos(theta) = 23 (theta in colatitudes).","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"Following Górski, 2004[1], the z=cos(theta) colatitude of the j-th ring in the north polar cap, j=1N_side with 2N_side = N is ","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"z = 1 - fracj^23N_side^2","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"and on that ring, the longitude phi of the i-th point (i is the in-ring-index) is at","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"phi = fracpi2j(i-tfrac12)","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"The in-ring index i goes from i=14 for the first (i.e. northern-most) ring, i=18 for the second ring and i = 14j for the j-th ring in the northern polar cap.","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"In the north equatorial belt j=N_side2N_side this changes to","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"z = frac43 - frac2j3N_side","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"and the longitudes change to (i is always i = 14N_side in the equatorial belt meaning the number of longitude points is constant here)","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"phi = fracpi2N_side(i - fracs2) quad s = (j - N_side + 1) mod 2","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"The modulo function comes in as there is an alternating longitudinal offset from the prime meridian (see Implemented grids). For the southern hemisphere the grid point locations can be obtained by mirror symmetry.","category":"page"},{"location":"grids/#Grid-cell-boundaries","page":"Grids","title":"Grid cell boundaries","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"The cell boundaries are obtained by setting i = k + 12 or i = k + 12 + j (half indices) into the equations above, such that z(phik), a function for the cosine of colatitude z of index k and the longitude phi is obtained. These are then (northern polar cap)","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"z = 1 - frack^23N_side^2left(fracpi2phi_tright)^2 quad z = 1 - frack^23N_side^2left(fracpi2phi_t - piright)^2","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"with phi_t = phi mod tfracpi2 and in the equatorial belt","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"z = frac23-frac4k3N_side pm frac8phi3pi","category":"page"},{"location":"grids/#OctaHEALPix-grid","page":"Grids","title":"OctaHEALPix grid","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"While the classic HEALPix grid is based on a dodecahedron, other choices for N_varphi and N_theta in the class of HEALPix grids will change the number of faces there are in zonal/meridional direction. With N_varphi = 4 and N_theta = 1 we obtain a HEALPix grid that is based on an octahedron, which has the convenient property that there are twice as many longitude points around the equator than there are latitude rings between the poles. This is a desirable for truncation as this matches the distances too, 2pi around the Equator versus pi between the poles. N_varphi = 6 N_theta = 2 or N_varphi = 8 N_theta = 3 are other possible choices for this, but also more complicated. See Górski, 2004[1] for further examples and visulations of these grids.","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"We call the N_varphi = 4 N_theta = 1 HEALPix grid the OctaHEALPix grid, which combines the equal-area property of the HEALPix grids with the octahedron that's also used in the OctahedralGaussianGrid or the OctahedralClenshawGrid. As N_theta = 1 there is no equatorial belt which simplifies the grid. The latitude of the j-th isolatitude ring on the OctaHEALPixGrid is defined by","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"z = 1 - fracj^2N^2","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"with j=1N, and similarly for the southern hemisphere by symmetry. On this grid N_side = N where N= nlat_half, the number of latitude rings on one hemisphere, Equator included, because each of the 4 basepixels spans from pole to pole and covers a quarter of the sphere. The longitudes with in-ring- index i = 14j are","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"phi = fracpi2j(i - tfrac12)","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"and again, the southern hemisphere grid points are obtained by symmetry.","category":"page"},{"location":"grids/#Grid-cell-boundaries-2","page":"Grids","title":"Grid cell boundaries","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"Similar to the grid cell boundaries for the HEALPix grid, the OctaHEALPix grid's boundaries are","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"z = 1 - frack^2N^2left(fracpi2phi_tright)^2 quad z = 1 - frack^2N^2left(fracpi2phi_t - piright)^2","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"The 3N_side^2 in the denominator of the HEALPix grid came simply N^2 for the OctaHEALPix grid and there's no separate equation for the equatorial belt (which doesn't exist in the OctaHEALPix grid).","category":"page"},{"location":"grids/#References","page":"Grids","title":"References","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"[1] Górski, Hivon, Banday, Wandelt, Hansen, Reinecke, Bartelmann, 2004. HEALPix: A FRAMEWORK FOR HIGH-RESOLUTION DISCRETIZATION AND FAST ANALYSIS OF DATA DISTRIBUTED ON THE SPHERE, The Astrophysical Journal. doi:10.1086/427976","category":"page"},{"location":"boundary_conditions/#Boundary-conditions","page":"Boundary conditions","title":"Boundary conditions","text":"","category":"section"},{"location":"boundary_conditions/","page":"Boundary conditions","title":"Boundary conditions","text":"This page describes the formulation of boundary conditions and their implementation.","category":"page"},{"location":"conventions/#Style-and-convention-guide","page":"Style and convention guide","title":"Style and convention guide","text":"","category":"section"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"In SpeedyWeather.jl we've been following the several conventions that are documented here.","category":"page"},{"location":"conventions/#Variable-naming","page":"Style and convention guide","title":"Variable naming","text":"","category":"section"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"The prognostic variables in spectral space are called","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":" vor # Vorticity of horizontal wind field\n div # Divergence of horizontal wind field\n temp # Absolute temperature [K]\n pres_surf # Logarithm of surface pressure [log(Pa)]\n humid # Specific humidity [g/kg]","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"their transforms into grid-point space get a _grid suffix, their tendencies a _tend suffix. Further derived diagnostic dynamic variables are","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":" u\n v\n geopot\n ...","category":"page"},{"location":"conventions/#Preallocation","page":"Style and convention guide","title":"Preallocation","text":"","category":"section"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"All arrays representing variables are preallocated and grouped into two structs","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":" Prog::PrognosticVariables\n Diag::DiagnosticVariables","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"The Diag struct contains further structs which represent the grid-point transformations of the prognostic variables and their tendencies.","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":" gridvars::GridVariables\n tendencies::Tendencies\n ...","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"Constant arrays are grouped into several structs","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"Boundaries","category":"page"},{"location":"conventions/#Julian-conventions","page":"Style and convention guide","title":"Julian conventions","text":"","category":"section"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"We follow Julia's style guide and highlight here some important aspects of it.","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"Bang (!) convention. A function func does not change its input arguments, however, func! does.","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"Hence, func! is often the in-place version of func, avoiding as much memory allocation as possible and often changing its first argument, e.g. func!(out,in) so that argument in is used to calculate out which has been preallocated before function call.","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"Number format flexibility. Numeric literals such as 2.0 or 1/3 are only used in the model setup","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"but avoided throughout the code to obtain a fully number format-flexible package using the number format NF as a compile-time variable throughout the code. This often leads to overly specific code whereas a Real would generally suffice. However, this is done to avoid any implicit type conversions.","category":"page"},{"location":"literated/basic_example/","page":"Basic example","title":"Basic example","text":"EditURL = \"https://github.com/SpeedyWeather/SpeedyWeather.jl/blob/main/examples/basic_example.jl\"","category":"page"},{"location":"literated/basic_example/#Basic","page":"Basic example","title":"Basic","text":"","category":"section"},{"location":"literated/basic_example/","page":"Basic example","title":"Basic example","text":"This is the first SpeedyWeather example.","category":"page"},{"location":"literated/basic_example/","page":"Basic example","title":"Basic example","text":"using SpeedyWeather","category":"page"},{"location":"literated/basic_example/","page":"Basic example","title":"Basic example","text":"Now let's run","category":"page"},{"location":"literated/basic_example/","page":"Basic example","title":"Basic example","text":"run_speedy(ShallowWater, n_days=30, trunc=63, Grid=OctahedralGaussianGrid, output=true)","category":"page"},{"location":"literated/basic_example/","page":"Basic example","title":"Basic example","text":"","category":"page"},{"location":"literated/basic_example/","page":"Basic example","title":"Basic example","text":"This page was generated using Literate.jl.","category":"page"},{"location":"new_model_setups/#New-model-setups","page":"New model setups","title":"New model setups","text":"","category":"section"},{"location":"new_model_setups/","page":"New model setups","title":"New model setups","text":"more to come...","category":"page"},{"location":"dynamical_core/#Dynamical-core","page":"Dynamical core","title":"Dynamical core","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"A mathematical and implementation-specific description of the dynamical core used in SpeedyWeather.jl. We start by describing the barotropic vorticity equations which is one set of equations that SpeedyWeather.jl can solve (see How to run SpeedyWeather.jl) as many details therein also apply to the Shallow water equations and Primitive equations explained thereafter.","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"The dynamical core presented here largely follows the idealized models with spectral dynamics developed at the Geophysical Fluid Dynamics Laboratory[1]: A barotropic vorticity model[2], a shallow water model [3] and a primitive equation model[4]. ","category":"page"},{"location":"dynamical_core/#Barotropic-vorticity-equation","page":"Dynamical core","title":"Barotropic vorticity equation","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"The barotropic vorticity equation is the prognostic equation that describes the time evolution of relative vorticity zeta with advection, Coriolis force and diffusion in a single global layer.","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"fracpartial zetapartial t + nabla cdot (mathbfu(zeta + f)) = (-1)^n+1nunabla^2nzeta","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"with time t, velocity vector mathbfu = (u v), Coriolis parameter f, and hyperdiffusion (-1)^n+1 nu nabla^2n zeta (n is the hyperdiffusion order; see Horizontal diffusion). Starting with some relative vorticity zeta, the Laplacian is inverted to obtain the stream function Psi","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"Psi = nabla^-2zeta","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"The zonal velocity u and meridional velocity v are then the (negative) meridional gradient and zonal gradient of Psi","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"beginaligned\nu = -frac1R fracpartial Psipartial theta \nv = frac1Rcos(theta) fracpartial Psipartial phi \nendaligned","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"which is described in Derivatives in spherical coordinates.","category":"page"},{"location":"dynamical_core/#Algorithm","page":"Dynamical core","title":"Algorithm","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"We briefly outline the algorithm that SpeedyWeather.jl uses in order to integrate the barotropic vorticity equation","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"Start with initial conditions of zeta_lm in spectral space\nUse zeta_lm to\nInvert the Laplacian to obtain the stream function Psi_lm in spectral space\nTransform zeta_lm to zeta in grid-point space\nUse Psi_lm to\nobtain zonal velocity (cos(theta)u)_lm through a Meridional derivative\nobtain meridional velocity (cos(theta)v)_lm through a Zonal derivative\nTransform zonal and meridional velocity (cos(theta)u)_lm, (cos(theta)v)_lm to grid-point space and unscale the cos(theta) factor to obtain uv.\nMultiply uv with zeta+f in grid-point space\nTransform u(zeta + f) and v(zeta+f) to spectral space\nCompute the divergence of (mathbfu(zeta + f))_lm in spectral space through a Meridional derivative and Zonal derivative which will be the tendency of zeta_lm\nCompute the Horizontal diffusion based on that tendency\nCompute a leapfrog time step as described in Time integration\nRepeat from 1.","category":"page"},{"location":"dynamical_core/#Shallow-water-equations","page":"Dynamical core","title":"Shallow water equations","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"beginaligned\nfracpartial zetapartial t + nabla cdot (mathbfu(zeta + f)) = (-1)^n+1nunabla^2nzeta \nfracpartial mathcalDpartial t - nabla times (mathbfu(zeta + f)) = -nabla^2(tfrac12(u^2 + v^2) + geta) + (-1)^n+1nunabla^2nmathcalD \nfracpartial etapartial t + nabla cdot (mathbfuh) = 0\nendaligned","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"more to come","category":"page"},{"location":"dynamical_core/#Primitive-equations","page":"Dynamical core","title":"Primitive equations","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"The primitive equations solved by SpeedyWeather.jl are","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"beginaligned\npartial_t u = \npartial_t v = \npartial_t T = \npartial_t Q = \nendaligned","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"more to come","category":"page"},{"location":"dynamical_core/#Horizontal-diffusion","page":"Dynamical core","title":"Horizontal diffusion","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"In SpeedyWeather.jl we use hyerdiffusion through an n-th power Laplacian (-1)^n+1nabla^2n (hyper when n1) which can be implemented as a multiplication of the spectral coefficients Psi_lm with (-l(l+1))^nR^-2n (see spectral Laplacian) It is therefore computationally not more expensive to apply hyperdiffusion over diffusion as the (-l(l+1))^nR^-2n can be precomputed. Note the sign change (-1)^n+1 here is such that the dissipative nature of the diffusion operator is retained for n odd and even.","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"In SpeedyWeather.jl the diffusion is applied implicitly. For that, consider a leapfrog scheme with time step Delta t of variable zeta to obtain from time steps i-1 and i, the next time step i+1","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"zeta_i+1 = zeta_i-1 + 2Delta t dzeta","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"with dzeta being some tendency evaluated from zeta_i. Now we want to add a diffusion term (-1)^n+1nu nabla^2nzeta with viscosity nu, wich however, is implicitly calculated from zeta_i+1, then","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"zeta_i+1 = zeta_i-1 + 2Delta t (dzeta + (-1)^n+1 nunabla^2nzeta_i+1)","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"As the application of (-1)^n+1nunabla^2n is, for every spectral mode, equivalent to a multiplication of a constant, we can rewrite this to","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"zeta_i+1 = fraczeta_i-1 + 2Delta t dzeta1 - 2Delta (-1)^n+1nunabla^2n","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"and expand the numerator to","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"zeta_i+1 = zeta_i-1 + 2Delta t fracdzeta + (-1)^n+1 nunabla^2nzeta_i-11 - 2Delta t (-1)^n+1nu nabla^2n","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"Hence the diffusion can be applied implicitly by updating the tendency dzeta as","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"dzeta to fracdzeta + (-1)^n+1nunabla^2nzeta_i-11 - 2Delta t nu nabla^2n","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"which only depends on zeta_i-1. Now let D_textexplicit = (-1)^n+1nunabla^2n be the explicit part and D_textimplicit = 1 - (-1)^n+1 2Delta t nunabla^2n the implicit part. Both parts can be precomputed and are D_textimplicit = 1 - 2Delta t nunabla^2n the implicit part. Both parts can be precomputed and are only an element-wise multiplication in spectral space. For every spectral harmonic lm we do","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"dzeta to D_textimplicit^-1(dzeta + D_textexplicitzeta_i-1)","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"Hence 2 multiplications and 1 subtraction with precomputed constants. However, we will normalize the (hyper-)Laplacians as described in the following. This also will take care of the alternating sign such that the diffusion operation is dissipative regardless the power n.","category":"page"},{"location":"dynamical_core/#Normalization-of-diffusion","page":"Dynamical core","title":"Normalization of diffusion","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"In physics, the Laplace operator nabla^2 is often used to represent diffusion due to viscosity in a fluid. In that case, the viscosity coefficient is nu of units textm^2texts^-1 and the full operator reads as nu nabla^2 with units (textm^2texts^-1)(textm^-2) = texts^-1. This motivates us to normalize the Laplace operator by a constant of units textm^-2 and the viscosity coefficient by its inverse such that the viscosity coefficient becomes a damping timescale of unit texts^-1. Given the application in spectral space we decide to normalize by the largest eigenvalue -l_textmax(l_textmax+1) such that all entries in the discrete spectral Laplace operator are in 01. This also has the effect that the alternating sign drops out, such that higher wavenumbers are always dampened and not amplified. The normalized viscosity coefficient nu^* = l_textmax(l_textmax+1)nu (always positive) is therefore reinterpreted as the (inverse) time scale at which the highest wavenumber is dampened to zero due to diffusion. Together we have ","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"D^textexplicit_lm = -nu^* fracl(l+1)l_textmax(l_textmax+1)","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"and the hyper-Laplacian of power n follows as","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"D^textexplicitn_lm = -nu^* left(fracl(l+1)l_textmax(l_textmax+1)right)^n","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"and the implicit part is accordingly D^textimplicitn_lm = 1 - 2Delta t D^textexplicitn_lm.","category":"page"},{"location":"dynamical_core/#Radius-scaling","page":"Dynamical core","title":"Radius scaling","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"SpeedyWeather.jl uses a scaling for vorticity zeta and stream function Psi that is","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"tildezeta = zeta R tildePsi = Psi R^-1","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"In the barotropic voriticity equation model the inversion of the Laplcians in order to obtain Psi from zeta therefore becomes","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"tildezeta = tildenabla^2 tildePsi","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"where the dimensionless gradients simply omit the scaling with 1R, tildenabla = Rnabla. The Barotropic vorticity equation scaled with R^2 is","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"partial_tildettildezeta + tildenabla cdot (mathbfu(tildezeta + tildef)) = tildenutildenabla^2ntildezeta","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"with","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"tildet = tR^-1, the scaled time t\nmathbfu = (uv), the velocity vector (no scaling applied)\ntildef = fR, the scaled Coriolis parameter f\ntildenu = nu^* R, the scaled viscosity nu^*, which itself is normalized to a damping time scale, see Normalization of diffusion.","category":"page"},{"location":"dynamical_core/#Scaled-shallow-water-equations","page":"Dynamical core","title":"Scaled shallow water equations","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"Similar to the scaled barotropic vorticity equations, the scaled shallow water equations scale the vorticity and the divergence equation with R^2, but the continuity equation with R","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"beginaligned\nfracpartial tildezetapartial tildet + tildenabla cdot (mathbfu(tildezeta + tildef)) =\ntildenutildenabla^2ntildezeta \nfracpartial tildemathcalDpartial tildet - tildenabla times (mathbfu(tildezeta + tildef)) =\n-tildenabla^2left(tfrac12(u^2 + v^2) + geta right) + tildenutildenabla^2ntildemathcalD \nfracpartial etapartial tildet + tildenabla cdot (mathbfuh) = 0\nendaligned","category":"page"},{"location":"dynamical_core/#Time-integration","page":"Dynamical core","title":"Time integration","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"SpeedyWeather.jl uses a leapfrog time scheme with a Robert's and William's filter to dampen the computational mode and achieve 3rd order accuracy.","category":"page"},{"location":"dynamical_core/#Oscillation-equation","page":"Dynamical core","title":"Oscillation equation","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"fracdFdt = iomega F","category":"page"},{"location":"dynamical_core/#References","page":"Dynamical core","title":"References","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"[1]: Geophysical Fluid Dynamics Laboratory, Idealized models with spectral dynamics","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"[2]: Geophysical Fluid Dynamics Laboratory, The barotropic vorticity equation.","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"[3]: Geophysical Fluid Dynamics Laboratory, The Shallow Water Equations.","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"[4]: Geophysical Fluid Dynamics Laboratory, The Spectral Dynamical Core","category":"page"},{"location":"spectral_transform/#Spherical-Harmonic-Transform","page":"Spherical harmonic transform","title":"Spherical Harmonic Transform","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The following sections outline the implementation of the spherical harmonic transform (in short spectral transform) between the coefficients of the spherical harmonics (the spectral space) and the grid space on a longitude-latitude regular Gaussian grid.","category":"page"},{"location":"spectral_transform/#Inspiration","page":"Spherical harmonic transform","title":"Inspiration","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The spectral transform implemented by SpeedyWeather.jl follows largely Justin Willmert's CMB.jl package and makes use of AssociatedLegendrePolynomials.jl and FFTW.jl (for Float32/64) or GenericFFT.jl (for generic) for the Fourier transform. Justin described his work in a Blog series [1][2][3][4][5][6][7][8].","category":"page"},{"location":"spectral_transform/#Spherical-harmonics","page":"Spherical harmonic transform","title":"Spherical harmonics","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The spherical harmonics Y_lm of degree l and order m over the longitude phi = (02pi) and colatitudes theta = (-pi2pi2), are","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Y_lm(phi theta) = lambda_l^m(sintheta) e^imphi","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"with lambda_l^m being the pre-normalized associated Legendre polynomials, and e^imphi are the complex exponentials (the Fourier modes). Together they form a set of orthogonal basis functions on the sphere. For an interactive visualisation of the spherical harmonics, see here.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"info: Latitudes versus colatitudes\nThe implementations of the spherical transforms in SpeedyWeather.jl use colatitudes theta = (0pi) (0 at the north pole) but the dynamical core uses latitudes theta = (-pi2pi2) (pi2 at the north pole). However, all arrays are always sorted north to south such that [i,1] will access the northern-most grid points. Note: We may also use latitudes in the spherical harmonic transform in the future for consistency. ","category":"page"},{"location":"spectral_transform/#Synthesis-(spectral-to-grid)","page":"Spherical harmonic transform","title":"Synthesis (spectral to grid)","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The synthesis (or inverse transform) takes the spectral coefficients a_lm and transforms them to grid-point values f(phitheta) (for the sake of simplicity first regarded as continuous). The synthesis is a linear combination of the spherical harmonics Y_lm with non-zero coefficients.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"f(phitheta) = sum_l=0^infty sum_m=-l^l a_lm Y_lm(phitheta)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"We obtain an approximation with a finite set of a_lm by truncating the series after l = l_max.","category":"page"},{"location":"spectral_transform/#Analysis-(grid-to-spectral)","page":"Spherical harmonic transform","title":"Analysis (grid to spectral)","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Starting in grid-point space we can transform a field f(lambdatheta) into the spectral space of the spherical harmonics by","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"a_lm = int_0^2pi int_-tfracpi2^tfracpi2 f(lambdatheta) Y_lm(lambdatheta) cos theta dtheta dlambda","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"This integral has to be discretized to when grid-point values f(lambda_itheta_i) are used. For more details, see [7],[8].","category":"page"},{"location":"spectral_transform/#Spectral-packing","page":"Spherical harmonic transform","title":"Spectral packing","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Spectral packing is the way how the coefficients a_lm of the spherical harmonics of a given spectral field are stored in an array. SpeedyWeather.jl uses the conventional spectral packing of degree l and order m as illustrated in the following image (Cyp, CC BY-SA 3.0, via Wikimedia Commons)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Every row represents an order l geq 0, starting from l=0 at the top. Every column represents an order m geq 0, starting from m=0 on the left. The coefficients of these spherical harmonics are directly mapped into a matrix a_lm as ","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":" m \nl a_00 \n a_10 a_11 \n a_20 a_12 a_22 \n a_30 a_13 a_23 a_33","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"which is consistently extended for higher degrees and orders. Consequently, all spectral fields are lower-triangular matrices with complex entries. The upper triangle excluding the diagonal explicitly stores zeros. Note that internally vector fields include an additional degree, such that l_max = m_max + 1 (see Gradients in spherical coordinates for more information). The harmonics with a_l0 (the first column) are also called zonal harmonics as they are constant with longitude phi. The harmonics with a_ll (the main diagonal) are also called sectoral harmonics as they essentially split the sphere into 2l sectors in longitude phi without a zero-crossing in latitude.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"info: Array indices\nFor a spectral field alms note that due to Julia's 1-based indexing the coefficient a_lm is obtained via alms[l+1,m+1].","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Fortran speedy does not use the same spectral packing as SpeedyWeather.jl. The alternative packing lm therein uses l=m and m=l-m as summarized in the following table.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"degree l order m l=m m=l-m\n0 0 0 0\n1 0 0 1\n1 1 1 0\n2 0 0 2\n2 1 1 1\n2 2 2 0\n3 0 0 3\n... ... ... ...","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"This alternative packing uses the top-left triangle of a coefficient matrix, and the degrees and orders from above are stored at the following indices","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":" m \nl a_00 a_10 a_20 a_30\n a_11 a_21 a_31 \n a_22 a_32 \n a_33 ","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"This spectral packing is not used in SpeedyWeather.jl but illustrated here for completeness and comparison with Fortran-speedy.","category":"page"},{"location":"spectral_transform/#Example-transforms","page":"Spherical harmonic transform","title":"Example transforms","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"julia> using SpeedyWeather\njulia> alms = zeros(ComplexF64,3,3) # spectral coefficients\njulia> alms[2,2] = 1 # only l=1,m=1 harmonic\njulia> map = gridded(alms) # convert to grid space\n8×4 Matrix{Float64}:\n -0.324541 -0.600363 -0.600363 -0.324541\n -0.134429 -0.248678 -0.248678 -0.134429\n 0.134429 0.248678 0.248678 0.134429\n 0.324541 0.600363 0.600363 0.324541\n 0.324541 0.600363 0.600363 0.324541\n 0.134429 0.248678 0.248678 0.134429\n -0.134429 -0.248678 -0.248678 -0.134429\n -0.324541 -0.600363 -0.600363 -0.324541\n \njulia> spectral(map) # back to spectral space\n3×3 Matrix{ComplexF64}:\n 0.0+0.0im 0.0+0.0im 0.0+0.0im\n 0.0+0.0im 1.0+3.60727e-17im 0.0+0.0im\n 0.0+0.0im 0.0+0.0im 0.0+0.0im","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"and we have successfully reobtained the l=m=1 spherical harmonic.","category":"page"},{"location":"spectral_transform/#Available-horizontal-resolutions","page":"Spherical harmonic transform","title":"Available horizontal resolutions","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"SpeedyWeather.jl uses triangular truncation such that only spherical harmonics with l leq l_max and m leq m_max are explicitly represented. This is usually described as Tm_max, with l_max = m_max (although in vector quantities require one more degree l in the recursion relation of meridional gradients). For example, T31 is the spectral resolution with l_max = m_max = 31. Note that the degree l and order m are mathematically 0-based, such that the corresponding coefficient matrix is of size 32x32.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Using triangular truncation[9], there are constraints on the corresponding grid resolution. Let nlon, nlat be the number of longitudes, latitudes on a regular Gaussian grid. Then spectral and grid resolution have to be chosen such that","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"nlon geq 3l_max+1\nnlat geq (3l_max+1)2","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"In general, we choose nlon = 2nlat, and ideally nlon is easily Fourier-transformable, e.g. nlon = 2^i3^j5^k with some integers ijk geq 0. SpeedyWeather.jl is tested at the following horizontal resolutions, with Delta x = tfrac2pi Rnlon as the approximate grid spacing at the Equator","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"l_max nlon nlat Delta x\n31 (default) 96 48 400 km\n42 128 64 300 km\n85 256 128 160 km\n170 512 256 80 km\n341 1024 512 40 km\n682 2048 1024 20 km","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Choosing trunc as argument in run_speedy will automatically choose nlon,nlat as presented in the table. Other common choices are T63 (192x96), T127 (384x192), T255 (768x384), T511 (1536x768), among others.","category":"page"},{"location":"spectral_transform/#Derivatives-in-spherical-coordinates","page":"Spherical harmonic transform","title":"Derivatives in spherical coordinates","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Horizontal gradients in spherical coordinates are defined for a scalar field A and the latitudes theta and longitudes lambda as","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"nabla A = left(frac1Rcosthetafracpartial Apartial lambda frac1Rfracpartial Apartial theta right)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"However, the divergence of a vector field mathbfu = (uv) includes additional cos(theta) scalings","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"nabla cdot mathbfu = frac1Rcosthetafracpartial upartial lambda +\nfrac1Rcosthetafracpartial (v costheta)partial theta","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"and similar for the curl","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"nabla times mathbfu = frac1Rcosthetafracpartial vpartial lambda -\nfrac1Rcosthetafracpartial (u costheta)partial theta","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The radius of the sphere (i.e. Earth) is R. The zonal gradient scales with 1cos(theta) as the longitudes converge towards the poles (note that theta describes latitudes here, defintions using colatitudes replace the cos with a sin.)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Starting with a spectral field of vorticity zeta and divergence mathcalD one can obtain stream function Psi and velocity potential Phi by inverting the Laplace operator nabla^2:","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Psi = nabla^-2zeta quad Phi = nabla^-2mathcalD","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The velocities uv are then obtained from (uv) = nabla^botPsi + nablaPhi following the defintion from above and nabla^bot = (-R^-1partial_theta (Rcostheta)^-1partial_lambda)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"beginaligned\nu = -frac1Rpartial_thetaPsi + frac1Rcosthetapartial_lambdaPhi \nv = +frac1Rpartial_thetaPhi + frac1Rcosthetapartial_lambdaPsi\nendaligned","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Alternatively, we can use the velocities U = ucostheta V = vcostheta, which we do as the meridional gradient for spherical harmonics is easier implemented with a costheta-scaling included, and because the divergence and curl in spherical coordinates evaluates the meridional gradient with UV and not uv. From uv we can return to zeta mathcalD via","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"beginaligned\nzeta = frac1Rcosthetapartial_lambda v - frac1Rcosthetapartial_theta (u costheta) \nmathcalD = frac1Rcosthetapartial_lambda u + frac1Rcosthetapartial_theta (v costheta)\nendaligned","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Equivalently, we have","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"beginaligned\nU = -fraccosthetaRpartial_thetaPsi + frac1Rpartial_lambdaPhi \nV = +fraccosthetaRpartial_thetaPhi + frac1Rpartial_lambdaPsi \nzeta = frac1Rpartial_lambda left( fracVcos^2theta right) -\nfraccosthetaRpartial_theta left( fracUcos^2theta right) \nmathcalD = frac1Rpartial_lambda left( fracUcos^2theta right) +\nfraccosthetaRpartial_theta left( fracVcos^2theta right)\nendaligned","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"which is a more convenient formulation as required costheta scalings are reduced to a minimum. The remaining (UV)*cos^-2theta are done in grid-point space and usually in combination with other operations like the computation of the vorticity flux. But also note that SpeedyWeather.jl scales the equations with the radius R (see Radius scaling) such that the divisions by R drop out too. As described in Meridional derivative, it is more convenient to implement costheta partial_theta via a recursion relation for the Legendre polynomials than partial_theta directly. How the operators nabla nabla times nabla cdot can be implemented with spherical harmonics is presented in the following sections.","category":"page"},{"location":"spectral_transform/#Zonal-derivative","page":"Spherical harmonic transform","title":"Zonal derivative","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The zonal derivative of a scalar field Psi in spectral space is the zonal derivative of all its respective spherical harmonics Psi_lm(phitheta) (now we use phi for longitudes to avoid confusion with the Legendre polynomials lambda_lm)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"v_lm = frac1R cos(theta) fracpartialpartial phi left( lambda_l^m(costheta) e^imphi right) =\nfracimR cos(theta) lambda_l^m(costheta) e^imphi = fracimR cos(theta) Psi_lm","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"So for every spectral harmonic, cos(theta)v_lm is obtained from Psi_lm via a multiplication with imR. Unscaling the cos(theta)-factor is done after transforming the spectral coefficients v_lm into grid-point space. As discussed in Radius scaling, SpeedyWeather.jl scales the stream function as tildePsi = R^-1Psi such that the division by radius R in the gradients can be omitted. The zonal derivative becomes therefore effectively for each spherical harmonic a scaling with its (imaginary) order im. The spherical harmonics are essentially just a Fourier transform in zonal direction and the derivative a multiplication with the respective wave number m times imaginary i.","category":"page"},{"location":"spectral_transform/#Meridional-derivative","page":"Spherical harmonic transform","title":"Meridional derivative","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The meridioinal derivative of the spherical harmonics is a derivative of the Legendre polynomials for which the following recursion relation applies[10],[11]","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"costheta fracdP_lmdtheta = -lepsilon_l+1mP_l+1m + (l+1)epsilon_lmP_l-1m","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"with recursion factors","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"epsilon_lm = sqrtfracl^2-m^24l^2-1","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"In the following we use the example of obtaining the zonal velocity u from the stream function Psi, which is through the negative meridional gradient. For the meridional derivative itself the leading minus sign has to be omitted. Starting with the spectral expansion","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Psi(lambdatheta) = sum_lmPsi_lmP_lm(sintheta)e^imlambda","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"we multiply with -R^-1costhetapartial_theta to obtain","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"costhetaleft(-frac1Rpartial_thetaPsi right) = -frac1Rsum_lmPsi_lme^imlambdacosthetapartial_theta P_lm","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"at which point the recursion from above can be applied. Collecting terms proportional to P_lm then yields","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"(cos(theta)u)_lm = -frac1R(-(l-1)epsilon_lmPsi_l-1m + (l+2)epsilon_l+1mPsi_l+1m)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"To obtain the coefficient of each spherical harmonic lm of the meridional gradient of a spectral field, two coefficients at l-1m and l+1m have to be combined. This means that the coefficient of a gradient ((costheta) u)_lm is a linear combination of the coefficients of one higher and one lower degree Psi_l+1mPsi_l-1m. As the coefficient Psi_lm with ml are zero, the sectoral harmonics (l=m) of the gradients are obtained from the first off-diagonal only. However, the l=l_max harmonics of the gradients require the l_max-1 as well as the l_max+1 harmonics. In SpeedyWeather.jl vector quantitie like uv use therefore one more meridional mode than scalar quantities such as vorticity zeta or stream function Psi. The meridional derivative in SpeedyWeather.jl also omits the 1R-scaling as explained for the Zonal derivative and in Radius scaling.","category":"page"},{"location":"spectral_transform/#Divergence-and-curl-in-spherical-harmonics","page":"Spherical harmonic transform","title":"Divergence and curl in spherical harmonics","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The meridional gradient as described above can be applied to scalars, such as Psi and Phi in the conversion to velocities (uv) = nabla^botPsi + nablaPhi, however, the operators curl nabla times and divergence nabla cdot in spherical coordinates involve a costheta scaling before the meridional gradient is applied. How to translate this to spectral coefficients has to be derived separately[10],[11].","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The spectral transform of vorticity zeta is","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"zeta_lm = frac12piint_-tfracpi2^tfracpi2int_0^2pi zeta(lambdatheta) P_lm(sintheta) e^imlambda dlambda costheta dtheta","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Given that Rzeta = cos^-1partial_lambda v - cos^-1partial_theta (u costheta), we therefore have to evaluate a meridional integral of the form","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"int P_lm frac1cos theta partial_theta(u costheta)) cos theta dtheta","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"which can be solved through integration by parts. As ucostheta = 0 at theta = pm tfracpi2 only the integral","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"= -int partial_theta P_lm (u costheta) dtheta = -int costheta partial_theta P_lm (fracucostheta) costheta dtheta","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"remains. Inserting the recurrence relation from the Meridional derivative turns this into","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"= -int left(-l epsilon_l+1mP_l+1m + (l+1)epsilon_lm P_l-1m right) (fracucostheta) cos theta dtheta","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Now we expand (tfracucostheta) but only the lm harmonic will project ontoP_lm. Let u^* = ucos^-1theta v^* = vcos^-1theta we then have in total","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"beginaligned\nRzeta_lm = imv^*_lm + (l+1)epsilon_lmu^*_l-1m - lepsilon_l+1mu^*_l+1m \nRD_lm = imu^*_lm - (l+1)epsilon_lmv^*_l-1m + lepsilon_l+1mv^*_l+1m \nendaligned","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"And the divergence D is similar, but (uv) to (-vu). We have moved the scaling with the radius R directly into zetaD as further described in Radius scaling.","category":"page"},{"location":"spectral_transform/#Laplacian","page":"Spherical harmonic transform","title":"Laplacian","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The spectral Laplacian is easily applied to the coefficients Psi_lm of a spectral field as the spherical harmonics are eigenfunctions of the Laplace operator nabla^2 in spherical coordinates with eigenvalues -l(l+1) divided by the radius squared R^2, i.e. nabla^2 Psi becomes tfrac-l(l+1)R^2Psi_lm in spectral space. For example, vorticity zeta and streamfunction Psi are related by zeta = nabla^2Psi in the barotropic vorticity model. Hence, in spectral space this is equivalent for every spectral mode of degree l and order m to","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"zeta_lm = frac-l(l+1)R^2Psi_lm","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"This can be easily inverted to obtain the stream function Psi from vorticity zeta instead. In order to avoid division by zero, we set Psi_00 here, given that the stream function is only defined up to a constant anyway.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"beginaligned\nPsi_lm = fracR^2-l(l+1)zeta_lm quad foralllm 0\nPsi_00 = 0\nendaligned","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"See also Horizontal diffusion and Normalization of diffusion.","category":"page"},{"location":"spectral_transform/#U,V-from-vorticity-and-divergence","page":"Spherical harmonic transform","title":"U,V from vorticity and divergence","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"After having discussed the zonal and meridional derivatives with spherical harmonics as well as the Laplace operator, we can derive the conversion from vorticity zeta and divergence D (which are prognostic variables) to U=ucostheta V=vcostheta. Both are linear operations that act either solely on a given harmonic (the zonal gradient and the Laplace operator) or are linear combinations between one lower and one higher degree l (the meridional gradient). It is therefore computationally more efficient to compute UV directly from zetaD instead of calculating stream function and velocity potential first. In total we have","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"beginaligned\nU_lm = -fraciml(l+1)(RD)_lm + fracepsilon_l+1ml+1(Rzeta)_l+1m - fracepsilon_lml(Rzeta)_l-1m \nV_lm = -fraciml(l+1)(Rzeta)_lm - fracepsilon_l+1ml+1(RD)_l+1m + fracepsilon_lml(RD)_l-1m \nendaligned","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"We have moved the scaling with the radius R directly into zetaD as further described in Radius scaling.","category":"page"},{"location":"spectral_transform/#References","page":"Spherical harmonic transform","title":"References","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[1]: Justin Willmert, 2020. Introduction to Associated Legendre Polynomials (Legendre.jl Series, Part I)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[2]: Justin Willmert, 2020. Calculating Legendre Polynomials (Legendre.jl Series, Part II)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[3]: Justin Willmert, 2020. Pre-normalizing Legendre Polynomials (Legendre.jl Series, Part III)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[4]: Justin Willmert, 2020. Maintaining numerical accuracy in the Legendre recurrences (Legendre.jl Series, Part IV)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[5]: Justin Willmert, 2020. Introducing Legendre.jl (Legendre.jl Series, Part V)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[6]: Justin Willmert, 2020. Numerical Accuracy of the Spherical Harmonic Recurrence Coefficient (Legendre.jl Series Addendum)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[7]: Justin Willmert, 2020. Notes on Calculating the Spherical Harmonics","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[8]: Justin Willmert, 2022. More Notes on Calculating the Spherical Harmonics: Analysis of maps to harmonic coefficients","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[9]: David Randall, 2021. An Introduction to Numerical Modeling of the Atmosphere, Chapter 22.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[10]: Dale Durran, 2010. Numerical Methods for Fluid Dynamics, Springer. In particular section 6.2, 6.4.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[11]: Geophysical Fluid Dynamics Laboratory, The barotropic vorticity equation.","category":"page"},{"location":"#SpeedyWeather.jl-documentation","page":"Home","title":"SpeedyWeather.jl documentation","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Welcome to the documentation for SpeedyWeather.jl a global atmospheric circulation model with simple parametrizations to represent physical processes such as clouds, precipitation and radiation.","category":"page"},{"location":"#Overview","page":"Home","title":"Overview","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"SpeedyWeather.jl is a global spectral model that uses a spherical harmonic transform to perform some calculations in spectral space (time integration, gradients, linear terms) and some in grid-point space (advection, non-linear terms, parameterizations). The prognostic variables used are vorticity, divergence, absolute temperature, logarithm of surface pressure and specific humidity. The time stepping uses a leapfrog scheme with additional filters and a semi-implicit formulation for gravity waves. The default resolution is T31 (96x48 grid points on a regular Gaussian grid, about 400km at the Equator) and 8 vertical levels.","category":"page"},{"location":"","page":"Home","title":"Home","text":"Simple parameterizations are used to represent the physical processes convection, large-scale condensation, clouds, short-wave radiation, long-waves radiation, surface fluxes of momentum and energy, and vertical diffusion.","category":"page"},{"location":"#Manual-outline","page":"Home","title":"Manual outline","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"See the following pages of the documentation for more details","category":"page"},{"location":"","page":"Home","title":"Home","text":"How to run SpeedyWeather.jl\nSpherical harmonic transform\nGrids\nDynamical core\nParametrizations\nNew model setups\nFunction and type index","category":"page"},{"location":"","page":"Home","title":"Home","text":"and the original documentation by Molteni and Kucharski.","category":"page"},{"location":"#Scope","page":"Home","title":"Scope","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"The focus of SpeedyWeather.jl is to develop a global atmospheric model of intermediate complexity, that can run at various levels of precision (16, 32 and 64-bit) on different architectures (x86 and ARM, GPUs in the future). Additionally, the model is written in an entirely number format-flexible way, such that any custom number format can be used and Julia will compile to the format automatically. Similarly, many model components are written in an abstract way to support modularity and extandability.","category":"page"},{"location":"#History","page":"Home","title":"History","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"SpeedyWeather.jl is a Julia implementation of SPEEDY, which is written in Fortran 77. Sam Hatfield translated SPEEDY to Fortran 90 and started the project to port it to Julia. However, we are making an effort to overhaul the implementation of the mathematical model behind speedy completely and it is unlikely that a single line of code survived.","category":"page"},{"location":"#Installation","page":"Home","title":"Installation","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"SpeedyWeather.jl is registered in the Julia Registry. Open Julia's package manager from the REPL with ] and add the github repository to install SpeedyWeather.jl and all dependencies","category":"page"},{"location":"","page":"Home","title":"Home","text":"(@v1.8) pkg> add SpeedyWeather","category":"page"},{"location":"","page":"Home","title":"Home","text":"which will automatically install the latest release. However, you may want to install directly from the main branch with","category":"page"},{"location":"","page":"Home","title":"Home","text":"(@v1.8) pkg> add https://github.com/SpeedyWeather/SpeedyWeather.jl#main","category":"page"},{"location":"","page":"Home","title":"Home","text":"other branches than #main can be installed by adding #branch_name instead.","category":"page"},{"location":"#Developers","page":"Home","title":"Developers","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"The development of SpeedyWeather.jl is lead by Milan Klöwer and current and past contributors include","category":"page"},{"location":"","page":"Home","title":"Home","text":"Tom Kimpson\nAlistair White\nMaximilian Gelbrecht\nDavid Meyer\nDaisuke Hotta","category":"page"},{"location":"","page":"Home","title":"Home","text":"Any contributions are always welcome!","category":"page"},{"location":"#Funding","page":"Home","title":"Funding","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Contributors received funding by the European Research Council under Horizon 2020 within the ITHACA project, grant agreement number 741112 from 2021-2022.","category":"page"},{"location":"time_integration/#Time-integration","page":"Time integration","title":"Time integration","text":"","category":"section"},{"location":"time_integration/","page":"Time integration","title":"Time integration","text":"SpeedyWeather.jl uses a leapfrog time scheme with a Robert's and William's filter to dampen the computational mode and achieve 3rd order accuracy.","category":"page"},{"location":"time_integration/#Oscillation-equation","page":"Time integration","title":"Oscillation equation","text":"","category":"section"},{"location":"time_integration/","page":"Time integration","title":"Time integration","text":"fracdFdt = iomega F","category":"page"},{"location":"time_integration/#Implementation-details","page":"Time integration","title":"Implementation details","text":"","category":"section"}] +} diff --git a/previews/PR300/siteinfo.js b/previews/PR300/siteinfo.js new file mode 100644 index 000000000..d56682f73 --- /dev/null +++ b/previews/PR300/siteinfo.js @@ -0,0 +1 @@ +var DOCUMENTER_CURRENT_VERSION = "previews/PR300"; diff --git a/previews/PR300/spectral_transform/index.html b/previews/PR300/spectral_transform/index.html new file mode 100644 index 000000000..b9a4b041e --- /dev/null +++ b/previews/PR300/spectral_transform/index.html @@ -0,0 +1,45 @@ + +Spherical harmonic transform · SpeedyWeather.jl

      Spherical Harmonic Transform

      The following sections outline the implementation of the spherical harmonic transform (in short spectral transform) between the coefficients of the spherical harmonics (the spectral space) and the grid space on a longitude-latitude regular Gaussian grid.

      Inspiration

      The spectral transform implemented by SpeedyWeather.jl follows largely Justin Willmert's CMB.jl package and makes use of AssociatedLegendrePolynomials.jl and FFTW.jl (for Float32/64) or GenericFFT.jl (for generic) for the Fourier transform. Justin described his work in a Blog series [1][2][3][4][5][6][7][8].

      Spherical harmonics

      The spherical harmonics $Y_{lm}$ of degree $l$ and order $m$ over the longitude $\phi = (0,2\pi)$ and colatitudes $\theta = (-\pi/2,\pi/2)$, are

      \[Y_{lm}(\phi, \theta) = \lambda_l^m(\sin\theta) e^{im\phi}\]

      with $\lambda_l^m$ being the pre-normalized associated Legendre polynomials, and $e^{im\phi}$ are the complex exponentials (the Fourier modes). Together they form a set of orthogonal basis functions on the sphere. For an interactive visualisation of the spherical harmonics, see here.

      Latitudes versus colatitudes

      The implementations of the spherical transforms in SpeedyWeather.jl use colatitudes $\theta = (0,\pi)$ (0 at the north pole) but the dynamical core uses latitudes $\theta = (-\pi/2,\pi/2)$ ($\pi/2$ at the north pole). However, all arrays are always sorted north to south such that [i,1] will access the northern-most grid points. Note: We may also use latitudes in the spherical harmonic transform in the future for consistency.

      Synthesis (spectral to grid)

      The synthesis (or inverse transform) takes the spectral coefficients $a_{lm}$ and transforms them to grid-point values $f(\phi,\theta)$ (for the sake of simplicity first regarded as continuous). The synthesis is a linear combination of the spherical harmonics $Y_{lm}$ with non-zero coefficients.

      \[f(\phi,\theta) = \sum_{l=0}^{\infty} \sum_{m=-l}^l a_{lm} Y_{lm}(\phi,\theta)\]

      We obtain an approximation with a finite set of $a_{l,m}$ by truncating the series after $l = l_{max}$.

      Analysis (grid to spectral)

      Starting in grid-point space we can transform a field $f(\lambda,\theta)$ into the spectral space of the spherical harmonics by

      \[a_{l,m} = \int_0^{2\pi} \int_{-\tfrac{\pi}{2}}^\tfrac{\pi}{2} f(\lambda,\theta) Y_{l,m}(\lambda,\theta) \cos \theta d\theta d\lambda\]

      This integral has to be discretized to when grid-point values $f(\lambda_i,\theta_i)$ are used. For more details, see [7],[8].

      Spectral packing

      Spectral packing is the way how the coefficients $a_{lm}$ of the spherical harmonics of a given spectral field are stored in an array. SpeedyWeather.jl uses the conventional spectral packing of degree $l$ and order $m$ as illustrated in the following image (Cyp, CC BY-SA 3.0, via Wikimedia Commons)

      Every row represents an order $l \geq 0$, starting from $l=0$ at the top. Every column represents an order $m \geq 0$, starting from $m=0$ on the left. The coefficients of these spherical harmonics are directly mapped into a matrix $a_{lm}$ as

      $m$
      $l$$a_{00}$
      $a_{10}$$a_{11}$
      $a_{20}$$a_{12}$$a_{22}$
      $a_{30}$$a_{13}$$a_{23}$$a_{33}$

      which is consistently extended for higher degrees and orders. Consequently, all spectral fields are lower-triangular matrices with complex entries. The upper triangle excluding the diagonal explicitly stores zeros. Note that internally vector fields include an additional degree, such that $l_{max} = m_{max} + 1$ (see Gradients in spherical coordinates for more information). The harmonics with $a_{l0}$ (the first column) are also called zonal harmonics as they are constant with longitude $\phi$. The harmonics with $a_{ll}$ (the main diagonal) are also called sectoral harmonics as they essentially split the sphere into $2l$ sectors in longitude $\phi$ without a zero-crossing in latitude.

      Array indices

      For a spectral field alms note that due to Julia's 1-based indexing the coefficient $a_{lm}$ is obtained via alms[l+1,m+1].

      Fortran speedy does not use the same spectral packing as SpeedyWeather.jl. The alternative packing $l',m'$ therein uses $l'=m$ and $m'=l-m$ as summarized in the following table.

      degree $l$order $m$$l'=m$$m'=l-m$
      0000
      1001
      1110
      2002
      2111
      2220
      3003
      ............

      This alternative packing uses the top-left triangle of a coefficient matrix, and the degrees and orders from above are stored at the following indices

      $m'$
      $l'$$a_{00}$$a_{10}$$a_{20}$$a_{30}$
      $a_{11}$$a_{21}$$a_{31}$
      $a_{22}$$a_{32}$
      $a_{33}$

      This spectral packing is not used in SpeedyWeather.jl but illustrated here for completeness and comparison with Fortran-speedy.

      Example transforms

      julia> using SpeedyWeather
      +julia> alms = zeros(ComplexF64,3,3)    # spectral coefficients
      +julia> alms[2,2] = 1                   # only l=1,m=1 harmonic
      +julia> map = gridded(alms)             # convert to grid space
      +8×4 Matrix{Float64}:
      + -0.324541  -0.600363  -0.600363  -0.324541
      + -0.134429  -0.248678  -0.248678  -0.134429
      +  0.134429   0.248678   0.248678   0.134429
      +  0.324541   0.600363   0.600363   0.324541
      +  0.324541   0.600363   0.600363   0.324541
      +  0.134429   0.248678   0.248678   0.134429
      + -0.134429  -0.248678  -0.248678  -0.134429
      + -0.324541  -0.600363  -0.600363  -0.324541
      + 
      +julia> spectral(map)                   # back to spectral space
      +3×3 Matrix{ComplexF64}:
      + 0.0+0.0im  0.0+0.0im          0.0+0.0im
      + 0.0+0.0im  1.0+3.60727e-17im  0.0+0.0im
      + 0.0+0.0im  0.0+0.0im          0.0+0.0im

      and we have successfully reobtained the $l=m=1$ spherical harmonic.

      Available horizontal resolutions

      SpeedyWeather.jl uses triangular truncation such that only spherical harmonics with $l \leq l_{max}$ and $|m| \leq m_{max}$ are explicitly represented. This is usually described as $Tm_{max}$, with $l_{max} = m_{max}$ (although in vector quantities require one more degree $l$ in the recursion relation of meridional gradients). For example, T31 is the spectral resolution with $l_{max} = m_{max} = 31$. Note that the degree $l$ and order $m$ are mathematically 0-based, such that the corresponding coefficient matrix is of size 32x32.

      Using triangular truncation[9], there are constraints on the corresponding grid resolution. Let nlon, nlat be the number of longitudes, latitudes on a regular Gaussian grid. Then spectral and grid resolution have to be chosen such that

      • $nlon \geq 3l_{max}+1$
      • $nlat \geq (3l_{max}+1)/2$

      In general, we choose $nlon = 2nlat$, and ideally $nlon$ is easily Fourier-transformable, e.g. $nlon = 2^i3^j5^k$ with some integers $i,j,k \geq 0$. SpeedyWeather.jl is tested at the following horizontal resolutions, with $\Delta x = \tfrac{2\pi R}{nlon}$ as the approximate grid spacing at the Equator

      $l_{max}$nlonnlat$\Delta x$
      31 (default)9648400 km
      4212864300 km
      85256128160 km
      17051225680 km
      341102451240 km
      6822048102420 km

      Choosing trunc as argument in run_speedy will automatically choose nlon,nlat as presented in the table. Other common choices are T63 (192x96), T127 (384x192), T255 (768x384), T511 (1536x768), among others.

      Derivatives in spherical coordinates

      Horizontal gradients in spherical coordinates are defined for a scalar field $A$ and the latitudes $\theta$ and longitudes $\lambda$ as

      \[\nabla A = \left(\frac{1}{R\cos\theta}\frac{\partial A}{\partial \lambda}, \frac{1}{R}\frac{\partial A}{\partial \theta} \right).\]

      However, the divergence of a vector field $\mathbf{u} = (u,v)$ includes additional $\cos(\theta)$ scalings

      \[\nabla \cdot \mathbf{u} = \frac{1}{R\cos\theta}\frac{\partial u}{\partial \lambda} + +\frac{1}{R\cos\theta}\frac{\partial (v \cos\theta)}{\partial \theta},\]

      and similar for the curl

      \[\nabla \times \mathbf{u} = \frac{1}{R\cos\theta}\frac{\partial v}{\partial \lambda} - +\frac{1}{R\cos\theta}\frac{\partial (u \cos\theta)}{\partial \theta}.\]

      The radius of the sphere (i.e. Earth) is $R$. The zonal gradient scales with $1/\cos(\theta)$ as the longitudes converge towards the poles (note that $\theta$ describes latitudes here, defintions using colatitudes replace the $\cos$ with a $\sin$.)

      Starting with a spectral field of vorticity $\zeta$ and divergence $\mathcal{D}$ one can obtain stream function $\Psi$ and velocity potential $\Phi$ by inverting the Laplace operator $\nabla^2$:

      \[\Psi = \nabla^{-2}\zeta, \quad \Phi = \nabla^{-2}\mathcal{D}.\]

      The velocities $u,v$ are then obtained from $(u,v) = \nabla^\bot\Psi + \nabla\Phi$ following the defintion from above and $\nabla^\bot = (-R^{-1}\partial_\theta, (R\cos\theta)^{-1}\partial_\lambda)$

      \[\begin{aligned} +u &= -\frac{1}{R}\partial_\theta\Psi + \frac{1}{R\cos\theta}\partial_\lambda\Phi \\ +v &= +\frac{1}{R}\partial_\theta\Phi + \frac{1}{R\cos\theta}\partial_\lambda\Psi. +\end{aligned}\]

      Alternatively, we can use the velocities $U = u\cos\theta, V = v\cos\theta$, which we do as the meridional gradient for spherical harmonics is easier implemented with a $\cos\theta$-scaling included, and because the divergence and curl in spherical coordinates evaluates the meridional gradient with $U,V$ and not $u,v$. From $u,v$ we can return to $\zeta, \mathcal{D}$ via

      \[\begin{aligned} +\zeta &= \frac{1}{R\cos\theta}\partial_\lambda v - \frac{1}{R\cos\theta}\partial_\theta (u \cos\theta) \\ +\mathcal{D} &= \frac{1}{R\cos\theta}\partial_\lambda u + \frac{1}{R\cos\theta}\partial_\theta (v \cos\theta). +\end{aligned}\]

      Equivalently, we have

      \[\begin{aligned} +U &= -\frac{\cos\theta}{R}\partial_\theta\Psi + \frac{1}{R}\partial_\lambda\Phi \\ +V &= +\frac{\cos\theta}{R}\partial_\theta\Phi + \frac{1}{R}\partial_\lambda\Psi \\ +\zeta &= \frac{1}{R}\partial_\lambda \left( \frac{V}{\cos^2\theta} \right) - +\frac{\cos\theta}{R}\partial_\theta \left( \frac{U}{\cos^2\theta} \right) \\ +\mathcal{D} &= \frac{1}{R}\partial_\lambda \left( \frac{U}{\cos^2\theta} \right) + +\frac{\cos\theta}{R}\partial_\theta \left( \frac{V}{\cos^2\theta} \right). +\end{aligned}\]

      which is a more convenient formulation as required $\cos\theta$ scalings are reduced to a minimum. The remaining $(U,V)*\cos^{-2}\theta$ are done in grid-point space and usually in combination with other operations like the computation of the vorticity flux. But also note that SpeedyWeather.jl scales the equations with the radius R (see Radius scaling) such that the divisions by R drop out too. As described in Meridional derivative, it is more convenient to implement $\cos\theta \partial_\theta$ via a recursion relation for the Legendre polynomials than $\partial_\theta$ directly. How the operators $\nabla, \nabla \times, \nabla \cdot$ can be implemented with spherical harmonics is presented in the following sections.

      Zonal derivative

      The zonal derivative of a scalar field $\Psi$ in spectral space is the zonal derivative of all its respective spherical harmonics $\Psi_{lm}(\phi,\theta)$ (now we use $\phi$ for longitudes to avoid confusion with the Legendre polynomials $\lambda_{lm}$)

      \[v_{lm} = \frac{1}{R \cos(\theta)} \frac{\partial}{\partial \phi} \left( \lambda_l^m(\cos\theta) e^{im\phi} \right) = +\frac{im}{R \cos(\theta)} \lambda_l^m(\cos\theta) e^{im\phi} = \frac{im}{R \cos(\theta)} \Psi_{lm}\]

      So for every spectral harmonic, $\cos(\theta)v_{lm}$ is obtained from $\Psi_{lm}$ via a multiplication with $im/R$. Unscaling the $\cos(\theta)$-factor is done after transforming the spectral coefficients $v_{lm}$ into grid-point space. As discussed in Radius scaling, SpeedyWeather.jl scales the stream function as $\tilde{\Psi} = R^{-1}\Psi$ such that the division by radius $R$ in the gradients can be omitted. The zonal derivative becomes therefore effectively for each spherical harmonic a scaling with its (imaginary) order $im$. The spherical harmonics are essentially just a Fourier transform in zonal direction and the derivative a multiplication with the respective wave number $m$ times imaginary $i$.

      Meridional derivative

      The meridioinal derivative of the spherical harmonics is a derivative of the Legendre polynomials for which the following recursion relation applies[10],[11]

      \[\cos\theta \frac{dP_{l,m}}{d\theta} = -l\epsilon_{l+1,m}P_{l+1,m} + (l+1)\epsilon_{l,m}P_{l-1,m}.\]

      with recursion factors

      \[\epsilon_{l,m} = \sqrt{\frac{l^2-m^2}{4l^2-1}}\]

      In the following we use the example of obtaining the zonal velocity $u$ from the stream function $\Psi$, which is through the negative meridional gradient. For the meridional derivative itself the leading minus sign has to be omitted. Starting with the spectral expansion

      \[\Psi(\lambda,\theta) = \sum_{l,m}\Psi_{l,m}P_{l,m}(\sin\theta)e^{im\lambda}\]

      we multiply with $-R^{-1}\cos\theta\partial_\theta$ to obtain

      \[\cos\theta\left(-\frac{1}{R}\partial_\theta\Psi \right) = -\frac{1}{R}\sum_{l,m}\Psi_{l,m}e^{im\lambda}\cos\theta\partial_\theta P_{l,m}\]

      at which point the recursion from above can be applied. Collecting terms proportional to $P_{l,m}$ then yields

      \[(\cos(\theta)u)_{l,m} = -\frac{1}{R}(-(l-1)\epsilon_{l,m}\Psi_{l-1,m} + (l+2)\epsilon_{l+1,m}\Psi_{l+1,m})\]

      To obtain the coefficient of each spherical harmonic $l,m$ of the meridional gradient of a spectral field, two coefficients at $l-1,m$ and $l+1,m$ have to be combined. This means that the coefficient of a gradient $((\cos\theta) u)_{lm}$ is a linear combination of the coefficients of one higher and one lower degree $\Psi_{l+1,m},\Psi_{l-1,m}$. As the coefficient $\Psi_{lm}$ with $m<l$ are zero, the sectoral harmonics ($l=m$) of the gradients are obtained from the first off-diagonal only. However, the $l=l_{max}$ harmonics of the gradients require the $l_{max}-1$ as well as the $l_{max}+1$ harmonics. In SpeedyWeather.jl vector quantitie like $u,v$ use therefore one more meridional mode than scalar quantities such as vorticity $\zeta$ or stream function $\Psi$. The meridional derivative in SpeedyWeather.jl also omits the $1/R$-scaling as explained for the Zonal derivative and in Radius scaling.

      Divergence and curl in spherical harmonics

      The meridional gradient as described above can be applied to scalars, such as $\Psi$ and $\Phi$ in the conversion to velocities $(u,v) = \nabla^\bot\Psi + \nabla\Phi$, however, the operators curl $\nabla \times$ and divergence $\nabla \cdot$ in spherical coordinates involve a $\cos\theta$ scaling before the meridional gradient is applied. How to translate this to spectral coefficients has to be derived separately[10],[11].

      The spectral transform of vorticity $\zeta$ is

      \[\zeta_{l,m} = \frac{1}{2\pi}\int_{-\tfrac{\pi}{2}}^\tfrac{\pi}{2}\int_0^{2\pi} \zeta(\lambda,\theta) P_{l,m}(\sin\theta) e^{im\lambda} d\lambda \cos\theta d\theta\]

      Given that $R\zeta = \cos^{-1}\partial_\lambda v - \cos^{-1}\partial_\theta (u \cos\theta)$, we therefore have to evaluate a meridional integral of the form

      \[\int P_{l,m} \frac{1}{\cos \theta} \partial_\theta(u \cos\theta)) \cos \theta d\theta\]

      which can be solved through integration by parts. As $u\cos\theta = 0$ at $\theta = \pm \tfrac{\pi}{2}$ only the integral

      \[= -\int \partial_\theta P_{l,m} (u \cos\theta) d\theta = -\int \cos\theta \partial_\theta P_{l,m} (\frac{u}{\cos\theta}) \cos\theta d\theta\]

      remains. Inserting the recurrence relation from the Meridional derivative turns this into

      \[= -\int \left(-l \epsilon_{l+1,m}P_{l+1,m} + (l+1)\epsilon_{l,m} P_{l-1,m} \right) (\frac{u}{\cos\theta}) \cos \theta d\theta\]

      Now we expand $(\tfrac{u}{\cos\theta})$ but only the $l,m$ harmonic will project onto$P_{l,m}$. Let $u^* = u\cos^{-1}\theta, v^* = v\cos^{-1}\theta$ we then have in total

      \[\begin{aligned} +R\zeta_{l,m} &= imv^*_{l,m} + (l+1)\epsilon_{l,m}u^*_{l-1,m} - l\epsilon_{l+1,m}u^*_{l+1,m} \\ +RD_{l,m} &= imu^*_{l,m} - (l+1)\epsilon_{l,m}v^*_{l-1,m} + l\epsilon_{l+1,m}v^*_{l+1,m} \\ +\end{aligned}\]

      And the divergence $D$ is similar, but $(u,v) \to (-v,u)$. We have moved the scaling with the radius $R$ directly into $\zeta,D$ as further described in Radius scaling.

      Laplacian

      The spectral Laplacian is easily applied to the coefficients $\Psi_{lm}$ of a spectral field as the spherical harmonics are eigenfunctions of the Laplace operator $\nabla^2$ in spherical coordinates with eigenvalues $-l(l+1)$ divided by the radius squared $R^2$, i.e. $\nabla^2 \Psi$ becomes $\tfrac{-l(l+1)}{R^2}\Psi_{lm}$ in spectral space. For example, vorticity $\zeta$ and streamfunction $\Psi$ are related by $\zeta = \nabla^2\Psi$ in the barotropic vorticity model. Hence, in spectral space this is equivalent for every spectral mode of degree $l$ and order $m$ to

      \[\zeta_{l,m} = \frac{-l(l+1)}{R^2}\Psi_{l,m}\]

      This can be easily inverted to obtain the stream function $\Psi$ from vorticity $\zeta$ instead. In order to avoid division by zero, we set $\Psi_{0,0}$ here, given that the stream function is only defined up to a constant anyway.

      \[\begin{aligned} +\Psi_{l,m} &= \frac{R^2}{-l(l+1)}\zeta_{l,m} \quad \forall~l,m > 0,\\ +\Psi_{0,0} &= 0. +\end{aligned}\]

      See also Horizontal diffusion and Normalization of diffusion.

      U,V from vorticity and divergence

      After having discussed the zonal and meridional derivatives with spherical harmonics as well as the Laplace operator, we can derive the conversion from vorticity $\zeta$ and divergence $D$ (which are prognostic variables) to $U=u\cos\theta, V=v\cos\theta$. Both are linear operations that act either solely on a given harmonic (the zonal gradient and the Laplace operator) or are linear combinations between one lower and one higher degree $l$ (the meridional gradient). It is therefore computationally more efficient to compute $U,V$ directly from $\zeta,D$ instead of calculating stream function and velocity potential first. In total we have

      \[\begin{aligned} +U_{l,m} &= -\frac{im}{l(l+1)}(RD)_{l,m} + \frac{\epsilon_{l+1,m}}{l+1}(R\zeta)_{l+1,m} - \frac{\epsilon_{l,m}}{l}(R\zeta)_{l-1,m} \\ +V_{l,m} &= -\frac{im}{l(l+1)}(R\zeta)_{l,m} - \frac{\epsilon_{l+1,m}}{l+1}(RD)_{l+1,m} + \frac{\epsilon_{l,m}}{l}(RD)_{l-1,m} \\ +\end{aligned}\]

      We have moved the scaling with the radius $R$ directly into $\zeta,D$ as further described in Radius scaling.

      References

      diff --git a/previews/PR300/time_integration/index.html b/previews/PR300/time_integration/index.html new file mode 100644 index 000000000..d0ad222c2 --- /dev/null +++ b/previews/PR300/time_integration/index.html @@ -0,0 +1,2 @@ + +Time integration · SpeedyWeather.jl
      diff --git a/previews/PR334/assets/documenter.js b/previews/PR334/assets/documenter.js new file mode 100644 index 000000000..6adfbbbf4 --- /dev/null +++ b/previews/PR334/assets/documenter.js @@ -0,0 +1,331 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'highlight-julia': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia.min', + 'headroom': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/headroom.min', + 'jqueryui': 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min', + 'katex-auto-render': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/contrib/auto-render.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + 'headroom-jquery': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/jQuery.headroom.min', + 'katex': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/katex.min', + 'highlight': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/highlight.min', + 'highlight-julia-repl': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia-repl.min', + }, + shim: { + "highlight-julia": { + "deps": [ + "highlight" + ] + }, + "katex-auto-render": { + "deps": [ + "katex" + ] + }, + "headroom-jquery": { + "deps": [ + "jquery", + "headroom" + ] + }, + "highlight-julia-repl": { + "deps": [ + "highlight" + ] + } +} +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'katex', 'katex-auto-render'], function($, katex, renderMathInElement) { +$(document).ready(function() { + renderMathInElement( + document.body, + { + "delimiters": [ + { + "left": "$", + "right": "$", + "display": false + }, + { + "left": "$$", + "right": "$$", + "display": true + }, + { + "left": "\\[", + "right": "\\]", + "display": true + } + ] +} + + ); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'highlight', 'highlight-julia', 'highlight-julia-repl'], function($) { +$(document).ready(function() { + hljs.highlightAll(); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require([], function() { +function addCopyButtonCallbacks() { + for (const el of document.getElementsByTagName("pre")) { + const button = document.createElement("button"); + button.classList.add("copy-button", "fas", "fa-copy"); + el.appendChild(button); + + const success = function () { + button.classList.add("success", "fa-check"); + button.classList.remove("fa-copy"); + }; + + const failure = function () { + button.classList.add("error", "fa-times"); + button.classList.remove("fa-copy"); + }; + + button.addEventListener("click", function () { + copyToClipboard(el.innerText).then(success, failure); + + setTimeout(function () { + button.classList.add("fa-copy"); + button.classList.remove("success", "fa-check", "fa-times"); + }, 5000); + }); + } +} + +function copyToClipboard(text) { + // clipboard API is only available in secure contexts + if (window.navigator && window.navigator.clipboard) { + return window.navigator.clipboard.writeText(text); + } else { + return new Promise(function (resolve, reject) { + try { + const el = document.createElement("textarea"); + el.textContent = text; + el.style.position = "fixed"; + el.style.opacity = 0; + document.body.appendChild(el); + el.select(); + document.execCommand("copy"); + + resolve(); + } catch (err) { + reject(err); + } finally { + document.body.removeChild(el); + } + }); + } +} + +if (document.readyState === "loading") { + document.addEventListener("DOMContentLoaded", addCopyButtonCallbacks); +} else { + addCopyButtonCallbacks(); +} + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'headroom', 'headroom-jquery'], function($, Headroom) { + +// Manages the top navigation bar (hides it when the user starts scrolling down on the +// mobile). +window.Headroom = Headroom; // work around buggy module loading? +$(document).ready(function() { + $('#documenter .docs-navbar').headroom({ + "tolerance": {"up": 10, "down": 10}, + }); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Modal settings dialog +$(document).ready(function() { + var settings = $('#documenter-settings'); + $('#documenter-settings-button').click(function(){ + settings.toggleClass('is-active'); + }); + // Close the dialog if X is clicked + $('#documenter-settings button.delete').click(function(){ + settings.removeClass('is-active'); + }); + // Close dialog if ESC is pressed + $(document).keyup(function(e) { + if (e.keyCode == 27) settings.removeClass('is-active'); + }); +}); + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Manages the showing and hiding of the sidebar. +$(document).ready(function() { + var sidebar = $("#documenter > .docs-sidebar"); + var sidebar_button = $("#documenter-sidebar-button") + sidebar_button.click(function(ev) { + ev.preventDefault(); + sidebar.toggleClass('visible'); + if (sidebar.hasClass('visible')) { + // Makes sure that the current menu item is visible in the sidebar. + $("#documenter .docs-menu a.is-active").focus(); + } + }); + $("#documenter > .docs-main").bind('click', function(ev) { + if ($(ev.target).is(sidebar_button)) { + return; + } + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + }); +}) + +// Resizes the package name / sitename in the sidebar if it is too wide. +// Inspired by: https://github.com/davatron5000/FitText.js +$(document).ready(function() { + e = $("#documenter .docs-autofit"); + function resize() { + var L = parseInt(e.css('max-width'), 10); + var L0 = e.width(); + if(L0 > L) { + var h0 = parseInt(e.css('font-size'), 10); + e.css('font-size', L * h0 / L0); + // TODO: make sure it survives resizes? + } + } + // call once and then register events + resize(); + $(window).resize(resize); + $(window).on('orientationchange', resize); +}); + +// Scroll the navigation bar to the currently selected menu item +$(document).ready(function() { + var sidebar = $("#documenter .docs-menu").get(0); + var active = $("#documenter .docs-menu .is-active").get(0); + if(typeof active !== 'undefined') { + sidebar.scrollTop = active.offsetTop - sidebar.offsetTop - 15; + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +function set_theme(theme) { + var active = null; + var disabled = []; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + var themename = ss.ownerNode.getAttribute("data-theme-name"); + if(themename === null) continue; // ignore non-theme stylesheets + // Find the active theme + if(themename === theme) active = ss; + else disabled.push(ss); + } + if(active !== null) { + active.disabled = false; + if(active.ownerNode.getAttribute("data-theme-primary") === null) { + document.getElementsByTagName('html')[0].className = "theme--" + theme; + } else { + document.getElementsByTagName('html')[0].className = ""; + } + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + + // Store the theme in localStorage + if(typeof(window.localStorage) !== "undefined") { + window.localStorage.setItem("documenter-theme", theme); + } else { + console.error("Browser does not support window.localStorage"); + } +} + +// Theme picker setup +$(document).ready(function() { + // onchange callback + $('#documenter-themepicker').change(function themepick_callback(ev){ + var themename = $('#documenter-themepicker option:selected').attr('value'); + set_theme(themename); + }); + + // Make sure that the themepicker displays the correct theme when the theme is retrieved + // from localStorage + if(typeof(window.localStorage) !== "undefined") { + var theme = window.localStorage.getItem("documenter-theme"); + if(theme !== null) { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = (e.value === theme); + }) + } else { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = $("html").hasClass(`theme--${e.value}`); + }) + } + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// update the version selector with info from the siteinfo.js and ../versions.js files +$(document).ready(function() { + // If the version selector is disabled with DOCUMENTER_VERSION_SELECTOR_DISABLED in the + // siteinfo.js file, we just return immediately and not display the version selector. + if (typeof DOCUMENTER_VERSION_SELECTOR_DISABLED === 'boolean' && DOCUMENTER_VERSION_SELECTOR_DISABLED) { + return; + } + + var version_selector = $("#documenter .docs-version-selector"); + var version_selector_select = $("#documenter .docs-version-selector select"); + + version_selector_select.change(function(x) { + target_href = version_selector_select.children("option:selected").get(0).value; + window.location.href = target_href; + }); + + // add the current version to the selector based on siteinfo.js, but only if the selector is empty + if (typeof DOCUMENTER_CURRENT_VERSION !== 'undefined' && $('#version-selector > option').length == 0) { + var option = $(""); + version_selector_select.append(option); + } + + if (typeof DOC_VERSIONS !== 'undefined') { + var existing_versions = version_selector_select.children("option"); + var existing_versions_texts = existing_versions.map(function(i,x){return x.text}); + DOC_VERSIONS.forEach(function(each) { + var version_url = documenterBaseURL + "/../" + each; + var existing_id = $.inArray(each, existing_versions_texts); + // if not already in the version selector, add it as a new option, + // otherwise update the old option with the URL and enable it + if (existing_id == -1) { + var option = $(""); + version_selector_select.append(option); + } else { + var option = existing_versions[existing_id]; + option.value = version_url; + option.disabled = false; + } + }); + } + + // only show the version selector if the selector has been populated + if (version_selector_select.children("option").length > 0) { + version_selector.toggleClass("visible"); + } +}) + +}) diff --git a/previews/PR334/assets/search.js b/previews/PR334/assets/search.js new file mode 100644 index 000000000..c133f7410 --- /dev/null +++ b/previews/PR334/assets/search.js @@ -0,0 +1,267 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'lunr': 'https://cdnjs.cloudflare.com/ajax/libs/lunr.js/2.3.9/lunr.min', + 'lodash': 'https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + } +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'lunr', 'lodash'], function($, lunr, _) { + +$(document).ready(function() { + // parseUri 1.2.2 + // (c) Steven Levithan + // MIT License + function parseUri (str) { + var o = parseUri.options, + m = o.parser[o.strictMode ? "strict" : "loose"].exec(str), + uri = {}, + i = 14; + + while (i--) uri[o.key[i]] = m[i] || ""; + + uri[o.q.name] = {}; + uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) { + if ($1) uri[o.q.name][$1] = $2; + }); + + return uri; + }; + parseUri.options = { + strictMode: false, + key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"], + q: { + name: "queryKey", + parser: /(?:^|&)([^&=]*)=?([^&]*)/g + }, + parser: { + strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, + loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ + } + }; + + $("#search-form").submit(function(e) { + e.preventDefault() + }) + + // list below is the lunr 2.1.3 list minus the intersect with names(Base) + // (all, any, get, in, is, only, which) and (do, else, for, let, where, while, with) + // ideally we'd just filter the original list but it's not available as a variable + lunr.stopWordFilter = lunr.generateStopWordFilter([ + 'a', + 'able', + 'about', + 'across', + 'after', + 'almost', + 'also', + 'am', + 'among', + 'an', + 'and', + 'are', + 'as', + 'at', + 'be', + 'because', + 'been', + 'but', + 'by', + 'can', + 'cannot', + 'could', + 'dear', + 'did', + 'does', + 'either', + 'ever', + 'every', + 'from', + 'got', + 'had', + 'has', + 'have', + 'he', + 'her', + 'hers', + 'him', + 'his', + 'how', + 'however', + 'i', + 'if', + 'into', + 'it', + 'its', + 'just', + 'least', + 'like', + 'likely', + 'may', + 'me', + 'might', + 'most', + 'must', + 'my', + 'neither', + 'no', + 'nor', + 'not', + 'of', + 'off', + 'often', + 'on', + 'or', + 'other', + 'our', + 'own', + 'rather', + 'said', + 'say', + 'says', + 'she', + 'should', + 'since', + 'so', + 'some', + 'than', + 'that', + 'the', + 'their', + 'them', + 'then', + 'there', + 'these', + 'they', + 'this', + 'tis', + 'to', + 'too', + 'twas', + 'us', + 'wants', + 'was', + 'we', + 'were', + 'what', + 'when', + 'who', + 'whom', + 'why', + 'will', + 'would', + 'yet', + 'you', + 'your' + ]) + + // add . as a separator, because otherwise "title": "Documenter.Anchors.add!" + // would not find anything if searching for "add!", only for the entire qualification + lunr.tokenizer.separator = /[\s\-\.]+/ + + // custom trimmer that doesn't strip @ and !, which are used in julia macro and function names + lunr.trimmer = function (token) { + return token.update(function (s) { + return s.replace(/^[^a-zA-Z0-9@!]+/, '').replace(/[^a-zA-Z0-9@!]+$/, '') + }) + } + + lunr.Pipeline.registerFunction(lunr.stopWordFilter, 'juliaStopWordFilter') + lunr.Pipeline.registerFunction(lunr.trimmer, 'juliaTrimmer') + + var index = lunr(function () { + this.ref('location') + this.field('title',{boost: 100}) + this.field('text') + documenterSearchIndex['docs'].forEach(function(e) { + this.add(e) + }, this) + }) + var store = {} + + documenterSearchIndex['docs'].forEach(function(e) { + store[e.location] = {title: e.title, category: e.category, page: e.page} + }) + + $(function(){ + searchresults = $('#documenter-search-results'); + searchinfo = $('#documenter-search-info'); + searchbox = $('#documenter-search-query'); + searchform = $('.docs-search'); + sidebar = $('.docs-sidebar'); + function update_search(querystring) { + tokens = lunr.tokenizer(querystring) + results = index.query(function (q) { + tokens.forEach(function (t) { + q.term(t.toString(), { + fields: ["title"], + boost: 100, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["title"], + boost: 10, + usePipeline: true, + editDistance: 2, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["text"], + boost: 1, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + }) + }) + searchinfo.text("Number of results: " + results.length) + searchresults.empty() + results.forEach(function(result) { + data = store[result.ref] + link = $(''+data.title+'') + link.attr('href', documenterBaseURL+'/'+result.ref) + if (data.category != "page"){ + cat = $('('+data.category+', '+data.page+')') + } else { + cat = $('('+data.category+')') + } + li = $('
    • ').append(link).append(" ").append(cat) + searchresults.append(li) + }) + } + + function update_search_box() { + querystring = searchbox.val() + update_search(querystring) + } + + searchbox.keyup(_.debounce(update_search_box, 250)) + searchbox.change(update_search_box) + + // Disable enter-key form submission for the searchbox on the search page + // and just re-run search rather than refresh the whole page. + searchform.keypress( + function(event){ + if (event.which == '13') { + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + update_search_box(); + event.preventDefault(); + } + } + ); + + search_query_uri = parseUri(window.location).queryKey["q"] + if(search_query_uri !== undefined) { + search_query = decodeURIComponent(search_query_uri.replace(/\+/g, '%20')) + searchbox.val(search_query) + } + update_search_box(); + }) +}) + +}) diff --git a/previews/PR334/assets/themes/documenter-dark.css b/previews/PR334/assets/themes/documenter-dark.css new file mode 100644 index 000000000..0bf1af7d5 --- /dev/null +++ b/previews/PR334/assets/themes/documenter-dark.css @@ -0,0 +1,7702 @@ +@charset "UTF-8"; +/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */ +@keyframes spinAround { + from { + transform: rotate(0deg); } + to { + transform: rotate(359deg); } } + +html.theme--documenter-dark .tabs, html.theme--documenter-dark .pagination-previous, +html.theme--documenter-dark .pagination-next, +html.theme--documenter-dark .pagination-link, +html.theme--documenter-dark .pagination-ellipsis, html.theme--documenter-dark .breadcrumb, html.theme--documenter-dark .file, html.theme--documenter-dark .button, .is-unselectable, html.theme--documenter-dark .modal-close, html.theme--documenter-dark .delete { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after, html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after { + border: 3px solid transparent; + border-radius: 2px; + border-right: 0; + border-top: 0; + content: " "; + display: block; + height: 0.625em; + margin-top: -0.4375em; + pointer-events: none; + position: absolute; + top: 50%; + transform: rotate(-45deg); + transform-origin: center; + width: 0.625em; } + +html.theme--documenter-dark .admonition:not(:last-child), html.theme--documenter-dark .tabs:not(:last-child), html.theme--documenter-dark .message:not(:last-child), html.theme--documenter-dark .list:not(:last-child), html.theme--documenter-dark .level:not(:last-child), html.theme--documenter-dark .breadcrumb:not(:last-child), html.theme--documenter-dark .highlight:not(:last-child), html.theme--documenter-dark .block:not(:last-child), html.theme--documenter-dark .title:not(:last-child), +html.theme--documenter-dark .subtitle:not(:last-child), html.theme--documenter-dark .table-container:not(:last-child), html.theme--documenter-dark .table:not(:last-child), html.theme--documenter-dark .progress:not(:last-child), html.theme--documenter-dark .notification:not(:last-child), html.theme--documenter-dark .content:not(:last-child), html.theme--documenter-dark .box:not(:last-child) { + margin-bottom: 1.5rem; } + +html.theme--documenter-dark .modal-close, html.theme--documenter-dark .delete { + -moz-appearance: none; + -webkit-appearance: none; + background-color: rgba(10, 10, 10, 0.2); + border: none; + border-radius: 290486px; + cursor: pointer; + pointer-events: auto; + display: inline-block; + flex-grow: 0; + flex-shrink: 0; + font-size: 0; + height: 20px; + max-height: 20px; + max-width: 20px; + min-height: 20px; + min-width: 20px; + outline: none; + position: relative; + vertical-align: top; + width: 20px; } + html.theme--documenter-dark .modal-close::before, html.theme--documenter-dark .delete::before, html.theme--documenter-dark .modal-close::after, html.theme--documenter-dark .delete::after { + background-color: white; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + html.theme--documenter-dark .modal-close::before, html.theme--documenter-dark .delete::before { + height: 2px; + width: 50%; } + html.theme--documenter-dark .modal-close::after, html.theme--documenter-dark .delete::after { + height: 50%; + width: 2px; } + html.theme--documenter-dark .modal-close:hover, html.theme--documenter-dark .delete:hover, html.theme--documenter-dark .modal-close:focus, html.theme--documenter-dark .delete:focus { + background-color: rgba(10, 10, 10, 0.3); } + html.theme--documenter-dark .modal-close:active, html.theme--documenter-dark .delete:active { + background-color: rgba(10, 10, 10, 0.4); } + html.theme--documenter-dark .is-small.modal-close, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.modal-close, html.theme--documenter-dark .is-small.delete, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.delete { + height: 16px; + max-height: 16px; + max-width: 16px; + min-height: 16px; + min-width: 16px; + width: 16px; } + html.theme--documenter-dark .is-medium.modal-close, html.theme--documenter-dark .is-medium.delete { + height: 24px; + max-height: 24px; + max-width: 24px; + min-height: 24px; + min-width: 24px; + width: 24px; } + html.theme--documenter-dark .is-large.modal-close, html.theme--documenter-dark .is-large.delete { + height: 32px; + max-height: 32px; + max-width: 32px; + min-height: 32px; + min-width: 32px; + width: 32px; } + +html.theme--documenter-dark .control.is-loading::after, html.theme--documenter-dark .select.is-loading::after, html.theme--documenter-dark .loader, html.theme--documenter-dark .button.is-loading::after { + animation: spinAround 500ms infinite linear; + border: 2px solid #dbdee0; + border-radius: 290486px; + border-right-color: transparent; + border-top-color: transparent; + content: ""; + display: block; + height: 1em; + position: relative; + width: 1em; } + +html.theme--documenter-dark .hero-video, html.theme--documenter-dark .modal-background, html.theme--documenter-dark .modal, html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img, +html.theme--documenter-dark .image.is-square .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img, +html.theme--documenter-dark .image.is-1by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img, +html.theme--documenter-dark .image.is-5by4 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img, +html.theme--documenter-dark .image.is-4by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img, +html.theme--documenter-dark .image.is-3by2 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img, +html.theme--documenter-dark .image.is-5by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img, +html.theme--documenter-dark .image.is-16by9 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img, +html.theme--documenter-dark .image.is-2by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img, +html.theme--documenter-dark .image.is-3by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img, +html.theme--documenter-dark .image.is-4by5 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img, +html.theme--documenter-dark .image.is-3by4 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img, +html.theme--documenter-dark .image.is-2by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img, +html.theme--documenter-dark .image.is-3by5 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img, +html.theme--documenter-dark .image.is-9by16 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img, +html.theme--documenter-dark .image.is-1by2 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img, +html.theme--documenter-dark .image.is-1by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, .is-overlay { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; } + +html.theme--documenter-dark .pagination-previous, +html.theme--documenter-dark .pagination-next, +html.theme--documenter-dark .pagination-link, +html.theme--documenter-dark .pagination-ellipsis, html.theme--documenter-dark .file-cta, +html.theme--documenter-dark .file-name, html.theme--documenter-dark .select select, html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark .button { + -moz-appearance: none; + -webkit-appearance: none; + align-items: center; + border: 1px solid transparent; + border-radius: 0.4em; + box-shadow: none; + display: inline-flex; + font-size: 15px; + height: 2.25em; + justify-content: flex-start; + line-height: 1.5; + padding-bottom: calc(0.375em - 1px); + padding-left: calc(0.625em - 1px); + padding-right: calc(0.625em - 1px); + padding-top: calc(0.375em - 1px); + position: relative; + vertical-align: top; } + html.theme--documenter-dark .pagination-previous:focus, + html.theme--documenter-dark .pagination-next:focus, + html.theme--documenter-dark .pagination-link:focus, + html.theme--documenter-dark .pagination-ellipsis:focus, html.theme--documenter-dark .file-cta:focus, + html.theme--documenter-dark .file-name:focus, html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .button:focus, html.theme--documenter-dark .is-focused.pagination-previous, + html.theme--documenter-dark .is-focused.pagination-next, + html.theme--documenter-dark .is-focused.pagination-link, + html.theme--documenter-dark .is-focused.pagination-ellipsis, html.theme--documenter-dark .is-focused.file-cta, + html.theme--documenter-dark .is-focused.file-name, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-focused.button, html.theme--documenter-dark .pagination-previous:active, + html.theme--documenter-dark .pagination-next:active, + html.theme--documenter-dark .pagination-link:active, + html.theme--documenter-dark .pagination-ellipsis:active, html.theme--documenter-dark .file-cta:active, + html.theme--documenter-dark .file-name:active, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .button:active, html.theme--documenter-dark .is-active.pagination-previous, + html.theme--documenter-dark .is-active.pagination-next, + html.theme--documenter-dark .is-active.pagination-link, + html.theme--documenter-dark .is-active.pagination-ellipsis, html.theme--documenter-dark .is-active.file-cta, + html.theme--documenter-dark .is-active.file-name, html.theme--documenter-dark .select select.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .is-active.button { + outline: none; } + html.theme--documenter-dark .pagination-previous[disabled], + html.theme--documenter-dark .pagination-next[disabled], + html.theme--documenter-dark .pagination-link[disabled], + html.theme--documenter-dark .pagination-ellipsis[disabled], html.theme--documenter-dark .file-cta[disabled], + html.theme--documenter-dark .file-name[disabled], html.theme--documenter-dark .select select[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], html.theme--documenter-dark .button[disabled], fieldset[disabled] html.theme--documenter-dark .pagination-previous, html.theme--documenter-dark fieldset[disabled] .pagination-previous, + fieldset[disabled] html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark fieldset[disabled] .pagination-next, + fieldset[disabled] html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark fieldset[disabled] .pagination-link, + fieldset[disabled] html.theme--documenter-dark .pagination-ellipsis, + html.theme--documenter-dark fieldset[disabled] .pagination-ellipsis, fieldset[disabled] html.theme--documenter-dark .file-cta, html.theme--documenter-dark fieldset[disabled] .file-cta, + fieldset[disabled] html.theme--documenter-dark .file-name, + html.theme--documenter-dark fieldset[disabled] .file-name, fieldset[disabled] html.theme--documenter-dark .select select, fieldset[disabled] html.theme--documenter-dark .textarea, fieldset[disabled] html.theme--documenter-dark .input, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark fieldset[disabled] .select select, html.theme--documenter-dark .select fieldset[disabled] select, html.theme--documenter-dark fieldset[disabled] .textarea, html.theme--documenter-dark fieldset[disabled] .input, html.theme--documenter-dark fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, fieldset[disabled] html.theme--documenter-dark .button, html.theme--documenter-dark fieldset[disabled] .button { + cursor: not-allowed; } + +/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */ +html, +body, +p, +ol, +ul, +li, +dl, +dt, +dd, +blockquote, +figure, +fieldset, +legend, +textarea, +pre, +iframe, +hr, +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + padding: 0; } + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: 100%; + font-weight: normal; } + +ul { + list-style: none; } + +button, +input, +select, +textarea { + margin: 0; } + +html { + box-sizing: border-box; } + +*, *::before, *::after { + box-sizing: inherit; } + +img, +embed, +iframe, +object, +video { + height: auto; + max-width: 100%; } + +audio { + max-width: 100%; } + +iframe { + border: 0; } + +table { + border-collapse: collapse; + border-spacing: 0; } + +td, +th { + padding: 0; } + td:not([align]), + th:not([align]) { + text-align: left; } + +.is-clearfix::after { + clear: both; + content: " "; + display: table; } + +.is-pulled-left { + float: left !important; } + +.is-pulled-right { + float: right !important; } + +.is-clipped { + overflow: hidden !important; } + +.is-size-1 { + font-size: 3rem !important; } + +.is-size-2 { + font-size: 2.5rem !important; } + +.is-size-3 { + font-size: 2rem !important; } + +.is-size-4 { + font-size: 1.5rem !important; } + +.is-size-5 { + font-size: 1.25rem !important; } + +.is-size-6 { + font-size: 15px !important; } + +.is-size-7, html.theme--documenter-dark .docstring > section > a.docs-sourcelink { + font-size: 0.85em !important; } + +@media screen and (max-width: 768px) { + .is-size-1-mobile { + font-size: 3rem !important; } + .is-size-2-mobile { + font-size: 2.5rem !important; } + .is-size-3-mobile { + font-size: 2rem !important; } + .is-size-4-mobile { + font-size: 1.5rem !important; } + .is-size-5-mobile { + font-size: 1.25rem !important; } + .is-size-6-mobile { + font-size: 15px !important; } + .is-size-7-mobile { + font-size: 0.85em !important; } } + +@media screen and (min-width: 769px), print { + .is-size-1-tablet { + font-size: 3rem !important; } + .is-size-2-tablet { + font-size: 2.5rem !important; } + .is-size-3-tablet { + font-size: 2rem !important; } + .is-size-4-tablet { + font-size: 1.5rem !important; } + .is-size-5-tablet { + font-size: 1.25rem !important; } + .is-size-6-tablet { + font-size: 15px !important; } + .is-size-7-tablet { + font-size: 0.85em !important; } } + +@media screen and (max-width: 1055px) { + .is-size-1-touch { + font-size: 3rem !important; } + .is-size-2-touch { + font-size: 2.5rem !important; } + .is-size-3-touch { + font-size: 2rem !important; } + .is-size-4-touch { + font-size: 1.5rem !important; } + .is-size-5-touch { + font-size: 1.25rem !important; } + .is-size-6-touch { + font-size: 15px !important; } + .is-size-7-touch { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1056px) { + .is-size-1-desktop { + font-size: 3rem !important; } + .is-size-2-desktop { + font-size: 2.5rem !important; } + .is-size-3-desktop { + font-size: 2rem !important; } + .is-size-4-desktop { + font-size: 1.5rem !important; } + .is-size-5-desktop { + font-size: 1.25rem !important; } + .is-size-6-desktop { + font-size: 15px !important; } + .is-size-7-desktop { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1216px) { + .is-size-1-widescreen { + font-size: 3rem !important; } + .is-size-2-widescreen { + font-size: 2.5rem !important; } + .is-size-3-widescreen { + font-size: 2rem !important; } + .is-size-4-widescreen { + font-size: 1.5rem !important; } + .is-size-5-widescreen { + font-size: 1.25rem !important; } + .is-size-6-widescreen { + font-size: 15px !important; } + .is-size-7-widescreen { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1408px) { + .is-size-1-fullhd { + font-size: 3rem !important; } + .is-size-2-fullhd { + font-size: 2.5rem !important; } + .is-size-3-fullhd { + font-size: 2rem !important; } + .is-size-4-fullhd { + font-size: 1.5rem !important; } + .is-size-5-fullhd { + font-size: 1.25rem !important; } + .is-size-6-fullhd { + font-size: 15px !important; } + .is-size-7-fullhd { + font-size: 0.85em !important; } } + +.has-text-centered { + text-align: center !important; } + +.has-text-justified { + text-align: justify !important; } + +.has-text-left { + text-align: left !important; } + +.has-text-right { + text-align: right !important; } + +@media screen and (max-width: 768px) { + .has-text-centered-mobile { + text-align: center !important; } } + +@media screen and (min-width: 769px), print { + .has-text-centered-tablet { + text-align: center !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-centered-tablet-only { + text-align: center !important; } } + +@media screen and (max-width: 1055px) { + .has-text-centered-touch { + text-align: center !important; } } + +@media screen and (min-width: 1056px) { + .has-text-centered-desktop { + text-align: center !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-centered-desktop-only { + text-align: center !important; } } + +@media screen and (min-width: 1216px) { + .has-text-centered-widescreen { + text-align: center !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-centered-widescreen-only { + text-align: center !important; } } + +@media screen and (min-width: 1408px) { + .has-text-centered-fullhd { + text-align: center !important; } } + +@media screen and (max-width: 768px) { + .has-text-justified-mobile { + text-align: justify !important; } } + +@media screen and (min-width: 769px), print { + .has-text-justified-tablet { + text-align: justify !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-justified-tablet-only { + text-align: justify !important; } } + +@media screen and (max-width: 1055px) { + .has-text-justified-touch { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) { + .has-text-justified-desktop { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-justified-desktop-only { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) { + .has-text-justified-widescreen { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-justified-widescreen-only { + text-align: justify !important; } } + +@media screen and (min-width: 1408px) { + .has-text-justified-fullhd { + text-align: justify !important; } } + +@media screen and (max-width: 768px) { + .has-text-left-mobile { + text-align: left !important; } } + +@media screen and (min-width: 769px), print { + .has-text-left-tablet { + text-align: left !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-left-tablet-only { + text-align: left !important; } } + +@media screen and (max-width: 1055px) { + .has-text-left-touch { + text-align: left !important; } } + +@media screen and (min-width: 1056px) { + .has-text-left-desktop { + text-align: left !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-left-desktop-only { + text-align: left !important; } } + +@media screen and (min-width: 1216px) { + .has-text-left-widescreen { + text-align: left !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-left-widescreen-only { + text-align: left !important; } } + +@media screen and (min-width: 1408px) { + .has-text-left-fullhd { + text-align: left !important; } } + +@media screen and (max-width: 768px) { + .has-text-right-mobile { + text-align: right !important; } } + +@media screen and (min-width: 769px), print { + .has-text-right-tablet { + text-align: right !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-right-tablet-only { + text-align: right !important; } } + +@media screen and (max-width: 1055px) { + .has-text-right-touch { + text-align: right !important; } } + +@media screen and (min-width: 1056px) { + .has-text-right-desktop { + text-align: right !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-right-desktop-only { + text-align: right !important; } } + +@media screen and (min-width: 1216px) { + .has-text-right-widescreen { + text-align: right !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-right-widescreen-only { + text-align: right !important; } } + +@media screen and (min-width: 1408px) { + .has-text-right-fullhd { + text-align: right !important; } } + +.is-capitalized { + text-transform: capitalize !important; } + +.is-lowercase { + text-transform: lowercase !important; } + +.is-uppercase { + text-transform: uppercase !important; } + +.is-italic { + font-style: italic !important; } + +.has-text-white { + color: white !important; } + +a.has-text-white:hover, a.has-text-white:focus { + color: #e6e6e6 !important; } + +.has-background-white { + background-color: white !important; } + +.has-text-black { + color: #0a0a0a !important; } + +a.has-text-black:hover, a.has-text-black:focus { + color: black !important; } + +.has-background-black { + background-color: #0a0a0a !important; } + +.has-text-light { + color: #ecf0f1 !important; } + +a.has-text-light:hover, a.has-text-light:focus { + color: #cfd9db !important; } + +.has-background-light { + background-color: #ecf0f1 !important; } + +.has-text-dark { + color: #282f2f !important; } + +a.has-text-dark:hover, a.has-text-dark:focus { + color: #111414 !important; } + +.has-background-dark { + background-color: #282f2f !important; } + +.has-text-primary { + color: #375a7f !important; } + +a.has-text-primary:hover, a.has-text-primary:focus { + color: #28415b !important; } + +.has-background-primary { + background-color: #375a7f !important; } + +.has-text-link { + color: #1abc9c !important; } + +a.has-text-link:hover, a.has-text-link:focus { + color: #148f77 !important; } + +.has-background-link { + background-color: #1abc9c !important; } + +.has-text-info { + color: #024c7d !important; } + +a.has-text-info:hover, a.has-text-info:focus { + color: #012d4b !important; } + +.has-background-info { + background-color: #024c7d !important; } + +.has-text-success { + color: #008438 !important; } + +a.has-text-success:hover, a.has-text-success:focus { + color: #005122 !important; } + +.has-background-success { + background-color: #008438 !important; } + +.has-text-warning { + color: #ad8100 !important; } + +a.has-text-warning:hover, a.has-text-warning:focus { + color: #7a5b00 !important; } + +.has-background-warning { + background-color: #ad8100 !important; } + +.has-text-danger { + color: #9e1b0d !important; } + +a.has-text-danger:hover, a.has-text-danger:focus { + color: #6f1309 !important; } + +.has-background-danger { + background-color: #9e1b0d !important; } + +.has-text-black-bis { + color: #121212 !important; } + +.has-background-black-bis { + background-color: #121212 !important; } + +.has-text-black-ter { + color: #242424 !important; } + +.has-background-black-ter { + background-color: #242424 !important; } + +.has-text-grey-darker { + color: #282f2f !important; } + +.has-background-grey-darker { + background-color: #282f2f !important; } + +.has-text-grey-dark { + color: #343c3d !important; } + +.has-background-grey-dark { + background-color: #343c3d !important; } + +.has-text-grey { + color: #5e6d6f !important; } + +.has-background-grey { + background-color: #5e6d6f !important; } + +.has-text-grey-light { + color: #8c9b9d !important; } + +.has-background-grey-light { + background-color: #8c9b9d !important; } + +.has-text-grey-lighter { + color: #dbdee0 !important; } + +.has-background-grey-lighter { + background-color: #dbdee0 !important; } + +.has-text-white-ter { + color: #ecf0f1 !important; } + +.has-background-white-ter { + background-color: #ecf0f1 !important; } + +.has-text-white-bis { + color: #fafafa !important; } + +.has-background-white-bis { + background-color: #fafafa !important; } + +.has-text-weight-light { + font-weight: 300 !important; } + +.has-text-weight-normal { + font-weight: 400 !important; } + +.has-text-weight-medium { + font-weight: 500 !important; } + +.has-text-weight-semibold { + font-weight: 600 !important; } + +.has-text-weight-bold { + font-weight: 700 !important; } + +.is-family-primary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-secondary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-sans-serif { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-monospace { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-family-code { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-block { + display: block !important; } + +@media screen and (max-width: 768px) { + .is-block-mobile { + display: block !important; } } + +@media screen and (min-width: 769px), print { + .is-block-tablet { + display: block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-block-tablet-only { + display: block !important; } } + +@media screen and (max-width: 1055px) { + .is-block-touch { + display: block !important; } } + +@media screen and (min-width: 1056px) { + .is-block-desktop { + display: block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-block-desktop-only { + display: block !important; } } + +@media screen and (min-width: 1216px) { + .is-block-widescreen { + display: block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-block-widescreen-only { + display: block !important; } } + +@media screen and (min-width: 1408px) { + .is-block-fullhd { + display: block !important; } } + +.is-flex { + display: flex !important; } + +@media screen and (max-width: 768px) { + .is-flex-mobile { + display: flex !important; } } + +@media screen and (min-width: 769px), print { + .is-flex-tablet { + display: flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-flex-tablet-only { + display: flex !important; } } + +@media screen and (max-width: 1055px) { + .is-flex-touch { + display: flex !important; } } + +@media screen and (min-width: 1056px) { + .is-flex-desktop { + display: flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-flex-desktop-only { + display: flex !important; } } + +@media screen and (min-width: 1216px) { + .is-flex-widescreen { + display: flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-flex-widescreen-only { + display: flex !important; } } + +@media screen and (min-width: 1408px) { + .is-flex-fullhd { + display: flex !important; } } + +.is-inline { + display: inline !important; } + +@media screen and (max-width: 768px) { + .is-inline-mobile { + display: inline !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-tablet { + display: inline !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-tablet-only { + display: inline !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-touch { + display: inline !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-desktop { + display: inline !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-desktop-only { + display: inline !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-widescreen { + display: inline !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-widescreen-only { + display: inline !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-fullhd { + display: inline !important; } } + +.is-inline-block { + display: inline-block !important; } + +@media screen and (max-width: 768px) { + .is-inline-block-mobile { + display: inline-block !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-block-tablet { + display: inline-block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-block-tablet-only { + display: inline-block !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-block-touch { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-block-desktop { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-block-desktop-only { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-block-widescreen { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-block-widescreen-only { + display: inline-block !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-block-fullhd { + display: inline-block !important; } } + +.is-inline-flex { + display: inline-flex !important; } + +@media screen and (max-width: 768px) { + .is-inline-flex-mobile { + display: inline-flex !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-flex-tablet { + display: inline-flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-flex-tablet-only { + display: inline-flex !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-flex-touch { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-flex-desktop { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-flex-desktop-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-flex-widescreen { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-flex-widescreen-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-flex-fullhd { + display: inline-flex !important; } } + +.is-hidden { + display: none !important; } + +.is-sr-only { + border: none !important; + clip: rect(0, 0, 0, 0) !important; + height: 0.01em !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + white-space: nowrap !important; + width: 0.01em !important; } + +@media screen and (max-width: 768px) { + .is-hidden-mobile { + display: none !important; } } + +@media screen and (min-width: 769px), print { + .is-hidden-tablet { + display: none !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-hidden-tablet-only { + display: none !important; } } + +@media screen and (max-width: 1055px) { + .is-hidden-touch { + display: none !important; } } + +@media screen and (min-width: 1056px) { + .is-hidden-desktop { + display: none !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-hidden-desktop-only { + display: none !important; } } + +@media screen and (min-width: 1216px) { + .is-hidden-widescreen { + display: none !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-hidden-widescreen-only { + display: none !important; } } + +@media screen and (min-width: 1408px) { + .is-hidden-fullhd { + display: none !important; } } + +.is-invisible { + visibility: hidden !important; } + +@media screen and (max-width: 768px) { + .is-invisible-mobile { + visibility: hidden !important; } } + +@media screen and (min-width: 769px), print { + .is-invisible-tablet { + visibility: hidden !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-invisible-tablet-only { + visibility: hidden !important; } } + +@media screen and (max-width: 1055px) { + .is-invisible-touch { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) { + .is-invisible-desktop { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-invisible-desktop-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) { + .is-invisible-widescreen { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-invisible-widescreen-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1408px) { + .is-invisible-fullhd { + visibility: hidden !important; } } + +.is-marginless { + margin: 0 !important; } + +.is-paddingless { + padding: 0 !important; } + +.is-radiusless { + border-radius: 0 !important; } + +.is-shadowless { + box-shadow: none !important; } + +.is-relative { + position: relative !important; } + +html.theme--documenter-dark { + /* This file contain the overall layout. + * + * The main container is
      that is identified by id #documenter. + */ + /*! + 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 +*/ + /* Comment */ + /* Red */ + /* Orange */ + /* Yellow */ + /* Green */ + /* Blue */ + /* Purple */ } + html.theme--documenter-dark html { + background-color: #1f2424; + font-size: 16px; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + html.theme--documenter-dark article, + html.theme--documenter-dark aside, + html.theme--documenter-dark figure, + html.theme--documenter-dark footer, + html.theme--documenter-dark header, + html.theme--documenter-dark hgroup, + html.theme--documenter-dark section { + display: block; } + html.theme--documenter-dark body, + html.theme--documenter-dark button, + html.theme--documenter-dark input, + html.theme--documenter-dark select, + html.theme--documenter-dark textarea { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; } + html.theme--documenter-dark code, + html.theme--documenter-dark pre { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; } + html.theme--documenter-dark body { + color: #fff; + font-size: 1em; + font-weight: 400; + line-height: 1.5; } + html.theme--documenter-dark a { + color: #1abc9c; + cursor: pointer; + text-decoration: none; } + html.theme--documenter-dark a strong { + color: currentColor; } + html.theme--documenter-dark a:hover { + color: #1dd2af; } + html.theme--documenter-dark code { + background-color: rgba(255, 255, 255, 0.05); + color: #ececec; + font-size: 0.875em; + font-weight: normal; + padding: 0.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: 0.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: 0.875em; + overflow-x: auto; + padding: 1.25rem 1.5rem; + white-space: pre; + word-wrap: normal; } + html.theme--documenter-dark pre code { + background-color: transparent; + color: currentColor; + font-size: 1em; + padding: 0; } + html.theme--documenter-dark table td, + html.theme--documenter-dark table th { + vertical-align: top; } + html.theme--documenter-dark table td:not([align]), + html.theme--documenter-dark table th:not([align]) { + text-align: left; } + html.theme--documenter-dark table th { + color: #f2f2f2; } + html.theme--documenter-dark .box { + background-color: #343c3d; + border-radius: 8px; + box-shadow: none; + color: #fff; + display: block; + padding: 1.25rem; } + html.theme--documenter-dark a.box:hover, html.theme--documenter-dark a.box:focus { + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #1abc9c; } + html.theme--documenter-dark a.box:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #1abc9c; } + html.theme--documenter-dark .button { + background-color: #282f2f; + border-color: #4c5759; + border-width: 1px; + color: #375a7f; + cursor: pointer; + justify-content: center; + padding-bottom: calc(0.375em - 1px); + padding-left: 0.75em; + padding-right: 0.75em; + padding-top: calc(0.375em - 1px); + text-align: center; + white-space: nowrap; } + html.theme--documenter-dark .button strong { + color: inherit; } + html.theme--documenter-dark .button .icon, html.theme--documenter-dark .button .icon.is-small, html.theme--documenter-dark .button #documenter .docs-sidebar form.docs-search > input.icon, html.theme--documenter-dark #documenter .docs-sidebar .button form.docs-search > input.icon, html.theme--documenter-dark .button .icon.is-medium, html.theme--documenter-dark .button .icon.is-large { + height: 1.5em; + width: 1.5em; } + html.theme--documenter-dark .button .icon:first-child:not(:last-child) { + margin-left: calc(-0.375em - 1px); + margin-right: 0.1875em; } + html.theme--documenter-dark .button .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: calc(-0.375em - 1px); } + html.theme--documenter-dark .button .icon:first-child:last-child { + margin-left: calc(-0.375em - 1px); + margin-right: calc(-0.375em - 1px); } + html.theme--documenter-dark .button:hover, html.theme--documenter-dark .button.is-hovered { + border-color: #8c9b9d; + color: #f2f2f2; } + html.theme--documenter-dark .button:focus, html.theme--documenter-dark .button.is-focused { + border-color: #8c9b9d; + color: #17a689; } + html.theme--documenter-dark .button:focus:not(:active), html.theme--documenter-dark .button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .button:active, html.theme--documenter-dark .button.is-active { + border-color: #343c3d; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text { + background-color: transparent; + border-color: transparent; + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .button.is-text:hover, html.theme--documenter-dark .button.is-text.is-hovered, html.theme--documenter-dark .button.is-text:focus, html.theme--documenter-dark .button.is-text.is-focused { + background-color: #282f2f; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text:active, html.theme--documenter-dark .button.is-text.is-active { + background-color: #1d2122; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-text { + background-color: transparent; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-white { + background-color: white; + 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: white; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-white.is-inverted { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .button.is-white.is-inverted:hover, html.theme--documenter-dark .button.is-white.is-inverted.is-hovered { + background-color: black; } + 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: white; } + 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: white; + color: white; } + 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: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white.is-outlined.is-loading::after { + border-color: transparent transparent white white !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: white; + box-shadow: none; + color: white; } + 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: white; } + 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 white white !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: white; } + html.theme--documenter-dark .button.is-black:hover, html.theme--documenter-dark .button.is-black.is-hovered { + background-color: #040404; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black:focus, html.theme--documenter-dark .button.is-black.is-focused { + border-color: transparent; + color: white; } + 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: black; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-black.is-inverted { + background-color: white; + 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: white; + border-color: transparent; + box-shadow: none; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-loading::after { + border-color: transparent transparent white white !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: white; } + 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 white white !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: white; + color: white; } + 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: white; + 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: white; + box-shadow: none; + color: white; } + html.theme--documenter-dark .button.is-light { + background-color: #ecf0f1; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:hover, html.theme--documenter-dark .button.is-light.is-hovered { + background-color: #e5eaec; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:focus, html.theme--documenter-dark .button.is-light.is-focused { + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:focus:not(:active), html.theme--documenter-dark .button.is-light.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } + html.theme--documenter-dark .button.is-light:active, html.theme--documenter-dark .button.is-light.is-active { + background-color: #dde4e6; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light { + background-color: #ecf0f1; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-light.is-inverted { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-hovered { + background-color: #1d2122; } + html.theme--documenter-dark .button.is-light.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted { + background-color: #282f2f; + border-color: transparent; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-loading::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-light.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-outlined.is-focused { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-light.is-outlined.is-loading::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-light.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-light.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #282f2f; + color: #282f2f; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-focused { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #282f2f; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark, html.theme--documenter-dark .content kbd.button { + background-color: #282f2f; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:hover, html.theme--documenter-dark .content kbd.button:hover, html.theme--documenter-dark .button.is-dark.is-hovered, html.theme--documenter-dark .content kbd.button.is-hovered { + background-color: #232829; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:focus, html.theme--documenter-dark .content kbd.button:focus, html.theme--documenter-dark .button.is-dark.is-focused, html.theme--documenter-dark .content kbd.button.is-focused { + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:focus:not(:active), html.theme--documenter-dark .content kbd.button:focus:not(:active), html.theme--documenter-dark .button.is-dark.is-focused:not(:active), html.theme--documenter-dark .content kbd.button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } + html.theme--documenter-dark .button.is-dark:active, html.theme--documenter-dark .content kbd.button:active, html.theme--documenter-dark .button.is-dark.is-active, html.theme--documenter-dark .content kbd.button.is-active { + background-color: #1d2122; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark[disabled], html.theme--documenter-dark .content kbd.button[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark, fieldset[disabled] html.theme--documenter-dark .content kbd.button { + background-color: #282f2f; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-dark.is-inverted, html.theme--documenter-dark .content kbd.button.is-inverted { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted:hover, html.theme--documenter-dark .content kbd.button.is-inverted:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-hovered { + background-color: #dde4e6; } + html.theme--documenter-dark .button.is-dark.is-inverted[disabled], html.theme--documenter-dark .content kbd.button.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted { + background-color: #ecf0f1; + border-color: transparent; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-loading::after, html.theme--documenter-dark .content kbd.button.is-loading::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-dark.is-outlined, html.theme--documenter-dark .content kbd.button.is-outlined { + background-color: transparent; + border-color: #282f2f; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-outlined.is-focused { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark.is-outlined.is-loading::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-dark.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-outlined, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-outlined { + background-color: transparent; + border-color: #282f2f; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-focused { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-primary, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink { + background-color: #375a7f; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:hover, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-hovered.docs-sourcelink { + background-color: #335476; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:focus, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:focus:not(:active), html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus:not(:active), html.theme--documenter-dark .button.is-primary.is-focused:not(:active), html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) { + box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } + html.theme--documenter-dark .button.is-primary:active, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:active, html.theme--documenter-dark .button.is-primary.is-active, html.theme--documenter-dark .docstring > section > a.button.is-active.docs-sourcelink { + background-color: #2f4d6d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary[disabled], html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink { + background-color: #375a7f; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-primary.is-inverted, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-primary.is-inverted[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-loading.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-primary.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #375a7f; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink { + background-color: #375a7f; + border-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .button.is-primary.is-outlined.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after { + border-color: transparent transparent #375a7f #375a7f !important; } + html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-primary.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-outlined, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #375a7f; + box-shadow: none; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink { + background-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #375a7f #375a7f !important; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-link { + background-color: #1abc9c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:hover, html.theme--documenter-dark .button.is-link.is-hovered { + background-color: #18b193; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:focus, html.theme--documenter-dark .button.is-link.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:focus:not(:active), html.theme--documenter-dark .button.is-link.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .button.is-link:active, html.theme--documenter-dark .button.is-link.is-active { + background-color: #17a689; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link { + background-color: #1abc9c; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-link.is-inverted { + background-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-link.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-link.is-outlined { + background-color: transparent; + border-color: #1abc9c; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-outlined.is-focused { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .button.is-link.is-outlined.is-loading::after { + border-color: transparent transparent #1abc9c #1abc9c !important; } + html.theme--documenter-dark .button.is-link.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-link.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-outlined { + background-color: transparent; + border-color: #1abc9c; + box-shadow: none; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #1abc9c #1abc9c !important; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-info { + background-color: #024c7d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:hover, html.theme--documenter-dark .button.is-info.is-hovered { + background-color: #024470; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:focus, html.theme--documenter-dark .button.is-info.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:focus:not(:active), html.theme--documenter-dark .button.is-info.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } + html.theme--documenter-dark .button.is-info:active, html.theme--documenter-dark .button.is-info.is-active { + background-color: #023d64; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info { + background-color: #024c7d; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-info.is-inverted { + background-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-info.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-info.is-outlined { + background-color: transparent; + border-color: #024c7d; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-outlined.is-focused { + background-color: #024c7d; + border-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .button.is-info.is-outlined.is-loading::after { + border-color: transparent transparent #024c7d #024c7d !important; } + html.theme--documenter-dark .button.is-info.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-info.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-outlined { + background-color: transparent; + border-color: #024c7d; + box-shadow: none; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #024c7d #024c7d !important; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-success { + background-color: #008438; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:hover, html.theme--documenter-dark .button.is-success.is-hovered { + background-color: #007733; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:focus, html.theme--documenter-dark .button.is-success.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:focus:not(:active), html.theme--documenter-dark .button.is-success.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } + html.theme--documenter-dark .button.is-success:active, html.theme--documenter-dark .button.is-success.is-active { + background-color: #006b2d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success { + background-color: #008438; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-success.is-inverted { + background-color: #fff; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-success.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-success.is-outlined { + background-color: transparent; + border-color: #008438; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-outlined.is-focused { + background-color: #008438; + border-color: #008438; + color: #fff; } + html.theme--documenter-dark .button.is-success.is-outlined.is-loading::after { + border-color: transparent transparent #008438 #008438 !important; } + html.theme--documenter-dark .button.is-success.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-success.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-outlined { + background-color: transparent; + border-color: #008438; + box-shadow: none; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #008438 #008438 !important; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-warning { + background-color: #ad8100; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:hover, html.theme--documenter-dark .button.is-warning.is-hovered { + background-color: #a07700; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:focus, html.theme--documenter-dark .button.is-warning.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:focus:not(:active), html.theme--documenter-dark .button.is-warning.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } + html.theme--documenter-dark .button.is-warning:active, html.theme--documenter-dark .button.is-warning.is-active { + background-color: #946e00; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning { + background-color: #ad8100; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-warning.is-inverted { + background-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-warning.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ad8100; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-outlined.is-focused { + background-color: #ad8100; + border-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .button.is-warning.is-outlined.is-loading::after { + border-color: transparent transparent #ad8100 #ad8100 !important; } + html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-warning.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ad8100; + box-shadow: none; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ad8100 #ad8100 !important; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-danger { + background-color: #9e1b0d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:hover, html.theme--documenter-dark .button.is-danger.is-hovered { + background-color: #92190c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:focus, html.theme--documenter-dark .button.is-danger.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:focus:not(:active), html.theme--documenter-dark .button.is-danger.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } + html.theme--documenter-dark .button.is-danger:active, html.theme--documenter-dark .button.is-danger.is-active { + background-color: #86170b; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger { + background-color: #9e1b0d; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-danger.is-inverted { + background-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-danger.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-danger.is-outlined { + background-color: transparent; + border-color: #9e1b0d; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-outlined.is-focused { + background-color: #9e1b0d; + border-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .button.is-danger.is-outlined.is-loading::after { + border-color: transparent transparent #9e1b0d #9e1b0d !important; } + html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-danger.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-outlined { + background-color: transparent; + border-color: #9e1b0d; + box-shadow: none; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #9e1b0d #9e1b0d !important; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .button.is-normal { + font-size: 15px; } + html.theme--documenter-dark .button.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .button.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .button[disabled], fieldset[disabled] html.theme--documenter-dark .button { + background-color: #8c9b9d; + border-color: #dbdee0; + box-shadow: none; + opacity: 0.5; } + html.theme--documenter-dark .button.is-fullwidth { + display: flex; + width: 100%; } + html.theme--documenter-dark .button.is-loading { + color: transparent !important; + pointer-events: none; } + html.theme--documenter-dark .button.is-loading::after { + position: absolute; + left: calc(50% - (1em / 2)); + top: calc(50% - (1em / 2)); + position: absolute !important; } + html.theme--documenter-dark .button.is-static { + background-color: #282f2f; + border-color: #5e6d6f; + color: #dbdee0; + box-shadow: none; + pointer-events: none; } + html.theme--documenter-dark .button.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .buttons { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .buttons .button { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .buttons .button:not(:last-child):not(.is-fullwidth) { + margin-right: 0.5rem; } + html.theme--documenter-dark .buttons:last-child { + margin-bottom: -0.5rem; } + html.theme--documenter-dark .buttons:not(:last-child) { + margin-bottom: 1rem; } + html.theme--documenter-dark .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) { + font-size: 1.25rem; } + html.theme--documenter-dark .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) { + font-size: 1.5rem; } + html.theme--documenter-dark .buttons.has-addons .button:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .buttons.has-addons .button:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + margin-right: -1px; } + html.theme--documenter-dark .buttons.has-addons .button:last-child { + margin-right: 0; } + html.theme--documenter-dark .buttons.has-addons .button:hover, html.theme--documenter-dark .buttons.has-addons .button.is-hovered { + z-index: 2; } + html.theme--documenter-dark .buttons.has-addons .button:focus, html.theme--documenter-dark .buttons.has-addons .button.is-focused, html.theme--documenter-dark .buttons.has-addons .button:active, html.theme--documenter-dark .buttons.has-addons .button.is-active, html.theme--documenter-dark .buttons.has-addons .button.is-selected { + z-index: 3; } + html.theme--documenter-dark .buttons.has-addons .button:focus:hover, html.theme--documenter-dark .buttons.has-addons .button.is-focused:hover, html.theme--documenter-dark .buttons.has-addons .button:active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-selected:hover { + z-index: 4; } + html.theme--documenter-dark .buttons.has-addons .button.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .buttons.is-centered { + justify-content: center; } + html.theme--documenter-dark .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + html.theme--documenter-dark .buttons.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + html.theme--documenter-dark .container { + flex-grow: 1; + margin: 0 auto; + position: relative; + width: auto; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .container { + max-width: 992px; } + html.theme--documenter-dark .container.is-fluid { + margin-left: 32px; + margin-right: 32px; + max-width: none; } } + @media screen and (max-width: 1215px) { + html.theme--documenter-dark .container.is-widescreen { + max-width: 1152px; } } + @media screen and (max-width: 1407px) { + html.theme--documenter-dark .container.is-fullhd { + max-width: 1344px; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .container { + max-width: 1152px; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .container { + max-width: 1344px; } } + html.theme--documenter-dark .content li + li { + margin-top: 0.25em; } + html.theme--documenter-dark .content p:not(:last-child), + html.theme--documenter-dark .content dl:not(:last-child), + html.theme--documenter-dark .content ol:not(:last-child), + html.theme--documenter-dark .content ul:not(:last-child), + html.theme--documenter-dark .content blockquote:not(:last-child), + html.theme--documenter-dark .content pre:not(:last-child), + html.theme--documenter-dark .content table:not(:last-child) { + margin-bottom: 1em; } + html.theme--documenter-dark .content h1, + html.theme--documenter-dark .content h2, + html.theme--documenter-dark .content h3, + html.theme--documenter-dark .content h4, + html.theme--documenter-dark .content h5, + html.theme--documenter-dark .content h6 { + color: #f2f2f2; + font-weight: 600; + line-height: 1.125; } + html.theme--documenter-dark .content h1 { + font-size: 2em; + margin-bottom: 0.5em; } + html.theme--documenter-dark .content h1:not(:first-child) { + margin-top: 1em; } + html.theme--documenter-dark .content h2 { + font-size: 1.75em; + margin-bottom: 0.5714em; } + html.theme--documenter-dark .content h2:not(:first-child) { + margin-top: 1.1428em; } + html.theme--documenter-dark .content h3 { + font-size: 1.5em; + margin-bottom: 0.6666em; } + html.theme--documenter-dark .content h3:not(:first-child) { + margin-top: 1.3333em; } + html.theme--documenter-dark .content h4 { + font-size: 1.25em; + margin-bottom: 0.8em; } + html.theme--documenter-dark .content h5 { + font-size: 1.125em; + margin-bottom: 0.8888em; } + html.theme--documenter-dark .content h6 { + font-size: 1em; + margin-bottom: 1em; } + html.theme--documenter-dark .content blockquote { + background-color: #282f2f; + border-left: 5px solid #5e6d6f; + padding: 1.25em 1.5em; } + html.theme--documenter-dark .content ol { + list-style-position: outside; + margin-left: 2em; + margin-top: 1em; } + html.theme--documenter-dark .content ol:not([type]) { + list-style-type: decimal; } + html.theme--documenter-dark .content ol.is-lower-alpha:not([type]) { + list-style-type: lower-alpha; } + html.theme--documenter-dark .content ol.is-lower-roman:not([type]) { + list-style-type: lower-roman; } + html.theme--documenter-dark .content ol.is-upper-alpha:not([type]) { + list-style-type: upper-alpha; } + html.theme--documenter-dark .content ol.is-upper-roman:not([type]) { + list-style-type: upper-roman; } + html.theme--documenter-dark .content ul { + list-style: disc outside; + margin-left: 2em; + margin-top: 1em; } + html.theme--documenter-dark .content ul ul { + list-style-type: circle; + margin-top: 0.5em; } + html.theme--documenter-dark .content ul ul ul { + list-style-type: square; } + html.theme--documenter-dark .content dd { + margin-left: 2em; } + html.theme--documenter-dark .content figure { + margin-left: 2em; + margin-right: 2em; + text-align: center; } + html.theme--documenter-dark .content figure:not(:first-child) { + margin-top: 2em; } + html.theme--documenter-dark .content figure:not(:last-child) { + margin-bottom: 2em; } + html.theme--documenter-dark .content figure img { + display: inline-block; } + html.theme--documenter-dark .content figure figcaption { + font-style: italic; } + html.theme--documenter-dark .content pre { + -webkit-overflow-scrolling: touch; + overflow-x: auto; + padding: 0; + white-space: pre; + word-wrap: normal; } + html.theme--documenter-dark .content sup, + html.theme--documenter-dark .content sub { + font-size: 75%; } + html.theme--documenter-dark .content table { + width: 100%; } + html.theme--documenter-dark .content table td, + html.theme--documenter-dark .content table th { + border: 1px solid #5e6d6f; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + html.theme--documenter-dark .content table th { + color: #f2f2f2; } + html.theme--documenter-dark .content table th:not([align]) { + text-align: left; } + html.theme--documenter-dark .content table thead td, + html.theme--documenter-dark .content table thead th { + border-width: 0 0 2px; + color: #f2f2f2; } + html.theme--documenter-dark .content table tfoot td, + html.theme--documenter-dark .content table tfoot th { + border-width: 2px 0 0; + color: #f2f2f2; } + html.theme--documenter-dark .content table tbody tr:last-child td, + html.theme--documenter-dark .content table tbody tr:last-child th { + border-bottom-width: 0; } + html.theme--documenter-dark .content .tabs li + li { + margin-top: 0; } + html.theme--documenter-dark .content.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.content { + font-size: 0.85em; } + html.theme--documenter-dark .content.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .content.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .icon { + align-items: center; + display: inline-flex; + justify-content: center; + height: 1.5rem; + width: 1.5rem; } + html.theme--documenter-dark .icon.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.icon { + height: 1rem; + width: 1rem; } + html.theme--documenter-dark .icon.is-medium { + height: 2rem; + width: 2rem; } + html.theme--documenter-dark .icon.is-large { + height: 3rem; + width: 3rem; } + html.theme--documenter-dark .image, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img { + display: block; + position: relative; } + html.theme--documenter-dark .image img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img { + display: block; + height: auto; + width: 100%; } + html.theme--documenter-dark .image img.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img.is-rounded { + border-radius: 290486px; } + html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img, + html.theme--documenter-dark .image.is-square .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img, + html.theme--documenter-dark .image.is-1by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img, + html.theme--documenter-dark .image.is-5by4 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img, + html.theme--documenter-dark .image.is-4by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img, + html.theme--documenter-dark .image.is-3by2 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img, + html.theme--documenter-dark .image.is-5by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img, + html.theme--documenter-dark .image.is-16by9 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img, + html.theme--documenter-dark .image.is-2by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img, + html.theme--documenter-dark .image.is-3by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img, + html.theme--documenter-dark .image.is-4by5 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img, + html.theme--documenter-dark .image.is-3by4 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img, + html.theme--documenter-dark .image.is-2by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img, + html.theme--documenter-dark .image.is-3by5 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img, + html.theme--documenter-dark .image.is-9by16 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img, + html.theme--documenter-dark .image.is-1by2 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img, + html.theme--documenter-dark .image.is-1by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio { + height: 100%; + width: 100%; } + html.theme--documenter-dark .image.is-square, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square, html.theme--documenter-dark .image.is-1by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 { + padding-top: 100%; } + html.theme--documenter-dark .image.is-5by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 { + padding-top: 80%; } + html.theme--documenter-dark .image.is-4by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 { + padding-top: 75%; } + html.theme--documenter-dark .image.is-3by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 { + padding-top: 66.6666%; } + html.theme--documenter-dark .image.is-5by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 { + padding-top: 60%; } + html.theme--documenter-dark .image.is-16by9, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 { + padding-top: 56.25%; } + html.theme--documenter-dark .image.is-2by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 { + padding-top: 50%; } + html.theme--documenter-dark .image.is-3by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 { + padding-top: 33.3333%; } + html.theme--documenter-dark .image.is-4by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 { + padding-top: 125%; } + html.theme--documenter-dark .image.is-3by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 { + padding-top: 133.3333%; } + html.theme--documenter-dark .image.is-2by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 { + padding-top: 150%; } + html.theme--documenter-dark .image.is-3by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 { + padding-top: 166.6666%; } + html.theme--documenter-dark .image.is-9by16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 { + padding-top: 177.7777%; } + html.theme--documenter-dark .image.is-1by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 { + padding-top: 200%; } + html.theme--documenter-dark .image.is-1by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 { + padding-top: 300%; } + html.theme--documenter-dark .image.is-16x16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16x16 { + height: 16px; + width: 16px; } + html.theme--documenter-dark .image.is-24x24, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-24x24 { + height: 24px; + width: 24px; } + html.theme--documenter-dark .image.is-32x32, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-32x32 { + height: 32px; + width: 32px; } + html.theme--documenter-dark .image.is-48x48, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-48x48 { + height: 48px; + width: 48px; } + html.theme--documenter-dark .image.is-64x64, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-64x64 { + height: 64px; + width: 64px; } + html.theme--documenter-dark .image.is-96x96, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-96x96 { + height: 96px; + width: 96px; } + html.theme--documenter-dark .image.is-128x128, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-128x128 { + height: 128px; + width: 128px; } + html.theme--documenter-dark .notification { + background-color: #282f2f; + border-radius: 0.4em; + padding: 1.25rem 2.5rem 1.25rem 1.5rem; + position: relative; } + html.theme--documenter-dark .notification a:not(.button):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + html.theme--documenter-dark .notification strong { + color: currentColor; } + html.theme--documenter-dark .notification code, + html.theme--documenter-dark .notification pre { + background: white; } + html.theme--documenter-dark .notification pre code { + background: transparent; } + html.theme--documenter-dark .notification > .delete { + position: absolute; + right: 0.5rem; + top: 0.5rem; } + html.theme--documenter-dark .notification .title, + html.theme--documenter-dark .notification .subtitle, + html.theme--documenter-dark .notification .content { + color: currentColor; } + html.theme--documenter-dark .notification.is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .notification.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .notification.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .notification.is-dark, html.theme--documenter-dark .content kbd.notification { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .notification.is-primary, html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .notification.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .notification.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .notification.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .notification.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .notification.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .progress { + -moz-appearance: none; + -webkit-appearance: none; + border: none; + border-radius: 290486px; + display: block; + height: 15px; + overflow: hidden; + padding: 0; + width: 100%; } + html.theme--documenter-dark .progress::-webkit-progress-bar { + background-color: #5e6d6f; } + html.theme--documenter-dark .progress::-webkit-progress-value { + background-color: #dbdee0; } + html.theme--documenter-dark .progress::-moz-progress-bar { + background-color: #dbdee0; } + html.theme--documenter-dark .progress::-ms-fill { + background-color: #dbdee0; + border: none; } + html.theme--documenter-dark .progress.is-white::-webkit-progress-value { + background-color: white; } + html.theme--documenter-dark .progress.is-white::-moz-progress-bar { + background-color: white; } + html.theme--documenter-dark .progress.is-white::-ms-fill { + background-color: white; } + html.theme--documenter-dark .progress.is-white:indeterminate { + background-image: linear-gradient(to right, white 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-black::-webkit-progress-value { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black::-moz-progress-bar { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black::-ms-fill { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black:indeterminate { + background-image: linear-gradient(to right, #0a0a0a 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-light::-webkit-progress-value { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light::-moz-progress-bar { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light::-ms-fill { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light:indeterminate { + background-image: linear-gradient(to right, #ecf0f1 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-dark::-webkit-progress-value, html.theme--documenter-dark .content kbd.progress::-webkit-progress-value { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark::-moz-progress-bar, html.theme--documenter-dark .content kbd.progress::-moz-progress-bar { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark::-ms-fill, html.theme--documenter-dark .content kbd.progress::-ms-fill { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark:indeterminate, html.theme--documenter-dark .content kbd.progress:indeterminate { + background-image: linear-gradient(to right, #282f2f 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-primary::-webkit-progress-value, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary::-moz-progress-bar, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary::-ms-fill, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-ms-fill { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary:indeterminate, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink:indeterminate { + background-image: linear-gradient(to right, #375a7f 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-link::-webkit-progress-value { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link::-moz-progress-bar { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link::-ms-fill { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link:indeterminate { + background-image: linear-gradient(to right, #1abc9c 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-info::-webkit-progress-value { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info::-moz-progress-bar { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info::-ms-fill { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info:indeterminate { + background-image: linear-gradient(to right, #024c7d 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-success::-webkit-progress-value { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success::-moz-progress-bar { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success::-ms-fill { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success:indeterminate { + background-image: linear-gradient(to right, #008438 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-warning::-webkit-progress-value { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning::-moz-progress-bar { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning::-ms-fill { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning:indeterminate { + background-image: linear-gradient(to right, #ad8100 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-danger::-webkit-progress-value { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger::-moz-progress-bar { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger::-ms-fill { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger:indeterminate { + background-image: linear-gradient(to right, #9e1b0d 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress:indeterminate { + animation-duration: 1.5s; + animation-iteration-count: infinite; + animation-name: moveIndeterminate; + animation-timing-function: linear; + background-color: #5e6d6f; + background-image: linear-gradient(to right, #fff 30%, #5e6d6f 30%); + background-position: top left; + background-repeat: no-repeat; + background-size: 150% 150%; } + html.theme--documenter-dark .progress:indeterminate::-webkit-progress-bar { + background-color: transparent; } + html.theme--documenter-dark .progress:indeterminate::-moz-progress-bar { + background-color: transparent; } + html.theme--documenter-dark .progress.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.progress { + height: 0.85em; } + html.theme--documenter-dark .progress.is-medium { + height: 1.25rem; } + html.theme--documenter-dark .progress.is-large { + height: 1.5rem; } + +@keyframes moveIndeterminate { + from { + background-position: 200% 0; } + to { + background-position: -200% 0; } } + html.theme--documenter-dark .table { + background-color: #343c3d; + color: #fff; } + html.theme--documenter-dark .table td, + html.theme--documenter-dark .table th { + border: 1px solid #5e6d6f; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + html.theme--documenter-dark .table td.is-white, + html.theme--documenter-dark .table th.is-white { + background-color: white; + border-color: white; + 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: white; } + html.theme--documenter-dark .table td.is-light, + html.theme--documenter-dark .table th.is-light { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .table td.is-dark, + html.theme--documenter-dark .table th.is-dark { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .table td.is-primary, + html.theme--documenter-dark .table th.is-primary { + background-color: #375a7f; + border-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table td.is-link, + html.theme--documenter-dark .table th.is-link { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .table td.is-info, + html.theme--documenter-dark .table th.is-info { + background-color: #024c7d; + border-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .table td.is-success, + html.theme--documenter-dark .table th.is-success { + background-color: #008438; + border-color: #008438; + color: #fff; } + html.theme--documenter-dark .table td.is-warning, + html.theme--documenter-dark .table th.is-warning { + background-color: #ad8100; + border-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .table td.is-danger, + html.theme--documenter-dark .table th.is-danger { + background-color: #9e1b0d; + border-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .table td.is-narrow, + html.theme--documenter-dark .table th.is-narrow { + white-space: nowrap; + width: 1%; } + html.theme--documenter-dark .table td.is-selected, + html.theme--documenter-dark .table th.is-selected { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table td.is-selected a, + html.theme--documenter-dark .table td.is-selected strong, + html.theme--documenter-dark .table th.is-selected a, + html.theme--documenter-dark .table th.is-selected strong { + color: currentColor; } + html.theme--documenter-dark .table th { + color: #f2f2f2; } + html.theme--documenter-dark .table th:not([align]) { + text-align: left; } + html.theme--documenter-dark .table tr.is-selected { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table tr.is-selected a, + html.theme--documenter-dark .table tr.is-selected strong { + color: currentColor; } + html.theme--documenter-dark .table tr.is-selected td, + html.theme--documenter-dark .table tr.is-selected th { + border-color: #fff; + color: currentColor; } + html.theme--documenter-dark .table thead { + background-color: transparent; } + 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: transparent; } + 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: transparent; } + html.theme--documenter-dark .table tbody tr:last-child td, + html.theme--documenter-dark .table tbody tr:last-child th { + border-bottom-width: 0; } + html.theme--documenter-dark .table.is-bordered td, + html.theme--documenter-dark .table.is-bordered th { + border-width: 1px; } + html.theme--documenter-dark .table.is-bordered tr:last-child td, + html.theme--documenter-dark .table.is-bordered tr:last-child th { + border-bottom-width: 1px; } + html.theme--documenter-dark .table.is-fullwidth { + width: 100%; } + html.theme--documenter-dark .table.is-hoverable tbody tr:not(.is-selected):hover { + background-color: #282f2f; } + html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover { + background-color: #282f2f; } + html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) { + background-color: #2d3435; } + html.theme--documenter-dark .table.is-narrow td, + html.theme--documenter-dark .table.is-narrow th { + padding: 0.25em 0.5em; } + html.theme--documenter-dark .table.is-striped tbody tr:not(.is-selected):nth-child(even) { + background-color: #282f2f; } + html.theme--documenter-dark .table-container { + -webkit-overflow-scrolling: touch; + overflow: auto; + overflow-y: hidden; + max-width: 100%; } + html.theme--documenter-dark .tags { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .tags .tag, html.theme--documenter-dark .tags .content kbd, html.theme--documenter-dark .content .tags kbd, html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .tags .tag:not(:last-child), html.theme--documenter-dark .tags .content kbd:not(:last-child), html.theme--documenter-dark .content .tags kbd:not(:last-child), html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0.5rem; } + html.theme--documenter-dark .tags:last-child { + margin-bottom: -0.5rem; } + html.theme--documenter-dark .tags:not(:last-child) { + margin-bottom: 1rem; } + html.theme--documenter-dark .tags.are-medium .tag:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .content kbd:not(.is-normal):not(.is-large), html.theme--documenter-dark .content .tags.are-medium kbd:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large) { + font-size: 15px; } + html.theme--documenter-dark .tags.are-large .tag:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .content kbd:not(.is-normal):not(.is-medium), html.theme--documenter-dark .content .tags.are-large kbd:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium) { + font-size: 1.25rem; } + html.theme--documenter-dark .tags.is-centered { + justify-content: center; } + html.theme--documenter-dark .tags.is-centered .tag, html.theme--documenter-dark .tags.is-centered .content kbd, html.theme--documenter-dark .content .tags.is-centered kbd, html.theme--documenter-dark .tags.is-centered .docstring > section > a.docs-sourcelink { + margin-right: 0.25rem; + margin-left: 0.25rem; } + html.theme--documenter-dark .tags.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .tags.is-right .tag:not(:first-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:first-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0.5rem; } + html.theme--documenter-dark .tags.is-right .tag:not(:last-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:last-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0; } + html.theme--documenter-dark .tags.has-addons .tag, html.theme--documenter-dark .tags.has-addons .content kbd, html.theme--documenter-dark .content .tags.has-addons kbd, html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink { + margin-right: 0; } + html.theme--documenter-dark .tags.has-addons .tag:not(:first-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:first-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0; + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .tags.has-addons .tag:not(:last-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:last-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .tag:not(body), html.theme--documenter-dark .content kbd:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) { + align-items: center; + background-color: #282f2f; + border-radius: 0.4em; + color: #fff; + display: inline-flex; + font-size: 0.85em; + height: 2em; + justify-content: center; + line-height: 1.5; + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + html.theme--documenter-dark .tag:not(body) .delete, html.theme--documenter-dark .content kbd:not(body) .delete, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .delete { + margin-left: 0.25rem; + margin-right: -0.375rem; } + html.theme--documenter-dark .tag.is-white:not(body), html.theme--documenter-dark .content kbd.is-white:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-white:not(body) { + background-color: white; + 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: white; } + html.theme--documenter-dark .tag.is-light:not(body), html.theme--documenter-dark .content kbd.is-light:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-light:not(body) { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .tag.is-dark:not(body), html.theme--documenter-dark .content kbd:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-dark:not(body), html.theme--documenter-dark .content .docstring > section > kbd:not(body) { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .tag.is-primary:not(body), html.theme--documenter-dark .content kbd.is-primary:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .tag.is-link:not(body), html.theme--documenter-dark .content kbd.is-link:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-link:not(body) { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .tag.is-info:not(body), html.theme--documenter-dark .content kbd.is-info:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-info:not(body) { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .tag.is-success:not(body), html.theme--documenter-dark .content kbd.is-success:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-success:not(body) { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .tag.is-warning:not(body), html.theme--documenter-dark .content kbd.is-warning:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-warning:not(body) { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .tag.is-danger:not(body), html.theme--documenter-dark .content kbd.is-danger:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-danger:not(body) { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .tag.is-normal:not(body), html.theme--documenter-dark .content kbd.is-normal:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-normal:not(body) { + font-size: 0.85em; } + html.theme--documenter-dark .tag.is-medium:not(body), html.theme--documenter-dark .content kbd.is-medium:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-medium:not(body) { + font-size: 15px; } + html.theme--documenter-dark .tag.is-large:not(body), html.theme--documenter-dark .content kbd.is-large:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-large:not(body) { + font-size: 1.25rem; } + html.theme--documenter-dark .tag:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .content kbd:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child) { + margin-left: -0.375em; + margin-right: 0.1875em; } + html.theme--documenter-dark .tag:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .content kbd:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: -0.375em; } + html.theme--documenter-dark .tag:not(body) .icon:first-child:last-child, html.theme--documenter-dark .content kbd:not(body) .icon:first-child:last-child, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child { + margin-left: -0.375em; + margin-right: -0.375em; } + html.theme--documenter-dark .tag.is-delete:not(body), html.theme--documenter-dark .content kbd.is-delete:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body) { + margin-left: 1px; + padding: 0; + position: relative; + width: 2em; } + html.theme--documenter-dark .tag.is-delete:not(body)::before, html.theme--documenter-dark .content kbd.is-delete:not(body)::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::before, html.theme--documenter-dark .tag.is-delete:not(body)::after, html.theme--documenter-dark .content kbd.is-delete:not(body)::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + background-color: currentColor; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + html.theme--documenter-dark .tag.is-delete:not(body)::before, html.theme--documenter-dark .content kbd.is-delete:not(body)::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::before { + height: 1px; + width: 50%; } + html.theme--documenter-dark .tag.is-delete:not(body)::after, html.theme--documenter-dark .content kbd.is-delete:not(body)::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + height: 50%; + width: 1px; } + html.theme--documenter-dark .tag.is-delete:not(body):hover, html.theme--documenter-dark .content kbd.is-delete:not(body):hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):hover, html.theme--documenter-dark .tag.is-delete:not(body):focus, html.theme--documenter-dark .content kbd.is-delete:not(body):focus, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):focus { + background-color: #1d2122; } + html.theme--documenter-dark .tag.is-delete:not(body):active, html.theme--documenter-dark .content kbd.is-delete:not(body):active, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):active { + background-color: #111414; } + html.theme--documenter-dark .tag.is-rounded:not(body), html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:not(body), html.theme--documenter-dark .content kbd.is-rounded:not(body), html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-rounded:not(body) { + border-radius: 290486px; } + html.theme--documenter-dark a.tag:hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:hover { + text-decoration: underline; } + html.theme--documenter-dark .title, + html.theme--documenter-dark .subtitle { + word-break: break-word; } + html.theme--documenter-dark .title em, + html.theme--documenter-dark .title span, + html.theme--documenter-dark .subtitle em, + html.theme--documenter-dark .subtitle span { + font-weight: inherit; } + html.theme--documenter-dark .title sub, + html.theme--documenter-dark .subtitle sub { + font-size: 0.75em; } + html.theme--documenter-dark .title sup, + html.theme--documenter-dark .subtitle sup { + font-size: 0.75em; } + html.theme--documenter-dark .title .tag, html.theme--documenter-dark .title .content kbd, html.theme--documenter-dark .content .title kbd, html.theme--documenter-dark .title .docstring > section > a.docs-sourcelink, + html.theme--documenter-dark .subtitle .tag, + html.theme--documenter-dark .subtitle .content kbd, + html.theme--documenter-dark .content .subtitle kbd, + html.theme--documenter-dark .subtitle .docstring > section > a.docs-sourcelink { + vertical-align: middle; } + html.theme--documenter-dark .title { + color: #fff; + font-size: 2rem; + font-weight: 500; + line-height: 1.125; } + html.theme--documenter-dark .title strong { + color: inherit; + font-weight: inherit; } + html.theme--documenter-dark .title + .highlight { + margin-top: -0.75rem; } + html.theme--documenter-dark .title:not(.is-spaced) + .subtitle { + margin-top: -1.25rem; } + html.theme--documenter-dark .title.is-1 { + font-size: 3rem; } + html.theme--documenter-dark .title.is-2 { + font-size: 2.5rem; } + html.theme--documenter-dark .title.is-3 { + font-size: 2rem; } + html.theme--documenter-dark .title.is-4 { + font-size: 1.5rem; } + html.theme--documenter-dark .title.is-5 { + font-size: 1.25rem; } + html.theme--documenter-dark .title.is-6 { + font-size: 15px; } + html.theme--documenter-dark .title.is-7 { + font-size: 0.85em; } + html.theme--documenter-dark .subtitle { + color: #8c9b9d; + font-size: 1.25rem; + font-weight: 400; + line-height: 1.25; } + html.theme--documenter-dark .subtitle strong { + color: #8c9b9d; + font-weight: 600; } + html.theme--documenter-dark .subtitle:not(.is-spaced) + .title { + margin-top: -1.25rem; } + html.theme--documenter-dark .subtitle.is-1 { + font-size: 3rem; } + html.theme--documenter-dark .subtitle.is-2 { + font-size: 2.5rem; } + html.theme--documenter-dark .subtitle.is-3 { + font-size: 2rem; } + html.theme--documenter-dark .subtitle.is-4 { + font-size: 1.5rem; } + html.theme--documenter-dark .subtitle.is-5 { + font-size: 1.25rem; } + html.theme--documenter-dark .subtitle.is-6 { + font-size: 15px; } + html.theme--documenter-dark .subtitle.is-7 { + font-size: 0.85em; } + html.theme--documenter-dark .heading { + display: block; + font-size: 11px; + letter-spacing: 1px; + margin-bottom: 5px; + text-transform: uppercase; } + html.theme--documenter-dark .highlight { + font-weight: 400; + max-width: 100%; + overflow: hidden; + padding: 0; } + html.theme--documenter-dark .highlight pre { + overflow: auto; + max-width: 100%; } + html.theme--documenter-dark .number { + align-items: center; + background-color: #282f2f; + border-radius: 290486px; + display: inline-flex; + font-size: 1.25rem; + height: 2em; + justify-content: center; + margin-right: 1.5rem; + min-width: 2.5em; + padding: 0.25rem 0.5rem; + text-align: center; + vertical-align: top; } + html.theme--documenter-dark .select select, html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + background-color: #1f2424; + border-color: #5e6d6f; + border-radius: 0.4em; + color: #dbdee0; } + html.theme--documenter-dark .select select::-moz-placeholder, html.theme--documenter-dark .textarea::-moz-placeholder, html.theme--documenter-dark .input::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select::-webkit-input-placeholder, html.theme--documenter-dark .textarea::-webkit-input-placeholder, html.theme--documenter-dark .input::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select:-moz-placeholder, html.theme--documenter-dark .textarea:-moz-placeholder, html.theme--documenter-dark .input:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select:-ms-input-placeholder, html.theme--documenter-dark .textarea:-ms-input-placeholder, html.theme--documenter-dark .input:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select:hover, html.theme--documenter-dark .textarea:hover, html.theme--documenter-dark .input:hover, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:hover, html.theme--documenter-dark .select select.is-hovered, html.theme--documenter-dark .is-hovered.textarea, html.theme--documenter-dark .is-hovered.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-hovered { + border-color: #8c9b9d; } + html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .select select.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + border-color: #1abc9c; + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .select select[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], fieldset[disabled] html.theme--documenter-dark .select select, fieldset[disabled] html.theme--documenter-dark .textarea, fieldset[disabled] html.theme--documenter-dark .input, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + background-color: #8c9b9d; + border-color: #282f2f; + box-shadow: none; + color: white; } + html.theme--documenter-dark .select select[disabled]::-moz-placeholder, html.theme--documenter-dark .textarea[disabled]::-moz-placeholder, html.theme--documenter-dark .input[disabled]::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .select select::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .input::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .select select[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .textarea[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .input[disabled]::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .select select::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .input::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .select select[disabled]:-moz-placeholder, html.theme--documenter-dark .textarea[disabled]:-moz-placeholder, html.theme--documenter-dark .input[disabled]:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .select select:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .input:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .select select[disabled]:-ms-input-placeholder, html.theme--documenter-dark .textarea[disabled]:-ms-input-placeholder, html.theme--documenter-dark .input[disabled]:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .select select:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .input:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1); + max-width: 100%; + width: 100%; } + html.theme--documenter-dark .textarea[readonly], html.theme--documenter-dark .input[readonly], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[readonly] { + box-shadow: none; } + html.theme--documenter-dark .is-white.textarea, html.theme--documenter-dark .is-white.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white { + border-color: white; } + 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: 0.85em; } + html.theme--documenter-dark .is-medium.textarea, html.theme--documenter-dark .is-medium.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .is-large.textarea, html.theme--documenter-dark .is-large.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .is-fullwidth.textarea, html.theme--documenter-dark .is-fullwidth.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-fullwidth { + display: block; + width: 100%; } + html.theme--documenter-dark .is-inline.textarea, html.theme--documenter-dark .is-inline.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-inline { + display: inline; + width: auto; } + html.theme--documenter-dark .input.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .input.is-static, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-static { + background-color: transparent; + border-color: transparent; + box-shadow: none; + padding-left: 0; + padding-right: 0; } + html.theme--documenter-dark .textarea { + display: block; + max-width: 100%; + min-width: 100%; + padding: 0.625em; + resize: vertical; } + html.theme--documenter-dark .textarea:not([rows]) { + max-height: 600px; + min-height: 120px; } + html.theme--documenter-dark .textarea[rows] { + height: initial; } + html.theme--documenter-dark .textarea.has-fixed-size { + resize: none; } + html.theme--documenter-dark .radio, html.theme--documenter-dark .checkbox { + cursor: pointer; + display: inline-block; + line-height: 1.25; + position: relative; } + html.theme--documenter-dark .radio input, html.theme--documenter-dark .checkbox input { + cursor: pointer; } + html.theme--documenter-dark .radio:hover, html.theme--documenter-dark .checkbox:hover { + color: #8c9b9d; } + html.theme--documenter-dark .radio[disabled], html.theme--documenter-dark .checkbox[disabled], fieldset[disabled] html.theme--documenter-dark .radio, fieldset[disabled] html.theme--documenter-dark .checkbox { + color: white; + cursor: not-allowed; } + html.theme--documenter-dark .radio + .radio { + margin-left: 0.5em; } + html.theme--documenter-dark .select { + display: inline-block; + max-width: 100%; + position: relative; + vertical-align: top; } + html.theme--documenter-dark .select:not(.is-multiple) { + height: 2.25em; } + html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after { + border-color: #1abc9c; + right: 1.125em; + z-index: 4; } + html.theme--documenter-dark .select.is-rounded select, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select select { + border-radius: 290486px; + padding-left: 1em; } + html.theme--documenter-dark .select select { + cursor: pointer; + display: block; + font-size: 1em; + max-width: 100%; + outline: none; } + html.theme--documenter-dark .select select::-ms-expand { + display: none; } + html.theme--documenter-dark .select select[disabled]:hover, fieldset[disabled] html.theme--documenter-dark .select select:hover { + border-color: #282f2f; } + html.theme--documenter-dark .select select:not([multiple]) { + padding-right: 2.5em; } + html.theme--documenter-dark .select select[multiple] { + height: auto; + padding: 0; } + html.theme--documenter-dark .select select[multiple] option { + padding: 0.5em 1em; } + html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading):hover::after { + border-color: #8c9b9d; } + html.theme--documenter-dark .select.is-white:not(:hover)::after { + border-color: white; } + html.theme--documenter-dark .select.is-white select { + border-color: white; } + 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: black; } + 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: 0.85em; } + html.theme--documenter-dark .select.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .select.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .select.is-disabled::after { + border-color: white; } + html.theme--documenter-dark .select.is-fullwidth { + width: 100%; } + html.theme--documenter-dark .select.is-fullwidth select { + width: 100%; } + html.theme--documenter-dark .select.is-loading::after { + margin-top: 0; + position: absolute; + right: 0.625em; + top: 0.625em; + transform: none; } + html.theme--documenter-dark .select.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.85em; } + html.theme--documenter-dark .select.is-loading.is-medium:after { + font-size: 1.25rem; } + html.theme--documenter-dark .select.is-loading.is-large:after { + font-size: 1.5rem; } + html.theme--documenter-dark .file { + align-items: stretch; + display: flex; + justify-content: flex-start; + position: relative; } + html.theme--documenter-dark .file.is-white .file-cta { + background-color: white; + 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: white; } + 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: white; } + 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: white; } + html.theme--documenter-dark .file.is-black:active .file-cta, html.theme--documenter-dark .file.is-black.is-active .file-cta { + background-color: black; + border-color: transparent; + color: white; } + html.theme--documenter-dark .file.is-light .file-cta { + background-color: #ecf0f1; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-light:hover .file-cta, html.theme--documenter-dark .file.is-light.is-hovered .file-cta { + background-color: #e5eaec; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-light:focus .file-cta, html.theme--documenter-dark .file.is-light.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(236, 240, 241, 0.25); + color: #282f2f; } + html.theme--documenter-dark .file.is-light:active .file-cta, html.theme--documenter-dark .file.is-light.is-active .file-cta { + background-color: #dde4e6; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-dark .file-cta, html.theme--documenter-dark .content kbd.file .file-cta { + background-color: #282f2f; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:hover .file-cta, html.theme--documenter-dark .content kbd.file:hover .file-cta, html.theme--documenter-dark .file.is-dark.is-hovered .file-cta, html.theme--documenter-dark .content kbd.file.is-hovered .file-cta { + background-color: #232829; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:focus .file-cta, html.theme--documenter-dark .content kbd.file:focus .file-cta, html.theme--documenter-dark .file.is-dark.is-focused .file-cta, html.theme--documenter-dark .content kbd.file.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(40, 47, 47, 0.25); + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:active .file-cta, html.theme--documenter-dark .content kbd.file:active .file-cta, html.theme--documenter-dark .file.is-dark.is-active .file-cta, html.theme--documenter-dark .content kbd.file.is-active .file-cta { + background-color: #1d2122; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-primary .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink .file-cta { + background-color: #375a7f; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-primary:hover .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:hover .file-cta, html.theme--documenter-dark .file.is-primary.is-hovered .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-hovered.docs-sourcelink .file-cta { + background-color: #335476; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-primary:focus .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:focus .file-cta, html.theme--documenter-dark .file.is-primary.is-focused .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-focused.docs-sourcelink .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(55, 90, 127, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-primary:active .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:active .file-cta, html.theme--documenter-dark .file.is-primary.is-active .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-active.docs-sourcelink .file-cta { + background-color: #2f4d6d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link .file-cta { + background-color: #1abc9c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link:hover .file-cta, html.theme--documenter-dark .file.is-link.is-hovered .file-cta { + background-color: #18b193; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link:focus .file-cta, html.theme--documenter-dark .file.is-link.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(26, 188, 156, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-link:active .file-cta, html.theme--documenter-dark .file.is-link.is-active .file-cta { + background-color: #17a689; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info .file-cta { + background-color: #024c7d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info:hover .file-cta, html.theme--documenter-dark .file.is-info.is-hovered .file-cta { + background-color: #024470; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info:focus .file-cta, html.theme--documenter-dark .file.is-info.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(2, 76, 125, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-info:active .file-cta, html.theme--documenter-dark .file.is-info.is-active .file-cta { + background-color: #023d64; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success .file-cta { + background-color: #008438; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success:hover .file-cta, html.theme--documenter-dark .file.is-success.is-hovered .file-cta { + background-color: #007733; + 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: 0.85em; } + html.theme--documenter-dark .file.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .file.is-medium .file-icon .fa { + font-size: 21px; } + html.theme--documenter-dark .file.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .file.is-large .file-icon .fa { + font-size: 28px; } + html.theme--documenter-dark .file.has-name .file-cta { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .file.has-name .file-name { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .file.has-name.is-empty .file-cta { + border-radius: 0.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: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .file.is-boxed.has-name .file-name { + border-radius: 0 0 0.4em 0.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 0.4em 0.4em 0; } + html.theme--documenter-dark .file.is-right .file-name { + border-radius: 0.4em 0 0 0.4em; + border-width: 1px 0 1px 1px; + order: -1; } + html.theme--documenter-dark .file-label { + align-items: stretch; + display: flex; + cursor: pointer; + justify-content: flex-start; + overflow: hidden; + position: relative; } + html.theme--documenter-dark .file-label:hover .file-cta { + background-color: #e5eaec; + color: #282f2f; } + html.theme--documenter-dark .file-label:hover .file-name { + border-color: #596668; } + html.theme--documenter-dark .file-label:active .file-cta { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .file-label:active .file-name { + border-color: #535f61; } + html.theme--documenter-dark .file-input { + height: 100%; + left: 0; + opacity: 0; + outline: none; + position: absolute; + top: 0; + width: 100%; } + html.theme--documenter-dark .file-cta, + html.theme--documenter-dark .file-name { + border-color: #5e6d6f; + border-radius: 0.4em; + font-size: 1em; + padding-left: 1em; + padding-right: 1em; + white-space: nowrap; } + html.theme--documenter-dark .file-cta { + background-color: #ecf0f1; + color: #343c3d; } + html.theme--documenter-dark .file-name { + border-color: #5e6d6f; + border-style: solid; + border-width: 1px 1px 1px 0; + display: block; + max-width: 16em; + overflow: hidden; + text-align: left; + text-overflow: ellipsis; } + html.theme--documenter-dark .file-icon { + align-items: center; + display: flex; + height: 1em; + justify-content: center; + margin-right: 0.5em; + width: 1em; } + html.theme--documenter-dark .file-icon .fa { + font-size: 14px; } + html.theme--documenter-dark .label { + color: #282f2f; + display: block; + font-size: 15px; + font-weight: 700; } + html.theme--documenter-dark .label:not(:last-child) { + margin-bottom: 0.5em; } + html.theme--documenter-dark .label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.label { + font-size: 0.85em; } + html.theme--documenter-dark .label.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .label.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .help { + display: block; + font-size: 0.85em; + margin-top: 0.25rem; } + html.theme--documenter-dark .help.is-white { + color: white; } + html.theme--documenter-dark .help.is-black { + color: #0a0a0a; } + html.theme--documenter-dark .help.is-light { + color: #ecf0f1; } + html.theme--documenter-dark .help.is-dark, html.theme--documenter-dark .content kbd.help { + color: #282f2f; } + html.theme--documenter-dark .help.is-primary, html.theme--documenter-dark .docstring > section > a.help.docs-sourcelink { + color: #375a7f; } + html.theme--documenter-dark .help.is-link { + color: #1abc9c; } + html.theme--documenter-dark .help.is-info { + color: #024c7d; } + html.theme--documenter-dark .help.is-success { + color: #008438; } + html.theme--documenter-dark .help.is-warning { + color: #ad8100; } + html.theme--documenter-dark .help.is-danger { + color: #9e1b0d; } + html.theme--documenter-dark .field:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .field.has-addons { + display: flex; + justify-content: flex-start; } + html.theme--documenter-dark .field.has-addons .control:not(:last-child) { + margin-right: -1px; } + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .button, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .input, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .select select { + border-radius: 0; } + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .button, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .input, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .select select { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .button, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .input, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .select select { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):hover, html.theme--documenter-dark .field.has-addons .control .button.is-hovered:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input.is-hovered:not([disabled]), + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-hovered:not([disabled]), + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-hovered:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select.is-hovered:not([disabled]) { + z-index: 2; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus, html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]), html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active, html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]), + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]), + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]), + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]), + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]) { + z-index: 3; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus:hover, html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]):hover, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active:hover, html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]):hover { + z-index: 4; } + html.theme--documenter-dark .field.has-addons .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .field.has-addons.has-addons-centered { + justify-content: center; } + html.theme--documenter-dark .field.has-addons.has-addons-right { + justify-content: flex-end; } + html.theme--documenter-dark .field.has-addons.has-addons-fullwidth .control { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .field.is-grouped { + display: flex; + justify-content: flex-start; } + html.theme--documenter-dark .field.is-grouped > .control { + flex-shrink: 0; } + html.theme--documenter-dark .field.is-grouped > .control:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + html.theme--documenter-dark .field.is-grouped > .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .field.is-grouped.is-grouped-centered { + justify-content: center; } + html.theme--documenter-dark .field.is-grouped.is-grouped-right { + justify-content: flex-end; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline { + flex-wrap: wrap; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:last-child, html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:not(:last-child) { + margin-bottom: 0; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field.is-horizontal { + display: flex; } } + html.theme--documenter-dark .field-label .label { + font-size: inherit; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .field-label { + margin-bottom: 0.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field-label { + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + margin-right: 1.5rem; + text-align: right; } + html.theme--documenter-dark .field-label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.field-label { + font-size: 0.85em; + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-normal { + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-medium { + font-size: 1.25rem; + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-large { + font-size: 1.5rem; + padding-top: 0.375em; } } + html.theme--documenter-dark .field-body .field .field { + margin-bottom: 0; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field-body { + display: flex; + flex-basis: 0; + flex-grow: 5; + flex-shrink: 1; } + html.theme--documenter-dark .field-body .field { + margin-bottom: 0; } + html.theme--documenter-dark .field-body > .field { + flex-shrink: 1; } + html.theme--documenter-dark .field-body > .field:not(.is-narrow) { + flex-grow: 1; } + html.theme--documenter-dark .field-body > .field:not(:last-child) { + margin-right: 0.75rem; } } + html.theme--documenter-dark .control { + box-sizing: border-box; + clear: both; + font-size: 15px; + position: relative; + text-align: left; } + html.theme--documenter-dark .control.has-icons-left .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select:focus ~ .icon { + color: #5e6d6f; } + html.theme--documenter-dark .control.has-icons-left .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-small ~ .icon { + font-size: 0.85em; } + html.theme--documenter-dark .control.has-icons-left .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-medium ~ .icon { + font-size: 1.25rem; } + html.theme--documenter-dark .control.has-icons-left .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-large ~ .icon { + font-size: 1.5rem; } + html.theme--documenter-dark .control.has-icons-left .icon, html.theme--documenter-dark .control.has-icons-right .icon { + color: #dbdee0; + height: 2.25em; + pointer-events: none; + position: absolute; + top: 0; + width: 2.25em; + z-index: 4; } + html.theme--documenter-dark .control.has-icons-left .input, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input, + html.theme--documenter-dark .control.has-icons-left .select select { + padding-left: 2.25em; } + html.theme--documenter-dark .control.has-icons-left .icon.is-left { + left: 0; } + html.theme--documenter-dark .control.has-icons-right .input, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input, + html.theme--documenter-dark .control.has-icons-right .select select { + padding-right: 2.25em; } + html.theme--documenter-dark .control.has-icons-right .icon.is-right { + right: 0; } + html.theme--documenter-dark .control.is-loading::after { + position: absolute !important; + right: 0.625em; + top: 0.625em; + z-index: 4; } + html.theme--documenter-dark .control.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.85em; } + html.theme--documenter-dark .control.is-loading.is-medium:after { + font-size: 1.25rem; } + html.theme--documenter-dark .control.is-loading.is-large:after { + font-size: 1.5rem; } + html.theme--documenter-dark .breadcrumb { + font-size: 15px; + white-space: nowrap; } + html.theme--documenter-dark .breadcrumb a { + align-items: center; + color: #1abc9c; + display: flex; + justify-content: center; + padding: 0 0.75em; } + html.theme--documenter-dark .breadcrumb a:hover { + color: #1dd2af; } + html.theme--documenter-dark .breadcrumb li { + align-items: center; + display: flex; } + html.theme--documenter-dark .breadcrumb li:first-child a { + padding-left: 0; } + html.theme--documenter-dark .breadcrumb li.is-active a { + color: #f2f2f2; + cursor: default; + pointer-events: none; } + html.theme--documenter-dark .breadcrumb li + li::before { + color: #8c9b9d; + content: "\0002f"; } + html.theme--documenter-dark .breadcrumb ul, + html.theme--documenter-dark .breadcrumb ol { + align-items: flex-start; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .breadcrumb .icon:first-child { + margin-right: 0.5em; } + html.theme--documenter-dark .breadcrumb .icon:last-child { + margin-left: 0.5em; } + html.theme--documenter-dark .breadcrumb.is-centered ol, + html.theme--documenter-dark .breadcrumb.is-centered ul { + justify-content: center; } + html.theme--documenter-dark .breadcrumb.is-right ol, + html.theme--documenter-dark .breadcrumb.is-right ul { + justify-content: flex-end; } + html.theme--documenter-dark .breadcrumb.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.breadcrumb { + font-size: 0.85em; } + html.theme--documenter-dark .breadcrumb.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .breadcrumb.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .breadcrumb.has-arrow-separator li + li::before { + content: "\02192"; } + html.theme--documenter-dark .breadcrumb.has-bullet-separator li + li::before { + content: "\02022"; } + html.theme--documenter-dark .breadcrumb.has-dot-separator li + li::before { + content: "\000b7"; } + html.theme--documenter-dark .breadcrumb.has-succeeds-separator li + li::before { + content: "\0227B"; } + html.theme--documenter-dark .card { + background-color: white; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #fff; + max-width: 100%; + position: relative; } + html.theme--documenter-dark .card-header { + background-color: transparent; + align-items: stretch; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + display: flex; } + html.theme--documenter-dark .card-header-title { + align-items: center; + color: #f2f2f2; + display: flex; + flex-grow: 1; + font-weight: 700; + padding: 0.75rem; } + html.theme--documenter-dark .card-header-title.is-centered { + justify-content: center; } + html.theme--documenter-dark .card-header-icon { + align-items: center; + cursor: pointer; + display: flex; + justify-content: center; + padding: 0.75rem; } + html.theme--documenter-dark .card-image { + display: block; + position: relative; } + html.theme--documenter-dark .card-content { + background-color: transparent; + padding: 1.5rem; } + html.theme--documenter-dark .card-footer { + background-color: transparent; + border-top: 1px solid #5e6d6f; + align-items: stretch; + display: flex; } + html.theme--documenter-dark .card-footer-item { + align-items: center; + display: flex; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + justify-content: center; + padding: 0.75rem; } + html.theme--documenter-dark .card-footer-item:not(:last-child) { + border-right: 1px solid #5e6d6f; } + html.theme--documenter-dark .card .media:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .dropdown { + display: inline-flex; + position: relative; + vertical-align: top; } + html.theme--documenter-dark .dropdown.is-active .dropdown-menu, html.theme--documenter-dark .dropdown.is-hoverable:hover .dropdown-menu { + display: block; } + html.theme--documenter-dark .dropdown.is-right .dropdown-menu { + left: auto; + right: 0; } + html.theme--documenter-dark .dropdown.is-up .dropdown-menu { + bottom: 100%; + padding-bottom: 4px; + padding-top: initial; + top: auto; } + html.theme--documenter-dark .dropdown-menu { + display: none; + left: 0; + min-width: 12rem; + padding-top: 4px; + position: absolute; + top: 100%; + z-index: 20; } + html.theme--documenter-dark .dropdown-content { + background-color: #282f2f; + border-radius: 0.4em; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + html.theme--documenter-dark .dropdown-item { + color: #fff; + display: block; + font-size: 0.875rem; + line-height: 1.5; + padding: 0.375rem 1rem; + position: relative; } + html.theme--documenter-dark a.dropdown-item, + html.theme--documenter-dark button.dropdown-item { + padding-right: 3rem; + text-align: left; + white-space: nowrap; + width: 100%; } + html.theme--documenter-dark a.dropdown-item:hover, + html.theme--documenter-dark button.dropdown-item:hover { + background-color: #282f2f; + color: #0a0a0a; } + html.theme--documenter-dark a.dropdown-item.is-active, + html.theme--documenter-dark button.dropdown-item.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .dropdown-divider { + background-color: #5e6d6f; + border: none; + display: block; + height: 1px; + margin: 0.5rem 0; } + html.theme--documenter-dark .level { + align-items: center; + justify-content: space-between; } + html.theme--documenter-dark .level code { + border-radius: 0.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: 0.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: 0.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: 0.75rem; } } + html.theme--documenter-dark .level-left { + align-items: center; + justify-content: flex-start; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .level-left + .level-right { + margin-top: 1.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-left { + display: flex; } } + html.theme--documenter-dark .level-right { + align-items: center; + justify-content: flex-end; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-right { + display: flex; } } + html.theme--documenter-dark .list { + background-color: white; + border-radius: 0.4em; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .list-item { + display: block; + padding: 0.5em 1em; } + html.theme--documenter-dark .list-item:not(a) { + color: #fff; } + html.theme--documenter-dark .list-item:first-child { + border-top-left-radius: 0.4em; + border-top-right-radius: 0.4em; } + html.theme--documenter-dark .list-item:last-child { + border-bottom-left-radius: 0.4em; + border-bottom-right-radius: 0.4em; } + html.theme--documenter-dark .list-item:not(:last-child) { + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .list-item.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark a.list-item { + background-color: #282f2f; + cursor: pointer; } + html.theme--documenter-dark .media { + align-items: flex-start; + display: flex; + text-align: left; } + html.theme--documenter-dark .media .content:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .media .media { + border-top: 1px solid rgba(94, 109, 111, 0.5); + display: flex; + padding-top: 0.75rem; } + html.theme--documenter-dark .media .media .content:not(:last-child), + html.theme--documenter-dark .media .media .control:not(:last-child) { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .media .media .media { + padding-top: 0.5rem; } + html.theme--documenter-dark .media .media .media + .media { + margin-top: 0.5rem; } + html.theme--documenter-dark .media + .media { + border-top: 1px solid rgba(94, 109, 111, 0.5); + margin-top: 1rem; + padding-top: 1rem; } + html.theme--documenter-dark .media.is-large + .media { + margin-top: 1.5rem; + padding-top: 1.5rem; } + html.theme--documenter-dark .media-left, + html.theme--documenter-dark .media-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .media-left { + margin-right: 1rem; } + html.theme--documenter-dark .media-right { + margin-left: 1rem; } + html.theme--documenter-dark .media-content { + flex-basis: auto; + flex-grow: 1; + flex-shrink: 1; + text-align: left; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .media-content { + overflow-x: auto; } } + html.theme--documenter-dark .menu { + font-size: 15px; } + html.theme--documenter-dark .menu.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.menu { + font-size: 0.85em; } + html.theme--documenter-dark .menu.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .menu.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .menu-list { + line-height: 1.25; } + html.theme--documenter-dark .menu-list a { + border-radius: 3px; + color: #fff; + display: block; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .menu-list a:hover { + background-color: #282f2f; + color: #f2f2f2; } + html.theme--documenter-dark .menu-list a.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .menu-list li ul { + border-left: 1px solid #5e6d6f; + margin: 0.75em; + padding-left: 0.75em; } + html.theme--documenter-dark .menu-label { + color: white; + font-size: 0.75em; + letter-spacing: 0.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: 0.4em; + font-size: 15px; } + html.theme--documenter-dark .message strong { + color: currentColor; } + html.theme--documenter-dark .message a:not(.button):not(.tag):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + html.theme--documenter-dark .message.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.message { + font-size: 0.85em; } + html.theme--documenter-dark .message.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .message.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .message.is-white { + background-color: white; } + html.theme--documenter-dark .message.is-white .message-header { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .message.is-white .message-body { + border-color: white; + color: #4d4d4d; } + html.theme--documenter-dark .message.is-black { + background-color: #fafafa; } + html.theme--documenter-dark .message.is-black .message-header { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .message.is-black .message-body { + border-color: #0a0a0a; + color: #090909; } + html.theme--documenter-dark .message.is-light { + background-color: #f9fafb; } + html.theme--documenter-dark .message.is-light .message-header { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .message.is-light .message-body { + border-color: #ecf0f1; + color: #505050; } + html.theme--documenter-dark .message.is-dark, html.theme--documenter-dark .content kbd.message { + background-color: #f9fafa; } + html.theme--documenter-dark .message.is-dark .message-header, html.theme--documenter-dark .content kbd.message .message-header { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .message.is-dark .message-body, html.theme--documenter-dark .content kbd.message .message-body { + border-color: #282f2f; + color: #212526; } + html.theme--documenter-dark .message.is-primary, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink { + background-color: #f8fafc; } + html.theme--documenter-dark .message.is-primary .message-header, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-header { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .message.is-primary .message-body, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-body { + border-color: #375a7f; + color: #2b4159; } + html.theme--documenter-dark .message.is-link { + background-color: #f6fefc; } + html.theme--documenter-dark .message.is-link .message-header { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .message.is-link .message-body { + border-color: #1abc9c; + color: #0b2f28; } + html.theme--documenter-dark .message.is-info { + background-color: #f5fbff; } + html.theme--documenter-dark .message.is-info .message-header { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .message.is-info .message-body { + border-color: #024c7d; + color: #033659; } + html.theme--documenter-dark .message.is-success { + background-color: #f5fff9; } + html.theme--documenter-dark .message.is-success .message-header { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .message.is-success .message-body { + border-color: #008438; + color: #023518; } + html.theme--documenter-dark .message.is-warning { + background-color: #fffcf5; } + html.theme--documenter-dark .message.is-warning .message-header { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .message.is-warning .message-body { + border-color: #ad8100; + color: #3d2e03; } + html.theme--documenter-dark .message.is-danger { + background-color: #fef6f6; } + html.theme--documenter-dark .message.is-danger .message-header { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .message.is-danger .message-body { + border-color: #9e1b0d; + color: #7a170c; } + html.theme--documenter-dark .message-header { + align-items: center; + background-color: #fff; + border-radius: 0.4em 0.4em 0 0; + color: rgba(0, 0, 0, 0.7); + display: flex; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em 1em; + position: relative; } + html.theme--documenter-dark .message-header .delete { + flex-grow: 0; + flex-shrink: 0; + margin-left: 0.75em; } + html.theme--documenter-dark .message-header + .message-body { + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .message-body { + border-color: #5e6d6f; + border-radius: 0.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: white; } + html.theme--documenter-dark .message-body pre code { + background-color: transparent; } + html.theme--documenter-dark .modal { + align-items: center; + display: none; + flex-direction: column; + justify-content: center; + overflow: hidden; + position: fixed; + z-index: 40; } + html.theme--documenter-dark .modal.is-active { + display: flex; } + html.theme--documenter-dark .modal-background { + background-color: rgba(10, 10, 10, 0.86); } + html.theme--documenter-dark .modal-content, + html.theme--documenter-dark .modal-card { + margin: 0 20px; + max-height: calc(100vh - 160px); + overflow: auto; + position: relative; + width: 100%; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .modal-content, + html.theme--documenter-dark .modal-card { + margin: 0 auto; + max-height: calc(100vh - 40px); + width: 640px; } } + html.theme--documenter-dark .modal-close { + background: none; + height: 40px; + position: fixed; + right: 20px; + top: 20px; + width: 40px; } + html.theme--documenter-dark .modal-card { + display: flex; + flex-direction: column; + max-height: calc(100vh - 40px); + overflow: hidden; + -ms-overflow-y: visible; } + html.theme--documenter-dark .modal-card-head, + html.theme--documenter-dark .modal-card-foot { + align-items: center; + background-color: #282f2f; + display: flex; + flex-shrink: 0; + justify-content: flex-start; + padding: 20px; + position: relative; } + html.theme--documenter-dark .modal-card-head { + border-bottom: 1px solid #5e6d6f; + border-top-left-radius: 8px; + border-top-right-radius: 8px; } + html.theme--documenter-dark .modal-card-title { + color: #f2f2f2; + flex-grow: 1; + flex-shrink: 0; + font-size: 1.5rem; + line-height: 1; } + html.theme--documenter-dark .modal-card-foot { + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark .modal-card-foot .button:not(:last-child) { + margin-right: 0.5em; } + html.theme--documenter-dark .modal-card-body { + -webkit-overflow-scrolling: touch; + background-color: white; + 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: white; + 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: white; + color: #0a0a0a; } } + html.theme--documenter-dark .navbar.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link { + color: white; } + 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: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link::after { + border-color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-burger { + color: white; } + @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: white; } + 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: black; + color: white; } + 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: white; } + 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: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-dropdown a.navbar-item.is-active { + background-color: #0a0a0a; + color: white; } } + html.theme--documenter-dark .navbar.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link { + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link::after { + border-color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-burger { + color: #282f2f; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-light .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link { + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link::after { + border-color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-dropdown a.navbar-item.is-active { + background-color: #ecf0f1; + color: #282f2f; } } + html.theme--documenter-dark .navbar.is-dark, html.theme--documenter-dark .content kbd.navbar { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link { + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-burger, html.theme--documenter-dark .content kbd.navbar .navbar-burger { + color: #ecf0f1; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-dark .navbar-start > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-end > .navbar-item, + html.theme--documenter-dark .content kbd.navbar .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link { + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link::after, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-dropdown a.navbar-item.is-active { + background-color: #282f2f; + color: #ecf0f1; } } + html.theme--documenter-dark .navbar.is-primary, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-burger, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-primary .navbar-start > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-end > .navbar-item, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link::after, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { + background-color: #375a7f; + color: #fff; } } + html.theme--documenter-dark .navbar.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-link .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-dropdown a.navbar-item.is-active { + background-color: #1abc9c; + color: #fff; } } + html.theme--documenter-dark .navbar.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-info .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-dropdown a.navbar-item.is-active { + background-color: #024c7d; + color: #fff; } } + html.theme--documenter-dark .navbar.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-success .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-dropdown a.navbar-item.is-active { + background-color: #008438; + color: #fff; } } + html.theme--documenter-dark .navbar.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-warning .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-dropdown a.navbar-item.is-active { + background-color: #ad8100; + color: #fff; } } + html.theme--documenter-dark .navbar.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-danger .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-dropdown a.navbar-item.is-active { + background-color: #9e1b0d; + color: #fff; } } + html.theme--documenter-dark .navbar > .container { + align-items: stretch; + display: flex; + min-height: 4rem; + width: 100%; } + html.theme--documenter-dark .navbar.has-shadow { + box-shadow: 0 2px 0 0 #282f2f; } + html.theme--documenter-dark .navbar.is-fixed-bottom, html.theme--documenter-dark .navbar.is-fixed-top { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + html.theme--documenter-dark .navbar.is-fixed-bottom { + bottom: 0; } + html.theme--documenter-dark .navbar.is-fixed-bottom.has-shadow { + box-shadow: 0 -2px 0 0 #282f2f; } + html.theme--documenter-dark .navbar.is-fixed-top { + top: 0; } + html.theme--documenter-dark html.has-navbar-fixed-top, + html.theme--documenter-dark body.has-navbar-fixed-top { + padding-top: 4rem; } + html.theme--documenter-dark html.has-navbar-fixed-bottom, + html.theme--documenter-dark body.has-navbar-fixed-bottom { + padding-bottom: 4rem; } + html.theme--documenter-dark .navbar-brand, + html.theme--documenter-dark .navbar-tabs { + align-items: stretch; + display: flex; + flex-shrink: 0; + min-height: 4rem; } + html.theme--documenter-dark .navbar-brand a.navbar-item:focus, html.theme--documenter-dark .navbar-brand a.navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .navbar-tabs { + -webkit-overflow-scrolling: touch; + max-width: 100vw; + overflow-x: auto; + overflow-y: hidden; } + html.theme--documenter-dark .navbar-burger { + color: #fff; + cursor: pointer; + display: block; + height: 4rem; + position: relative; + width: 4rem; + margin-left: auto; } + html.theme--documenter-dark .navbar-burger span { + background-color: currentColor; + display: block; + height: 1px; + left: calc(50% - 8px); + position: absolute; + transform-origin: center; + transition-duration: 86ms; + transition-property: background-color, opacity, transform; + transition-timing-function: ease-out; + width: 16px; } + html.theme--documenter-dark .navbar-burger span:nth-child(1) { + top: calc(50% - 6px); } + html.theme--documenter-dark .navbar-burger span:nth-child(2) { + top: calc(50% - 1px); } + html.theme--documenter-dark .navbar-burger span:nth-child(3) { + top: calc(50% + 4px); } + html.theme--documenter-dark .navbar-burger:hover { + background-color: rgba(0, 0, 0, 0.05); } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(1) { + transform: translateY(5px) rotate(45deg); } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(2) { + opacity: 0; } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(3) { + transform: translateY(-5px) rotate(-45deg); } + html.theme--documenter-dark .navbar-menu { + display: none; } + html.theme--documenter-dark .navbar-item, + html.theme--documenter-dark .navbar-link { + color: #fff; + display: block; + line-height: 1.5; + padding: 0.5rem 0.75rem; + position: relative; } + html.theme--documenter-dark .navbar-item .icon:only-child, + html.theme--documenter-dark .navbar-link .icon:only-child { + margin-left: -0.25rem; + margin-right: -0.25rem; } + html.theme--documenter-dark a.navbar-item, + html.theme--documenter-dark .navbar-link { + cursor: pointer; } + html.theme--documenter-dark a.navbar-item:focus, html.theme--documenter-dark a.navbar-item:focus-within, html.theme--documenter-dark a.navbar-item:hover, html.theme--documenter-dark a.navbar-item.is-active, + html.theme--documenter-dark .navbar-link:focus, + html.theme--documenter-dark .navbar-link:focus-within, + html.theme--documenter-dark .navbar-link:hover, + html.theme--documenter-dark .navbar-link.is-active { + background-color: transparent; + color: #1abc9c; } + html.theme--documenter-dark .navbar-item { + display: block; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .navbar-item img { + max-height: 1.75rem; } + html.theme--documenter-dark .navbar-item.has-dropdown { + padding: 0; } + html.theme--documenter-dark .navbar-item.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .navbar-item.is-tab { + border-bottom: 1px solid transparent; + min-height: 4rem; + padding-bottom: calc(0.5rem - 1px); } + html.theme--documenter-dark .navbar-item.is-tab:focus, html.theme--documenter-dark .navbar-item.is-tab:hover { + background-color: transparent; + border-bottom-color: #1abc9c; } + html.theme--documenter-dark .navbar-item.is-tab.is-active { + background-color: transparent; + 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: 0.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: transparent; + color: #dbdee0; } + html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active { + background-color: transparent; + color: #1abc9c; } + html.theme--documenter-dark .navbar-burger { + display: none; } + html.theme--documenter-dark .navbar-item, + html.theme--documenter-dark .navbar-link { + align-items: center; + display: flex; } + html.theme--documenter-dark .navbar-item { + display: flex; } + html.theme--documenter-dark .navbar-item.has-dropdown { + align-items: stretch; } + html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-link::after { + transform: rotate(135deg) translate(0.25em, -0.25em); } + html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-dropdown { + border-bottom: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 8px 8px 0 0; + border-top: none; + bottom: 100%; + box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1); + top: auto; } + html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown { + display: block; } + .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed { + opacity: 1; + pointer-events: auto; + transform: translateY(0); } + html.theme--documenter-dark .navbar-menu { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .navbar-start { + justify-content: flex-start; + margin-right: auto; } + html.theme--documenter-dark .navbar-end { + justify-content: flex-end; + margin-left: auto; } + html.theme--documenter-dark .navbar-dropdown { + background-color: #375a7f; + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + border-top: 1px solid rgba(0, 0, 0, 0.2); + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1); + display: none; + font-size: 0.875rem; + left: 0; + min-width: 100%; + position: absolute; + top: 100%; + z-index: 20; } + html.theme--documenter-dark .navbar-dropdown .navbar-item { + padding: 0.375rem 1rem; + white-space: nowrap; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item { + padding-right: 3rem; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item:focus, html.theme--documenter-dark .navbar-dropdown a.navbar-item:hover { + background-color: transparent; + color: #dbdee0; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item.is-active { + background-color: transparent; + 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: transparent; } + 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: transparent; } } + html.theme--documenter-dark .hero.is-fullheight-with-navbar { + min-height: calc(100vh - 4rem); } + html.theme--documenter-dark .pagination { + font-size: 15px; + margin: -0.25rem; } + html.theme--documenter-dark .pagination.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination { + font-size: 0.85em; } + html.theme--documenter-dark .pagination.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .pagination.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .pagination.is-rounded .pagination-previous, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous, + html.theme--documenter-dark .pagination.is-rounded .pagination-next, + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next { + padding-left: 1em; + padding-right: 1em; + border-radius: 290486px; } + html.theme--documenter-dark .pagination.is-rounded .pagination-link, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link { + border-radius: 290486px; } + html.theme--documenter-dark .pagination, + html.theme--documenter-dark .pagination-list { + align-items: center; + display: flex; + justify-content: center; + text-align: center; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark .pagination-ellipsis { + font-size: 1em; + justify-content: center; + margin: 0.25rem; + padding-left: 0.5em; + padding-right: 0.5em; + text-align: center; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-link { + border-color: #5e6d6f; + color: #1abc9c; + min-width: 2.25em; } + html.theme--documenter-dark .pagination-previous:hover, + html.theme--documenter-dark .pagination-next:hover, + html.theme--documenter-dark .pagination-link:hover { + border-color: #8c9b9d; + color: #1dd2af; } + html.theme--documenter-dark .pagination-previous:focus, + html.theme--documenter-dark .pagination-next:focus, + html.theme--documenter-dark .pagination-link:focus { + border-color: #8c9b9d; } + html.theme--documenter-dark .pagination-previous:active, + html.theme--documenter-dark .pagination-next:active, + html.theme--documenter-dark .pagination-link:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); } + html.theme--documenter-dark .pagination-previous[disabled], + html.theme--documenter-dark .pagination-next[disabled], + html.theme--documenter-dark .pagination-link[disabled] { + background-color: #dbdee0; + border-color: #dbdee0; + box-shadow: none; + color: #5e6d6f; + opacity: 0.5; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next { + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + html.theme--documenter-dark .pagination-link.is-current { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .pagination-ellipsis { + color: #8c9b9d; + pointer-events: none; } + html.theme--documenter-dark .pagination-list { + flex-wrap: wrap; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .pagination { + flex-wrap: wrap; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .pagination-list li { + flex-grow: 1; + flex-shrink: 1; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .pagination-list { + flex-grow: 1; + flex-shrink: 1; + justify-content: flex-start; + order: 1; } + html.theme--documenter-dark .pagination-previous { + order: 2; } + html.theme--documenter-dark .pagination-next { + order: 3; } + html.theme--documenter-dark .pagination { + justify-content: space-between; } + html.theme--documenter-dark .pagination.is-centered .pagination-previous { + order: 1; } + html.theme--documenter-dark .pagination.is-centered .pagination-list { + justify-content: center; + order: 2; } + html.theme--documenter-dark .pagination.is-centered .pagination-next { + order: 3; } + html.theme--documenter-dark .pagination.is-right .pagination-previous { + order: 1; } + html.theme--documenter-dark .pagination.is-right .pagination-next { + order: 2; } + html.theme--documenter-dark .pagination.is-right .pagination-list { + justify-content: flex-end; + order: 3; } } + html.theme--documenter-dark .panel { + font-size: 15px; } + html.theme--documenter-dark .panel:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .panel-heading, + html.theme--documenter-dark .panel-tabs, + html.theme--documenter-dark .panel-block { + border-bottom: 1px solid #5e6d6f; + border-left: 1px solid #5e6d6f; + border-right: 1px solid #5e6d6f; } + html.theme--documenter-dark .panel-heading:first-child, + html.theme--documenter-dark .panel-tabs:first-child, + html.theme--documenter-dark .panel-block:first-child { + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark .panel-heading { + background-color: #282f2f; + border-radius: 0.4em 0.4em 0 0; + color: #f2f2f2; + font-size: 1.25em; + font-weight: 300; + line-height: 1.25; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .panel-tabs { + align-items: flex-end; + display: flex; + font-size: 0.875em; + justify-content: center; } + html.theme--documenter-dark .panel-tabs a { + border-bottom: 1px solid #5e6d6f; + margin-bottom: -1px; + padding: 0.5em; } + html.theme--documenter-dark .panel-tabs a.is-active { + border-bottom-color: #343c3d; + color: #17a689; } + html.theme--documenter-dark .panel-list a { + color: #fff; } + html.theme--documenter-dark .panel-list a:hover { + color: #1abc9c; } + html.theme--documenter-dark .panel-block { + align-items: center; + color: #f2f2f2; + display: flex; + justify-content: flex-start; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .panel-block input[type="checkbox"] { + margin-right: 0.75em; } + html.theme--documenter-dark .panel-block > .control { + flex-grow: 1; + flex-shrink: 1; + width: 100%; } + html.theme--documenter-dark .panel-block.is-wrapped { + flex-wrap: wrap; } + html.theme--documenter-dark .panel-block.is-active { + border-left-color: #1abc9c; + color: #17a689; } + html.theme--documenter-dark .panel-block.is-active .panel-icon { + color: #1abc9c; } + html.theme--documenter-dark a.panel-block, + html.theme--documenter-dark label.panel-block { + cursor: pointer; } + html.theme--documenter-dark a.panel-block:hover, + html.theme--documenter-dark label.panel-block:hover { + background-color: #282f2f; } + html.theme--documenter-dark .panel-icon { + display: inline-block; + font-size: 14px; + height: 1em; + line-height: 1em; + text-align: center; + vertical-align: top; + width: 1em; + color: white; + margin-right: 0.75em; } + html.theme--documenter-dark .panel-icon .fa { + font-size: inherit; + line-height: inherit; } + html.theme--documenter-dark .tabs { + -webkit-overflow-scrolling: touch; + align-items: stretch; + display: flex; + font-size: 15px; + justify-content: space-between; + overflow: hidden; + overflow-x: auto; + white-space: nowrap; } + html.theme--documenter-dark .tabs a { + align-items: center; + border-bottom-color: #5e6d6f; + border-bottom-style: solid; + border-bottom-width: 1px; + color: #fff; + display: flex; + justify-content: center; + margin-bottom: -1px; + padding: 0.5em 1em; + vertical-align: top; } + html.theme--documenter-dark .tabs a:hover { + border-bottom-color: #f2f2f2; + color: #f2f2f2; } + html.theme--documenter-dark .tabs li { + display: block; } + html.theme--documenter-dark .tabs li.is-active a { + border-bottom-color: #1abc9c; + color: #1abc9c; } + html.theme--documenter-dark .tabs ul { + align-items: center; + border-bottom-color: #5e6d6f; + border-bottom-style: solid; + border-bottom-width: 1px; + display: flex; + flex-grow: 1; + flex-shrink: 0; + justify-content: flex-start; } + html.theme--documenter-dark .tabs ul.is-left { + padding-right: 0.75em; } + html.theme--documenter-dark .tabs ul.is-center { + flex: none; + justify-content: center; + padding-left: 0.75em; + padding-right: 0.75em; } + html.theme--documenter-dark .tabs ul.is-right { + justify-content: flex-end; + padding-left: 0.75em; } + html.theme--documenter-dark .tabs .icon:first-child { + margin-right: 0.5em; } + html.theme--documenter-dark .tabs .icon:last-child { + margin-left: 0.5em; } + html.theme--documenter-dark .tabs.is-centered ul { + justify-content: center; } + html.theme--documenter-dark .tabs.is-right ul { + justify-content: flex-end; } + html.theme--documenter-dark .tabs.is-boxed a { + border: 1px solid transparent; + border-radius: 0.4em 0.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: white; + border-color: #5e6d6f; + border-bottom-color: transparent !important; } + html.theme--documenter-dark .tabs.is-fullwidth li { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .tabs.is-toggle a { + border-color: #5e6d6f; + border-style: solid; + border-width: 1px; + margin-bottom: 0; + position: relative; } + html.theme--documenter-dark .tabs.is-toggle a:hover { + background-color: #282f2f; + border-color: #8c9b9d; + z-index: 2; } + html.theme--documenter-dark .tabs.is-toggle li + li { + margin-left: -1px; } + html.theme--documenter-dark .tabs.is-toggle li:first-child a { + border-radius: 0.4em 0 0 0.4em; } + html.theme--documenter-dark .tabs.is-toggle li:last-child a { + border-radius: 0 0.4em 0.4em 0; } + html.theme--documenter-dark .tabs.is-toggle li.is-active a { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; + z-index: 1; } + html.theme--documenter-dark .tabs.is-toggle ul { + border-bottom: none; } + html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:first-child a { + border-bottom-left-radius: 290486px; + border-top-left-radius: 290486px; + padding-left: 1.25em; } + html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:last-child a { + border-bottom-right-radius: 290486px; + border-top-right-radius: 290486px; + padding-right: 1.25em; } + html.theme--documenter-dark .tabs.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.tabs { + font-size: 0.85em; } + html.theme--documenter-dark .tabs.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .tabs.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .column { + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + padding: 0.75rem; } + .columns.is-mobile > html.theme--documenter-dark .column.is-narrow { + flex: none; } + .columns.is-mobile > html.theme--documenter-dark .column.is-full { + flex: none; + width: 100%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-three-quarters { + flex: none; + width: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-two-thirds { + flex: none; + width: 66.6666%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-half { + flex: none; + width: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-third { + flex: none; + width: 33.3333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-quarter { + flex: none; + width: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-fifth { + flex: none; + width: 20%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-two-fifths { + flex: none; + width: 40%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-three-fifths { + flex: none; + width: 60%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-four-fifths { + flex: none; + width: 80%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-quarters { + margin-left: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-thirds { + margin-left: 66.6666%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-half { + margin-left: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-third { + margin-left: 33.3333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-quarter { + margin-left: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-fifth { + margin-left: 20%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-fifths { + margin-left: 40%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-fifths { + margin-left: 60%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-four-fifths { + margin-left: 80%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-0 { + flex: none; + width: 0%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-0 { + margin-left: 0%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-1 { + flex: none; + width: 8.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-1 { + margin-left: 8.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-2 { + flex: none; + width: 16.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-2 { + margin-left: 16.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-3 { + flex: none; + width: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-3 { + margin-left: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-4 { + flex: none; + width: 33.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-4 { + margin-left: 33.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-5 { + flex: none; + width: 41.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-5 { + margin-left: 41.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-6 { + flex: none; + width: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-6 { + margin-left: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-7 { + flex: none; + width: 58.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-7 { + margin-left: 58.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-8 { + flex: none; + width: 66.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-8 { + margin-left: 66.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-9 { + flex: none; + width: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-9 { + margin-left: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-10 { + flex: none; + width: 83.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-10 { + margin-left: 83.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-11 { + flex: none; + width: 91.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-11 { + margin-left: 91.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-12 { + flex: none; + width: 100%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-12 { + margin-left: 100%; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .column.is-narrow-mobile { + flex: none; } + html.theme--documenter-dark .column.is-full-mobile { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-mobile { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-mobile { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-mobile { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-mobile { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-mobile { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-mobile { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-mobile { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-mobile { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-mobile { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-mobile { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-mobile { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-mobile { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-mobile { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-mobile { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-mobile { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-mobile { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-mobile { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-mobile { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-mobile { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-mobile { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-mobile { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-mobile { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-mobile { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-mobile { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-mobile { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-mobile { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-mobile { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-mobile { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-mobile { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-mobile { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-mobile { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-mobile { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-mobile { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-mobile { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-mobile { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-mobile { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-mobile { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-mobile { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-mobile { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-mobile { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-mobile { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-mobile { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-mobile { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-mobile { + margin-left: 100%; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .column.is-narrow, html.theme--documenter-dark .column.is-narrow-tablet { + flex: none; } + html.theme--documenter-dark .column.is-full, html.theme--documenter-dark .column.is-full-tablet { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters, html.theme--documenter-dark .column.is-three-quarters-tablet { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds, html.theme--documenter-dark .column.is-two-thirds-tablet { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half, html.theme--documenter-dark .column.is-half-tablet { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third, html.theme--documenter-dark .column.is-one-third-tablet { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter, html.theme--documenter-dark .column.is-one-quarter-tablet { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth, html.theme--documenter-dark .column.is-one-fifth-tablet { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths, html.theme--documenter-dark .column.is-two-fifths-tablet { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths, html.theme--documenter-dark .column.is-three-fifths-tablet { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths, html.theme--documenter-dark .column.is-four-fifths-tablet { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters, html.theme--documenter-dark .column.is-offset-three-quarters-tablet { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds, html.theme--documenter-dark .column.is-offset-two-thirds-tablet { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half, html.theme--documenter-dark .column.is-offset-half-tablet { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third, html.theme--documenter-dark .column.is-offset-one-third-tablet { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter, html.theme--documenter-dark .column.is-offset-one-quarter-tablet { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth, html.theme--documenter-dark .column.is-offset-one-fifth-tablet { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths, html.theme--documenter-dark .column.is-offset-two-fifths-tablet { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths, html.theme--documenter-dark .column.is-offset-three-fifths-tablet { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths, html.theme--documenter-dark .column.is-offset-four-fifths-tablet { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0, html.theme--documenter-dark .column.is-0-tablet { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0, html.theme--documenter-dark .column.is-offset-0-tablet { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1, html.theme--documenter-dark .column.is-1-tablet { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1, html.theme--documenter-dark .column.is-offset-1-tablet { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2, html.theme--documenter-dark .column.is-2-tablet { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2, html.theme--documenter-dark .column.is-offset-2-tablet { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3, html.theme--documenter-dark .column.is-3-tablet { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3, html.theme--documenter-dark .column.is-offset-3-tablet { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4, html.theme--documenter-dark .column.is-4-tablet { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4, html.theme--documenter-dark .column.is-offset-4-tablet { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5, html.theme--documenter-dark .column.is-5-tablet { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5, html.theme--documenter-dark .column.is-offset-5-tablet { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6, html.theme--documenter-dark .column.is-6-tablet { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6, html.theme--documenter-dark .column.is-offset-6-tablet { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7, html.theme--documenter-dark .column.is-7-tablet { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7, html.theme--documenter-dark .column.is-offset-7-tablet { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8, html.theme--documenter-dark .column.is-8-tablet { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8, html.theme--documenter-dark .column.is-offset-8-tablet { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9, html.theme--documenter-dark .column.is-9-tablet { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9, html.theme--documenter-dark .column.is-offset-9-tablet { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10, html.theme--documenter-dark .column.is-10-tablet { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10, html.theme--documenter-dark .column.is-offset-10-tablet { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11, html.theme--documenter-dark .column.is-11-tablet { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11, html.theme--documenter-dark .column.is-offset-11-tablet { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12, html.theme--documenter-dark .column.is-12-tablet { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12, html.theme--documenter-dark .column.is-offset-12-tablet { + margin-left: 100%; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .column.is-narrow-touch { + flex: none; } + html.theme--documenter-dark .column.is-full-touch { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-touch { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-touch { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-touch { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-touch { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-touch { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-touch { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-touch { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-touch { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-touch { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-touch { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-touch { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-touch { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-touch { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-touch { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-touch { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-touch { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-touch { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-touch { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-touch { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-touch { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-touch { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-touch { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-touch { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-touch { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-touch { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-touch { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-touch { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-touch { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-touch { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-touch { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-touch { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-touch { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-touch { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-touch { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-touch { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-touch { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-touch { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-touch { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-touch { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-touch { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-touch { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-touch { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-touch { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-touch { + margin-left: 100%; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .column.is-narrow-desktop { + flex: none; } + html.theme--documenter-dark .column.is-full-desktop { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-desktop { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-desktop { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-desktop { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-desktop { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-desktop { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-desktop { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-desktop { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-desktop { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-desktop { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-desktop { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-desktop { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-desktop { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-desktop { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-desktop { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-desktop { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-desktop { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-desktop { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-desktop { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-desktop { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-desktop { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-desktop { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-desktop { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-desktop { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-desktop { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-desktop { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-desktop { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-desktop { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-desktop { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-desktop { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-desktop { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-desktop { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-desktop { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-desktop { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-desktop { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-desktop { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-desktop { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-desktop { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-desktop { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-desktop { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-desktop { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-desktop { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-desktop { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-desktop { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-desktop { + margin-left: 100%; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .column.is-narrow-widescreen { + flex: none; } + html.theme--documenter-dark .column.is-full-widescreen { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-widescreen { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-widescreen { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-widescreen { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-widescreen { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-widescreen { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-widescreen { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-widescreen { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-widescreen { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-widescreen { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-widescreen { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-widescreen { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-widescreen { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-widescreen { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-widescreen { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-widescreen { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-widescreen { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-widescreen { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-widescreen { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-widescreen { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-widescreen { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-widescreen { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-widescreen { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-widescreen { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-widescreen { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-widescreen { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-widescreen { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-widescreen { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-widescreen { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-widescreen { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-widescreen { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-widescreen { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-widescreen { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-widescreen { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-widescreen { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-widescreen { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-widescreen { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-widescreen { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-widescreen { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-widescreen { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-widescreen { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-widescreen { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-widescreen { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-widescreen { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-widescreen { + margin-left: 100%; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .column.is-narrow-fullhd { + flex: none; } + html.theme--documenter-dark .column.is-full-fullhd { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-fullhd { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-fullhd { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-fullhd { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-fullhd { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-fullhd { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-fullhd { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-fullhd { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-fullhd { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-fullhd { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-fullhd { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-fullhd { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-fullhd { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-fullhd { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-fullhd { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-fullhd { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-fullhd { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-fullhd { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-fullhd { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-fullhd { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-fullhd { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-fullhd { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-fullhd { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-fullhd { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-fullhd { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-fullhd { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-fullhd { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-fullhd { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-fullhd { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-fullhd { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-fullhd { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-fullhd { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-fullhd { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-fullhd { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-fullhd { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-fullhd { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-fullhd { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-fullhd { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-fullhd { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-fullhd { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-fullhd { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-fullhd { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-fullhd { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-fullhd { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-fullhd { + margin-left: 100%; } } + html.theme--documenter-dark .columns { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + html.theme--documenter-dark .columns:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .columns:not(:last-child) { + margin-bottom: calc(1.5rem - 0.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: 0.25rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-1-mobile { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-1-tablet { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-1-tablet-only { + --columnGap: 0.25rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-1-touch { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-1-desktop { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-1-desktop-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-1-widescreen { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-1-widescreen-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-1-fullhd { + --columnGap: 0.25rem; } } + html.theme--documenter-dark .columns.is-variable.is-2 { + --columnGap: 0.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-2-mobile { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-2-tablet { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-2-tablet-only { + --columnGap: 0.5rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-2-touch { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-2-desktop { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-2-desktop-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-2-widescreen { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-2-widescreen-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-2-fullhd { + --columnGap: 0.5rem; } } + html.theme--documenter-dark .columns.is-variable.is-3 { + --columnGap: 0.75rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-3-mobile { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-3-tablet { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-3-tablet-only { + --columnGap: 0.75rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-3-touch { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-3-desktop { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-3-desktop-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-3-widescreen { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-3-widescreen-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-3-fullhd { + --columnGap: 0.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: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + html.theme--documenter-dark .tile.is-ancestor:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .tile.is-ancestor:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .tile.is-child { + margin: 0 !important; } + html.theme--documenter-dark .tile.is-parent { + padding: 0.75rem; } + html.theme--documenter-dark .tile.is-vertical { + flex-direction: column; } + html.theme--documenter-dark .tile.is-vertical > .tile.is-child:not(:last-child) { + margin-bottom: 1.5rem !important; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .tile:not(.is-child) { + display: flex; } + html.theme--documenter-dark .tile.is-1 { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .tile.is-2 { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .tile.is-3 { + flex: none; + width: 25%; } + html.theme--documenter-dark .tile.is-4 { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .tile.is-5 { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .tile.is-6 { + flex: none; + width: 50%; } + html.theme--documenter-dark .tile.is-7 { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .tile.is-8 { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .tile.is-9 { + flex: none; + width: 75%; } + html.theme--documenter-dark .tile.is-10 { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .tile.is-11 { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .tile.is-12 { + flex: none; + width: 100%; } } + html.theme--documenter-dark .hero { + align-items: stretch; + display: flex; + flex-direction: column; + justify-content: space-between; } + html.theme--documenter-dark .hero .navbar { + background: none; } + html.theme--documenter-dark .hero .tabs ul { + border-bottom: none; } + html.theme--documenter-dark .hero.is-white { + background-color: white; + 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: white; } } + html.theme--documenter-dark .hero.is-white .navbar-item, + html.theme--documenter-dark .hero.is-white .navbar-link { + color: rgba(10, 10, 10, 0.7); } + html.theme--documenter-dark .hero.is-white a.navbar-item:hover, html.theme--documenter-dark .hero.is-white a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-white .navbar-link:hover, + html.theme--documenter-dark .hero.is-white .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .tabs a { + color: #0a0a0a; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-white .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-white .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a { + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a:hover { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .hero.is-white.is-bold { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 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%, white 71%, white 100%); } } + html.theme--documenter-dark .hero.is-black { + background-color: #0a0a0a; + color: white; } + 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: white; } + 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: white; } + @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: black; + color: white; } + html.theme--documenter-dark .hero.is-black .tabs a { + color: white; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-black .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-black .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-black .tabs.is-boxed a, html.theme--documenter-dark .hero.is-black .tabs.is-toggle a { + color: white; } + 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: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-black.is-bold { + background-image: linear-gradient(141deg, black 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, black 0%, #0a0a0a 71%, #181616 100%); } } + html.theme--documenter-dark .hero.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-light strong { + color: inherit; } + html.theme--documenter-dark .hero.is-light .title { + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .subtitle { + color: rgba(40, 47, 47, 0.9); } + html.theme--documenter-dark .hero.is-light .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-light .subtitle strong { + color: #282f2f; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-light .navbar-menu { + background-color: #ecf0f1; } } + html.theme--documenter-dark .hero.is-light .navbar-item, + html.theme--documenter-dark .hero.is-light .navbar-link { + color: rgba(40, 47, 47, 0.7); } + html.theme--documenter-dark .hero.is-light a.navbar-item:hover, html.theme--documenter-dark .hero.is-light a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-light .navbar-link:hover, + html.theme--documenter-dark .hero.is-light .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .tabs a { + color: #282f2f; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-light .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-light .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a { + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a:hover { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-light.is-bold { + background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-light.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); } } + html.theme--documenter-dark .hero.is-dark, html.theme--documenter-dark .content kbd.hero { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-dark strong, + html.theme--documenter-dark .content kbd.hero strong { + color: inherit; } + html.theme--documenter-dark .hero.is-dark .title, html.theme--documenter-dark .content kbd.hero .title { + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .subtitle, html.theme--documenter-dark .content kbd.hero .subtitle { + color: rgba(236, 240, 241, 0.9); } + html.theme--documenter-dark .hero.is-dark .subtitle a:not(.button), html.theme--documenter-dark .content kbd.hero .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-dark .subtitle strong, + html.theme--documenter-dark .content kbd.hero .subtitle strong { + color: #ecf0f1; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-dark .navbar-menu, html.theme--documenter-dark .content kbd.hero .navbar-menu { + background-color: #282f2f; } } + html.theme--documenter-dark .hero.is-dark .navbar-item, html.theme--documenter-dark .content kbd.hero .navbar-item, + html.theme--documenter-dark .hero.is-dark .navbar-link, + html.theme--documenter-dark .content kbd.hero .navbar-link { + color: rgba(236, 240, 241, 0.7); } + html.theme--documenter-dark .hero.is-dark a.navbar-item:hover, html.theme--documenter-dark .content kbd.hero a.navbar-item:hover, html.theme--documenter-dark .hero.is-dark a.navbar-item.is-active, html.theme--documenter-dark .content kbd.hero a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-dark .navbar-link:hover, + html.theme--documenter-dark .content kbd.hero .navbar-link:hover, + html.theme--documenter-dark .hero.is-dark .navbar-link.is-active, + html.theme--documenter-dark .content kbd.hero .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .tabs a, html.theme--documenter-dark .content kbd.hero .tabs a { + color: #ecf0f1; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-dark .tabs a:hover, html.theme--documenter-dark .content kbd.hero .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-dark .tabs li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a { + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a:hover { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .hero.is-dark.is-bold, html.theme--documenter-dark .content kbd.hero.is-bold { + background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-dark.is-bold .navbar-menu, html.theme--documenter-dark .content kbd.hero.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); } } + html.theme--documenter-dark .hero.is-primary, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-primary strong, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink strong { + color: inherit; } + html.theme--documenter-dark .hero.is-primary .title, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .title { + color: #fff; } + html.theme--documenter-dark .hero.is-primary .subtitle, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-primary .subtitle a:not(.button), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-primary .subtitle strong, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-primary .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-menu { + background-color: #375a7f; } } + html.theme--documenter-dark .hero.is-primary .navbar-item, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-item, + html.theme--documenter-dark .hero.is-primary .navbar-link, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-primary a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, html.theme--documenter-dark .hero.is-primary a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-primary .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link:hover, + html.theme--documenter-dark .hero.is-primary .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .hero.is-primary .tabs a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-primary .tabs a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-primary .tabs li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .hero.is-primary.is-bold, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink { + background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-primary.is-bold .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu { + background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); } } + html.theme--documenter-dark .hero.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-link strong { + color: inherit; } + html.theme--documenter-dark .hero.is-link .title { + color: #fff; } + html.theme--documenter-dark .hero.is-link .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-link .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-link .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-link .navbar-menu { + background-color: #1abc9c; } } + html.theme--documenter-dark .hero.is-link .navbar-item, + html.theme--documenter-dark .hero.is-link .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-link a.navbar-item:hover, html.theme--documenter-dark .hero.is-link a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-link .navbar-link:hover, + html.theme--documenter-dark .hero.is-link .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .hero.is-link .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-link .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-link .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .hero.is-link.is-bold { + background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-link.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); } } + html.theme--documenter-dark .hero.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-info strong { + color: inherit; } + html.theme--documenter-dark .hero.is-info .title { + color: #fff; } + html.theme--documenter-dark .hero.is-info .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-info .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-info .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-info .navbar-menu { + background-color: #024c7d; } } + html.theme--documenter-dark .hero.is-info .navbar-item, + html.theme--documenter-dark .hero.is-info .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-info a.navbar-item:hover, html.theme--documenter-dark .hero.is-info a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-info .navbar-link:hover, + html.theme--documenter-dark .hero.is-info .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .hero.is-info .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-info .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-info .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .hero.is-info.is-bold { + background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-info.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); } } + html.theme--documenter-dark .hero.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-success strong { + color: inherit; } + html.theme--documenter-dark .hero.is-success .title { + color: #fff; } + html.theme--documenter-dark .hero.is-success .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-success .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-success .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-success .navbar-menu { + background-color: #008438; } } + html.theme--documenter-dark .hero.is-success .navbar-item, + html.theme--documenter-dark .hero.is-success .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-success a.navbar-item:hover, html.theme--documenter-dark .hero.is-success a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-success .navbar-link:hover, + html.theme--documenter-dark .hero.is-success .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .hero.is-success .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-success .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-success .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #008438; } + html.theme--documenter-dark .hero.is-success.is-bold { + background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-success.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); } } + html.theme--documenter-dark .hero.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-warning strong { + color: inherit; } + html.theme--documenter-dark .hero.is-warning .title { + color: #fff; } + html.theme--documenter-dark .hero.is-warning .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-warning .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-warning .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-warning .navbar-menu { + background-color: #ad8100; } } + html.theme--documenter-dark .hero.is-warning .navbar-item, + html.theme--documenter-dark .hero.is-warning .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-warning a.navbar-item:hover, html.theme--documenter-dark .hero.is-warning a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-warning .navbar-link:hover, + html.theme--documenter-dark .hero.is-warning .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .hero.is-warning .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-warning .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-warning .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .hero.is-warning.is-bold { + background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-warning.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); } } + html.theme--documenter-dark .hero.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-danger strong { + color: inherit; } + html.theme--documenter-dark .hero.is-danger .title { + color: #fff; } + html.theme--documenter-dark .hero.is-danger .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-danger .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-danger .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-danger .navbar-menu { + background-color: #9e1b0d; } } + html.theme--documenter-dark .hero.is-danger .navbar-item, + html.theme--documenter-dark .hero.is-danger .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-danger a.navbar-item:hover, html.theme--documenter-dark .hero.is-danger a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-danger .navbar-link:hover, + html.theme--documenter-dark .hero.is-danger .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .hero.is-danger .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-danger .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-danger .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .hero.is-danger.is-bold { + background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-danger.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); } } + html.theme--documenter-dark .hero.is-small .hero-body, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.hero .hero-body { + padding-bottom: 1.5rem; + padding-top: 1.5rem; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero.is-medium .hero-body { + padding-bottom: 9rem; + padding-top: 9rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero.is-large .hero-body { + padding-bottom: 18rem; + padding-top: 18rem; } } + html.theme--documenter-dark .hero.is-halfheight .hero-body, html.theme--documenter-dark .hero.is-fullheight .hero-body, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body { + align-items: center; + display: flex; } + html.theme--documenter-dark .hero.is-halfheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body > .container { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .hero.is-halfheight { + min-height: 50vh; } + html.theme--documenter-dark .hero.is-fullheight { + min-height: 100vh; } + html.theme--documenter-dark .hero-video { + overflow: hidden; } + html.theme--documenter-dark .hero-video video { + left: 50%; + min-height: 100%; + min-width: 100%; + position: absolute; + top: 50%; + transform: translate3d(-50%, -50%, 0); } + html.theme--documenter-dark .hero-video.is-transparent { + opacity: 0.3; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero-video { + display: none; } } + html.theme--documenter-dark .hero-buttons { + margin-top: 1.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero-buttons .button { + display: flex; } + html.theme--documenter-dark .hero-buttons .button:not(:last-child) { + margin-bottom: 0.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero-buttons { + display: flex; + justify-content: center; } + html.theme--documenter-dark .hero-buttons .button:not(:last-child) { + margin-right: 1.5rem; } } + html.theme--documenter-dark .hero-head, + html.theme--documenter-dark .hero-foot { + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .hero-body { + flex-grow: 1; + flex-shrink: 0; + padding: 3rem 1.5rem; } + html.theme--documenter-dark .section { + padding: 3rem 1.5rem; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .section.is-medium { + padding: 9rem 1.5rem; } + html.theme--documenter-dark .section.is-large { + padding: 18rem 1.5rem; } } + html.theme--documenter-dark .footer { + background-color: #282f2f; + padding: 3rem 1.5rem 6rem; } + html.theme--documenter-dark hr { + height: 1px; } + html.theme--documenter-dark h6 { + text-transform: uppercase; + letter-spacing: 0.5px; } + html.theme--documenter-dark .hero { + background-color: #343c3d; } + html.theme--documenter-dark a { + transition: all 200ms ease; } + html.theme--documenter-dark .button { + transition: all 200ms ease; + border-width: 1px; + color: white; } + 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: white; } + 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: white; + 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: white; } + 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: 0.4em; } + html.theme--documenter-dark .card .card-image img { + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .card .card-header { + box-shadow: none; + background-color: rgba(18, 18, 18, 0.2); + border-radius: 0.4em 0.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: white; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-light a:not(.button) { + color: #282f2f; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-dark a:not(.button), html.theme--documenter-dark .content kbd.notification a:not(.button) { + color: #ecf0f1; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-primary a:not(.button), html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-link a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-info a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-success a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-warning a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-danger a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .tag, html.theme--documenter-dark .content kbd, html.theme--documenter-dark .docstring > section > a.docs-sourcelink { + border-radius: 0.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: white; } + html.theme--documenter-dark .message-body { + border-width: 1px; + border-color: #343c3d; } + html.theme--documenter-dark .navbar { + border-radius: 0.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 0.4em 0.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: transparent; } + html.theme--documenter-dark .hero.is-black .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-light .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + 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: transparent; } + 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: transparent; } + html.theme--documenter-dark .hero.is-link .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-info .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-success .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-warning .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-danger .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark h1 .docs-heading-anchor, html.theme--documenter-dark h1 .docs-heading-anchor:hover, html.theme--documenter-dark h1 .docs-heading-anchor:visited, html.theme--documenter-dark h2 .docs-heading-anchor, html.theme--documenter-dark h2 .docs-heading-anchor:hover, html.theme--documenter-dark h2 .docs-heading-anchor:visited, html.theme--documenter-dark h3 .docs-heading-anchor, html.theme--documenter-dark h3 .docs-heading-anchor:hover, html.theme--documenter-dark h3 .docs-heading-anchor:visited, html.theme--documenter-dark h4 .docs-heading-anchor, html.theme--documenter-dark h4 .docs-heading-anchor:hover, html.theme--documenter-dark h4 .docs-heading-anchor:visited, html.theme--documenter-dark h5 .docs-heading-anchor, html.theme--documenter-dark h5 .docs-heading-anchor:hover, html.theme--documenter-dark h5 .docs-heading-anchor:visited, html.theme--documenter-dark h6 .docs-heading-anchor, html.theme--documenter-dark h6 .docs-heading-anchor:hover, html.theme--documenter-dark h6 .docs-heading-anchor:visited { + color: #f2f2f2; } + html.theme--documenter-dark h1 .docs-heading-anchor-permalink, html.theme--documenter-dark h2 .docs-heading-anchor-permalink, html.theme--documenter-dark h3 .docs-heading-anchor-permalink, html.theme--documenter-dark h4 .docs-heading-anchor-permalink, html.theme--documenter-dark h5 .docs-heading-anchor-permalink, html.theme--documenter-dark h6 .docs-heading-anchor-permalink { + visibility: hidden; + vertical-align: middle; + margin-left: 0.5em; + font-size: 0.7rem; } + html.theme--documenter-dark h1 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h2 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h3 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h4 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h5 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h6 .docs-heading-anchor-permalink::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f0c1"; } + html.theme--documenter-dark h1:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h2:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h3:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h4:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h5:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h6:hover .docs-heading-anchor-permalink { + visibility: visible; } + html.theme--documenter-dark .docs-light-only { + display: none !important; } + html.theme--documenter-dark pre { + position: relative; + overflow: hidden; } + html.theme--documenter-dark pre code, html.theme--documenter-dark pre code.hljs { + padding: 0 0.75rem !important; + overflow: auto; + display: block; } + html.theme--documenter-dark pre code:first-of-type, html.theme--documenter-dark pre code.hljs:first-of-type { + padding-top: 0.5rem !important; } + html.theme--documenter-dark pre code:last-of-type, html.theme--documenter-dark pre code.hljs:last-of-type { + padding-bottom: 0.5rem !important; } + html.theme--documenter-dark pre .copy-button { + opacity: 0.2; + transition: opacity 0.2s; + position: absolute; + right: 0em; + top: 0em; + padding: 0.5em; + width: 2.5em; + height: 2.5em; + background: transparent; + border: none; + font-family: "Font Awesome 5 Free"; + color: #fff; + cursor: pointer; + text-align: center; } + html.theme--documenter-dark pre .copy-button:focus, html.theme--documenter-dark pre .copy-button:hover { + opacity: 1; + background: rgba(255, 255, 255, 0.1); + color: #1abc9c; } + html.theme--documenter-dark pre .copy-button.success { + color: #259a12; + opacity: 1; } + html.theme--documenter-dark pre .copy-button.error { + color: #cb3c33; + opacity: 1; } + html.theme--documenter-dark pre:hover .copy-button { + opacity: 1; } + html.theme--documenter-dark .admonition { + background-color: #282f2f; + border-style: solid; + border-width: 1px; + border-color: #5e6d6f; + border-radius: 0.4em; + font-size: 15px; } + html.theme--documenter-dark .admonition strong { + color: currentColor; } + html.theme--documenter-dark .admonition.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.admonition { + font-size: 0.85em; } + html.theme--documenter-dark .admonition.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .admonition.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .admonition.is-default { + background-color: #282f2f; + border-color: #5e6d6f; } + html.theme--documenter-dark .admonition.is-default > .admonition-header { + background-color: #5e6d6f; } + 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; } + 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; } + 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; } + 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; } + 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; } + html.theme--documenter-dark .admonition-header { + background-color: #5e6d6f; + align-items: center; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.5rem 0.75rem; + position: relative; } + html.theme--documenter-dark .admonition-header:before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + margin-right: 0.75rem; + content: "\f06a"; } + html.theme--documenter-dark .admonition-body { + color: #fff; + padding: 0.5rem 0.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: transparent; + border: 1px solid #5e6d6f; + box-shadow: none; + max-width: 100%; } + html.theme--documenter-dark .docstring > header { + display: flex; + flex-grow: 1; + align-items: stretch; + padding: 0.5rem 0.75rem; + background-color: #282f2f; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + box-shadow: none; + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .docstring > header code { + background-color: transparent; } + html.theme--documenter-dark .docstring > header .docstring-binding { + margin-right: 0.3em; } + html.theme--documenter-dark .docstring > header .docstring-category { + margin-left: 0.3em; } + html.theme--documenter-dark .docstring > section { + position: relative; + padding: 0.75rem 0.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: 0.375rem; + bottom: 0.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; + border-bottom: 3px solid #9e1b0d; + padding: 10px 35px; + text-align: center; + font-size: 15px; } + html.theme--documenter-dark .outdated-warning-overlay .outdated-warning-closer { + position: absolute; + top: calc(50% - 10px); + right: 18px; + cursor: pointer; + width: 12px; } + html.theme--documenter-dark .outdated-warning-overlay a { + color: #1abc9c; } + html.theme--documenter-dark .outdated-warning-overlay a:hover { + color: #1dd2af; } + html.theme--documenter-dark .content pre { + border: 1px solid #5e6d6f; } + html.theme--documenter-dark .content code { + font-weight: inherit; } + html.theme--documenter-dark .content a code { + color: #1abc9c; } + html.theme--documenter-dark .content h1 code, html.theme--documenter-dark .content h2 code, html.theme--documenter-dark .content h3 code, html.theme--documenter-dark .content h4 code, html.theme--documenter-dark .content h5 code, html.theme--documenter-dark .content h6 code { + color: #f2f2f2; } + html.theme--documenter-dark .content table { + display: block; + width: initial; + max-width: 100%; + overflow-x: auto; } + html.theme--documenter-dark .content blockquote > ul:first-child, html.theme--documenter-dark .content blockquote > ol:first-child, html.theme--documenter-dark .content .admonition-body > ul:first-child, html.theme--documenter-dark .content .admonition-body > ol:first-child { + margin-top: 0; } + html.theme--documenter-dark pre, html.theme--documenter-dark code { + font-variant-ligatures: no-contextual; } + html.theme--documenter-dark .breadcrumb a.is-disabled { + cursor: default; + pointer-events: none; } + html.theme--documenter-dark .breadcrumb a.is-disabled, html.theme--documenter-dark .breadcrumb a.is-disabled:hover { + color: #f2f2f2; } + html.theme--documenter-dark .hljs { + background: initial !important; } + html.theme--documenter-dark .katex .katex-mathml { + top: 0; + right: 0; } + html.theme--documenter-dark .katex-display, html.theme--documenter-dark mjx-container, html.theme--documenter-dark .MathJax_Display { + margin: 0.5em 0 !important; } + html.theme--documenter-dark html { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; } + html.theme--documenter-dark li.no-marker { + list-style: none; } + html.theme--documenter-dark #documenter .docs-main > article { + overflow-wrap: break-word; } + html.theme--documenter-dark #documenter .docs-main > article .math-container { + overflow-x: auto; + overflow-y: hidden; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-main { + max-width: 52rem; + margin-left: 20rem; + padding-right: 1rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main { + width: 100%; } + html.theme--documenter-dark #documenter .docs-main > article { + max-width: 52rem; + margin-left: auto; + margin-right: auto; + margin-bottom: 1rem; + padding: 0 1rem; } + html.theme--documenter-dark #documenter .docs-main > header, html.theme--documenter-dark #documenter .docs-main > nav { + max-width: 100%; + width: 100%; + margin: 0; } } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar { + background-color: #1f2424; + border-bottom: 1px solid #5e6d6f; + z-index: 2; + min-height: 4rem; + margin-bottom: 1rem; + display: flex; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .breadcrumb { + flex-grow: 1; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right { + display: flex; + white-space: nowrap; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-icon, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + display: inline-block; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label { + padding: 0; + margin-left: 0.3em; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button { + margin: auto 0 auto 1rem; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + font-size: 1.5rem; + margin: auto 0 auto 1rem; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar > * { + margin: auto 0; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main header.docs-navbar { + position: sticky; + top: 0; + padding: 0 1rem; + /* For Headroom.js */ + transition-property: top, box-shadow; + -webkit-transition-property: top, box-shadow; + /* Safari */ + transition-duration: 0.3s; + -webkit-transition-duration: 0.3s; + /* Safari */ } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--not-top { + box-shadow: 0.2rem 0rem 0.4rem #171717; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } + 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; + /* Safari */ } } + html.theme--documenter-dark #documenter .docs-main section.footnotes { + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-main section.footnotes li .tag:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .docstring > section > a.docs-sourcelink:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .content kbd:first-child, html.theme--documenter-dark .content #documenter .docs-main section.footnotes li kbd:first-child { + margin-right: 1em; + margin-bottom: 0.4em; } + html.theme--documenter-dark #documenter .docs-main .docs-footer { + display: flex; + flex-wrap: wrap; + margin-left: 0; + margin-right: 0; + border-top: 1px solid #5e6d6f; + padding-top: 1rem; + padding-bottom: 1rem; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main .docs-footer { + padding-left: 1rem; + padding-right: 1rem; } } + html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage, html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-prevpage { + flex-grow: 1; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage { + text-align: right; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .flexbox-break { + flex-basis: 100%; + height: 0; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .footer-message { + font-size: 0.8em; + margin: 0.5em auto 0 auto; + text-align: center; } + html.theme--documenter-dark #documenter .docs-sidebar { + display: flex; + flex-direction: column; + color: #fff; + background-color: #282f2f; + border-right: 1px solid #5e6d6f; + padding: 0; + flex: 0 0 18rem; + z-index: 5; + font-size: 15px; + position: fixed; + left: -18rem; + width: 18rem; + height: 100%; + transition: left 0.3s; + /* Setting up a nicer theme style for the scrollbar */ } + html.theme--documenter-dark #documenter .docs-sidebar.visible { + left: 0; + box-shadow: 0.4rem 0rem 0.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; + /* Managing collapsible submenus */ } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li > .tocitem { + font-weight: bold; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li li { + font-size: 14.25px; + margin-left: 1em; + border-left: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input.collapse-toggle { + display: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.collapsed { + display: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ ul.collapsed { + display: block; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem { + display: flex; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label { + flex-grow: 2; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron { + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; + font-size: 11.25px; + margin-left: 1rem; + margin-top: auto; + margin-bottom: auto; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f054"; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before { + content: "\f078"; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem { + display: block; + padding: 0.5rem 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem:hover { + color: #fff; + background: #282f2f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu a.tocitem:hover, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem:hover { + color: #fff; + background-color: #32393a; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active { + border-top: 1px solid #5e6d6f; + border-bottom: 1px solid #5e6d6f; + background-color: #1f2424; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover { + background-color: #1f2424; + color: #fff; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover { + background-color: #32393a; + color: #fff; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li.is-active:first-child { + border-top: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal { + margin: 0 0.5rem 0.5rem; + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal li { + font-size: 12.75px; + border-left: none; + margin-left: 0; + margin-top: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem { + width: 100%; + padding: 0; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before { + content: "⚬"; + margin-right: 0.4em; } + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search { + margin: auto; + margin-top: 0.5rem; + margin-bottom: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + width: 14.4rem; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar { + width: .3rem; + background: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #3b4445; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover { + background: #4e5a5c; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-sidebar { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar { + width: .3rem; + background: none; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #3b4445; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover { + background: #4e5a5c; } } + html.theme--documenter-dark #documenter .docs-main #documenter-search-info { + margin-bottom: 1rem; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results { + list-style-type: circle; + list-style-position: outside; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results li { + margin-left: 2rem; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results .docs-highlight { + background-color: yellow; } + html.theme--documenter-dark { + background-color: #1f2424; + font-size: 16px; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + html.theme--documenter-dark .ansi span.sgr1 { + font-weight: bolder; } + html.theme--documenter-dark .ansi span.sgr2 { + font-weight: lighter; } + html.theme--documenter-dark .ansi span.sgr3 { + font-style: italic; } + html.theme--documenter-dark .ansi span.sgr4 { + text-decoration: underline; } + html.theme--documenter-dark .ansi span.sgr7 { + color: #1f2424; + background-color: #fff; } + html.theme--documenter-dark .ansi span.sgr8 { + color: transparent; } + html.theme--documenter-dark .ansi span.sgr8 span { + color: transparent; } + html.theme--documenter-dark .ansi span.sgr9 { + text-decoration: line-through; } + html.theme--documenter-dark .ansi span.sgr30 { + color: #242424; } + html.theme--documenter-dark .ansi span.sgr31 { + color: #f6705f; } + html.theme--documenter-dark .ansi span.sgr32 { + color: #4fb43a; } + html.theme--documenter-dark .ansi span.sgr33 { + color: #f4c72f; } + html.theme--documenter-dark .ansi span.sgr34 { + color: #7587f0; } + html.theme--documenter-dark .ansi span.sgr35 { + color: #bc89d3; } + html.theme--documenter-dark .ansi span.sgr36 { + color: #49b6ca; } + html.theme--documenter-dark .ansi span.sgr37 { + color: #b3bdbe; } + html.theme--documenter-dark .ansi span.sgr40 { + background-color: #242424; } + html.theme--documenter-dark .ansi span.sgr41 { + background-color: #f6705f; } + html.theme--documenter-dark .ansi span.sgr42 { + background-color: #4fb43a; } + html.theme--documenter-dark .ansi span.sgr43 { + background-color: #f4c72f; } + html.theme--documenter-dark .ansi span.sgr44 { + background-color: #7587f0; } + html.theme--documenter-dark .ansi span.sgr45 { + background-color: #bc89d3; } + html.theme--documenter-dark .ansi span.sgr46 { + background-color: #49b6ca; } + html.theme--documenter-dark .ansi span.sgr47 { + background-color: #b3bdbe; } + html.theme--documenter-dark .ansi span.sgr90 { + color: #92a0a2; } + html.theme--documenter-dark .ansi span.sgr91 { + color: #ff8674; } + html.theme--documenter-dark .ansi span.sgr92 { + color: #79d462; } + html.theme--documenter-dark .ansi span.sgr93 { + color: #ffe76b; } + html.theme--documenter-dark .ansi span.sgr94 { + color: #8a98ff; } + html.theme--documenter-dark .ansi span.sgr95 { + color: #d2a4e6; } + html.theme--documenter-dark .ansi span.sgr96 { + color: #6bc8db; } + html.theme--documenter-dark .ansi span.sgr97 { + color: #ecf0f1; } + html.theme--documenter-dark .ansi span.sgr100 { + background-color: #92a0a2; } + html.theme--documenter-dark .ansi span.sgr101 { + background-color: #ff8674; } + html.theme--documenter-dark .ansi span.sgr102 { + background-color: #79d462; } + html.theme--documenter-dark .ansi span.sgr103 { + background-color: #ffe76b; } + html.theme--documenter-dark .ansi span.sgr104 { + background-color: #8a98ff; } + html.theme--documenter-dark .ansi span.sgr105 { + background-color: #d2a4e6; } + html.theme--documenter-dark .ansi span.sgr106 { + background-color: #6bc8db; } + html.theme--documenter-dark .ansi span.sgr107 { + background-color: #ecf0f1; } + html.theme--documenter-dark code.language-julia-repl > span.hljs-meta { + color: #4fb43a; + font-weight: bolder; } + html.theme--documenter-dark .hljs { + background: #2b2b2b; + color: #f8f8f2; } + html.theme--documenter-dark .hljs-comment, + html.theme--documenter-dark .hljs-quote { + color: #d4d0ab; } + html.theme--documenter-dark .hljs-variable, + html.theme--documenter-dark .hljs-template-variable, + html.theme--documenter-dark .hljs-tag, + html.theme--documenter-dark .hljs-name, + html.theme--documenter-dark .hljs-selector-id, + html.theme--documenter-dark .hljs-selector-class, + html.theme--documenter-dark .hljs-regexp, + html.theme--documenter-dark .hljs-deletion { + color: #ffa07a; } + html.theme--documenter-dark .hljs-number, + html.theme--documenter-dark .hljs-built_in, + html.theme--documenter-dark .hljs-literal, + html.theme--documenter-dark .hljs-type, + html.theme--documenter-dark .hljs-params, + html.theme--documenter-dark .hljs-meta, + html.theme--documenter-dark .hljs-link { + color: #f5ab35; } + html.theme--documenter-dark .hljs-attribute { + color: #ffd700; } + html.theme--documenter-dark .hljs-string, + html.theme--documenter-dark .hljs-symbol, + html.theme--documenter-dark .hljs-bullet, + html.theme--documenter-dark .hljs-addition { + color: #abe338; } + html.theme--documenter-dark .hljs-title, + html.theme--documenter-dark .hljs-section { + color: #00e0e0; } + html.theme--documenter-dark .hljs-keyword, + html.theme--documenter-dark .hljs-selector-tag { + color: #dcc6e0; } + html.theme--documenter-dark .hljs-emphasis { + font-style: italic; } + html.theme--documenter-dark .hljs-strong { + font-weight: bold; } + @media screen and (-ms-high-contrast: active) { + html.theme--documenter-dark .hljs-addition, + html.theme--documenter-dark .hljs-attribute, + html.theme--documenter-dark .hljs-built_in, + html.theme--documenter-dark .hljs-bullet, + html.theme--documenter-dark .hljs-comment, + html.theme--documenter-dark .hljs-link, + html.theme--documenter-dark .hljs-literal, + html.theme--documenter-dark .hljs-meta, + html.theme--documenter-dark .hljs-number, + html.theme--documenter-dark .hljs-params, + html.theme--documenter-dark .hljs-string, + html.theme--documenter-dark .hljs-symbol, + html.theme--documenter-dark .hljs-type, + html.theme--documenter-dark .hljs-quote { + color: highlight; } + html.theme--documenter-dark .hljs-keyword, + html.theme--documenter-dark .hljs-selector-tag { + font-weight: bold; } } + html.theme--documenter-dark .hljs-subst { + color: #f8f8f2; } diff --git a/previews/PR334/assets/themes/documenter-light.css b/previews/PR334/assets/themes/documenter-light.css new file mode 100644 index 000000000..9595d5b8e --- /dev/null +++ b/previews/PR334/assets/themes/documenter-light.css @@ -0,0 +1,7738 @@ +@charset "UTF-8"; +/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */ +@keyframes spinAround { + from { + transform: rotate(0deg); } + to { + transform: rotate(359deg); } } + +.tabs, .pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis, .breadcrumb, .file, .button, .is-unselectable, .modal-close, .delete { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +.navbar-link:not(.is-arrowless)::after, .select:not(.is-multiple):not(.is-loading)::after { + border: 3px solid transparent; + border-radius: 2px; + border-right: 0; + border-top: 0; + content: " "; + display: block; + height: 0.625em; + margin-top: -0.4375em; + pointer-events: none; + position: absolute; + top: 50%; + transform: rotate(-45deg); + transform-origin: center; + width: 0.625em; } + +.admonition:not(:last-child), .tabs:not(:last-child), .message:not(:last-child), .list:not(:last-child), .level:not(:last-child), .breadcrumb:not(:last-child), .highlight:not(:last-child), .block:not(:last-child), .title:not(:last-child), +.subtitle:not(:last-child), .table-container:not(:last-child), .table:not(:last-child), .progress:not(:last-child), .notification:not(:last-child), .content:not(:last-child), .box:not(:last-child) { + margin-bottom: 1.5rem; } + +.modal-close, .delete { + -moz-appearance: none; + -webkit-appearance: none; + background-color: rgba(10, 10, 10, 0.2); + border: none; + border-radius: 290486px; + cursor: pointer; + pointer-events: auto; + display: inline-block; + flex-grow: 0; + flex-shrink: 0; + font-size: 0; + height: 20px; + max-height: 20px; + max-width: 20px; + min-height: 20px; + min-width: 20px; + outline: none; + position: relative; + vertical-align: top; + width: 20px; } + .modal-close::before, .delete::before, .modal-close::after, .delete::after { + background-color: white; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + .modal-close::before, .delete::before { + height: 2px; + width: 50%; } + .modal-close::after, .delete::after { + height: 50%; + width: 2px; } + .modal-close:hover, .delete:hover, .modal-close:focus, .delete:focus { + background-color: rgba(10, 10, 10, 0.3); } + .modal-close:active, .delete:active { + background-color: rgba(10, 10, 10, 0.4); } + .is-small.modal-close, #documenter .docs-sidebar form.docs-search > input.modal-close, .is-small.delete, #documenter .docs-sidebar form.docs-search > input.delete { + height: 16px; + max-height: 16px; + max-width: 16px; + min-height: 16px; + min-width: 16px; + width: 16px; } + .is-medium.modal-close, .is-medium.delete { + height: 24px; + max-height: 24px; + max-width: 24px; + min-height: 24px; + min-width: 24px; + width: 24px; } + .is-large.modal-close, .is-large.delete { + height: 32px; + max-height: 32px; + max-width: 32px; + min-height: 32px; + min-width: 32px; + width: 32px; } + +.control.is-loading::after, .select.is-loading::after, .loader, .button.is-loading::after { + animation: spinAround 500ms infinite linear; + border: 2px solid #dbdbdb; + border-radius: 290486px; + border-right-color: transparent; + border-top-color: transparent; + content: ""; + display: block; + height: 1em; + position: relative; + width: 1em; } + +.hero-video, .modal-background, .modal, .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img, +.image.is-square .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img, +.image.is-1by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img, +.image.is-5by4 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img, +.image.is-4by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img, +.image.is-3by2 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img, +.image.is-5by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img, +.image.is-16by9 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img, +.image.is-2by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img, +.image.is-3by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img, +.image.is-4by5 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img, +.image.is-3by4 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img, +.image.is-2by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img, +.image.is-3by5 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img, +.image.is-9by16 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img, +.image.is-1by2 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img, +.image.is-1by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, .is-overlay { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; } + +.pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis, .file-cta, +.file-name, .select select, .textarea, .input, #documenter .docs-sidebar form.docs-search > input, .button { + -moz-appearance: none; + -webkit-appearance: none; + align-items: center; + border: 1px solid transparent; + border-radius: 4px; + box-shadow: none; + display: inline-flex; + font-size: 1rem; + height: 2.25em; + justify-content: flex-start; + line-height: 1.5; + padding-bottom: calc(0.375em - 1px); + padding-left: calc(0.625em - 1px); + padding-right: calc(0.625em - 1px); + padding-top: calc(0.375em - 1px); + position: relative; + vertical-align: top; } + .pagination-previous:focus, + .pagination-next:focus, + .pagination-link:focus, + .pagination-ellipsis:focus, .file-cta:focus, + .file-name:focus, .select select:focus, .textarea:focus, .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .button:focus, .is-focused.pagination-previous, + .is-focused.pagination-next, + .is-focused.pagination-link, + .is-focused.pagination-ellipsis, .is-focused.file-cta, + .is-focused.file-name, .select select.is-focused, .is-focused.textarea, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-focused.button, .pagination-previous:active, + .pagination-next:active, + .pagination-link:active, + .pagination-ellipsis:active, .file-cta:active, + .file-name:active, .select select:active, .textarea:active, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .button:active, .is-active.pagination-previous, + .is-active.pagination-next, + .is-active.pagination-link, + .is-active.pagination-ellipsis, .is-active.file-cta, + .is-active.file-name, .select select.is-active, .is-active.textarea, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .is-active.button { + outline: none; } + .pagination-previous[disabled], + .pagination-next[disabled], + .pagination-link[disabled], + .pagination-ellipsis[disabled], .file-cta[disabled], + .file-name[disabled], .select select[disabled], .textarea[disabled], .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], .button[disabled], fieldset[disabled] .pagination-previous, + fieldset[disabled] .pagination-next, + fieldset[disabled] .pagination-link, + fieldset[disabled] .pagination-ellipsis, fieldset[disabled] .file-cta, + fieldset[disabled] .file-name, fieldset[disabled] .select select, .select fieldset[disabled] select, fieldset[disabled] .textarea, fieldset[disabled] .input, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, fieldset[disabled] .button { + cursor: not-allowed; } + +/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */ +html, +body, +p, +ol, +ul, +li, +dl, +dt, +dd, +blockquote, +figure, +fieldset, +legend, +textarea, +pre, +iframe, +hr, +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + padding: 0; } + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: 100%; + font-weight: normal; } + +ul { + list-style: none; } + +button, +input, +select, +textarea { + margin: 0; } + +html { + box-sizing: border-box; } + +*, *::before, *::after { + box-sizing: inherit; } + +img, +embed, +iframe, +object, +video { + height: auto; + max-width: 100%; } + +audio { + max-width: 100%; } + +iframe { + border: 0; } + +table { + border-collapse: collapse; + border-spacing: 0; } + +td, +th { + padding: 0; } + td:not([align]), + th:not([align]) { + text-align: left; } + +html { + background-color: white; + font-size: 16px; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + +article, +aside, +figure, +footer, +header, +hgroup, +section { + display: block; } + +body, +button, +input, +select, +textarea { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; } + +code, +pre { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; } + +body { + color: #222222; + 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: #000000; + font-size: 0.875em; + font-weight: normal; + padding: 0.1em; } + +hr { + background-color: whitesmoke; + 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: 0.875em; } + +span { + font-style: inherit; + font-weight: inherit; } + +strong { + color: #222222; + font-weight: 700; } + +fieldset { + border: none; } + +pre { + -webkit-overflow-scrolling: touch; + background-color: whitesmoke; + color: #222222; + font-size: 0.875em; + overflow-x: auto; + padding: 1.25rem 1.5rem; + white-space: pre; + word-wrap: normal; } + pre code { + background-color: transparent; + color: currentColor; + font-size: 1em; + padding: 0; } + +table td, +table th { + vertical-align: top; } + table td:not([align]), + table th:not([align]) { + text-align: left; } + +table th { + color: #222222; } + +.is-clearfix::after { + clear: both; + content: " "; + display: table; } + +.is-pulled-left { + float: left !important; } + +.is-pulled-right { + float: right !important; } + +.is-clipped { + overflow: hidden !important; } + +.is-size-1 { + font-size: 3rem !important; } + +.is-size-2 { + font-size: 2.5rem !important; } + +.is-size-3 { + font-size: 2rem !important; } + +.is-size-4 { + font-size: 1.5rem !important; } + +.is-size-5 { + font-size: 1.25rem !important; } + +.is-size-6 { + font-size: 1rem !important; } + +.is-size-7, .docstring > section > a.docs-sourcelink { + font-size: 0.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: 0.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: 0.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: 0.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: 0.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: 0.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: 0.75rem !important; } } + +.has-text-centered { + text-align: center !important; } + +.has-text-justified { + text-align: justify !important; } + +.has-text-left { + text-align: left !important; } + +.has-text-right { + text-align: right !important; } + +@media screen and (max-width: 768px) { + .has-text-centered-mobile { + text-align: center !important; } } + +@media screen and (min-width: 769px), print { + .has-text-centered-tablet { + text-align: center !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-centered-tablet-only { + text-align: center !important; } } + +@media screen and (max-width: 1055px) { + .has-text-centered-touch { + text-align: center !important; } } + +@media screen and (min-width: 1056px) { + .has-text-centered-desktop { + text-align: center !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-centered-desktop-only { + text-align: center !important; } } + +@media screen and (min-width: 1216px) { + .has-text-centered-widescreen { + text-align: center !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-centered-widescreen-only { + text-align: center !important; } } + +@media screen and (min-width: 1408px) { + .has-text-centered-fullhd { + text-align: center !important; } } + +@media screen and (max-width: 768px) { + .has-text-justified-mobile { + text-align: justify !important; } } + +@media screen and (min-width: 769px), print { + .has-text-justified-tablet { + text-align: justify !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-justified-tablet-only { + text-align: justify !important; } } + +@media screen and (max-width: 1055px) { + .has-text-justified-touch { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) { + .has-text-justified-desktop { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-justified-desktop-only { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) { + .has-text-justified-widescreen { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-justified-widescreen-only { + text-align: justify !important; } } + +@media screen and (min-width: 1408px) { + .has-text-justified-fullhd { + text-align: justify !important; } } + +@media screen and (max-width: 768px) { + .has-text-left-mobile { + text-align: left !important; } } + +@media screen and (min-width: 769px), print { + .has-text-left-tablet { + text-align: left !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-left-tablet-only { + text-align: left !important; } } + +@media screen and (max-width: 1055px) { + .has-text-left-touch { + text-align: left !important; } } + +@media screen and (min-width: 1056px) { + .has-text-left-desktop { + text-align: left !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-left-desktop-only { + text-align: left !important; } } + +@media screen and (min-width: 1216px) { + .has-text-left-widescreen { + text-align: left !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-left-widescreen-only { + text-align: left !important; } } + +@media screen and (min-width: 1408px) { + .has-text-left-fullhd { + text-align: left !important; } } + +@media screen and (max-width: 768px) { + .has-text-right-mobile { + text-align: right !important; } } + +@media screen and (min-width: 769px), print { + .has-text-right-tablet { + text-align: right !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-right-tablet-only { + text-align: right !important; } } + +@media screen and (max-width: 1055px) { + .has-text-right-touch { + text-align: right !important; } } + +@media screen and (min-width: 1056px) { + .has-text-right-desktop { + text-align: right !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-right-desktop-only { + text-align: right !important; } } + +@media screen and (min-width: 1216px) { + .has-text-right-widescreen { + text-align: right !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-right-widescreen-only { + text-align: right !important; } } + +@media screen and (min-width: 1408px) { + .has-text-right-fullhd { + text-align: right !important; } } + +.is-capitalized { + text-transform: capitalize !important; } + +.is-lowercase { + text-transform: lowercase !important; } + +.is-uppercase { + text-transform: uppercase !important; } + +.is-italic { + font-style: italic !important; } + +.has-text-white { + color: white !important; } + +a.has-text-white:hover, a.has-text-white:focus { + color: #e6e6e6 !important; } + +.has-background-white { + background-color: white !important; } + +.has-text-black { + color: #0a0a0a !important; } + +a.has-text-black:hover, a.has-text-black:focus { + color: black !important; } + +.has-background-black { + background-color: #0a0a0a !important; } + +.has-text-light { + color: whitesmoke !important; } + +a.has-text-light:hover, a.has-text-light:focus { + color: #dbdbdb !important; } + +.has-background-light { + background-color: whitesmoke !important; } + +.has-text-dark { + color: #363636 !important; } + +a.has-text-dark:hover, a.has-text-dark:focus { + color: #1c1c1c !important; } + +.has-background-dark { + background-color: #363636 !important; } + +.has-text-primary { + color: #4eb5de !important; } + +a.has-text-primary:hover, a.has-text-primary:focus { + color: #27a1d2 !important; } + +.has-background-primary { + background-color: #4eb5de !important; } + +.has-text-link { + color: #2e63b8 !important; } + +a.has-text-link:hover, a.has-text-link:focus { + color: #244d8f !important; } + +.has-background-link { + background-color: #2e63b8 !important; } + +.has-text-info { + color: #209cee !important; } + +a.has-text-info:hover, a.has-text-info:focus { + color: #1081cb !important; } + +.has-background-info { + background-color: #209cee !important; } + +.has-text-success { + color: #22c35b !important; } + +a.has-text-success:hover, a.has-text-success:focus { + color: #1a9847 !important; } + +.has-background-success { + background-color: #22c35b !important; } + +.has-text-warning { + color: #ffdd57 !important; } + +a.has-text-warning:hover, a.has-text-warning:focus { + color: #ffd324 !important; } + +.has-background-warning { + background-color: #ffdd57 !important; } + +.has-text-danger { + color: #da0b00 !important; } + +a.has-text-danger:hover, a.has-text-danger:focus { + color: #a70800 !important; } + +.has-background-danger { + background-color: #da0b00 !important; } + +.has-text-black-bis { + color: #121212 !important; } + +.has-background-black-bis { + background-color: #121212 !important; } + +.has-text-black-ter { + color: #242424 !important; } + +.has-background-black-ter { + background-color: #242424 !important; } + +.has-text-grey-darker { + color: #363636 !important; } + +.has-background-grey-darker { + background-color: #363636 !important; } + +.has-text-grey-dark { + color: #4a4a4a !important; } + +.has-background-grey-dark { + background-color: #4a4a4a !important; } + +.has-text-grey { + color: #6b6b6b !important; } + +.has-background-grey { + background-color: #6b6b6b !important; } + +.has-text-grey-light { + color: #b5b5b5 !important; } + +.has-background-grey-light { + background-color: #b5b5b5 !important; } + +.has-text-grey-lighter { + color: #dbdbdb !important; } + +.has-background-grey-lighter { + background-color: #dbdbdb !important; } + +.has-text-white-ter { + color: whitesmoke !important; } + +.has-background-white-ter { + background-color: whitesmoke !important; } + +.has-text-white-bis { + color: #fafafa !important; } + +.has-background-white-bis { + background-color: #fafafa !important; } + +.has-text-weight-light { + font-weight: 300 !important; } + +.has-text-weight-normal { + font-weight: 400 !important; } + +.has-text-weight-medium { + font-weight: 500 !important; } + +.has-text-weight-semibold { + font-weight: 600 !important; } + +.has-text-weight-bold { + font-weight: 700 !important; } + +.is-family-primary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-secondary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-sans-serif { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-monospace { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-family-code { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-block { + display: block !important; } + +@media screen and (max-width: 768px) { + .is-block-mobile { + display: block !important; } } + +@media screen and (min-width: 769px), print { + .is-block-tablet { + display: block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-block-tablet-only { + display: block !important; } } + +@media screen and (max-width: 1055px) { + .is-block-touch { + display: block !important; } } + +@media screen and (min-width: 1056px) { + .is-block-desktop { + display: block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-block-desktop-only { + display: block !important; } } + +@media screen and (min-width: 1216px) { + .is-block-widescreen { + display: block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-block-widescreen-only { + display: block !important; } } + +@media screen and (min-width: 1408px) { + .is-block-fullhd { + display: block !important; } } + +.is-flex { + display: flex !important; } + +@media screen and (max-width: 768px) { + .is-flex-mobile { + display: flex !important; } } + +@media screen and (min-width: 769px), print { + .is-flex-tablet { + display: flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-flex-tablet-only { + display: flex !important; } } + +@media screen and (max-width: 1055px) { + .is-flex-touch { + display: flex !important; } } + +@media screen and (min-width: 1056px) { + .is-flex-desktop { + display: flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-flex-desktop-only { + display: flex !important; } } + +@media screen and (min-width: 1216px) { + .is-flex-widescreen { + display: flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-flex-widescreen-only { + display: flex !important; } } + +@media screen and (min-width: 1408px) { + .is-flex-fullhd { + display: flex !important; } } + +.is-inline { + display: inline !important; } + +@media screen and (max-width: 768px) { + .is-inline-mobile { + display: inline !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-tablet { + display: inline !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-tablet-only { + display: inline !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-touch { + display: inline !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-desktop { + display: inline !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-desktop-only { + display: inline !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-widescreen { + display: inline !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-widescreen-only { + display: inline !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-fullhd { + display: inline !important; } } + +.is-inline-block { + display: inline-block !important; } + +@media screen and (max-width: 768px) { + .is-inline-block-mobile { + display: inline-block !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-block-tablet { + display: inline-block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-block-tablet-only { + display: inline-block !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-block-touch { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-block-desktop { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-block-desktop-only { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-block-widescreen { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-block-widescreen-only { + display: inline-block !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-block-fullhd { + display: inline-block !important; } } + +.is-inline-flex { + display: inline-flex !important; } + +@media screen and (max-width: 768px) { + .is-inline-flex-mobile { + display: inline-flex !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-flex-tablet { + display: inline-flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-flex-tablet-only { + display: inline-flex !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-flex-touch { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-flex-desktop { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-flex-desktop-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-flex-widescreen { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-flex-widescreen-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-flex-fullhd { + display: inline-flex !important; } } + +.is-hidden { + display: none !important; } + +.is-sr-only { + border: none !important; + clip: rect(0, 0, 0, 0) !important; + height: 0.01em !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + white-space: nowrap !important; + width: 0.01em !important; } + +@media screen and (max-width: 768px) { + .is-hidden-mobile { + display: none !important; } } + +@media screen and (min-width: 769px), print { + .is-hidden-tablet { + display: none !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-hidden-tablet-only { + display: none !important; } } + +@media screen and (max-width: 1055px) { + .is-hidden-touch { + display: none !important; } } + +@media screen and (min-width: 1056px) { + .is-hidden-desktop { + display: none !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-hidden-desktop-only { + display: none !important; } } + +@media screen and (min-width: 1216px) { + .is-hidden-widescreen { + display: none !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-hidden-widescreen-only { + display: none !important; } } + +@media screen and (min-width: 1408px) { + .is-hidden-fullhd { + display: none !important; } } + +.is-invisible { + visibility: hidden !important; } + +@media screen and (max-width: 768px) { + .is-invisible-mobile { + visibility: hidden !important; } } + +@media screen and (min-width: 769px), print { + .is-invisible-tablet { + visibility: hidden !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-invisible-tablet-only { + visibility: hidden !important; } } + +@media screen and (max-width: 1055px) { + .is-invisible-touch { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) { + .is-invisible-desktop { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-invisible-desktop-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) { + .is-invisible-widescreen { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-invisible-widescreen-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1408px) { + .is-invisible-fullhd { + visibility: hidden !important; } } + +.is-marginless { + margin: 0 !important; } + +.is-paddingless { + padding: 0 !important; } + +.is-radiusless { + border-radius: 0 !important; } + +.is-shadowless { + box-shadow: none !important; } + +.is-relative { + position: relative !important; } + +.box { + background-color: white; + border-radius: 6px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #222222; + display: block; + padding: 1.25rem; } + +a.box:hover, a.box:focus { + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #2e63b8; } + +a.box:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #2e63b8; } + +.button { + background-color: white; + border-color: #dbdbdb; + border-width: 1px; + color: #363636; + cursor: pointer; + justify-content: center; + padding-bottom: calc(0.375em - 1px); + padding-left: 0.75em; + padding-right: 0.75em; + padding-top: calc(0.375em - 1px); + text-align: center; + white-space: nowrap; } + .button strong { + color: inherit; } + .button .icon, .button .icon.is-small, .button #documenter .docs-sidebar form.docs-search > input.icon, #documenter .docs-sidebar .button form.docs-search > input.icon, .button .icon.is-medium, .button .icon.is-large { + height: 1.5em; + width: 1.5em; } + .button .icon:first-child:not(:last-child) { + margin-left: calc(-0.375em - 1px); + margin-right: 0.1875em; } + .button .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: calc(-0.375em - 1px); } + .button .icon:first-child:last-child { + margin-left: calc(-0.375em - 1px); + margin-right: calc(-0.375em - 1px); } + .button:hover, .button.is-hovered { + border-color: #b5b5b5; + color: #363636; } + .button:focus, .button.is-focused { + border-color: #3c5dcd; + color: #363636; } + .button:focus:not(:active), .button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .button:active, .button.is-active { + border-color: #4a4a4a; + color: #363636; } + .button.is-text { + background-color: transparent; + border-color: transparent; + color: #222222; + text-decoration: underline; } + .button.is-text:hover, .button.is-text.is-hovered, .button.is-text:focus, .button.is-text.is-focused { + background-color: whitesmoke; + color: #222222; } + .button.is-text:active, .button.is-text.is-active { + background-color: #e8e8e8; + color: #222222; } + .button.is-text[disabled], fieldset[disabled] .button.is-text { + background-color: transparent; + border-color: transparent; + box-shadow: none; } + .button.is-white { + background-color: white; + 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: white; + border-color: transparent; + box-shadow: none; } + .button.is-white.is-inverted { + background-color: #0a0a0a; + color: white; } + .button.is-white.is-inverted:hover, .button.is-white.is-inverted.is-hovered { + background-color: black; } + .button.is-white.is-inverted[disabled], fieldset[disabled] .button.is-white.is-inverted { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; + color: white; } + .button.is-white.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + .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: white; + border-color: white; + color: #0a0a0a; } + .button.is-white.is-outlined.is-loading::after { + border-color: transparent transparent white white !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: white; + box-shadow: none; + color: white; } + .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: white; } + .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 white white !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: white; } + .button.is-black:hover, .button.is-black.is-hovered { + background-color: #040404; + border-color: transparent; + color: white; } + .button.is-black:focus, .button.is-black.is-focused { + border-color: transparent; + color: white; } + .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: black; + border-color: transparent; + color: white; } + .button.is-black[disabled], fieldset[disabled] .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; } + .button.is-black.is-inverted { + background-color: white; + 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: white; + border-color: transparent; + box-shadow: none; + color: #0a0a0a; } + .button.is-black.is-loading::after { + border-color: transparent transparent white white !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: white; } + .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 white white !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: white; + color: white; } + .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: white; + 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: white; + box-shadow: none; + color: white; } + .button.is-light { + background-color: whitesmoke; + border-color: transparent; + color: #363636; } + .button.is-light:hover, .button.is-light.is-hovered { + background-color: #eeeeee; + border-color: transparent; + color: #363636; } + .button.is-light:focus, .button.is-light.is-focused { + border-color: transparent; + color: #363636; } + .button.is-light:focus:not(:active), .button.is-light.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } + .button.is-light:active, .button.is-light.is-active { + background-color: #e8e8e8; + border-color: transparent; + color: #363636; } + .button.is-light[disabled], fieldset[disabled] .button.is-light { + background-color: whitesmoke; + border-color: transparent; + box-shadow: none; } + .button.is-light.is-inverted { + background-color: #363636; + color: whitesmoke; } + .button.is-light.is-inverted:hover, .button.is-light.is-inverted.is-hovered { + background-color: #292929; } + .button.is-light.is-inverted[disabled], fieldset[disabled] .button.is-light.is-inverted { + background-color: #363636; + border-color: transparent; + box-shadow: none; + color: whitesmoke; } + .button.is-light.is-loading::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-light.is-outlined { + background-color: transparent; + border-color: whitesmoke; + color: whitesmoke; } + .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: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .button.is-light.is-outlined.is-loading::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-light.is-outlined.is-loading:hover::after, .button.is-light.is-outlined.is-loading.is-hovered::after, .button.is-light.is-outlined.is-loading:focus::after, .button.is-light.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-light.is-outlined[disabled], fieldset[disabled] .button.is-light.is-outlined { + background-color: transparent; + border-color: whitesmoke; + box-shadow: none; + color: whitesmoke; } + .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #363636; + color: #363636; } + .button.is-light.is-inverted.is-outlined:hover, .button.is-light.is-inverted.is-outlined.is-hovered, .button.is-light.is-inverted.is-outlined:focus, .button.is-light.is-inverted.is-outlined.is-focused { + background-color: #363636; + color: whitesmoke; } + .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 whitesmoke whitesmoke !important; } + .button.is-light.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #363636; + box-shadow: none; + color: #363636; } + .button.is-dark, .content kbd.button { + background-color: #363636; + border-color: transparent; + color: whitesmoke; } + .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: whitesmoke; } + .button.is-dark:focus, .content kbd.button:focus, .button.is-dark.is-focused, .content kbd.button.is-focused { + border-color: transparent; + color: whitesmoke; } + .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: whitesmoke; } + .button.is-dark[disabled], .content kbd.button[disabled], fieldset[disabled] .button.is-dark, fieldset[disabled] .content kbd.button, .content fieldset[disabled] kbd.button { + background-color: #363636; + border-color: transparent; + box-shadow: none; } + .button.is-dark.is-inverted, .content kbd.button.is-inverted { + background-color: whitesmoke; + color: #363636; } + .button.is-dark.is-inverted:hover, .content kbd.button.is-inverted:hover, .button.is-dark.is-inverted.is-hovered, .content kbd.button.is-inverted.is-hovered { + background-color: #e8e8e8; } + .button.is-dark.is-inverted[disabled], .content kbd.button.is-inverted[disabled], fieldset[disabled] .button.is-dark.is-inverted, fieldset[disabled] .content kbd.button.is-inverted, .content fieldset[disabled] kbd.button.is-inverted { + background-color: whitesmoke; + border-color: transparent; + box-shadow: none; + color: #363636; } + .button.is-dark.is-loading::after, .content kbd.button.is-loading::after { + border-color: transparent transparent whitesmoke whitesmoke !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: whitesmoke; } + .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 whitesmoke whitesmoke !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: whitesmoke; + color: whitesmoke; } + .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: whitesmoke; + 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: whitesmoke; + box-shadow: none; + color: whitesmoke; } + .button.is-primary, .docstring > section > a.button.docs-sourcelink { + background-color: #4eb5de; + border-color: transparent; + color: #fff; } + .button.is-primary:hover, .docstring > section > a.button.docs-sourcelink:hover, .button.is-primary.is-hovered, .docstring > section > a.button.is-hovered.docs-sourcelink { + background-color: #43b1dc; + border-color: transparent; + color: #fff; } + .button.is-primary:focus, .docstring > section > a.button.docs-sourcelink:focus, .button.is-primary.is-focused, .docstring > section > a.button.is-focused.docs-sourcelink { + border-color: transparent; + color: #fff; } + .button.is-primary:focus:not(:active), .docstring > section > a.button.docs-sourcelink:focus:not(:active), .button.is-primary.is-focused:not(:active), .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) { + box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } + .button.is-primary:active, .docstring > section > a.button.docs-sourcelink:active, .button.is-primary.is-active, .docstring > section > a.button.is-active.docs-sourcelink { + background-color: #39acda; + border-color: transparent; + color: #fff; } + .button.is-primary[disabled], .docstring > section > a.button.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary, fieldset[disabled] .docstring > section > a.button.docs-sourcelink { + background-color: #4eb5de; + border-color: transparent; + box-shadow: none; } + .button.is-primary.is-inverted, .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + color: #4eb5de; } + .button.is-primary.is-inverted:hover, .docstring > section > a.button.is-inverted.docs-sourcelink:hover, .button.is-primary.is-inverted.is-hovered, .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink { + background-color: #f2f2f2; } + .button.is-primary.is-inverted[disabled], .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-inverted, fieldset[disabled] .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #4eb5de; } + .button.is-primary.is-loading::after, .docstring > section > a.button.is-loading.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-primary.is-outlined, .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #4eb5de; + color: #4eb5de; } + .button.is-primary.is-outlined:hover, .docstring > section > a.button.is-outlined.docs-sourcelink:hover, .button.is-primary.is-outlined.is-hovered, .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-outlined:focus, .docstring > section > a.button.is-outlined.docs-sourcelink:focus, .button.is-primary.is-outlined.is-focused, .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink { + background-color: #4eb5de; + border-color: #4eb5de; + color: #fff; } + .button.is-primary.is-outlined.is-loading::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after { + border-color: transparent transparent #4eb5de #4eb5de !important; } + .button.is-primary.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-primary.is-outlined[disabled], .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-outlined, fieldset[disabled] .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #4eb5de; + box-shadow: none; + color: #4eb5de; } + .button.is-primary.is-inverted.is-outlined, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-primary.is-inverted.is-outlined:hover, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, .button.is-primary.is-inverted.is-outlined.is-hovered, .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-inverted.is-outlined:focus, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, .button.is-primary.is-inverted.is-outlined.is-focused, .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink { + background-color: #fff; + color: #4eb5de; } + .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #4eb5de #4eb5de !important; } + .button.is-primary.is-inverted.is-outlined[disabled], .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-inverted.is-outlined, fieldset[disabled] .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-link { + background-color: #2e63b8; + border-color: transparent; + color: #fff; } + .button.is-link:hover, .button.is-link.is-hovered { + background-color: #2b5eae; + border-color: transparent; + color: #fff; } + .button.is-link:focus, .button.is-link.is-focused { + border-color: transparent; + color: #fff; } + .button.is-link:focus:not(:active), .button.is-link.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .button.is-link:active, .button.is-link.is-active { + background-color: #2958a4; + border-color: transparent; + color: #fff; } + .button.is-link[disabled], fieldset[disabled] .button.is-link { + background-color: #2e63b8; + border-color: transparent; + box-shadow: none; } + .button.is-link.is-inverted { + background-color: #fff; + color: #2e63b8; } + .button.is-link.is-inverted:hover, .button.is-link.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-link.is-inverted[disabled], fieldset[disabled] .button.is-link.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #2e63b8; } + .button.is-link.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-link.is-outlined { + background-color: transparent; + border-color: #2e63b8; + color: #2e63b8; } + .button.is-link.is-outlined:hover, .button.is-link.is-outlined.is-hovered, .button.is-link.is-outlined:focus, .button.is-link.is-outlined.is-focused { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + .button.is-link.is-outlined.is-loading::after { + border-color: transparent transparent #2e63b8 #2e63b8 !important; } + .button.is-link.is-outlined.is-loading:hover::after, .button.is-link.is-outlined.is-loading.is-hovered::after, .button.is-link.is-outlined.is-loading:focus::after, .button.is-link.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-link.is-outlined[disabled], fieldset[disabled] .button.is-link.is-outlined { + background-color: transparent; + border-color: #2e63b8; + box-shadow: none; + color: #2e63b8; } + .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-link.is-inverted.is-outlined:hover, .button.is-link.is-inverted.is-outlined.is-hovered, .button.is-link.is-inverted.is-outlined:focus, .button.is-link.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #2e63b8; } + .button.is-link.is-inverted.is-outlined.is-loading:hover::after, .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-link.is-inverted.is-outlined.is-loading:focus::after, .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #2e63b8 #2e63b8 !important; } + .button.is-link.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-info { + background-color: #209cee; + border-color: transparent; + color: #fff; } + .button.is-info:hover, .button.is-info.is-hovered { + background-color: #1497ed; + border-color: transparent; + color: #fff; } + .button.is-info:focus, .button.is-info.is-focused { + border-color: transparent; + color: #fff; } + .button.is-info:focus:not(:active), .button.is-info.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } + .button.is-info:active, .button.is-info.is-active { + background-color: #1190e3; + border-color: transparent; + color: #fff; } + .button.is-info[disabled], fieldset[disabled] .button.is-info { + background-color: #209cee; + border-color: transparent; + box-shadow: none; } + .button.is-info.is-inverted { + background-color: #fff; + color: #209cee; } + .button.is-info.is-inverted:hover, .button.is-info.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-info.is-inverted[disabled], fieldset[disabled] .button.is-info.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #209cee; } + .button.is-info.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-info.is-outlined { + background-color: transparent; + border-color: #209cee; + color: #209cee; } + .button.is-info.is-outlined:hover, .button.is-info.is-outlined.is-hovered, .button.is-info.is-outlined:focus, .button.is-info.is-outlined.is-focused { + background-color: #209cee; + border-color: #209cee; + color: #fff; } + .button.is-info.is-outlined.is-loading::after { + border-color: transparent transparent #209cee #209cee !important; } + .button.is-info.is-outlined.is-loading:hover::after, .button.is-info.is-outlined.is-loading.is-hovered::after, .button.is-info.is-outlined.is-loading:focus::after, .button.is-info.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-info.is-outlined[disabled], fieldset[disabled] .button.is-info.is-outlined { + background-color: transparent; + border-color: #209cee; + box-shadow: none; + color: #209cee; } + .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-info.is-inverted.is-outlined:hover, .button.is-info.is-inverted.is-outlined.is-hovered, .button.is-info.is-inverted.is-outlined:focus, .button.is-info.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #209cee; } + .button.is-info.is-inverted.is-outlined.is-loading:hover::after, .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-info.is-inverted.is-outlined.is-loading:focus::after, .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #209cee #209cee !important; } + .button.is-info.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-success { + background-color: #22c35b; + border-color: transparent; + color: #fff; } + .button.is-success:hover, .button.is-success.is-hovered { + background-color: #20b856; + border-color: transparent; + color: #fff; } + .button.is-success:focus, .button.is-success.is-focused { + border-color: transparent; + color: #fff; } + .button.is-success:focus:not(:active), .button.is-success.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } + .button.is-success:active, .button.is-success.is-active { + background-color: #1ead51; + border-color: transparent; + color: #fff; } + .button.is-success[disabled], fieldset[disabled] .button.is-success { + background-color: #22c35b; + border-color: transparent; + box-shadow: none; } + .button.is-success.is-inverted { + background-color: #fff; + color: #22c35b; } + .button.is-success.is-inverted:hover, .button.is-success.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-success.is-inverted[disabled], fieldset[disabled] .button.is-success.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #22c35b; } + .button.is-success.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-success.is-outlined { + background-color: transparent; + border-color: #22c35b; + color: #22c35b; } + .button.is-success.is-outlined:hover, .button.is-success.is-outlined.is-hovered, .button.is-success.is-outlined:focus, .button.is-success.is-outlined.is-focused { + background-color: #22c35b; + border-color: #22c35b; + color: #fff; } + .button.is-success.is-outlined.is-loading::after { + border-color: transparent transparent #22c35b #22c35b !important; } + .button.is-success.is-outlined.is-loading:hover::after, .button.is-success.is-outlined.is-loading.is-hovered::after, .button.is-success.is-outlined.is-loading:focus::after, .button.is-success.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-success.is-outlined[disabled], fieldset[disabled] .button.is-success.is-outlined { + background-color: transparent; + border-color: #22c35b; + box-shadow: none; + color: #22c35b; } + .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-success.is-inverted.is-outlined:hover, .button.is-success.is-inverted.is-outlined.is-hovered, .button.is-success.is-inverted.is-outlined:focus, .button.is-success.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #22c35b; } + .button.is-success.is-inverted.is-outlined.is-loading:hover::after, .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-success.is-inverted.is-outlined.is-loading:focus::after, .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #22c35b #22c35b !important; } + .button.is-success.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-warning { + background-color: #ffdd57; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:hover, .button.is-warning.is-hovered { + background-color: #ffda4a; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:focus, .button.is-warning.is-focused { + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:focus:not(:active), .button.is-warning.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } + .button.is-warning:active, .button.is-warning.is-active { + background-color: #ffd83e; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning[disabled], fieldset[disabled] .button.is-warning { + background-color: #ffdd57; + border-color: transparent; + box-shadow: none; } + .button.is-warning.is-inverted { + background-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .button.is-warning.is-inverted:hover, .button.is-warning.is-inverted.is-hovered { + background-color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-inverted[disabled], fieldset[disabled] .button.is-warning.is-inverted { + background-color: rgba(0, 0, 0, 0.7); + border-color: transparent; + box-shadow: none; + color: #ffdd57; } + .button.is-warning.is-loading::after { + border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; } + .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ffdd57; + color: #ffdd57; } + .button.is-warning.is-outlined:hover, .button.is-warning.is-outlined.is-hovered, .button.is-warning.is-outlined:focus, .button.is-warning.is-outlined.is-focused { + background-color: #ffdd57; + border-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-outlined.is-loading::after { + border-color: transparent transparent #ffdd57 #ffdd57 !important; } + .button.is-warning.is-outlined.is-loading:hover::after, .button.is-warning.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-outlined.is-loading:focus::after, .button.is-warning.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; } + .button.is-warning.is-outlined[disabled], fieldset[disabled] .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ffdd57; + box-shadow: none; + color: #ffdd57; } + .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-inverted.is-outlined:hover, .button.is-warning.is-inverted.is-outlined.is-hovered, .button.is-warning.is-inverted.is-outlined:focus, .button.is-warning.is-inverted.is-outlined.is-focused { + background-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ffdd57 #ffdd57 !important; } + .button.is-warning.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + box-shadow: none; + color: rgba(0, 0, 0, 0.7); } + .button.is-danger { + background-color: #da0b00; + border-color: transparent; + color: #fff; } + .button.is-danger:hover, .button.is-danger.is-hovered { + background-color: #cd0a00; + border-color: transparent; + color: #fff; } + .button.is-danger:focus, .button.is-danger.is-focused { + border-color: transparent; + color: #fff; } + .button.is-danger:focus:not(:active), .button.is-danger.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } + .button.is-danger:active, .button.is-danger.is-active { + background-color: #c10a00; + border-color: transparent; + color: #fff; } + .button.is-danger[disabled], fieldset[disabled] .button.is-danger { + background-color: #da0b00; + border-color: transparent; + box-shadow: none; } + .button.is-danger.is-inverted { + background-color: #fff; + color: #da0b00; } + .button.is-danger.is-inverted:hover, .button.is-danger.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-danger.is-inverted[disabled], fieldset[disabled] .button.is-danger.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #da0b00; } + .button.is-danger.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-danger.is-outlined { + background-color: transparent; + border-color: #da0b00; + color: #da0b00; } + .button.is-danger.is-outlined:hover, .button.is-danger.is-outlined.is-hovered, .button.is-danger.is-outlined:focus, .button.is-danger.is-outlined.is-focused { + background-color: #da0b00; + border-color: #da0b00; + color: #fff; } + .button.is-danger.is-outlined.is-loading::after { + border-color: transparent transparent #da0b00 #da0b00 !important; } + .button.is-danger.is-outlined.is-loading:hover::after, .button.is-danger.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-outlined.is-loading:focus::after, .button.is-danger.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-danger.is-outlined[disabled], fieldset[disabled] .button.is-danger.is-outlined { + background-color: transparent; + border-color: #da0b00; + box-shadow: none; + color: #da0b00; } + .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-danger.is-inverted.is-outlined:hover, .button.is-danger.is-inverted.is-outlined.is-hovered, .button.is-danger.is-inverted.is-outlined:focus, .button.is-danger.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #da0b00; } + .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #da0b00 #da0b00 !important; } + .button.is-danger.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-small, #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 2px; + font-size: 0.75rem; } + .button.is-normal { + font-size: 1rem; } + .button.is-medium { + font-size: 1.25rem; } + .button.is-large { + font-size: 1.5rem; } + .button[disabled], fieldset[disabled] .button { + background-color: white; + border-color: #dbdbdb; + box-shadow: none; + opacity: 0.5; } + .button.is-fullwidth { + display: flex; + width: 100%; } + .button.is-loading { + color: transparent !important; + pointer-events: none; } + .button.is-loading::after { + position: absolute; + left: calc(50% - (1em / 2)); + top: calc(50% - (1em / 2)); + position: absolute !important; } + .button.is-static { + background-color: whitesmoke; + border-color: #dbdbdb; + color: #6b6b6b; + box-shadow: none; + pointer-events: none; } + .button.is-rounded, #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + +.buttons { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .buttons .button { + margin-bottom: 0.5rem; } + .buttons .button:not(:last-child):not(.is-fullwidth) { + margin-right: 0.5rem; } + .buttons:last-child { + margin-bottom: -0.5rem; } + .buttons:not(:last-child) { + margin-bottom: 1rem; } + .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) { + border-radius: 2px; + font-size: 0.75rem; } + .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) { + font-size: 1.25rem; } + .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) { + font-size: 1.5rem; } + .buttons.has-addons .button:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .buttons.has-addons .button:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + margin-right: -1px; } + .buttons.has-addons .button:last-child { + margin-right: 0; } + .buttons.has-addons .button:hover, .buttons.has-addons .button.is-hovered { + z-index: 2; } + .buttons.has-addons .button:focus, .buttons.has-addons .button.is-focused, .buttons.has-addons .button:active, .buttons.has-addons .button.is-active, .buttons.has-addons .button.is-selected { + z-index: 3; } + .buttons.has-addons .button:focus:hover, .buttons.has-addons .button.is-focused:hover, .buttons.has-addons .button:active:hover, .buttons.has-addons .button.is-active:hover, .buttons.has-addons .button.is-selected:hover { + z-index: 4; } + .buttons.has-addons .button.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .buttons.is-centered { + justify-content: center; } + .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + .buttons.is-right { + justify-content: flex-end; } + .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + +.container { + flex-grow: 1; + margin: 0 auto; + position: relative; + width: auto; } + @media screen and (min-width: 1056px) { + .container { + max-width: 992px; } + .container.is-fluid { + margin-left: 32px; + margin-right: 32px; + max-width: none; } } + @media screen and (max-width: 1215px) { + .container.is-widescreen { + max-width: 1152px; } } + @media screen and (max-width: 1407px) { + .container.is-fullhd { + max-width: 1344px; } } + @media screen and (min-width: 1216px) { + .container { + max-width: 1152px; } } + @media screen and (min-width: 1408px) { + .container { + max-width: 1344px; } } +.content li + li { + margin-top: 0.25em; } + +.content p:not(:last-child), +.content dl:not(:last-child), +.content ol:not(:last-child), +.content ul:not(:last-child), +.content blockquote:not(:last-child), +.content pre:not(:last-child), +.content table:not(:last-child) { + margin-bottom: 1em; } + +.content h1, +.content h2, +.content h3, +.content h4, +.content h5, +.content h6 { + color: #222222; + 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: whitesmoke; + 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: #222222; } + .content table th:not([align]) { + text-align: left; } + .content table thead td, + .content table thead th { + border-width: 0 0 2px; + color: #222222; } + .content table tfoot td, + .content table tfoot th { + border-width: 2px 0 0; + color: #222222; } + .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: 0.75rem; } + +.content.is-medium { + font-size: 1.25rem; } + +.content.is-large { + font-size: 1.5rem; } + +.icon { + align-items: center; + display: inline-flex; + justify-content: center; + height: 1.5rem; + width: 1.5rem; } + .icon.is-small, #documenter .docs-sidebar form.docs-search > input.icon { + height: 1rem; + width: 1rem; } + .icon.is-medium { + height: 2rem; + width: 2rem; } + .icon.is-large { + height: 3rem; + width: 3rem; } + +.image, #documenter .docs-sidebar .docs-logo > img { + display: block; + position: relative; } + .image img, #documenter .docs-sidebar .docs-logo > img img { + display: block; + height: auto; + width: 100%; } + .image img.is-rounded, #documenter .docs-sidebar .docs-logo > img img.is-rounded { + border-radius: 290486px; } + .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img, + .image.is-square .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img, + .image.is-1by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img, + .image.is-5by4 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img, + .image.is-4by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img, + .image.is-3by2 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img, + .image.is-5by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img, + .image.is-16by9 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img, + .image.is-2by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img, + .image.is-3by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img, + .image.is-4by5 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img, + .image.is-3by4 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img, + .image.is-2by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img, + .image.is-3by5 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img, + .image.is-9by16 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img, + .image.is-1by2 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img, + .image.is-1by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio { + height: 100%; + width: 100%; } + .image.is-square, #documenter .docs-sidebar .docs-logo > img.is-square, .image.is-1by1, #documenter .docs-sidebar .docs-logo > img.is-1by1 { + padding-top: 100%; } + .image.is-5by4, #documenter .docs-sidebar .docs-logo > img.is-5by4 { + padding-top: 80%; } + .image.is-4by3, #documenter .docs-sidebar .docs-logo > img.is-4by3 { + padding-top: 75%; } + .image.is-3by2, #documenter .docs-sidebar .docs-logo > img.is-3by2 { + padding-top: 66.6666%; } + .image.is-5by3, #documenter .docs-sidebar .docs-logo > img.is-5by3 { + padding-top: 60%; } + .image.is-16by9, #documenter .docs-sidebar .docs-logo > img.is-16by9 { + padding-top: 56.25%; } + .image.is-2by1, #documenter .docs-sidebar .docs-logo > img.is-2by1 { + padding-top: 50%; } + .image.is-3by1, #documenter .docs-sidebar .docs-logo > img.is-3by1 { + padding-top: 33.3333%; } + .image.is-4by5, #documenter .docs-sidebar .docs-logo > img.is-4by5 { + padding-top: 125%; } + .image.is-3by4, #documenter .docs-sidebar .docs-logo > img.is-3by4 { + padding-top: 133.3333%; } + .image.is-2by3, #documenter .docs-sidebar .docs-logo > img.is-2by3 { + padding-top: 150%; } + .image.is-3by5, #documenter .docs-sidebar .docs-logo > img.is-3by5 { + padding-top: 166.6666%; } + .image.is-9by16, #documenter .docs-sidebar .docs-logo > img.is-9by16 { + padding-top: 177.7777%; } + .image.is-1by2, #documenter .docs-sidebar .docs-logo > img.is-1by2 { + padding-top: 200%; } + .image.is-1by3, #documenter .docs-sidebar .docs-logo > img.is-1by3 { + padding-top: 300%; } + .image.is-16x16, #documenter .docs-sidebar .docs-logo > img.is-16x16 { + height: 16px; + width: 16px; } + .image.is-24x24, #documenter .docs-sidebar .docs-logo > img.is-24x24 { + height: 24px; + width: 24px; } + .image.is-32x32, #documenter .docs-sidebar .docs-logo > img.is-32x32 { + height: 32px; + width: 32px; } + .image.is-48x48, #documenter .docs-sidebar .docs-logo > img.is-48x48 { + height: 48px; + width: 48px; } + .image.is-64x64, #documenter .docs-sidebar .docs-logo > img.is-64x64 { + height: 64px; + width: 64px; } + .image.is-96x96, #documenter .docs-sidebar .docs-logo > img.is-96x96 { + height: 96px; + width: 96px; } + .image.is-128x128, #documenter .docs-sidebar .docs-logo > img.is-128x128 { + height: 128px; + width: 128px; } + +.notification { + background-color: whitesmoke; + border-radius: 4px; + padding: 1.25rem 2.5rem 1.25rem 1.5rem; + position: relative; } + .notification a:not(.button):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + .notification strong { + color: currentColor; } + .notification code, + .notification pre { + background: white; } + .notification pre code { + background: transparent; } + .notification > .delete { + position: absolute; + right: 0.5rem; + top: 0.5rem; } + .notification .title, + .notification .subtitle, + .notification .content { + color: currentColor; } + .notification.is-white { + background-color: white; + color: #0a0a0a; } + .notification.is-black { + background-color: #0a0a0a; + color: white; } + .notification.is-light { + background-color: whitesmoke; + color: #363636; } + .notification.is-dark, .content kbd.notification { + background-color: #363636; + color: whitesmoke; } + .notification.is-primary, .docstring > section > a.notification.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .notification.is-link { + background-color: #2e63b8; + color: #fff; } + .notification.is-info { + background-color: #209cee; + color: #fff; } + .notification.is-success { + background-color: #22c35b; + color: #fff; } + .notification.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .notification.is-danger { + background-color: #da0b00; + color: #fff; } + +.progress { + -moz-appearance: none; + -webkit-appearance: none; + border: none; + border-radius: 290486px; + display: block; + height: 1rem; + overflow: hidden; + padding: 0; + width: 100%; } + .progress::-webkit-progress-bar { + background-color: #dbdbdb; } + .progress::-webkit-progress-value { + background-color: #222222; } + .progress::-moz-progress-bar { + background-color: #222222; } + .progress::-ms-fill { + background-color: #222222; + border: none; } + .progress.is-white::-webkit-progress-value { + background-color: white; } + .progress.is-white::-moz-progress-bar { + background-color: white; } + .progress.is-white::-ms-fill { + background-color: white; } + .progress.is-white:indeterminate { + background-image: linear-gradient(to right, white 30%, #dbdbdb 30%); } + .progress.is-black::-webkit-progress-value { + background-color: #0a0a0a; } + .progress.is-black::-moz-progress-bar { + background-color: #0a0a0a; } + .progress.is-black::-ms-fill { + background-color: #0a0a0a; } + .progress.is-black:indeterminate { + background-image: linear-gradient(to right, #0a0a0a 30%, #dbdbdb 30%); } + .progress.is-light::-webkit-progress-value { + background-color: whitesmoke; } + .progress.is-light::-moz-progress-bar { + background-color: whitesmoke; } + .progress.is-light::-ms-fill { + background-color: whitesmoke; } + .progress.is-light:indeterminate { + background-image: linear-gradient(to right, whitesmoke 30%, #dbdbdb 30%); } + .progress.is-dark::-webkit-progress-value, .content kbd.progress::-webkit-progress-value { + background-color: #363636; } + .progress.is-dark::-moz-progress-bar, .content kbd.progress::-moz-progress-bar { + background-color: #363636; } + .progress.is-dark::-ms-fill, .content kbd.progress::-ms-fill { + background-color: #363636; } + .progress.is-dark:indeterminate, .content kbd.progress:indeterminate { + background-image: linear-gradient(to right, #363636 30%, #dbdbdb 30%); } + .progress.is-primary::-webkit-progress-value, .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value { + background-color: #4eb5de; } + .progress.is-primary::-moz-progress-bar, .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar { + background-color: #4eb5de; } + .progress.is-primary::-ms-fill, .docstring > section > a.progress.docs-sourcelink::-ms-fill { + background-color: #4eb5de; } + .progress.is-primary:indeterminate, .docstring > section > a.progress.docs-sourcelink:indeterminate { + background-image: linear-gradient(to right, #4eb5de 30%, #dbdbdb 30%); } + .progress.is-link::-webkit-progress-value { + background-color: #2e63b8; } + .progress.is-link::-moz-progress-bar { + background-color: #2e63b8; } + .progress.is-link::-ms-fill { + background-color: #2e63b8; } + .progress.is-link:indeterminate { + background-image: linear-gradient(to right, #2e63b8 30%, #dbdbdb 30%); } + .progress.is-info::-webkit-progress-value { + background-color: #209cee; } + .progress.is-info::-moz-progress-bar { + background-color: #209cee; } + .progress.is-info::-ms-fill { + background-color: #209cee; } + .progress.is-info:indeterminate { + background-image: linear-gradient(to right, #209cee 30%, #dbdbdb 30%); } + .progress.is-success::-webkit-progress-value { + background-color: #22c35b; } + .progress.is-success::-moz-progress-bar { + background-color: #22c35b; } + .progress.is-success::-ms-fill { + background-color: #22c35b; } + .progress.is-success:indeterminate { + background-image: linear-gradient(to right, #22c35b 30%, #dbdbdb 30%); } + .progress.is-warning::-webkit-progress-value { + background-color: #ffdd57; } + .progress.is-warning::-moz-progress-bar { + background-color: #ffdd57; } + .progress.is-warning::-ms-fill { + background-color: #ffdd57; } + .progress.is-warning:indeterminate { + background-image: linear-gradient(to right, #ffdd57 30%, #dbdbdb 30%); } + .progress.is-danger::-webkit-progress-value { + background-color: #da0b00; } + .progress.is-danger::-moz-progress-bar { + background-color: #da0b00; } + .progress.is-danger::-ms-fill { + background-color: #da0b00; } + .progress.is-danger:indeterminate { + background-image: linear-gradient(to right, #da0b00 30%, #dbdbdb 30%); } + .progress:indeterminate { + animation-duration: 1.5s; + animation-iteration-count: infinite; + animation-name: moveIndeterminate; + animation-timing-function: linear; + background-color: #dbdbdb; + background-image: linear-gradient(to right, #222222 30%, #dbdbdb 30%); + background-position: top left; + background-repeat: no-repeat; + background-size: 150% 150%; } + .progress:indeterminate::-webkit-progress-bar { + background-color: transparent; } + .progress:indeterminate::-moz-progress-bar { + background-color: transparent; } + .progress.is-small, #documenter .docs-sidebar form.docs-search > input.progress { + height: 0.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: white; + color: #363636; } + .table td, + .table th { + border: 1px solid #dbdbdb; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + .table td.is-white, + .table th.is-white { + background-color: white; + border-color: white; + color: #0a0a0a; } + .table td.is-black, + .table th.is-black { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .table td.is-light, + .table th.is-light { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .table td.is-dark, + .table th.is-dark { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .table td.is-primary, + .table th.is-primary { + background-color: #4eb5de; + border-color: #4eb5de; + color: #fff; } + .table td.is-link, + .table th.is-link { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + .table td.is-info, + .table th.is-info { + background-color: #209cee; + border-color: #209cee; + color: #fff; } + .table td.is-success, + .table th.is-success { + background-color: #22c35b; + border-color: #22c35b; + color: #fff; } + .table td.is-warning, + .table th.is-warning { + background-color: #ffdd57; + border-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .table td.is-danger, + .table th.is-danger { + background-color: #da0b00; + border-color: #da0b00; + color: #fff; } + .table td.is-narrow, + .table th.is-narrow { + white-space: nowrap; + width: 1%; } + .table td.is-selected, + .table th.is-selected { + background-color: #4eb5de; + color: #fff; } + .table td.is-selected a, + .table td.is-selected strong, + .table th.is-selected a, + .table th.is-selected strong { + color: currentColor; } + .table th { + color: #222222; } + .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: transparent; } + .table thead td, + .table thead th { + border-width: 0 0 2px; + color: #222222; } + .table tfoot { + background-color: transparent; } + .table tfoot td, + .table tfoot th { + border-width: 2px 0 0; + color: #222222; } + .table tbody { + background-color: transparent; } + .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: whitesmoke; } + .table.is-narrow td, + .table.is-narrow th { + padding: 0.25em 0.5em; } + .table.is-striped tbody tr:not(.is-selected):nth-child(even) { + background-color: #fafafa; } + +.table-container { + -webkit-overflow-scrolling: touch; + overflow: auto; + overflow-y: hidden; + max-width: 100%; } + +.tags { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .tags .tag, .tags .content kbd, .content .tags kbd, .tags .docstring > section > a.docs-sourcelink { + margin-bottom: 0.5rem; } + .tags .tag:not(:last-child), .tags .content kbd:not(:last-child), .content .tags kbd:not(:last-child), .tags .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0.5rem; } + .tags:last-child { + margin-bottom: -0.5rem; } + .tags:not(:last-child) { + margin-bottom: 1rem; } + .tags.are-medium .tag:not(.is-normal):not(.is-large), .tags.are-medium .content kbd:not(.is-normal):not(.is-large), .content .tags.are-medium kbd:not(.is-normal):not(.is-large), .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large) { + font-size: 1rem; } + .tags.are-large .tag:not(.is-normal):not(.is-medium), .tags.are-large .content kbd:not(.is-normal):not(.is-medium), .content .tags.are-large kbd:not(.is-normal):not(.is-medium), .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium) { + font-size: 1.25rem; } + .tags.is-centered { + justify-content: center; } + .tags.is-centered .tag, .tags.is-centered .content kbd, .content .tags.is-centered kbd, .tags.is-centered .docstring > section > a.docs-sourcelink { + margin-right: 0.25rem; + margin-left: 0.25rem; } + .tags.is-right { + justify-content: flex-end; } + .tags.is-right .tag:not(:first-child), .tags.is-right .content kbd:not(:first-child), .content .tags.is-right kbd:not(:first-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0.5rem; } + .tags.is-right .tag:not(:last-child), .tags.is-right .content kbd:not(:last-child), .content .tags.is-right kbd:not(:last-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0; } + .tags.has-addons .tag, .tags.has-addons .content kbd, .content .tags.has-addons kbd, .tags.has-addons .docstring > section > a.docs-sourcelink { + margin-right: 0; } + .tags.has-addons .tag:not(:first-child), .tags.has-addons .content kbd:not(:first-child), .content .tags.has-addons kbd:not(:first-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0; + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .tags.has-addons .tag:not(:last-child), .tags.has-addons .content kbd:not(:last-child), .content .tags.has-addons kbd:not(:last-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + +.tag:not(body), .content kbd:not(body), .docstring > section > a.docs-sourcelink:not(body) { + align-items: center; + background-color: whitesmoke; + border-radius: 4px; + color: #222222; + display: inline-flex; + font-size: 0.75rem; + height: 2em; + justify-content: center; + line-height: 1.5; + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + .tag:not(body) .delete, .content kbd:not(body) .delete, .docstring > section > a.docs-sourcelink:not(body) .delete { + margin-left: 0.25rem; + margin-right: -0.375rem; } + .tag.is-white:not(body), .content kbd.is-white:not(body), .docstring > section > a.docs-sourcelink.is-white:not(body) { + background-color: white; + 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: white; } + .tag.is-light:not(body), .content kbd.is-light:not(body), .docstring > section > a.docs-sourcelink.is-light:not(body) { + background-color: whitesmoke; + color: #363636; } + .tag.is-dark:not(body), .content kbd:not(body), .docstring > section > a.docs-sourcelink.is-dark:not(body), .content .docstring > section > kbd:not(body) { + background-color: #363636; + color: whitesmoke; } + .tag.is-primary:not(body), .content kbd.is-primary:not(body), .docstring > section > a.docs-sourcelink:not(body) { + background-color: #4eb5de; + color: #fff; } + .tag.is-link:not(body), .content kbd.is-link:not(body), .docstring > section > a.docs-sourcelink.is-link:not(body) { + background-color: #2e63b8; + color: #fff; } + .tag.is-info:not(body), .content kbd.is-info:not(body), .docstring > section > a.docs-sourcelink.is-info:not(body) { + background-color: #209cee; + color: #fff; } + .tag.is-success:not(body), .content kbd.is-success:not(body), .docstring > section > a.docs-sourcelink.is-success:not(body) { + background-color: #22c35b; + color: #fff; } + .tag.is-warning:not(body), .content kbd.is-warning:not(body), .docstring > section > a.docs-sourcelink.is-warning:not(body) { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .tag.is-danger:not(body), .content kbd.is-danger:not(body), .docstring > section > a.docs-sourcelink.is-danger:not(body) { + background-color: #da0b00; + color: #fff; } + .tag.is-normal:not(body), .content kbd.is-normal:not(body), .docstring > section > a.docs-sourcelink.is-normal:not(body) { + font-size: 0.75rem; } + .tag.is-medium:not(body), .content kbd.is-medium:not(body), .docstring > section > a.docs-sourcelink.is-medium:not(body) { + font-size: 1rem; } + .tag.is-large:not(body), .content kbd.is-large:not(body), .docstring > section > a.docs-sourcelink.is-large:not(body) { + font-size: 1.25rem; } + .tag:not(body) .icon:first-child:not(:last-child), .content kbd:not(body) .icon:first-child:not(:last-child), .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child) { + margin-left: -0.375em; + margin-right: 0.1875em; } + .tag:not(body) .icon:last-child:not(:first-child), .content kbd:not(body) .icon:last-child:not(:first-child), .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: -0.375em; } + .tag:not(body) .icon:first-child:last-child, .content kbd:not(body) .icon:first-child:last-child, .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child { + margin-left: -0.375em; + margin-right: -0.375em; } + .tag.is-delete:not(body), .content kbd.is-delete:not(body), .docstring > section > a.docs-sourcelink.is-delete:not(body) { + margin-left: 1px; + padding: 0; + position: relative; + width: 2em; } + .tag.is-delete:not(body)::before, .content kbd.is-delete:not(body)::before, .docstring > section > a.docs-sourcelink.is-delete:not(body)::before, .tag.is-delete:not(body)::after, .content kbd.is-delete:not(body)::after, .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + background-color: currentColor; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + .tag.is-delete:not(body)::before, .content kbd.is-delete:not(body)::before, .docstring > section > a.docs-sourcelink.is-delete:not(body)::before { + height: 1px; + width: 50%; } + .tag.is-delete:not(body)::after, .content kbd.is-delete:not(body)::after, .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + height: 50%; + width: 1px; } + .tag.is-delete:not(body):hover, .content kbd.is-delete:not(body):hover, .docstring > section > a.docs-sourcelink.is-delete:not(body):hover, .tag.is-delete:not(body):focus, .content kbd.is-delete:not(body):focus, .docstring > section > a.docs-sourcelink.is-delete:not(body):focus { + background-color: #e8e8e8; } + .tag.is-delete:not(body):active, .content kbd.is-delete:not(body):active, .docstring > section > a.docs-sourcelink.is-delete:not(body):active { + background-color: #dbdbdb; } + .tag.is-rounded:not(body), #documenter .docs-sidebar form.docs-search > input:not(body), .content kbd.is-rounded:not(body), #documenter .docs-sidebar .content form.docs-search > input:not(body), .docstring > section > a.docs-sourcelink.is-rounded:not(body) { + border-radius: 290486px; } + +a.tag:hover, .docstring > section > a.docs-sourcelink:hover { + text-decoration: underline; } + +.title, +.subtitle { + word-break: break-word; } + .title em, + .title span, + .subtitle em, + .subtitle span { + font-weight: inherit; } + .title sub, + .subtitle sub { + font-size: 0.75em; } + .title sup, + .subtitle sup { + font-size: 0.75em; } + .title .tag, .title .content kbd, .content .title kbd, .title .docstring > section > a.docs-sourcelink, + .subtitle .tag, + .subtitle .content kbd, + .content .subtitle kbd, + .subtitle .docstring > section > a.docs-sourcelink { + vertical-align: middle; } + +.title { + color: #363636; + font-size: 2rem; + font-weight: 600; + line-height: 1.125; } + .title strong { + color: inherit; + font-weight: inherit; } + .title + .highlight { + margin-top: -0.75rem; } + .title:not(.is-spaced) + .subtitle { + margin-top: -1.25rem; } + .title.is-1 { + font-size: 3rem; } + .title.is-2 { + font-size: 2.5rem; } + .title.is-3 { + font-size: 2rem; } + .title.is-4 { + font-size: 1.5rem; } + .title.is-5 { + font-size: 1.25rem; } + .title.is-6 { + font-size: 1rem; } + .title.is-7 { + font-size: 0.75rem; } + +.subtitle { + color: #4a4a4a; + font-size: 1.25rem; + font-weight: 400; + line-height: 1.25; } + .subtitle strong { + color: #363636; + font-weight: 600; } + .subtitle:not(.is-spaced) + .title { + margin-top: -1.25rem; } + .subtitle.is-1 { + font-size: 3rem; } + .subtitle.is-2 { + font-size: 2.5rem; } + .subtitle.is-3 { + font-size: 2rem; } + .subtitle.is-4 { + font-size: 1.5rem; } + .subtitle.is-5 { + font-size: 1.25rem; } + .subtitle.is-6 { + font-size: 1rem; } + .subtitle.is-7 { + font-size: 0.75rem; } + +.heading { + display: block; + font-size: 11px; + letter-spacing: 1px; + margin-bottom: 5px; + text-transform: uppercase; } + +.highlight { + font-weight: 400; + max-width: 100%; + overflow: hidden; + padding: 0; } + .highlight pre { + overflow: auto; + max-width: 100%; } + +.number { + align-items: center; + background-color: whitesmoke; + border-radius: 290486px; + display: inline-flex; + font-size: 1.25rem; + height: 2em; + justify-content: center; + margin-right: 1.5rem; + min-width: 2.5em; + padding: 0.25rem 0.5rem; + text-align: center; + vertical-align: top; } + +.select select, .textarea, .input, #documenter .docs-sidebar form.docs-search > input { + background-color: white; + border-color: #dbdbdb; + border-radius: 4px; + color: #363636; } + .select select::-moz-placeholder, .textarea::-moz-placeholder, .input::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input::-moz-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select::-webkit-input-placeholder, .textarea::-webkit-input-placeholder, .input::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select:-moz-placeholder, .textarea:-moz-placeholder, .input:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input:-moz-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select:-ms-input-placeholder, .textarea:-ms-input-placeholder, .input:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select:hover, .textarea:hover, .input:hover, #documenter .docs-sidebar form.docs-search > input:hover, .select select.is-hovered, .is-hovered.textarea, .is-hovered.input, #documenter .docs-sidebar form.docs-search > input.is-hovered { + border-color: #b5b5b5; } + .select select:focus, .textarea:focus, .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .select select.is-focused, .is-focused.textarea, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .select select:active, .textarea:active, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .select select.is-active, .is-active.textarea, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + border-color: #2e63b8; + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .select select[disabled], .textarea[disabled], .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], fieldset[disabled] .select select, .select fieldset[disabled] select, fieldset[disabled] .textarea, fieldset[disabled] .input, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input { + background-color: whitesmoke; + border-color: whitesmoke; + box-shadow: none; + color: #6b6b6b; } + .select select[disabled]::-moz-placeholder, .textarea[disabled]::-moz-placeholder, .input[disabled]::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, fieldset[disabled] .select select::-moz-placeholder, .select fieldset[disabled] select::-moz-placeholder, fieldset[disabled] .textarea::-moz-placeholder, fieldset[disabled] .input::-moz-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-moz-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-moz-placeholder { + color: rgba(107, 107, 107, 0.3); } + .select select[disabled]::-webkit-input-placeholder, .textarea[disabled]::-webkit-input-placeholder, .input[disabled]::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, fieldset[disabled] .select select::-webkit-input-placeholder, .select fieldset[disabled] select::-webkit-input-placeholder, fieldset[disabled] .textarea::-webkit-input-placeholder, fieldset[disabled] .input::-webkit-input-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-webkit-input-placeholder { + color: rgba(107, 107, 107, 0.3); } + .select select[disabled]:-moz-placeholder, .textarea[disabled]:-moz-placeholder, .input[disabled]:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, fieldset[disabled] .select select:-moz-placeholder, .select fieldset[disabled] select:-moz-placeholder, fieldset[disabled] .textarea:-moz-placeholder, fieldset[disabled] .input:-moz-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-moz-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-moz-placeholder { + color: rgba(107, 107, 107, 0.3); } + .select select[disabled]:-ms-input-placeholder, .textarea[disabled]:-ms-input-placeholder, .input[disabled]:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, fieldset[disabled] .select select:-ms-input-placeholder, .select fieldset[disabled] select:-ms-input-placeholder, fieldset[disabled] .textarea:-ms-input-placeholder, fieldset[disabled] .input:-ms-input-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-ms-input-placeholder { + color: rgba(107, 107, 107, 0.3); } + +.textarea, .input, #documenter .docs-sidebar form.docs-search > input { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1); + max-width: 100%; + width: 100%; } + .textarea[readonly], .input[readonly], #documenter .docs-sidebar form.docs-search > input[readonly] { + box-shadow: none; } + .is-white.textarea, .is-white.input, #documenter .docs-sidebar form.docs-search > input.is-white { + border-color: white; } + .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: whitesmoke; } + .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: 0.75rem; } + .is-medium.textarea, .is-medium.input, #documenter .docs-sidebar form.docs-search > input.is-medium { + font-size: 1.25rem; } + .is-large.textarea, .is-large.input, #documenter .docs-sidebar form.docs-search > input.is-large { + font-size: 1.5rem; } + .is-fullwidth.textarea, .is-fullwidth.input, #documenter .docs-sidebar form.docs-search > input.is-fullwidth { + display: block; + width: 100%; } + .is-inline.textarea, .is-inline.input, #documenter .docs-sidebar form.docs-search > input.is-inline { + display: inline; + width: auto; } + +.input.is-rounded, #documenter .docs-sidebar form.docs-search > input { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + +.input.is-static, #documenter .docs-sidebar form.docs-search > input.is-static { + background-color: transparent; + border-color: transparent; + box-shadow: none; + padding-left: 0; + padding-right: 0; } + +.textarea { + display: block; + max-width: 100%; + min-width: 100%; + padding: 0.625em; + resize: vertical; } + .textarea:not([rows]) { + max-height: 600px; + min-height: 120px; } + .textarea[rows] { + height: initial; } + .textarea.has-fixed-size { + resize: none; } + +.radio, .checkbox { + cursor: pointer; + display: inline-block; + line-height: 1.25; + position: relative; } + .radio input, .checkbox input { + cursor: pointer; } + .radio:hover, .checkbox:hover { + color: #363636; } + .radio[disabled], .checkbox[disabled], fieldset[disabled] .radio, fieldset[disabled] .checkbox { + color: #6b6b6b; + cursor: not-allowed; } + +.radio + .radio { + margin-left: 0.5em; } + +.select { + display: inline-block; + max-width: 100%; + position: relative; + vertical-align: top; } + .select:not(.is-multiple) { + height: 2.25em; } + .select:not(.is-multiple):not(.is-loading)::after { + border-color: #2e63b8; + right: 1.125em; + z-index: 4; } + .select.is-rounded select, #documenter .docs-sidebar form.docs-search > input.select select { + border-radius: 290486px; + padding-left: 1em; } + .select select { + cursor: pointer; + display: block; + font-size: 1em; + max-width: 100%; + outline: none; } + .select select::-ms-expand { + display: none; } + .select select[disabled]:hover, fieldset[disabled] .select select:hover { + border-color: whitesmoke; } + .select select:not([multiple]) { + padding-right: 2.5em; } + .select select[multiple] { + height: auto; + padding: 0; } + .select select[multiple] option { + padding: 0.5em 1em; } + .select:not(.is-multiple):not(.is-loading):hover::after { + border-color: #363636; } + .select.is-white:not(:hover)::after { + border-color: white; } + .select.is-white select { + border-color: white; } + .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: black; } + .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: whitesmoke; } + .select.is-light select { + border-color: whitesmoke; } + .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: 0.75rem; } + .select.is-medium { + font-size: 1.25rem; } + .select.is-large { + font-size: 1.5rem; } + .select.is-disabled::after { + border-color: #6b6b6b; } + .select.is-fullwidth { + width: 100%; } + .select.is-fullwidth select { + width: 100%; } + .select.is-loading::after { + margin-top: 0; + position: absolute; + right: 0.625em; + top: 0.625em; + transform: none; } + .select.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.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: white; + 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: white; } + .file.is-black:hover .file-cta, .file.is-black.is-hovered .file-cta { + background-color: #040404; + border-color: transparent; + color: white; } + .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: white; } + .file.is-black:active .file-cta, .file.is-black.is-active .file-cta { + background-color: black; + border-color: transparent; + color: white; } + .file.is-light .file-cta { + background-color: whitesmoke; + border-color: transparent; + color: #363636; } + .file.is-light:hover .file-cta, .file.is-light.is-hovered .file-cta { + background-color: #eeeeee; + border-color: transparent; + color: #363636; } + .file.is-light:focus .file-cta, .file.is-light.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(245, 245, 245, 0.25); + color: #363636; } + .file.is-light:active .file-cta, .file.is-light.is-active .file-cta { + background-color: #e8e8e8; + border-color: transparent; + color: #363636; } + .file.is-dark .file-cta, .content kbd.file .file-cta { + background-color: #363636; + border-color: transparent; + color: whitesmoke; } + .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: whitesmoke; } + .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: whitesmoke; } + .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: whitesmoke; } + .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: 0.75rem; } + .file.is-medium { + font-size: 1.25rem; } + .file.is-medium .file-icon .fa { + font-size: 21px; } + .file.is-large { + font-size: 1.5rem; } + .file.is-large .file-icon .fa { + font-size: 28px; } + .file.has-name .file-cta { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + .file.has-name .file-name { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .file.has-name.is-empty .file-cta { + border-radius: 4px; } + .file.has-name.is-empty .file-name { + display: none; } + .file.is-boxed .file-label { + flex-direction: column; } + .file.is-boxed .file-cta { + flex-direction: column; + height: auto; + padding: 1em 3em; } + .file.is-boxed .file-name { + border-width: 0 1px 1px; } + .file.is-boxed .file-icon { + height: 1.5em; + width: 1.5em; } + .file.is-boxed .file-icon .fa { + font-size: 21px; } + .file.is-boxed.is-small .file-icon .fa, #documenter .docs-sidebar form.docs-search > input.is-boxed .file-icon .fa { + font-size: 14px; } + .file.is-boxed.is-medium .file-icon .fa { + font-size: 28px; } + .file.is-boxed.is-large .file-icon .fa { + font-size: 35px; } + .file.is-boxed.has-name .file-cta { + border-radius: 4px 4px 0 0; } + .file.is-boxed.has-name .file-name { + border-radius: 0 0 4px 4px; + border-width: 0 1px 1px; } + .file.is-centered { + justify-content: center; } + .file.is-fullwidth .file-label { + width: 100%; } + .file.is-fullwidth .file-name { + flex-grow: 1; + max-width: none; } + .file.is-right { + justify-content: flex-end; } + .file.is-right .file-cta { + border-radius: 0 4px 4px 0; } + .file.is-right .file-name { + border-radius: 4px 0 0 4px; + border-width: 1px 0 1px 1px; + order: -1; } + +.file-label { + align-items: stretch; + display: flex; + cursor: pointer; + justify-content: flex-start; + overflow: hidden; + position: relative; } + .file-label:hover .file-cta { + background-color: #eeeeee; + color: #363636; } + .file-label:hover .file-name { + border-color: #d5d5d5; } + .file-label:active .file-cta { + background-color: #e8e8e8; + color: #363636; } + .file-label:active .file-name { + border-color: #cfcfcf; } + +.file-input { + height: 100%; + left: 0; + opacity: 0; + outline: none; + position: absolute; + top: 0; + width: 100%; } + +.file-cta, +.file-name { + border-color: #dbdbdb; + border-radius: 4px; + font-size: 1em; + padding-left: 1em; + padding-right: 1em; + white-space: nowrap; } + +.file-cta { + background-color: whitesmoke; + color: #4a4a4a; } + +.file-name { + border-color: #dbdbdb; + border-style: solid; + border-width: 1px 1px 1px 0; + display: block; + max-width: 16em; + overflow: hidden; + text-align: left; + text-overflow: ellipsis; } + +.file-icon { + align-items: center; + display: flex; + height: 1em; + justify-content: center; + margin-right: 0.5em; + width: 1em; } + .file-icon .fa { + font-size: 14px; } + +.label { + color: #363636; + display: block; + font-size: 1rem; + font-weight: 700; } + .label:not(:last-child) { + margin-bottom: 0.5em; } + .label.is-small, #documenter .docs-sidebar form.docs-search > input.label { + font-size: 0.75rem; } + .label.is-medium { + font-size: 1.25rem; } + .label.is-large { + font-size: 1.5rem; } + +.help { + display: block; + font-size: 0.75rem; + margin-top: 0.25rem; } + .help.is-white { + color: white; } + .help.is-black { + color: #0a0a0a; } + .help.is-light { + color: whitesmoke; } + .help.is-dark, .content kbd.help { + color: #363636; } + .help.is-primary, .docstring > section > a.help.docs-sourcelink { + color: #4eb5de; } + .help.is-link { + color: #2e63b8; } + .help.is-info { + color: #209cee; } + .help.is-success { + color: #22c35b; } + .help.is-warning { + color: #ffdd57; } + .help.is-danger { + color: #da0b00; } + +.field:not(:last-child) { + margin-bottom: 0.75rem; } + +.field.has-addons { + display: flex; + justify-content: flex-start; } + .field.has-addons .control:not(:last-child) { + margin-right: -1px; } + .field.has-addons .control:not(:first-child):not(:last-child) .button, + .field.has-addons .control:not(:first-child):not(:last-child) .input, + .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input, + .field.has-addons .control:not(:first-child):not(:last-child) .select select { + border-radius: 0; } + .field.has-addons .control:first-child:not(:only-child) .button, + .field.has-addons .control:first-child:not(:only-child) .input, + .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input, + .field.has-addons .control:first-child:not(:only-child) .select select { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + .field.has-addons .control:last-child:not(:only-child) .button, + .field.has-addons .control:last-child:not(:only-child) .input, + .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input, + .field.has-addons .control:last-child:not(:only-child) .select select { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .field.has-addons .control .button:not([disabled]):hover, .field.has-addons .control .button.is-hovered:not([disabled]), + .field.has-addons .control .input:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover, + .field.has-addons .control .input.is-hovered:not([disabled]), + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-hovered:not([disabled]), + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-hovered:not([disabled]), + .field.has-addons .control .select select:not([disabled]):hover, + .field.has-addons .control .select select.is-hovered:not([disabled]) { + z-index: 2; } + .field.has-addons .control .button:not([disabled]):focus, .field.has-addons .control .button.is-focused:not([disabled]), .field.has-addons .control .button:not([disabled]):active, .field.has-addons .control .button.is-active:not([disabled]), + .field.has-addons .control .input:not([disabled]):focus, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus, + .field.has-addons .control .input.is-focused:not([disabled]), + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]), + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]), + .field.has-addons .control .input:not([disabled]):active, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active, + .field.has-addons .control .input.is-active:not([disabled]), + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]), + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]), + .field.has-addons .control .select select:not([disabled]):focus, + .field.has-addons .control .select select.is-focused:not([disabled]), + .field.has-addons .control .select select:not([disabled]):active, + .field.has-addons .control .select select.is-active:not([disabled]) { + z-index: 3; } + .field.has-addons .control .button:not([disabled]):focus:hover, .field.has-addons .control .button.is-focused:not([disabled]):hover, .field.has-addons .control .button:not([disabled]):active:hover, .field.has-addons .control .button.is-active:not([disabled]):hover, + .field.has-addons .control .input:not([disabled]):focus:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover, + .field.has-addons .control .input.is-focused:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]):hover, + .field.has-addons .control .input:not([disabled]):active:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover, + .field.has-addons .control .input.is-active:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]):hover, + .field.has-addons .control .select select:not([disabled]):focus:hover, + .field.has-addons .control .select select.is-focused:not([disabled]):hover, + .field.has-addons .control .select select:not([disabled]):active:hover, + .field.has-addons .control .select select.is-active:not([disabled]):hover { + z-index: 4; } + .field.has-addons .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .field.has-addons.has-addons-centered { + justify-content: center; } + .field.has-addons.has-addons-right { + justify-content: flex-end; } + .field.has-addons.has-addons-fullwidth .control { + flex-grow: 1; + flex-shrink: 0; } + +.field.is-grouped { + display: flex; + justify-content: flex-start; } + .field.is-grouped > .control { + flex-shrink: 0; } + .field.is-grouped > .control:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + .field.is-grouped > .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .field.is-grouped.is-grouped-centered { + justify-content: center; } + .field.is-grouped.is-grouped-right { + justify-content: flex-end; } + .field.is-grouped.is-grouped-multiline { + flex-wrap: wrap; } + .field.is-grouped.is-grouped-multiline > .control:last-child, .field.is-grouped.is-grouped-multiline > .control:not(:last-child) { + margin-bottom: 0.75rem; } + .field.is-grouped.is-grouped-multiline:last-child { + margin-bottom: -0.75rem; } + .field.is-grouped.is-grouped-multiline:not(:last-child) { + margin-bottom: 0; } + +@media screen and (min-width: 769px), print { + .field.is-horizontal { + display: flex; } } + +.field-label .label { + font-size: inherit; } + +@media screen and (max-width: 768px) { + .field-label { + margin-bottom: 0.5rem; } } + +@media screen and (min-width: 769px), print { + .field-label { + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + margin-right: 1.5rem; + text-align: right; } + .field-label.is-small, #documenter .docs-sidebar form.docs-search > input.field-label { + font-size: 0.75rem; + padding-top: 0.375em; } + .field-label.is-normal { + padding-top: 0.375em; } + .field-label.is-medium { + font-size: 1.25rem; + padding-top: 0.375em; } + .field-label.is-large { + font-size: 1.5rem; + padding-top: 0.375em; } } + +.field-body .field .field { + margin-bottom: 0; } + +@media screen and (min-width: 769px), print { + .field-body { + display: flex; + flex-basis: 0; + flex-grow: 5; + flex-shrink: 1; } + .field-body .field { + margin-bottom: 0; } + .field-body > .field { + flex-shrink: 1; } + .field-body > .field:not(.is-narrow) { + flex-grow: 1; } + .field-body > .field:not(:last-child) { + margin-right: 0.75rem; } } + +.control { + box-sizing: border-box; + clear: both; + font-size: 1rem; + position: relative; + text-align: left; } + .control.has-icons-left .input:focus ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon, + .control.has-icons-left .select:focus ~ .icon, .control.has-icons-right .input:focus ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon, + .control.has-icons-right .select:focus ~ .icon { + color: #6b6b6b; } + .control.has-icons-left .input.is-small ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon, + .control.has-icons-left .select.is-small ~ .icon, .control.has-icons-right .input.is-small ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon, + .control.has-icons-right .select.is-small ~ .icon { + font-size: 0.75rem; } + .control.has-icons-left .input.is-medium ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon, + .control.has-icons-left .select.is-medium ~ .icon, .control.has-icons-right .input.is-medium ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon, + .control.has-icons-right .select.is-medium ~ .icon { + font-size: 1.25rem; } + .control.has-icons-left .input.is-large ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon, + .control.has-icons-left .select.is-large ~ .icon, .control.has-icons-right .input.is-large ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon, + .control.has-icons-right .select.is-large ~ .icon { + font-size: 1.5rem; } + .control.has-icons-left .icon, .control.has-icons-right .icon { + color: #dbdbdb; + height: 2.25em; + pointer-events: none; + position: absolute; + top: 0; + width: 2.25em; + z-index: 4; } + .control.has-icons-left .input, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input, + .control.has-icons-left .select select { + padding-left: 2.25em; } + .control.has-icons-left .icon.is-left { + left: 0; } + .control.has-icons-right .input, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input, + .control.has-icons-right .select select { + padding-right: 2.25em; } + .control.has-icons-right .icon.is-right { + right: 0; } + .control.is-loading::after { + position: absolute !important; + right: 0.625em; + top: 0.625em; + z-index: 4; } + .control.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.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 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: #222222; + cursor: default; + pointer-events: none; } + .breadcrumb li + li::before { + color: #b5b5b5; + content: "\0002f"; } + .breadcrumb ul, + .breadcrumb ol { + align-items: flex-start; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .breadcrumb .icon:first-child { + margin-right: 0.5em; } + .breadcrumb .icon:last-child { + margin-left: 0.5em; } + .breadcrumb.is-centered ol, + .breadcrumb.is-centered ul { + justify-content: center; } + .breadcrumb.is-right ol, + .breadcrumb.is-right ul { + justify-content: flex-end; } + .breadcrumb.is-small, #documenter .docs-sidebar form.docs-search > input.breadcrumb { + font-size: 0.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: white; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #222222; + max-width: 100%; + position: relative; } + +.card-header { + background-color: transparent; + align-items: stretch; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + display: flex; } + +.card-header-title { + align-items: center; + color: #222222; + display: flex; + flex-grow: 1; + font-weight: 700; + padding: 0.75rem; } + .card-header-title.is-centered { + justify-content: center; } + +.card-header-icon { + align-items: center; + cursor: pointer; + display: flex; + justify-content: center; + padding: 0.75rem; } + +.card-image { + display: block; + position: relative; } + +.card-content { + background-color: transparent; + padding: 1.5rem; } + +.card-footer { + background-color: transparent; + border-top: 1px solid #dbdbdb; + align-items: stretch; + display: flex; } + +.card-footer-item { + align-items: center; + display: flex; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + justify-content: center; + padding: 0.75rem; } + .card-footer-item:not(:last-child) { + border-right: 1px solid #dbdbdb; } + +.card .media:not(:last-child) { + margin-bottom: 1.5rem; } + +.dropdown { + display: inline-flex; + position: relative; + vertical-align: top; } + .dropdown.is-active .dropdown-menu, .dropdown.is-hoverable:hover .dropdown-menu { + display: block; } + .dropdown.is-right .dropdown-menu { + left: auto; + right: 0; } + .dropdown.is-up .dropdown-menu { + bottom: 100%; + padding-bottom: 4px; + padding-top: initial; + top: auto; } + +.dropdown-menu { + display: none; + left: 0; + min-width: 12rem; + padding-top: 4px; + position: absolute; + top: 100%; + z-index: 20; } + +.dropdown-content { + background-color: white; + border-radius: 4px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + +.dropdown-item { + color: #4a4a4a; + display: block; + font-size: 0.875rem; + line-height: 1.5; + padding: 0.375rem 1rem; + position: relative; } + +a.dropdown-item, +button.dropdown-item { + padding-right: 3rem; + text-align: left; + white-space: nowrap; + width: 100%; } + a.dropdown-item:hover, + button.dropdown-item:hover { + background-color: whitesmoke; + color: #0a0a0a; } + a.dropdown-item.is-active, + button.dropdown-item.is-active { + background-color: #2e63b8; + color: #fff; } + +.dropdown-divider { + background-color: #dbdbdb; + border: none; + display: block; + height: 1px; + margin: 0.5rem 0; } + +.level { + align-items: center; + justify-content: space-between; } + .level code { + border-radius: 4px; } + .level img { + display: inline-block; + vertical-align: top; } + .level.is-mobile { + display: flex; } + .level.is-mobile .level-left, + .level.is-mobile .level-right { + display: flex; } + .level.is-mobile .level-left + .level-right { + margin-top: 0; } + .level.is-mobile .level-item:not(:last-child) { + margin-bottom: 0; + margin-right: 0.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: 0.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: 0.75rem; } } +.level-left { + align-items: center; + justify-content: flex-start; } + @media screen and (max-width: 768px) { + .level-left + .level-right { + margin-top: 1.5rem; } } + @media screen and (min-width: 769px), print { + .level-left { + display: flex; } } +.level-right { + align-items: center; + justify-content: flex-end; } + @media screen and (min-width: 769px), print { + .level-right { + display: flex; } } +.list { + background-color: white; + border-radius: 4px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); } + +.list-item { + display: block; + padding: 0.5em 1em; } + .list-item:not(a) { + color: #222222; } + .list-item:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; } + .list-item:last-child { + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; } + .list-item:not(:last-child) { + border-bottom: 1px solid #dbdbdb; } + .list-item.is-active { + background-color: #2e63b8; + color: #fff; } + +a.list-item { + background-color: whitesmoke; + cursor: pointer; } + +.media { + align-items: flex-start; + display: flex; + text-align: left; } + .media .content:not(:last-child) { + margin-bottom: 0.75rem; } + .media .media { + border-top: 1px solid rgba(219, 219, 219, 0.5); + display: flex; + padding-top: 0.75rem; } + .media .media .content:not(:last-child), + .media .media .control:not(:last-child) { + margin-bottom: 0.5rem; } + .media .media .media { + padding-top: 0.5rem; } + .media .media .media + .media { + margin-top: 0.5rem; } + .media + .media { + border-top: 1px solid rgba(219, 219, 219, 0.5); + margin-top: 1rem; + padding-top: 1rem; } + .media.is-large + .media { + margin-top: 1.5rem; + padding-top: 1.5rem; } + +.media-left, +.media-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + +.media-left { + margin-right: 1rem; } + +.media-right { + margin-left: 1rem; } + +.media-content { + flex-basis: auto; + flex-grow: 1; + flex-shrink: 1; + text-align: left; } + +@media screen and (max-width: 768px) { + .media-content { + overflow-x: auto; } } + +.menu { + font-size: 1rem; } + .menu.is-small, #documenter .docs-sidebar form.docs-search > input.menu { + font-size: 0.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: #222222; + display: block; + padding: 0.5em 0.75em; } + .menu-list a:hover { + background-color: whitesmoke; + color: #222222; } + .menu-list a.is-active { + background-color: #2e63b8; + color: #fff; } + .menu-list li ul { + border-left: 1px solid #dbdbdb; + margin: 0.75em; + padding-left: 0.75em; } + +.menu-label { + color: #6b6b6b; + font-size: 0.75em; + letter-spacing: 0.1em; + text-transform: uppercase; } + .menu-label:not(:first-child) { + margin-top: 1em; } + .menu-label:not(:last-child) { + margin-bottom: 1em; } + +.message { + background-color: whitesmoke; + 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: 0.75rem; } + .message.is-medium { + font-size: 1.25rem; } + .message.is-large { + font-size: 1.5rem; } + .message.is-white { + background-color: white; } + .message.is-white .message-header { + background-color: white; + color: #0a0a0a; } + .message.is-white .message-body { + border-color: white; + color: #4d4d4d; } + .message.is-black { + background-color: #fafafa; } + .message.is-black .message-header { + background-color: #0a0a0a; + color: white; } + .message.is-black .message-body { + border-color: #0a0a0a; + color: #090909; } + .message.is-light { + background-color: #fafafa; } + .message.is-light .message-header { + background-color: whitesmoke; + color: #363636; } + .message.is-light .message-body { + border-color: whitesmoke; + color: #505050; } + .message.is-dark, .content kbd.message { + background-color: #fafafa; } + .message.is-dark .message-header, .content kbd.message .message-header { + background-color: #363636; + color: whitesmoke; } + .message.is-dark .message-body, .content kbd.message .message-body { + border-color: #363636; + color: #2a2a2a; } + .message.is-primary, .docstring > section > a.message.docs-sourcelink { + background-color: #f6fbfd; } + .message.is-primary .message-header, .docstring > section > a.message.docs-sourcelink .message-header { + background-color: #4eb5de; + color: #fff; } + .message.is-primary .message-body, .docstring > section > a.message.docs-sourcelink .message-body { + border-color: #4eb5de; + color: #1f556a; } + .message.is-link { + background-color: #f7f9fd; } + .message.is-link .message-header { + background-color: #2e63b8; + color: #fff; } + .message.is-link .message-body { + border-color: #2e63b8; + color: #264981; } + .message.is-info { + background-color: #f6fbfe; } + .message.is-info .message-header { + background-color: #209cee; + color: #fff; } + .message.is-info .message-body { + border-color: #209cee; + color: #12537d; } + .message.is-success { + background-color: #f6fdf9; } + .message.is-success .message-header { + background-color: #22c35b; + color: #fff; } + .message.is-success .message-body { + border-color: #22c35b; + color: #0f361d; } + .message.is-warning { + background-color: #fffdf5; } + .message.is-warning .message-header { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .message.is-warning .message-body { + border-color: #ffdd57; + color: #3c3108; } + .message.is-danger { + background-color: #fff5f5; } + .message.is-danger .message-header { + background-color: #da0b00; + color: #fff; } + .message.is-danger .message-body { + border-color: #da0b00; + color: #9b0c04; } + +.message-header { + align-items: center; + background-color: #222222; + border-radius: 4px 4px 0 0; + color: #fff; + display: flex; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em 1em; + position: relative; } + .message-header .delete { + flex-grow: 0; + flex-shrink: 0; + margin-left: 0.75em; } + .message-header + .message-body { + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; } + +.message-body { + border-color: #dbdbdb; + border-radius: 4px; + border-style: solid; + border-width: 0 0 0 4px; + color: #222222; + padding: 1.25em 1.5em; } + .message-body code, + .message-body pre { + background-color: white; } + .message-body pre code { + background-color: transparent; } + +.modal { + align-items: center; + display: none; + flex-direction: column; + justify-content: center; + overflow: hidden; + position: fixed; + z-index: 40; } + .modal.is-active { + display: flex; } + +.modal-background { + background-color: rgba(10, 10, 10, 0.86); } + +.modal-content, +.modal-card { + margin: 0 20px; + max-height: calc(100vh - 160px); + overflow: auto; + position: relative; + width: 100%; } + @media screen and (min-width: 769px), print { + .modal-content, + .modal-card { + margin: 0 auto; + max-height: calc(100vh - 40px); + width: 640px; } } +.modal-close { + background: none; + height: 40px; + position: fixed; + right: 20px; + top: 20px; + width: 40px; } + +.modal-card { + display: flex; + flex-direction: column; + max-height: calc(100vh - 40px); + overflow: hidden; + -ms-overflow-y: visible; } + +.modal-card-head, +.modal-card-foot { + align-items: center; + background-color: whitesmoke; + 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: #222222; + flex-grow: 1; + flex-shrink: 0; + font-size: 1.5rem; + line-height: 1; } + +.modal-card-foot { + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + border-top: 1px solid #dbdbdb; } + .modal-card-foot .button:not(:last-child) { + margin-right: 0.5em; } + +.modal-card-body { + -webkit-overflow-scrolling: touch; + background-color: white; + flex-grow: 1; + flex-shrink: 1; + overflow: auto; + padding: 20px; } + +.navbar { + background-color: white; + min-height: 3.25rem; + position: relative; + z-index: 30; } + .navbar.is-white { + background-color: white; + 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: white; + color: #0a0a0a; } } + .navbar.is-black { + background-color: #0a0a0a; + color: white; } + .navbar.is-black .navbar-brand > .navbar-item, + .navbar.is-black .navbar-brand .navbar-link { + color: white; } + .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: black; + color: white; } + .navbar.is-black .navbar-brand .navbar-link::after { + border-color: white; } + .navbar.is-black .navbar-burger { + color: white; } + @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: white; } + .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: black; + color: white; } + .navbar.is-black .navbar-start .navbar-link::after, + .navbar.is-black .navbar-end .navbar-link::after { + border-color: white; } + .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: black; + color: white; } + .navbar.is-black .navbar-dropdown a.navbar-item.is-active { + background-color: #0a0a0a; + color: white; } } + .navbar.is-light { + background-color: whitesmoke; + color: #363636; } + .navbar.is-light .navbar-brand > .navbar-item, + .navbar.is-light .navbar-brand .navbar-link { + color: #363636; } + .navbar.is-light .navbar-brand > a.navbar-item:focus, .navbar.is-light .navbar-brand > a.navbar-item:hover, .navbar.is-light .navbar-brand > a.navbar-item.is-active, + .navbar.is-light .navbar-brand .navbar-link:focus, + .navbar.is-light .navbar-brand .navbar-link:hover, + .navbar.is-light .navbar-brand .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-brand .navbar-link::after { + border-color: #363636; } + .navbar.is-light .navbar-burger { + color: #363636; } + @media screen and (min-width: 1056px) { + .navbar.is-light .navbar-start > .navbar-item, + .navbar.is-light .navbar-start .navbar-link, + .navbar.is-light .navbar-end > .navbar-item, + .navbar.is-light .navbar-end .navbar-link { + color: #363636; } + .navbar.is-light .navbar-start > a.navbar-item:focus, .navbar.is-light .navbar-start > a.navbar-item:hover, .navbar.is-light .navbar-start > a.navbar-item.is-active, + .navbar.is-light .navbar-start .navbar-link:focus, + .navbar.is-light .navbar-start .navbar-link:hover, + .navbar.is-light .navbar-start .navbar-link.is-active, + .navbar.is-light .navbar-end > a.navbar-item:focus, + .navbar.is-light .navbar-end > a.navbar-item:hover, + .navbar.is-light .navbar-end > a.navbar-item.is-active, + .navbar.is-light .navbar-end .navbar-link:focus, + .navbar.is-light .navbar-end .navbar-link:hover, + .navbar.is-light .navbar-end .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-start .navbar-link::after, + .navbar.is-light .navbar-end .navbar-link::after { + border-color: #363636; } + .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #363636; } } + .navbar.is-dark, .content kbd.navbar { + background-color: #363636; + color: whitesmoke; } + .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: whitesmoke; } + .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: whitesmoke; } + .navbar.is-dark .navbar-brand .navbar-link::after, .content kbd.navbar .navbar-brand .navbar-link::after { + border-color: whitesmoke; } + .navbar.is-dark .navbar-burger, .content kbd.navbar .navbar-burger { + color: whitesmoke; } + @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: whitesmoke; } + .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: whitesmoke; } + .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: whitesmoke; } + .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: whitesmoke; } + .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, .content kbd.navbar .navbar-dropdown a.navbar-item.is-active { + background-color: #363636; + color: whitesmoke; } } + .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 whitesmoke; } + .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 whitesmoke; } + .navbar.is-fixed-top { + top: 0; } + +html.has-navbar-fixed-top, +body.has-navbar-fixed-top { + padding-top: 3.25rem; } + +html.has-navbar-fixed-bottom, +body.has-navbar-fixed-bottom { + padding-bottom: 3.25rem; } + +.navbar-brand, +.navbar-tabs { + align-items: stretch; + display: flex; + flex-shrink: 0; + min-height: 3.25rem; } + +.navbar-brand a.navbar-item:focus, .navbar-brand a.navbar-item:hover { + background-color: transparent; } + +.navbar-tabs { + -webkit-overflow-scrolling: touch; + max-width: 100vw; + overflow-x: auto; + overflow-y: hidden; } + +.navbar-burger { + color: #4a4a4a; + cursor: pointer; + display: block; + height: 3.25rem; + position: relative; + width: 3.25rem; + margin-left: auto; } + .navbar-burger span { + background-color: currentColor; + display: block; + height: 1px; + left: calc(50% - 8px); + position: absolute; + transform-origin: center; + transition-duration: 86ms; + transition-property: background-color, opacity, transform; + transition-timing-function: ease-out; + width: 16px; } + .navbar-burger span:nth-child(1) { + top: calc(50% - 6px); } + .navbar-burger span:nth-child(2) { + top: calc(50% - 1px); } + .navbar-burger span:nth-child(3) { + top: calc(50% + 4px); } + .navbar-burger:hover { + background-color: rgba(0, 0, 0, 0.05); } + .navbar-burger.is-active span:nth-child(1) { + transform: translateY(5px) rotate(45deg); } + .navbar-burger.is-active span:nth-child(2) { + opacity: 0; } + .navbar-burger.is-active span:nth-child(3) { + transform: translateY(-5px) rotate(-45deg); } + +.navbar-menu { + display: none; } + +.navbar-item, +.navbar-link { + color: #4a4a4a; + display: block; + line-height: 1.5; + padding: 0.5rem 0.75rem; + position: relative; } + .navbar-item .icon:only-child, + .navbar-link .icon:only-child { + margin-left: -0.25rem; + margin-right: -0.25rem; } + +a.navbar-item, +.navbar-link { + cursor: pointer; } + a.navbar-item:focus, a.navbar-item:focus-within, a.navbar-item:hover, a.navbar-item.is-active, + .navbar-link:focus, + .navbar-link:focus-within, + .navbar-link:hover, + .navbar-link.is-active { + background-color: #fafafa; + color: #2e63b8; } + +.navbar-item { + display: block; + flex-grow: 0; + flex-shrink: 0; } + .navbar-item img { + max-height: 1.75rem; } + .navbar-item.has-dropdown { + padding: 0; } + .navbar-item.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .navbar-item.is-tab { + border-bottom: 1px solid transparent; + min-height: 3.25rem; + padding-bottom: calc(0.5rem - 1px); } + .navbar-item.is-tab:focus, .navbar-item.is-tab:hover { + background-color: transparent; + border-bottom-color: #2e63b8; } + .navbar-item.is-tab.is-active { + background-color: transparent; + 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: whitesmoke; + 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: white; + 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: whitesmoke; + color: #0a0a0a; } + .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #2e63b8; } + .navbar-burger { + display: none; } + .navbar-item, + .navbar-link { + align-items: center; + display: flex; } + .navbar-item { + display: flex; } + .navbar-item.has-dropdown { + align-items: stretch; } + .navbar-item.has-dropdown-up .navbar-link::after { + transform: rotate(135deg) translate(0.25em, -0.25em); } + .navbar-item.has-dropdown-up .navbar-dropdown { + border-bottom: 2px solid #dbdbdb; + border-radius: 6px 6px 0 0; + border-top: none; + bottom: 100%; + box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1); + top: auto; } + .navbar-item.is-active .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown { + display: block; } + .navbar.is-spaced .navbar-item.is-active .navbar-dropdown, .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed { + opacity: 1; + pointer-events: auto; + transform: translateY(0); } + .navbar-menu { + flex-grow: 1; + flex-shrink: 0; } + .navbar-start { + justify-content: flex-start; + margin-right: auto; } + .navbar-end { + justify-content: flex-end; + margin-left: auto; } + .navbar-dropdown { + background-color: white; + 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: whitesmoke; + color: #0a0a0a; } + .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + 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: transparent; } + .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: -0.25rem; } + .pagination.is-small, #documenter .docs-sidebar form.docs-search > input.pagination { + font-size: 0.75rem; } + .pagination.is-medium { + font-size: 1.25rem; } + .pagination.is-large { + font-size: 1.5rem; } + .pagination.is-rounded .pagination-previous, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous, + .pagination.is-rounded .pagination-next, + #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next { + padding-left: 1em; + padding-right: 1em; + border-radius: 290486px; } + .pagination.is-rounded .pagination-link, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link { + border-radius: 290486px; } + +.pagination, +.pagination-list { + align-items: center; + display: flex; + justify-content: center; + text-align: center; } + +.pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis { + font-size: 1em; + justify-content: center; + margin: 0.25rem; + padding-left: 0.5em; + padding-right: 0.5em; + text-align: center; } + +.pagination-previous, +.pagination-next, +.pagination-link { + border-color: #dbdbdb; + color: #363636; + min-width: 2.25em; } + .pagination-previous:hover, + .pagination-next:hover, + .pagination-link:hover { + border-color: #b5b5b5; + color: #363636; } + .pagination-previous:focus, + .pagination-next:focus, + .pagination-link:focus { + border-color: #3c5dcd; } + .pagination-previous:active, + .pagination-next:active, + .pagination-link:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); } + .pagination-previous[disabled], + .pagination-next[disabled], + .pagination-link[disabled] { + background-color: #dbdbdb; + border-color: #dbdbdb; + box-shadow: none; + color: #6b6b6b; + opacity: 0.5; } + +.pagination-previous, +.pagination-next { + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + +.pagination-link.is-current { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + +.pagination-ellipsis { + color: #b5b5b5; + pointer-events: none; } + +.pagination-list { + flex-wrap: wrap; } + +@media screen and (max-width: 768px) { + .pagination { + flex-wrap: wrap; } + .pagination-previous, + .pagination-next { + flex-grow: 1; + flex-shrink: 1; } + .pagination-list li { + flex-grow: 1; + flex-shrink: 1; } } + +@media screen and (min-width: 769px), print { + .pagination-list { + flex-grow: 1; + flex-shrink: 1; + justify-content: flex-start; + order: 1; } + .pagination-previous { + order: 2; } + .pagination-next { + order: 3; } + .pagination { + justify-content: space-between; } + .pagination.is-centered .pagination-previous { + order: 1; } + .pagination.is-centered .pagination-list { + justify-content: center; + order: 2; } + .pagination.is-centered .pagination-next { + order: 3; } + .pagination.is-right .pagination-previous { + order: 1; } + .pagination.is-right .pagination-next { + order: 2; } + .pagination.is-right .pagination-list { + justify-content: flex-end; + order: 3; } } + +.panel { + font-size: 1rem; } + .panel:not(:last-child) { + margin-bottom: 1.5rem; } + +.panel-heading, +.panel-tabs, +.panel-block { + border-bottom: 1px solid #dbdbdb; + border-left: 1px solid #dbdbdb; + border-right: 1px solid #dbdbdb; } + .panel-heading:first-child, + .panel-tabs:first-child, + .panel-block:first-child { + border-top: 1px solid #dbdbdb; } + +.panel-heading { + background-color: whitesmoke; + border-radius: 4px 4px 0 0; + color: #222222; + font-size: 1.25em; + font-weight: 300; + line-height: 1.25; + padding: 0.5em 0.75em; } + +.panel-tabs { + align-items: flex-end; + display: flex; + font-size: 0.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: #222222; } + .panel-list a:hover { + color: #2e63b8; } + +.panel-block { + align-items: center; + color: #222222; + display: flex; + justify-content: flex-start; + padding: 0.5em 0.75em; } + .panel-block input[type="checkbox"] { + margin-right: 0.75em; } + .panel-block > .control { + flex-grow: 1; + flex-shrink: 1; + width: 100%; } + .panel-block.is-wrapped { + flex-wrap: wrap; } + .panel-block.is-active { + border-left-color: #2e63b8; + color: #363636; } + .panel-block.is-active .panel-icon { + color: #2e63b8; } + +a.panel-block, +label.panel-block { + cursor: pointer; } + a.panel-block:hover, + label.panel-block:hover { + background-color: whitesmoke; } + +.panel-icon { + display: inline-block; + font-size: 14px; + height: 1em; + line-height: 1em; + text-align: center; + vertical-align: top; + width: 1em; + color: #6b6b6b; + margin-right: 0.75em; } + .panel-icon .fa { + font-size: inherit; + line-height: inherit; } + +.tabs { + -webkit-overflow-scrolling: touch; + align-items: stretch; + display: flex; + font-size: 1rem; + justify-content: space-between; + overflow: hidden; + overflow-x: auto; + white-space: nowrap; } + .tabs a { + align-items: center; + border-bottom-color: #dbdbdb; + border-bottom-style: solid; + border-bottom-width: 1px; + color: #222222; + display: flex; + justify-content: center; + margin-bottom: -1px; + padding: 0.5em 1em; + vertical-align: top; } + .tabs a:hover { + border-bottom-color: #222222; + color: #222222; } + .tabs li { + display: block; } + .tabs li.is-active a { + border-bottom-color: #2e63b8; + color: #2e63b8; } + .tabs ul { + align-items: center; + border-bottom-color: #dbdbdb; + border-bottom-style: solid; + border-bottom-width: 1px; + display: flex; + flex-grow: 1; + flex-shrink: 0; + justify-content: flex-start; } + .tabs ul.is-left { + padding-right: 0.75em; } + .tabs ul.is-center { + flex: none; + justify-content: center; + padding-left: 0.75em; + padding-right: 0.75em; } + .tabs ul.is-right { + justify-content: flex-end; + padding-left: 0.75em; } + .tabs .icon:first-child { + margin-right: 0.5em; } + .tabs .icon:last-child { + margin-left: 0.5em; } + .tabs.is-centered ul { + justify-content: center; } + .tabs.is-right ul { + justify-content: flex-end; } + .tabs.is-boxed a { + border: 1px solid transparent; + border-radius: 4px 4px 0 0; } + .tabs.is-boxed a:hover { + background-color: whitesmoke; + border-bottom-color: #dbdbdb; } + .tabs.is-boxed li.is-active a { + background-color: white; + border-color: #dbdbdb; + border-bottom-color: transparent !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: whitesmoke; + border-color: #b5b5b5; + z-index: 2; } + .tabs.is-toggle li + li { + margin-left: -1px; } + .tabs.is-toggle li:first-child a { + border-radius: 4px 0 0 4px; } + .tabs.is-toggle li:last-child a { + border-radius: 0 4px 4px 0; } + .tabs.is-toggle li.is-active a { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; + z-index: 1; } + .tabs.is-toggle ul { + border-bottom: none; } + .tabs.is-toggle.is-toggle-rounded li:first-child a { + border-bottom-left-radius: 290486px; + border-top-left-radius: 290486px; + padding-left: 1.25em; } + .tabs.is-toggle.is-toggle-rounded li:last-child a { + border-bottom-right-radius: 290486px; + border-top-right-radius: 290486px; + padding-right: 1.25em; } + .tabs.is-small, #documenter .docs-sidebar form.docs-search > input.tabs { + font-size: 0.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: 0.75rem; } + .columns.is-mobile > .column.is-narrow { + flex: none; } + .columns.is-mobile > .column.is-full { + flex: none; + width: 100%; } + .columns.is-mobile > .column.is-three-quarters { + flex: none; + width: 75%; } + .columns.is-mobile > .column.is-two-thirds { + flex: none; + width: 66.6666%; } + .columns.is-mobile > .column.is-half { + flex: none; + width: 50%; } + .columns.is-mobile > .column.is-one-third { + flex: none; + width: 33.3333%; } + .columns.is-mobile > .column.is-one-quarter { + flex: none; + width: 25%; } + .columns.is-mobile > .column.is-one-fifth { + flex: none; + width: 20%; } + .columns.is-mobile > .column.is-two-fifths { + flex: none; + width: 40%; } + .columns.is-mobile > .column.is-three-fifths { + flex: none; + width: 60%; } + .columns.is-mobile > .column.is-four-fifths { + flex: none; + width: 80%; } + .columns.is-mobile > .column.is-offset-three-quarters { + margin-left: 75%; } + .columns.is-mobile > .column.is-offset-two-thirds { + margin-left: 66.6666%; } + .columns.is-mobile > .column.is-offset-half { + margin-left: 50%; } + .columns.is-mobile > .column.is-offset-one-third { + margin-left: 33.3333%; } + .columns.is-mobile > .column.is-offset-one-quarter { + margin-left: 25%; } + .columns.is-mobile > .column.is-offset-one-fifth { + margin-left: 20%; } + .columns.is-mobile > .column.is-offset-two-fifths { + margin-left: 40%; } + .columns.is-mobile > .column.is-offset-three-fifths { + margin-left: 60%; } + .columns.is-mobile > .column.is-offset-four-fifths { + margin-left: 80%; } + .columns.is-mobile > .column.is-0 { + flex: none; + width: 0%; } + .columns.is-mobile > .column.is-offset-0 { + margin-left: 0%; } + .columns.is-mobile > .column.is-1 { + flex: none; + width: 8.3333333333%; } + .columns.is-mobile > .column.is-offset-1 { + margin-left: 8.3333333333%; } + .columns.is-mobile > .column.is-2 { + flex: none; + width: 16.6666666667%; } + .columns.is-mobile > .column.is-offset-2 { + margin-left: 16.6666666667%; } + .columns.is-mobile > .column.is-3 { + flex: none; + width: 25%; } + .columns.is-mobile > .column.is-offset-3 { + margin-left: 25%; } + .columns.is-mobile > .column.is-4 { + flex: none; + width: 33.3333333333%; } + .columns.is-mobile > .column.is-offset-4 { + margin-left: 33.3333333333%; } + .columns.is-mobile > .column.is-5 { + flex: none; + width: 41.6666666667%; } + .columns.is-mobile > .column.is-offset-5 { + margin-left: 41.6666666667%; } + .columns.is-mobile > .column.is-6 { + flex: none; + width: 50%; } + .columns.is-mobile > .column.is-offset-6 { + margin-left: 50%; } + .columns.is-mobile > .column.is-7 { + flex: none; + width: 58.3333333333%; } + .columns.is-mobile > .column.is-offset-7 { + margin-left: 58.3333333333%; } + .columns.is-mobile > .column.is-8 { + flex: none; + width: 66.6666666667%; } + .columns.is-mobile > .column.is-offset-8 { + margin-left: 66.6666666667%; } + .columns.is-mobile > .column.is-9 { + flex: none; + width: 75%; } + .columns.is-mobile > .column.is-offset-9 { + margin-left: 75%; } + .columns.is-mobile > .column.is-10 { + flex: none; + width: 83.3333333333%; } + .columns.is-mobile > .column.is-offset-10 { + margin-left: 83.3333333333%; } + .columns.is-mobile > .column.is-11 { + flex: none; + width: 91.6666666667%; } + .columns.is-mobile > .column.is-offset-11 { + margin-left: 91.6666666667%; } + .columns.is-mobile > .column.is-12 { + flex: none; + width: 100%; } + .columns.is-mobile > .column.is-offset-12 { + margin-left: 100%; } + @media screen and (max-width: 768px) { + .column.is-narrow-mobile { + flex: none; } + .column.is-full-mobile { + flex: none; + width: 100%; } + .column.is-three-quarters-mobile { + flex: none; + width: 75%; } + .column.is-two-thirds-mobile { + flex: none; + width: 66.6666%; } + .column.is-half-mobile { + flex: none; + width: 50%; } + .column.is-one-third-mobile { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-mobile { + flex: none; + width: 25%; } + .column.is-one-fifth-mobile { + flex: none; + width: 20%; } + .column.is-two-fifths-mobile { + flex: none; + width: 40%; } + .column.is-three-fifths-mobile { + flex: none; + width: 60%; } + .column.is-four-fifths-mobile { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-mobile { + margin-left: 75%; } + .column.is-offset-two-thirds-mobile { + margin-left: 66.6666%; } + .column.is-offset-half-mobile { + margin-left: 50%; } + .column.is-offset-one-third-mobile { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-mobile { + margin-left: 25%; } + .column.is-offset-one-fifth-mobile { + margin-left: 20%; } + .column.is-offset-two-fifths-mobile { + margin-left: 40%; } + .column.is-offset-three-fifths-mobile { + margin-left: 60%; } + .column.is-offset-four-fifths-mobile { + margin-left: 80%; } + .column.is-0-mobile { + flex: none; + width: 0%; } + .column.is-offset-0-mobile { + margin-left: 0%; } + .column.is-1-mobile { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-mobile { + margin-left: 8.3333333333%; } + .column.is-2-mobile { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-mobile { + margin-left: 16.6666666667%; } + .column.is-3-mobile { + flex: none; + width: 25%; } + .column.is-offset-3-mobile { + margin-left: 25%; } + .column.is-4-mobile { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-mobile { + margin-left: 33.3333333333%; } + .column.is-5-mobile { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-mobile { + margin-left: 41.6666666667%; } + .column.is-6-mobile { + flex: none; + width: 50%; } + .column.is-offset-6-mobile { + margin-left: 50%; } + .column.is-7-mobile { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-mobile { + margin-left: 58.3333333333%; } + .column.is-8-mobile { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-mobile { + margin-left: 66.6666666667%; } + .column.is-9-mobile { + flex: none; + width: 75%; } + .column.is-offset-9-mobile { + margin-left: 75%; } + .column.is-10-mobile { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-mobile { + margin-left: 83.3333333333%; } + .column.is-11-mobile { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-mobile { + margin-left: 91.6666666667%; } + .column.is-12-mobile { + flex: none; + width: 100%; } + .column.is-offset-12-mobile { + margin-left: 100%; } } + @media screen and (min-width: 769px), print { + .column.is-narrow, .column.is-narrow-tablet { + flex: none; } + .column.is-full, .column.is-full-tablet { + flex: none; + width: 100%; } + .column.is-three-quarters, .column.is-three-quarters-tablet { + flex: none; + width: 75%; } + .column.is-two-thirds, .column.is-two-thirds-tablet { + flex: none; + width: 66.6666%; } + .column.is-half, .column.is-half-tablet { + flex: none; + width: 50%; } + .column.is-one-third, .column.is-one-third-tablet { + flex: none; + width: 33.3333%; } + .column.is-one-quarter, .column.is-one-quarter-tablet { + flex: none; + width: 25%; } + .column.is-one-fifth, .column.is-one-fifth-tablet { + flex: none; + width: 20%; } + .column.is-two-fifths, .column.is-two-fifths-tablet { + flex: none; + width: 40%; } + .column.is-three-fifths, .column.is-three-fifths-tablet { + flex: none; + width: 60%; } + .column.is-four-fifths, .column.is-four-fifths-tablet { + flex: none; + width: 80%; } + .column.is-offset-three-quarters, .column.is-offset-three-quarters-tablet { + margin-left: 75%; } + .column.is-offset-two-thirds, .column.is-offset-two-thirds-tablet { + margin-left: 66.6666%; } + .column.is-offset-half, .column.is-offset-half-tablet { + margin-left: 50%; } + .column.is-offset-one-third, .column.is-offset-one-third-tablet { + margin-left: 33.3333%; } + .column.is-offset-one-quarter, .column.is-offset-one-quarter-tablet { + margin-left: 25%; } + .column.is-offset-one-fifth, .column.is-offset-one-fifth-tablet { + margin-left: 20%; } + .column.is-offset-two-fifths, .column.is-offset-two-fifths-tablet { + margin-left: 40%; } + .column.is-offset-three-fifths, .column.is-offset-three-fifths-tablet { + margin-left: 60%; } + .column.is-offset-four-fifths, .column.is-offset-four-fifths-tablet { + margin-left: 80%; } + .column.is-0, .column.is-0-tablet { + flex: none; + width: 0%; } + .column.is-offset-0, .column.is-offset-0-tablet { + margin-left: 0%; } + .column.is-1, .column.is-1-tablet { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1, .column.is-offset-1-tablet { + margin-left: 8.3333333333%; } + .column.is-2, .column.is-2-tablet { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2, .column.is-offset-2-tablet { + margin-left: 16.6666666667%; } + .column.is-3, .column.is-3-tablet { + flex: none; + width: 25%; } + .column.is-offset-3, .column.is-offset-3-tablet { + margin-left: 25%; } + .column.is-4, .column.is-4-tablet { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4, .column.is-offset-4-tablet { + margin-left: 33.3333333333%; } + .column.is-5, .column.is-5-tablet { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5, .column.is-offset-5-tablet { + margin-left: 41.6666666667%; } + .column.is-6, .column.is-6-tablet { + flex: none; + width: 50%; } + .column.is-offset-6, .column.is-offset-6-tablet { + margin-left: 50%; } + .column.is-7, .column.is-7-tablet { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7, .column.is-offset-7-tablet { + margin-left: 58.3333333333%; } + .column.is-8, .column.is-8-tablet { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8, .column.is-offset-8-tablet { + margin-left: 66.6666666667%; } + .column.is-9, .column.is-9-tablet { + flex: none; + width: 75%; } + .column.is-offset-9, .column.is-offset-9-tablet { + margin-left: 75%; } + .column.is-10, .column.is-10-tablet { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10, .column.is-offset-10-tablet { + margin-left: 83.3333333333%; } + .column.is-11, .column.is-11-tablet { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11, .column.is-offset-11-tablet { + margin-left: 91.6666666667%; } + .column.is-12, .column.is-12-tablet { + flex: none; + width: 100%; } + .column.is-offset-12, .column.is-offset-12-tablet { + margin-left: 100%; } } + @media screen and (max-width: 1055px) { + .column.is-narrow-touch { + flex: none; } + .column.is-full-touch { + flex: none; + width: 100%; } + .column.is-three-quarters-touch { + flex: none; + width: 75%; } + .column.is-two-thirds-touch { + flex: none; + width: 66.6666%; } + .column.is-half-touch { + flex: none; + width: 50%; } + .column.is-one-third-touch { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-touch { + flex: none; + width: 25%; } + .column.is-one-fifth-touch { + flex: none; + width: 20%; } + .column.is-two-fifths-touch { + flex: none; + width: 40%; } + .column.is-three-fifths-touch { + flex: none; + width: 60%; } + .column.is-four-fifths-touch { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-touch { + margin-left: 75%; } + .column.is-offset-two-thirds-touch { + margin-left: 66.6666%; } + .column.is-offset-half-touch { + margin-left: 50%; } + .column.is-offset-one-third-touch { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-touch { + margin-left: 25%; } + .column.is-offset-one-fifth-touch { + margin-left: 20%; } + .column.is-offset-two-fifths-touch { + margin-left: 40%; } + .column.is-offset-three-fifths-touch { + margin-left: 60%; } + .column.is-offset-four-fifths-touch { + margin-left: 80%; } + .column.is-0-touch { + flex: none; + width: 0%; } + .column.is-offset-0-touch { + margin-left: 0%; } + .column.is-1-touch { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-touch { + margin-left: 8.3333333333%; } + .column.is-2-touch { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-touch { + margin-left: 16.6666666667%; } + .column.is-3-touch { + flex: none; + width: 25%; } + .column.is-offset-3-touch { + margin-left: 25%; } + .column.is-4-touch { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-touch { + margin-left: 33.3333333333%; } + .column.is-5-touch { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-touch { + margin-left: 41.6666666667%; } + .column.is-6-touch { + flex: none; + width: 50%; } + .column.is-offset-6-touch { + margin-left: 50%; } + .column.is-7-touch { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-touch { + margin-left: 58.3333333333%; } + .column.is-8-touch { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-touch { + margin-left: 66.6666666667%; } + .column.is-9-touch { + flex: none; + width: 75%; } + .column.is-offset-9-touch { + margin-left: 75%; } + .column.is-10-touch { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-touch { + margin-left: 83.3333333333%; } + .column.is-11-touch { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-touch { + margin-left: 91.6666666667%; } + .column.is-12-touch { + flex: none; + width: 100%; } + .column.is-offset-12-touch { + margin-left: 100%; } } + @media screen and (min-width: 1056px) { + .column.is-narrow-desktop { + flex: none; } + .column.is-full-desktop { + flex: none; + width: 100%; } + .column.is-three-quarters-desktop { + flex: none; + width: 75%; } + .column.is-two-thirds-desktop { + flex: none; + width: 66.6666%; } + .column.is-half-desktop { + flex: none; + width: 50%; } + .column.is-one-third-desktop { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-desktop { + flex: none; + width: 25%; } + .column.is-one-fifth-desktop { + flex: none; + width: 20%; } + .column.is-two-fifths-desktop { + flex: none; + width: 40%; } + .column.is-three-fifths-desktop { + flex: none; + width: 60%; } + .column.is-four-fifths-desktop { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-desktop { + margin-left: 75%; } + .column.is-offset-two-thirds-desktop { + margin-left: 66.6666%; } + .column.is-offset-half-desktop { + margin-left: 50%; } + .column.is-offset-one-third-desktop { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-desktop { + margin-left: 25%; } + .column.is-offset-one-fifth-desktop { + margin-left: 20%; } + .column.is-offset-two-fifths-desktop { + margin-left: 40%; } + .column.is-offset-three-fifths-desktop { + margin-left: 60%; } + .column.is-offset-four-fifths-desktop { + margin-left: 80%; } + .column.is-0-desktop { + flex: none; + width: 0%; } + .column.is-offset-0-desktop { + margin-left: 0%; } + .column.is-1-desktop { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-desktop { + margin-left: 8.3333333333%; } + .column.is-2-desktop { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-desktop { + margin-left: 16.6666666667%; } + .column.is-3-desktop { + flex: none; + width: 25%; } + .column.is-offset-3-desktop { + margin-left: 25%; } + .column.is-4-desktop { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-desktop { + margin-left: 33.3333333333%; } + .column.is-5-desktop { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-desktop { + margin-left: 41.6666666667%; } + .column.is-6-desktop { + flex: none; + width: 50%; } + .column.is-offset-6-desktop { + margin-left: 50%; } + .column.is-7-desktop { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-desktop { + margin-left: 58.3333333333%; } + .column.is-8-desktop { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-desktop { + margin-left: 66.6666666667%; } + .column.is-9-desktop { + flex: none; + width: 75%; } + .column.is-offset-9-desktop { + margin-left: 75%; } + .column.is-10-desktop { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-desktop { + margin-left: 83.3333333333%; } + .column.is-11-desktop { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-desktop { + margin-left: 91.6666666667%; } + .column.is-12-desktop { + flex: none; + width: 100%; } + .column.is-offset-12-desktop { + margin-left: 100%; } } + @media screen and (min-width: 1216px) { + .column.is-narrow-widescreen { + flex: none; } + .column.is-full-widescreen { + flex: none; + width: 100%; } + .column.is-three-quarters-widescreen { + flex: none; + width: 75%; } + .column.is-two-thirds-widescreen { + flex: none; + width: 66.6666%; } + .column.is-half-widescreen { + flex: none; + width: 50%; } + .column.is-one-third-widescreen { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-widescreen { + flex: none; + width: 25%; } + .column.is-one-fifth-widescreen { + flex: none; + width: 20%; } + .column.is-two-fifths-widescreen { + flex: none; + width: 40%; } + .column.is-three-fifths-widescreen { + flex: none; + width: 60%; } + .column.is-four-fifths-widescreen { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-widescreen { + margin-left: 75%; } + .column.is-offset-two-thirds-widescreen { + margin-left: 66.6666%; } + .column.is-offset-half-widescreen { + margin-left: 50%; } + .column.is-offset-one-third-widescreen { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-widescreen { + margin-left: 25%; } + .column.is-offset-one-fifth-widescreen { + margin-left: 20%; } + .column.is-offset-two-fifths-widescreen { + margin-left: 40%; } + .column.is-offset-three-fifths-widescreen { + margin-left: 60%; } + .column.is-offset-four-fifths-widescreen { + margin-left: 80%; } + .column.is-0-widescreen { + flex: none; + width: 0%; } + .column.is-offset-0-widescreen { + margin-left: 0%; } + .column.is-1-widescreen { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-widescreen { + margin-left: 8.3333333333%; } + .column.is-2-widescreen { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-widescreen { + margin-left: 16.6666666667%; } + .column.is-3-widescreen { + flex: none; + width: 25%; } + .column.is-offset-3-widescreen { + margin-left: 25%; } + .column.is-4-widescreen { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-widescreen { + margin-left: 33.3333333333%; } + .column.is-5-widescreen { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-widescreen { + margin-left: 41.6666666667%; } + .column.is-6-widescreen { + flex: none; + width: 50%; } + .column.is-offset-6-widescreen { + margin-left: 50%; } + .column.is-7-widescreen { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-widescreen { + margin-left: 58.3333333333%; } + .column.is-8-widescreen { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-widescreen { + margin-left: 66.6666666667%; } + .column.is-9-widescreen { + flex: none; + width: 75%; } + .column.is-offset-9-widescreen { + margin-left: 75%; } + .column.is-10-widescreen { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-widescreen { + margin-left: 83.3333333333%; } + .column.is-11-widescreen { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-widescreen { + margin-left: 91.6666666667%; } + .column.is-12-widescreen { + flex: none; + width: 100%; } + .column.is-offset-12-widescreen { + margin-left: 100%; } } + @media screen and (min-width: 1408px) { + .column.is-narrow-fullhd { + flex: none; } + .column.is-full-fullhd { + flex: none; + width: 100%; } + .column.is-three-quarters-fullhd { + flex: none; + width: 75%; } + .column.is-two-thirds-fullhd { + flex: none; + width: 66.6666%; } + .column.is-half-fullhd { + flex: none; + width: 50%; } + .column.is-one-third-fullhd { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-fullhd { + flex: none; + width: 25%; } + .column.is-one-fifth-fullhd { + flex: none; + width: 20%; } + .column.is-two-fifths-fullhd { + flex: none; + width: 40%; } + .column.is-three-fifths-fullhd { + flex: none; + width: 60%; } + .column.is-four-fifths-fullhd { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-fullhd { + margin-left: 75%; } + .column.is-offset-two-thirds-fullhd { + margin-left: 66.6666%; } + .column.is-offset-half-fullhd { + margin-left: 50%; } + .column.is-offset-one-third-fullhd { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-fullhd { + margin-left: 25%; } + .column.is-offset-one-fifth-fullhd { + margin-left: 20%; } + .column.is-offset-two-fifths-fullhd { + margin-left: 40%; } + .column.is-offset-three-fifths-fullhd { + margin-left: 60%; } + .column.is-offset-four-fifths-fullhd { + margin-left: 80%; } + .column.is-0-fullhd { + flex: none; + width: 0%; } + .column.is-offset-0-fullhd { + margin-left: 0%; } + .column.is-1-fullhd { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-fullhd { + margin-left: 8.3333333333%; } + .column.is-2-fullhd { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-fullhd { + margin-left: 16.6666666667%; } + .column.is-3-fullhd { + flex: none; + width: 25%; } + .column.is-offset-3-fullhd { + margin-left: 25%; } + .column.is-4-fullhd { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-fullhd { + margin-left: 33.3333333333%; } + .column.is-5-fullhd { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-fullhd { + margin-left: 41.6666666667%; } + .column.is-6-fullhd { + flex: none; + width: 50%; } + .column.is-offset-6-fullhd { + margin-left: 50%; } + .column.is-7-fullhd { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-fullhd { + margin-left: 58.3333333333%; } + .column.is-8-fullhd { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-fullhd { + margin-left: 66.6666666667%; } + .column.is-9-fullhd { + flex: none; + width: 75%; } + .column.is-offset-9-fullhd { + margin-left: 75%; } + .column.is-10-fullhd { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-fullhd { + margin-left: 83.3333333333%; } + .column.is-11-fullhd { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-fullhd { + margin-left: 91.6666666667%; } + .column.is-12-fullhd { + flex: none; + width: 100%; } + .column.is-offset-12-fullhd { + margin-left: 100%; } } +.columns { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + .columns:last-child { + margin-bottom: -0.75rem; } + .columns:not(:last-child) { + margin-bottom: calc(1.5rem - 0.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: 0.25rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-1-mobile { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-1-tablet { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-1-tablet-only { + --columnGap: 0.25rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-1-touch { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-1-desktop { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-1-desktop-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-1-widescreen { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-1-widescreen-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-1-fullhd { + --columnGap: 0.25rem; } } + .columns.is-variable.is-2 { + --columnGap: 0.5rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-2-mobile { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-2-tablet { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-2-tablet-only { + --columnGap: 0.5rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-2-touch { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-2-desktop { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-2-desktop-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-2-widescreen { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-2-widescreen-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-2-fullhd { + --columnGap: 0.5rem; } } + .columns.is-variable.is-3 { + --columnGap: 0.75rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-3-mobile { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-3-tablet { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-3-tablet-only { + --columnGap: 0.75rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-3-touch { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-3-desktop { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-3-desktop-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-3-widescreen { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-3-widescreen-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-3-fullhd { + --columnGap: 0.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: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + .tile.is-ancestor:last-child { + margin-bottom: -0.75rem; } + .tile.is-ancestor:not(:last-child) { + margin-bottom: 0.75rem; } + .tile.is-child { + margin: 0 !important; } + .tile.is-parent { + padding: 0.75rem; } + .tile.is-vertical { + flex-direction: column; } + .tile.is-vertical > .tile.is-child:not(:last-child) { + margin-bottom: 1.5rem !important; } + @media screen and (min-width: 769px), print { + .tile:not(.is-child) { + display: flex; } + .tile.is-1 { + flex: none; + width: 8.3333333333%; } + .tile.is-2 { + flex: none; + width: 16.6666666667%; } + .tile.is-3 { + flex: none; + width: 25%; } + .tile.is-4 { + flex: none; + width: 33.3333333333%; } + .tile.is-5 { + flex: none; + width: 41.6666666667%; } + .tile.is-6 { + flex: none; + width: 50%; } + .tile.is-7 { + flex: none; + width: 58.3333333333%; } + .tile.is-8 { + flex: none; + width: 66.6666666667%; } + .tile.is-9 { + flex: none; + width: 75%; } + .tile.is-10 { + flex: none; + width: 83.3333333333%; } + .tile.is-11 { + flex: none; + width: 91.6666666667%; } + .tile.is-12 { + flex: none; + width: 100%; } } +.hero { + align-items: stretch; + display: flex; + flex-direction: column; + justify-content: space-between; } + .hero .navbar { + background: none; } + .hero .tabs ul { + border-bottom: none; } + .hero.is-white { + background-color: white; + 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: white; } } + .hero.is-white .navbar-item, + .hero.is-white .navbar-link { + color: rgba(10, 10, 10, 0.7); } + .hero.is-white a.navbar-item:hover, .hero.is-white a.navbar-item.is-active, + .hero.is-white .navbar-link:hover, + .hero.is-white .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + .hero.is-white .tabs a { + color: #0a0a0a; + opacity: 0.9; } + .hero.is-white .tabs a:hover { + opacity: 1; } + .hero.is-white .tabs li.is-active a { + opacity: 1; } + .hero.is-white .tabs.is-boxed a, .hero.is-white .tabs.is-toggle a { + color: #0a0a0a; } + .hero.is-white .tabs.is-boxed a:hover, .hero.is-white .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-white .tabs.is-boxed li.is-active a, .hero.is-white .tabs.is-boxed li.is-active a:hover, .hero.is-white .tabs.is-toggle li.is-active a, .hero.is-white .tabs.is-toggle li.is-active a:hover { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .hero.is-white.is-bold { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } + @media screen and (max-width: 768px) { + .hero.is-white.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } } + .hero.is-black { + background-color: #0a0a0a; + color: white; } + .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: white; } + .hero.is-black .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-black .subtitle a:not(.button), + .hero.is-black .subtitle strong { + color: white; } + @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: black; + color: white; } + .hero.is-black .tabs a { + color: white; + opacity: 0.9; } + .hero.is-black .tabs a:hover { + opacity: 1; } + .hero.is-black .tabs li.is-active a { + opacity: 1; } + .hero.is-black .tabs.is-boxed a, .hero.is-black .tabs.is-toggle a { + color: white; } + .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: white; + border-color: white; + color: #0a0a0a; } + .hero.is-black.is-bold { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } + @media screen and (max-width: 768px) { + .hero.is-black.is-bold .navbar-menu { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } } + .hero.is-light { + background-color: whitesmoke; + color: #363636; } + .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-light strong { + color: inherit; } + .hero.is-light .title { + color: #363636; } + .hero.is-light .subtitle { + color: rgba(54, 54, 54, 0.9); } + .hero.is-light .subtitle a:not(.button), + .hero.is-light .subtitle strong { + color: #363636; } + @media screen and (max-width: 1055px) { + .hero.is-light .navbar-menu { + background-color: whitesmoke; } } + .hero.is-light .navbar-item, + .hero.is-light .navbar-link { + color: rgba(54, 54, 54, 0.7); } + .hero.is-light a.navbar-item:hover, .hero.is-light a.navbar-item.is-active, + .hero.is-light .navbar-link:hover, + .hero.is-light .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .hero.is-light .tabs a { + color: #363636; + opacity: 0.9; } + .hero.is-light .tabs a:hover { + opacity: 1; } + .hero.is-light .tabs li.is-active a { + opacity: 1; } + .hero.is-light .tabs.is-boxed a, .hero.is-light .tabs.is-toggle a { + color: #363636; } + .hero.is-light .tabs.is-boxed a:hover, .hero.is-light .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-light .tabs.is-boxed li.is-active a, .hero.is-light .tabs.is-boxed li.is-active a:hover, .hero.is-light .tabs.is-toggle li.is-active a, .hero.is-light .tabs.is-toggle li.is-active a:hover { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .hero.is-light.is-bold { + background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } + @media screen and (max-width: 768px) { + .hero.is-light.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } } + .hero.is-dark, .content kbd.hero { + background-color: #363636; + color: whitesmoke; } + .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: whitesmoke; } + .hero.is-dark .subtitle, .content kbd.hero .subtitle { + color: rgba(245, 245, 245, 0.9); } + .hero.is-dark .subtitle a:not(.button), .content kbd.hero .subtitle a:not(.button), + .hero.is-dark .subtitle strong, + .content kbd.hero .subtitle strong { + color: whitesmoke; } + @media screen and (max-width: 1055px) { + .hero.is-dark .navbar-menu, .content kbd.hero .navbar-menu { + background-color: #363636; } } + .hero.is-dark .navbar-item, .content kbd.hero .navbar-item, + .hero.is-dark .navbar-link, + .content kbd.hero .navbar-link { + color: rgba(245, 245, 245, 0.7); } + .hero.is-dark a.navbar-item:hover, .content kbd.hero a.navbar-item:hover, .hero.is-dark a.navbar-item.is-active, .content kbd.hero a.navbar-item.is-active, + .hero.is-dark .navbar-link:hover, + .content kbd.hero .navbar-link:hover, + .hero.is-dark .navbar-link.is-active, + .content kbd.hero .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; } + .hero.is-dark .tabs a, .content kbd.hero .tabs a { + color: whitesmoke; + opacity: 0.9; } + .hero.is-dark .tabs a:hover, .content kbd.hero .tabs a:hover { + opacity: 1; } + .hero.is-dark .tabs li.is-active a, .content kbd.hero .tabs li.is-active a { + opacity: 1; } + .hero.is-dark .tabs.is-boxed a, .content kbd.hero .tabs.is-boxed a, .hero.is-dark .tabs.is-toggle a, .content kbd.hero .tabs.is-toggle a { + color: whitesmoke; } + .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: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .hero.is-dark.is-bold, .content kbd.hero.is-bold { + background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); } + @media screen and (max-width: 768px) { + .hero.is-dark.is-bold .navbar-menu, .content kbd.hero.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); } } + .hero.is-primary, .docstring > section > a.hero.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-primary strong, + .docstring > section > a.hero.docs-sourcelink strong { + color: inherit; } + .hero.is-primary .title, .docstring > section > a.hero.docs-sourcelink .title { + color: #fff; } + .hero.is-primary .subtitle, .docstring > section > a.hero.docs-sourcelink .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-primary .subtitle a:not(.button), .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button), + .hero.is-primary .subtitle strong, + .docstring > section > a.hero.docs-sourcelink .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-primary .navbar-menu, .docstring > section > a.hero.docs-sourcelink .navbar-menu { + background-color: #4eb5de; } } + .hero.is-primary .navbar-item, .docstring > section > a.hero.docs-sourcelink .navbar-item, + .hero.is-primary .navbar-link, + .docstring > section > a.hero.docs-sourcelink .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-primary a.navbar-item:hover, .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, .hero.is-primary a.navbar-item.is-active, .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active, + .hero.is-primary .navbar-link:hover, + .docstring > section > a.hero.docs-sourcelink .navbar-link:hover, + .hero.is-primary .navbar-link.is-active, + .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active { + background-color: #39acda; + color: #fff; } + .hero.is-primary .tabs a, .docstring > section > a.hero.docs-sourcelink .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-primary .tabs a:hover, .docstring > section > a.hero.docs-sourcelink .tabs a:hover { + opacity: 1; } + .hero.is-primary .tabs li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a { + opacity: 1; } + .hero.is-primary .tabs.is-boxed a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, .hero.is-primary .tabs.is-toggle a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a { + color: #fff; } + .hero.is-primary .tabs.is-boxed a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, .hero.is-primary .tabs.is-toggle a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-primary .tabs.is-boxed li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, .hero.is-primary .tabs.is-boxed li.is-active a:hover, .hero.is-primary .tabs.is-toggle li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, .hero.is-primary .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #4eb5de; } + .hero.is-primary.is-bold, .docstring > section > a.hero.is-bold.docs-sourcelink { + background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); } + @media screen and (max-width: 768px) { + .hero.is-primary.is-bold .navbar-menu, .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu { + background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); } } + .hero.is-link { + background-color: #2e63b8; + color: #fff; } + .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-link strong { + color: inherit; } + .hero.is-link .title { + color: #fff; } + .hero.is-link .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-link .subtitle a:not(.button), + .hero.is-link .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-link .navbar-menu { + background-color: #2e63b8; } } + .hero.is-link .navbar-item, + .hero.is-link .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-link a.navbar-item:hover, .hero.is-link a.navbar-item.is-active, + .hero.is-link .navbar-link:hover, + .hero.is-link .navbar-link.is-active { + background-color: #2958a4; + color: #fff; } + .hero.is-link .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-link .tabs a:hover { + opacity: 1; } + .hero.is-link .tabs li.is-active a { + opacity: 1; } + .hero.is-link .tabs.is-boxed a, .hero.is-link .tabs.is-toggle a { + color: #fff; } + .hero.is-link .tabs.is-boxed a:hover, .hero.is-link .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-link .tabs.is-boxed li.is-active a, .hero.is-link .tabs.is-boxed li.is-active a:hover, .hero.is-link .tabs.is-toggle li.is-active a, .hero.is-link .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #2e63b8; } + .hero.is-link.is-bold { + background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); } + @media screen and (max-width: 768px) { + .hero.is-link.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); } } + .hero.is-info { + background-color: #209cee; + color: #fff; } + .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-info strong { + color: inherit; } + .hero.is-info .title { + color: #fff; } + .hero.is-info .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-info .subtitle a:not(.button), + .hero.is-info .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-info .navbar-menu { + background-color: #209cee; } } + .hero.is-info .navbar-item, + .hero.is-info .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-info a.navbar-item:hover, .hero.is-info a.navbar-item.is-active, + .hero.is-info .navbar-link:hover, + .hero.is-info .navbar-link.is-active { + background-color: #1190e3; + color: #fff; } + .hero.is-info .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-info .tabs a:hover { + opacity: 1; } + .hero.is-info .tabs li.is-active a { + opacity: 1; } + .hero.is-info .tabs.is-boxed a, .hero.is-info .tabs.is-toggle a { + color: #fff; } + .hero.is-info .tabs.is-boxed a:hover, .hero.is-info .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-info .tabs.is-boxed li.is-active a, .hero.is-info .tabs.is-boxed li.is-active a:hover, .hero.is-info .tabs.is-toggle li.is-active a, .hero.is-info .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #209cee; } + .hero.is-info.is-bold { + background-image: linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%); } + @media screen and (max-width: 768px) { + .hero.is-info.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%); } } + .hero.is-success { + background-color: #22c35b; + color: #fff; } + .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-success strong { + color: inherit; } + .hero.is-success .title { + color: #fff; } + .hero.is-success .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-success .subtitle a:not(.button), + .hero.is-success .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-success .navbar-menu { + background-color: #22c35b; } } + .hero.is-success .navbar-item, + .hero.is-success .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-success a.navbar-item:hover, .hero.is-success a.navbar-item.is-active, + .hero.is-success .navbar-link:hover, + .hero.is-success .navbar-link.is-active { + background-color: #1ead51; + color: #fff; } + .hero.is-success .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-success .tabs a:hover { + opacity: 1; } + .hero.is-success .tabs li.is-active a { + opacity: 1; } + .hero.is-success .tabs.is-boxed a, .hero.is-success .tabs.is-toggle a { + color: #fff; } + .hero.is-success .tabs.is-boxed a:hover, .hero.is-success .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-success .tabs.is-boxed li.is-active a, .hero.is-success .tabs.is-boxed li.is-active a:hover, .hero.is-success .tabs.is-toggle li.is-active a, .hero.is-success .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #22c35b; } + .hero.is-success.is-bold { + background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); } + @media screen and (max-width: 768px) { + .hero.is-success.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); } } + .hero.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-warning strong { + color: inherit; } + .hero.is-warning .title { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .subtitle { + color: rgba(0, 0, 0, 0.9); } + .hero.is-warning .subtitle a:not(.button), + .hero.is-warning .subtitle strong { + color: rgba(0, 0, 0, 0.7); } + @media screen and (max-width: 1055px) { + .hero.is-warning .navbar-menu { + background-color: #ffdd57; } } + .hero.is-warning .navbar-item, + .hero.is-warning .navbar-link { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning a.navbar-item:hover, .hero.is-warning a.navbar-item.is-active, + .hero.is-warning .navbar-link:hover, + .hero.is-warning .navbar-link.is-active { + background-color: #ffd83e; + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .tabs a { + color: rgba(0, 0, 0, 0.7); + opacity: 0.9; } + .hero.is-warning .tabs a:hover { + opacity: 1; } + .hero.is-warning .tabs li.is-active a { + opacity: 1; } + .hero.is-warning .tabs.is-boxed a, .hero.is-warning .tabs.is-toggle a { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .tabs.is-boxed a:hover, .hero.is-warning .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-warning .tabs.is-boxed li.is-active a, .hero.is-warning .tabs.is-boxed li.is-active a:hover, .hero.is-warning .tabs.is-toggle li.is-active a, .hero.is-warning .tabs.is-toggle li.is-active a:hover { + background-color: rgba(0, 0, 0, 0.7); + border-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .hero.is-warning.is-bold { + background-image: linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%); } + @media screen and (max-width: 768px) { + .hero.is-warning.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%); } } + .hero.is-danger { + background-color: #da0b00; + color: #fff; } + .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-danger strong { + color: inherit; } + .hero.is-danger .title { + color: #fff; } + .hero.is-danger .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-danger .subtitle a:not(.button), + .hero.is-danger .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-danger .navbar-menu { + background-color: #da0b00; } } + .hero.is-danger .navbar-item, + .hero.is-danger .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-danger a.navbar-item:hover, .hero.is-danger a.navbar-item.is-active, + .hero.is-danger .navbar-link:hover, + .hero.is-danger .navbar-link.is-active { + background-color: #c10a00; + color: #fff; } + .hero.is-danger .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-danger .tabs a:hover { + opacity: 1; } + .hero.is-danger .tabs li.is-active a { + opacity: 1; } + .hero.is-danger .tabs.is-boxed a, .hero.is-danger .tabs.is-toggle a { + color: #fff; } + .hero.is-danger .tabs.is-boxed a:hover, .hero.is-danger .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-danger .tabs.is-boxed li.is-active a, .hero.is-danger .tabs.is-boxed li.is-active a:hover, .hero.is-danger .tabs.is-toggle li.is-active a, .hero.is-danger .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #da0b00; } + .hero.is-danger.is-bold { + background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); } + @media screen and (max-width: 768px) { + .hero.is-danger.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); } } + .hero.is-small .hero-body, #documenter .docs-sidebar form.docs-search > input.hero .hero-body { + padding-bottom: 1.5rem; + padding-top: 1.5rem; } + @media screen and (min-width: 769px), print { + .hero.is-medium .hero-body { + padding-bottom: 9rem; + padding-top: 9rem; } } + @media screen and (min-width: 769px), print { + .hero.is-large .hero-body { + padding-bottom: 18rem; + padding-top: 18rem; } } + .hero.is-halfheight .hero-body, .hero.is-fullheight .hero-body, .hero.is-fullheight-with-navbar .hero-body { + align-items: center; + display: flex; } + .hero.is-halfheight .hero-body > .container, .hero.is-fullheight .hero-body > .container, .hero.is-fullheight-with-navbar .hero-body > .container { + flex-grow: 1; + flex-shrink: 1; } + .hero.is-halfheight { + min-height: 50vh; } + .hero.is-fullheight { + min-height: 100vh; } + +.hero-video { + overflow: hidden; } + .hero-video video { + left: 50%; + min-height: 100%; + min-width: 100%; + position: absolute; + top: 50%; + transform: translate3d(-50%, -50%, 0); } + .hero-video.is-transparent { + opacity: 0.3; } + @media screen and (max-width: 768px) { + .hero-video { + display: none; } } +.hero-buttons { + margin-top: 1.5rem; } + @media screen and (max-width: 768px) { + .hero-buttons .button { + display: flex; } + .hero-buttons .button:not(:last-child) { + margin-bottom: 0.75rem; } } + @media screen and (min-width: 769px), print { + .hero-buttons { + display: flex; + justify-content: center; } + .hero-buttons .button:not(:last-child) { + margin-right: 1.5rem; } } +.hero-head, +.hero-foot { + flex-grow: 0; + flex-shrink: 0; } + +.hero-body { + flex-grow: 1; + flex-shrink: 0; + padding: 3rem 1.5rem; } + +.section { + padding: 3rem 1.5rem; } + @media screen and (min-width: 1056px) { + .section.is-medium { + padding: 9rem 1.5rem; } + .section.is-large { + padding: 18rem 1.5rem; } } +.footer { + background-color: #fafafa; + padding: 3rem 1.5rem 6rem; } + +h1 .docs-heading-anchor, h1 .docs-heading-anchor:hover, h1 .docs-heading-anchor:visited, h2 .docs-heading-anchor, h2 .docs-heading-anchor:hover, h2 .docs-heading-anchor:visited, h3 .docs-heading-anchor, h3 .docs-heading-anchor:hover, h3 .docs-heading-anchor:visited, h4 .docs-heading-anchor, h4 .docs-heading-anchor:hover, h4 .docs-heading-anchor:visited, h5 .docs-heading-anchor, h5 .docs-heading-anchor:hover, h5 .docs-heading-anchor:visited, h6 .docs-heading-anchor, h6 .docs-heading-anchor:hover, h6 .docs-heading-anchor:visited { + color: #222222; } + +h1 .docs-heading-anchor-permalink, h2 .docs-heading-anchor-permalink, h3 .docs-heading-anchor-permalink, h4 .docs-heading-anchor-permalink, h5 .docs-heading-anchor-permalink, h6 .docs-heading-anchor-permalink { + visibility: hidden; + vertical-align: middle; + margin-left: 0.5em; + font-size: 0.7rem; } + h1 .docs-heading-anchor-permalink::before, h2 .docs-heading-anchor-permalink::before, h3 .docs-heading-anchor-permalink::before, h4 .docs-heading-anchor-permalink::before, h5 .docs-heading-anchor-permalink::before, h6 .docs-heading-anchor-permalink::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f0c1"; } + +h1:hover .docs-heading-anchor-permalink, h2:hover .docs-heading-anchor-permalink, h3:hover .docs-heading-anchor-permalink, h4:hover .docs-heading-anchor-permalink, h5:hover .docs-heading-anchor-permalink, h6:hover .docs-heading-anchor-permalink { + visibility: visible; } + +.docs-dark-only { + display: none !important; } + +pre { + position: relative; + overflow: hidden; } + pre code, pre code.hljs { + padding: 0 0.75rem !important; + overflow: auto; + display: block; } + pre code:first-of-type, pre code.hljs:first-of-type { + padding-top: 0.5rem !important; } + pre code:last-of-type, pre code.hljs:last-of-type { + padding-bottom: 0.5rem !important; } + pre .copy-button { + opacity: 0.2; + transition: opacity 0.2s; + position: absolute; + right: 0em; + top: 0em; + padding: 0.5em; + width: 2.5em; + height: 2.5em; + background: transparent; + border: none; + font-family: "Font Awesome 5 Free"; + color: #222222; + 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: 0.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 0.75rem; + position: relative; } + .admonition-header:before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + margin-right: 0.75rem; + content: "\f06a"; } + +.admonition-body { + color: #222222; + padding: 0.5rem 0.75rem; } + .admonition-body pre { + background-color: whitesmoke; } + .admonition-body code { + background-color: rgba(0, 0, 0, 0.05); } + +.docstring { + margin-bottom: 1em; + background-color: transparent; + border: 1px solid #dbdbdb; + box-shadow: 2px 2px 3px rgba(10, 10, 10, 0.1); + max-width: 100%; } + .docstring > header { + display: flex; + flex-grow: 1; + align-items: stretch; + padding: 0.5rem 0.75rem; + background-color: whitesmoke; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + box-shadow: none; + border-bottom: 1px solid #dbdbdb; } + .docstring > header code { + background-color: transparent; } + .docstring > header .docstring-binding { + margin-right: 0.3em; } + .docstring > header .docstring-category { + margin-left: 0.3em; } + .docstring > section { + position: relative; + padding: 0.75rem 0.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: 0.375rem; + bottom: 0.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: white; } + +.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: #222222; } + +.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: #222222; } + +.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; } + +/* This file contain the overall layout. + * + * The main container is
      that is identified by id #documenter. + */ +#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: white; + border-bottom: 1px solid #dbdbdb; + z-index: 2; + min-height: 4rem; + margin-bottom: 1rem; + display: flex; } + #documenter .docs-main header.docs-navbar .breadcrumb { + flex-grow: 1; } + #documenter .docs-main header.docs-navbar .docs-right { + display: flex; + white-space: nowrap; } + #documenter .docs-main header.docs-navbar .docs-right .docs-icon, #documenter .docs-main header.docs-navbar .docs-right .docs-label, #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + display: inline-block; } + #documenter .docs-main header.docs-navbar .docs-right .docs-label { + padding: 0; + margin-left: 0.3em; } + #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button { + margin: auto 0 auto 1rem; } + #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + font-size: 1.5rem; + margin: auto 0 auto 1rem; } + #documenter .docs-main header.docs-navbar > * { + margin: auto 0; } + @media screen and (max-width: 1055px) { + #documenter .docs-main header.docs-navbar { + position: sticky; + top: 0; + padding: 0 1rem; + /* For Headroom.js */ + transition-property: top, box-shadow; + -webkit-transition-property: top, box-shadow; + /* Safari */ + transition-duration: 0.3s; + -webkit-transition-duration: 0.3s; + /* Safari */ } + #documenter .docs-main header.docs-navbar.headroom--not-top { + box-shadow: 0.2rem 0rem 0.4rem #bbb; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } + #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; + /* Safari */ } } +#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: whitesmoke; + 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; + /* Setting up a nicer theme style for the scrollbar */ } + #documenter .docs-sidebar.visible { + left: 0; + box-shadow: 0.4rem 0rem 0.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; + /* Managing collapsible submenus */ } + #documenter .docs-sidebar ul.docs-menu > li > .tocitem { + font-weight: bold; } + #documenter .docs-sidebar ul.docs-menu > li li { + font-size: 0.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: 0.75rem; + margin-left: 1rem; + margin-top: auto; + margin-bottom: auto; } + #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f054"; } + #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before { + content: "\f078"; } + #documenter .docs-sidebar ul.docs-menu .tocitem { + display: block; + padding: 0.5rem 0.5rem; } + #documenter .docs-sidebar ul.docs-menu .tocitem, #documenter .docs-sidebar ul.docs-menu .tocitem:hover { + color: #0a0a0a; + background: whitesmoke; } + #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: white; } + #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover { + background-color: white; + 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: 0.85rem; + border-left: none; + margin-left: 0; + margin-top: 0.5rem; } + #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem { + width: 100%; + padding: 0; } + #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before { + content: "⚬"; + margin-right: 0.4em; } + #documenter .docs-sidebar form.docs-search { + margin: auto; + margin-top: 0.5rem; + margin-bottom: 0.5rem; } + #documenter .docs-sidebar form.docs-search > input { + width: 14.4rem; } + @media screen and (min-width: 1056px) { + #documenter .docs-sidebar ul.docs-menu { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar { + width: .3rem; + background: none; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #e0e0e0; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover { + background: #cccccc; } } + @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: #cccccc; } } +#documenter .docs-main #documenter-search-info { + margin-bottom: 1rem; } + +#documenter .docs-main #documenter-search-results { + list-style-type: circle; + list-style-position: outside; } + #documenter .docs-main #documenter-search-results li { + margin-left: 2rem; } + #documenter .docs-main #documenter-search-results .docs-highlight { + background-color: yellow; } + +.ansi span.sgr1 { + font-weight: bolder; } + +.ansi span.sgr2 { + font-weight: lighter; } + +.ansi span.sgr3 { + font-style: italic; } + +.ansi span.sgr4 { + text-decoration: underline; } + +.ansi span.sgr7 { + color: white; + background-color: #222222; } + +.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: whitesmoke; } + +.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: whitesmoke; } + +code.language-julia-repl > span.hljs-meta { + color: #066f00; + font-weight: bolder; } + +/*! + Theme: Default + Description: Original highlight.js style + Author: (c) Ivan Sagalaev + Maintainer: @highlightjs/core-team + Website: https://highlightjs.org/ + License: see project LICENSE + Touched: 2021 +*/ +/* +This is left on purpose making default.css the single file that can be lifted +as-is from the repository directly without the need for a build step + +Typically this "required" baseline CSS is added by `makestuff.js` during build. +*/ +pre code.hljs { + display: block; + overflow-x: auto; } + +code.hljs { + padding: 3px 5px; } + +/* end baseline CSS */ +.hljs { + background: #F0F0F0; + color: #444; } + +/* Base color: saturation 0; */ +.hljs-subst { + /* default */ } + +/* purposely ignored */ +.hljs-comment { + color: #888888; } + +.hljs-tag, +.hljs-punctuation { + color: #444a; } + +.hljs-tag .hljs-name, +.hljs-tag .hljs-attr { + color: #444; } + +.hljs-keyword, +.hljs-attribute, +.hljs-selector-tag, +.hljs-meta .hljs-keyword, +.hljs-doctag, +.hljs-name { + font-weight: bold; } + +/* User color: hue: 0 */ +.hljs-type, +.hljs-string, +.hljs-number, +.hljs-selector-id, +.hljs-selector-class, +.hljs-quote, +.hljs-template-tag, +.hljs-deletion { + color: #880000; } + +.hljs-title, +.hljs-section { + color: #880000; + font-weight: bold; } + +.hljs-regexp, +.hljs-symbol, +.hljs-variable, +.hljs-template-variable, +.hljs-link, +.hljs-selector-attr, +.hljs-operator, +.hljs-selector-pseudo { + color: #BC6060; } + +/* Language color: hue: 90; */ +.hljs-literal { + color: #78A960; } + +.hljs-built_in, +.hljs-bullet, +.hljs-code, +.hljs-addition { + color: #397300; } + +/* Meta color: hue: 200 */ +.hljs-meta { + color: #1f7199; } + +.hljs-meta .hljs-string { + color: #4d99bf; } + +/* Misc effects */ +.hljs-emphasis { + font-style: italic; } + +.hljs-strong { + font-weight: bold; } diff --git a/previews/PR334/assets/themeswap.js b/previews/PR334/assets/themeswap.js new file mode 100644 index 000000000..c58e993e3 --- /dev/null +++ b/previews/PR334/assets/themeswap.js @@ -0,0 +1,66 @@ +// Small function to quickly swap out themes. Gets put into the tag.. +function set_theme_from_local_storage() { + // Intialize the theme to null, which means default + var theme = null; + // If the browser supports the localstorage and is not disabled then try to get the + // documenter theme + if(window.localStorage != null) { + // Get the user-picked theme from localStorage. May be `null`, which means the default + // theme. + theme = window.localStorage.getItem("documenter-theme"); + } + // Check if the browser supports user color preference + var darkPreference = false; + // Check if the users preference is for dark color scheme + if(window.matchMedia('(prefers-color-scheme: dark)').matches === true) { + darkPreference = true; + } + // Initialize a few variables for the loop: + // + // - active: will contain the index of the theme that should be active. Note that there + // is no guarantee that localStorage contains sane values. If `active` stays `null` + // we either could not find the theme or it is the default (primary) theme anyway. + // Either way, we then need to stick to the primary theme. + // + // - disabled: style sheets that should be disabled (i.e. all the theme style sheets + // that are not the currently active theme) + var active = null; var disabled = []; var darkTheme = null; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + // The tag of each style sheet is expected to have a data-theme-name attribute + // which must contain the name of the theme. The names in localStorage much match this. + var themename = ss.ownerNode.getAttribute("data-theme-name"); + // attribute not set => non-theme stylesheet => ignore + if(themename === null) continue; + // To distinguish the default (primary) theme, it needs to have the data-theme-primary + // attribute set. + var isprimary = (ss.ownerNode.getAttribute("data-theme-primary") !== null); + // Check if the theme is primary dark theme + var isDarkTheme = (ss.ownerNode.getAttribute("data-theme-primary-dark") !== null); + // If ss is for dark theme then set the value of darkTheme to the name of the theme + if(isDarkTheme) darkTheme = themename; + // If we find a matching theme (and it's not the default), we'll set active to non-null + if(themename === theme) active = i; + // Store the style sheets of inactive themes so that we could disable them + if(themename !== theme) disabled.push(ss); + } + if(active !== null) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + theme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + else if(darkTheme !== null && darkPreference === true) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + darkTheme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + if (ss.ownerNode.getAttribute("data-theme-name") !== darkTheme) { + ss.disabled = true; + } + }); + } +} +set_theme_from_local_storage(); diff --git a/previews/PR334/assets/warner.js b/previews/PR334/assets/warner.js new file mode 100644 index 000000000..5531c8851 --- /dev/null +++ b/previews/PR334/assets/warner.js @@ -0,0 +1,49 @@ +function maybeAddWarning () { + // DOCUMENTER_NEWEST is defined in versions.js, DOCUMENTER_CURRENT_VERSION and DOCUMENTER_STABLE + // in siteinfo.js. + // If either of these are undefined something went horribly wrong, so we abort. + if ( + window.DOCUMENTER_NEWEST === undefined || + window.DOCUMENTER_CURRENT_VERSION === undefined || + window.DOCUMENTER_STABLE === undefined + ) { + return + }; + + // Current version is not a version number, so we can't tell if it's the newest version. Abort. + if (!/v(\d+\.)*\d+/.test(window.DOCUMENTER_CURRENT_VERSION)) { + return + }; + + // Current version is newest version, so no need to add a warning. + if (window.DOCUMENTER_NEWEST === window.DOCUMENTER_CURRENT_VERSION) { + return + }; + + // Add a noindex meta tag (unless one exists) so that search engines don't index this version of the docs. + if (document.body.querySelector('meta[name="robots"]') === null) { + const meta = document.createElement('meta'); + meta.name = 'robots'; + meta.content = 'noindex'; + + document.getElementsByTagName('head')[0].appendChild(meta); + }; + + const div = document.createElement('div'); + div.classList.add('outdated-warning-overlay'); + const closer = document.createElement('button'); + closer.classList.add('outdated-warning-closer', 'delete'); + closer.addEventListener('click', function () { + document.body.removeChild(div); + }); + const href = window.documenterBaseURL + '/../' + window.DOCUMENTER_STABLE; + div.innerHTML = 'This documentation is not for the latest stable release, but for either the development version or an older release.
      Click here to go to the documentation for the latest stable release.'; + div.appendChild(closer); + document.body.appendChild(div); +}; + +if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', maybeAddWarning); +} else { + maybeAddWarning(); +}; diff --git a/previews/PR334/boundary_conditions/index.html b/previews/PR334/boundary_conditions/index.html new file mode 100644 index 000000000..f16225353 --- /dev/null +++ b/previews/PR334/boundary_conditions/index.html @@ -0,0 +1,2 @@ + +Boundary conditions · SpeedyWeather.jl

      Boundary conditions

      This page describes the formulation of boundary conditions and their implementation.

      diff --git a/previews/PR334/conventions/index.html b/previews/PR334/conventions/index.html new file mode 100644 index 000000000..e5186f3f2 --- /dev/null +++ b/previews/PR334/conventions/index.html @@ -0,0 +1,12 @@ + +Style and convention guide · SpeedyWeather.jl

      Style and convention guide

      In SpeedyWeather.jl we've been following the several conventions that are documented here.

      Variable naming

      The prognostic variables in spectral space are called

          vor         # Vorticity of horizontal wind field
      +    div         # Divergence of horizontal wind field
      +    temp        # Absolute temperature [K]
      +    pres_surf   # Logarithm of surface pressure [log(Pa)]
      +    humid       # Specific humidity [g/kg]

      their transforms into grid-point space get a _grid suffix, their tendencies a _tend suffix. Further derived diagnostic dynamic variables are

          u
      +    v
      +    geopot
      +    ...

      Preallocation

      All arrays representing variables are preallocated and grouped into two structs

          Prog::PrognosticVariables
      +    Diag::DiagnosticVariables

      The Diag struct contains further structs which represent the grid-point transformations of the prognostic variables and their tendencies.

          gridvars::GridVariables
      +    tendencies::Tendencies
      +    ...

      Constant arrays are grouped into several structs

      Boundaries

      Julian conventions

      We follow Julia's style guide and highlight here some important aspects of it.

      • Bang (!) convention. A function func does not change its input arguments, however, func! does.

      Hence, func! is often the in-place version of func, avoiding as much memory allocation as possible and often changing its first argument, e.g. func!(out,in) so that argument in is used to calculate out which has been preallocated before function call.

      • Number format flexibility. Numeric literals such as 2.0 or 1/3 are only used in the model setup

      but avoided throughout the code to obtain a fully number format-flexible package using the number format NF as a compile-time variable throughout the code. This often leads to overly specific code whereas a Real would generally suffice. However, this is done to avoid any implicit type conversions.

      diff --git a/previews/PR334/development/index.html b/previews/PR334/development/index.html new file mode 100644 index 000000000..1d1cf7a6a --- /dev/null +++ b/previews/PR334/development/index.html @@ -0,0 +1,3 @@ + +Development notes · SpeedyWeather.jl

      Development notes

      To run tests, from the path of your local clone of the repository do:

      julia --project=. -e 'import Pkg; Pkg.test()'

      To install dependencies:

      julia --project -e 'import Pkg; Pkg.instantiate()`

      then opening:

      julia --project

      you are able to using SpeedyWeather.

      To generate the docs:

      julia --project=docs -e 'import Pkg; Pkg.develop(path="."); Pkg.instantiate()'
      +julia --project=docs docs/make.jl

      If the docs are generated successfully, you view them by opening docs/build/index.html in your favorite browser.

      diff --git a/previews/PR334/dynamical_core/index.html b/previews/PR334/dynamical_core/index.html new file mode 100644 index 000000000..13d730273 --- /dev/null +++ b/previews/PR334/dynamical_core/index.html @@ -0,0 +1,20 @@ + +Dynamical core · SpeedyWeather.jl

      Dynamical core

      A mathematical and implementation-specific description of the dynamical core used in SpeedyWeather.jl. We start by describing the barotropic vorticity equations which is one set of equations that SpeedyWeather.jl can solve (see How to run SpeedyWeather.jl) as many details therein also apply to the Shallow water equations and Primitive equations explained thereafter.

      The dynamical core presented here largely follows the idealized models with spectral dynamics developed at the Geophysical Fluid Dynamics Laboratory[1]: A barotropic vorticity model[2], a shallow water model [3] and a primitive equation model[4].

      Barotropic vorticity equation

      The barotropic vorticity equation is the prognostic equation that describes the time evolution of relative vorticity $\zeta$ with advection, Coriolis force and diffusion in a single global layer.

      \[\frac{\partial \zeta}{\partial t} + \nabla \cdot (\mathbf{u}(\zeta + f)) = (-1)^{n+1}\nu\nabla^{2n}\zeta\]

      with time $t$, velocity vector $\mathbf{u} = (u, v)$, Coriolis parameter $f$, and hyperdiffusion $(-1)^{n+1} \nu \nabla^{2n} \zeta$ ($n$ is the hyperdiffusion order; see Horizontal diffusion). Starting with some relative vorticity $\zeta$, the Laplacian is inverted to obtain the stream function $\Psi$

      \[\Psi = \nabla^{-2}\zeta\]

      The zonal velocity $u$ and meridional velocity $v$ are then the (negative) meridional gradient and zonal gradient of $\Psi$

      \[\begin{aligned} +u &= -\frac{1}{R} \frac{\partial \Psi}{\partial \theta} \\ +v &= \frac{1}{R\cos(\theta)} \frac{\partial \Psi}{\partial \phi} \\ +\end{aligned}\]

      which is described in Derivatives in spherical coordinates.

      Algorithm

      We briefly outline the algorithm that SpeedyWeather.jl uses in order to integrate the barotropic vorticity equation

      1. Start with initial conditions of $\zeta_{lm}$ in spectral space
      2. Use $\zeta_{lm}$ to
        • Invert the Laplacian to obtain the stream function $\Psi_{lm}$ in spectral space
        • Transform $\zeta_{lm}$ to $\zeta$ in grid-point space
      3. Use $\Psi_lm$ to
      4. Transform zonal and meridional velocity $(\cos(\theta)u)_{lm}$, $(\cos(\theta)v)_{lm}$ to grid-point space and unscale the $\cos(\theta)$ factor to obtain $u,v$.
      5. Multiply $u,v$ with $\zeta+f$ in grid-point space
      6. Transform $u(\zeta + f)$ and $v(\zeta+f)$ to spectral space
      7. Compute the divergence of $(\mathbf{u}(\zeta + f))_{lm}$ in spectral space through a Meridional derivative and Zonal derivative which will be the tendency of $\zeta_{lm}$
      8. Compute the Horizontal diffusion based on that tendency
      9. Compute a leapfrog time step as described in Time integration
      10. Repeat from 1.

      Shallow water equations

      \[\begin{aligned} +\frac{\partial \zeta}{\partial t} + \nabla \cdot (\mathbf{u}(\zeta + f)) &= (-1)^{n+1}\nu\nabla^{2n}\zeta \\ +\frac{\partial \mathcal{D}}{\partial t} - \nabla \times (\mathbf{u}(\zeta + f)) &= -\nabla^2(\tfrac{1}{2}(u^2 + v^2) + g\eta) + (-1)^{n+1}\nu\nabla^{2n}\mathcal{D} \\ +\frac{\partial \eta}{\partial t} + \nabla \cdot (\mathbf{u}h) &= 0. +\end{aligned}\]

      more to come

      Primitive equations

      The primitive equations solved by SpeedyWeather.jl are

      \[\begin{aligned} +\partial_t u = ... \\ +\partial_t v = ... \\ +\partial_t T = ... \\ +\partial_t Q = ... +\end{aligned}\]

      more to come

      Horizontal diffusion

      In SpeedyWeather.jl we use hyerdiffusion through an $n$-th power Laplacian $(-1)^{n+1}\nabla^{2n}$ (hyper when $n>1$) which can be implemented as a multiplication of the spectral coefficients $\Psi_{lm}$ with $(-l(l+1))^nR^{-2n}$ (see spectral Laplacian) It is therefore computationally not more expensive to apply hyperdiffusion over diffusion as the $(-l(l+1))^nR^{-2n}$ can be precomputed. Note the sign change $(-1)^{n+1}$ here is such that the dissipative nature of the diffusion operator is retained for $n$ odd and even.

      In SpeedyWeather.jl the diffusion is applied implicitly. For that, consider a leapfrog scheme with time step $\Delta t$ of variable $\zeta$ to obtain from time steps $i-1$ and $i$, the next time step $i+1$

      \[\zeta_{i+1} = \zeta_{i-1} + 2\Delta t d\zeta,\]

      with $d\zeta$ being some tendency evaluated from $\zeta_i$. Now we want to add a diffusion term $(-1)^{n+1}\nu \nabla^{2n}\zeta$ with viscosity $\nu$, wich however, is implicitly calculated from $\zeta_{i+1}$, then

      \[\zeta_{i+1} = \zeta_{i-1} + 2\Delta t (d\zeta + (-1)^{n+1} \nu\nabla^{2n}\zeta_{i+1})\]

      As the application of $(-1)^{n+1}\nu\nabla^{2n}$ is, for every spectral mode, equivalent to a multiplication of a constant, we can rewrite this to

      \[\zeta_{i+1} = \frac{\zeta_{i-1} + 2\Delta t d\zeta}{1 - 2\Delta (-1)^{n+1}\nu\nabla^{2n}},\]

      and expand the numerator to

      \[\zeta_{i+1} = \zeta_{i-1} + 2\Delta t \frac{d\zeta + (-1)^{n+1} \nu\nabla^{2n}\zeta_{i-1}}{1 - 2\Delta t (-1)^{n+1}\nu \nabla^{2n}},\]

      Hence the diffusion can be applied implicitly by updating the tendency $d\zeta$ as

      \[d\zeta \to \frac{d\zeta + (-1)^{n+1}\nu\nabla^{2n}\zeta_{i-1}}{1 - 2\Delta t \nu \nabla^{2n}}\]

      which only depends on $\zeta_{i-1}$. Now let $D_\text{explicit} = (-1)^{n+1}\nu\nabla^{2n}$ be the explicit part and $D_\text{implicit} = 1 - (-1)^{n+1} 2\Delta t \nu\nabla^{2n}$ the implicit part. Both parts can be precomputed and are $D_\text{implicit} = 1 - 2\Delta t \nu\nabla^{2n}$ the implicit part. Both parts can be precomputed and are only an element-wise multiplication in spectral space. For every spectral harmonic $l,m$ we do

      \[d\zeta \to D_\text{implicit}^{-1}(d\zeta + D_\text{explicit}\zeta_{i-1}).\]

      Hence 2 multiplications and 1 subtraction with precomputed constants. However, we will normalize the (hyper-)Laplacians as described in the following. This also will take care of the alternating sign such that the diffusion operation is dissipative regardless the power $n$.

      Normalization of diffusion

      In physics, the Laplace operator $\nabla^2$ is often used to represent diffusion due to viscosity in a fluid. In that case, the viscosity coefficient is $\nu$ of units $\text{m}^2\text{s}^{-1}$ and the full operator reads as $\nu \nabla^2$ with units $(\text{m}^2\text{s}^{-1})(\text{m}^{-2}) = \text{s}^{-1}$. This motivates us to normalize the Laplace operator by a constant of units $\text{m}^{-2}$ and the viscosity coefficient by its inverse such that the viscosity coefficient becomes a damping timescale of unit $\text{s}^{-1}$. Given the application in spectral space we decide to normalize by the largest eigenvalue $-l_\text{max}(l_\text{max}+1)$ such that all entries in the discrete spectral Laplace operator are in $[0,1]$. This also has the effect that the alternating sign drops out, such that higher wavenumbers are always dampened and not amplified. The normalized viscosity coefficient $\nu^* = l_\text{max}(l_\text{max}+1)\nu$ (always positive) is therefore reinterpreted as the (inverse) time scale at which the highest wavenumber is dampened to zero due to diffusion. Together we have

      \[D^\text{explicit}_{l,m} = -\nu^* \frac{l(l+1)}{l_\text{max}(l_\text{max}+1)}\]

      and the hyper-Laplacian of power $n$ follows as

      \[D^\text{explicit,n}_{l,m} = -\nu^* \left(\frac{l(l+1)}{l_\text{max}(l_\text{max}+1)}\right)^n\]

      and the implicit part is accordingly $D^\text{implicit,n}_{l,m} = 1 - 2\Delta t D^\text{explicit,n}_{l,m}$.

      Radius scaling

      SpeedyWeather.jl uses a scaling for vorticity $\zeta$ and stream function $\Psi$ that is

      \[\tilde{\zeta} = \zeta R, \tilde{\Psi} = \Psi R^{-1}.\]

      In the barotropic voriticity equation model the inversion of the Laplcians in order to obtain $\Psi$ from $\zeta$ therefore becomes

      \[\tilde{\zeta} = \tilde{\nabla}^2 \tilde{\Psi}\]

      where the dimensionless gradients simply omit the scaling with $1/R$, $\tilde{\nabla} = R\nabla$. The Barotropic vorticity equation scaled with $R^2$ is

      \[\partial_{\tilde{t}}\tilde{\zeta} + \tilde{\nabla} \cdot (\mathbf{u}(\tilde{\zeta} + \tilde{f})) = \tilde{\nu}\tilde{\nabla}^{2n}\tilde{\zeta}\]

      with

      • $\tilde{t} = tR^{-1}$, the scaled time $t$
      • $\mathbf{u} = (u,v)$, the velocity vector (no scaling applied)
      • $\tilde{f} = fR$, the scaled Coriolis parameter $f$
      • $\tilde{\nu} = \nu^* R$, the scaled viscosity $\nu^*$, which itself is normalized to a damping time scale, see Normalization of diffusion.

      Scaled shallow water equations

      Similar to the scaled barotropic vorticity equations, the scaled shallow water equations scale the vorticity and the divergence equation with $R^2$, but the continuity equation with $R$

      \[\begin{aligned} +\frac{\partial \tilde{\zeta}}{\partial \tilde{t}} + \tilde{\nabla} \cdot (\mathbf{u}(\tilde{\zeta} + \tilde{f})) &= +\tilde{\nu}\tilde{\nabla}^{2n}\tilde{\zeta} \\ +\frac{\partial \tilde{\mathcal{D}}}{\partial \tilde{t}} - \tilde{\nabla} \times (\mathbf{u}(\tilde{\zeta} + \tilde{f})) &= +-\tilde{\nabla}^2\left(\tfrac{1}{2}(u^2 + v^2) + g\eta \right) + \tilde{\nu}\tilde{\nabla}^{2n}\tilde{\mathcal{D}} \\ +\frac{\partial \eta}{\partial \tilde{t}} + \tilde{\nabla} \cdot (\mathbf{u}h) &= 0. +\end{aligned}\]

      Time integration

      SpeedyWeather.jl uses a leapfrog time scheme with a Robert's and William's filter to dampen the computational mode and achieve 3rd order accuracy.

      Oscillation equation

      \[\frac{dF}{dt} = i\omega F\]

      References

      diff --git a/previews/PR334/functions/index.html b/previews/PR334/functions/index.html new file mode 100644 index 000000000..150fd5b90 --- /dev/null +++ b/previews/PR334/functions/index.html @@ -0,0 +1,180 @@ + +Function and type index · SpeedyWeather.jl

      Function and type index

      Parameters and constants

      Missing docstring.

      Missing docstring for SpeedyWeather.Parameters. Check Documenter's build log for details.

      Missing docstring.

      Missing docstring for SpeedyWeather.Constants. Check Documenter's build log for details.

      Boundaries and boundary conditions

      Missing docstring.

      Missing docstring for SpeedyWeather.Boundaries. Check Documenter's build log for details.

      Spherical harmonic transform

      Missing docstring.

      Missing docstring for SpeedyWeather.GeoSpectral. Check Documenter's build log for details.

      SpeedyWeather.SpeedyTransforms.spectralFunction
      alms = spectral(    map::AbstractMatrix;
      +                    Grid::Type{<:AbstractGrid}=DEFAULT_GRID,
      +                    kwargs...)

      Converts map to grid(map) to execute spectral(map::AbstractGrid;kwargs...).

      source
      alms = spectral(    map::AbstractGrid;
      +                    Grid::Type{<:AbstractGrid}=DEFAULT_GRID,
      +                    kwargs...)

      Converts map to Grid(map) to execute spectral(map::AbstractGrid;kwargs...).

      source
      alms = spectral(    map::AbstractMatrix;
      +                    Grid::Type{<:AbstractGrid}=DEFAULT_GRID,
      +                    kwargs...)

      Spectral transform (grid to spectral) map to grid(map) to execute spectral(map::AbstractGrid;kwargs...).

      source
      SpeedyWeather.SpeedyTransforms.spectral!Function
      spectral!(  alms::LowerTriangularMatrix,
      +            map::AbstractGrid,
      +            S::SpectralTransform)

      Spectral transform (grid to spectral space) from the gridded field map on a grid<:AbstractGrid to a LowerTriangularMatrix of spherical harmonic coefficients alms. Uses FFT in the zonal direction, and a Legendre Transform in the meridional direction exploiting symmetries. The spectral transform is number format-flexible as long as the parametric types of map, alms, S are identical. The spectral transform is grid-flexible as long as the typeof(map)<:AbstractGrid. Uses the precalculated arrays, FFT plans and other constants in the SpectralTransform struct S.

      source
      SpeedyWeather.SpeedyTransforms.griddedFunction
      map = gridded(  alms::AbstractMatrix;
      +                recompute_legendre::Bool=true,
      +                grid::Type{<:AbstractGrid}=DEFAULT_GRID)

      Spectral transform (spectral to grid space) from spherical coefficients alms to a newly allocated gridded field map. Based on the size of alms the grid type grid, the spatial resolution is retrieved based on the truncation defined for grid. SpectralTransform struct S is allocated to execute gridded(alms,S).

      source
      map = gridded(  alms::AbstractMatrix,
      +                S::SpectralTransform)

      Spectral transform (spectral to grid space) from spherical coefficients alms to a newly allocated gridded field map with precalculated properties based on the SpectralTransform struct S. alms is converted to a LowerTriangularMatrix to execute the in-place gridded!.

      source
      SpeedyWeather.SpeedyTransforms.gridded!Function
      gridded!(   map::AbstractGrid,
      +            alms::LowerTriangularMatrix,
      +            S::SpectralTransform)

      Spectral transform (spectral to grid) of the spherical harmonic coefficients alms to a gridded field map. The spectral transform is number format-flexible as long as the parametric types of map, alms, S are identical. The spectral transform is grid-flexible as long as the typeof(map)<:AbstractGrid. Uses the precalculated arrays, FFT plans and other constants in the SpectralTransform struct S.

      source
      gridded!(
      +    diagn::DiagnosticVariables,
      +    progn::PrognosticVariables,
      +    lf::Int64,
      +    model::SpeedyWeather.ModelSetup
      +)
      +

      Propagate the spectral state of progn to diagn using time step/leapfrog index lf. Function barrier that calls gridded! for the respective model.

      source
      gridded!(
      +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
      +    progn::SpeedyWeather.PrognosticLayerTimesteps,
      +    lf::Int64,
      +    model::Barotropic
      +)
      +

      Propagate the spectral state of the prognostic variables progn to the diagnostic variables in diagn for the barotropic vorticity model. Updates grid vorticity, spectral stream function and spectral and grid velocities u,v.

      source
      gridded!(
      +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
      +    progn::SpeedyWeather.PrognosticLayerTimesteps,
      +    lf::Int64,
      +    model::ShallowWater
      +)
      +

      Propagate the spectral state of the prognostic variables progn to the diagnostic variables in diagn for the shallow water model. Updates grid vorticity, grid divergence, grid interface displacement (pres_grid) and the velocities u,v.

      source
      gridded!(
      +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
      +    progn::SpeedyWeather.PrognosticLayerTimesteps,
      +    lf::Int64,
      +    model::PrimitiveEquation
      +)
      +

      Propagate the spectral state of the prognostic variables progn to the diagnostic variables in diagn for primitive equation models. Updates grid vorticity, grid divergence, grid temperature, pressure (pres_grid) and the velocities u,v.

      source
      Missing docstring.

      Missing docstring for SpeedyWeather.triangular_truncation. Check Documenter's build log for details.

      Missing docstring.

      Missing docstring for SpeedyWeather.roundup_fft. Check Documenter's build log for details.

      SpeedyWeather.SpeedyTransforms.spectral_truncationFunction
      alms_trunc = spectral_truncation(alms,trunc)

      Returns a spectral coefficient matrix alms_trunc that is truncated from alms to the size (trunc+1)². alms_trunc only contains those coefficient of alms for which m,l ≤ trunc, and l ≥ m are zero anyway. If trunc is larger than the implicit truncation in alms obtained from its size than spectral_interpolation is automatically called instead, returning alms_interp, a coefficient matrix that is larger than alms with padded zero coefficients.

      source
      SpeedyWeather.SpeedyTransforms.spectral_truncation!Function
      spectral_truncation!(alms::AbstractMatrix,ltrunc::Integer,mtrunc::Integer)

      Truncate spectral coefficients alms in-place by setting (a) the upper right triangle to zero and (b) all coefficients for which the degree l is larger than the truncation ltrunc or order m larger than the truncaction mtrunc.

      source
      spectral_truncation!(alms::LowerTriangularMatrix,ltrunc::Integer,mtrunc::Integer)

      Truncate spectral coefficients alms in-place by setting all coefficients for which the degree l is larger than the truncation ltrunc or order m larger than the truncaction mtrunc. Similar to spectral_truncation!(::AbstractMatrix, ...) but skips the upper triangle which is zero by design for LowerTriangularMatrix.

      source
      spectral_truncation!(alms,trunc)

      Truncate spectral coefficients alms in-place by setting (a) the upper right triangle to zero and (b) all coefficients for which the degree l is larger than the truncation trunc.

      source
      spectral_truncation!(alms)

      Truncate spectral coefficients alms in-place by setting the upper right triangle to zero. This is to enforce that all coefficients for which the degree l is larger than order m are zero.

      source
      Missing docstring.

      Missing docstring for SpeedyWeather.spectral_interpolation!. Check Documenter's build log for details.

      Missing docstring.

      Missing docstring for SpeedyWeather.get_legendre_polynomials!. Check Documenter's build log for details.

      SpeedyWeather.SpeedyTransforms.∇²!Function
      ∇²!(    ∇²alms::LowerTriangularMatrix,
      +        alms::LowerTriangularMatrix,
      +        S::SpectralTransform;
      +        add::Bool=false,
      +        flipsign::Bool=false,
      +        inverse::Bool=false)

      Laplace operator ∇² applied to the spectral coefficients alms in spherical coordinates. The radius R is omitted in the eigenvalues which are precomputed in S. ∇²! is the in-place version which directly stores the output in the first argument ∇²alms.

      Keyword arguments

      • add=true adds the ∇²(alms) to the output
      • flipsign=true computes -∇²(alms) instead
      • inverse=true computes ∇⁻²(alms) instead

      Default is add=false, flipsign=false, inverse=false. These options can be combined.

      source
      Missing docstring.

      Missing docstring for SpeedyWeather.∇². Check Documenter's build log for details.

      SpeedyWeather.SpeedyTransforms.∇⁻²!Function
      ∇⁻²!(   ∇⁻²alms::LowerTriangularMatrix,
      +        alms::LowerTriangularMatrix,
      +        S::SpectralTransform;
      +        add::Bool=false,
      +        flipsign::Bool=false)

      Calls ∇²!(∇⁻²alms, alms, S; add, flipsign, inverse=true).

      source
      Missing docstring.

      Missing docstring for SpeedyWeather.∇⁻². Check Documenter's build log for details.

      Missing docstring.

      Missing docstring for SpeedyWeather.gradient_latitude!. Check Documenter's build log for details.

      Missing docstring.

      Missing docstring for SpeedyWeather.gradient_latitude. Check Documenter's build log for details.

      Missing docstring.

      Missing docstring for SpeedyWeather.gradient_longitude!. Check Documenter's build log for details.

      Missing docstring.

      Missing docstring for SpeedyWeather.gradient_longitude. Check Documenter's build log for details.

      SpeedyWeather.SpeedyTransforms.divergence!Function
      divergence!(div::LowerTriangularMatrix,
      +            u::LowerTriangularMatrix,
      +            v::LowerTriangularMatrix,
      +            S::SpectralTransform{NF};
      +            flipsign::Bool=false,
      +            add::Bool=false,
      +            )

      Divergence of a vector u,v written into div, div = ∇⋅(u,v). u,v are expected to have a 1/coslat-scaling included, then div is not scaled. flipsign option calculates -∇⋅(u,v) instead. add option calculates div += ∇⋅(u,v) instead. flipsign and add can be combined. This functions only creates the kernel and calls the generic divergence function _divergence! subsequently.

      source
      SpeedyWeather.SpeedyTransforms.curl!Function
      curl!(  curl::LowerTriangularMatrix,
      +        u::LowerTriangularMatrix,
      +        v::LowerTriangularMatrix,
      +        S::SpectralTransform;
      +        flipsign::Bool=false,
      +        add::Bool=false,
      +        )

      Curl of a vector u,v written into curl, curl = ∇×(u,v). u,v are expected to have a 1/coslat-scaling included, then curl is not scaled. flipsign option calculates -∇×(u,v) instead. add option calculates curl += ∇×(u,v) instead. flipsign and add can be combined. This functions only creates the kernel and calls the generic divergence function _divergence! subsequently with flipped u,v -> v,u for the curl.

      source
      Missing docstring.

      Missing docstring for SpeedyWeather._divergence!. Check Documenter's build log for details.

      Missing docstring.

      Missing docstring for SpeedyWeather.curl_div!. Check Documenter's build log for details.

      SpeedyWeather.SpeedyTransforms.UV_from_vordiv!Function
      UV_from_vordiv!(U::LowerTriangularMatrix,
      +                V::LowerTriangularMatrix,
      +                vor::LowerTriangularMatrix,
      +                div::LowerTriangularMatrix,
      +                S::SpectralTransform)

      Get U,V (=(u,v)*coslat) from vorticity ζ and divergence D in spectral space. Two operations are combined into a single linear operation. First, invert the spherical Laplace ∇² operator to get stream function from vorticity and velocity potential from divergence. Then compute zonal and meridional gradients to get U,V.

      source
      SpeedyWeather.SpeedyTransforms.UV_from_vor!Function
      UV_from_vor!(   U::LowerTriangularMatrix,
      +                V::LowerTriangularMatrix,
      +                vor::LowerTriangularMatrix,
      +                S::SpectralTransform)

      Get U,V (=(u,v)*coslat) from vorticity ζ spectral space (divergence D=0) Two operations are combined into a single linear operation. First, invert the spherical Laplace ∇² operator to get stream function from vorticity. Then compute zonal and meridional gradients to get U,V.

      source
      Missing docstring.

      Missing docstring for SpeedyWeather.ϵlm. Check Documenter's build log for details.

      Missing docstring.

      Missing docstring for SpeedyWeather.get_recursion_factors. Check Documenter's build log for details.

      Dynamics

      SpeedyWeather.bernoulli_potential!Function
      bernoulli_potential!(
      +    diagn::SpeedyWeather.DiagnosticVariablesLayer{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF},
      +    S::SpectralTransform
      +) -> LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat
      +

      Computes the Laplace operator ∇² of the Bernoulli potential B in spectral space.

      1. computes the kinetic energy KE = ½(u²+v²) on the grid
      2. transforms KE to spectral space
      3. adds geopotential for the Bernoulli potential in spectral space
      4. takes the Laplace operator.

      This version is used for both ShallowWater and PrimitiveEquation, only the geopotential calculation in geopotential! differs.

      source
      SpeedyWeather.volume_flux_divergence!Function
      volume_flux_divergence!(
      +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
      +    surface::SpeedyWeather.SurfaceVariables,
      +    orog::SpeedyWeather.AbstractOrography,
      +    constants::DynamicsConstants,
      +    G::Geometry,
      +    S::SpectralTransform
      +)
      +

      Computes the (negative) divergence of the volume fluxes uh,vh for the continuity equation, -∇⋅(uh,vh).

      source
      Missing docstring.

      Missing docstring for SpeedyWeather.vorticity_fluxes!. Check Documenter's build log for details.

      Missing docstring.

      Missing docstring for SpeedyWeather.vorticity_flux_curl!. Check Documenter's build log for details.

      Missing docstring.

      Missing docstring for SpeedyWeather.vorticity_flux_divergence!. Check Documenter's build log for details.

      Geometry

      SpeedyWeather.GeometryType

      Construct Geometry struct containing parameters and arrays describing an iso-latitude grid <:AbstractGrid and the vertical levels. Pass on SpectralGrid to calculate the following fields

      • spectral_grid::SpectralGrid: SpectralGrid that defines spectral and grid resolution

      • Grid::Type{<:SpeedyWeather.RingGrids.AbstractGrid}: grid of the dynamical core Default: spectral_grid.Grid

      • nlat_half::Int64: resolution parameter nlathalf of Grid, # of latitudes on one hemisphere (incl Equator) Default: spectralgrid.nlat_half

      • nlon_max::Int64: maximum number of longitudes (at/around Equator) Default: getnlonmax(Grid, nlat_half)

      • nlon::Int64: =nlonmax, same (used for compatibility), TODO: still needed? Default: nlonmax

      • nlat::Int64: number of latitude rings Default: getnlat(Grid, nlathalf)

      • nlev::Int64: number of vertical levels Default: spectral_grid.nlev

      • npoints::Int64: total number of grid points Default: spectral_grid.npoints

      • radius::AbstractFloat: Planet's radius [m] Default: spectral_grid.radius

      • latd::Vector{Float64}: array of latitudes in degrees (90˚...-90˚) Default: getlatd(Grid, nlathalf)

      • lond::Vector{Float64}: array of longitudes in degrees (0...360˚), empty for non-full grids Default: getlond(Grid, nlathalf)

      • londs::Vector{NF} where NF<:AbstractFloat: longitude (-180˚...180˚) for each grid point in ring order Default: (getlatdlonds(Grid, nlathalf))[2]

      • latds::Vector{NF} where NF<:AbstractFloat: latitude (-90˚...˚90) for each grid point in ring order Default: (getlatdlonds(Grid, nlathalf))[1]

      • sinlat::Vector{NF} where NF<:AbstractFloat: sin of latitudes Default: sind.(latd)

      • coslat::Vector{NF} where NF<:AbstractFloat: cos of latitudes Default: cosd.(latd)

      • coslat⁻¹::Vector{NF} where NF<:AbstractFloat: = 1/cos(lat) Default: 1 ./ coslat

      • coslat²::Vector{NF} where NF<:AbstractFloat: = cos²(lat) Default: coslat .^ 2

      • coslat⁻²::Vector{NF} where NF<:AbstractFloat: # = 1/cos²(lat) Default: 1 ./ coslat²

      • σ_levels_half::Vector{NF} where NF<:AbstractFloat: σ at half levels, σk+1/2 Default: spectralgrid.verticalcoordinates.σhalf

      • σ_levels_full::Vector{NF} where NF<:AbstractFloat: σ at full levels, σₖ Default: 0.5 * (σlevelshalf[2:end] + σlevelshalf[1:end - 1])

      • σ_levels_thick::Vector{NF} where NF<:AbstractFloat: σ level thicknesses, σₖ₊₁ - σₖ Default: σlevelshalf[2:end] - σlevelshalf[1:end - 1]

      • ln_σ_levels_full::Vector{NF} where NF<:AbstractFloat: log of σ at full levels, include surface (σ=1) as last element Default: log.(vcat(σlevelsfull, 1))

      source
      Missing docstring.

      Missing docstring for SpeedyWeather.vertical_coordinates. Check Documenter's build log for details.

      Time stepping

      SpeedyWeather.time_stepping!Function
      time_stepping!(
      +    progn::PrognosticVariables,
      +    diagn::DiagnosticVariables,
      +    model::SpeedyWeather.ModelSetup
      +) -> PrognosticVariables
      +

      Main time loop that that initializes output and feedback, loops over all time steps and calls the output and feedback functions.

      source
      SpeedyWeather.timestep!Function
      timestep!(
      +    progn::PrognosticVariables,
      +    diagn::DiagnosticVariables,
      +    time::Dates.DateTime,
      +    dt::Real,
      +    i::Integer,
      +    model::Barotropic
      +)
      +timestep!(
      +    progn::PrognosticVariables,
      +    diagn::DiagnosticVariables,
      +    time::Dates.DateTime,
      +    dt::Real,
      +    i::Integer,
      +    model::Barotropic,
      +    lf1::Int64
      +)
      +timestep!(
      +    progn::PrognosticVariables,
      +    diagn::DiagnosticVariables,
      +    time::Dates.DateTime,
      +    dt::Real,
      +    i::Integer,
      +    model::Barotropic,
      +    lf1::Int64,
      +    lf2::Int64
      +)
      +

      Calculate a single time step for the model <: Barotropic.

      source
      timestep!(
      +    progn::PrognosticVariables{NF<:AbstractFloat},
      +    diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},
      +    time::Dates.DateTime,
      +    dt::Real,
      +    i::Integer,
      +    model::ShallowWater
      +) -> SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat
      +timestep!(
      +    progn::PrognosticVariables{NF<:AbstractFloat},
      +    diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},
      +    time::Dates.DateTime,
      +    dt::Real,
      +    i::Integer,
      +    model::ShallowWater,
      +    lf1::Int64
      +) -> SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat
      +timestep!(
      +    progn::PrognosticVariables{NF<:AbstractFloat},
      +    diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},
      +    time::Dates.DateTime,
      +    dt::Real,
      +    i::Integer,
      +    model::ShallowWater,
      +    lf1::Int64,
      +    lf2::Int64
      +) -> SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat
      +

      Calculate a single time step for the model <: ShallowWater.

      source
      timestep!(
      +    progn::PrognosticVariables{NF<:AbstractFloat},
      +    diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},
      +    time::Dates.DateTime,
      +    dt::Real,
      +    i::Integer,
      +    model::PrimitiveEquation
      +) -> Any
      +timestep!(
      +    progn::PrognosticVariables{NF<:AbstractFloat},
      +    diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},
      +    time::Dates.DateTime,
      +    dt::Real,
      +    i::Integer,
      +    model::PrimitiveEquation,
      +    lf1::Int64
      +) -> Any
      +timestep!(
      +    progn::PrognosticVariables{NF<:AbstractFloat},
      +    diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},
      +    time::Dates.DateTime,
      +    dt::Real,
      +    i::Integer,
      +    model::PrimitiveEquation,
      +    lf1::Int64,
      +    lf2::Int64
      +) -> Any
      +

      Calculate a single time step for the model<:PrimitiveEquation

      source
      SpeedyWeather.first_timesteps!Function
      first_timesteps!(
      +    progn::PrognosticVariables,
      +    diagn::DiagnosticVariables,
      +    clock::SpeedyWeather.Clock,
      +    model::SpeedyWeather.ModelSetup,
      +    output::SpeedyWeather.AbstractOutputWriter
      +) -> typeof(time)
      +

      Performs the first two initial time steps (Euler forward, unfiltered leapfrog) to populate the prognostic variables with two time steps (t=0,Δt) that can then be used in the normal leap frogging.

      source
      SpeedyWeather.leapfrog!Function
      leapfrog!(
      +    A_old::LowerTriangularMatrix{Complex{NF<:AbstractFloat}},
      +    A_new::LowerTriangularMatrix{Complex{NF<:AbstractFloat}},
      +    tendency::LowerTriangularMatrix{Complex{NF<:AbstractFloat}},
      +    dt::Real,
      +    lf::Int64,
      +    L::Leapfrog{NF<:AbstractFloat}
      +)
      +

      Performs one leapfrog time step with (lf=2) or without (lf=1) Robert+William's filter (see William (2009), Montly Weather Review, Eq. 7-9).

      source

      Longwave radiation

      Missing docstring.

      Missing docstring for SpeedyWeather.radset!. Check Documenter's build log for details.

      Missing docstring.

      Missing docstring for SpeedyWeather.radlw_down!. Check Documenter's build log for details.

      Missing docstring.

      Missing docstring for SpeedyWeather.compute_bbe!. Check Documenter's build log for details.

      Missing docstring.

      Missing docstring for SpeedyWeather.radlw_up!. Check Documenter's build log for details.

      Shortwave radiation

      Missing docstring.

      Missing docstring for SpeedyWeather.shortwave_radiation!. Check Documenter's build log for details.

      Missing docstring.

      Missing docstring for SpeedyWeather.solar!. Check Documenter's build log for details.

      Missing docstring.

      Missing docstring for SpeedyWeather.sol_oz!. Check Documenter's build log for details.

      Missing docstring.

      Missing docstring for SpeedyWeather.cloud!. Check Documenter's build log for details.

      Missing docstring.

      Missing docstring for SpeedyWeather.radsw!. Check Documenter's build log for details.

      diff --git a/previews/PR334/grids/index.html b/previews/PR334/grids/index.html new file mode 100644 index 000000000..1c9127344 --- /dev/null +++ b/previews/PR334/grids/index.html @@ -0,0 +1,2 @@ + +Grids · SpeedyWeather.jl

      Grids

      The spectral transform (the Spherical Harmonic Transform) in SpeedyWeather.jl supports any ring-based equi-longitude grid. Several grids are already implemented but other can be added. The following pages will describe an overview of these grids and how they can be used.

      Ring-based equi-longitude grids

      SpeedyWeather.jl's spectral transform currently only supports ring-based equi-longitude grids. These grids have their grid points located on rings with constant latitude and on rings the points are equi-spaced in longitude. There is technically no constrain on the spacing of the latitude rings, but the Legendre transform requires a quadrature to map those to spectral space and back. Common choices for latitudes are the Gaussian latitudes which use the Gaussian quadrature, or equi-angle latitudes (i.e. just regular latitudes but excluding the poles) that use the Clenshaw-Curtis quadrature. The longitudes have to be equi-spaced on every ring, which is necessary for the fast Fourier transform, as one would otherwise need to use a non-uniform Fourier transform. In SpeedyWeather.jl the first grid point on any ring can have a longitudinal offset though, for example by spacing 4 points around the globe at 45˚E, 135˚E, 225˚E, and 315˚E. In this case the offset is 45˚E as the first point is not at 0˚E.

      Implemented grids

      All grids in SpeedyWeather.jl are a subtype of AbstractGrid, i.e. <: AbstractGrid. We further distinguish between full, and reduced grids. Full grids have the same number of longitude points on every latitude ring (i.e. points converge towards the poles) and reduced grids reduce the number of points towards the poles to have them more evenly spread out across the globe. More evenly does not necessarily mean that a grid is equal-area, meaning that every grid cell covers exactly the same area (although the shape changes).

      Currently the following full grids <: AbstractFullGrid are implemented

      • FullGaussianGrid, a full grid with Gaussian latitudes
      • FullClenshawGrid, a full grid with equi-angle latitudes

      and additionally we have FullHEALPixGrid and FullOctaHEALPixGrid which are the full grid equivalents to the HEALPix grid and the OctaHEALPix grid discussed below. Full grid equivalent means that they have the same latitude rings, but no reduction in the number of points per ring towards the poles and no longitude offset. Other implemented reduced grids are

      • OctahedralGaussianGrid, a reduced grid with Gaussian latitudes based on an octahedron
      • OctahedralClenshawGrid, similar but based on equi-angle latitudes
      • HEALPixGrid, an equal-area grid based on a dodecahedron with 12 faces
      • OctaHEALPixGrid, an equal-area grid from the class of HEALPix grids but based on an octahedron.

      An overview of these grids is visualised here

      Overview of implemented grids in SpeedyWeather.jl

      Visualised are each grid's grid points (white dots) and grid faces (white lines). All grids shown have 16 latitude rings on one hemisphere, Equator included. The total number of grid points is denoted in the top left of every subplot. The sphere is shaded with grey, orange and turquoise regions to denote the hemispheres in a and b, the 8 octahedral faces c, d,f and the 12 dodecahedral faces (or base pixels) in e. Coastlines are added for orientation.

      Resolution

      All grids use the same resolution parameter nlat_half, i.e. the number of rings on one hemisphere, Equator included. The Gaussian grids (full and reduced) do not have a ring on the equator, so their total number of rings nlat is always even and twice nlat_half. Clenshaw-Curtis grids and the HEALPix grids have a ring on the equator such their total number of rings is always odd and one less than the Gaussian grids at the same nlat_half.

      HEALPix grids do not use Nside as resolution parameter

      The original formulation for HEALPix grids use $N_{side}$, the number of grid points along the edges of each basepixel (8 in the figure above), SpeedyWeather.jl uses nlat_half, the number of rings on one hemisphere, Equator included, for all grids. This is done for consistency across grids. We may use $N_{side}$ for the documentation or within functions though.

      Truncation

      A given spectral resolution can be matched to a variety of grid resolutions. A cubic grid, for example, combines a spectral truncation T with a grid resolution N (=nlat_half) such that T + 1 = N. Using T31 and an O32 is therefore often abbreviated as Tco31 meaning that the spherical harmonics are truncated at $l_{max}=31$ in combination with N=32, i.e. 64 latitude rings in total on an octahedral Gaussian grid.

      Let J be the total number of rings. Then we have

      • $T \approx J$ for linear truncation
      • $\frac{3}{2}T \approx J$ for quadratic truncation
      • $2T \approx J$ for cubic truncation

      and in general $\frac{m+1}{2}T \approx J$ for m-th order truncation. So the higher the truncaction order the more grid points are used in combination with the same spectral resolution. A higher truncation order therefore makes all grid-point calculations more expensive, but can represent products of terms on the grid (which will have higher wavenumber components) to a higher accuracy as more grid points are available within a given wavelength. Using a sufficiently high truncation is therefore one way to avoid aliasing. In SpeedyWeather.jl the parameter dealiasing controls this option, = 1 would be linear, = 2 quadratic, = 3 cubic etc.

      Full Gaussian grid

      ...

      Full Clenshaw-Curtis grid

      ...

      Octahedral Gaussian grid

      ...

      The HEALPix grid

      Technically, HEALPix grids are a class of grids that tessalate the sphere into faces that are often called basepixels. For each member of this class there are $N_\varphi$ basepixels in zonal direction and $N_\theta$ basepixels in meridional direction. For $N_\varphi = 4$ and $N_\theta = 3$ we obtain the classical HEALPix grid with $N_\varphi N_\theta = 12$ basepixels shown above in Implemented Grids. Each basepixel has a quadratic number of grid points in them. There's an equatorial zone where the number of zonal grid points is constant (always $2N$, so 32 at $N=16$) and there are polar caps above and below the equatorial zone with the border at $\cos(\theta) = 2/3$ ($\theta$ in colatitudes).

      Following Górski, 2004[1], the $z=cos(\theta)$ colatitude of the $j$-th ring in the north polar cap, $j=1,...,N_{side}$ with $2N_{side} = N$ is

      \[z = 1 - \frac{j^2}{3N_{side}^2}\]

      and on that ring, the longitude $\phi$ of the $i$-th point ($i$ is the in-ring-index) is at

      \[\phi = \frac{\pi}{2j}(i-\tfrac{1}{2})\]

      The in-ring index $i$ goes from $i=1,...,4$ for the first (i.e. northern-most) ring, $i=1,...,8$ for the second ring and $i = 1,...,4j$ for the $j$-th ring in the northern polar cap.

      In the north equatorial belt $j=N_{side},...,2N_{side}$ this changes to

      \[z = \frac{4}{3} - \frac{2j}{3N_{side}}\]

      and the longitudes change to ($i$ is always $i = 1,...,4N_{side}$ in the equatorial belt meaning the number of longitude points is constant here)

      \[\phi = \frac{\pi}{2N_{side}}(i - \frac{s}{2}), \quad s = (j - N_{side} + 1) \mod 2\]

      The modulo function comes in as there is an alternating longitudinal offset from the prime meridian (see Implemented grids). For the southern hemisphere the grid point locations can be obtained by mirror symmetry.

      Grid cell boundaries

      The cell boundaries are obtained by setting $i = k + 1/2$ or $i = k + 1/2 + j$ (half indices) into the equations above, such that $z(\phi,k)$, a function for the cosine of colatitude $z$ of index $k$ and the longitude $\phi$ is obtained. These are then (northern polar cap)

      \[z = 1 - \frac{k^2}{3N_{side}^2}\left(\frac{\pi}{2\phi_t}\right)^2, \quad z = 1 - \frac{k^2}{3N_{side}^2}\left(\frac{\pi}{2\phi_t - \pi}\right)^2\]

      with $\phi_t = \phi \mod \tfrac{\pi}{2}$ and in the equatorial belt

      \[z = \frac{2}{3}-\frac{4k}{3N_{side}} \pm \frac{8\phi}{3\pi}\]

      OctaHEALPix grid

      While the classic HEALPix grid is based on a dodecahedron, other choices for $N_\varphi$ and $N_\theta$ in the class of HEALPix grids will change the number of faces there are in zonal/meridional direction. With $N_\varphi = 4$ and $N_\theta = 1$ we obtain a HEALPix grid that is based on an octahedron, which has the convenient property that there are twice as many longitude points around the equator than there are latitude rings between the poles. This is a desirable for truncation as this matches the distances too, $2\pi$ around the Equator versus $\pi$ between the poles. $N_\varphi = 6, N_\theta = 2$ or $N_\varphi = 8, N_\theta = 3$ are other possible choices for this, but also more complicated. See Górski, 2004[1] for further examples and visulations of these grids.

      We call the $N_\varphi = 4, N_\theta = 1$ HEALPix grid the OctaHEALPix grid, which combines the equal-area property of the HEALPix grids with the octahedron that's also used in the OctahedralGaussianGrid or the OctahedralClenshawGrid. As $N_\theta = 1$ there is no equatorial belt which simplifies the grid. The latitude of the $j$-th isolatitude ring on the OctaHEALPixGrid is defined by

      \[z = 1 - \frac{j^2}{N^2},\]

      with $j=1,...,N$, and similarly for the southern hemisphere by symmetry. On this grid $N_{side} = N$ where $N$= nlat_half, the number of latitude rings on one hemisphere, Equator included, because each of the 4 basepixels spans from pole to pole and covers a quarter of the sphere. The longitudes with in-ring- index $i = 1,...,4j$ are

      \[\phi = \frac{\pi}{2j}(i - \tfrac{1}{2})\]

      and again, the southern hemisphere grid points are obtained by symmetry.

      Grid cell boundaries

      Similar to the grid cell boundaries for the HEALPix grid, the OctaHEALPix grid's boundaries are

      \[z = 1 - \frac{k^2}{N^2}\left(\frac{\pi}{2\phi_t}\right)^2, \quad z = 1 - \frac{k^2}{N^2}\left(\frac{\pi}{2\phi_t - \pi}\right)^2\]

      The $3N_{side}^2$ in the denominator of the HEALPix grid came simply $N^2$ for the OctaHEALPix grid and there's no separate equation for the equatorial belt (which doesn't exist in the OctaHEALPix grid).

      References

      [1] Górski, Hivon, Banday, Wandelt, Hansen, Reinecke, Bartelmann, 2004. HEALPix: A FRAMEWORK FOR HIGH-RESOLUTION DISCRETIZATION AND FAST ANALYSIS OF DATA DISTRIBUTED ON THE SPHERE, The Astrophysical Journal. doi:10.1086/427976

      diff --git a/previews/PR334/how_to_run_speedy/index.html b/previews/PR334/how_to_run_speedy/index.html new file mode 100644 index 000000000..64e9d6213 --- /dev/null +++ b/previews/PR334/how_to_run_speedy/index.html @@ -0,0 +1,5 @@ + +How to run SpeedyWeather.jl · SpeedyWeather.jl

      How to run SpeedyWeather.jl

      The simplest way to run SpeedyWeather.jl with default parameters is

      using SpeedyWeather
      +run_speedy()

      Hooray, you have just simulated the Earth's atmosphere. Parameters, their meanings and defaults are documented in Parameters. For example, if you want to run the primitive equation dry core (no humidity) simulation in double precision (Float64), at higher resolution (trunc, the triangular spectral truncation), slow down the rotation of the Earth (rotation in $s^{-1}$), and create some netCDF ouput, do

      run_speedy(Float64,PrimitiveDry,trunc=42,planet=Earth(rotation=1e-5),output=true)

      If provided, the number format has to be the first argument, the model (Barotropic, ShallowWater, PrimitiveDry, PrimitiveWet are available) the second, and all other arguments are keyword arguments.

      The run_speedy interface

      SpeedyWeather.run_speedyFunction
      progn_vars = run_speedy(NF,Model;kwargs...)     or
      +progn_vars = run_speedy(NF;kwargs...)           or
      +progn_vars = run_speedy(Model;kwargs...)

      Runs SpeedyWeather.jl with number format NF and the model Model and any additional parameters in the keyword arguments kwargs.... Unspecified parameters use the default values.

      source

      The initialize_speedy interface

      Missing docstring.

      Missing docstring for initialize_speedy. Check Documenter's build log for details.

      diff --git a/previews/PR334/index.html b/previews/PR334/index.html new file mode 100644 index 000000000..854c5cba5 --- /dev/null +++ b/previews/PR334/index.html @@ -0,0 +1,2 @@ + +Home · SpeedyWeather.jl

      SpeedyWeather.jl documentation

      Welcome to the documentation for SpeedyWeather.jl a global atmospheric circulation model with simple parametrizations to represent physical processes such as clouds, precipitation and radiation.

      Overview

      SpeedyWeather.jl is a global spectral model that uses a spherical harmonic transform to perform some calculations in spectral space (time integration, gradients, linear terms) and some in grid-point space (advection, non-linear terms, parameterizations). The prognostic variables used are vorticity, divergence, absolute temperature, logarithm of surface pressure and specific humidity. The time stepping uses a leapfrog scheme with additional filters and a semi-implicit formulation for gravity waves. The default resolution is T31 (96x48 grid points on a regular Gaussian grid, about 400km at the Equator) and 8 vertical levels.

      Simple parameterizations are used to represent the physical processes convection, large-scale condensation, clouds, short-wave radiation, long-waves radiation, surface fluxes of momentum and energy, and vertical diffusion.

      Manual outline

      See the following pages of the documentation for more details

      and the original documentation by Molteni and Kucharski.

      Scope

      The focus of SpeedyWeather.jl is to develop a global atmospheric model of intermediate complexity, that can run at various levels of precision (16, 32 and 64-bit) on different architectures (x86 and ARM, GPUs in the future). Additionally, the model is written in an entirely number format-flexible way, such that any custom number format can be used and Julia will compile to the format automatically. Similarly, many model components are written in an abstract way to support modularity and extandability.

      History

      SpeedyWeather.jl is a Julia implementation of SPEEDY, which is written in Fortran 77. Sam Hatfield translated SPEEDY to Fortran 90 and started the project to port it to Julia. However, we are making an effort to overhaul the implementation of the mathematical model behind speedy completely and it is unlikely that a single line of code survived.

      Installation

      SpeedyWeather.jl is registered in the Julia Registry. Open Julia's package manager from the REPL with ] and add the github repository to install SpeedyWeather.jl and all dependencies

      (@v1.8) pkg> add SpeedyWeather

      which will automatically install the latest release. However, you may want to install directly from the main branch with

      (@v1.8) pkg> add https://github.com/SpeedyWeather/SpeedyWeather.jl#main

      other branches than #main can be installed by adding #branch_name instead.

      Developers

      The development of SpeedyWeather.jl is lead by Milan Klöwer and current and past contributors include

      Any contributions are always welcome!

      Funding

      Contributors received funding by the European Research Council under Horizon 2020 within the ITHACA project, grant agreement number 741112 from 2021-2022.

      diff --git a/previews/PR334/new_model_setups/index.html b/previews/PR334/new_model_setups/index.html new file mode 100644 index 000000000..4794d3b63 --- /dev/null +++ b/previews/PR334/new_model_setups/index.html @@ -0,0 +1,2 @@ + +New model setups · SpeedyWeather.jl diff --git a/previews/PR334/parametrizations/index.html b/previews/PR334/parametrizations/index.html new file mode 100644 index 000000000..499aeb79b --- /dev/null +++ b/previews/PR334/parametrizations/index.html @@ -0,0 +1,2 @@ + +Parameterizations · SpeedyWeather.jl
      diff --git a/previews/PR334/search/index.html b/previews/PR334/search/index.html new file mode 100644 index 000000000..c7cc0bed7 --- /dev/null +++ b/previews/PR334/search/index.html @@ -0,0 +1,2 @@ + +Search · SpeedyWeather.jl

      Loading search...

        diff --git a/previews/PR334/search_index.js b/previews/PR334/search_index.js new file mode 100644 index 000000000..89446fac3 --- /dev/null +++ b/previews/PR334/search_index.js @@ -0,0 +1,3 @@ +var documenterSearchIndex = {"docs": +[{"location":"development/#Development-notes","page":"Development notes","title":"Development notes","text":"","category":"section"},{"location":"development/","page":"Development notes","title":"Development notes","text":"To run tests, from the path of your local clone of the repository do:","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"julia --project=. -e 'import Pkg; Pkg.test()'","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"To install dependencies:","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"julia --project -e 'import Pkg; Pkg.instantiate()`","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"then opening:","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"julia --project","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"you are able to using SpeedyWeather.","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"To generate the docs:","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"julia --project=docs -e 'import Pkg; Pkg.develop(path=\".\"); Pkg.instantiate()'\njulia --project=docs docs/make.jl","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"If the docs are generated successfully, you view them by opening docs/build/index.html in your favorite browser.","category":"page"},{"location":"functions/#Function-and-type-index","page":"Function and type index","title":"Function and type index","text":"","category":"section"},{"location":"functions/#Parameters-and-constants","page":"Function and type index","title":"Parameters and constants","text":"","category":"section"},{"location":"functions/","page":"Function and type index","title":"Function and type index","text":"SpeedyWeather.Parameters\nSpeedyWeather.Constants","category":"page"},{"location":"functions/#Boundaries-and-boundary-conditions","page":"Function and type index","title":"Boundaries and boundary conditions","text":"","category":"section"},{"location":"functions/","page":"Function and type index","title":"Function and type index","text":"SpeedyWeather.Boundaries","category":"page"},{"location":"functions/#Spherical-harmonic-transform","page":"Function and type index","title":"Spherical harmonic transform","text":"","category":"section"},{"location":"functions/","page":"Function and type index","title":"Function and type index","text":"SpeedyWeather.GeoSpectral\nSpeedyWeather.SpectralTransform\nSpeedyWeather.spectral\nSpeedyWeather.spectral!\nSpeedyWeather.gridded\nSpeedyWeather.gridded!\nSpeedyWeather.triangular_truncation\nSpeedyWeather.roundup_fft\nSpeedyWeather.spectral_truncation\nSpeedyWeather.spectral_truncation!\nSpeedyWeather.spectral_interpolation!\nSpeedyWeather.get_legendre_polynomials!\nSpeedyWeather.∇²!\nSpeedyWeather.∇²\nSpeedyWeather.∇⁻²!\nSpeedyWeather.∇⁻²\nSpeedyWeather.gradient_latitude!\nSpeedyWeather.gradient_latitude\nSpeedyWeather.gradient_longitude!\nSpeedyWeather.gradient_longitude\nSpeedyWeather.divergence!\nSpeedyWeather.curl!\nSpeedyWeather._divergence!\nSpeedyWeather.curl_div!\nSpeedyWeather.UV_from_vordiv!\nSpeedyWeather.UV_from_vor!\nSpeedyWeather.ϵlm\nSpeedyWeather.get_recursion_factors","category":"page"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.SpectralTransform","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.SpectralTransform","text":"S = SpectralTransform{NF<:AbstractFloat}(...)\n\nSpectralTransform struct that contains all parameters and preallocated arrays for the spectral transform.\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.spectral","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.spectral","text":"alms = spectral( map::AbstractMatrix;\n Grid::Type{<:AbstractGrid}=DEFAULT_GRID,\n kwargs...)\n\nConverts map to grid(map) to execute spectral(map::AbstractGrid;kwargs...).\n\n\n\n\n\nalms = spectral( map::AbstractGrid;\n Grid::Type{<:AbstractGrid}=DEFAULT_GRID,\n kwargs...)\n\nConverts map to Grid(map) to execute spectral(map::AbstractGrid;kwargs...).\n\n\n\n\n\nalms = spectral( map::AbstractMatrix;\n Grid::Type{<:AbstractGrid}=DEFAULT_GRID,\n kwargs...)\n\nSpectral transform (grid to spectral) map to grid(map) to execute spectral(map::AbstractGrid;kwargs...).\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.spectral!","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.spectral!","text":"spectral!( alms::LowerTriangularMatrix,\n map::AbstractGrid,\n S::SpectralTransform)\n\nSpectral transform (grid to spectral space) from the gridded field map on a grid<:AbstractGrid to a LowerTriangularMatrix of spherical harmonic coefficients alms. Uses FFT in the zonal direction, and a Legendre Transform in the meridional direction exploiting symmetries. The spectral transform is number format-flexible as long as the parametric types of map, alms, S are identical. The spectral transform is grid-flexible as long as the typeof(map)<:AbstractGrid. Uses the precalculated arrays, FFT plans and other constants in the SpectralTransform struct S.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.gridded","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.gridded","text":"map = gridded( alms::AbstractMatrix;\n recompute_legendre::Bool=true,\n grid::Type{<:AbstractGrid}=DEFAULT_GRID)\n\nSpectral transform (spectral to grid space) from spherical coefficients alms to a newly allocated gridded field map. Based on the size of alms the grid type grid, the spatial resolution is retrieved based on the truncation defined for grid. SpectralTransform struct S is allocated to execute gridded(alms,S).\n\n\n\n\n\nmap = gridded( alms::AbstractMatrix,\n S::SpectralTransform)\n\nSpectral transform (spectral to grid space) from spherical coefficients alms to a newly allocated gridded field map with precalculated properties based on the SpectralTransform struct S. alms is converted to a LowerTriangularMatrix to execute the in-place gridded!.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.gridded!","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.gridded!","text":"gridded!( map::AbstractGrid,\n alms::LowerTriangularMatrix,\n S::SpectralTransform)\n\nSpectral transform (spectral to grid) of the spherical harmonic coefficients alms to a gridded field map. The spectral transform is number format-flexible as long as the parametric types of map, alms, S are identical. The spectral transform is grid-flexible as long as the typeof(map)<:AbstractGrid. Uses the precalculated arrays, FFT plans and other constants in the SpectralTransform struct S.\n\n\n\n\n\ngridded!(\n diagn::DiagnosticVariables,\n progn::PrognosticVariables,\n lf::Int64,\n model::SpeedyWeather.ModelSetup\n)\n\n\nPropagate the spectral state of progn to diagn using time step/leapfrog index lf. Function barrier that calls gridded! for the respective model.\n\n\n\n\n\ngridded!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n progn::SpeedyWeather.PrognosticLayerTimesteps,\n lf::Int64,\n model::Barotropic\n)\n\n\nPropagate the spectral state of the prognostic variables progn to the diagnostic variables in diagn for the barotropic vorticity model. Updates grid vorticity, spectral stream function and spectral and grid velocities u,v.\n\n\n\n\n\ngridded!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n progn::SpeedyWeather.PrognosticLayerTimesteps,\n lf::Int64,\n model::ShallowWater\n)\n\n\nPropagate the spectral state of the prognostic variables progn to the diagnostic variables in diagn for the shallow water model. Updates grid vorticity, grid divergence, grid interface displacement (pres_grid) and the velocities u,v.\n\n\n\n\n\ngridded!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n progn::SpeedyWeather.PrognosticLayerTimesteps,\n lf::Int64,\n model::PrimitiveEquation\n)\n\n\nPropagate the spectral state of the prognostic variables progn to the diagnostic variables in diagn for primitive equation models. Updates grid vorticity, grid divergence, grid temperature, pressure (pres_grid) and the velocities u,v.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.spectral_truncation","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.spectral_truncation","text":"alms_trunc = spectral_truncation(alms,trunc)\n\nReturns a spectral coefficient matrix alms_trunc that is truncated from alms to the size (trunc+1)². alms_trunc only contains those coefficient of alms for which m,l ≤ trunc, and l ≥ m are zero anyway. If trunc is larger than the implicit truncation in alms obtained from its size than spectral_interpolation is automatically called instead, returning alms_interp, a coefficient matrix that is larger than alms with padded zero coefficients.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.spectral_truncation!","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.spectral_truncation!","text":"spectral_truncation!(alms::AbstractMatrix,ltrunc::Integer,mtrunc::Integer)\n\nTruncate spectral coefficients alms in-place by setting (a) the upper right triangle to zero and (b) all coefficients for which the degree l is larger than the truncation ltrunc or order m larger than the truncaction mtrunc.\n\n\n\n\n\nspectral_truncation!(alms::LowerTriangularMatrix,ltrunc::Integer,mtrunc::Integer)\n\nTruncate spectral coefficients alms in-place by setting all coefficients for which the degree l is larger than the truncation ltrunc or order m larger than the truncaction mtrunc. Similar to spectral_truncation!(::AbstractMatrix, ...) but skips the upper triangle which is zero by design for LowerTriangularMatrix.\n\n\n\n\n\nspectral_truncation!(alms,trunc)\n\nTruncate spectral coefficients alms in-place by setting (a) the upper right triangle to zero and (b) all coefficients for which the degree l is larger than the truncation trunc.\n\n\n\n\n\nspectral_truncation!(alms)\n\nTruncate spectral coefficients alms in-place by setting the upper right triangle to zero. This is to enforce that all coefficients for which the degree l is larger than order m are zero.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.∇²!","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.∇²!","text":"∇²!( ∇²alms::LowerTriangularMatrix,\n alms::LowerTriangularMatrix,\n S::SpectralTransform;\n add::Bool=false,\n flipsign::Bool=false,\n inverse::Bool=false)\n\nLaplace operator ∇² applied to the spectral coefficients alms in spherical coordinates. The radius R is omitted in the eigenvalues which are precomputed in S. ∇²! is the in-place version which directly stores the output in the first argument ∇²alms.\n\nKeyword arguments\n\nadd=true adds the ∇²(alms) to the output\nflipsign=true computes -∇²(alms) instead\ninverse=true computes ∇⁻²(alms) instead\n\nDefault is add=false, flipsign=false, inverse=false. These options can be combined.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.∇⁻²!","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.∇⁻²!","text":"∇⁻²!( ∇⁻²alms::LowerTriangularMatrix,\n alms::LowerTriangularMatrix,\n S::SpectralTransform;\n add::Bool=false,\n flipsign::Bool=false)\n\nCalls ∇²!(∇⁻²alms, alms, S; add, flipsign, inverse=true).\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.divergence!","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.divergence!","text":"divergence!(div::LowerTriangularMatrix,\n u::LowerTriangularMatrix,\n v::LowerTriangularMatrix,\n S::SpectralTransform{NF};\n flipsign::Bool=false,\n add::Bool=false,\n )\n\nDivergence of a vector u,v written into div, div = ∇⋅(u,v). u,v are expected to have a 1/coslat-scaling included, then div is not scaled. flipsign option calculates -∇⋅(u,v) instead. add option calculates div += ∇⋅(u,v) instead. flipsign and add can be combined. This functions only creates the kernel and calls the generic divergence function _divergence! subsequently.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.curl!","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.curl!","text":"curl!( curl::LowerTriangularMatrix,\n u::LowerTriangularMatrix,\n v::LowerTriangularMatrix,\n S::SpectralTransform;\n flipsign::Bool=false,\n add::Bool=false,\n )\n\nCurl of a vector u,v written into curl, curl = ∇×(u,v). u,v are expected to have a 1/coslat-scaling included, then curl is not scaled. flipsign option calculates -∇×(u,v) instead. add option calculates curl += ∇×(u,v) instead. flipsign and add can be combined. This functions only creates the kernel and calls the generic divergence function _divergence! subsequently with flipped u,v -> v,u for the curl.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.UV_from_vordiv!","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.UV_from_vordiv!","text":"UV_from_vordiv!(U::LowerTriangularMatrix,\n V::LowerTriangularMatrix,\n vor::LowerTriangularMatrix,\n div::LowerTriangularMatrix,\n S::SpectralTransform)\n\nGet U,V (=(u,v)*coslat) from vorticity ζ and divergence D in spectral space. Two operations are combined into a single linear operation. First, invert the spherical Laplace ∇² operator to get stream function from vorticity and velocity potential from divergence. Then compute zonal and meridional gradients to get U,V.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.UV_from_vor!","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.UV_from_vor!","text":"UV_from_vor!( U::LowerTriangularMatrix,\n V::LowerTriangularMatrix,\n vor::LowerTriangularMatrix,\n S::SpectralTransform)\n\nGet U,V (=(u,v)*coslat) from vorticity ζ spectral space (divergence D=0) Two operations are combined into a single linear operation. First, invert the spherical Laplace ∇² operator to get stream function from vorticity. Then compute zonal and meridional gradients to get U,V.\n\n\n\n\n\n","category":"function"},{"location":"functions/#Dynamics","page":"Function and type index","title":"Dynamics","text":"","category":"section"},{"location":"functions/","page":"Function and type index","title":"Function and type index","text":"SpeedyWeather.bernoulli_potential!\nSpeedyWeather.volume_flux_divergence!\nSpeedyWeather.vorticity_fluxes!\nSpeedyWeather.vorticity_flux_curl!\nSpeedyWeather.vorticity_flux_divergence!","category":"page"},{"location":"functions/#SpeedyWeather.bernoulli_potential!","page":"Function and type index","title":"SpeedyWeather.bernoulli_potential!","text":"bernoulli_potential!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF},\n S::SpectralTransform\n) -> LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat\n\n\nComputes the Laplace operator ∇² of the Bernoulli potential B in spectral space.\n\ncomputes the kinetic energy KE = ½(u²+v²) on the grid\ntransforms KE to spectral space\nadds geopotential for the Bernoulli potential in spectral space\ntakes the Laplace operator.\n\nThis version is used for both ShallowWater and PrimitiveEquation, only the geopotential calculation in geopotential! differs.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.volume_flux_divergence!","page":"Function and type index","title":"SpeedyWeather.volume_flux_divergence!","text":"volume_flux_divergence!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n surface::SpeedyWeather.SurfaceVariables,\n orog::SpeedyWeather.AbstractOrography,\n constants::DynamicsConstants,\n G::Geometry,\n S::SpectralTransform\n)\n\n\nComputes the (negative) divergence of the volume fluxes uh,vh for the continuity equation, -∇⋅(uh,vh).\n\n\n\n\n\n","category":"function"},{"location":"functions/#Geometry","page":"Function and type index","title":"Geometry","text":"","category":"section"},{"location":"functions/","page":"Function and type index","title":"Function and type index","text":"SpeedyWeather.Geometry\nSpeedyWeather.vertical_coordinates\nSpeedyWeather.GenLogisticCoefs\nSpeedyWeather.generalised_logistic","category":"page"},{"location":"functions/#SpeedyWeather.Geometry","page":"Function and type index","title":"SpeedyWeather.Geometry","text":"Construct Geometry struct containing parameters and arrays describing an iso-latitude grid <:AbstractGrid and the vertical levels. Pass on SpectralGrid to calculate the following fields\n\nspectral_grid::SpectralGrid: SpectralGrid that defines spectral and grid resolution\nGrid::Type{<:SpeedyWeather.RingGrids.AbstractGrid}: grid of the dynamical core Default: spectral_grid.Grid\nnlat_half::Int64: resolution parameter nlathalf of Grid, # of latitudes on one hemisphere (incl Equator) Default: spectralgrid.nlat_half\nnlon_max::Int64: maximum number of longitudes (at/around Equator) Default: getnlonmax(Grid, nlat_half)\nnlon::Int64: =nlonmax, same (used for compatibility), TODO: still needed? Default: nlonmax\nnlat::Int64: number of latitude rings Default: getnlat(Grid, nlathalf)\nnlev::Int64: number of vertical levels Default: spectral_grid.nlev\nnpoints::Int64: total number of grid points Default: spectral_grid.npoints\nradius::AbstractFloat: Planet's radius [m] Default: spectral_grid.radius\nlatd::Vector{Float64}: array of latitudes in degrees (90˚...-90˚) Default: getlatd(Grid, nlathalf)\nlond::Vector{Float64}: array of longitudes in degrees (0...360˚), empty for non-full grids Default: getlond(Grid, nlathalf)\nlonds::Vector{NF} where NF<:AbstractFloat: longitude (-180˚...180˚) for each grid point in ring order Default: (getlatdlonds(Grid, nlathalf))[2]\nlatds::Vector{NF} where NF<:AbstractFloat: latitude (-90˚...˚90) for each grid point in ring order Default: (getlatdlonds(Grid, nlathalf))[1]\nsinlat::Vector{NF} where NF<:AbstractFloat: sin of latitudes Default: sind.(latd)\ncoslat::Vector{NF} where NF<:AbstractFloat: cos of latitudes Default: cosd.(latd)\ncoslat⁻¹::Vector{NF} where NF<:AbstractFloat: = 1/cos(lat) Default: 1 ./ coslat\ncoslat²::Vector{NF} where NF<:AbstractFloat: = cos²(lat) Default: coslat .^ 2\ncoslat⁻²::Vector{NF} where NF<:AbstractFloat: # = 1/cos²(lat) Default: 1 ./ coslat²\nσ_levels_half::Vector{NF} where NF<:AbstractFloat: σ at half levels, σk+1/2 Default: spectralgrid.verticalcoordinates.σhalf\nσ_levels_full::Vector{NF} where NF<:AbstractFloat: σ at full levels, σₖ Default: 0.5 * (σlevelshalf[2:end] + σlevelshalf[1:end - 1])\nσ_levels_thick::Vector{NF} where NF<:AbstractFloat: σ level thicknesses, σₖ₊₁ - σₖ Default: σlevelshalf[2:end] - σlevelshalf[1:end - 1]\nln_σ_levels_full::Vector{NF} where NF<:AbstractFloat: log of σ at full levels, include surface (σ=1) as last element Default: log.(vcat(σlevelsfull, 1))\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.GenLogisticCoefs","page":"Function and type index","title":"SpeedyWeather.GenLogisticCoefs","text":"Coefficients of the generalised logistic function to describe the vertical coordinate. Default coefficients A,K,C,Q,B,M,ν are fitted to the old L31 configuration at ECMWF.\n\nFollowing the notation of https://en.wikipedia.org/wiki/Generalisedlogisticfunction (Dec 15 2021).\n\nChange default parameters for more/fewer levels in the stratosphere vs troposphere vs boundary layer.\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.generalised_logistic","page":"Function and type index","title":"SpeedyWeather.generalised_logistic","text":"Generalised logistic function based on the coefficients in coefs.\n\n\n\n\n\n","category":"function"},{"location":"functions/#Time-stepping","page":"Function and type index","title":"Time stepping","text":"","category":"section"},{"location":"functions/","page":"Function and type index","title":"Function and type index","text":"SpeedyWeather.time_stepping!\nSpeedyWeather.timestep!\nSpeedyWeather.first_timesteps!\nSpeedyWeather.leapfrog!","category":"page"},{"location":"functions/#SpeedyWeather.time_stepping!","page":"Function and type index","title":"SpeedyWeather.time_stepping!","text":"time_stepping!(\n progn::PrognosticVariables,\n diagn::DiagnosticVariables,\n model::SpeedyWeather.ModelSetup\n) -> PrognosticVariables\n\n\nMain time loop that that initializes output and feedback, loops over all time steps and calls the output and feedback functions.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.timestep!","page":"Function and type index","title":"SpeedyWeather.timestep!","text":"timestep!(\n progn::PrognosticVariables,\n diagn::DiagnosticVariables,\n time::Dates.DateTime,\n dt::Real,\n i::Integer,\n model::Barotropic\n)\ntimestep!(\n progn::PrognosticVariables,\n diagn::DiagnosticVariables,\n time::Dates.DateTime,\n dt::Real,\n i::Integer,\n model::Barotropic,\n lf1::Int64\n)\ntimestep!(\n progn::PrognosticVariables,\n diagn::DiagnosticVariables,\n time::Dates.DateTime,\n dt::Real,\n i::Integer,\n model::Barotropic,\n lf1::Int64,\n lf2::Int64\n)\n\n\nCalculate a single time step for the model <: Barotropic.\n\n\n\n\n\ntimestep!(\n progn::PrognosticVariables{NF<:AbstractFloat},\n diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},\n time::Dates.DateTime,\n dt::Real,\n i::Integer,\n model::ShallowWater\n) -> SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat\ntimestep!(\n progn::PrognosticVariables{NF<:AbstractFloat},\n diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},\n time::Dates.DateTime,\n dt::Real,\n i::Integer,\n model::ShallowWater,\n lf1::Int64\n) -> SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat\ntimestep!(\n progn::PrognosticVariables{NF<:AbstractFloat},\n diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},\n time::Dates.DateTime,\n dt::Real,\n i::Integer,\n model::ShallowWater,\n lf1::Int64,\n lf2::Int64\n) -> SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat\n\n\nCalculate a single time step for the model <: ShallowWater.\n\n\n\n\n\ntimestep!(\n progn::PrognosticVariables{NF<:AbstractFloat},\n diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},\n time::Dates.DateTime,\n dt::Real,\n i::Integer,\n model::PrimitiveEquation\n) -> Any\ntimestep!(\n progn::PrognosticVariables{NF<:AbstractFloat},\n diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},\n time::Dates.DateTime,\n dt::Real,\n i::Integer,\n model::PrimitiveEquation,\n lf1::Int64\n) -> Any\ntimestep!(\n progn::PrognosticVariables{NF<:AbstractFloat},\n diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},\n time::Dates.DateTime,\n dt::Real,\n i::Integer,\n model::PrimitiveEquation,\n lf1::Int64,\n lf2::Int64\n) -> Any\n\n\nCalculate a single time step for the model<:PrimitiveEquation\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.first_timesteps!","page":"Function and type index","title":"SpeedyWeather.first_timesteps!","text":"first_timesteps!(\n progn::PrognosticVariables,\n diagn::DiagnosticVariables,\n clock::SpeedyWeather.Clock,\n model::SpeedyWeather.ModelSetup,\n output::SpeedyWeather.AbstractOutputWriter\n) -> typeof(time)\n\n\nPerforms the first two initial time steps (Euler forward, unfiltered leapfrog) to populate the prognostic variables with two time steps (t=0,Δt) that can then be used in the normal leap frogging.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.leapfrog!","page":"Function and type index","title":"SpeedyWeather.leapfrog!","text":"leapfrog!(\n A_old::LowerTriangularMatrix{Complex{NF<:AbstractFloat}},\n A_new::LowerTriangularMatrix{Complex{NF<:AbstractFloat}},\n tendency::LowerTriangularMatrix{Complex{NF<:AbstractFloat}},\n dt::Real,\n lf::Int64,\n L::Leapfrog{NF<:AbstractFloat}\n)\n\n\nPerforms one leapfrog time step with (lf=2) or without (lf=1) Robert+William's filter (see William (2009), Montly Weather Review, Eq. 7-9).\n\n\n\n\n\n","category":"function"},{"location":"functions/#Longwave-radiation","page":"Function and type index","title":"Longwave radiation","text":"","category":"section"},{"location":"functions/","page":"Function and type index","title":"Function and type index","text":"SpeedyWeather.radset!\nSpeedyWeather.radlw_down!\nSpeedyWeather.compute_bbe!\nSpeedyWeather.radlw_up!","category":"page"},{"location":"functions/#Shortwave-radiation","page":"Function and type index","title":"Shortwave radiation","text":"","category":"section"},{"location":"functions/","page":"Function and type index","title":"Function and type index","text":"SpeedyWeather.shortwave_radiation!\nSpeedyWeather.solar!\nSpeedyWeather.sol_oz!\nSpeedyWeather.cloud!\nSpeedyWeather.radsw!","category":"page"},{"location":"parametrizations/#Parameterizations","page":"Parameterizations","title":"Parameterizations","text":"","category":"section"},{"location":"parametrizations/","page":"Parameterizations","title":"Parameterizations","text":"This page describes the mathematical formulation of the parameterizations used in SpeedyWeather.jl to represent physical processes in the atmopshere. Every section is followed by a brief description of implementation details.","category":"page"},{"location":"parametrizations/#Convection","page":"Parameterizations","title":"Convection","text":"","category":"section"},{"location":"parametrizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"parametrizations/#Large-scale-condensation","page":"Parameterizations","title":"Large-scale condensation","text":"","category":"section"},{"location":"parametrizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"parametrizations/#Clouds","page":"Parameterizations","title":"Clouds","text":"","category":"section"},{"location":"parametrizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"parametrizations/#Short-wave-radiation","page":"Parameterizations","title":"Short-wave radiation","text":"","category":"section"},{"location":"parametrizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"parametrizations/#Long-wave-radiation","page":"Parameterizations","title":"Long-wave radiation","text":"","category":"section"},{"location":"parametrizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"parametrizations/#Surface-fluxes-of-momentum-and-energy","page":"Parameterizations","title":"Surface fluxes of momentum and energy","text":"","category":"section"},{"location":"parametrizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"parametrizations/#Vertical-diffusion","page":"Parameterizations","title":"Vertical diffusion","text":"","category":"section"},{"location":"parametrizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"how_to_run_speedy/#How-to-run-SpeedyWeather.jl","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"","category":"section"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"The simplest way to run SpeedyWeather.jl with default parameters is","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"using SpeedyWeather\nrun_speedy()","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"Hooray, you have just simulated the Earth's atmosphere. Parameters, their meanings and defaults are documented in Parameters. For example, if you want to run the primitive equation dry core (no humidity) simulation in double precision (Float64), at higher resolution (trunc, the triangular spectral truncation), slow down the rotation of the Earth (rotation in s^-1), and create some netCDF ouput, do","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"run_speedy(Float64,PrimitiveDry,trunc=42,planet=Earth(rotation=1e-5),output=true)","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"If provided, the number format has to be the first argument, the model (Barotropic, ShallowWater, PrimitiveDry, PrimitiveWet are available) the second, and all other arguments are keyword arguments.","category":"page"},{"location":"how_to_run_speedy/#The-run_speedy-interface","page":"How to run SpeedyWeather.jl","title":"The run_speedy interface","text":"","category":"section"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"run_speedy","category":"page"},{"location":"how_to_run_speedy/#SpeedyWeather.run_speedy","page":"How to run SpeedyWeather.jl","title":"SpeedyWeather.run_speedy","text":"progn_vars = run_speedy(NF,Model;kwargs...) or\nprogn_vars = run_speedy(NF;kwargs...) or\nprogn_vars = run_speedy(Model;kwargs...)\n\nRuns SpeedyWeather.jl with number format NF and the model Model and any additional parameters in the keyword arguments kwargs.... Unspecified parameters use the default values.\n\n\n\n\n\n","category":"function"},{"location":"how_to_run_speedy/#The-initialize_speedy-interface","page":"How to run SpeedyWeather.jl","title":"The initialize_speedy interface","text":"","category":"section"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"initialize_speedy","category":"page"},{"location":"grids/#Grids","page":"Grids","title":"Grids","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"The spectral transform (the Spherical Harmonic Transform) in SpeedyWeather.jl supports any ring-based equi-longitude grid. Several grids are already implemented but other can be added. The following pages will describe an overview of these grids and how they can be used.","category":"page"},{"location":"grids/#Ring-based-equi-longitude-grids","page":"Grids","title":"Ring-based equi-longitude grids","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"SpeedyWeather.jl's spectral transform currently only supports ring-based equi-longitude grids. These grids have their grid points located on rings with constant latitude and on rings the points are equi-spaced in longitude. There is technically no constrain on the spacing of the latitude rings, but the Legendre transform requires a quadrature to map those to spectral space and back. Common choices for latitudes are the Gaussian latitudes which use the Gaussian quadrature, or equi-angle latitudes (i.e. just regular latitudes but excluding the poles) that use the Clenshaw-Curtis quadrature. The longitudes have to be equi-spaced on every ring, which is necessary for the fast Fourier transform, as one would otherwise need to use a non-uniform Fourier transform. In SpeedyWeather.jl the first grid point on any ring can have a longitudinal offset though, for example by spacing 4 points around the globe at 45˚E, 135˚E, 225˚E, and 315˚E. In this case the offset is 45˚E as the first point is not at 0˚E.","category":"page"},{"location":"grids/#Implemented-grids","page":"Grids","title":"Implemented grids","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"All grids in SpeedyWeather.jl are a subtype of AbstractGrid, i.e. <: AbstractGrid. We further distinguish between full, and reduced grids. Full grids have the same number of longitude points on every latitude ring (i.e. points converge towards the poles) and reduced grids reduce the number of points towards the poles to have them more evenly spread out across the globe. More evenly does not necessarily mean that a grid is equal-area, meaning that every grid cell covers exactly the same area (although the shape changes).","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"Currently the following full grids <: AbstractFullGrid are implemented","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"FullGaussianGrid, a full grid with Gaussian latitudes\nFullClenshawGrid, a full grid with equi-angle latitudes","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"and additionally we have FullHEALPixGrid and FullOctaHEALPixGrid which are the full grid equivalents to the HEALPix grid and the OctaHEALPix grid discussed below. Full grid equivalent means that they have the same latitude rings, but no reduction in the number of points per ring towards the poles and no longitude offset. Other implemented reduced grids are","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"OctahedralGaussianGrid, a reduced grid with Gaussian latitudes based on an octahedron\nOctahedralClenshawGrid, similar but based on equi-angle latitudes\nHEALPixGrid, an equal-area grid based on a dodecahedron with 12 faces\nOctaHEALPixGrid, an equal-area grid from the class of HEALPix grids but based on an octahedron.","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"An overview of these grids is visualised here","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"(Image: Overview of implemented grids in SpeedyWeather.jl)","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"Visualised are each grid's grid points (white dots) and grid faces (white lines). All grids shown have 16 latitude rings on one hemisphere, Equator included. The total number of grid points is denoted in the top left of every subplot. The sphere is shaded with grey, orange and turquoise regions to denote the hemispheres in a and b, the 8 octahedral faces c, d,f and the 12 dodecahedral faces (or base pixels) in e. Coastlines are added for orientation.","category":"page"},{"location":"grids/#Resolution","page":"Grids","title":"Resolution","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"All grids use the same resolution parameter nlat_half, i.e. the number of rings on one hemisphere, Equator included. The Gaussian grids (full and reduced) do not have a ring on the equator, so their total number of rings nlat is always even and twice nlat_half. Clenshaw-Curtis grids and the HEALPix grids have a ring on the equator such their total number of rings is always odd and one less than the Gaussian grids at the same nlat_half. ","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"info: HEALPix grids do not use Nside as resolution parameter\nThe original formulation for HEALPix grids use N_side, the number of grid points along the edges of each basepixel (8 in the figure above), SpeedyWeather.jl uses nlat_half, the number of rings on one hemisphere, Equator included, for all grids. This is done for consistency across grids. We may use N_side for the documentation or within functions though.","category":"page"},{"location":"grids/#Truncation","page":"Grids","title":"Truncation","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"A given spectral resolution can be matched to a variety of grid resolutions. A cubic grid, for example, combines a spectral truncation T with a grid resolution N (=nlat_half) such that T + 1 = N. Using T31 and an O32 is therefore often abbreviated as Tco31 meaning that the spherical harmonics are truncated at l_max=31 in combination with N=32, i.e. 64 latitude rings in total on an octahedral Gaussian grid.","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"Let J be the total number of rings. Then we have","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"T approx J for linear truncation\nfrac32T approx J for quadratic truncation\n2T approx J for cubic truncation","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"and in general fracm+12T approx J for m-th order truncation. So the higher the truncaction order the more grid points are used in combination with the same spectral resolution. A higher truncation order therefore makes all grid-point calculations more expensive, but can represent products of terms on the grid (which will have higher wavenumber components) to a higher accuracy as more grid points are available within a given wavelength. Using a sufficiently high truncation is therefore one way to avoid aliasing. In SpeedyWeather.jl the parameter dealiasing controls this option, = 1 would be linear, = 2 quadratic, = 3 cubic etc.","category":"page"},{"location":"grids/#Full-Gaussian-grid","page":"Grids","title":"Full Gaussian grid","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"...","category":"page"},{"location":"grids/#Full-Clenshaw-Curtis-grid","page":"Grids","title":"Full Clenshaw-Curtis grid","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"...","category":"page"},{"location":"grids/#Octahedral-Gaussian-grid","page":"Grids","title":"Octahedral Gaussian grid","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"...","category":"page"},{"location":"grids/#The-HEALPix-grid","page":"Grids","title":"The HEALPix grid","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"Technically, HEALPix grids are a class of grids that tessalate the sphere into faces that are often called basepixels. For each member of this class there are N_varphi basepixels in zonal direction and N_theta basepixels in meridional direction. For N_varphi = 4 and N_theta = 3 we obtain the classical HEALPix grid with N_varphi N_theta = 12 basepixels shown above in Implemented Grids. Each basepixel has a quadratic number of grid points in them. There's an equatorial zone where the number of zonal grid points is constant (always 2N, so 32 at N=16) and there are polar caps above and below the equatorial zone with the border at cos(theta) = 23 (theta in colatitudes).","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"Following Górski, 2004[1], the z=cos(theta) colatitude of the j-th ring in the north polar cap, j=1N_side with 2N_side = N is ","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"z = 1 - fracj^23N_side^2","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"and on that ring, the longitude phi of the i-th point (i is the in-ring-index) is at","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"phi = fracpi2j(i-tfrac12)","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"The in-ring index i goes from i=14 for the first (i.e. northern-most) ring, i=18 for the second ring and i = 14j for the j-th ring in the northern polar cap.","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"In the north equatorial belt j=N_side2N_side this changes to","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"z = frac43 - frac2j3N_side","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"and the longitudes change to (i is always i = 14N_side in the equatorial belt meaning the number of longitude points is constant here)","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"phi = fracpi2N_side(i - fracs2) quad s = (j - N_side + 1) mod 2","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"The modulo function comes in as there is an alternating longitudinal offset from the prime meridian (see Implemented grids). For the southern hemisphere the grid point locations can be obtained by mirror symmetry.","category":"page"},{"location":"grids/#Grid-cell-boundaries","page":"Grids","title":"Grid cell boundaries","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"The cell boundaries are obtained by setting i = k + 12 or i = k + 12 + j (half indices) into the equations above, such that z(phik), a function for the cosine of colatitude z of index k and the longitude phi is obtained. These are then (northern polar cap)","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"z = 1 - frack^23N_side^2left(fracpi2phi_tright)^2 quad z = 1 - frack^23N_side^2left(fracpi2phi_t - piright)^2","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"with phi_t = phi mod tfracpi2 and in the equatorial belt","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"z = frac23-frac4k3N_side pm frac8phi3pi","category":"page"},{"location":"grids/#OctaHEALPix-grid","page":"Grids","title":"OctaHEALPix grid","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"While the classic HEALPix grid is based on a dodecahedron, other choices for N_varphi and N_theta in the class of HEALPix grids will change the number of faces there are in zonal/meridional direction. With N_varphi = 4 and N_theta = 1 we obtain a HEALPix grid that is based on an octahedron, which has the convenient property that there are twice as many longitude points around the equator than there are latitude rings between the poles. This is a desirable for truncation as this matches the distances too, 2pi around the Equator versus pi between the poles. N_varphi = 6 N_theta = 2 or N_varphi = 8 N_theta = 3 are other possible choices for this, but also more complicated. See Górski, 2004[1] for further examples and visulations of these grids.","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"We call the N_varphi = 4 N_theta = 1 HEALPix grid the OctaHEALPix grid, which combines the equal-area property of the HEALPix grids with the octahedron that's also used in the OctahedralGaussianGrid or the OctahedralClenshawGrid. As N_theta = 1 there is no equatorial belt which simplifies the grid. The latitude of the j-th isolatitude ring on the OctaHEALPixGrid is defined by","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"z = 1 - fracj^2N^2","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"with j=1N, and similarly for the southern hemisphere by symmetry. On this grid N_side = N where N= nlat_half, the number of latitude rings on one hemisphere, Equator included, because each of the 4 basepixels spans from pole to pole and covers a quarter of the sphere. The longitudes with in-ring- index i = 14j are","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"phi = fracpi2j(i - tfrac12)","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"and again, the southern hemisphere grid points are obtained by symmetry.","category":"page"},{"location":"grids/#Grid-cell-boundaries-2","page":"Grids","title":"Grid cell boundaries","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"Similar to the grid cell boundaries for the HEALPix grid, the OctaHEALPix grid's boundaries are","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"z = 1 - frack^2N^2left(fracpi2phi_tright)^2 quad z = 1 - frack^2N^2left(fracpi2phi_t - piright)^2","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"The 3N_side^2 in the denominator of the HEALPix grid came simply N^2 for the OctaHEALPix grid and there's no separate equation for the equatorial belt (which doesn't exist in the OctaHEALPix grid).","category":"page"},{"location":"grids/#References","page":"Grids","title":"References","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"[1] Górski, Hivon, Banday, Wandelt, Hansen, Reinecke, Bartelmann, 2004. HEALPix: A FRAMEWORK FOR HIGH-RESOLUTION DISCRETIZATION AND FAST ANALYSIS OF DATA DISTRIBUTED ON THE SPHERE, The Astrophysical Journal. doi:10.1086/427976","category":"page"},{"location":"boundary_conditions/#Boundary-conditions","page":"Boundary conditions","title":"Boundary conditions","text":"","category":"section"},{"location":"boundary_conditions/","page":"Boundary conditions","title":"Boundary conditions","text":"This page describes the formulation of boundary conditions and their implementation.","category":"page"},{"location":"conventions/#Style-and-convention-guide","page":"Style and convention guide","title":"Style and convention guide","text":"","category":"section"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"In SpeedyWeather.jl we've been following the several conventions that are documented here.","category":"page"},{"location":"conventions/#Variable-naming","page":"Style and convention guide","title":"Variable naming","text":"","category":"section"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"The prognostic variables in spectral space are called","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":" vor # Vorticity of horizontal wind field\n div # Divergence of horizontal wind field\n temp # Absolute temperature [K]\n pres_surf # Logarithm of surface pressure [log(Pa)]\n humid # Specific humidity [g/kg]","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"their transforms into grid-point space get a _grid suffix, their tendencies a _tend suffix. Further derived diagnostic dynamic variables are","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":" u\n v\n geopot\n ...","category":"page"},{"location":"conventions/#Preallocation","page":"Style and convention guide","title":"Preallocation","text":"","category":"section"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"All arrays representing variables are preallocated and grouped into two structs","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":" Prog::PrognosticVariables\n Diag::DiagnosticVariables","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"The Diag struct contains further structs which represent the grid-point transformations of the prognostic variables and their tendencies.","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":" gridvars::GridVariables\n tendencies::Tendencies\n ...","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"Constant arrays are grouped into several structs","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"Boundaries","category":"page"},{"location":"conventions/#Julian-conventions","page":"Style and convention guide","title":"Julian conventions","text":"","category":"section"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"We follow Julia's style guide and highlight here some important aspects of it.","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"Bang (!) convention. A function func does not change its input arguments, however, func! does.","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"Hence, func! is often the in-place version of func, avoiding as much memory allocation as possible and often changing its first argument, e.g. func!(out,in) so that argument in is used to calculate out which has been preallocated before function call.","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"Number format flexibility. Numeric literals such as 2.0 or 1/3 are only used in the model setup","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"but avoided throughout the code to obtain a fully number format-flexible package using the number format NF as a compile-time variable throughout the code. This often leads to overly specific code whereas a Real would generally suffice. However, this is done to avoid any implicit type conversions.","category":"page"},{"location":"new_model_setups/#New-model-setups","page":"New model setups","title":"New model setups","text":"","category":"section"},{"location":"new_model_setups/","page":"New model setups","title":"New model setups","text":"more to come...","category":"page"},{"location":"dynamical_core/#Dynamical-core","page":"Dynamical core","title":"Dynamical core","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"A mathematical and implementation-specific description of the dynamical core used in SpeedyWeather.jl. We start by describing the barotropic vorticity equations which is one set of equations that SpeedyWeather.jl can solve (see How to run SpeedyWeather.jl) as many details therein also apply to the Shallow water equations and Primitive equations explained thereafter.","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"The dynamical core presented here largely follows the idealized models with spectral dynamics developed at the Geophysical Fluid Dynamics Laboratory[1]: A barotropic vorticity model[2], a shallow water model [3] and a primitive equation model[4]. ","category":"page"},{"location":"dynamical_core/#Barotropic-vorticity-equation","page":"Dynamical core","title":"Barotropic vorticity equation","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"The barotropic vorticity equation is the prognostic equation that describes the time evolution of relative vorticity zeta with advection, Coriolis force and diffusion in a single global layer.","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"fracpartial zetapartial t + nabla cdot (mathbfu(zeta + f)) = (-1)^n+1nunabla^2nzeta","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"with time t, velocity vector mathbfu = (u v), Coriolis parameter f, and hyperdiffusion (-1)^n+1 nu nabla^2n zeta (n is the hyperdiffusion order; see Horizontal diffusion). Starting with some relative vorticity zeta, the Laplacian is inverted to obtain the stream function Psi","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"Psi = nabla^-2zeta","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"The zonal velocity u and meridional velocity v are then the (negative) meridional gradient and zonal gradient of Psi","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"beginaligned\nu = -frac1R fracpartial Psipartial theta \nv = frac1Rcos(theta) fracpartial Psipartial phi \nendaligned","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"which is described in Derivatives in spherical coordinates.","category":"page"},{"location":"dynamical_core/#Algorithm","page":"Dynamical core","title":"Algorithm","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"We briefly outline the algorithm that SpeedyWeather.jl uses in order to integrate the barotropic vorticity equation","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"Start with initial conditions of zeta_lm in spectral space\nUse zeta_lm to\nInvert the Laplacian to obtain the stream function Psi_lm in spectral space\nTransform zeta_lm to zeta in grid-point space\nUse Psi_lm to\nobtain zonal velocity (cos(theta)u)_lm through a Meridional derivative\nobtain meridional velocity (cos(theta)v)_lm through a Zonal derivative\nTransform zonal and meridional velocity (cos(theta)u)_lm, (cos(theta)v)_lm to grid-point space and unscale the cos(theta) factor to obtain uv.\nMultiply uv with zeta+f in grid-point space\nTransform u(zeta + f) and v(zeta+f) to spectral space\nCompute the divergence of (mathbfu(zeta + f))_lm in spectral space through a Meridional derivative and Zonal derivative which will be the tendency of zeta_lm\nCompute the Horizontal diffusion based on that tendency\nCompute a leapfrog time step as described in Time integration\nRepeat from 1.","category":"page"},{"location":"dynamical_core/#Shallow-water-equations","page":"Dynamical core","title":"Shallow water equations","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"beginaligned\nfracpartial zetapartial t + nabla cdot (mathbfu(zeta + f)) = (-1)^n+1nunabla^2nzeta \nfracpartial mathcalDpartial t - nabla times (mathbfu(zeta + f)) = -nabla^2(tfrac12(u^2 + v^2) + geta) + (-1)^n+1nunabla^2nmathcalD \nfracpartial etapartial t + nabla cdot (mathbfuh) = 0\nendaligned","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"more to come","category":"page"},{"location":"dynamical_core/#Primitive-equations","page":"Dynamical core","title":"Primitive equations","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"The primitive equations solved by SpeedyWeather.jl are","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"beginaligned\npartial_t u = \npartial_t v = \npartial_t T = \npartial_t Q = \nendaligned","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"more to come","category":"page"},{"location":"dynamical_core/#Horizontal-diffusion","page":"Dynamical core","title":"Horizontal diffusion","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"In SpeedyWeather.jl we use hyerdiffusion through an n-th power Laplacian (-1)^n+1nabla^2n (hyper when n1) which can be implemented as a multiplication of the spectral coefficients Psi_lm with (-l(l+1))^nR^-2n (see spectral Laplacian) It is therefore computationally not more expensive to apply hyperdiffusion over diffusion as the (-l(l+1))^nR^-2n can be precomputed. Note the sign change (-1)^n+1 here is such that the dissipative nature of the diffusion operator is retained for n odd and even.","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"In SpeedyWeather.jl the diffusion is applied implicitly. For that, consider a leapfrog scheme with time step Delta t of variable zeta to obtain from time steps i-1 and i, the next time step i+1","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"zeta_i+1 = zeta_i-1 + 2Delta t dzeta","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"with dzeta being some tendency evaluated from zeta_i. Now we want to add a diffusion term (-1)^n+1nu nabla^2nzeta with viscosity nu, wich however, is implicitly calculated from zeta_i+1, then","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"zeta_i+1 = zeta_i-1 + 2Delta t (dzeta + (-1)^n+1 nunabla^2nzeta_i+1)","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"As the application of (-1)^n+1nunabla^2n is, for every spectral mode, equivalent to a multiplication of a constant, we can rewrite this to","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"zeta_i+1 = fraczeta_i-1 + 2Delta t dzeta1 - 2Delta (-1)^n+1nunabla^2n","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"and expand the numerator to","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"zeta_i+1 = zeta_i-1 + 2Delta t fracdzeta + (-1)^n+1 nunabla^2nzeta_i-11 - 2Delta t (-1)^n+1nu nabla^2n","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"Hence the diffusion can be applied implicitly by updating the tendency dzeta as","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"dzeta to fracdzeta + (-1)^n+1nunabla^2nzeta_i-11 - 2Delta t nu nabla^2n","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"which only depends on zeta_i-1. Now let D_textexplicit = (-1)^n+1nunabla^2n be the explicit part and D_textimplicit = 1 - (-1)^n+1 2Delta t nunabla^2n the implicit part. Both parts can be precomputed and are D_textimplicit = 1 - 2Delta t nunabla^2n the implicit part. Both parts can be precomputed and are only an element-wise multiplication in spectral space. For every spectral harmonic lm we do","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"dzeta to D_textimplicit^-1(dzeta + D_textexplicitzeta_i-1)","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"Hence 2 multiplications and 1 subtraction with precomputed constants. However, we will normalize the (hyper-)Laplacians as described in the following. This also will take care of the alternating sign such that the diffusion operation is dissipative regardless the power n.","category":"page"},{"location":"dynamical_core/#Normalization-of-diffusion","page":"Dynamical core","title":"Normalization of diffusion","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"In physics, the Laplace operator nabla^2 is often used to represent diffusion due to viscosity in a fluid. In that case, the viscosity coefficient is nu of units textm^2texts^-1 and the full operator reads as nu nabla^2 with units (textm^2texts^-1)(textm^-2) = texts^-1. This motivates us to normalize the Laplace operator by a constant of units textm^-2 and the viscosity coefficient by its inverse such that the viscosity coefficient becomes a damping timescale of unit texts^-1. Given the application in spectral space we decide to normalize by the largest eigenvalue -l_textmax(l_textmax+1) such that all entries in the discrete spectral Laplace operator are in 01. This also has the effect that the alternating sign drops out, such that higher wavenumbers are always dampened and not amplified. The normalized viscosity coefficient nu^* = l_textmax(l_textmax+1)nu (always positive) is therefore reinterpreted as the (inverse) time scale at which the highest wavenumber is dampened to zero due to diffusion. Together we have ","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"D^textexplicit_lm = -nu^* fracl(l+1)l_textmax(l_textmax+1)","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"and the hyper-Laplacian of power n follows as","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"D^textexplicitn_lm = -nu^* left(fracl(l+1)l_textmax(l_textmax+1)right)^n","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"and the implicit part is accordingly D^textimplicitn_lm = 1 - 2Delta t D^textexplicitn_lm.","category":"page"},{"location":"dynamical_core/#Radius-scaling","page":"Dynamical core","title":"Radius scaling","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"SpeedyWeather.jl uses a scaling for vorticity zeta and stream function Psi that is","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"tildezeta = zeta R tildePsi = Psi R^-1","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"In the barotropic voriticity equation model the inversion of the Laplcians in order to obtain Psi from zeta therefore becomes","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"tildezeta = tildenabla^2 tildePsi","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"where the dimensionless gradients simply omit the scaling with 1R, tildenabla = Rnabla. The Barotropic vorticity equation scaled with R^2 is","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"partial_tildettildezeta + tildenabla cdot (mathbfu(tildezeta + tildef)) = tildenutildenabla^2ntildezeta","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"with","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"tildet = tR^-1, the scaled time t\nmathbfu = (uv), the velocity vector (no scaling applied)\ntildef = fR, the scaled Coriolis parameter f\ntildenu = nu^* R, the scaled viscosity nu^*, which itself is normalized to a damping time scale, see Normalization of diffusion.","category":"page"},{"location":"dynamical_core/#Scaled-shallow-water-equations","page":"Dynamical core","title":"Scaled shallow water equations","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"Similar to the scaled barotropic vorticity equations, the scaled shallow water equations scale the vorticity and the divergence equation with R^2, but the continuity equation with R","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"beginaligned\nfracpartial tildezetapartial tildet + tildenabla cdot (mathbfu(tildezeta + tildef)) =\ntildenutildenabla^2ntildezeta \nfracpartial tildemathcalDpartial tildet - tildenabla times (mathbfu(tildezeta + tildef)) =\n-tildenabla^2left(tfrac12(u^2 + v^2) + geta right) + tildenutildenabla^2ntildemathcalD \nfracpartial etapartial tildet + tildenabla cdot (mathbfuh) = 0\nendaligned","category":"page"},{"location":"dynamical_core/#Time-integration","page":"Dynamical core","title":"Time integration","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"SpeedyWeather.jl uses a leapfrog time scheme with a Robert's and William's filter to dampen the computational mode and achieve 3rd order accuracy.","category":"page"},{"location":"dynamical_core/#Oscillation-equation","page":"Dynamical core","title":"Oscillation equation","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"fracdFdt = iomega F","category":"page"},{"location":"dynamical_core/#References","page":"Dynamical core","title":"References","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"[1]: Geophysical Fluid Dynamics Laboratory, Idealized models with spectral dynamics","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"[2]: Geophysical Fluid Dynamics Laboratory, The barotropic vorticity equation.","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"[3]: Geophysical Fluid Dynamics Laboratory, The Shallow Water Equations.","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"[4]: Geophysical Fluid Dynamics Laboratory, The Spectral Dynamical Core","category":"page"},{"location":"spectral_transform/#Spherical-Harmonic-Transform","page":"Spherical harmonic transform","title":"Spherical Harmonic Transform","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The following sections outline the implementation of the spherical harmonic transform (in short spectral transform) between the coefficients of the spherical harmonics (the spectral space) and the grid space on a longitude-latitude regular Gaussian grid.","category":"page"},{"location":"spectral_transform/#Inspiration","page":"Spherical harmonic transform","title":"Inspiration","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The spectral transform implemented by SpeedyWeather.jl follows largely Justin Willmert's CMB.jl package and makes use of AssociatedLegendrePolynomials.jl and FFTW.jl (for Float32/64) or GenericFFT.jl (for generic) for the Fourier transform. Justin described his work in a Blog series [1][2][3][4][5][6][7][8].","category":"page"},{"location":"spectral_transform/#Spherical-harmonics","page":"Spherical harmonic transform","title":"Spherical harmonics","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The spherical harmonics Y_lm of degree l and order m over the longitude phi = (02pi) and colatitudes theta = (-pi2pi2), are","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Y_lm(phi theta) = lambda_l^m(sintheta) e^imphi","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"with lambda_l^m being the pre-normalized associated Legendre polynomials, and e^imphi are the complex exponentials (the Fourier modes). Together they form a set of orthogonal basis functions on the sphere. For an interactive visualisation of the spherical harmonics, see here.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"info: Latitudes versus colatitudes\nThe implementations of the spherical transforms in SpeedyWeather.jl use colatitudes theta = (0pi) (0 at the north pole) but the dynamical core uses latitudes theta = (-pi2pi2) (pi2 at the north pole). However, all arrays are always sorted north to south such that [i,1] will access the northern-most grid points. Note: We may also use latitudes in the spherical harmonic transform in the future for consistency. ","category":"page"},{"location":"spectral_transform/#Synthesis-(spectral-to-grid)","page":"Spherical harmonic transform","title":"Synthesis (spectral to grid)","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The synthesis (or inverse transform) takes the spectral coefficients a_lm and transforms them to grid-point values f(phitheta) (for the sake of simplicity first regarded as continuous). The synthesis is a linear combination of the spherical harmonics Y_lm with non-zero coefficients.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"f(phitheta) = sum_l=0^infty sum_m=-l^l a_lm Y_lm(phitheta)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"We obtain an approximation with a finite set of a_lm by truncating the series after l = l_max.","category":"page"},{"location":"spectral_transform/#Analysis-(grid-to-spectral)","page":"Spherical harmonic transform","title":"Analysis (grid to spectral)","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Starting in grid-point space we can transform a field f(lambdatheta) into the spectral space of the spherical harmonics by","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"a_lm = int_0^2pi int_-tfracpi2^tfracpi2 f(lambdatheta) Y_lm(lambdatheta) cos theta dtheta dlambda","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"This integral has to be discretized to when grid-point values f(lambda_itheta_i) are used. For more details, see [7],[8].","category":"page"},{"location":"spectral_transform/#Spectral-packing","page":"Spherical harmonic transform","title":"Spectral packing","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Spectral packing is the way how the coefficients a_lm of the spherical harmonics of a given spectral field are stored in an array. SpeedyWeather.jl uses the conventional spectral packing of degree l and order m as illustrated in the following image (Cyp, CC BY-SA 3.0, via Wikimedia Commons)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Every row represents an order l geq 0, starting from l=0 at the top. Every column represents an order m geq 0, starting from m=0 on the left. The coefficients of these spherical harmonics are directly mapped into a matrix a_lm as ","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":" m \nl a_00 \n a_10 a_11 \n a_20 a_12 a_22 \n a_30 a_13 a_23 a_33","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"which is consistently extended for higher degrees and orders. Consequently, all spectral fields are lower-triangular matrices with complex entries. The upper triangle excluding the diagonal explicitly stores zeros. Note that internally vector fields include an additional degree, such that l_max = m_max + 1 (see Gradients in spherical coordinates for more information). The harmonics with a_l0 (the first column) are also called zonal harmonics as they are constant with longitude phi. The harmonics with a_ll (the main diagonal) are also called sectoral harmonics as they essentially split the sphere into 2l sectors in longitude phi without a zero-crossing in latitude.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"info: Array indices\nFor a spectral field alms note that due to Julia's 1-based indexing the coefficient a_lm is obtained via alms[l+1,m+1].","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Fortran speedy does not use the same spectral packing as SpeedyWeather.jl. The alternative packing lm therein uses l=m and m=l-m as summarized in the following table.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"degree l order m l=m m=l-m\n0 0 0 0\n1 0 0 1\n1 1 1 0\n2 0 0 2\n2 1 1 1\n2 2 2 0\n3 0 0 3\n... ... ... ...","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"This alternative packing uses the top-left triangle of a coefficient matrix, and the degrees and orders from above are stored at the following indices","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":" m \nl a_00 a_10 a_20 a_30\n a_11 a_21 a_31 \n a_22 a_32 \n a_33 ","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"This spectral packing is not used in SpeedyWeather.jl but illustrated here for completeness and comparison with Fortran-speedy.","category":"page"},{"location":"spectral_transform/#Example-transforms","page":"Spherical harmonic transform","title":"Example transforms","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"julia> using SpeedyWeather\njulia> alms = zeros(ComplexF64,3,3) # spectral coefficients\njulia> alms[2,2] = 1 # only l=1,m=1 harmonic\njulia> map = gridded(alms) # convert to grid space\n8×4 Matrix{Float64}:\n -0.324541 -0.600363 -0.600363 -0.324541\n -0.134429 -0.248678 -0.248678 -0.134429\n 0.134429 0.248678 0.248678 0.134429\n 0.324541 0.600363 0.600363 0.324541\n 0.324541 0.600363 0.600363 0.324541\n 0.134429 0.248678 0.248678 0.134429\n -0.134429 -0.248678 -0.248678 -0.134429\n -0.324541 -0.600363 -0.600363 -0.324541\n \njulia> spectral(map) # back to spectral space\n3×3 Matrix{ComplexF64}:\n 0.0+0.0im 0.0+0.0im 0.0+0.0im\n 0.0+0.0im 1.0+3.60727e-17im 0.0+0.0im\n 0.0+0.0im 0.0+0.0im 0.0+0.0im","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"and we have successfully reobtained the l=m=1 spherical harmonic.","category":"page"},{"location":"spectral_transform/#Available-horizontal-resolutions","page":"Spherical harmonic transform","title":"Available horizontal resolutions","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"SpeedyWeather.jl uses triangular truncation such that only spherical harmonics with l leq l_max and m leq m_max are explicitly represented. This is usually described as Tm_max, with l_max = m_max (although in vector quantities require one more degree l in the recursion relation of meridional gradients). For example, T31 is the spectral resolution with l_max = m_max = 31. Note that the degree l and order m are mathematically 0-based, such that the corresponding coefficient matrix is of size 32x32.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Using triangular truncation[9], there are constraints on the corresponding grid resolution. Let nlon, nlat be the number of longitudes, latitudes on a regular Gaussian grid. Then spectral and grid resolution have to be chosen such that","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"nlon geq 3l_max+1\nnlat geq (3l_max+1)2","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"In general, we choose nlon = 2nlat, and ideally nlon is easily Fourier-transformable, e.g. nlon = 2^i3^j5^k with some integers ijk geq 0. SpeedyWeather.jl is tested at the following horizontal resolutions, with Delta x = tfrac2pi Rnlon as the approximate grid spacing at the Equator","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"l_max nlon nlat Delta x\n31 (default) 96 48 400 km\n42 128 64 300 km\n85 256 128 160 km\n170 512 256 80 km\n341 1024 512 40 km\n682 2048 1024 20 km","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Choosing trunc as argument in run_speedy will automatically choose nlon,nlat as presented in the table. Other common choices are T63 (192x96), T127 (384x192), T255 (768x384), T511 (1536x768), among others.","category":"page"},{"location":"spectral_transform/#Derivatives-in-spherical-coordinates","page":"Spherical harmonic transform","title":"Derivatives in spherical coordinates","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Horizontal gradients in spherical coordinates are defined for a scalar field A and the latitudes theta and longitudes lambda as","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"nabla A = left(frac1Rcosthetafracpartial Apartial lambda frac1Rfracpartial Apartial theta right)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"However, the divergence of a vector field mathbfu = (uv) includes additional cos(theta) scalings","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"nabla cdot mathbfu = frac1Rcosthetafracpartial upartial lambda +\nfrac1Rcosthetafracpartial (v costheta)partial theta","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"and similar for the curl","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"nabla times mathbfu = frac1Rcosthetafracpartial vpartial lambda -\nfrac1Rcosthetafracpartial (u costheta)partial theta","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The radius of the sphere (i.e. Earth) is R. The zonal gradient scales with 1cos(theta) as the longitudes converge towards the poles (note that theta describes latitudes here, defintions using colatitudes replace the cos with a sin.)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Starting with a spectral field of vorticity zeta and divergence mathcalD one can obtain stream function Psi and velocity potential Phi by inverting the Laplace operator nabla^2:","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Psi = nabla^-2zeta quad Phi = nabla^-2mathcalD","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The velocities uv are then obtained from (uv) = nabla^botPsi + nablaPhi following the defintion from above and nabla^bot = (-R^-1partial_theta (Rcostheta)^-1partial_lambda)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"beginaligned\nu = -frac1Rpartial_thetaPsi + frac1Rcosthetapartial_lambdaPhi \nv = +frac1Rpartial_thetaPhi + frac1Rcosthetapartial_lambdaPsi\nendaligned","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Alternatively, we can use the velocities U = ucostheta V = vcostheta, which we do as the meridional gradient for spherical harmonics is easier implemented with a costheta-scaling included, and because the divergence and curl in spherical coordinates evaluates the meridional gradient with UV and not uv. From uv we can return to zeta mathcalD via","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"beginaligned\nzeta = frac1Rcosthetapartial_lambda v - frac1Rcosthetapartial_theta (u costheta) \nmathcalD = frac1Rcosthetapartial_lambda u + frac1Rcosthetapartial_theta (v costheta)\nendaligned","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Equivalently, we have","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"beginaligned\nU = -fraccosthetaRpartial_thetaPsi + frac1Rpartial_lambdaPhi \nV = +fraccosthetaRpartial_thetaPhi + frac1Rpartial_lambdaPsi \nzeta = frac1Rpartial_lambda left( fracVcos^2theta right) -\nfraccosthetaRpartial_theta left( fracUcos^2theta right) \nmathcalD = frac1Rpartial_lambda left( fracUcos^2theta right) +\nfraccosthetaRpartial_theta left( fracVcos^2theta right)\nendaligned","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"which is a more convenient formulation as required costheta scalings are reduced to a minimum. The remaining (UV)*cos^-2theta are done in grid-point space and usually in combination with other operations like the computation of the vorticity flux. But also note that SpeedyWeather.jl scales the equations with the radius R (see Radius scaling) such that the divisions by R drop out too. As described in Meridional derivative, it is more convenient to implement costheta partial_theta via a recursion relation for the Legendre polynomials than partial_theta directly. How the operators nabla nabla times nabla cdot can be implemented with spherical harmonics is presented in the following sections.","category":"page"},{"location":"spectral_transform/#Zonal-derivative","page":"Spherical harmonic transform","title":"Zonal derivative","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The zonal derivative of a scalar field Psi in spectral space is the zonal derivative of all its respective spherical harmonics Psi_lm(phitheta) (now we use phi for longitudes to avoid confusion with the Legendre polynomials lambda_lm)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"v_lm = frac1R cos(theta) fracpartialpartial phi left( lambda_l^m(costheta) e^imphi right) =\nfracimR cos(theta) lambda_l^m(costheta) e^imphi = fracimR cos(theta) Psi_lm","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"So for every spectral harmonic, cos(theta)v_lm is obtained from Psi_lm via a multiplication with imR. Unscaling the cos(theta)-factor is done after transforming the spectral coefficients v_lm into grid-point space. As discussed in Radius scaling, SpeedyWeather.jl scales the stream function as tildePsi = R^-1Psi such that the division by radius R in the gradients can be omitted. The zonal derivative becomes therefore effectively for each spherical harmonic a scaling with its (imaginary) order im. The spherical harmonics are essentially just a Fourier transform in zonal direction and the derivative a multiplication with the respective wave number m times imaginary i.","category":"page"},{"location":"spectral_transform/#Meridional-derivative","page":"Spherical harmonic transform","title":"Meridional derivative","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The meridioinal derivative of the spherical harmonics is a derivative of the Legendre polynomials for which the following recursion relation applies[10],[11]","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"costheta fracdP_lmdtheta = -lepsilon_l+1mP_l+1m + (l+1)epsilon_lmP_l-1m","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"with recursion factors","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"epsilon_lm = sqrtfracl^2-m^24l^2-1","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"In the following we use the example of obtaining the zonal velocity u from the stream function Psi, which is through the negative meridional gradient. For the meridional derivative itself the leading minus sign has to be omitted. Starting with the spectral expansion","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Psi(lambdatheta) = sum_lmPsi_lmP_lm(sintheta)e^imlambda","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"we multiply with -R^-1costhetapartial_theta to obtain","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"costhetaleft(-frac1Rpartial_thetaPsi right) = -frac1Rsum_lmPsi_lme^imlambdacosthetapartial_theta P_lm","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"at which point the recursion from above can be applied. Collecting terms proportional to P_lm then yields","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"(cos(theta)u)_lm = -frac1R(-(l-1)epsilon_lmPsi_l-1m + (l+2)epsilon_l+1mPsi_l+1m)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"To obtain the coefficient of each spherical harmonic lm of the meridional gradient of a spectral field, two coefficients at l-1m and l+1m have to be combined. This means that the coefficient of a gradient ((costheta) u)_lm is a linear combination of the coefficients of one higher and one lower degree Psi_l+1mPsi_l-1m. As the coefficient Psi_lm with ml are zero, the sectoral harmonics (l=m) of the gradients are obtained from the first off-diagonal only. However, the l=l_max harmonics of the gradients require the l_max-1 as well as the l_max+1 harmonics. In SpeedyWeather.jl vector quantitie like uv use therefore one more meridional mode than scalar quantities such as vorticity zeta or stream function Psi. The meridional derivative in SpeedyWeather.jl also omits the 1R-scaling as explained for the Zonal derivative and in Radius scaling.","category":"page"},{"location":"spectral_transform/#Divergence-and-curl-in-spherical-harmonics","page":"Spherical harmonic transform","title":"Divergence and curl in spherical harmonics","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The meridional gradient as described above can be applied to scalars, such as Psi and Phi in the conversion to velocities (uv) = nabla^botPsi + nablaPhi, however, the operators curl nabla times and divergence nabla cdot in spherical coordinates involve a costheta scaling before the meridional gradient is applied. How to translate this to spectral coefficients has to be derived separately[10],[11].","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The spectral transform of vorticity zeta is","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"zeta_lm = frac12piint_-tfracpi2^tfracpi2int_0^2pi zeta(lambdatheta) P_lm(sintheta) e^imlambda dlambda costheta dtheta","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Given that Rzeta = cos^-1partial_lambda v - cos^-1partial_theta (u costheta), we therefore have to evaluate a meridional integral of the form","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"int P_lm frac1cos theta partial_theta(u costheta)) cos theta dtheta","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"which can be solved through integration by parts. As ucostheta = 0 at theta = pm tfracpi2 only the integral","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"= -int partial_theta P_lm (u costheta) dtheta = -int costheta partial_theta P_lm (fracucostheta) costheta dtheta","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"remains. Inserting the recurrence relation from the Meridional derivative turns this into","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"= -int left(-l epsilon_l+1mP_l+1m + (l+1)epsilon_lm P_l-1m right) (fracucostheta) cos theta dtheta","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Now we expand (tfracucostheta) but only the lm harmonic will project ontoP_lm. Let u^* = ucos^-1theta v^* = vcos^-1theta we then have in total","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"beginaligned\nRzeta_lm = imv^*_lm + (l+1)epsilon_lmu^*_l-1m - lepsilon_l+1mu^*_l+1m \nRD_lm = imu^*_lm - (l+1)epsilon_lmv^*_l-1m + lepsilon_l+1mv^*_l+1m \nendaligned","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"And the divergence D is similar, but (uv) to (-vu). We have moved the scaling with the radius R directly into zetaD as further described in Radius scaling.","category":"page"},{"location":"spectral_transform/#Laplacian","page":"Spherical harmonic transform","title":"Laplacian","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The spectral Laplacian is easily applied to the coefficients Psi_lm of a spectral field as the spherical harmonics are eigenfunctions of the Laplace operator nabla^2 in spherical coordinates with eigenvalues -l(l+1) divided by the radius squared R^2, i.e. nabla^2 Psi becomes tfrac-l(l+1)R^2Psi_lm in spectral space. For example, vorticity zeta and streamfunction Psi are related by zeta = nabla^2Psi in the barotropic vorticity model. Hence, in spectral space this is equivalent for every spectral mode of degree l and order m to","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"zeta_lm = frac-l(l+1)R^2Psi_lm","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"This can be easily inverted to obtain the stream function Psi from vorticity zeta instead. In order to avoid division by zero, we set Psi_00 here, given that the stream function is only defined up to a constant anyway.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"beginaligned\nPsi_lm = fracR^2-l(l+1)zeta_lm quad foralllm 0\nPsi_00 = 0\nendaligned","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"See also Horizontal diffusion and Normalization of diffusion.","category":"page"},{"location":"spectral_transform/#U,V-from-vorticity-and-divergence","page":"Spherical harmonic transform","title":"U,V from vorticity and divergence","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"After having discussed the zonal and meridional derivatives with spherical harmonics as well as the Laplace operator, we can derive the conversion from vorticity zeta and divergence D (which are prognostic variables) to U=ucostheta V=vcostheta. Both are linear operations that act either solely on a given harmonic (the zonal gradient and the Laplace operator) or are linear combinations between one lower and one higher degree l (the meridional gradient). It is therefore computationally more efficient to compute UV directly from zetaD instead of calculating stream function and velocity potential first. In total we have","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"beginaligned\nU_lm = -fraciml(l+1)(RD)_lm + fracepsilon_l+1ml+1(Rzeta)_l+1m - fracepsilon_lml(Rzeta)_l-1m \nV_lm = -fraciml(l+1)(Rzeta)_lm - fracepsilon_l+1ml+1(RD)_l+1m + fracepsilon_lml(RD)_l-1m \nendaligned","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"We have moved the scaling with the radius R directly into zetaD as further described in Radius scaling.","category":"page"},{"location":"spectral_transform/#References","page":"Spherical harmonic transform","title":"References","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[1]: Justin Willmert, 2020. Introduction to Associated Legendre Polynomials (Legendre.jl Series, Part I)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[2]: Justin Willmert, 2020. Calculating Legendre Polynomials (Legendre.jl Series, Part II)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[3]: Justin Willmert, 2020. Pre-normalizing Legendre Polynomials (Legendre.jl Series, Part III)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[4]: Justin Willmert, 2020. Maintaining numerical accuracy in the Legendre recurrences (Legendre.jl Series, Part IV)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[5]: Justin Willmert, 2020. Introducing Legendre.jl (Legendre.jl Series, Part V)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[6]: Justin Willmert, 2020. Numerical Accuracy of the Spherical Harmonic Recurrence Coefficient (Legendre.jl Series Addendum)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[7]: Justin Willmert, 2020. Notes on Calculating the Spherical Harmonics","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[8]: Justin Willmert, 2022. More Notes on Calculating the Spherical Harmonics: Analysis of maps to harmonic coefficients","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[9]: David Randall, 2021. An Introduction to Numerical Modeling of the Atmosphere, Chapter 22.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[10]: Dale Durran, 2010. Numerical Methods for Fluid Dynamics, Springer. In particular section 6.2, 6.4.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[11]: Geophysical Fluid Dynamics Laboratory, The barotropic vorticity equation.","category":"page"},{"location":"#SpeedyWeather.jl-documentation","page":"Home","title":"SpeedyWeather.jl documentation","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Welcome to the documentation for SpeedyWeather.jl a global atmospheric circulation model with simple parametrizations to represent physical processes such as clouds, precipitation and radiation.","category":"page"},{"location":"#Overview","page":"Home","title":"Overview","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"SpeedyWeather.jl is a global spectral model that uses a spherical harmonic transform to perform some calculations in spectral space (time integration, gradients, linear terms) and some in grid-point space (advection, non-linear terms, parameterizations). The prognostic variables used are vorticity, divergence, absolute temperature, logarithm of surface pressure and specific humidity. The time stepping uses a leapfrog scheme with additional filters and a semi-implicit formulation for gravity waves. The default resolution is T31 (96x48 grid points on a regular Gaussian grid, about 400km at the Equator) and 8 vertical levels.","category":"page"},{"location":"","page":"Home","title":"Home","text":"Simple parameterizations are used to represent the physical processes convection, large-scale condensation, clouds, short-wave radiation, long-waves radiation, surface fluxes of momentum and energy, and vertical diffusion.","category":"page"},{"location":"#Manual-outline","page":"Home","title":"Manual outline","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"See the following pages of the documentation for more details","category":"page"},{"location":"","page":"Home","title":"Home","text":"How to run SpeedyWeather.jl\nSpherical harmonic transform\nGrids\nDynamical core\nParametrizations\nNew model setups\nFunction and type index","category":"page"},{"location":"","page":"Home","title":"Home","text":"and the original documentation by Molteni and Kucharski.","category":"page"},{"location":"#Scope","page":"Home","title":"Scope","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"The focus of SpeedyWeather.jl is to develop a global atmospheric model of intermediate complexity, that can run at various levels of precision (16, 32 and 64-bit) on different architectures (x86 and ARM, GPUs in the future). Additionally, the model is written in an entirely number format-flexible way, such that any custom number format can be used and Julia will compile to the format automatically. Similarly, many model components are written in an abstract way to support modularity and extandability.","category":"page"},{"location":"#History","page":"Home","title":"History","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"SpeedyWeather.jl is a Julia implementation of SPEEDY, which is written in Fortran 77. Sam Hatfield translated SPEEDY to Fortran 90 and started the project to port it to Julia. However, we are making an effort to overhaul the implementation of the mathematical model behind speedy completely and it is unlikely that a single line of code survived.","category":"page"},{"location":"#Installation","page":"Home","title":"Installation","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"SpeedyWeather.jl is registered in the Julia Registry. Open Julia's package manager from the REPL with ] and add the github repository to install SpeedyWeather.jl and all dependencies","category":"page"},{"location":"","page":"Home","title":"Home","text":"(@v1.8) pkg> add SpeedyWeather","category":"page"},{"location":"","page":"Home","title":"Home","text":"which will automatically install the latest release. However, you may want to install directly from the main branch with","category":"page"},{"location":"","page":"Home","title":"Home","text":"(@v1.8) pkg> add https://github.com/SpeedyWeather/SpeedyWeather.jl#main","category":"page"},{"location":"","page":"Home","title":"Home","text":"other branches than #main can be installed by adding #branch_name instead.","category":"page"},{"location":"#Developers","page":"Home","title":"Developers","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"The development of SpeedyWeather.jl is lead by Milan Klöwer and current and past contributors include","category":"page"},{"location":"","page":"Home","title":"Home","text":"Tom Kimpson\nAlistair White\nMaximilian Gelbrecht\nDavid Meyer\nDaisuke Hotta","category":"page"},{"location":"","page":"Home","title":"Home","text":"Any contributions are always welcome!","category":"page"},{"location":"#Funding","page":"Home","title":"Funding","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Contributors received funding by the European Research Council under Horizon 2020 within the ITHACA project, grant agreement number 741112 from 2021-2022.","category":"page"},{"location":"time_integration/#Time-integration","page":"Time integration","title":"Time integration","text":"","category":"section"},{"location":"time_integration/","page":"Time integration","title":"Time integration","text":"SpeedyWeather.jl uses a leapfrog time scheme with a Robert's and William's filter to dampen the computational mode and achieve 3rd order accuracy.","category":"page"},{"location":"time_integration/#Oscillation-equation","page":"Time integration","title":"Oscillation equation","text":"","category":"section"},{"location":"time_integration/","page":"Time integration","title":"Time integration","text":"fracdFdt = iomega F","category":"page"},{"location":"time_integration/#Implementation-details","page":"Time integration","title":"Implementation details","text":"","category":"section"}] +} diff --git a/previews/PR334/siteinfo.js b/previews/PR334/siteinfo.js new file mode 100644 index 000000000..52ca05f18 --- /dev/null +++ b/previews/PR334/siteinfo.js @@ -0,0 +1 @@ +var DOCUMENTER_CURRENT_VERSION = "previews/PR334"; diff --git a/previews/PR334/spectral_transform/index.html b/previews/PR334/spectral_transform/index.html new file mode 100644 index 000000000..7c514edd6 --- /dev/null +++ b/previews/PR334/spectral_transform/index.html @@ -0,0 +1,45 @@ + +Spherical harmonic transform · SpeedyWeather.jl

        Spherical Harmonic Transform

        The following sections outline the implementation of the spherical harmonic transform (in short spectral transform) between the coefficients of the spherical harmonics (the spectral space) and the grid space on a longitude-latitude regular Gaussian grid.

        Inspiration

        The spectral transform implemented by SpeedyWeather.jl follows largely Justin Willmert's CMB.jl package and makes use of AssociatedLegendrePolynomials.jl and FFTW.jl (for Float32/64) or GenericFFT.jl (for generic) for the Fourier transform. Justin described his work in a Blog series [1][2][3][4][5][6][7][8].

        Spherical harmonics

        The spherical harmonics $Y_{lm}$ of degree $l$ and order $m$ over the longitude $\phi = (0,2\pi)$ and colatitudes $\theta = (-\pi/2,\pi/2)$, are

        \[Y_{lm}(\phi, \theta) = \lambda_l^m(\sin\theta) e^{im\phi}\]

        with $\lambda_l^m$ being the pre-normalized associated Legendre polynomials, and $e^{im\phi}$ are the complex exponentials (the Fourier modes). Together they form a set of orthogonal basis functions on the sphere. For an interactive visualisation of the spherical harmonics, see here.

        Latitudes versus colatitudes

        The implementations of the spherical transforms in SpeedyWeather.jl use colatitudes $\theta = (0,\pi)$ (0 at the north pole) but the dynamical core uses latitudes $\theta = (-\pi/2,\pi/2)$ ($\pi/2$ at the north pole). However, all arrays are always sorted north to south such that [i,1] will access the northern-most grid points. Note: We may also use latitudes in the spherical harmonic transform in the future for consistency.

        Synthesis (spectral to grid)

        The synthesis (or inverse transform) takes the spectral coefficients $a_{lm}$ and transforms them to grid-point values $f(\phi,\theta)$ (for the sake of simplicity first regarded as continuous). The synthesis is a linear combination of the spherical harmonics $Y_{lm}$ with non-zero coefficients.

        \[f(\phi,\theta) = \sum_{l=0}^{\infty} \sum_{m=-l}^l a_{lm} Y_{lm}(\phi,\theta)\]

        We obtain an approximation with a finite set of $a_{l,m}$ by truncating the series after $l = l_{max}$.

        Analysis (grid to spectral)

        Starting in grid-point space we can transform a field $f(\lambda,\theta)$ into the spectral space of the spherical harmonics by

        \[a_{l,m} = \int_0^{2\pi} \int_{-\tfrac{\pi}{2}}^\tfrac{\pi}{2} f(\lambda,\theta) Y_{l,m}(\lambda,\theta) \cos \theta d\theta d\lambda\]

        This integral has to be discretized to when grid-point values $f(\lambda_i,\theta_i)$ are used. For more details, see [7],[8].

        Spectral packing

        Spectral packing is the way how the coefficients $a_{lm}$ of the spherical harmonics of a given spectral field are stored in an array. SpeedyWeather.jl uses the conventional spectral packing of degree $l$ and order $m$ as illustrated in the following image (Cyp, CC BY-SA 3.0, via Wikimedia Commons)

        Every row represents an order $l \geq 0$, starting from $l=0$ at the top. Every column represents an order $m \geq 0$, starting from $m=0$ on the left. The coefficients of these spherical harmonics are directly mapped into a matrix $a_{lm}$ as

        $m$
        $l$$a_{00}$
        $a_{10}$$a_{11}$
        $a_{20}$$a_{12}$$a_{22}$
        $a_{30}$$a_{13}$$a_{23}$$a_{33}$

        which is consistently extended for higher degrees and orders. Consequently, all spectral fields are lower-triangular matrices with complex entries. The upper triangle excluding the diagonal explicitly stores zeros. Note that internally vector fields include an additional degree, such that $l_{max} = m_{max} + 1$ (see Gradients in spherical coordinates for more information). The harmonics with $a_{l0}$ (the first column) are also called zonal harmonics as they are constant with longitude $\phi$. The harmonics with $a_{ll}$ (the main diagonal) are also called sectoral harmonics as they essentially split the sphere into $2l$ sectors in longitude $\phi$ without a zero-crossing in latitude.

        Array indices

        For a spectral field alms note that due to Julia's 1-based indexing the coefficient $a_{lm}$ is obtained via alms[l+1,m+1].

        Fortran speedy does not use the same spectral packing as SpeedyWeather.jl. The alternative packing $l',m'$ therein uses $l'=m$ and $m'=l-m$ as summarized in the following table.

        degree $l$order $m$$l'=m$$m'=l-m$
        0000
        1001
        1110
        2002
        2111
        2220
        3003
        ............

        This alternative packing uses the top-left triangle of a coefficient matrix, and the degrees and orders from above are stored at the following indices

        $m'$
        $l'$$a_{00}$$a_{10}$$a_{20}$$a_{30}$
        $a_{11}$$a_{21}$$a_{31}$
        $a_{22}$$a_{32}$
        $a_{33}$

        This spectral packing is not used in SpeedyWeather.jl but illustrated here for completeness and comparison with Fortran-speedy.

        Example transforms

        julia> using SpeedyWeather
        +julia> alms = zeros(ComplexF64,3,3)    # spectral coefficients
        +julia> alms[2,2] = 1                   # only l=1,m=1 harmonic
        +julia> map = gridded(alms)             # convert to grid space
        +8×4 Matrix{Float64}:
        + -0.324541  -0.600363  -0.600363  -0.324541
        + -0.134429  -0.248678  -0.248678  -0.134429
        +  0.134429   0.248678   0.248678   0.134429
        +  0.324541   0.600363   0.600363   0.324541
        +  0.324541   0.600363   0.600363   0.324541
        +  0.134429   0.248678   0.248678   0.134429
        + -0.134429  -0.248678  -0.248678  -0.134429
        + -0.324541  -0.600363  -0.600363  -0.324541
        + 
        +julia> spectral(map)                   # back to spectral space
        +3×3 Matrix{ComplexF64}:
        + 0.0+0.0im  0.0+0.0im          0.0+0.0im
        + 0.0+0.0im  1.0+3.60727e-17im  0.0+0.0im
        + 0.0+0.0im  0.0+0.0im          0.0+0.0im

        and we have successfully reobtained the $l=m=1$ spherical harmonic.

        Available horizontal resolutions

        SpeedyWeather.jl uses triangular truncation such that only spherical harmonics with $l \leq l_{max}$ and $|m| \leq m_{max}$ are explicitly represented. This is usually described as $Tm_{max}$, with $l_{max} = m_{max}$ (although in vector quantities require one more degree $l$ in the recursion relation of meridional gradients). For example, T31 is the spectral resolution with $l_{max} = m_{max} = 31$. Note that the degree $l$ and order $m$ are mathematically 0-based, such that the corresponding coefficient matrix is of size 32x32.

        Using triangular truncation[9], there are constraints on the corresponding grid resolution. Let nlon, nlat be the number of longitudes, latitudes on a regular Gaussian grid. Then spectral and grid resolution have to be chosen such that

        • $nlon \geq 3l_{max}+1$
        • $nlat \geq (3l_{max}+1)/2$

        In general, we choose $nlon = 2nlat$, and ideally $nlon$ is easily Fourier-transformable, e.g. $nlon = 2^i3^j5^k$ with some integers $i,j,k \geq 0$. SpeedyWeather.jl is tested at the following horizontal resolutions, with $\Delta x = \tfrac{2\pi R}{nlon}$ as the approximate grid spacing at the Equator

        $l_{max}$nlonnlat$\Delta x$
        31 (default)9648400 km
        4212864300 km
        85256128160 km
        17051225680 km
        341102451240 km
        6822048102420 km

        Choosing trunc as argument in run_speedy will automatically choose nlon,nlat as presented in the table. Other common choices are T63 (192x96), T127 (384x192), T255 (768x384), T511 (1536x768), among others.

        Derivatives in spherical coordinates

        Horizontal gradients in spherical coordinates are defined for a scalar field $A$ and the latitudes $\theta$ and longitudes $\lambda$ as

        \[\nabla A = \left(\frac{1}{R\cos\theta}\frac{\partial A}{\partial \lambda}, \frac{1}{R}\frac{\partial A}{\partial \theta} \right).\]

        However, the divergence of a vector field $\mathbf{u} = (u,v)$ includes additional $\cos(\theta)$ scalings

        \[\nabla \cdot \mathbf{u} = \frac{1}{R\cos\theta}\frac{\partial u}{\partial \lambda} + +\frac{1}{R\cos\theta}\frac{\partial (v \cos\theta)}{\partial \theta},\]

        and similar for the curl

        \[\nabla \times \mathbf{u} = \frac{1}{R\cos\theta}\frac{\partial v}{\partial \lambda} - +\frac{1}{R\cos\theta}\frac{\partial (u \cos\theta)}{\partial \theta}.\]

        The radius of the sphere (i.e. Earth) is $R$. The zonal gradient scales with $1/\cos(\theta)$ as the longitudes converge towards the poles (note that $\theta$ describes latitudes here, defintions using colatitudes replace the $\cos$ with a $\sin$.)

        Starting with a spectral field of vorticity $\zeta$ and divergence $\mathcal{D}$ one can obtain stream function $\Psi$ and velocity potential $\Phi$ by inverting the Laplace operator $\nabla^2$:

        \[\Psi = \nabla^{-2}\zeta, \quad \Phi = \nabla^{-2}\mathcal{D}.\]

        The velocities $u,v$ are then obtained from $(u,v) = \nabla^\bot\Psi + \nabla\Phi$ following the defintion from above and $\nabla^\bot = (-R^{-1}\partial_\theta, (R\cos\theta)^{-1}\partial_\lambda)$

        \[\begin{aligned} +u &= -\frac{1}{R}\partial_\theta\Psi + \frac{1}{R\cos\theta}\partial_\lambda\Phi \\ +v &= +\frac{1}{R}\partial_\theta\Phi + \frac{1}{R\cos\theta}\partial_\lambda\Psi. +\end{aligned}\]

        Alternatively, we can use the velocities $U = u\cos\theta, V = v\cos\theta$, which we do as the meridional gradient for spherical harmonics is easier implemented with a $\cos\theta$-scaling included, and because the divergence and curl in spherical coordinates evaluates the meridional gradient with $U,V$ and not $u,v$. From $u,v$ we can return to $\zeta, \mathcal{D}$ via

        \[\begin{aligned} +\zeta &= \frac{1}{R\cos\theta}\partial_\lambda v - \frac{1}{R\cos\theta}\partial_\theta (u \cos\theta) \\ +\mathcal{D} &= \frac{1}{R\cos\theta}\partial_\lambda u + \frac{1}{R\cos\theta}\partial_\theta (v \cos\theta). +\end{aligned}\]

        Equivalently, we have

        \[\begin{aligned} +U &= -\frac{\cos\theta}{R}\partial_\theta\Psi + \frac{1}{R}\partial_\lambda\Phi \\ +V &= +\frac{\cos\theta}{R}\partial_\theta\Phi + \frac{1}{R}\partial_\lambda\Psi \\ +\zeta &= \frac{1}{R}\partial_\lambda \left( \frac{V}{\cos^2\theta} \right) - +\frac{\cos\theta}{R}\partial_\theta \left( \frac{U}{\cos^2\theta} \right) \\ +\mathcal{D} &= \frac{1}{R}\partial_\lambda \left( \frac{U}{\cos^2\theta} \right) + +\frac{\cos\theta}{R}\partial_\theta \left( \frac{V}{\cos^2\theta} \right). +\end{aligned}\]

        which is a more convenient formulation as required $\cos\theta$ scalings are reduced to a minimum. The remaining $(U,V)*\cos^{-2}\theta$ are done in grid-point space and usually in combination with other operations like the computation of the vorticity flux. But also note that SpeedyWeather.jl scales the equations with the radius R (see Radius scaling) such that the divisions by R drop out too. As described in Meridional derivative, it is more convenient to implement $\cos\theta \partial_\theta$ via a recursion relation for the Legendre polynomials than $\partial_\theta$ directly. How the operators $\nabla, \nabla \times, \nabla \cdot$ can be implemented with spherical harmonics is presented in the following sections.

        Zonal derivative

        The zonal derivative of a scalar field $\Psi$ in spectral space is the zonal derivative of all its respective spherical harmonics $\Psi_{lm}(\phi,\theta)$ (now we use $\phi$ for longitudes to avoid confusion with the Legendre polynomials $\lambda_{lm}$)

        \[v_{lm} = \frac{1}{R \cos(\theta)} \frac{\partial}{\partial \phi} \left( \lambda_l^m(\cos\theta) e^{im\phi} \right) = +\frac{im}{R \cos(\theta)} \lambda_l^m(\cos\theta) e^{im\phi} = \frac{im}{R \cos(\theta)} \Psi_{lm}\]

        So for every spectral harmonic, $\cos(\theta)v_{lm}$ is obtained from $\Psi_{lm}$ via a multiplication with $im/R$. Unscaling the $\cos(\theta)$-factor is done after transforming the spectral coefficients $v_{lm}$ into grid-point space. As discussed in Radius scaling, SpeedyWeather.jl scales the stream function as $\tilde{\Psi} = R^{-1}\Psi$ such that the division by radius $R$ in the gradients can be omitted. The zonal derivative becomes therefore effectively for each spherical harmonic a scaling with its (imaginary) order $im$. The spherical harmonics are essentially just a Fourier transform in zonal direction and the derivative a multiplication with the respective wave number $m$ times imaginary $i$.

        Meridional derivative

        The meridioinal derivative of the spherical harmonics is a derivative of the Legendre polynomials for which the following recursion relation applies[10],[11]

        \[\cos\theta \frac{dP_{l,m}}{d\theta} = -l\epsilon_{l+1,m}P_{l+1,m} + (l+1)\epsilon_{l,m}P_{l-1,m}.\]

        with recursion factors

        \[\epsilon_{l,m} = \sqrt{\frac{l^2-m^2}{4l^2-1}}\]

        In the following we use the example of obtaining the zonal velocity $u$ from the stream function $\Psi$, which is through the negative meridional gradient. For the meridional derivative itself the leading minus sign has to be omitted. Starting with the spectral expansion

        \[\Psi(\lambda,\theta) = \sum_{l,m}\Psi_{l,m}P_{l,m}(\sin\theta)e^{im\lambda}\]

        we multiply with $-R^{-1}\cos\theta\partial_\theta$ to obtain

        \[\cos\theta\left(-\frac{1}{R}\partial_\theta\Psi \right) = -\frac{1}{R}\sum_{l,m}\Psi_{l,m}e^{im\lambda}\cos\theta\partial_\theta P_{l,m}\]

        at which point the recursion from above can be applied. Collecting terms proportional to $P_{l,m}$ then yields

        \[(\cos(\theta)u)_{l,m} = -\frac{1}{R}(-(l-1)\epsilon_{l,m}\Psi_{l-1,m} + (l+2)\epsilon_{l+1,m}\Psi_{l+1,m})\]

        To obtain the coefficient of each spherical harmonic $l,m$ of the meridional gradient of a spectral field, two coefficients at $l-1,m$ and $l+1,m$ have to be combined. This means that the coefficient of a gradient $((\cos\theta) u)_{lm}$ is a linear combination of the coefficients of one higher and one lower degree $\Psi_{l+1,m},\Psi_{l-1,m}$. As the coefficient $\Psi_{lm}$ with $m<l$ are zero, the sectoral harmonics ($l=m$) of the gradients are obtained from the first off-diagonal only. However, the $l=l_{max}$ harmonics of the gradients require the $l_{max}-1$ as well as the $l_{max}+1$ harmonics. In SpeedyWeather.jl vector quantitie like $u,v$ use therefore one more meridional mode than scalar quantities such as vorticity $\zeta$ or stream function $\Psi$. The meridional derivative in SpeedyWeather.jl also omits the $1/R$-scaling as explained for the Zonal derivative and in Radius scaling.

        Divergence and curl in spherical harmonics

        The meridional gradient as described above can be applied to scalars, such as $\Psi$ and $\Phi$ in the conversion to velocities $(u,v) = \nabla^\bot\Psi + \nabla\Phi$, however, the operators curl $\nabla \times$ and divergence $\nabla \cdot$ in spherical coordinates involve a $\cos\theta$ scaling before the meridional gradient is applied. How to translate this to spectral coefficients has to be derived separately[10],[11].

        The spectral transform of vorticity $\zeta$ is

        \[\zeta_{l,m} = \frac{1}{2\pi}\int_{-\tfrac{\pi}{2}}^\tfrac{\pi}{2}\int_0^{2\pi} \zeta(\lambda,\theta) P_{l,m}(\sin\theta) e^{im\lambda} d\lambda \cos\theta d\theta\]

        Given that $R\zeta = \cos^{-1}\partial_\lambda v - \cos^{-1}\partial_\theta (u \cos\theta)$, we therefore have to evaluate a meridional integral of the form

        \[\int P_{l,m} \frac{1}{\cos \theta} \partial_\theta(u \cos\theta)) \cos \theta d\theta\]

        which can be solved through integration by parts. As $u\cos\theta = 0$ at $\theta = \pm \tfrac{\pi}{2}$ only the integral

        \[= -\int \partial_\theta P_{l,m} (u \cos\theta) d\theta = -\int \cos\theta \partial_\theta P_{l,m} (\frac{u}{\cos\theta}) \cos\theta d\theta\]

        remains. Inserting the recurrence relation from the Meridional derivative turns this into

        \[= -\int \left(-l \epsilon_{l+1,m}P_{l+1,m} + (l+1)\epsilon_{l,m} P_{l-1,m} \right) (\frac{u}{\cos\theta}) \cos \theta d\theta\]

        Now we expand $(\tfrac{u}{\cos\theta})$ but only the $l,m$ harmonic will project onto$P_{l,m}$. Let $u^* = u\cos^{-1}\theta, v^* = v\cos^{-1}\theta$ we then have in total

        \[\begin{aligned} +R\zeta_{l,m} &= imv^*_{l,m} + (l+1)\epsilon_{l,m}u^*_{l-1,m} - l\epsilon_{l+1,m}u^*_{l+1,m} \\ +RD_{l,m} &= imu^*_{l,m} - (l+1)\epsilon_{l,m}v^*_{l-1,m} + l\epsilon_{l+1,m}v^*_{l+1,m} \\ +\end{aligned}\]

        And the divergence $D$ is similar, but $(u,v) \to (-v,u)$. We have moved the scaling with the radius $R$ directly into $\zeta,D$ as further described in Radius scaling.

        Laplacian

        The spectral Laplacian is easily applied to the coefficients $\Psi_{lm}$ of a spectral field as the spherical harmonics are eigenfunctions of the Laplace operator $\nabla^2$ in spherical coordinates with eigenvalues $-l(l+1)$ divided by the radius squared $R^2$, i.e. $\nabla^2 \Psi$ becomes $\tfrac{-l(l+1)}{R^2}\Psi_{lm}$ in spectral space. For example, vorticity $\zeta$ and streamfunction $\Psi$ are related by $\zeta = \nabla^2\Psi$ in the barotropic vorticity model. Hence, in spectral space this is equivalent for every spectral mode of degree $l$ and order $m$ to

        \[\zeta_{l,m} = \frac{-l(l+1)}{R^2}\Psi_{l,m}\]

        This can be easily inverted to obtain the stream function $\Psi$ from vorticity $\zeta$ instead. In order to avoid division by zero, we set $\Psi_{0,0}$ here, given that the stream function is only defined up to a constant anyway.

        \[\begin{aligned} +\Psi_{l,m} &= \frac{R^2}{-l(l+1)}\zeta_{l,m} \quad \forall~l,m > 0,\\ +\Psi_{0,0} &= 0. +\end{aligned}\]

        See also Horizontal diffusion and Normalization of diffusion.

        U,V from vorticity and divergence

        After having discussed the zonal and meridional derivatives with spherical harmonics as well as the Laplace operator, we can derive the conversion from vorticity $\zeta$ and divergence $D$ (which are prognostic variables) to $U=u\cos\theta, V=v\cos\theta$. Both are linear operations that act either solely on a given harmonic (the zonal gradient and the Laplace operator) or are linear combinations between one lower and one higher degree $l$ (the meridional gradient). It is therefore computationally more efficient to compute $U,V$ directly from $\zeta,D$ instead of calculating stream function and velocity potential first. In total we have

        \[\begin{aligned} +U_{l,m} &= -\frac{im}{l(l+1)}(RD)_{l,m} + \frac{\epsilon_{l+1,m}}{l+1}(R\zeta)_{l+1,m} - \frac{\epsilon_{l,m}}{l}(R\zeta)_{l-1,m} \\ +V_{l,m} &= -\frac{im}{l(l+1)}(R\zeta)_{l,m} - \frac{\epsilon_{l+1,m}}{l+1}(RD)_{l+1,m} + \frac{\epsilon_{l,m}}{l}(RD)_{l-1,m} \\ +\end{aligned}\]

        We have moved the scaling with the radius $R$ directly into $\zeta,D$ as further described in Radius scaling.

        References

        diff --git a/previews/PR334/time_integration/index.html b/previews/PR334/time_integration/index.html new file mode 100644 index 000000000..121748e2b --- /dev/null +++ b/previews/PR334/time_integration/index.html @@ -0,0 +1,2 @@ + +Time integration · SpeedyWeather.jl
        diff --git a/previews/PR341/assets/documenter.js b/previews/PR341/assets/documenter.js new file mode 100644 index 000000000..6adfbbbf4 --- /dev/null +++ b/previews/PR341/assets/documenter.js @@ -0,0 +1,331 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'highlight-julia': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia.min', + 'headroom': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/headroom.min', + 'jqueryui': 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min', + 'katex-auto-render': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/contrib/auto-render.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + 'headroom-jquery': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/jQuery.headroom.min', + 'katex': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/katex.min', + 'highlight': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/highlight.min', + 'highlight-julia-repl': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia-repl.min', + }, + shim: { + "highlight-julia": { + "deps": [ + "highlight" + ] + }, + "katex-auto-render": { + "deps": [ + "katex" + ] + }, + "headroom-jquery": { + "deps": [ + "jquery", + "headroom" + ] + }, + "highlight-julia-repl": { + "deps": [ + "highlight" + ] + } +} +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'katex', 'katex-auto-render'], function($, katex, renderMathInElement) { +$(document).ready(function() { + renderMathInElement( + document.body, + { + "delimiters": [ + { + "left": "$", + "right": "$", + "display": false + }, + { + "left": "$$", + "right": "$$", + "display": true + }, + { + "left": "\\[", + "right": "\\]", + "display": true + } + ] +} + + ); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'highlight', 'highlight-julia', 'highlight-julia-repl'], function($) { +$(document).ready(function() { + hljs.highlightAll(); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require([], function() { +function addCopyButtonCallbacks() { + for (const el of document.getElementsByTagName("pre")) { + const button = document.createElement("button"); + button.classList.add("copy-button", "fas", "fa-copy"); + el.appendChild(button); + + const success = function () { + button.classList.add("success", "fa-check"); + button.classList.remove("fa-copy"); + }; + + const failure = function () { + button.classList.add("error", "fa-times"); + button.classList.remove("fa-copy"); + }; + + button.addEventListener("click", function () { + copyToClipboard(el.innerText).then(success, failure); + + setTimeout(function () { + button.classList.add("fa-copy"); + button.classList.remove("success", "fa-check", "fa-times"); + }, 5000); + }); + } +} + +function copyToClipboard(text) { + // clipboard API is only available in secure contexts + if (window.navigator && window.navigator.clipboard) { + return window.navigator.clipboard.writeText(text); + } else { + return new Promise(function (resolve, reject) { + try { + const el = document.createElement("textarea"); + el.textContent = text; + el.style.position = "fixed"; + el.style.opacity = 0; + document.body.appendChild(el); + el.select(); + document.execCommand("copy"); + + resolve(); + } catch (err) { + reject(err); + } finally { + document.body.removeChild(el); + } + }); + } +} + +if (document.readyState === "loading") { + document.addEventListener("DOMContentLoaded", addCopyButtonCallbacks); +} else { + addCopyButtonCallbacks(); +} + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'headroom', 'headroom-jquery'], function($, Headroom) { + +// Manages the top navigation bar (hides it when the user starts scrolling down on the +// mobile). +window.Headroom = Headroom; // work around buggy module loading? +$(document).ready(function() { + $('#documenter .docs-navbar').headroom({ + "tolerance": {"up": 10, "down": 10}, + }); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Modal settings dialog +$(document).ready(function() { + var settings = $('#documenter-settings'); + $('#documenter-settings-button').click(function(){ + settings.toggleClass('is-active'); + }); + // Close the dialog if X is clicked + $('#documenter-settings button.delete').click(function(){ + settings.removeClass('is-active'); + }); + // Close dialog if ESC is pressed + $(document).keyup(function(e) { + if (e.keyCode == 27) settings.removeClass('is-active'); + }); +}); + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Manages the showing and hiding of the sidebar. +$(document).ready(function() { + var sidebar = $("#documenter > .docs-sidebar"); + var sidebar_button = $("#documenter-sidebar-button") + sidebar_button.click(function(ev) { + ev.preventDefault(); + sidebar.toggleClass('visible'); + if (sidebar.hasClass('visible')) { + // Makes sure that the current menu item is visible in the sidebar. + $("#documenter .docs-menu a.is-active").focus(); + } + }); + $("#documenter > .docs-main").bind('click', function(ev) { + if ($(ev.target).is(sidebar_button)) { + return; + } + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + }); +}) + +// Resizes the package name / sitename in the sidebar if it is too wide. +// Inspired by: https://github.com/davatron5000/FitText.js +$(document).ready(function() { + e = $("#documenter .docs-autofit"); + function resize() { + var L = parseInt(e.css('max-width'), 10); + var L0 = e.width(); + if(L0 > L) { + var h0 = parseInt(e.css('font-size'), 10); + e.css('font-size', L * h0 / L0); + // TODO: make sure it survives resizes? + } + } + // call once and then register events + resize(); + $(window).resize(resize); + $(window).on('orientationchange', resize); +}); + +// Scroll the navigation bar to the currently selected menu item +$(document).ready(function() { + var sidebar = $("#documenter .docs-menu").get(0); + var active = $("#documenter .docs-menu .is-active").get(0); + if(typeof active !== 'undefined') { + sidebar.scrollTop = active.offsetTop - sidebar.offsetTop - 15; + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +function set_theme(theme) { + var active = null; + var disabled = []; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + var themename = ss.ownerNode.getAttribute("data-theme-name"); + if(themename === null) continue; // ignore non-theme stylesheets + // Find the active theme + if(themename === theme) active = ss; + else disabled.push(ss); + } + if(active !== null) { + active.disabled = false; + if(active.ownerNode.getAttribute("data-theme-primary") === null) { + document.getElementsByTagName('html')[0].className = "theme--" + theme; + } else { + document.getElementsByTagName('html')[0].className = ""; + } + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + + // Store the theme in localStorage + if(typeof(window.localStorage) !== "undefined") { + window.localStorage.setItem("documenter-theme", theme); + } else { + console.error("Browser does not support window.localStorage"); + } +} + +// Theme picker setup +$(document).ready(function() { + // onchange callback + $('#documenter-themepicker').change(function themepick_callback(ev){ + var themename = $('#documenter-themepicker option:selected').attr('value'); + set_theme(themename); + }); + + // Make sure that the themepicker displays the correct theme when the theme is retrieved + // from localStorage + if(typeof(window.localStorage) !== "undefined") { + var theme = window.localStorage.getItem("documenter-theme"); + if(theme !== null) { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = (e.value === theme); + }) + } else { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = $("html").hasClass(`theme--${e.value}`); + }) + } + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// update the version selector with info from the siteinfo.js and ../versions.js files +$(document).ready(function() { + // If the version selector is disabled with DOCUMENTER_VERSION_SELECTOR_DISABLED in the + // siteinfo.js file, we just return immediately and not display the version selector. + if (typeof DOCUMENTER_VERSION_SELECTOR_DISABLED === 'boolean' && DOCUMENTER_VERSION_SELECTOR_DISABLED) { + return; + } + + var version_selector = $("#documenter .docs-version-selector"); + var version_selector_select = $("#documenter .docs-version-selector select"); + + version_selector_select.change(function(x) { + target_href = version_selector_select.children("option:selected").get(0).value; + window.location.href = target_href; + }); + + // add the current version to the selector based on siteinfo.js, but only if the selector is empty + if (typeof DOCUMENTER_CURRENT_VERSION !== 'undefined' && $('#version-selector > option').length == 0) { + var option = $(""); + version_selector_select.append(option); + } + + if (typeof DOC_VERSIONS !== 'undefined') { + var existing_versions = version_selector_select.children("option"); + var existing_versions_texts = existing_versions.map(function(i,x){return x.text}); + DOC_VERSIONS.forEach(function(each) { + var version_url = documenterBaseURL + "/../" + each; + var existing_id = $.inArray(each, existing_versions_texts); + // if not already in the version selector, add it as a new option, + // otherwise update the old option with the URL and enable it + if (existing_id == -1) { + var option = $(""); + version_selector_select.append(option); + } else { + var option = existing_versions[existing_id]; + option.value = version_url; + option.disabled = false; + } + }); + } + + // only show the version selector if the selector has been populated + if (version_selector_select.children("option").length > 0) { + version_selector.toggleClass("visible"); + } +}) + +}) diff --git a/previews/PR341/assets/search.js b/previews/PR341/assets/search.js new file mode 100644 index 000000000..c133f7410 --- /dev/null +++ b/previews/PR341/assets/search.js @@ -0,0 +1,267 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'lunr': 'https://cdnjs.cloudflare.com/ajax/libs/lunr.js/2.3.9/lunr.min', + 'lodash': 'https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + } +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'lunr', 'lodash'], function($, lunr, _) { + +$(document).ready(function() { + // parseUri 1.2.2 + // (c) Steven Levithan + // MIT License + function parseUri (str) { + var o = parseUri.options, + m = o.parser[o.strictMode ? "strict" : "loose"].exec(str), + uri = {}, + i = 14; + + while (i--) uri[o.key[i]] = m[i] || ""; + + uri[o.q.name] = {}; + uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) { + if ($1) uri[o.q.name][$1] = $2; + }); + + return uri; + }; + parseUri.options = { + strictMode: false, + key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"], + q: { + name: "queryKey", + parser: /(?:^|&)([^&=]*)=?([^&]*)/g + }, + parser: { + strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, + loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ + } + }; + + $("#search-form").submit(function(e) { + e.preventDefault() + }) + + // list below is the lunr 2.1.3 list minus the intersect with names(Base) + // (all, any, get, in, is, only, which) and (do, else, for, let, where, while, with) + // ideally we'd just filter the original list but it's not available as a variable + lunr.stopWordFilter = lunr.generateStopWordFilter([ + 'a', + 'able', + 'about', + 'across', + 'after', + 'almost', + 'also', + 'am', + 'among', + 'an', + 'and', + 'are', + 'as', + 'at', + 'be', + 'because', + 'been', + 'but', + 'by', + 'can', + 'cannot', + 'could', + 'dear', + 'did', + 'does', + 'either', + 'ever', + 'every', + 'from', + 'got', + 'had', + 'has', + 'have', + 'he', + 'her', + 'hers', + 'him', + 'his', + 'how', + 'however', + 'i', + 'if', + 'into', + 'it', + 'its', + 'just', + 'least', + 'like', + 'likely', + 'may', + 'me', + 'might', + 'most', + 'must', + 'my', + 'neither', + 'no', + 'nor', + 'not', + 'of', + 'off', + 'often', + 'on', + 'or', + 'other', + 'our', + 'own', + 'rather', + 'said', + 'say', + 'says', + 'she', + 'should', + 'since', + 'so', + 'some', + 'than', + 'that', + 'the', + 'their', + 'them', + 'then', + 'there', + 'these', + 'they', + 'this', + 'tis', + 'to', + 'too', + 'twas', + 'us', + 'wants', + 'was', + 'we', + 'were', + 'what', + 'when', + 'who', + 'whom', + 'why', + 'will', + 'would', + 'yet', + 'you', + 'your' + ]) + + // add . as a separator, because otherwise "title": "Documenter.Anchors.add!" + // would not find anything if searching for "add!", only for the entire qualification + lunr.tokenizer.separator = /[\s\-\.]+/ + + // custom trimmer that doesn't strip @ and !, which are used in julia macro and function names + lunr.trimmer = function (token) { + return token.update(function (s) { + return s.replace(/^[^a-zA-Z0-9@!]+/, '').replace(/[^a-zA-Z0-9@!]+$/, '') + }) + } + + lunr.Pipeline.registerFunction(lunr.stopWordFilter, 'juliaStopWordFilter') + lunr.Pipeline.registerFunction(lunr.trimmer, 'juliaTrimmer') + + var index = lunr(function () { + this.ref('location') + this.field('title',{boost: 100}) + this.field('text') + documenterSearchIndex['docs'].forEach(function(e) { + this.add(e) + }, this) + }) + var store = {} + + documenterSearchIndex['docs'].forEach(function(e) { + store[e.location] = {title: e.title, category: e.category, page: e.page} + }) + + $(function(){ + searchresults = $('#documenter-search-results'); + searchinfo = $('#documenter-search-info'); + searchbox = $('#documenter-search-query'); + searchform = $('.docs-search'); + sidebar = $('.docs-sidebar'); + function update_search(querystring) { + tokens = lunr.tokenizer(querystring) + results = index.query(function (q) { + tokens.forEach(function (t) { + q.term(t.toString(), { + fields: ["title"], + boost: 100, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["title"], + boost: 10, + usePipeline: true, + editDistance: 2, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["text"], + boost: 1, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + }) + }) + searchinfo.text("Number of results: " + results.length) + searchresults.empty() + results.forEach(function(result) { + data = store[result.ref] + link = $(''+data.title+'') + link.attr('href', documenterBaseURL+'/'+result.ref) + if (data.category != "page"){ + cat = $('('+data.category+', '+data.page+')') + } else { + cat = $('('+data.category+')') + } + li = $('
      • ').append(link).append(" ").append(cat) + searchresults.append(li) + }) + } + + function update_search_box() { + querystring = searchbox.val() + update_search(querystring) + } + + searchbox.keyup(_.debounce(update_search_box, 250)) + searchbox.change(update_search_box) + + // Disable enter-key form submission for the searchbox on the search page + // and just re-run search rather than refresh the whole page. + searchform.keypress( + function(event){ + if (event.which == '13') { + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + update_search_box(); + event.preventDefault(); + } + } + ); + + search_query_uri = parseUri(window.location).queryKey["q"] + if(search_query_uri !== undefined) { + search_query = decodeURIComponent(search_query_uri.replace(/\+/g, '%20')) + searchbox.val(search_query) + } + update_search_box(); + }) +}) + +}) diff --git a/previews/PR341/assets/themes/documenter-dark.css b/previews/PR341/assets/themes/documenter-dark.css new file mode 100644 index 000000000..0bf1af7d5 --- /dev/null +++ b/previews/PR341/assets/themes/documenter-dark.css @@ -0,0 +1,7702 @@ +@charset "UTF-8"; +/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */ +@keyframes spinAround { + from { + transform: rotate(0deg); } + to { + transform: rotate(359deg); } } + +html.theme--documenter-dark .tabs, html.theme--documenter-dark .pagination-previous, +html.theme--documenter-dark .pagination-next, +html.theme--documenter-dark .pagination-link, +html.theme--documenter-dark .pagination-ellipsis, html.theme--documenter-dark .breadcrumb, html.theme--documenter-dark .file, html.theme--documenter-dark .button, .is-unselectable, html.theme--documenter-dark .modal-close, html.theme--documenter-dark .delete { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after, html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after { + border: 3px solid transparent; + border-radius: 2px; + border-right: 0; + border-top: 0; + content: " "; + display: block; + height: 0.625em; + margin-top: -0.4375em; + pointer-events: none; + position: absolute; + top: 50%; + transform: rotate(-45deg); + transform-origin: center; + width: 0.625em; } + +html.theme--documenter-dark .admonition:not(:last-child), html.theme--documenter-dark .tabs:not(:last-child), html.theme--documenter-dark .message:not(:last-child), html.theme--documenter-dark .list:not(:last-child), html.theme--documenter-dark .level:not(:last-child), html.theme--documenter-dark .breadcrumb:not(:last-child), html.theme--documenter-dark .highlight:not(:last-child), html.theme--documenter-dark .block:not(:last-child), html.theme--documenter-dark .title:not(:last-child), +html.theme--documenter-dark .subtitle:not(:last-child), html.theme--documenter-dark .table-container:not(:last-child), html.theme--documenter-dark .table:not(:last-child), html.theme--documenter-dark .progress:not(:last-child), html.theme--documenter-dark .notification:not(:last-child), html.theme--documenter-dark .content:not(:last-child), html.theme--documenter-dark .box:not(:last-child) { + margin-bottom: 1.5rem; } + +html.theme--documenter-dark .modal-close, html.theme--documenter-dark .delete { + -moz-appearance: none; + -webkit-appearance: none; + background-color: rgba(10, 10, 10, 0.2); + border: none; + border-radius: 290486px; + cursor: pointer; + pointer-events: auto; + display: inline-block; + flex-grow: 0; + flex-shrink: 0; + font-size: 0; + height: 20px; + max-height: 20px; + max-width: 20px; + min-height: 20px; + min-width: 20px; + outline: none; + position: relative; + vertical-align: top; + width: 20px; } + html.theme--documenter-dark .modal-close::before, html.theme--documenter-dark .delete::before, html.theme--documenter-dark .modal-close::after, html.theme--documenter-dark .delete::after { + background-color: white; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + html.theme--documenter-dark .modal-close::before, html.theme--documenter-dark .delete::before { + height: 2px; + width: 50%; } + html.theme--documenter-dark .modal-close::after, html.theme--documenter-dark .delete::after { + height: 50%; + width: 2px; } + html.theme--documenter-dark .modal-close:hover, html.theme--documenter-dark .delete:hover, html.theme--documenter-dark .modal-close:focus, html.theme--documenter-dark .delete:focus { + background-color: rgba(10, 10, 10, 0.3); } + html.theme--documenter-dark .modal-close:active, html.theme--documenter-dark .delete:active { + background-color: rgba(10, 10, 10, 0.4); } + html.theme--documenter-dark .is-small.modal-close, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.modal-close, html.theme--documenter-dark .is-small.delete, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.delete { + height: 16px; + max-height: 16px; + max-width: 16px; + min-height: 16px; + min-width: 16px; + width: 16px; } + html.theme--documenter-dark .is-medium.modal-close, html.theme--documenter-dark .is-medium.delete { + height: 24px; + max-height: 24px; + max-width: 24px; + min-height: 24px; + min-width: 24px; + width: 24px; } + html.theme--documenter-dark .is-large.modal-close, html.theme--documenter-dark .is-large.delete { + height: 32px; + max-height: 32px; + max-width: 32px; + min-height: 32px; + min-width: 32px; + width: 32px; } + +html.theme--documenter-dark .control.is-loading::after, html.theme--documenter-dark .select.is-loading::after, html.theme--documenter-dark .loader, html.theme--documenter-dark .button.is-loading::after { + animation: spinAround 500ms infinite linear; + border: 2px solid #dbdee0; + border-radius: 290486px; + border-right-color: transparent; + border-top-color: transparent; + content: ""; + display: block; + height: 1em; + position: relative; + width: 1em; } + +html.theme--documenter-dark .hero-video, html.theme--documenter-dark .modal-background, html.theme--documenter-dark .modal, html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img, +html.theme--documenter-dark .image.is-square .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img, +html.theme--documenter-dark .image.is-1by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img, +html.theme--documenter-dark .image.is-5by4 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img, +html.theme--documenter-dark .image.is-4by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img, +html.theme--documenter-dark .image.is-3by2 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img, +html.theme--documenter-dark .image.is-5by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img, +html.theme--documenter-dark .image.is-16by9 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img, +html.theme--documenter-dark .image.is-2by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img, +html.theme--documenter-dark .image.is-3by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img, +html.theme--documenter-dark .image.is-4by5 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img, +html.theme--documenter-dark .image.is-3by4 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img, +html.theme--documenter-dark .image.is-2by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img, +html.theme--documenter-dark .image.is-3by5 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img, +html.theme--documenter-dark .image.is-9by16 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img, +html.theme--documenter-dark .image.is-1by2 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img, +html.theme--documenter-dark .image.is-1by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, .is-overlay { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; } + +html.theme--documenter-dark .pagination-previous, +html.theme--documenter-dark .pagination-next, +html.theme--documenter-dark .pagination-link, +html.theme--documenter-dark .pagination-ellipsis, html.theme--documenter-dark .file-cta, +html.theme--documenter-dark .file-name, html.theme--documenter-dark .select select, html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark .button { + -moz-appearance: none; + -webkit-appearance: none; + align-items: center; + border: 1px solid transparent; + border-radius: 0.4em; + box-shadow: none; + display: inline-flex; + font-size: 15px; + height: 2.25em; + justify-content: flex-start; + line-height: 1.5; + padding-bottom: calc(0.375em - 1px); + padding-left: calc(0.625em - 1px); + padding-right: calc(0.625em - 1px); + padding-top: calc(0.375em - 1px); + position: relative; + vertical-align: top; } + html.theme--documenter-dark .pagination-previous:focus, + html.theme--documenter-dark .pagination-next:focus, + html.theme--documenter-dark .pagination-link:focus, + html.theme--documenter-dark .pagination-ellipsis:focus, html.theme--documenter-dark .file-cta:focus, + html.theme--documenter-dark .file-name:focus, html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .button:focus, html.theme--documenter-dark .is-focused.pagination-previous, + html.theme--documenter-dark .is-focused.pagination-next, + html.theme--documenter-dark .is-focused.pagination-link, + html.theme--documenter-dark .is-focused.pagination-ellipsis, html.theme--documenter-dark .is-focused.file-cta, + html.theme--documenter-dark .is-focused.file-name, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-focused.button, html.theme--documenter-dark .pagination-previous:active, + html.theme--documenter-dark .pagination-next:active, + html.theme--documenter-dark .pagination-link:active, + html.theme--documenter-dark .pagination-ellipsis:active, html.theme--documenter-dark .file-cta:active, + html.theme--documenter-dark .file-name:active, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .button:active, html.theme--documenter-dark .is-active.pagination-previous, + html.theme--documenter-dark .is-active.pagination-next, + html.theme--documenter-dark .is-active.pagination-link, + html.theme--documenter-dark .is-active.pagination-ellipsis, html.theme--documenter-dark .is-active.file-cta, + html.theme--documenter-dark .is-active.file-name, html.theme--documenter-dark .select select.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .is-active.button { + outline: none; } + html.theme--documenter-dark .pagination-previous[disabled], + html.theme--documenter-dark .pagination-next[disabled], + html.theme--documenter-dark .pagination-link[disabled], + html.theme--documenter-dark .pagination-ellipsis[disabled], html.theme--documenter-dark .file-cta[disabled], + html.theme--documenter-dark .file-name[disabled], html.theme--documenter-dark .select select[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], html.theme--documenter-dark .button[disabled], fieldset[disabled] html.theme--documenter-dark .pagination-previous, html.theme--documenter-dark fieldset[disabled] .pagination-previous, + fieldset[disabled] html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark fieldset[disabled] .pagination-next, + fieldset[disabled] html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark fieldset[disabled] .pagination-link, + fieldset[disabled] html.theme--documenter-dark .pagination-ellipsis, + html.theme--documenter-dark fieldset[disabled] .pagination-ellipsis, fieldset[disabled] html.theme--documenter-dark .file-cta, html.theme--documenter-dark fieldset[disabled] .file-cta, + fieldset[disabled] html.theme--documenter-dark .file-name, + html.theme--documenter-dark fieldset[disabled] .file-name, fieldset[disabled] html.theme--documenter-dark .select select, fieldset[disabled] html.theme--documenter-dark .textarea, fieldset[disabled] html.theme--documenter-dark .input, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark fieldset[disabled] .select select, html.theme--documenter-dark .select fieldset[disabled] select, html.theme--documenter-dark fieldset[disabled] .textarea, html.theme--documenter-dark fieldset[disabled] .input, html.theme--documenter-dark fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, fieldset[disabled] html.theme--documenter-dark .button, html.theme--documenter-dark fieldset[disabled] .button { + cursor: not-allowed; } + +/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */ +html, +body, +p, +ol, +ul, +li, +dl, +dt, +dd, +blockquote, +figure, +fieldset, +legend, +textarea, +pre, +iframe, +hr, +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + padding: 0; } + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: 100%; + font-weight: normal; } + +ul { + list-style: none; } + +button, +input, +select, +textarea { + margin: 0; } + +html { + box-sizing: border-box; } + +*, *::before, *::after { + box-sizing: inherit; } + +img, +embed, +iframe, +object, +video { + height: auto; + max-width: 100%; } + +audio { + max-width: 100%; } + +iframe { + border: 0; } + +table { + border-collapse: collapse; + border-spacing: 0; } + +td, +th { + padding: 0; } + td:not([align]), + th:not([align]) { + text-align: left; } + +.is-clearfix::after { + clear: both; + content: " "; + display: table; } + +.is-pulled-left { + float: left !important; } + +.is-pulled-right { + float: right !important; } + +.is-clipped { + overflow: hidden !important; } + +.is-size-1 { + font-size: 3rem !important; } + +.is-size-2 { + font-size: 2.5rem !important; } + +.is-size-3 { + font-size: 2rem !important; } + +.is-size-4 { + font-size: 1.5rem !important; } + +.is-size-5 { + font-size: 1.25rem !important; } + +.is-size-6 { + font-size: 15px !important; } + +.is-size-7, html.theme--documenter-dark .docstring > section > a.docs-sourcelink { + font-size: 0.85em !important; } + +@media screen and (max-width: 768px) { + .is-size-1-mobile { + font-size: 3rem !important; } + .is-size-2-mobile { + font-size: 2.5rem !important; } + .is-size-3-mobile { + font-size: 2rem !important; } + .is-size-4-mobile { + font-size: 1.5rem !important; } + .is-size-5-mobile { + font-size: 1.25rem !important; } + .is-size-6-mobile { + font-size: 15px !important; } + .is-size-7-mobile { + font-size: 0.85em !important; } } + +@media screen and (min-width: 769px), print { + .is-size-1-tablet { + font-size: 3rem !important; } + .is-size-2-tablet { + font-size: 2.5rem !important; } + .is-size-3-tablet { + font-size: 2rem !important; } + .is-size-4-tablet { + font-size: 1.5rem !important; } + .is-size-5-tablet { + font-size: 1.25rem !important; } + .is-size-6-tablet { + font-size: 15px !important; } + .is-size-7-tablet { + font-size: 0.85em !important; } } + +@media screen and (max-width: 1055px) { + .is-size-1-touch { + font-size: 3rem !important; } + .is-size-2-touch { + font-size: 2.5rem !important; } + .is-size-3-touch { + font-size: 2rem !important; } + .is-size-4-touch { + font-size: 1.5rem !important; } + .is-size-5-touch { + font-size: 1.25rem !important; } + .is-size-6-touch { + font-size: 15px !important; } + .is-size-7-touch { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1056px) { + .is-size-1-desktop { + font-size: 3rem !important; } + .is-size-2-desktop { + font-size: 2.5rem !important; } + .is-size-3-desktop { + font-size: 2rem !important; } + .is-size-4-desktop { + font-size: 1.5rem !important; } + .is-size-5-desktop { + font-size: 1.25rem !important; } + .is-size-6-desktop { + font-size: 15px !important; } + .is-size-7-desktop { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1216px) { + .is-size-1-widescreen { + font-size: 3rem !important; } + .is-size-2-widescreen { + font-size: 2.5rem !important; } + .is-size-3-widescreen { + font-size: 2rem !important; } + .is-size-4-widescreen { + font-size: 1.5rem !important; } + .is-size-5-widescreen { + font-size: 1.25rem !important; } + .is-size-6-widescreen { + font-size: 15px !important; } + .is-size-7-widescreen { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1408px) { + .is-size-1-fullhd { + font-size: 3rem !important; } + .is-size-2-fullhd { + font-size: 2.5rem !important; } + .is-size-3-fullhd { + font-size: 2rem !important; } + .is-size-4-fullhd { + font-size: 1.5rem !important; } + .is-size-5-fullhd { + font-size: 1.25rem !important; } + .is-size-6-fullhd { + font-size: 15px !important; } + .is-size-7-fullhd { + font-size: 0.85em !important; } } + +.has-text-centered { + text-align: center !important; } + +.has-text-justified { + text-align: justify !important; } + +.has-text-left { + text-align: left !important; } + +.has-text-right { + text-align: right !important; } + +@media screen and (max-width: 768px) { + .has-text-centered-mobile { + text-align: center !important; } } + +@media screen and (min-width: 769px), print { + .has-text-centered-tablet { + text-align: center !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-centered-tablet-only { + text-align: center !important; } } + +@media screen and (max-width: 1055px) { + .has-text-centered-touch { + text-align: center !important; } } + +@media screen and (min-width: 1056px) { + .has-text-centered-desktop { + text-align: center !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-centered-desktop-only { + text-align: center !important; } } + +@media screen and (min-width: 1216px) { + .has-text-centered-widescreen { + text-align: center !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-centered-widescreen-only { + text-align: center !important; } } + +@media screen and (min-width: 1408px) { + .has-text-centered-fullhd { + text-align: center !important; } } + +@media screen and (max-width: 768px) { + .has-text-justified-mobile { + text-align: justify !important; } } + +@media screen and (min-width: 769px), print { + .has-text-justified-tablet { + text-align: justify !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-justified-tablet-only { + text-align: justify !important; } } + +@media screen and (max-width: 1055px) { + .has-text-justified-touch { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) { + .has-text-justified-desktop { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-justified-desktop-only { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) { + .has-text-justified-widescreen { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-justified-widescreen-only { + text-align: justify !important; } } + +@media screen and (min-width: 1408px) { + .has-text-justified-fullhd { + text-align: justify !important; } } + +@media screen and (max-width: 768px) { + .has-text-left-mobile { + text-align: left !important; } } + +@media screen and (min-width: 769px), print { + .has-text-left-tablet { + text-align: left !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-left-tablet-only { + text-align: left !important; } } + +@media screen and (max-width: 1055px) { + .has-text-left-touch { + text-align: left !important; } } + +@media screen and (min-width: 1056px) { + .has-text-left-desktop { + text-align: left !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-left-desktop-only { + text-align: left !important; } } + +@media screen and (min-width: 1216px) { + .has-text-left-widescreen { + text-align: left !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-left-widescreen-only { + text-align: left !important; } } + +@media screen and (min-width: 1408px) { + .has-text-left-fullhd { + text-align: left !important; } } + +@media screen and (max-width: 768px) { + .has-text-right-mobile { + text-align: right !important; } } + +@media screen and (min-width: 769px), print { + .has-text-right-tablet { + text-align: right !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-right-tablet-only { + text-align: right !important; } } + +@media screen and (max-width: 1055px) { + .has-text-right-touch { + text-align: right !important; } } + +@media screen and (min-width: 1056px) { + .has-text-right-desktop { + text-align: right !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-right-desktop-only { + text-align: right !important; } } + +@media screen and (min-width: 1216px) { + .has-text-right-widescreen { + text-align: right !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-right-widescreen-only { + text-align: right !important; } } + +@media screen and (min-width: 1408px) { + .has-text-right-fullhd { + text-align: right !important; } } + +.is-capitalized { + text-transform: capitalize !important; } + +.is-lowercase { + text-transform: lowercase !important; } + +.is-uppercase { + text-transform: uppercase !important; } + +.is-italic { + font-style: italic !important; } + +.has-text-white { + color: white !important; } + +a.has-text-white:hover, a.has-text-white:focus { + color: #e6e6e6 !important; } + +.has-background-white { + background-color: white !important; } + +.has-text-black { + color: #0a0a0a !important; } + +a.has-text-black:hover, a.has-text-black:focus { + color: black !important; } + +.has-background-black { + background-color: #0a0a0a !important; } + +.has-text-light { + color: #ecf0f1 !important; } + +a.has-text-light:hover, a.has-text-light:focus { + color: #cfd9db !important; } + +.has-background-light { + background-color: #ecf0f1 !important; } + +.has-text-dark { + color: #282f2f !important; } + +a.has-text-dark:hover, a.has-text-dark:focus { + color: #111414 !important; } + +.has-background-dark { + background-color: #282f2f !important; } + +.has-text-primary { + color: #375a7f !important; } + +a.has-text-primary:hover, a.has-text-primary:focus { + color: #28415b !important; } + +.has-background-primary { + background-color: #375a7f !important; } + +.has-text-link { + color: #1abc9c !important; } + +a.has-text-link:hover, a.has-text-link:focus { + color: #148f77 !important; } + +.has-background-link { + background-color: #1abc9c !important; } + +.has-text-info { + color: #024c7d !important; } + +a.has-text-info:hover, a.has-text-info:focus { + color: #012d4b !important; } + +.has-background-info { + background-color: #024c7d !important; } + +.has-text-success { + color: #008438 !important; } + +a.has-text-success:hover, a.has-text-success:focus { + color: #005122 !important; } + +.has-background-success { + background-color: #008438 !important; } + +.has-text-warning { + color: #ad8100 !important; } + +a.has-text-warning:hover, a.has-text-warning:focus { + color: #7a5b00 !important; } + +.has-background-warning { + background-color: #ad8100 !important; } + +.has-text-danger { + color: #9e1b0d !important; } + +a.has-text-danger:hover, a.has-text-danger:focus { + color: #6f1309 !important; } + +.has-background-danger { + background-color: #9e1b0d !important; } + +.has-text-black-bis { + color: #121212 !important; } + +.has-background-black-bis { + background-color: #121212 !important; } + +.has-text-black-ter { + color: #242424 !important; } + +.has-background-black-ter { + background-color: #242424 !important; } + +.has-text-grey-darker { + color: #282f2f !important; } + +.has-background-grey-darker { + background-color: #282f2f !important; } + +.has-text-grey-dark { + color: #343c3d !important; } + +.has-background-grey-dark { + background-color: #343c3d !important; } + +.has-text-grey { + color: #5e6d6f !important; } + +.has-background-grey { + background-color: #5e6d6f !important; } + +.has-text-grey-light { + color: #8c9b9d !important; } + +.has-background-grey-light { + background-color: #8c9b9d !important; } + +.has-text-grey-lighter { + color: #dbdee0 !important; } + +.has-background-grey-lighter { + background-color: #dbdee0 !important; } + +.has-text-white-ter { + color: #ecf0f1 !important; } + +.has-background-white-ter { + background-color: #ecf0f1 !important; } + +.has-text-white-bis { + color: #fafafa !important; } + +.has-background-white-bis { + background-color: #fafafa !important; } + +.has-text-weight-light { + font-weight: 300 !important; } + +.has-text-weight-normal { + font-weight: 400 !important; } + +.has-text-weight-medium { + font-weight: 500 !important; } + +.has-text-weight-semibold { + font-weight: 600 !important; } + +.has-text-weight-bold { + font-weight: 700 !important; } + +.is-family-primary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-secondary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-sans-serif { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-monospace { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-family-code { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-block { + display: block !important; } + +@media screen and (max-width: 768px) { + .is-block-mobile { + display: block !important; } } + +@media screen and (min-width: 769px), print { + .is-block-tablet { + display: block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-block-tablet-only { + display: block !important; } } + +@media screen and (max-width: 1055px) { + .is-block-touch { + display: block !important; } } + +@media screen and (min-width: 1056px) { + .is-block-desktop { + display: block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-block-desktop-only { + display: block !important; } } + +@media screen and (min-width: 1216px) { + .is-block-widescreen { + display: block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-block-widescreen-only { + display: block !important; } } + +@media screen and (min-width: 1408px) { + .is-block-fullhd { + display: block !important; } } + +.is-flex { + display: flex !important; } + +@media screen and (max-width: 768px) { + .is-flex-mobile { + display: flex !important; } } + +@media screen and (min-width: 769px), print { + .is-flex-tablet { + display: flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-flex-tablet-only { + display: flex !important; } } + +@media screen and (max-width: 1055px) { + .is-flex-touch { + display: flex !important; } } + +@media screen and (min-width: 1056px) { + .is-flex-desktop { + display: flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-flex-desktop-only { + display: flex !important; } } + +@media screen and (min-width: 1216px) { + .is-flex-widescreen { + display: flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-flex-widescreen-only { + display: flex !important; } } + +@media screen and (min-width: 1408px) { + .is-flex-fullhd { + display: flex !important; } } + +.is-inline { + display: inline !important; } + +@media screen and (max-width: 768px) { + .is-inline-mobile { + display: inline !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-tablet { + display: inline !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-tablet-only { + display: inline !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-touch { + display: inline !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-desktop { + display: inline !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-desktop-only { + display: inline !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-widescreen { + display: inline !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-widescreen-only { + display: inline !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-fullhd { + display: inline !important; } } + +.is-inline-block { + display: inline-block !important; } + +@media screen and (max-width: 768px) { + .is-inline-block-mobile { + display: inline-block !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-block-tablet { + display: inline-block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-block-tablet-only { + display: inline-block !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-block-touch { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-block-desktop { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-block-desktop-only { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-block-widescreen { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-block-widescreen-only { + display: inline-block !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-block-fullhd { + display: inline-block !important; } } + +.is-inline-flex { + display: inline-flex !important; } + +@media screen and (max-width: 768px) { + .is-inline-flex-mobile { + display: inline-flex !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-flex-tablet { + display: inline-flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-flex-tablet-only { + display: inline-flex !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-flex-touch { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-flex-desktop { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-flex-desktop-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-flex-widescreen { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-flex-widescreen-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-flex-fullhd { + display: inline-flex !important; } } + +.is-hidden { + display: none !important; } + +.is-sr-only { + border: none !important; + clip: rect(0, 0, 0, 0) !important; + height: 0.01em !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + white-space: nowrap !important; + width: 0.01em !important; } + +@media screen and (max-width: 768px) { + .is-hidden-mobile { + display: none !important; } } + +@media screen and (min-width: 769px), print { + .is-hidden-tablet { + display: none !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-hidden-tablet-only { + display: none !important; } } + +@media screen and (max-width: 1055px) { + .is-hidden-touch { + display: none !important; } } + +@media screen and (min-width: 1056px) { + .is-hidden-desktop { + display: none !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-hidden-desktop-only { + display: none !important; } } + +@media screen and (min-width: 1216px) { + .is-hidden-widescreen { + display: none !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-hidden-widescreen-only { + display: none !important; } } + +@media screen and (min-width: 1408px) { + .is-hidden-fullhd { + display: none !important; } } + +.is-invisible { + visibility: hidden !important; } + +@media screen and (max-width: 768px) { + .is-invisible-mobile { + visibility: hidden !important; } } + +@media screen and (min-width: 769px), print { + .is-invisible-tablet { + visibility: hidden !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-invisible-tablet-only { + visibility: hidden !important; } } + +@media screen and (max-width: 1055px) { + .is-invisible-touch { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) { + .is-invisible-desktop { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-invisible-desktop-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) { + .is-invisible-widescreen { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-invisible-widescreen-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1408px) { + .is-invisible-fullhd { + visibility: hidden !important; } } + +.is-marginless { + margin: 0 !important; } + +.is-paddingless { + padding: 0 !important; } + +.is-radiusless { + border-radius: 0 !important; } + +.is-shadowless { + box-shadow: none !important; } + +.is-relative { + position: relative !important; } + +html.theme--documenter-dark { + /* This file contain the overall layout. + * + * The main container is
        that is identified by id #documenter. + */ + /*! + 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 +*/ + /* Comment */ + /* Red */ + /* Orange */ + /* Yellow */ + /* Green */ + /* Blue */ + /* Purple */ } + html.theme--documenter-dark html { + background-color: #1f2424; + font-size: 16px; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + html.theme--documenter-dark article, + html.theme--documenter-dark aside, + html.theme--documenter-dark figure, + html.theme--documenter-dark footer, + html.theme--documenter-dark header, + html.theme--documenter-dark hgroup, + html.theme--documenter-dark section { + display: block; } + html.theme--documenter-dark body, + html.theme--documenter-dark button, + html.theme--documenter-dark input, + html.theme--documenter-dark select, + html.theme--documenter-dark textarea { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; } + html.theme--documenter-dark code, + html.theme--documenter-dark pre { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; } + html.theme--documenter-dark body { + color: #fff; + font-size: 1em; + font-weight: 400; + line-height: 1.5; } + html.theme--documenter-dark a { + color: #1abc9c; + cursor: pointer; + text-decoration: none; } + html.theme--documenter-dark a strong { + color: currentColor; } + html.theme--documenter-dark a:hover { + color: #1dd2af; } + html.theme--documenter-dark code { + background-color: rgba(255, 255, 255, 0.05); + color: #ececec; + font-size: 0.875em; + font-weight: normal; + padding: 0.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: 0.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: 0.875em; + overflow-x: auto; + padding: 1.25rem 1.5rem; + white-space: pre; + word-wrap: normal; } + html.theme--documenter-dark pre code { + background-color: transparent; + color: currentColor; + font-size: 1em; + padding: 0; } + html.theme--documenter-dark table td, + html.theme--documenter-dark table th { + vertical-align: top; } + html.theme--documenter-dark table td:not([align]), + html.theme--documenter-dark table th:not([align]) { + text-align: left; } + html.theme--documenter-dark table th { + color: #f2f2f2; } + html.theme--documenter-dark .box { + background-color: #343c3d; + border-radius: 8px; + box-shadow: none; + color: #fff; + display: block; + padding: 1.25rem; } + html.theme--documenter-dark a.box:hover, html.theme--documenter-dark a.box:focus { + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #1abc9c; } + html.theme--documenter-dark a.box:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #1abc9c; } + html.theme--documenter-dark .button { + background-color: #282f2f; + border-color: #4c5759; + border-width: 1px; + color: #375a7f; + cursor: pointer; + justify-content: center; + padding-bottom: calc(0.375em - 1px); + padding-left: 0.75em; + padding-right: 0.75em; + padding-top: calc(0.375em - 1px); + text-align: center; + white-space: nowrap; } + html.theme--documenter-dark .button strong { + color: inherit; } + html.theme--documenter-dark .button .icon, html.theme--documenter-dark .button .icon.is-small, html.theme--documenter-dark .button #documenter .docs-sidebar form.docs-search > input.icon, html.theme--documenter-dark #documenter .docs-sidebar .button form.docs-search > input.icon, html.theme--documenter-dark .button .icon.is-medium, html.theme--documenter-dark .button .icon.is-large { + height: 1.5em; + width: 1.5em; } + html.theme--documenter-dark .button .icon:first-child:not(:last-child) { + margin-left: calc(-0.375em - 1px); + margin-right: 0.1875em; } + html.theme--documenter-dark .button .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: calc(-0.375em - 1px); } + html.theme--documenter-dark .button .icon:first-child:last-child { + margin-left: calc(-0.375em - 1px); + margin-right: calc(-0.375em - 1px); } + html.theme--documenter-dark .button:hover, html.theme--documenter-dark .button.is-hovered { + border-color: #8c9b9d; + color: #f2f2f2; } + html.theme--documenter-dark .button:focus, html.theme--documenter-dark .button.is-focused { + border-color: #8c9b9d; + color: #17a689; } + html.theme--documenter-dark .button:focus:not(:active), html.theme--documenter-dark .button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .button:active, html.theme--documenter-dark .button.is-active { + border-color: #343c3d; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text { + background-color: transparent; + border-color: transparent; + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .button.is-text:hover, html.theme--documenter-dark .button.is-text.is-hovered, html.theme--documenter-dark .button.is-text:focus, html.theme--documenter-dark .button.is-text.is-focused { + background-color: #282f2f; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text:active, html.theme--documenter-dark .button.is-text.is-active { + background-color: #1d2122; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-text { + background-color: transparent; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-white { + background-color: white; + 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: white; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-white.is-inverted { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .button.is-white.is-inverted:hover, html.theme--documenter-dark .button.is-white.is-inverted.is-hovered { + background-color: black; } + 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: white; } + 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: white; + color: white; } + 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: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white.is-outlined.is-loading::after { + border-color: transparent transparent white white !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: white; + box-shadow: none; + color: white; } + 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: white; } + 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 white white !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: white; } + html.theme--documenter-dark .button.is-black:hover, html.theme--documenter-dark .button.is-black.is-hovered { + background-color: #040404; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black:focus, html.theme--documenter-dark .button.is-black.is-focused { + border-color: transparent; + color: white; } + 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: black; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-black.is-inverted { + background-color: white; + 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: white; + border-color: transparent; + box-shadow: none; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-loading::after { + border-color: transparent transparent white white !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: white; } + 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 white white !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: white; + color: white; } + 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: white; + 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: white; + box-shadow: none; + color: white; } + html.theme--documenter-dark .button.is-light { + background-color: #ecf0f1; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:hover, html.theme--documenter-dark .button.is-light.is-hovered { + background-color: #e5eaec; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:focus, html.theme--documenter-dark .button.is-light.is-focused { + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:focus:not(:active), html.theme--documenter-dark .button.is-light.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } + html.theme--documenter-dark .button.is-light:active, html.theme--documenter-dark .button.is-light.is-active { + background-color: #dde4e6; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light { + background-color: #ecf0f1; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-light.is-inverted { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-hovered { + background-color: #1d2122; } + html.theme--documenter-dark .button.is-light.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted { + background-color: #282f2f; + border-color: transparent; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-loading::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-light.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-outlined.is-focused { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-light.is-outlined.is-loading::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-light.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-light.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #282f2f; + color: #282f2f; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-focused { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #282f2f; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark, html.theme--documenter-dark .content kbd.button { + background-color: #282f2f; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:hover, html.theme--documenter-dark .content kbd.button:hover, html.theme--documenter-dark .button.is-dark.is-hovered, html.theme--documenter-dark .content kbd.button.is-hovered { + background-color: #232829; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:focus, html.theme--documenter-dark .content kbd.button:focus, html.theme--documenter-dark .button.is-dark.is-focused, html.theme--documenter-dark .content kbd.button.is-focused { + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:focus:not(:active), html.theme--documenter-dark .content kbd.button:focus:not(:active), html.theme--documenter-dark .button.is-dark.is-focused:not(:active), html.theme--documenter-dark .content kbd.button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } + html.theme--documenter-dark .button.is-dark:active, html.theme--documenter-dark .content kbd.button:active, html.theme--documenter-dark .button.is-dark.is-active, html.theme--documenter-dark .content kbd.button.is-active { + background-color: #1d2122; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark[disabled], html.theme--documenter-dark .content kbd.button[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark, fieldset[disabled] html.theme--documenter-dark .content kbd.button { + background-color: #282f2f; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-dark.is-inverted, html.theme--documenter-dark .content kbd.button.is-inverted { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted:hover, html.theme--documenter-dark .content kbd.button.is-inverted:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-hovered { + background-color: #dde4e6; } + html.theme--documenter-dark .button.is-dark.is-inverted[disabled], html.theme--documenter-dark .content kbd.button.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted { + background-color: #ecf0f1; + border-color: transparent; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-loading::after, html.theme--documenter-dark .content kbd.button.is-loading::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-dark.is-outlined, html.theme--documenter-dark .content kbd.button.is-outlined { + background-color: transparent; + border-color: #282f2f; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-outlined.is-focused { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark.is-outlined.is-loading::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-dark.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-outlined, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-outlined { + background-color: transparent; + border-color: #282f2f; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-focused { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-primary, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink { + background-color: #375a7f; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:hover, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-hovered.docs-sourcelink { + background-color: #335476; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:focus, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:focus:not(:active), html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus:not(:active), html.theme--documenter-dark .button.is-primary.is-focused:not(:active), html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) { + box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } + html.theme--documenter-dark .button.is-primary:active, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:active, html.theme--documenter-dark .button.is-primary.is-active, html.theme--documenter-dark .docstring > section > a.button.is-active.docs-sourcelink { + background-color: #2f4d6d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary[disabled], html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink { + background-color: #375a7f; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-primary.is-inverted, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-primary.is-inverted[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-loading.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-primary.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #375a7f; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink { + background-color: #375a7f; + border-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .button.is-primary.is-outlined.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after { + border-color: transparent transparent #375a7f #375a7f !important; } + html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-primary.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-outlined, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #375a7f; + box-shadow: none; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink { + background-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #375a7f #375a7f !important; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-link { + background-color: #1abc9c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:hover, html.theme--documenter-dark .button.is-link.is-hovered { + background-color: #18b193; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:focus, html.theme--documenter-dark .button.is-link.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:focus:not(:active), html.theme--documenter-dark .button.is-link.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .button.is-link:active, html.theme--documenter-dark .button.is-link.is-active { + background-color: #17a689; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link { + background-color: #1abc9c; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-link.is-inverted { + background-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-link.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-link.is-outlined { + background-color: transparent; + border-color: #1abc9c; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-outlined.is-focused { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .button.is-link.is-outlined.is-loading::after { + border-color: transparent transparent #1abc9c #1abc9c !important; } + html.theme--documenter-dark .button.is-link.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-link.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-outlined { + background-color: transparent; + border-color: #1abc9c; + box-shadow: none; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #1abc9c #1abc9c !important; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-info { + background-color: #024c7d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:hover, html.theme--documenter-dark .button.is-info.is-hovered { + background-color: #024470; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:focus, html.theme--documenter-dark .button.is-info.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:focus:not(:active), html.theme--documenter-dark .button.is-info.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } + html.theme--documenter-dark .button.is-info:active, html.theme--documenter-dark .button.is-info.is-active { + background-color: #023d64; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info { + background-color: #024c7d; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-info.is-inverted { + background-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-info.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-info.is-outlined { + background-color: transparent; + border-color: #024c7d; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-outlined.is-focused { + background-color: #024c7d; + border-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .button.is-info.is-outlined.is-loading::after { + border-color: transparent transparent #024c7d #024c7d !important; } + html.theme--documenter-dark .button.is-info.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-info.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-outlined { + background-color: transparent; + border-color: #024c7d; + box-shadow: none; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #024c7d #024c7d !important; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-success { + background-color: #008438; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:hover, html.theme--documenter-dark .button.is-success.is-hovered { + background-color: #007733; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:focus, html.theme--documenter-dark .button.is-success.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:focus:not(:active), html.theme--documenter-dark .button.is-success.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } + html.theme--documenter-dark .button.is-success:active, html.theme--documenter-dark .button.is-success.is-active { + background-color: #006b2d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success { + background-color: #008438; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-success.is-inverted { + background-color: #fff; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-success.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-success.is-outlined { + background-color: transparent; + border-color: #008438; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-outlined.is-focused { + background-color: #008438; + border-color: #008438; + color: #fff; } + html.theme--documenter-dark .button.is-success.is-outlined.is-loading::after { + border-color: transparent transparent #008438 #008438 !important; } + html.theme--documenter-dark .button.is-success.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-success.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-outlined { + background-color: transparent; + border-color: #008438; + box-shadow: none; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #008438 #008438 !important; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-warning { + background-color: #ad8100; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:hover, html.theme--documenter-dark .button.is-warning.is-hovered { + background-color: #a07700; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:focus, html.theme--documenter-dark .button.is-warning.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:focus:not(:active), html.theme--documenter-dark .button.is-warning.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } + html.theme--documenter-dark .button.is-warning:active, html.theme--documenter-dark .button.is-warning.is-active { + background-color: #946e00; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning { + background-color: #ad8100; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-warning.is-inverted { + background-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-warning.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ad8100; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-outlined.is-focused { + background-color: #ad8100; + border-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .button.is-warning.is-outlined.is-loading::after { + border-color: transparent transparent #ad8100 #ad8100 !important; } + html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-warning.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ad8100; + box-shadow: none; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ad8100 #ad8100 !important; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-danger { + background-color: #9e1b0d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:hover, html.theme--documenter-dark .button.is-danger.is-hovered { + background-color: #92190c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:focus, html.theme--documenter-dark .button.is-danger.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:focus:not(:active), html.theme--documenter-dark .button.is-danger.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } + html.theme--documenter-dark .button.is-danger:active, html.theme--documenter-dark .button.is-danger.is-active { + background-color: #86170b; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger { + background-color: #9e1b0d; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-danger.is-inverted { + background-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-danger.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-danger.is-outlined { + background-color: transparent; + border-color: #9e1b0d; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-outlined.is-focused { + background-color: #9e1b0d; + border-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .button.is-danger.is-outlined.is-loading::after { + border-color: transparent transparent #9e1b0d #9e1b0d !important; } + html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-danger.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-outlined { + background-color: transparent; + border-color: #9e1b0d; + box-shadow: none; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #9e1b0d #9e1b0d !important; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .button.is-normal { + font-size: 15px; } + html.theme--documenter-dark .button.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .button.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .button[disabled], fieldset[disabled] html.theme--documenter-dark .button { + background-color: #8c9b9d; + border-color: #dbdee0; + box-shadow: none; + opacity: 0.5; } + html.theme--documenter-dark .button.is-fullwidth { + display: flex; + width: 100%; } + html.theme--documenter-dark .button.is-loading { + color: transparent !important; + pointer-events: none; } + html.theme--documenter-dark .button.is-loading::after { + position: absolute; + left: calc(50% - (1em / 2)); + top: calc(50% - (1em / 2)); + position: absolute !important; } + html.theme--documenter-dark .button.is-static { + background-color: #282f2f; + border-color: #5e6d6f; + color: #dbdee0; + box-shadow: none; + pointer-events: none; } + html.theme--documenter-dark .button.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .buttons { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .buttons .button { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .buttons .button:not(:last-child):not(.is-fullwidth) { + margin-right: 0.5rem; } + html.theme--documenter-dark .buttons:last-child { + margin-bottom: -0.5rem; } + html.theme--documenter-dark .buttons:not(:last-child) { + margin-bottom: 1rem; } + html.theme--documenter-dark .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) { + font-size: 1.25rem; } + html.theme--documenter-dark .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) { + font-size: 1.5rem; } + html.theme--documenter-dark .buttons.has-addons .button:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .buttons.has-addons .button:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + margin-right: -1px; } + html.theme--documenter-dark .buttons.has-addons .button:last-child { + margin-right: 0; } + html.theme--documenter-dark .buttons.has-addons .button:hover, html.theme--documenter-dark .buttons.has-addons .button.is-hovered { + z-index: 2; } + html.theme--documenter-dark .buttons.has-addons .button:focus, html.theme--documenter-dark .buttons.has-addons .button.is-focused, html.theme--documenter-dark .buttons.has-addons .button:active, html.theme--documenter-dark .buttons.has-addons .button.is-active, html.theme--documenter-dark .buttons.has-addons .button.is-selected { + z-index: 3; } + html.theme--documenter-dark .buttons.has-addons .button:focus:hover, html.theme--documenter-dark .buttons.has-addons .button.is-focused:hover, html.theme--documenter-dark .buttons.has-addons .button:active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-selected:hover { + z-index: 4; } + html.theme--documenter-dark .buttons.has-addons .button.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .buttons.is-centered { + justify-content: center; } + html.theme--documenter-dark .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + html.theme--documenter-dark .buttons.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + html.theme--documenter-dark .container { + flex-grow: 1; + margin: 0 auto; + position: relative; + width: auto; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .container { + max-width: 992px; } + html.theme--documenter-dark .container.is-fluid { + margin-left: 32px; + margin-right: 32px; + max-width: none; } } + @media screen and (max-width: 1215px) { + html.theme--documenter-dark .container.is-widescreen { + max-width: 1152px; } } + @media screen and (max-width: 1407px) { + html.theme--documenter-dark .container.is-fullhd { + max-width: 1344px; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .container { + max-width: 1152px; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .container { + max-width: 1344px; } } + html.theme--documenter-dark .content li + li { + margin-top: 0.25em; } + html.theme--documenter-dark .content p:not(:last-child), + html.theme--documenter-dark .content dl:not(:last-child), + html.theme--documenter-dark .content ol:not(:last-child), + html.theme--documenter-dark .content ul:not(:last-child), + html.theme--documenter-dark .content blockquote:not(:last-child), + html.theme--documenter-dark .content pre:not(:last-child), + html.theme--documenter-dark .content table:not(:last-child) { + margin-bottom: 1em; } + html.theme--documenter-dark .content h1, + html.theme--documenter-dark .content h2, + html.theme--documenter-dark .content h3, + html.theme--documenter-dark .content h4, + html.theme--documenter-dark .content h5, + html.theme--documenter-dark .content h6 { + color: #f2f2f2; + font-weight: 600; + line-height: 1.125; } + html.theme--documenter-dark .content h1 { + font-size: 2em; + margin-bottom: 0.5em; } + html.theme--documenter-dark .content h1:not(:first-child) { + margin-top: 1em; } + html.theme--documenter-dark .content h2 { + font-size: 1.75em; + margin-bottom: 0.5714em; } + html.theme--documenter-dark .content h2:not(:first-child) { + margin-top: 1.1428em; } + html.theme--documenter-dark .content h3 { + font-size: 1.5em; + margin-bottom: 0.6666em; } + html.theme--documenter-dark .content h3:not(:first-child) { + margin-top: 1.3333em; } + html.theme--documenter-dark .content h4 { + font-size: 1.25em; + margin-bottom: 0.8em; } + html.theme--documenter-dark .content h5 { + font-size: 1.125em; + margin-bottom: 0.8888em; } + html.theme--documenter-dark .content h6 { + font-size: 1em; + margin-bottom: 1em; } + html.theme--documenter-dark .content blockquote { + background-color: #282f2f; + border-left: 5px solid #5e6d6f; + padding: 1.25em 1.5em; } + html.theme--documenter-dark .content ol { + list-style-position: outside; + margin-left: 2em; + margin-top: 1em; } + html.theme--documenter-dark .content ol:not([type]) { + list-style-type: decimal; } + html.theme--documenter-dark .content ol.is-lower-alpha:not([type]) { + list-style-type: lower-alpha; } + html.theme--documenter-dark .content ol.is-lower-roman:not([type]) { + list-style-type: lower-roman; } + html.theme--documenter-dark .content ol.is-upper-alpha:not([type]) { + list-style-type: upper-alpha; } + html.theme--documenter-dark .content ol.is-upper-roman:not([type]) { + list-style-type: upper-roman; } + html.theme--documenter-dark .content ul { + list-style: disc outside; + margin-left: 2em; + margin-top: 1em; } + html.theme--documenter-dark .content ul ul { + list-style-type: circle; + margin-top: 0.5em; } + html.theme--documenter-dark .content ul ul ul { + list-style-type: square; } + html.theme--documenter-dark .content dd { + margin-left: 2em; } + html.theme--documenter-dark .content figure { + margin-left: 2em; + margin-right: 2em; + text-align: center; } + html.theme--documenter-dark .content figure:not(:first-child) { + margin-top: 2em; } + html.theme--documenter-dark .content figure:not(:last-child) { + margin-bottom: 2em; } + html.theme--documenter-dark .content figure img { + display: inline-block; } + html.theme--documenter-dark .content figure figcaption { + font-style: italic; } + html.theme--documenter-dark .content pre { + -webkit-overflow-scrolling: touch; + overflow-x: auto; + padding: 0; + white-space: pre; + word-wrap: normal; } + html.theme--documenter-dark .content sup, + html.theme--documenter-dark .content sub { + font-size: 75%; } + html.theme--documenter-dark .content table { + width: 100%; } + html.theme--documenter-dark .content table td, + html.theme--documenter-dark .content table th { + border: 1px solid #5e6d6f; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + html.theme--documenter-dark .content table th { + color: #f2f2f2; } + html.theme--documenter-dark .content table th:not([align]) { + text-align: left; } + html.theme--documenter-dark .content table thead td, + html.theme--documenter-dark .content table thead th { + border-width: 0 0 2px; + color: #f2f2f2; } + html.theme--documenter-dark .content table tfoot td, + html.theme--documenter-dark .content table tfoot th { + border-width: 2px 0 0; + color: #f2f2f2; } + html.theme--documenter-dark .content table tbody tr:last-child td, + html.theme--documenter-dark .content table tbody tr:last-child th { + border-bottom-width: 0; } + html.theme--documenter-dark .content .tabs li + li { + margin-top: 0; } + html.theme--documenter-dark .content.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.content { + font-size: 0.85em; } + html.theme--documenter-dark .content.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .content.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .icon { + align-items: center; + display: inline-flex; + justify-content: center; + height: 1.5rem; + width: 1.5rem; } + html.theme--documenter-dark .icon.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.icon { + height: 1rem; + width: 1rem; } + html.theme--documenter-dark .icon.is-medium { + height: 2rem; + width: 2rem; } + html.theme--documenter-dark .icon.is-large { + height: 3rem; + width: 3rem; } + html.theme--documenter-dark .image, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img { + display: block; + position: relative; } + html.theme--documenter-dark .image img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img { + display: block; + height: auto; + width: 100%; } + html.theme--documenter-dark .image img.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img.is-rounded { + border-radius: 290486px; } + html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img, + html.theme--documenter-dark .image.is-square .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img, + html.theme--documenter-dark .image.is-1by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img, + html.theme--documenter-dark .image.is-5by4 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img, + html.theme--documenter-dark .image.is-4by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img, + html.theme--documenter-dark .image.is-3by2 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img, + html.theme--documenter-dark .image.is-5by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img, + html.theme--documenter-dark .image.is-16by9 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img, + html.theme--documenter-dark .image.is-2by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img, + html.theme--documenter-dark .image.is-3by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img, + html.theme--documenter-dark .image.is-4by5 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img, + html.theme--documenter-dark .image.is-3by4 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img, + html.theme--documenter-dark .image.is-2by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img, + html.theme--documenter-dark .image.is-3by5 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img, + html.theme--documenter-dark .image.is-9by16 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img, + html.theme--documenter-dark .image.is-1by2 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img, + html.theme--documenter-dark .image.is-1by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio { + height: 100%; + width: 100%; } + html.theme--documenter-dark .image.is-square, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square, html.theme--documenter-dark .image.is-1by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 { + padding-top: 100%; } + html.theme--documenter-dark .image.is-5by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 { + padding-top: 80%; } + html.theme--documenter-dark .image.is-4by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 { + padding-top: 75%; } + html.theme--documenter-dark .image.is-3by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 { + padding-top: 66.6666%; } + html.theme--documenter-dark .image.is-5by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 { + padding-top: 60%; } + html.theme--documenter-dark .image.is-16by9, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 { + padding-top: 56.25%; } + html.theme--documenter-dark .image.is-2by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 { + padding-top: 50%; } + html.theme--documenter-dark .image.is-3by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 { + padding-top: 33.3333%; } + html.theme--documenter-dark .image.is-4by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 { + padding-top: 125%; } + html.theme--documenter-dark .image.is-3by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 { + padding-top: 133.3333%; } + html.theme--documenter-dark .image.is-2by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 { + padding-top: 150%; } + html.theme--documenter-dark .image.is-3by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 { + padding-top: 166.6666%; } + html.theme--documenter-dark .image.is-9by16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 { + padding-top: 177.7777%; } + html.theme--documenter-dark .image.is-1by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 { + padding-top: 200%; } + html.theme--documenter-dark .image.is-1by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 { + padding-top: 300%; } + html.theme--documenter-dark .image.is-16x16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16x16 { + height: 16px; + width: 16px; } + html.theme--documenter-dark .image.is-24x24, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-24x24 { + height: 24px; + width: 24px; } + html.theme--documenter-dark .image.is-32x32, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-32x32 { + height: 32px; + width: 32px; } + html.theme--documenter-dark .image.is-48x48, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-48x48 { + height: 48px; + width: 48px; } + html.theme--documenter-dark .image.is-64x64, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-64x64 { + height: 64px; + width: 64px; } + html.theme--documenter-dark .image.is-96x96, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-96x96 { + height: 96px; + width: 96px; } + html.theme--documenter-dark .image.is-128x128, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-128x128 { + height: 128px; + width: 128px; } + html.theme--documenter-dark .notification { + background-color: #282f2f; + border-radius: 0.4em; + padding: 1.25rem 2.5rem 1.25rem 1.5rem; + position: relative; } + html.theme--documenter-dark .notification a:not(.button):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + html.theme--documenter-dark .notification strong { + color: currentColor; } + html.theme--documenter-dark .notification code, + html.theme--documenter-dark .notification pre { + background: white; } + html.theme--documenter-dark .notification pre code { + background: transparent; } + html.theme--documenter-dark .notification > .delete { + position: absolute; + right: 0.5rem; + top: 0.5rem; } + html.theme--documenter-dark .notification .title, + html.theme--documenter-dark .notification .subtitle, + html.theme--documenter-dark .notification .content { + color: currentColor; } + html.theme--documenter-dark .notification.is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .notification.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .notification.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .notification.is-dark, html.theme--documenter-dark .content kbd.notification { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .notification.is-primary, html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .notification.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .notification.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .notification.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .notification.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .notification.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .progress { + -moz-appearance: none; + -webkit-appearance: none; + border: none; + border-radius: 290486px; + display: block; + height: 15px; + overflow: hidden; + padding: 0; + width: 100%; } + html.theme--documenter-dark .progress::-webkit-progress-bar { + background-color: #5e6d6f; } + html.theme--documenter-dark .progress::-webkit-progress-value { + background-color: #dbdee0; } + html.theme--documenter-dark .progress::-moz-progress-bar { + background-color: #dbdee0; } + html.theme--documenter-dark .progress::-ms-fill { + background-color: #dbdee0; + border: none; } + html.theme--documenter-dark .progress.is-white::-webkit-progress-value { + background-color: white; } + html.theme--documenter-dark .progress.is-white::-moz-progress-bar { + background-color: white; } + html.theme--documenter-dark .progress.is-white::-ms-fill { + background-color: white; } + html.theme--documenter-dark .progress.is-white:indeterminate { + background-image: linear-gradient(to right, white 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-black::-webkit-progress-value { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black::-moz-progress-bar { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black::-ms-fill { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black:indeterminate { + background-image: linear-gradient(to right, #0a0a0a 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-light::-webkit-progress-value { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light::-moz-progress-bar { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light::-ms-fill { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light:indeterminate { + background-image: linear-gradient(to right, #ecf0f1 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-dark::-webkit-progress-value, html.theme--documenter-dark .content kbd.progress::-webkit-progress-value { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark::-moz-progress-bar, html.theme--documenter-dark .content kbd.progress::-moz-progress-bar { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark::-ms-fill, html.theme--documenter-dark .content kbd.progress::-ms-fill { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark:indeterminate, html.theme--documenter-dark .content kbd.progress:indeterminate { + background-image: linear-gradient(to right, #282f2f 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-primary::-webkit-progress-value, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary::-moz-progress-bar, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary::-ms-fill, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-ms-fill { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary:indeterminate, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink:indeterminate { + background-image: linear-gradient(to right, #375a7f 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-link::-webkit-progress-value { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link::-moz-progress-bar { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link::-ms-fill { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link:indeterminate { + background-image: linear-gradient(to right, #1abc9c 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-info::-webkit-progress-value { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info::-moz-progress-bar { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info::-ms-fill { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info:indeterminate { + background-image: linear-gradient(to right, #024c7d 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-success::-webkit-progress-value { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success::-moz-progress-bar { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success::-ms-fill { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success:indeterminate { + background-image: linear-gradient(to right, #008438 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-warning::-webkit-progress-value { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning::-moz-progress-bar { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning::-ms-fill { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning:indeterminate { + background-image: linear-gradient(to right, #ad8100 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-danger::-webkit-progress-value { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger::-moz-progress-bar { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger::-ms-fill { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger:indeterminate { + background-image: linear-gradient(to right, #9e1b0d 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress:indeterminate { + animation-duration: 1.5s; + animation-iteration-count: infinite; + animation-name: moveIndeterminate; + animation-timing-function: linear; + background-color: #5e6d6f; + background-image: linear-gradient(to right, #fff 30%, #5e6d6f 30%); + background-position: top left; + background-repeat: no-repeat; + background-size: 150% 150%; } + html.theme--documenter-dark .progress:indeterminate::-webkit-progress-bar { + background-color: transparent; } + html.theme--documenter-dark .progress:indeterminate::-moz-progress-bar { + background-color: transparent; } + html.theme--documenter-dark .progress.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.progress { + height: 0.85em; } + html.theme--documenter-dark .progress.is-medium { + height: 1.25rem; } + html.theme--documenter-dark .progress.is-large { + height: 1.5rem; } + +@keyframes moveIndeterminate { + from { + background-position: 200% 0; } + to { + background-position: -200% 0; } } + html.theme--documenter-dark .table { + background-color: #343c3d; + color: #fff; } + html.theme--documenter-dark .table td, + html.theme--documenter-dark .table th { + border: 1px solid #5e6d6f; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + html.theme--documenter-dark .table td.is-white, + html.theme--documenter-dark .table th.is-white { + background-color: white; + border-color: white; + 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: white; } + html.theme--documenter-dark .table td.is-light, + html.theme--documenter-dark .table th.is-light { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .table td.is-dark, + html.theme--documenter-dark .table th.is-dark { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .table td.is-primary, + html.theme--documenter-dark .table th.is-primary { + background-color: #375a7f; + border-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table td.is-link, + html.theme--documenter-dark .table th.is-link { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .table td.is-info, + html.theme--documenter-dark .table th.is-info { + background-color: #024c7d; + border-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .table td.is-success, + html.theme--documenter-dark .table th.is-success { + background-color: #008438; + border-color: #008438; + color: #fff; } + html.theme--documenter-dark .table td.is-warning, + html.theme--documenter-dark .table th.is-warning { + background-color: #ad8100; + border-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .table td.is-danger, + html.theme--documenter-dark .table th.is-danger { + background-color: #9e1b0d; + border-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .table td.is-narrow, + html.theme--documenter-dark .table th.is-narrow { + white-space: nowrap; + width: 1%; } + html.theme--documenter-dark .table td.is-selected, + html.theme--documenter-dark .table th.is-selected { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table td.is-selected a, + html.theme--documenter-dark .table td.is-selected strong, + html.theme--documenter-dark .table th.is-selected a, + html.theme--documenter-dark .table th.is-selected strong { + color: currentColor; } + html.theme--documenter-dark .table th { + color: #f2f2f2; } + html.theme--documenter-dark .table th:not([align]) { + text-align: left; } + html.theme--documenter-dark .table tr.is-selected { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table tr.is-selected a, + html.theme--documenter-dark .table tr.is-selected strong { + color: currentColor; } + html.theme--documenter-dark .table tr.is-selected td, + html.theme--documenter-dark .table tr.is-selected th { + border-color: #fff; + color: currentColor; } + html.theme--documenter-dark .table thead { + background-color: transparent; } + 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: transparent; } + 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: transparent; } + html.theme--documenter-dark .table tbody tr:last-child td, + html.theme--documenter-dark .table tbody tr:last-child th { + border-bottom-width: 0; } + html.theme--documenter-dark .table.is-bordered td, + html.theme--documenter-dark .table.is-bordered th { + border-width: 1px; } + html.theme--documenter-dark .table.is-bordered tr:last-child td, + html.theme--documenter-dark .table.is-bordered tr:last-child th { + border-bottom-width: 1px; } + html.theme--documenter-dark .table.is-fullwidth { + width: 100%; } + html.theme--documenter-dark .table.is-hoverable tbody tr:not(.is-selected):hover { + background-color: #282f2f; } + html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover { + background-color: #282f2f; } + html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) { + background-color: #2d3435; } + html.theme--documenter-dark .table.is-narrow td, + html.theme--documenter-dark .table.is-narrow th { + padding: 0.25em 0.5em; } + html.theme--documenter-dark .table.is-striped tbody tr:not(.is-selected):nth-child(even) { + background-color: #282f2f; } + html.theme--documenter-dark .table-container { + -webkit-overflow-scrolling: touch; + overflow: auto; + overflow-y: hidden; + max-width: 100%; } + html.theme--documenter-dark .tags { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .tags .tag, html.theme--documenter-dark .tags .content kbd, html.theme--documenter-dark .content .tags kbd, html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .tags .tag:not(:last-child), html.theme--documenter-dark .tags .content kbd:not(:last-child), html.theme--documenter-dark .content .tags kbd:not(:last-child), html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0.5rem; } + html.theme--documenter-dark .tags:last-child { + margin-bottom: -0.5rem; } + html.theme--documenter-dark .tags:not(:last-child) { + margin-bottom: 1rem; } + html.theme--documenter-dark .tags.are-medium .tag:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .content kbd:not(.is-normal):not(.is-large), html.theme--documenter-dark .content .tags.are-medium kbd:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large) { + font-size: 15px; } + html.theme--documenter-dark .tags.are-large .tag:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .content kbd:not(.is-normal):not(.is-medium), html.theme--documenter-dark .content .tags.are-large kbd:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium) { + font-size: 1.25rem; } + html.theme--documenter-dark .tags.is-centered { + justify-content: center; } + html.theme--documenter-dark .tags.is-centered .tag, html.theme--documenter-dark .tags.is-centered .content kbd, html.theme--documenter-dark .content .tags.is-centered kbd, html.theme--documenter-dark .tags.is-centered .docstring > section > a.docs-sourcelink { + margin-right: 0.25rem; + margin-left: 0.25rem; } + html.theme--documenter-dark .tags.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .tags.is-right .tag:not(:first-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:first-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0.5rem; } + html.theme--documenter-dark .tags.is-right .tag:not(:last-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:last-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0; } + html.theme--documenter-dark .tags.has-addons .tag, html.theme--documenter-dark .tags.has-addons .content kbd, html.theme--documenter-dark .content .tags.has-addons kbd, html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink { + margin-right: 0; } + html.theme--documenter-dark .tags.has-addons .tag:not(:first-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:first-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0; + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .tags.has-addons .tag:not(:last-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:last-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .tag:not(body), html.theme--documenter-dark .content kbd:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) { + align-items: center; + background-color: #282f2f; + border-radius: 0.4em; + color: #fff; + display: inline-flex; + font-size: 0.85em; + height: 2em; + justify-content: center; + line-height: 1.5; + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + html.theme--documenter-dark .tag:not(body) .delete, html.theme--documenter-dark .content kbd:not(body) .delete, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .delete { + margin-left: 0.25rem; + margin-right: -0.375rem; } + html.theme--documenter-dark .tag.is-white:not(body), html.theme--documenter-dark .content kbd.is-white:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-white:not(body) { + background-color: white; + 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: white; } + html.theme--documenter-dark .tag.is-light:not(body), html.theme--documenter-dark .content kbd.is-light:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-light:not(body) { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .tag.is-dark:not(body), html.theme--documenter-dark .content kbd:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-dark:not(body), html.theme--documenter-dark .content .docstring > section > kbd:not(body) { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .tag.is-primary:not(body), html.theme--documenter-dark .content kbd.is-primary:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .tag.is-link:not(body), html.theme--documenter-dark .content kbd.is-link:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-link:not(body) { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .tag.is-info:not(body), html.theme--documenter-dark .content kbd.is-info:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-info:not(body) { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .tag.is-success:not(body), html.theme--documenter-dark .content kbd.is-success:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-success:not(body) { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .tag.is-warning:not(body), html.theme--documenter-dark .content kbd.is-warning:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-warning:not(body) { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .tag.is-danger:not(body), html.theme--documenter-dark .content kbd.is-danger:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-danger:not(body) { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .tag.is-normal:not(body), html.theme--documenter-dark .content kbd.is-normal:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-normal:not(body) { + font-size: 0.85em; } + html.theme--documenter-dark .tag.is-medium:not(body), html.theme--documenter-dark .content kbd.is-medium:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-medium:not(body) { + font-size: 15px; } + html.theme--documenter-dark .tag.is-large:not(body), html.theme--documenter-dark .content kbd.is-large:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-large:not(body) { + font-size: 1.25rem; } + html.theme--documenter-dark .tag:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .content kbd:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child) { + margin-left: -0.375em; + margin-right: 0.1875em; } + html.theme--documenter-dark .tag:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .content kbd:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: -0.375em; } + html.theme--documenter-dark .tag:not(body) .icon:first-child:last-child, html.theme--documenter-dark .content kbd:not(body) .icon:first-child:last-child, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child { + margin-left: -0.375em; + margin-right: -0.375em; } + html.theme--documenter-dark .tag.is-delete:not(body), html.theme--documenter-dark .content kbd.is-delete:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body) { + margin-left: 1px; + padding: 0; + position: relative; + width: 2em; } + html.theme--documenter-dark .tag.is-delete:not(body)::before, html.theme--documenter-dark .content kbd.is-delete:not(body)::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::before, html.theme--documenter-dark .tag.is-delete:not(body)::after, html.theme--documenter-dark .content kbd.is-delete:not(body)::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + background-color: currentColor; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + html.theme--documenter-dark .tag.is-delete:not(body)::before, html.theme--documenter-dark .content kbd.is-delete:not(body)::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::before { + height: 1px; + width: 50%; } + html.theme--documenter-dark .tag.is-delete:not(body)::after, html.theme--documenter-dark .content kbd.is-delete:not(body)::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + height: 50%; + width: 1px; } + html.theme--documenter-dark .tag.is-delete:not(body):hover, html.theme--documenter-dark .content kbd.is-delete:not(body):hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):hover, html.theme--documenter-dark .tag.is-delete:not(body):focus, html.theme--documenter-dark .content kbd.is-delete:not(body):focus, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):focus { + background-color: #1d2122; } + html.theme--documenter-dark .tag.is-delete:not(body):active, html.theme--documenter-dark .content kbd.is-delete:not(body):active, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):active { + background-color: #111414; } + html.theme--documenter-dark .tag.is-rounded:not(body), html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:not(body), html.theme--documenter-dark .content kbd.is-rounded:not(body), html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-rounded:not(body) { + border-radius: 290486px; } + html.theme--documenter-dark a.tag:hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:hover { + text-decoration: underline; } + html.theme--documenter-dark .title, + html.theme--documenter-dark .subtitle { + word-break: break-word; } + html.theme--documenter-dark .title em, + html.theme--documenter-dark .title span, + html.theme--documenter-dark .subtitle em, + html.theme--documenter-dark .subtitle span { + font-weight: inherit; } + html.theme--documenter-dark .title sub, + html.theme--documenter-dark .subtitle sub { + font-size: 0.75em; } + html.theme--documenter-dark .title sup, + html.theme--documenter-dark .subtitle sup { + font-size: 0.75em; } + html.theme--documenter-dark .title .tag, html.theme--documenter-dark .title .content kbd, html.theme--documenter-dark .content .title kbd, html.theme--documenter-dark .title .docstring > section > a.docs-sourcelink, + html.theme--documenter-dark .subtitle .tag, + html.theme--documenter-dark .subtitle .content kbd, + html.theme--documenter-dark .content .subtitle kbd, + html.theme--documenter-dark .subtitle .docstring > section > a.docs-sourcelink { + vertical-align: middle; } + html.theme--documenter-dark .title { + color: #fff; + font-size: 2rem; + font-weight: 500; + line-height: 1.125; } + html.theme--documenter-dark .title strong { + color: inherit; + font-weight: inherit; } + html.theme--documenter-dark .title + .highlight { + margin-top: -0.75rem; } + html.theme--documenter-dark .title:not(.is-spaced) + .subtitle { + margin-top: -1.25rem; } + html.theme--documenter-dark .title.is-1 { + font-size: 3rem; } + html.theme--documenter-dark .title.is-2 { + font-size: 2.5rem; } + html.theme--documenter-dark .title.is-3 { + font-size: 2rem; } + html.theme--documenter-dark .title.is-4 { + font-size: 1.5rem; } + html.theme--documenter-dark .title.is-5 { + font-size: 1.25rem; } + html.theme--documenter-dark .title.is-6 { + font-size: 15px; } + html.theme--documenter-dark .title.is-7 { + font-size: 0.85em; } + html.theme--documenter-dark .subtitle { + color: #8c9b9d; + font-size: 1.25rem; + font-weight: 400; + line-height: 1.25; } + html.theme--documenter-dark .subtitle strong { + color: #8c9b9d; + font-weight: 600; } + html.theme--documenter-dark .subtitle:not(.is-spaced) + .title { + margin-top: -1.25rem; } + html.theme--documenter-dark .subtitle.is-1 { + font-size: 3rem; } + html.theme--documenter-dark .subtitle.is-2 { + font-size: 2.5rem; } + html.theme--documenter-dark .subtitle.is-3 { + font-size: 2rem; } + html.theme--documenter-dark .subtitle.is-4 { + font-size: 1.5rem; } + html.theme--documenter-dark .subtitle.is-5 { + font-size: 1.25rem; } + html.theme--documenter-dark .subtitle.is-6 { + font-size: 15px; } + html.theme--documenter-dark .subtitle.is-7 { + font-size: 0.85em; } + html.theme--documenter-dark .heading { + display: block; + font-size: 11px; + letter-spacing: 1px; + margin-bottom: 5px; + text-transform: uppercase; } + html.theme--documenter-dark .highlight { + font-weight: 400; + max-width: 100%; + overflow: hidden; + padding: 0; } + html.theme--documenter-dark .highlight pre { + overflow: auto; + max-width: 100%; } + html.theme--documenter-dark .number { + align-items: center; + background-color: #282f2f; + border-radius: 290486px; + display: inline-flex; + font-size: 1.25rem; + height: 2em; + justify-content: center; + margin-right: 1.5rem; + min-width: 2.5em; + padding: 0.25rem 0.5rem; + text-align: center; + vertical-align: top; } + html.theme--documenter-dark .select select, html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + background-color: #1f2424; + border-color: #5e6d6f; + border-radius: 0.4em; + color: #dbdee0; } + html.theme--documenter-dark .select select::-moz-placeholder, html.theme--documenter-dark .textarea::-moz-placeholder, html.theme--documenter-dark .input::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select::-webkit-input-placeholder, html.theme--documenter-dark .textarea::-webkit-input-placeholder, html.theme--documenter-dark .input::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select:-moz-placeholder, html.theme--documenter-dark .textarea:-moz-placeholder, html.theme--documenter-dark .input:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select:-ms-input-placeholder, html.theme--documenter-dark .textarea:-ms-input-placeholder, html.theme--documenter-dark .input:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select:hover, html.theme--documenter-dark .textarea:hover, html.theme--documenter-dark .input:hover, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:hover, html.theme--documenter-dark .select select.is-hovered, html.theme--documenter-dark .is-hovered.textarea, html.theme--documenter-dark .is-hovered.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-hovered { + border-color: #8c9b9d; } + html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .select select.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + border-color: #1abc9c; + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .select select[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], fieldset[disabled] html.theme--documenter-dark .select select, fieldset[disabled] html.theme--documenter-dark .textarea, fieldset[disabled] html.theme--documenter-dark .input, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + background-color: #8c9b9d; + border-color: #282f2f; + box-shadow: none; + color: white; } + html.theme--documenter-dark .select select[disabled]::-moz-placeholder, html.theme--documenter-dark .textarea[disabled]::-moz-placeholder, html.theme--documenter-dark .input[disabled]::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .select select::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .input::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .select select[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .textarea[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .input[disabled]::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .select select::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .input::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .select select[disabled]:-moz-placeholder, html.theme--documenter-dark .textarea[disabled]:-moz-placeholder, html.theme--documenter-dark .input[disabled]:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .select select:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .input:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .select select[disabled]:-ms-input-placeholder, html.theme--documenter-dark .textarea[disabled]:-ms-input-placeholder, html.theme--documenter-dark .input[disabled]:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .select select:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .input:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1); + max-width: 100%; + width: 100%; } + html.theme--documenter-dark .textarea[readonly], html.theme--documenter-dark .input[readonly], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[readonly] { + box-shadow: none; } + html.theme--documenter-dark .is-white.textarea, html.theme--documenter-dark .is-white.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white { + border-color: white; } + 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: 0.85em; } + html.theme--documenter-dark .is-medium.textarea, html.theme--documenter-dark .is-medium.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .is-large.textarea, html.theme--documenter-dark .is-large.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .is-fullwidth.textarea, html.theme--documenter-dark .is-fullwidth.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-fullwidth { + display: block; + width: 100%; } + html.theme--documenter-dark .is-inline.textarea, html.theme--documenter-dark .is-inline.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-inline { + display: inline; + width: auto; } + html.theme--documenter-dark .input.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .input.is-static, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-static { + background-color: transparent; + border-color: transparent; + box-shadow: none; + padding-left: 0; + padding-right: 0; } + html.theme--documenter-dark .textarea { + display: block; + max-width: 100%; + min-width: 100%; + padding: 0.625em; + resize: vertical; } + html.theme--documenter-dark .textarea:not([rows]) { + max-height: 600px; + min-height: 120px; } + html.theme--documenter-dark .textarea[rows] { + height: initial; } + html.theme--documenter-dark .textarea.has-fixed-size { + resize: none; } + html.theme--documenter-dark .radio, html.theme--documenter-dark .checkbox { + cursor: pointer; + display: inline-block; + line-height: 1.25; + position: relative; } + html.theme--documenter-dark .radio input, html.theme--documenter-dark .checkbox input { + cursor: pointer; } + html.theme--documenter-dark .radio:hover, html.theme--documenter-dark .checkbox:hover { + color: #8c9b9d; } + html.theme--documenter-dark .radio[disabled], html.theme--documenter-dark .checkbox[disabled], fieldset[disabled] html.theme--documenter-dark .radio, fieldset[disabled] html.theme--documenter-dark .checkbox { + color: white; + cursor: not-allowed; } + html.theme--documenter-dark .radio + .radio { + margin-left: 0.5em; } + html.theme--documenter-dark .select { + display: inline-block; + max-width: 100%; + position: relative; + vertical-align: top; } + html.theme--documenter-dark .select:not(.is-multiple) { + height: 2.25em; } + html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after { + border-color: #1abc9c; + right: 1.125em; + z-index: 4; } + html.theme--documenter-dark .select.is-rounded select, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select select { + border-radius: 290486px; + padding-left: 1em; } + html.theme--documenter-dark .select select { + cursor: pointer; + display: block; + font-size: 1em; + max-width: 100%; + outline: none; } + html.theme--documenter-dark .select select::-ms-expand { + display: none; } + html.theme--documenter-dark .select select[disabled]:hover, fieldset[disabled] html.theme--documenter-dark .select select:hover { + border-color: #282f2f; } + html.theme--documenter-dark .select select:not([multiple]) { + padding-right: 2.5em; } + html.theme--documenter-dark .select select[multiple] { + height: auto; + padding: 0; } + html.theme--documenter-dark .select select[multiple] option { + padding: 0.5em 1em; } + html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading):hover::after { + border-color: #8c9b9d; } + html.theme--documenter-dark .select.is-white:not(:hover)::after { + border-color: white; } + html.theme--documenter-dark .select.is-white select { + border-color: white; } + 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: black; } + 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: 0.85em; } + html.theme--documenter-dark .select.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .select.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .select.is-disabled::after { + border-color: white; } + html.theme--documenter-dark .select.is-fullwidth { + width: 100%; } + html.theme--documenter-dark .select.is-fullwidth select { + width: 100%; } + html.theme--documenter-dark .select.is-loading::after { + margin-top: 0; + position: absolute; + right: 0.625em; + top: 0.625em; + transform: none; } + html.theme--documenter-dark .select.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.85em; } + html.theme--documenter-dark .select.is-loading.is-medium:after { + font-size: 1.25rem; } + html.theme--documenter-dark .select.is-loading.is-large:after { + font-size: 1.5rem; } + html.theme--documenter-dark .file { + align-items: stretch; + display: flex; + justify-content: flex-start; + position: relative; } + html.theme--documenter-dark .file.is-white .file-cta { + background-color: white; + 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: white; } + 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: white; } + 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: white; } + html.theme--documenter-dark .file.is-black:active .file-cta, html.theme--documenter-dark .file.is-black.is-active .file-cta { + background-color: black; + border-color: transparent; + color: white; } + html.theme--documenter-dark .file.is-light .file-cta { + background-color: #ecf0f1; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-light:hover .file-cta, html.theme--documenter-dark .file.is-light.is-hovered .file-cta { + background-color: #e5eaec; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-light:focus .file-cta, html.theme--documenter-dark .file.is-light.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(236, 240, 241, 0.25); + color: #282f2f; } + html.theme--documenter-dark .file.is-light:active .file-cta, html.theme--documenter-dark .file.is-light.is-active .file-cta { + background-color: #dde4e6; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-dark .file-cta, html.theme--documenter-dark .content kbd.file .file-cta { + background-color: #282f2f; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:hover .file-cta, html.theme--documenter-dark .content kbd.file:hover .file-cta, html.theme--documenter-dark .file.is-dark.is-hovered .file-cta, html.theme--documenter-dark .content kbd.file.is-hovered .file-cta { + background-color: #232829; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:focus .file-cta, html.theme--documenter-dark .content kbd.file:focus .file-cta, html.theme--documenter-dark .file.is-dark.is-focused .file-cta, html.theme--documenter-dark .content kbd.file.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(40, 47, 47, 0.25); + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:active .file-cta, html.theme--documenter-dark .content kbd.file:active .file-cta, html.theme--documenter-dark .file.is-dark.is-active .file-cta, html.theme--documenter-dark .content kbd.file.is-active .file-cta { + background-color: #1d2122; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-primary .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink .file-cta { + background-color: #375a7f; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-primary:hover .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:hover .file-cta, html.theme--documenter-dark .file.is-primary.is-hovered .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-hovered.docs-sourcelink .file-cta { + background-color: #335476; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-primary:focus .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:focus .file-cta, html.theme--documenter-dark .file.is-primary.is-focused .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-focused.docs-sourcelink .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(55, 90, 127, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-primary:active .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:active .file-cta, html.theme--documenter-dark .file.is-primary.is-active .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-active.docs-sourcelink .file-cta { + background-color: #2f4d6d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link .file-cta { + background-color: #1abc9c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link:hover .file-cta, html.theme--documenter-dark .file.is-link.is-hovered .file-cta { + background-color: #18b193; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link:focus .file-cta, html.theme--documenter-dark .file.is-link.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(26, 188, 156, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-link:active .file-cta, html.theme--documenter-dark .file.is-link.is-active .file-cta { + background-color: #17a689; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info .file-cta { + background-color: #024c7d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info:hover .file-cta, html.theme--documenter-dark .file.is-info.is-hovered .file-cta { + background-color: #024470; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info:focus .file-cta, html.theme--documenter-dark .file.is-info.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(2, 76, 125, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-info:active .file-cta, html.theme--documenter-dark .file.is-info.is-active .file-cta { + background-color: #023d64; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success .file-cta { + background-color: #008438; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success:hover .file-cta, html.theme--documenter-dark .file.is-success.is-hovered .file-cta { + background-color: #007733; + 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: 0.85em; } + html.theme--documenter-dark .file.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .file.is-medium .file-icon .fa { + font-size: 21px; } + html.theme--documenter-dark .file.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .file.is-large .file-icon .fa { + font-size: 28px; } + html.theme--documenter-dark .file.has-name .file-cta { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .file.has-name .file-name { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .file.has-name.is-empty .file-cta { + border-radius: 0.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: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .file.is-boxed.has-name .file-name { + border-radius: 0 0 0.4em 0.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 0.4em 0.4em 0; } + html.theme--documenter-dark .file.is-right .file-name { + border-radius: 0.4em 0 0 0.4em; + border-width: 1px 0 1px 1px; + order: -1; } + html.theme--documenter-dark .file-label { + align-items: stretch; + display: flex; + cursor: pointer; + justify-content: flex-start; + overflow: hidden; + position: relative; } + html.theme--documenter-dark .file-label:hover .file-cta { + background-color: #e5eaec; + color: #282f2f; } + html.theme--documenter-dark .file-label:hover .file-name { + border-color: #596668; } + html.theme--documenter-dark .file-label:active .file-cta { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .file-label:active .file-name { + border-color: #535f61; } + html.theme--documenter-dark .file-input { + height: 100%; + left: 0; + opacity: 0; + outline: none; + position: absolute; + top: 0; + width: 100%; } + html.theme--documenter-dark .file-cta, + html.theme--documenter-dark .file-name { + border-color: #5e6d6f; + border-radius: 0.4em; + font-size: 1em; + padding-left: 1em; + padding-right: 1em; + white-space: nowrap; } + html.theme--documenter-dark .file-cta { + background-color: #ecf0f1; + color: #343c3d; } + html.theme--documenter-dark .file-name { + border-color: #5e6d6f; + border-style: solid; + border-width: 1px 1px 1px 0; + display: block; + max-width: 16em; + overflow: hidden; + text-align: left; + text-overflow: ellipsis; } + html.theme--documenter-dark .file-icon { + align-items: center; + display: flex; + height: 1em; + justify-content: center; + margin-right: 0.5em; + width: 1em; } + html.theme--documenter-dark .file-icon .fa { + font-size: 14px; } + html.theme--documenter-dark .label { + color: #282f2f; + display: block; + font-size: 15px; + font-weight: 700; } + html.theme--documenter-dark .label:not(:last-child) { + margin-bottom: 0.5em; } + html.theme--documenter-dark .label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.label { + font-size: 0.85em; } + html.theme--documenter-dark .label.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .label.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .help { + display: block; + font-size: 0.85em; + margin-top: 0.25rem; } + html.theme--documenter-dark .help.is-white { + color: white; } + html.theme--documenter-dark .help.is-black { + color: #0a0a0a; } + html.theme--documenter-dark .help.is-light { + color: #ecf0f1; } + html.theme--documenter-dark .help.is-dark, html.theme--documenter-dark .content kbd.help { + color: #282f2f; } + html.theme--documenter-dark .help.is-primary, html.theme--documenter-dark .docstring > section > a.help.docs-sourcelink { + color: #375a7f; } + html.theme--documenter-dark .help.is-link { + color: #1abc9c; } + html.theme--documenter-dark .help.is-info { + color: #024c7d; } + html.theme--documenter-dark .help.is-success { + color: #008438; } + html.theme--documenter-dark .help.is-warning { + color: #ad8100; } + html.theme--documenter-dark .help.is-danger { + color: #9e1b0d; } + html.theme--documenter-dark .field:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .field.has-addons { + display: flex; + justify-content: flex-start; } + html.theme--documenter-dark .field.has-addons .control:not(:last-child) { + margin-right: -1px; } + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .button, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .input, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .select select { + border-radius: 0; } + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .button, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .input, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .select select { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .button, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .input, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .select select { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):hover, html.theme--documenter-dark .field.has-addons .control .button.is-hovered:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input.is-hovered:not([disabled]), + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-hovered:not([disabled]), + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-hovered:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select.is-hovered:not([disabled]) { + z-index: 2; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus, html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]), html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active, html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]), + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]), + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]), + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]), + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]) { + z-index: 3; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus:hover, html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]):hover, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active:hover, html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]):hover { + z-index: 4; } + html.theme--documenter-dark .field.has-addons .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .field.has-addons.has-addons-centered { + justify-content: center; } + html.theme--documenter-dark .field.has-addons.has-addons-right { + justify-content: flex-end; } + html.theme--documenter-dark .field.has-addons.has-addons-fullwidth .control { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .field.is-grouped { + display: flex; + justify-content: flex-start; } + html.theme--documenter-dark .field.is-grouped > .control { + flex-shrink: 0; } + html.theme--documenter-dark .field.is-grouped > .control:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + html.theme--documenter-dark .field.is-grouped > .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .field.is-grouped.is-grouped-centered { + justify-content: center; } + html.theme--documenter-dark .field.is-grouped.is-grouped-right { + justify-content: flex-end; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline { + flex-wrap: wrap; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:last-child, html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:not(:last-child) { + margin-bottom: 0; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field.is-horizontal { + display: flex; } } + html.theme--documenter-dark .field-label .label { + font-size: inherit; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .field-label { + margin-bottom: 0.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field-label { + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + margin-right: 1.5rem; + text-align: right; } + html.theme--documenter-dark .field-label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.field-label { + font-size: 0.85em; + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-normal { + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-medium { + font-size: 1.25rem; + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-large { + font-size: 1.5rem; + padding-top: 0.375em; } } + html.theme--documenter-dark .field-body .field .field { + margin-bottom: 0; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field-body { + display: flex; + flex-basis: 0; + flex-grow: 5; + flex-shrink: 1; } + html.theme--documenter-dark .field-body .field { + margin-bottom: 0; } + html.theme--documenter-dark .field-body > .field { + flex-shrink: 1; } + html.theme--documenter-dark .field-body > .field:not(.is-narrow) { + flex-grow: 1; } + html.theme--documenter-dark .field-body > .field:not(:last-child) { + margin-right: 0.75rem; } } + html.theme--documenter-dark .control { + box-sizing: border-box; + clear: both; + font-size: 15px; + position: relative; + text-align: left; } + html.theme--documenter-dark .control.has-icons-left .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select:focus ~ .icon { + color: #5e6d6f; } + html.theme--documenter-dark .control.has-icons-left .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-small ~ .icon { + font-size: 0.85em; } + html.theme--documenter-dark .control.has-icons-left .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-medium ~ .icon { + font-size: 1.25rem; } + html.theme--documenter-dark .control.has-icons-left .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-large ~ .icon { + font-size: 1.5rem; } + html.theme--documenter-dark .control.has-icons-left .icon, html.theme--documenter-dark .control.has-icons-right .icon { + color: #dbdee0; + height: 2.25em; + pointer-events: none; + position: absolute; + top: 0; + width: 2.25em; + z-index: 4; } + html.theme--documenter-dark .control.has-icons-left .input, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input, + html.theme--documenter-dark .control.has-icons-left .select select { + padding-left: 2.25em; } + html.theme--documenter-dark .control.has-icons-left .icon.is-left { + left: 0; } + html.theme--documenter-dark .control.has-icons-right .input, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input, + html.theme--documenter-dark .control.has-icons-right .select select { + padding-right: 2.25em; } + html.theme--documenter-dark .control.has-icons-right .icon.is-right { + right: 0; } + html.theme--documenter-dark .control.is-loading::after { + position: absolute !important; + right: 0.625em; + top: 0.625em; + z-index: 4; } + html.theme--documenter-dark .control.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.85em; } + html.theme--documenter-dark .control.is-loading.is-medium:after { + font-size: 1.25rem; } + html.theme--documenter-dark .control.is-loading.is-large:after { + font-size: 1.5rem; } + html.theme--documenter-dark .breadcrumb { + font-size: 15px; + white-space: nowrap; } + html.theme--documenter-dark .breadcrumb a { + align-items: center; + color: #1abc9c; + display: flex; + justify-content: center; + padding: 0 0.75em; } + html.theme--documenter-dark .breadcrumb a:hover { + color: #1dd2af; } + html.theme--documenter-dark .breadcrumb li { + align-items: center; + display: flex; } + html.theme--documenter-dark .breadcrumb li:first-child a { + padding-left: 0; } + html.theme--documenter-dark .breadcrumb li.is-active a { + color: #f2f2f2; + cursor: default; + pointer-events: none; } + html.theme--documenter-dark .breadcrumb li + li::before { + color: #8c9b9d; + content: "\0002f"; } + html.theme--documenter-dark .breadcrumb ul, + html.theme--documenter-dark .breadcrumb ol { + align-items: flex-start; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .breadcrumb .icon:first-child { + margin-right: 0.5em; } + html.theme--documenter-dark .breadcrumb .icon:last-child { + margin-left: 0.5em; } + html.theme--documenter-dark .breadcrumb.is-centered ol, + html.theme--documenter-dark .breadcrumb.is-centered ul { + justify-content: center; } + html.theme--documenter-dark .breadcrumb.is-right ol, + html.theme--documenter-dark .breadcrumb.is-right ul { + justify-content: flex-end; } + html.theme--documenter-dark .breadcrumb.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.breadcrumb { + font-size: 0.85em; } + html.theme--documenter-dark .breadcrumb.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .breadcrumb.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .breadcrumb.has-arrow-separator li + li::before { + content: "\02192"; } + html.theme--documenter-dark .breadcrumb.has-bullet-separator li + li::before { + content: "\02022"; } + html.theme--documenter-dark .breadcrumb.has-dot-separator li + li::before { + content: "\000b7"; } + html.theme--documenter-dark .breadcrumb.has-succeeds-separator li + li::before { + content: "\0227B"; } + html.theme--documenter-dark .card { + background-color: white; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #fff; + max-width: 100%; + position: relative; } + html.theme--documenter-dark .card-header { + background-color: transparent; + align-items: stretch; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + display: flex; } + html.theme--documenter-dark .card-header-title { + align-items: center; + color: #f2f2f2; + display: flex; + flex-grow: 1; + font-weight: 700; + padding: 0.75rem; } + html.theme--documenter-dark .card-header-title.is-centered { + justify-content: center; } + html.theme--documenter-dark .card-header-icon { + align-items: center; + cursor: pointer; + display: flex; + justify-content: center; + padding: 0.75rem; } + html.theme--documenter-dark .card-image { + display: block; + position: relative; } + html.theme--documenter-dark .card-content { + background-color: transparent; + padding: 1.5rem; } + html.theme--documenter-dark .card-footer { + background-color: transparent; + border-top: 1px solid #5e6d6f; + align-items: stretch; + display: flex; } + html.theme--documenter-dark .card-footer-item { + align-items: center; + display: flex; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + justify-content: center; + padding: 0.75rem; } + html.theme--documenter-dark .card-footer-item:not(:last-child) { + border-right: 1px solid #5e6d6f; } + html.theme--documenter-dark .card .media:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .dropdown { + display: inline-flex; + position: relative; + vertical-align: top; } + html.theme--documenter-dark .dropdown.is-active .dropdown-menu, html.theme--documenter-dark .dropdown.is-hoverable:hover .dropdown-menu { + display: block; } + html.theme--documenter-dark .dropdown.is-right .dropdown-menu { + left: auto; + right: 0; } + html.theme--documenter-dark .dropdown.is-up .dropdown-menu { + bottom: 100%; + padding-bottom: 4px; + padding-top: initial; + top: auto; } + html.theme--documenter-dark .dropdown-menu { + display: none; + left: 0; + min-width: 12rem; + padding-top: 4px; + position: absolute; + top: 100%; + z-index: 20; } + html.theme--documenter-dark .dropdown-content { + background-color: #282f2f; + border-radius: 0.4em; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + html.theme--documenter-dark .dropdown-item { + color: #fff; + display: block; + font-size: 0.875rem; + line-height: 1.5; + padding: 0.375rem 1rem; + position: relative; } + html.theme--documenter-dark a.dropdown-item, + html.theme--documenter-dark button.dropdown-item { + padding-right: 3rem; + text-align: left; + white-space: nowrap; + width: 100%; } + html.theme--documenter-dark a.dropdown-item:hover, + html.theme--documenter-dark button.dropdown-item:hover { + background-color: #282f2f; + color: #0a0a0a; } + html.theme--documenter-dark a.dropdown-item.is-active, + html.theme--documenter-dark button.dropdown-item.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .dropdown-divider { + background-color: #5e6d6f; + border: none; + display: block; + height: 1px; + margin: 0.5rem 0; } + html.theme--documenter-dark .level { + align-items: center; + justify-content: space-between; } + html.theme--documenter-dark .level code { + border-radius: 0.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: 0.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: 0.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: 0.75rem; } } + html.theme--documenter-dark .level-left { + align-items: center; + justify-content: flex-start; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .level-left + .level-right { + margin-top: 1.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-left { + display: flex; } } + html.theme--documenter-dark .level-right { + align-items: center; + justify-content: flex-end; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-right { + display: flex; } } + html.theme--documenter-dark .list { + background-color: white; + border-radius: 0.4em; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .list-item { + display: block; + padding: 0.5em 1em; } + html.theme--documenter-dark .list-item:not(a) { + color: #fff; } + html.theme--documenter-dark .list-item:first-child { + border-top-left-radius: 0.4em; + border-top-right-radius: 0.4em; } + html.theme--documenter-dark .list-item:last-child { + border-bottom-left-radius: 0.4em; + border-bottom-right-radius: 0.4em; } + html.theme--documenter-dark .list-item:not(:last-child) { + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .list-item.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark a.list-item { + background-color: #282f2f; + cursor: pointer; } + html.theme--documenter-dark .media { + align-items: flex-start; + display: flex; + text-align: left; } + html.theme--documenter-dark .media .content:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .media .media { + border-top: 1px solid rgba(94, 109, 111, 0.5); + display: flex; + padding-top: 0.75rem; } + html.theme--documenter-dark .media .media .content:not(:last-child), + html.theme--documenter-dark .media .media .control:not(:last-child) { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .media .media .media { + padding-top: 0.5rem; } + html.theme--documenter-dark .media .media .media + .media { + margin-top: 0.5rem; } + html.theme--documenter-dark .media + .media { + border-top: 1px solid rgba(94, 109, 111, 0.5); + margin-top: 1rem; + padding-top: 1rem; } + html.theme--documenter-dark .media.is-large + .media { + margin-top: 1.5rem; + padding-top: 1.5rem; } + html.theme--documenter-dark .media-left, + html.theme--documenter-dark .media-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .media-left { + margin-right: 1rem; } + html.theme--documenter-dark .media-right { + margin-left: 1rem; } + html.theme--documenter-dark .media-content { + flex-basis: auto; + flex-grow: 1; + flex-shrink: 1; + text-align: left; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .media-content { + overflow-x: auto; } } + html.theme--documenter-dark .menu { + font-size: 15px; } + html.theme--documenter-dark .menu.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.menu { + font-size: 0.85em; } + html.theme--documenter-dark .menu.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .menu.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .menu-list { + line-height: 1.25; } + html.theme--documenter-dark .menu-list a { + border-radius: 3px; + color: #fff; + display: block; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .menu-list a:hover { + background-color: #282f2f; + color: #f2f2f2; } + html.theme--documenter-dark .menu-list a.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .menu-list li ul { + border-left: 1px solid #5e6d6f; + margin: 0.75em; + padding-left: 0.75em; } + html.theme--documenter-dark .menu-label { + color: white; + font-size: 0.75em; + letter-spacing: 0.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: 0.4em; + font-size: 15px; } + html.theme--documenter-dark .message strong { + color: currentColor; } + html.theme--documenter-dark .message a:not(.button):not(.tag):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + html.theme--documenter-dark .message.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.message { + font-size: 0.85em; } + html.theme--documenter-dark .message.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .message.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .message.is-white { + background-color: white; } + html.theme--documenter-dark .message.is-white .message-header { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .message.is-white .message-body { + border-color: white; + color: #4d4d4d; } + html.theme--documenter-dark .message.is-black { + background-color: #fafafa; } + html.theme--documenter-dark .message.is-black .message-header { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .message.is-black .message-body { + border-color: #0a0a0a; + color: #090909; } + html.theme--documenter-dark .message.is-light { + background-color: #f9fafb; } + html.theme--documenter-dark .message.is-light .message-header { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .message.is-light .message-body { + border-color: #ecf0f1; + color: #505050; } + html.theme--documenter-dark .message.is-dark, html.theme--documenter-dark .content kbd.message { + background-color: #f9fafa; } + html.theme--documenter-dark .message.is-dark .message-header, html.theme--documenter-dark .content kbd.message .message-header { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .message.is-dark .message-body, html.theme--documenter-dark .content kbd.message .message-body { + border-color: #282f2f; + color: #212526; } + html.theme--documenter-dark .message.is-primary, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink { + background-color: #f8fafc; } + html.theme--documenter-dark .message.is-primary .message-header, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-header { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .message.is-primary .message-body, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-body { + border-color: #375a7f; + color: #2b4159; } + html.theme--documenter-dark .message.is-link { + background-color: #f6fefc; } + html.theme--documenter-dark .message.is-link .message-header { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .message.is-link .message-body { + border-color: #1abc9c; + color: #0b2f28; } + html.theme--documenter-dark .message.is-info { + background-color: #f5fbff; } + html.theme--documenter-dark .message.is-info .message-header { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .message.is-info .message-body { + border-color: #024c7d; + color: #033659; } + html.theme--documenter-dark .message.is-success { + background-color: #f5fff9; } + html.theme--documenter-dark .message.is-success .message-header { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .message.is-success .message-body { + border-color: #008438; + color: #023518; } + html.theme--documenter-dark .message.is-warning { + background-color: #fffcf5; } + html.theme--documenter-dark .message.is-warning .message-header { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .message.is-warning .message-body { + border-color: #ad8100; + color: #3d2e03; } + html.theme--documenter-dark .message.is-danger { + background-color: #fef6f6; } + html.theme--documenter-dark .message.is-danger .message-header { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .message.is-danger .message-body { + border-color: #9e1b0d; + color: #7a170c; } + html.theme--documenter-dark .message-header { + align-items: center; + background-color: #fff; + border-radius: 0.4em 0.4em 0 0; + color: rgba(0, 0, 0, 0.7); + display: flex; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em 1em; + position: relative; } + html.theme--documenter-dark .message-header .delete { + flex-grow: 0; + flex-shrink: 0; + margin-left: 0.75em; } + html.theme--documenter-dark .message-header + .message-body { + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .message-body { + border-color: #5e6d6f; + border-radius: 0.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: white; } + html.theme--documenter-dark .message-body pre code { + background-color: transparent; } + html.theme--documenter-dark .modal { + align-items: center; + display: none; + flex-direction: column; + justify-content: center; + overflow: hidden; + position: fixed; + z-index: 40; } + html.theme--documenter-dark .modal.is-active { + display: flex; } + html.theme--documenter-dark .modal-background { + background-color: rgba(10, 10, 10, 0.86); } + html.theme--documenter-dark .modal-content, + html.theme--documenter-dark .modal-card { + margin: 0 20px; + max-height: calc(100vh - 160px); + overflow: auto; + position: relative; + width: 100%; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .modal-content, + html.theme--documenter-dark .modal-card { + margin: 0 auto; + max-height: calc(100vh - 40px); + width: 640px; } } + html.theme--documenter-dark .modal-close { + background: none; + height: 40px; + position: fixed; + right: 20px; + top: 20px; + width: 40px; } + html.theme--documenter-dark .modal-card { + display: flex; + flex-direction: column; + max-height: calc(100vh - 40px); + overflow: hidden; + -ms-overflow-y: visible; } + html.theme--documenter-dark .modal-card-head, + html.theme--documenter-dark .modal-card-foot { + align-items: center; + background-color: #282f2f; + display: flex; + flex-shrink: 0; + justify-content: flex-start; + padding: 20px; + position: relative; } + html.theme--documenter-dark .modal-card-head { + border-bottom: 1px solid #5e6d6f; + border-top-left-radius: 8px; + border-top-right-radius: 8px; } + html.theme--documenter-dark .modal-card-title { + color: #f2f2f2; + flex-grow: 1; + flex-shrink: 0; + font-size: 1.5rem; + line-height: 1; } + html.theme--documenter-dark .modal-card-foot { + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark .modal-card-foot .button:not(:last-child) { + margin-right: 0.5em; } + html.theme--documenter-dark .modal-card-body { + -webkit-overflow-scrolling: touch; + background-color: white; + 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: white; + 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: white; + color: #0a0a0a; } } + html.theme--documenter-dark .navbar.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link { + color: white; } + 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: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link::after { + border-color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-burger { + color: white; } + @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: white; } + 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: black; + color: white; } + 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: white; } + 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: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-dropdown a.navbar-item.is-active { + background-color: #0a0a0a; + color: white; } } + html.theme--documenter-dark .navbar.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link { + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link::after { + border-color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-burger { + color: #282f2f; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-light .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link { + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link::after { + border-color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-dropdown a.navbar-item.is-active { + background-color: #ecf0f1; + color: #282f2f; } } + html.theme--documenter-dark .navbar.is-dark, html.theme--documenter-dark .content kbd.navbar { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link { + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-burger, html.theme--documenter-dark .content kbd.navbar .navbar-burger { + color: #ecf0f1; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-dark .navbar-start > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-end > .navbar-item, + html.theme--documenter-dark .content kbd.navbar .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link { + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link::after, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-dropdown a.navbar-item.is-active { + background-color: #282f2f; + color: #ecf0f1; } } + html.theme--documenter-dark .navbar.is-primary, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-burger, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-primary .navbar-start > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-end > .navbar-item, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link::after, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { + background-color: #375a7f; + color: #fff; } } + html.theme--documenter-dark .navbar.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-link .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-dropdown a.navbar-item.is-active { + background-color: #1abc9c; + color: #fff; } } + html.theme--documenter-dark .navbar.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-info .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-dropdown a.navbar-item.is-active { + background-color: #024c7d; + color: #fff; } } + html.theme--documenter-dark .navbar.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-success .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-dropdown a.navbar-item.is-active { + background-color: #008438; + color: #fff; } } + html.theme--documenter-dark .navbar.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-warning .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-dropdown a.navbar-item.is-active { + background-color: #ad8100; + color: #fff; } } + html.theme--documenter-dark .navbar.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-danger .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-dropdown a.navbar-item.is-active { + background-color: #9e1b0d; + color: #fff; } } + html.theme--documenter-dark .navbar > .container { + align-items: stretch; + display: flex; + min-height: 4rem; + width: 100%; } + html.theme--documenter-dark .navbar.has-shadow { + box-shadow: 0 2px 0 0 #282f2f; } + html.theme--documenter-dark .navbar.is-fixed-bottom, html.theme--documenter-dark .navbar.is-fixed-top { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + html.theme--documenter-dark .navbar.is-fixed-bottom { + bottom: 0; } + html.theme--documenter-dark .navbar.is-fixed-bottom.has-shadow { + box-shadow: 0 -2px 0 0 #282f2f; } + html.theme--documenter-dark .navbar.is-fixed-top { + top: 0; } + html.theme--documenter-dark html.has-navbar-fixed-top, + html.theme--documenter-dark body.has-navbar-fixed-top { + padding-top: 4rem; } + html.theme--documenter-dark html.has-navbar-fixed-bottom, + html.theme--documenter-dark body.has-navbar-fixed-bottom { + padding-bottom: 4rem; } + html.theme--documenter-dark .navbar-brand, + html.theme--documenter-dark .navbar-tabs { + align-items: stretch; + display: flex; + flex-shrink: 0; + min-height: 4rem; } + html.theme--documenter-dark .navbar-brand a.navbar-item:focus, html.theme--documenter-dark .navbar-brand a.navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .navbar-tabs { + -webkit-overflow-scrolling: touch; + max-width: 100vw; + overflow-x: auto; + overflow-y: hidden; } + html.theme--documenter-dark .navbar-burger { + color: #fff; + cursor: pointer; + display: block; + height: 4rem; + position: relative; + width: 4rem; + margin-left: auto; } + html.theme--documenter-dark .navbar-burger span { + background-color: currentColor; + display: block; + height: 1px; + left: calc(50% - 8px); + position: absolute; + transform-origin: center; + transition-duration: 86ms; + transition-property: background-color, opacity, transform; + transition-timing-function: ease-out; + width: 16px; } + html.theme--documenter-dark .navbar-burger span:nth-child(1) { + top: calc(50% - 6px); } + html.theme--documenter-dark .navbar-burger span:nth-child(2) { + top: calc(50% - 1px); } + html.theme--documenter-dark .navbar-burger span:nth-child(3) { + top: calc(50% + 4px); } + html.theme--documenter-dark .navbar-burger:hover { + background-color: rgba(0, 0, 0, 0.05); } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(1) { + transform: translateY(5px) rotate(45deg); } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(2) { + opacity: 0; } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(3) { + transform: translateY(-5px) rotate(-45deg); } + html.theme--documenter-dark .navbar-menu { + display: none; } + html.theme--documenter-dark .navbar-item, + html.theme--documenter-dark .navbar-link { + color: #fff; + display: block; + line-height: 1.5; + padding: 0.5rem 0.75rem; + position: relative; } + html.theme--documenter-dark .navbar-item .icon:only-child, + html.theme--documenter-dark .navbar-link .icon:only-child { + margin-left: -0.25rem; + margin-right: -0.25rem; } + html.theme--documenter-dark a.navbar-item, + html.theme--documenter-dark .navbar-link { + cursor: pointer; } + html.theme--documenter-dark a.navbar-item:focus, html.theme--documenter-dark a.navbar-item:focus-within, html.theme--documenter-dark a.navbar-item:hover, html.theme--documenter-dark a.navbar-item.is-active, + html.theme--documenter-dark .navbar-link:focus, + html.theme--documenter-dark .navbar-link:focus-within, + html.theme--documenter-dark .navbar-link:hover, + html.theme--documenter-dark .navbar-link.is-active { + background-color: transparent; + color: #1abc9c; } + html.theme--documenter-dark .navbar-item { + display: block; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .navbar-item img { + max-height: 1.75rem; } + html.theme--documenter-dark .navbar-item.has-dropdown { + padding: 0; } + html.theme--documenter-dark .navbar-item.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .navbar-item.is-tab { + border-bottom: 1px solid transparent; + min-height: 4rem; + padding-bottom: calc(0.5rem - 1px); } + html.theme--documenter-dark .navbar-item.is-tab:focus, html.theme--documenter-dark .navbar-item.is-tab:hover { + background-color: transparent; + border-bottom-color: #1abc9c; } + html.theme--documenter-dark .navbar-item.is-tab.is-active { + background-color: transparent; + 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: 0.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: transparent; + color: #dbdee0; } + html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active { + background-color: transparent; + color: #1abc9c; } + html.theme--documenter-dark .navbar-burger { + display: none; } + html.theme--documenter-dark .navbar-item, + html.theme--documenter-dark .navbar-link { + align-items: center; + display: flex; } + html.theme--documenter-dark .navbar-item { + display: flex; } + html.theme--documenter-dark .navbar-item.has-dropdown { + align-items: stretch; } + html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-link::after { + transform: rotate(135deg) translate(0.25em, -0.25em); } + html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-dropdown { + border-bottom: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 8px 8px 0 0; + border-top: none; + bottom: 100%; + box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1); + top: auto; } + html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown { + display: block; } + .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed { + opacity: 1; + pointer-events: auto; + transform: translateY(0); } + html.theme--documenter-dark .navbar-menu { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .navbar-start { + justify-content: flex-start; + margin-right: auto; } + html.theme--documenter-dark .navbar-end { + justify-content: flex-end; + margin-left: auto; } + html.theme--documenter-dark .navbar-dropdown { + background-color: #375a7f; + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + border-top: 1px solid rgba(0, 0, 0, 0.2); + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1); + display: none; + font-size: 0.875rem; + left: 0; + min-width: 100%; + position: absolute; + top: 100%; + z-index: 20; } + html.theme--documenter-dark .navbar-dropdown .navbar-item { + padding: 0.375rem 1rem; + white-space: nowrap; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item { + padding-right: 3rem; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item:focus, html.theme--documenter-dark .navbar-dropdown a.navbar-item:hover { + background-color: transparent; + color: #dbdee0; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item.is-active { + background-color: transparent; + 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: transparent; } + 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: transparent; } } + html.theme--documenter-dark .hero.is-fullheight-with-navbar { + min-height: calc(100vh - 4rem); } + html.theme--documenter-dark .pagination { + font-size: 15px; + margin: -0.25rem; } + html.theme--documenter-dark .pagination.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination { + font-size: 0.85em; } + html.theme--documenter-dark .pagination.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .pagination.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .pagination.is-rounded .pagination-previous, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous, + html.theme--documenter-dark .pagination.is-rounded .pagination-next, + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next { + padding-left: 1em; + padding-right: 1em; + border-radius: 290486px; } + html.theme--documenter-dark .pagination.is-rounded .pagination-link, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link { + border-radius: 290486px; } + html.theme--documenter-dark .pagination, + html.theme--documenter-dark .pagination-list { + align-items: center; + display: flex; + justify-content: center; + text-align: center; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark .pagination-ellipsis { + font-size: 1em; + justify-content: center; + margin: 0.25rem; + padding-left: 0.5em; + padding-right: 0.5em; + text-align: center; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-link { + border-color: #5e6d6f; + color: #1abc9c; + min-width: 2.25em; } + html.theme--documenter-dark .pagination-previous:hover, + html.theme--documenter-dark .pagination-next:hover, + html.theme--documenter-dark .pagination-link:hover { + border-color: #8c9b9d; + color: #1dd2af; } + html.theme--documenter-dark .pagination-previous:focus, + html.theme--documenter-dark .pagination-next:focus, + html.theme--documenter-dark .pagination-link:focus { + border-color: #8c9b9d; } + html.theme--documenter-dark .pagination-previous:active, + html.theme--documenter-dark .pagination-next:active, + html.theme--documenter-dark .pagination-link:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); } + html.theme--documenter-dark .pagination-previous[disabled], + html.theme--documenter-dark .pagination-next[disabled], + html.theme--documenter-dark .pagination-link[disabled] { + background-color: #dbdee0; + border-color: #dbdee0; + box-shadow: none; + color: #5e6d6f; + opacity: 0.5; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next { + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + html.theme--documenter-dark .pagination-link.is-current { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .pagination-ellipsis { + color: #8c9b9d; + pointer-events: none; } + html.theme--documenter-dark .pagination-list { + flex-wrap: wrap; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .pagination { + flex-wrap: wrap; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .pagination-list li { + flex-grow: 1; + flex-shrink: 1; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .pagination-list { + flex-grow: 1; + flex-shrink: 1; + justify-content: flex-start; + order: 1; } + html.theme--documenter-dark .pagination-previous { + order: 2; } + html.theme--documenter-dark .pagination-next { + order: 3; } + html.theme--documenter-dark .pagination { + justify-content: space-between; } + html.theme--documenter-dark .pagination.is-centered .pagination-previous { + order: 1; } + html.theme--documenter-dark .pagination.is-centered .pagination-list { + justify-content: center; + order: 2; } + html.theme--documenter-dark .pagination.is-centered .pagination-next { + order: 3; } + html.theme--documenter-dark .pagination.is-right .pagination-previous { + order: 1; } + html.theme--documenter-dark .pagination.is-right .pagination-next { + order: 2; } + html.theme--documenter-dark .pagination.is-right .pagination-list { + justify-content: flex-end; + order: 3; } } + html.theme--documenter-dark .panel { + font-size: 15px; } + html.theme--documenter-dark .panel:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .panel-heading, + html.theme--documenter-dark .panel-tabs, + html.theme--documenter-dark .panel-block { + border-bottom: 1px solid #5e6d6f; + border-left: 1px solid #5e6d6f; + border-right: 1px solid #5e6d6f; } + html.theme--documenter-dark .panel-heading:first-child, + html.theme--documenter-dark .panel-tabs:first-child, + html.theme--documenter-dark .panel-block:first-child { + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark .panel-heading { + background-color: #282f2f; + border-radius: 0.4em 0.4em 0 0; + color: #f2f2f2; + font-size: 1.25em; + font-weight: 300; + line-height: 1.25; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .panel-tabs { + align-items: flex-end; + display: flex; + font-size: 0.875em; + justify-content: center; } + html.theme--documenter-dark .panel-tabs a { + border-bottom: 1px solid #5e6d6f; + margin-bottom: -1px; + padding: 0.5em; } + html.theme--documenter-dark .panel-tabs a.is-active { + border-bottom-color: #343c3d; + color: #17a689; } + html.theme--documenter-dark .panel-list a { + color: #fff; } + html.theme--documenter-dark .panel-list a:hover { + color: #1abc9c; } + html.theme--documenter-dark .panel-block { + align-items: center; + color: #f2f2f2; + display: flex; + justify-content: flex-start; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .panel-block input[type="checkbox"] { + margin-right: 0.75em; } + html.theme--documenter-dark .panel-block > .control { + flex-grow: 1; + flex-shrink: 1; + width: 100%; } + html.theme--documenter-dark .panel-block.is-wrapped { + flex-wrap: wrap; } + html.theme--documenter-dark .panel-block.is-active { + border-left-color: #1abc9c; + color: #17a689; } + html.theme--documenter-dark .panel-block.is-active .panel-icon { + color: #1abc9c; } + html.theme--documenter-dark a.panel-block, + html.theme--documenter-dark label.panel-block { + cursor: pointer; } + html.theme--documenter-dark a.panel-block:hover, + html.theme--documenter-dark label.panel-block:hover { + background-color: #282f2f; } + html.theme--documenter-dark .panel-icon { + display: inline-block; + font-size: 14px; + height: 1em; + line-height: 1em; + text-align: center; + vertical-align: top; + width: 1em; + color: white; + margin-right: 0.75em; } + html.theme--documenter-dark .panel-icon .fa { + font-size: inherit; + line-height: inherit; } + html.theme--documenter-dark .tabs { + -webkit-overflow-scrolling: touch; + align-items: stretch; + display: flex; + font-size: 15px; + justify-content: space-between; + overflow: hidden; + overflow-x: auto; + white-space: nowrap; } + html.theme--documenter-dark .tabs a { + align-items: center; + border-bottom-color: #5e6d6f; + border-bottom-style: solid; + border-bottom-width: 1px; + color: #fff; + display: flex; + justify-content: center; + margin-bottom: -1px; + padding: 0.5em 1em; + vertical-align: top; } + html.theme--documenter-dark .tabs a:hover { + border-bottom-color: #f2f2f2; + color: #f2f2f2; } + html.theme--documenter-dark .tabs li { + display: block; } + html.theme--documenter-dark .tabs li.is-active a { + border-bottom-color: #1abc9c; + color: #1abc9c; } + html.theme--documenter-dark .tabs ul { + align-items: center; + border-bottom-color: #5e6d6f; + border-bottom-style: solid; + border-bottom-width: 1px; + display: flex; + flex-grow: 1; + flex-shrink: 0; + justify-content: flex-start; } + html.theme--documenter-dark .tabs ul.is-left { + padding-right: 0.75em; } + html.theme--documenter-dark .tabs ul.is-center { + flex: none; + justify-content: center; + padding-left: 0.75em; + padding-right: 0.75em; } + html.theme--documenter-dark .tabs ul.is-right { + justify-content: flex-end; + padding-left: 0.75em; } + html.theme--documenter-dark .tabs .icon:first-child { + margin-right: 0.5em; } + html.theme--documenter-dark .tabs .icon:last-child { + margin-left: 0.5em; } + html.theme--documenter-dark .tabs.is-centered ul { + justify-content: center; } + html.theme--documenter-dark .tabs.is-right ul { + justify-content: flex-end; } + html.theme--documenter-dark .tabs.is-boxed a { + border: 1px solid transparent; + border-radius: 0.4em 0.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: white; + border-color: #5e6d6f; + border-bottom-color: transparent !important; } + html.theme--documenter-dark .tabs.is-fullwidth li { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .tabs.is-toggle a { + border-color: #5e6d6f; + border-style: solid; + border-width: 1px; + margin-bottom: 0; + position: relative; } + html.theme--documenter-dark .tabs.is-toggle a:hover { + background-color: #282f2f; + border-color: #8c9b9d; + z-index: 2; } + html.theme--documenter-dark .tabs.is-toggle li + li { + margin-left: -1px; } + html.theme--documenter-dark .tabs.is-toggle li:first-child a { + border-radius: 0.4em 0 0 0.4em; } + html.theme--documenter-dark .tabs.is-toggle li:last-child a { + border-radius: 0 0.4em 0.4em 0; } + html.theme--documenter-dark .tabs.is-toggle li.is-active a { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; + z-index: 1; } + html.theme--documenter-dark .tabs.is-toggle ul { + border-bottom: none; } + html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:first-child a { + border-bottom-left-radius: 290486px; + border-top-left-radius: 290486px; + padding-left: 1.25em; } + html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:last-child a { + border-bottom-right-radius: 290486px; + border-top-right-radius: 290486px; + padding-right: 1.25em; } + html.theme--documenter-dark .tabs.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.tabs { + font-size: 0.85em; } + html.theme--documenter-dark .tabs.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .tabs.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .column { + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + padding: 0.75rem; } + .columns.is-mobile > html.theme--documenter-dark .column.is-narrow { + flex: none; } + .columns.is-mobile > html.theme--documenter-dark .column.is-full { + flex: none; + width: 100%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-three-quarters { + flex: none; + width: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-two-thirds { + flex: none; + width: 66.6666%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-half { + flex: none; + width: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-third { + flex: none; + width: 33.3333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-quarter { + flex: none; + width: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-fifth { + flex: none; + width: 20%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-two-fifths { + flex: none; + width: 40%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-three-fifths { + flex: none; + width: 60%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-four-fifths { + flex: none; + width: 80%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-quarters { + margin-left: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-thirds { + margin-left: 66.6666%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-half { + margin-left: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-third { + margin-left: 33.3333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-quarter { + margin-left: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-fifth { + margin-left: 20%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-fifths { + margin-left: 40%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-fifths { + margin-left: 60%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-four-fifths { + margin-left: 80%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-0 { + flex: none; + width: 0%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-0 { + margin-left: 0%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-1 { + flex: none; + width: 8.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-1 { + margin-left: 8.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-2 { + flex: none; + width: 16.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-2 { + margin-left: 16.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-3 { + flex: none; + width: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-3 { + margin-left: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-4 { + flex: none; + width: 33.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-4 { + margin-left: 33.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-5 { + flex: none; + width: 41.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-5 { + margin-left: 41.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-6 { + flex: none; + width: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-6 { + margin-left: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-7 { + flex: none; + width: 58.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-7 { + margin-left: 58.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-8 { + flex: none; + width: 66.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-8 { + margin-left: 66.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-9 { + flex: none; + width: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-9 { + margin-left: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-10 { + flex: none; + width: 83.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-10 { + margin-left: 83.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-11 { + flex: none; + width: 91.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-11 { + margin-left: 91.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-12 { + flex: none; + width: 100%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-12 { + margin-left: 100%; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .column.is-narrow-mobile { + flex: none; } + html.theme--documenter-dark .column.is-full-mobile { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-mobile { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-mobile { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-mobile { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-mobile { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-mobile { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-mobile { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-mobile { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-mobile { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-mobile { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-mobile { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-mobile { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-mobile { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-mobile { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-mobile { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-mobile { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-mobile { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-mobile { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-mobile { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-mobile { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-mobile { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-mobile { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-mobile { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-mobile { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-mobile { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-mobile { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-mobile { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-mobile { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-mobile { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-mobile { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-mobile { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-mobile { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-mobile { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-mobile { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-mobile { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-mobile { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-mobile { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-mobile { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-mobile { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-mobile { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-mobile { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-mobile { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-mobile { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-mobile { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-mobile { + margin-left: 100%; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .column.is-narrow, html.theme--documenter-dark .column.is-narrow-tablet { + flex: none; } + html.theme--documenter-dark .column.is-full, html.theme--documenter-dark .column.is-full-tablet { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters, html.theme--documenter-dark .column.is-three-quarters-tablet { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds, html.theme--documenter-dark .column.is-two-thirds-tablet { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half, html.theme--documenter-dark .column.is-half-tablet { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third, html.theme--documenter-dark .column.is-one-third-tablet { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter, html.theme--documenter-dark .column.is-one-quarter-tablet { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth, html.theme--documenter-dark .column.is-one-fifth-tablet { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths, html.theme--documenter-dark .column.is-two-fifths-tablet { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths, html.theme--documenter-dark .column.is-three-fifths-tablet { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths, html.theme--documenter-dark .column.is-four-fifths-tablet { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters, html.theme--documenter-dark .column.is-offset-three-quarters-tablet { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds, html.theme--documenter-dark .column.is-offset-two-thirds-tablet { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half, html.theme--documenter-dark .column.is-offset-half-tablet { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third, html.theme--documenter-dark .column.is-offset-one-third-tablet { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter, html.theme--documenter-dark .column.is-offset-one-quarter-tablet { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth, html.theme--documenter-dark .column.is-offset-one-fifth-tablet { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths, html.theme--documenter-dark .column.is-offset-two-fifths-tablet { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths, html.theme--documenter-dark .column.is-offset-three-fifths-tablet { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths, html.theme--documenter-dark .column.is-offset-four-fifths-tablet { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0, html.theme--documenter-dark .column.is-0-tablet { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0, html.theme--documenter-dark .column.is-offset-0-tablet { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1, html.theme--documenter-dark .column.is-1-tablet { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1, html.theme--documenter-dark .column.is-offset-1-tablet { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2, html.theme--documenter-dark .column.is-2-tablet { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2, html.theme--documenter-dark .column.is-offset-2-tablet { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3, html.theme--documenter-dark .column.is-3-tablet { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3, html.theme--documenter-dark .column.is-offset-3-tablet { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4, html.theme--documenter-dark .column.is-4-tablet { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4, html.theme--documenter-dark .column.is-offset-4-tablet { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5, html.theme--documenter-dark .column.is-5-tablet { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5, html.theme--documenter-dark .column.is-offset-5-tablet { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6, html.theme--documenter-dark .column.is-6-tablet { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6, html.theme--documenter-dark .column.is-offset-6-tablet { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7, html.theme--documenter-dark .column.is-7-tablet { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7, html.theme--documenter-dark .column.is-offset-7-tablet { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8, html.theme--documenter-dark .column.is-8-tablet { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8, html.theme--documenter-dark .column.is-offset-8-tablet { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9, html.theme--documenter-dark .column.is-9-tablet { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9, html.theme--documenter-dark .column.is-offset-9-tablet { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10, html.theme--documenter-dark .column.is-10-tablet { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10, html.theme--documenter-dark .column.is-offset-10-tablet { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11, html.theme--documenter-dark .column.is-11-tablet { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11, html.theme--documenter-dark .column.is-offset-11-tablet { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12, html.theme--documenter-dark .column.is-12-tablet { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12, html.theme--documenter-dark .column.is-offset-12-tablet { + margin-left: 100%; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .column.is-narrow-touch { + flex: none; } + html.theme--documenter-dark .column.is-full-touch { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-touch { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-touch { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-touch { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-touch { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-touch { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-touch { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-touch { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-touch { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-touch { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-touch { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-touch { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-touch { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-touch { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-touch { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-touch { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-touch { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-touch { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-touch { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-touch { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-touch { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-touch { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-touch { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-touch { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-touch { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-touch { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-touch { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-touch { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-touch { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-touch { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-touch { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-touch { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-touch { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-touch { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-touch { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-touch { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-touch { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-touch { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-touch { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-touch { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-touch { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-touch { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-touch { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-touch { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-touch { + margin-left: 100%; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .column.is-narrow-desktop { + flex: none; } + html.theme--documenter-dark .column.is-full-desktop { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-desktop { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-desktop { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-desktop { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-desktop { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-desktop { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-desktop { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-desktop { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-desktop { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-desktop { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-desktop { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-desktop { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-desktop { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-desktop { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-desktop { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-desktop { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-desktop { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-desktop { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-desktop { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-desktop { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-desktop { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-desktop { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-desktop { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-desktop { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-desktop { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-desktop { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-desktop { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-desktop { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-desktop { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-desktop { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-desktop { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-desktop { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-desktop { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-desktop { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-desktop { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-desktop { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-desktop { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-desktop { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-desktop { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-desktop { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-desktop { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-desktop { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-desktop { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-desktop { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-desktop { + margin-left: 100%; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .column.is-narrow-widescreen { + flex: none; } + html.theme--documenter-dark .column.is-full-widescreen { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-widescreen { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-widescreen { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-widescreen { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-widescreen { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-widescreen { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-widescreen { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-widescreen { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-widescreen { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-widescreen { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-widescreen { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-widescreen { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-widescreen { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-widescreen { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-widescreen { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-widescreen { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-widescreen { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-widescreen { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-widescreen { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-widescreen { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-widescreen { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-widescreen { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-widescreen { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-widescreen { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-widescreen { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-widescreen { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-widescreen { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-widescreen { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-widescreen { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-widescreen { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-widescreen { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-widescreen { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-widescreen { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-widescreen { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-widescreen { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-widescreen { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-widescreen { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-widescreen { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-widescreen { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-widescreen { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-widescreen { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-widescreen { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-widescreen { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-widescreen { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-widescreen { + margin-left: 100%; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .column.is-narrow-fullhd { + flex: none; } + html.theme--documenter-dark .column.is-full-fullhd { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-fullhd { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-fullhd { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-fullhd { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-fullhd { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-fullhd { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-fullhd { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-fullhd { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-fullhd { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-fullhd { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-fullhd { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-fullhd { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-fullhd { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-fullhd { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-fullhd { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-fullhd { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-fullhd { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-fullhd { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-fullhd { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-fullhd { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-fullhd { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-fullhd { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-fullhd { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-fullhd { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-fullhd { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-fullhd { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-fullhd { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-fullhd { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-fullhd { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-fullhd { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-fullhd { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-fullhd { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-fullhd { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-fullhd { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-fullhd { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-fullhd { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-fullhd { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-fullhd { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-fullhd { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-fullhd { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-fullhd { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-fullhd { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-fullhd { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-fullhd { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-fullhd { + margin-left: 100%; } } + html.theme--documenter-dark .columns { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + html.theme--documenter-dark .columns:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .columns:not(:last-child) { + margin-bottom: calc(1.5rem - 0.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: 0.25rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-1-mobile { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-1-tablet { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-1-tablet-only { + --columnGap: 0.25rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-1-touch { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-1-desktop { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-1-desktop-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-1-widescreen { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-1-widescreen-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-1-fullhd { + --columnGap: 0.25rem; } } + html.theme--documenter-dark .columns.is-variable.is-2 { + --columnGap: 0.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-2-mobile { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-2-tablet { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-2-tablet-only { + --columnGap: 0.5rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-2-touch { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-2-desktop { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-2-desktop-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-2-widescreen { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-2-widescreen-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-2-fullhd { + --columnGap: 0.5rem; } } + html.theme--documenter-dark .columns.is-variable.is-3 { + --columnGap: 0.75rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-3-mobile { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-3-tablet { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-3-tablet-only { + --columnGap: 0.75rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-3-touch { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-3-desktop { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-3-desktop-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-3-widescreen { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-3-widescreen-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-3-fullhd { + --columnGap: 0.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: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + html.theme--documenter-dark .tile.is-ancestor:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .tile.is-ancestor:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .tile.is-child { + margin: 0 !important; } + html.theme--documenter-dark .tile.is-parent { + padding: 0.75rem; } + html.theme--documenter-dark .tile.is-vertical { + flex-direction: column; } + html.theme--documenter-dark .tile.is-vertical > .tile.is-child:not(:last-child) { + margin-bottom: 1.5rem !important; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .tile:not(.is-child) { + display: flex; } + html.theme--documenter-dark .tile.is-1 { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .tile.is-2 { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .tile.is-3 { + flex: none; + width: 25%; } + html.theme--documenter-dark .tile.is-4 { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .tile.is-5 { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .tile.is-6 { + flex: none; + width: 50%; } + html.theme--documenter-dark .tile.is-7 { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .tile.is-8 { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .tile.is-9 { + flex: none; + width: 75%; } + html.theme--documenter-dark .tile.is-10 { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .tile.is-11 { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .tile.is-12 { + flex: none; + width: 100%; } } + html.theme--documenter-dark .hero { + align-items: stretch; + display: flex; + flex-direction: column; + justify-content: space-between; } + html.theme--documenter-dark .hero .navbar { + background: none; } + html.theme--documenter-dark .hero .tabs ul { + border-bottom: none; } + html.theme--documenter-dark .hero.is-white { + background-color: white; + 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: white; } } + html.theme--documenter-dark .hero.is-white .navbar-item, + html.theme--documenter-dark .hero.is-white .navbar-link { + color: rgba(10, 10, 10, 0.7); } + html.theme--documenter-dark .hero.is-white a.navbar-item:hover, html.theme--documenter-dark .hero.is-white a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-white .navbar-link:hover, + html.theme--documenter-dark .hero.is-white .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .tabs a { + color: #0a0a0a; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-white .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-white .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a { + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a:hover { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .hero.is-white.is-bold { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 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%, white 71%, white 100%); } } + html.theme--documenter-dark .hero.is-black { + background-color: #0a0a0a; + color: white; } + 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: white; } + 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: white; } + @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: black; + color: white; } + html.theme--documenter-dark .hero.is-black .tabs a { + color: white; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-black .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-black .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-black .tabs.is-boxed a, html.theme--documenter-dark .hero.is-black .tabs.is-toggle a { + color: white; } + 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: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-black.is-bold { + background-image: linear-gradient(141deg, black 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, black 0%, #0a0a0a 71%, #181616 100%); } } + html.theme--documenter-dark .hero.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-light strong { + color: inherit; } + html.theme--documenter-dark .hero.is-light .title { + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .subtitle { + color: rgba(40, 47, 47, 0.9); } + html.theme--documenter-dark .hero.is-light .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-light .subtitle strong { + color: #282f2f; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-light .navbar-menu { + background-color: #ecf0f1; } } + html.theme--documenter-dark .hero.is-light .navbar-item, + html.theme--documenter-dark .hero.is-light .navbar-link { + color: rgba(40, 47, 47, 0.7); } + html.theme--documenter-dark .hero.is-light a.navbar-item:hover, html.theme--documenter-dark .hero.is-light a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-light .navbar-link:hover, + html.theme--documenter-dark .hero.is-light .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .tabs a { + color: #282f2f; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-light .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-light .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a { + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a:hover { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-light.is-bold { + background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-light.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); } } + html.theme--documenter-dark .hero.is-dark, html.theme--documenter-dark .content kbd.hero { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-dark strong, + html.theme--documenter-dark .content kbd.hero strong { + color: inherit; } + html.theme--documenter-dark .hero.is-dark .title, html.theme--documenter-dark .content kbd.hero .title { + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .subtitle, html.theme--documenter-dark .content kbd.hero .subtitle { + color: rgba(236, 240, 241, 0.9); } + html.theme--documenter-dark .hero.is-dark .subtitle a:not(.button), html.theme--documenter-dark .content kbd.hero .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-dark .subtitle strong, + html.theme--documenter-dark .content kbd.hero .subtitle strong { + color: #ecf0f1; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-dark .navbar-menu, html.theme--documenter-dark .content kbd.hero .navbar-menu { + background-color: #282f2f; } } + html.theme--documenter-dark .hero.is-dark .navbar-item, html.theme--documenter-dark .content kbd.hero .navbar-item, + html.theme--documenter-dark .hero.is-dark .navbar-link, + html.theme--documenter-dark .content kbd.hero .navbar-link { + color: rgba(236, 240, 241, 0.7); } + html.theme--documenter-dark .hero.is-dark a.navbar-item:hover, html.theme--documenter-dark .content kbd.hero a.navbar-item:hover, html.theme--documenter-dark .hero.is-dark a.navbar-item.is-active, html.theme--documenter-dark .content kbd.hero a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-dark .navbar-link:hover, + html.theme--documenter-dark .content kbd.hero .navbar-link:hover, + html.theme--documenter-dark .hero.is-dark .navbar-link.is-active, + html.theme--documenter-dark .content kbd.hero .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .tabs a, html.theme--documenter-dark .content kbd.hero .tabs a { + color: #ecf0f1; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-dark .tabs a:hover, html.theme--documenter-dark .content kbd.hero .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-dark .tabs li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a { + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a:hover { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .hero.is-dark.is-bold, html.theme--documenter-dark .content kbd.hero.is-bold { + background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-dark.is-bold .navbar-menu, html.theme--documenter-dark .content kbd.hero.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); } } + html.theme--documenter-dark .hero.is-primary, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-primary strong, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink strong { + color: inherit; } + html.theme--documenter-dark .hero.is-primary .title, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .title { + color: #fff; } + html.theme--documenter-dark .hero.is-primary .subtitle, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-primary .subtitle a:not(.button), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-primary .subtitle strong, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-primary .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-menu { + background-color: #375a7f; } } + html.theme--documenter-dark .hero.is-primary .navbar-item, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-item, + html.theme--documenter-dark .hero.is-primary .navbar-link, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-primary a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, html.theme--documenter-dark .hero.is-primary a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-primary .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link:hover, + html.theme--documenter-dark .hero.is-primary .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .hero.is-primary .tabs a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-primary .tabs a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-primary .tabs li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .hero.is-primary.is-bold, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink { + background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-primary.is-bold .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu { + background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); } } + html.theme--documenter-dark .hero.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-link strong { + color: inherit; } + html.theme--documenter-dark .hero.is-link .title { + color: #fff; } + html.theme--documenter-dark .hero.is-link .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-link .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-link .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-link .navbar-menu { + background-color: #1abc9c; } } + html.theme--documenter-dark .hero.is-link .navbar-item, + html.theme--documenter-dark .hero.is-link .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-link a.navbar-item:hover, html.theme--documenter-dark .hero.is-link a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-link .navbar-link:hover, + html.theme--documenter-dark .hero.is-link .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .hero.is-link .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-link .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-link .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .hero.is-link.is-bold { + background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-link.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); } } + html.theme--documenter-dark .hero.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-info strong { + color: inherit; } + html.theme--documenter-dark .hero.is-info .title { + color: #fff; } + html.theme--documenter-dark .hero.is-info .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-info .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-info .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-info .navbar-menu { + background-color: #024c7d; } } + html.theme--documenter-dark .hero.is-info .navbar-item, + html.theme--documenter-dark .hero.is-info .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-info a.navbar-item:hover, html.theme--documenter-dark .hero.is-info a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-info .navbar-link:hover, + html.theme--documenter-dark .hero.is-info .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .hero.is-info .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-info .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-info .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .hero.is-info.is-bold { + background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-info.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); } } + html.theme--documenter-dark .hero.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-success strong { + color: inherit; } + html.theme--documenter-dark .hero.is-success .title { + color: #fff; } + html.theme--documenter-dark .hero.is-success .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-success .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-success .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-success .navbar-menu { + background-color: #008438; } } + html.theme--documenter-dark .hero.is-success .navbar-item, + html.theme--documenter-dark .hero.is-success .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-success a.navbar-item:hover, html.theme--documenter-dark .hero.is-success a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-success .navbar-link:hover, + html.theme--documenter-dark .hero.is-success .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .hero.is-success .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-success .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-success .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #008438; } + html.theme--documenter-dark .hero.is-success.is-bold { + background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-success.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); } } + html.theme--documenter-dark .hero.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-warning strong { + color: inherit; } + html.theme--documenter-dark .hero.is-warning .title { + color: #fff; } + html.theme--documenter-dark .hero.is-warning .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-warning .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-warning .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-warning .navbar-menu { + background-color: #ad8100; } } + html.theme--documenter-dark .hero.is-warning .navbar-item, + html.theme--documenter-dark .hero.is-warning .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-warning a.navbar-item:hover, html.theme--documenter-dark .hero.is-warning a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-warning .navbar-link:hover, + html.theme--documenter-dark .hero.is-warning .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .hero.is-warning .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-warning .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-warning .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .hero.is-warning.is-bold { + background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-warning.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); } } + html.theme--documenter-dark .hero.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-danger strong { + color: inherit; } + html.theme--documenter-dark .hero.is-danger .title { + color: #fff; } + html.theme--documenter-dark .hero.is-danger .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-danger .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-danger .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-danger .navbar-menu { + background-color: #9e1b0d; } } + html.theme--documenter-dark .hero.is-danger .navbar-item, + html.theme--documenter-dark .hero.is-danger .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-danger a.navbar-item:hover, html.theme--documenter-dark .hero.is-danger a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-danger .navbar-link:hover, + html.theme--documenter-dark .hero.is-danger .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .hero.is-danger .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-danger .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-danger .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .hero.is-danger.is-bold { + background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-danger.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); } } + html.theme--documenter-dark .hero.is-small .hero-body, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.hero .hero-body { + padding-bottom: 1.5rem; + padding-top: 1.5rem; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero.is-medium .hero-body { + padding-bottom: 9rem; + padding-top: 9rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero.is-large .hero-body { + padding-bottom: 18rem; + padding-top: 18rem; } } + html.theme--documenter-dark .hero.is-halfheight .hero-body, html.theme--documenter-dark .hero.is-fullheight .hero-body, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body { + align-items: center; + display: flex; } + html.theme--documenter-dark .hero.is-halfheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body > .container { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .hero.is-halfheight { + min-height: 50vh; } + html.theme--documenter-dark .hero.is-fullheight { + min-height: 100vh; } + html.theme--documenter-dark .hero-video { + overflow: hidden; } + html.theme--documenter-dark .hero-video video { + left: 50%; + min-height: 100%; + min-width: 100%; + position: absolute; + top: 50%; + transform: translate3d(-50%, -50%, 0); } + html.theme--documenter-dark .hero-video.is-transparent { + opacity: 0.3; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero-video { + display: none; } } + html.theme--documenter-dark .hero-buttons { + margin-top: 1.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero-buttons .button { + display: flex; } + html.theme--documenter-dark .hero-buttons .button:not(:last-child) { + margin-bottom: 0.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero-buttons { + display: flex; + justify-content: center; } + html.theme--documenter-dark .hero-buttons .button:not(:last-child) { + margin-right: 1.5rem; } } + html.theme--documenter-dark .hero-head, + html.theme--documenter-dark .hero-foot { + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .hero-body { + flex-grow: 1; + flex-shrink: 0; + padding: 3rem 1.5rem; } + html.theme--documenter-dark .section { + padding: 3rem 1.5rem; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .section.is-medium { + padding: 9rem 1.5rem; } + html.theme--documenter-dark .section.is-large { + padding: 18rem 1.5rem; } } + html.theme--documenter-dark .footer { + background-color: #282f2f; + padding: 3rem 1.5rem 6rem; } + html.theme--documenter-dark hr { + height: 1px; } + html.theme--documenter-dark h6 { + text-transform: uppercase; + letter-spacing: 0.5px; } + html.theme--documenter-dark .hero { + background-color: #343c3d; } + html.theme--documenter-dark a { + transition: all 200ms ease; } + html.theme--documenter-dark .button { + transition: all 200ms ease; + border-width: 1px; + color: white; } + 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: white; } + 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: white; + 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: white; } + 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: 0.4em; } + html.theme--documenter-dark .card .card-image img { + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .card .card-header { + box-shadow: none; + background-color: rgba(18, 18, 18, 0.2); + border-radius: 0.4em 0.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: white; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-light a:not(.button) { + color: #282f2f; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-dark a:not(.button), html.theme--documenter-dark .content kbd.notification a:not(.button) { + color: #ecf0f1; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-primary a:not(.button), html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-link a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-info a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-success a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-warning a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-danger a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .tag, html.theme--documenter-dark .content kbd, html.theme--documenter-dark .docstring > section > a.docs-sourcelink { + border-radius: 0.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: white; } + html.theme--documenter-dark .message-body { + border-width: 1px; + border-color: #343c3d; } + html.theme--documenter-dark .navbar { + border-radius: 0.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 0.4em 0.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: transparent; } + html.theme--documenter-dark .hero.is-black .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-light .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + 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: transparent; } + 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: transparent; } + html.theme--documenter-dark .hero.is-link .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-info .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-success .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-warning .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-danger .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark h1 .docs-heading-anchor, html.theme--documenter-dark h1 .docs-heading-anchor:hover, html.theme--documenter-dark h1 .docs-heading-anchor:visited, html.theme--documenter-dark h2 .docs-heading-anchor, html.theme--documenter-dark h2 .docs-heading-anchor:hover, html.theme--documenter-dark h2 .docs-heading-anchor:visited, html.theme--documenter-dark h3 .docs-heading-anchor, html.theme--documenter-dark h3 .docs-heading-anchor:hover, html.theme--documenter-dark h3 .docs-heading-anchor:visited, html.theme--documenter-dark h4 .docs-heading-anchor, html.theme--documenter-dark h4 .docs-heading-anchor:hover, html.theme--documenter-dark h4 .docs-heading-anchor:visited, html.theme--documenter-dark h5 .docs-heading-anchor, html.theme--documenter-dark h5 .docs-heading-anchor:hover, html.theme--documenter-dark h5 .docs-heading-anchor:visited, html.theme--documenter-dark h6 .docs-heading-anchor, html.theme--documenter-dark h6 .docs-heading-anchor:hover, html.theme--documenter-dark h6 .docs-heading-anchor:visited { + color: #f2f2f2; } + html.theme--documenter-dark h1 .docs-heading-anchor-permalink, html.theme--documenter-dark h2 .docs-heading-anchor-permalink, html.theme--documenter-dark h3 .docs-heading-anchor-permalink, html.theme--documenter-dark h4 .docs-heading-anchor-permalink, html.theme--documenter-dark h5 .docs-heading-anchor-permalink, html.theme--documenter-dark h6 .docs-heading-anchor-permalink { + visibility: hidden; + vertical-align: middle; + margin-left: 0.5em; + font-size: 0.7rem; } + html.theme--documenter-dark h1 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h2 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h3 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h4 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h5 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h6 .docs-heading-anchor-permalink::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f0c1"; } + html.theme--documenter-dark h1:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h2:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h3:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h4:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h5:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h6:hover .docs-heading-anchor-permalink { + visibility: visible; } + html.theme--documenter-dark .docs-light-only { + display: none !important; } + html.theme--documenter-dark pre { + position: relative; + overflow: hidden; } + html.theme--documenter-dark pre code, html.theme--documenter-dark pre code.hljs { + padding: 0 0.75rem !important; + overflow: auto; + display: block; } + html.theme--documenter-dark pre code:first-of-type, html.theme--documenter-dark pre code.hljs:first-of-type { + padding-top: 0.5rem !important; } + html.theme--documenter-dark pre code:last-of-type, html.theme--documenter-dark pre code.hljs:last-of-type { + padding-bottom: 0.5rem !important; } + html.theme--documenter-dark pre .copy-button { + opacity: 0.2; + transition: opacity 0.2s; + position: absolute; + right: 0em; + top: 0em; + padding: 0.5em; + width: 2.5em; + height: 2.5em; + background: transparent; + border: none; + font-family: "Font Awesome 5 Free"; + color: #fff; + cursor: pointer; + text-align: center; } + html.theme--documenter-dark pre .copy-button:focus, html.theme--documenter-dark pre .copy-button:hover { + opacity: 1; + background: rgba(255, 255, 255, 0.1); + color: #1abc9c; } + html.theme--documenter-dark pre .copy-button.success { + color: #259a12; + opacity: 1; } + html.theme--documenter-dark pre .copy-button.error { + color: #cb3c33; + opacity: 1; } + html.theme--documenter-dark pre:hover .copy-button { + opacity: 1; } + html.theme--documenter-dark .admonition { + background-color: #282f2f; + border-style: solid; + border-width: 1px; + border-color: #5e6d6f; + border-radius: 0.4em; + font-size: 15px; } + html.theme--documenter-dark .admonition strong { + color: currentColor; } + html.theme--documenter-dark .admonition.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.admonition { + font-size: 0.85em; } + html.theme--documenter-dark .admonition.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .admonition.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .admonition.is-default { + background-color: #282f2f; + border-color: #5e6d6f; } + html.theme--documenter-dark .admonition.is-default > .admonition-header { + background-color: #5e6d6f; } + 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; } + 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; } + 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; } + 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; } + 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; } + html.theme--documenter-dark .admonition-header { + background-color: #5e6d6f; + align-items: center; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.5rem 0.75rem; + position: relative; } + html.theme--documenter-dark .admonition-header:before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + margin-right: 0.75rem; + content: "\f06a"; } + html.theme--documenter-dark .admonition-body { + color: #fff; + padding: 0.5rem 0.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: transparent; + border: 1px solid #5e6d6f; + box-shadow: none; + max-width: 100%; } + html.theme--documenter-dark .docstring > header { + display: flex; + flex-grow: 1; + align-items: stretch; + padding: 0.5rem 0.75rem; + background-color: #282f2f; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + box-shadow: none; + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .docstring > header code { + background-color: transparent; } + html.theme--documenter-dark .docstring > header .docstring-binding { + margin-right: 0.3em; } + html.theme--documenter-dark .docstring > header .docstring-category { + margin-left: 0.3em; } + html.theme--documenter-dark .docstring > section { + position: relative; + padding: 0.75rem 0.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: 0.375rem; + bottom: 0.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; + border-bottom: 3px solid #9e1b0d; + padding: 10px 35px; + text-align: center; + font-size: 15px; } + html.theme--documenter-dark .outdated-warning-overlay .outdated-warning-closer { + position: absolute; + top: calc(50% - 10px); + right: 18px; + cursor: pointer; + width: 12px; } + html.theme--documenter-dark .outdated-warning-overlay a { + color: #1abc9c; } + html.theme--documenter-dark .outdated-warning-overlay a:hover { + color: #1dd2af; } + html.theme--documenter-dark .content pre { + border: 1px solid #5e6d6f; } + html.theme--documenter-dark .content code { + font-weight: inherit; } + html.theme--documenter-dark .content a code { + color: #1abc9c; } + html.theme--documenter-dark .content h1 code, html.theme--documenter-dark .content h2 code, html.theme--documenter-dark .content h3 code, html.theme--documenter-dark .content h4 code, html.theme--documenter-dark .content h5 code, html.theme--documenter-dark .content h6 code { + color: #f2f2f2; } + html.theme--documenter-dark .content table { + display: block; + width: initial; + max-width: 100%; + overflow-x: auto; } + html.theme--documenter-dark .content blockquote > ul:first-child, html.theme--documenter-dark .content blockquote > ol:first-child, html.theme--documenter-dark .content .admonition-body > ul:first-child, html.theme--documenter-dark .content .admonition-body > ol:first-child { + margin-top: 0; } + html.theme--documenter-dark pre, html.theme--documenter-dark code { + font-variant-ligatures: no-contextual; } + html.theme--documenter-dark .breadcrumb a.is-disabled { + cursor: default; + pointer-events: none; } + html.theme--documenter-dark .breadcrumb a.is-disabled, html.theme--documenter-dark .breadcrumb a.is-disabled:hover { + color: #f2f2f2; } + html.theme--documenter-dark .hljs { + background: initial !important; } + html.theme--documenter-dark .katex .katex-mathml { + top: 0; + right: 0; } + html.theme--documenter-dark .katex-display, html.theme--documenter-dark mjx-container, html.theme--documenter-dark .MathJax_Display { + margin: 0.5em 0 !important; } + html.theme--documenter-dark html { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; } + html.theme--documenter-dark li.no-marker { + list-style: none; } + html.theme--documenter-dark #documenter .docs-main > article { + overflow-wrap: break-word; } + html.theme--documenter-dark #documenter .docs-main > article .math-container { + overflow-x: auto; + overflow-y: hidden; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-main { + max-width: 52rem; + margin-left: 20rem; + padding-right: 1rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main { + width: 100%; } + html.theme--documenter-dark #documenter .docs-main > article { + max-width: 52rem; + margin-left: auto; + margin-right: auto; + margin-bottom: 1rem; + padding: 0 1rem; } + html.theme--documenter-dark #documenter .docs-main > header, html.theme--documenter-dark #documenter .docs-main > nav { + max-width: 100%; + width: 100%; + margin: 0; } } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar { + background-color: #1f2424; + border-bottom: 1px solid #5e6d6f; + z-index: 2; + min-height: 4rem; + margin-bottom: 1rem; + display: flex; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .breadcrumb { + flex-grow: 1; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right { + display: flex; + white-space: nowrap; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-icon, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + display: inline-block; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label { + padding: 0; + margin-left: 0.3em; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button { + margin: auto 0 auto 1rem; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + font-size: 1.5rem; + margin: auto 0 auto 1rem; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar > * { + margin: auto 0; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main header.docs-navbar { + position: sticky; + top: 0; + padding: 0 1rem; + /* For Headroom.js */ + transition-property: top, box-shadow; + -webkit-transition-property: top, box-shadow; + /* Safari */ + transition-duration: 0.3s; + -webkit-transition-duration: 0.3s; + /* Safari */ } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--not-top { + box-shadow: 0.2rem 0rem 0.4rem #171717; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } + 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; + /* Safari */ } } + html.theme--documenter-dark #documenter .docs-main section.footnotes { + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-main section.footnotes li .tag:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .docstring > section > a.docs-sourcelink:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .content kbd:first-child, html.theme--documenter-dark .content #documenter .docs-main section.footnotes li kbd:first-child { + margin-right: 1em; + margin-bottom: 0.4em; } + html.theme--documenter-dark #documenter .docs-main .docs-footer { + display: flex; + flex-wrap: wrap; + margin-left: 0; + margin-right: 0; + border-top: 1px solid #5e6d6f; + padding-top: 1rem; + padding-bottom: 1rem; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main .docs-footer { + padding-left: 1rem; + padding-right: 1rem; } } + html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage, html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-prevpage { + flex-grow: 1; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage { + text-align: right; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .flexbox-break { + flex-basis: 100%; + height: 0; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .footer-message { + font-size: 0.8em; + margin: 0.5em auto 0 auto; + text-align: center; } + html.theme--documenter-dark #documenter .docs-sidebar { + display: flex; + flex-direction: column; + color: #fff; + background-color: #282f2f; + border-right: 1px solid #5e6d6f; + padding: 0; + flex: 0 0 18rem; + z-index: 5; + font-size: 15px; + position: fixed; + left: -18rem; + width: 18rem; + height: 100%; + transition: left 0.3s; + /* Setting up a nicer theme style for the scrollbar */ } + html.theme--documenter-dark #documenter .docs-sidebar.visible { + left: 0; + box-shadow: 0.4rem 0rem 0.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; + /* Managing collapsible submenus */ } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li > .tocitem { + font-weight: bold; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li li { + font-size: 14.25px; + margin-left: 1em; + border-left: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input.collapse-toggle { + display: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.collapsed { + display: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ ul.collapsed { + display: block; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem { + display: flex; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label { + flex-grow: 2; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron { + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; + font-size: 11.25px; + margin-left: 1rem; + margin-top: auto; + margin-bottom: auto; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f054"; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before { + content: "\f078"; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem { + display: block; + padding: 0.5rem 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem:hover { + color: #fff; + background: #282f2f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu a.tocitem:hover, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem:hover { + color: #fff; + background-color: #32393a; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active { + border-top: 1px solid #5e6d6f; + border-bottom: 1px solid #5e6d6f; + background-color: #1f2424; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover { + background-color: #1f2424; + color: #fff; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover { + background-color: #32393a; + color: #fff; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li.is-active:first-child { + border-top: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal { + margin: 0 0.5rem 0.5rem; + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal li { + font-size: 12.75px; + border-left: none; + margin-left: 0; + margin-top: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem { + width: 100%; + padding: 0; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before { + content: "⚬"; + margin-right: 0.4em; } + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search { + margin: auto; + margin-top: 0.5rem; + margin-bottom: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + width: 14.4rem; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar { + width: .3rem; + background: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #3b4445; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover { + background: #4e5a5c; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-sidebar { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar { + width: .3rem; + background: none; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #3b4445; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover { + background: #4e5a5c; } } + html.theme--documenter-dark #documenter .docs-main #documenter-search-info { + margin-bottom: 1rem; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results { + list-style-type: circle; + list-style-position: outside; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results li { + margin-left: 2rem; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results .docs-highlight { + background-color: yellow; } + html.theme--documenter-dark { + background-color: #1f2424; + font-size: 16px; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + html.theme--documenter-dark .ansi span.sgr1 { + font-weight: bolder; } + html.theme--documenter-dark .ansi span.sgr2 { + font-weight: lighter; } + html.theme--documenter-dark .ansi span.sgr3 { + font-style: italic; } + html.theme--documenter-dark .ansi span.sgr4 { + text-decoration: underline; } + html.theme--documenter-dark .ansi span.sgr7 { + color: #1f2424; + background-color: #fff; } + html.theme--documenter-dark .ansi span.sgr8 { + color: transparent; } + html.theme--documenter-dark .ansi span.sgr8 span { + color: transparent; } + html.theme--documenter-dark .ansi span.sgr9 { + text-decoration: line-through; } + html.theme--documenter-dark .ansi span.sgr30 { + color: #242424; } + html.theme--documenter-dark .ansi span.sgr31 { + color: #f6705f; } + html.theme--documenter-dark .ansi span.sgr32 { + color: #4fb43a; } + html.theme--documenter-dark .ansi span.sgr33 { + color: #f4c72f; } + html.theme--documenter-dark .ansi span.sgr34 { + color: #7587f0; } + html.theme--documenter-dark .ansi span.sgr35 { + color: #bc89d3; } + html.theme--documenter-dark .ansi span.sgr36 { + color: #49b6ca; } + html.theme--documenter-dark .ansi span.sgr37 { + color: #b3bdbe; } + html.theme--documenter-dark .ansi span.sgr40 { + background-color: #242424; } + html.theme--documenter-dark .ansi span.sgr41 { + background-color: #f6705f; } + html.theme--documenter-dark .ansi span.sgr42 { + background-color: #4fb43a; } + html.theme--documenter-dark .ansi span.sgr43 { + background-color: #f4c72f; } + html.theme--documenter-dark .ansi span.sgr44 { + background-color: #7587f0; } + html.theme--documenter-dark .ansi span.sgr45 { + background-color: #bc89d3; } + html.theme--documenter-dark .ansi span.sgr46 { + background-color: #49b6ca; } + html.theme--documenter-dark .ansi span.sgr47 { + background-color: #b3bdbe; } + html.theme--documenter-dark .ansi span.sgr90 { + color: #92a0a2; } + html.theme--documenter-dark .ansi span.sgr91 { + color: #ff8674; } + html.theme--documenter-dark .ansi span.sgr92 { + color: #79d462; } + html.theme--documenter-dark .ansi span.sgr93 { + color: #ffe76b; } + html.theme--documenter-dark .ansi span.sgr94 { + color: #8a98ff; } + html.theme--documenter-dark .ansi span.sgr95 { + color: #d2a4e6; } + html.theme--documenter-dark .ansi span.sgr96 { + color: #6bc8db; } + html.theme--documenter-dark .ansi span.sgr97 { + color: #ecf0f1; } + html.theme--documenter-dark .ansi span.sgr100 { + background-color: #92a0a2; } + html.theme--documenter-dark .ansi span.sgr101 { + background-color: #ff8674; } + html.theme--documenter-dark .ansi span.sgr102 { + background-color: #79d462; } + html.theme--documenter-dark .ansi span.sgr103 { + background-color: #ffe76b; } + html.theme--documenter-dark .ansi span.sgr104 { + background-color: #8a98ff; } + html.theme--documenter-dark .ansi span.sgr105 { + background-color: #d2a4e6; } + html.theme--documenter-dark .ansi span.sgr106 { + background-color: #6bc8db; } + html.theme--documenter-dark .ansi span.sgr107 { + background-color: #ecf0f1; } + html.theme--documenter-dark code.language-julia-repl > span.hljs-meta { + color: #4fb43a; + font-weight: bolder; } + html.theme--documenter-dark .hljs { + background: #2b2b2b; + color: #f8f8f2; } + html.theme--documenter-dark .hljs-comment, + html.theme--documenter-dark .hljs-quote { + color: #d4d0ab; } + html.theme--documenter-dark .hljs-variable, + html.theme--documenter-dark .hljs-template-variable, + html.theme--documenter-dark .hljs-tag, + html.theme--documenter-dark .hljs-name, + html.theme--documenter-dark .hljs-selector-id, + html.theme--documenter-dark .hljs-selector-class, + html.theme--documenter-dark .hljs-regexp, + html.theme--documenter-dark .hljs-deletion { + color: #ffa07a; } + html.theme--documenter-dark .hljs-number, + html.theme--documenter-dark .hljs-built_in, + html.theme--documenter-dark .hljs-literal, + html.theme--documenter-dark .hljs-type, + html.theme--documenter-dark .hljs-params, + html.theme--documenter-dark .hljs-meta, + html.theme--documenter-dark .hljs-link { + color: #f5ab35; } + html.theme--documenter-dark .hljs-attribute { + color: #ffd700; } + html.theme--documenter-dark .hljs-string, + html.theme--documenter-dark .hljs-symbol, + html.theme--documenter-dark .hljs-bullet, + html.theme--documenter-dark .hljs-addition { + color: #abe338; } + html.theme--documenter-dark .hljs-title, + html.theme--documenter-dark .hljs-section { + color: #00e0e0; } + html.theme--documenter-dark .hljs-keyword, + html.theme--documenter-dark .hljs-selector-tag { + color: #dcc6e0; } + html.theme--documenter-dark .hljs-emphasis { + font-style: italic; } + html.theme--documenter-dark .hljs-strong { + font-weight: bold; } + @media screen and (-ms-high-contrast: active) { + html.theme--documenter-dark .hljs-addition, + html.theme--documenter-dark .hljs-attribute, + html.theme--documenter-dark .hljs-built_in, + html.theme--documenter-dark .hljs-bullet, + html.theme--documenter-dark .hljs-comment, + html.theme--documenter-dark .hljs-link, + html.theme--documenter-dark .hljs-literal, + html.theme--documenter-dark .hljs-meta, + html.theme--documenter-dark .hljs-number, + html.theme--documenter-dark .hljs-params, + html.theme--documenter-dark .hljs-string, + html.theme--documenter-dark .hljs-symbol, + html.theme--documenter-dark .hljs-type, + html.theme--documenter-dark .hljs-quote { + color: highlight; } + html.theme--documenter-dark .hljs-keyword, + html.theme--documenter-dark .hljs-selector-tag { + font-weight: bold; } } + html.theme--documenter-dark .hljs-subst { + color: #f8f8f2; } diff --git a/previews/PR341/assets/themes/documenter-light.css b/previews/PR341/assets/themes/documenter-light.css new file mode 100644 index 000000000..9595d5b8e --- /dev/null +++ b/previews/PR341/assets/themes/documenter-light.css @@ -0,0 +1,7738 @@ +@charset "UTF-8"; +/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */ +@keyframes spinAround { + from { + transform: rotate(0deg); } + to { + transform: rotate(359deg); } } + +.tabs, .pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis, .breadcrumb, .file, .button, .is-unselectable, .modal-close, .delete { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +.navbar-link:not(.is-arrowless)::after, .select:not(.is-multiple):not(.is-loading)::after { + border: 3px solid transparent; + border-radius: 2px; + border-right: 0; + border-top: 0; + content: " "; + display: block; + height: 0.625em; + margin-top: -0.4375em; + pointer-events: none; + position: absolute; + top: 50%; + transform: rotate(-45deg); + transform-origin: center; + width: 0.625em; } + +.admonition:not(:last-child), .tabs:not(:last-child), .message:not(:last-child), .list:not(:last-child), .level:not(:last-child), .breadcrumb:not(:last-child), .highlight:not(:last-child), .block:not(:last-child), .title:not(:last-child), +.subtitle:not(:last-child), .table-container:not(:last-child), .table:not(:last-child), .progress:not(:last-child), .notification:not(:last-child), .content:not(:last-child), .box:not(:last-child) { + margin-bottom: 1.5rem; } + +.modal-close, .delete { + -moz-appearance: none; + -webkit-appearance: none; + background-color: rgba(10, 10, 10, 0.2); + border: none; + border-radius: 290486px; + cursor: pointer; + pointer-events: auto; + display: inline-block; + flex-grow: 0; + flex-shrink: 0; + font-size: 0; + height: 20px; + max-height: 20px; + max-width: 20px; + min-height: 20px; + min-width: 20px; + outline: none; + position: relative; + vertical-align: top; + width: 20px; } + .modal-close::before, .delete::before, .modal-close::after, .delete::after { + background-color: white; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + .modal-close::before, .delete::before { + height: 2px; + width: 50%; } + .modal-close::after, .delete::after { + height: 50%; + width: 2px; } + .modal-close:hover, .delete:hover, .modal-close:focus, .delete:focus { + background-color: rgba(10, 10, 10, 0.3); } + .modal-close:active, .delete:active { + background-color: rgba(10, 10, 10, 0.4); } + .is-small.modal-close, #documenter .docs-sidebar form.docs-search > input.modal-close, .is-small.delete, #documenter .docs-sidebar form.docs-search > input.delete { + height: 16px; + max-height: 16px; + max-width: 16px; + min-height: 16px; + min-width: 16px; + width: 16px; } + .is-medium.modal-close, .is-medium.delete { + height: 24px; + max-height: 24px; + max-width: 24px; + min-height: 24px; + min-width: 24px; + width: 24px; } + .is-large.modal-close, .is-large.delete { + height: 32px; + max-height: 32px; + max-width: 32px; + min-height: 32px; + min-width: 32px; + width: 32px; } + +.control.is-loading::after, .select.is-loading::after, .loader, .button.is-loading::after { + animation: spinAround 500ms infinite linear; + border: 2px solid #dbdbdb; + border-radius: 290486px; + border-right-color: transparent; + border-top-color: transparent; + content: ""; + display: block; + height: 1em; + position: relative; + width: 1em; } + +.hero-video, .modal-background, .modal, .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img, +.image.is-square .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img, +.image.is-1by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img, +.image.is-5by4 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img, +.image.is-4by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img, +.image.is-3by2 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img, +.image.is-5by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img, +.image.is-16by9 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img, +.image.is-2by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img, +.image.is-3by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img, +.image.is-4by5 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img, +.image.is-3by4 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img, +.image.is-2by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img, +.image.is-3by5 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img, +.image.is-9by16 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img, +.image.is-1by2 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img, +.image.is-1by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, .is-overlay { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; } + +.pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis, .file-cta, +.file-name, .select select, .textarea, .input, #documenter .docs-sidebar form.docs-search > input, .button { + -moz-appearance: none; + -webkit-appearance: none; + align-items: center; + border: 1px solid transparent; + border-radius: 4px; + box-shadow: none; + display: inline-flex; + font-size: 1rem; + height: 2.25em; + justify-content: flex-start; + line-height: 1.5; + padding-bottom: calc(0.375em - 1px); + padding-left: calc(0.625em - 1px); + padding-right: calc(0.625em - 1px); + padding-top: calc(0.375em - 1px); + position: relative; + vertical-align: top; } + .pagination-previous:focus, + .pagination-next:focus, + .pagination-link:focus, + .pagination-ellipsis:focus, .file-cta:focus, + .file-name:focus, .select select:focus, .textarea:focus, .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .button:focus, .is-focused.pagination-previous, + .is-focused.pagination-next, + .is-focused.pagination-link, + .is-focused.pagination-ellipsis, .is-focused.file-cta, + .is-focused.file-name, .select select.is-focused, .is-focused.textarea, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-focused.button, .pagination-previous:active, + .pagination-next:active, + .pagination-link:active, + .pagination-ellipsis:active, .file-cta:active, + .file-name:active, .select select:active, .textarea:active, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .button:active, .is-active.pagination-previous, + .is-active.pagination-next, + .is-active.pagination-link, + .is-active.pagination-ellipsis, .is-active.file-cta, + .is-active.file-name, .select select.is-active, .is-active.textarea, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .is-active.button { + outline: none; } + .pagination-previous[disabled], + .pagination-next[disabled], + .pagination-link[disabled], + .pagination-ellipsis[disabled], .file-cta[disabled], + .file-name[disabled], .select select[disabled], .textarea[disabled], .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], .button[disabled], fieldset[disabled] .pagination-previous, + fieldset[disabled] .pagination-next, + fieldset[disabled] .pagination-link, + fieldset[disabled] .pagination-ellipsis, fieldset[disabled] .file-cta, + fieldset[disabled] .file-name, fieldset[disabled] .select select, .select fieldset[disabled] select, fieldset[disabled] .textarea, fieldset[disabled] .input, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, fieldset[disabled] .button { + cursor: not-allowed; } + +/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */ +html, +body, +p, +ol, +ul, +li, +dl, +dt, +dd, +blockquote, +figure, +fieldset, +legend, +textarea, +pre, +iframe, +hr, +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + padding: 0; } + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: 100%; + font-weight: normal; } + +ul { + list-style: none; } + +button, +input, +select, +textarea { + margin: 0; } + +html { + box-sizing: border-box; } + +*, *::before, *::after { + box-sizing: inherit; } + +img, +embed, +iframe, +object, +video { + height: auto; + max-width: 100%; } + +audio { + max-width: 100%; } + +iframe { + border: 0; } + +table { + border-collapse: collapse; + border-spacing: 0; } + +td, +th { + padding: 0; } + td:not([align]), + th:not([align]) { + text-align: left; } + +html { + background-color: white; + font-size: 16px; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + +article, +aside, +figure, +footer, +header, +hgroup, +section { + display: block; } + +body, +button, +input, +select, +textarea { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; } + +code, +pre { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; } + +body { + color: #222222; + 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: #000000; + font-size: 0.875em; + font-weight: normal; + padding: 0.1em; } + +hr { + background-color: whitesmoke; + 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: 0.875em; } + +span { + font-style: inherit; + font-weight: inherit; } + +strong { + color: #222222; + font-weight: 700; } + +fieldset { + border: none; } + +pre { + -webkit-overflow-scrolling: touch; + background-color: whitesmoke; + color: #222222; + font-size: 0.875em; + overflow-x: auto; + padding: 1.25rem 1.5rem; + white-space: pre; + word-wrap: normal; } + pre code { + background-color: transparent; + color: currentColor; + font-size: 1em; + padding: 0; } + +table td, +table th { + vertical-align: top; } + table td:not([align]), + table th:not([align]) { + text-align: left; } + +table th { + color: #222222; } + +.is-clearfix::after { + clear: both; + content: " "; + display: table; } + +.is-pulled-left { + float: left !important; } + +.is-pulled-right { + float: right !important; } + +.is-clipped { + overflow: hidden !important; } + +.is-size-1 { + font-size: 3rem !important; } + +.is-size-2 { + font-size: 2.5rem !important; } + +.is-size-3 { + font-size: 2rem !important; } + +.is-size-4 { + font-size: 1.5rem !important; } + +.is-size-5 { + font-size: 1.25rem !important; } + +.is-size-6 { + font-size: 1rem !important; } + +.is-size-7, .docstring > section > a.docs-sourcelink { + font-size: 0.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: 0.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: 0.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: 0.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: 0.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: 0.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: 0.75rem !important; } } + +.has-text-centered { + text-align: center !important; } + +.has-text-justified { + text-align: justify !important; } + +.has-text-left { + text-align: left !important; } + +.has-text-right { + text-align: right !important; } + +@media screen and (max-width: 768px) { + .has-text-centered-mobile { + text-align: center !important; } } + +@media screen and (min-width: 769px), print { + .has-text-centered-tablet { + text-align: center !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-centered-tablet-only { + text-align: center !important; } } + +@media screen and (max-width: 1055px) { + .has-text-centered-touch { + text-align: center !important; } } + +@media screen and (min-width: 1056px) { + .has-text-centered-desktop { + text-align: center !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-centered-desktop-only { + text-align: center !important; } } + +@media screen and (min-width: 1216px) { + .has-text-centered-widescreen { + text-align: center !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-centered-widescreen-only { + text-align: center !important; } } + +@media screen and (min-width: 1408px) { + .has-text-centered-fullhd { + text-align: center !important; } } + +@media screen and (max-width: 768px) { + .has-text-justified-mobile { + text-align: justify !important; } } + +@media screen and (min-width: 769px), print { + .has-text-justified-tablet { + text-align: justify !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-justified-tablet-only { + text-align: justify !important; } } + +@media screen and (max-width: 1055px) { + .has-text-justified-touch { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) { + .has-text-justified-desktop { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-justified-desktop-only { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) { + .has-text-justified-widescreen { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-justified-widescreen-only { + text-align: justify !important; } } + +@media screen and (min-width: 1408px) { + .has-text-justified-fullhd { + text-align: justify !important; } } + +@media screen and (max-width: 768px) { + .has-text-left-mobile { + text-align: left !important; } } + +@media screen and (min-width: 769px), print { + .has-text-left-tablet { + text-align: left !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-left-tablet-only { + text-align: left !important; } } + +@media screen and (max-width: 1055px) { + .has-text-left-touch { + text-align: left !important; } } + +@media screen and (min-width: 1056px) { + .has-text-left-desktop { + text-align: left !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-left-desktop-only { + text-align: left !important; } } + +@media screen and (min-width: 1216px) { + .has-text-left-widescreen { + text-align: left !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-left-widescreen-only { + text-align: left !important; } } + +@media screen and (min-width: 1408px) { + .has-text-left-fullhd { + text-align: left !important; } } + +@media screen and (max-width: 768px) { + .has-text-right-mobile { + text-align: right !important; } } + +@media screen and (min-width: 769px), print { + .has-text-right-tablet { + text-align: right !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-right-tablet-only { + text-align: right !important; } } + +@media screen and (max-width: 1055px) { + .has-text-right-touch { + text-align: right !important; } } + +@media screen and (min-width: 1056px) { + .has-text-right-desktop { + text-align: right !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-right-desktop-only { + text-align: right !important; } } + +@media screen and (min-width: 1216px) { + .has-text-right-widescreen { + text-align: right !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-right-widescreen-only { + text-align: right !important; } } + +@media screen and (min-width: 1408px) { + .has-text-right-fullhd { + text-align: right !important; } } + +.is-capitalized { + text-transform: capitalize !important; } + +.is-lowercase { + text-transform: lowercase !important; } + +.is-uppercase { + text-transform: uppercase !important; } + +.is-italic { + font-style: italic !important; } + +.has-text-white { + color: white !important; } + +a.has-text-white:hover, a.has-text-white:focus { + color: #e6e6e6 !important; } + +.has-background-white { + background-color: white !important; } + +.has-text-black { + color: #0a0a0a !important; } + +a.has-text-black:hover, a.has-text-black:focus { + color: black !important; } + +.has-background-black { + background-color: #0a0a0a !important; } + +.has-text-light { + color: whitesmoke !important; } + +a.has-text-light:hover, a.has-text-light:focus { + color: #dbdbdb !important; } + +.has-background-light { + background-color: whitesmoke !important; } + +.has-text-dark { + color: #363636 !important; } + +a.has-text-dark:hover, a.has-text-dark:focus { + color: #1c1c1c !important; } + +.has-background-dark { + background-color: #363636 !important; } + +.has-text-primary { + color: #4eb5de !important; } + +a.has-text-primary:hover, a.has-text-primary:focus { + color: #27a1d2 !important; } + +.has-background-primary { + background-color: #4eb5de !important; } + +.has-text-link { + color: #2e63b8 !important; } + +a.has-text-link:hover, a.has-text-link:focus { + color: #244d8f !important; } + +.has-background-link { + background-color: #2e63b8 !important; } + +.has-text-info { + color: #209cee !important; } + +a.has-text-info:hover, a.has-text-info:focus { + color: #1081cb !important; } + +.has-background-info { + background-color: #209cee !important; } + +.has-text-success { + color: #22c35b !important; } + +a.has-text-success:hover, a.has-text-success:focus { + color: #1a9847 !important; } + +.has-background-success { + background-color: #22c35b !important; } + +.has-text-warning { + color: #ffdd57 !important; } + +a.has-text-warning:hover, a.has-text-warning:focus { + color: #ffd324 !important; } + +.has-background-warning { + background-color: #ffdd57 !important; } + +.has-text-danger { + color: #da0b00 !important; } + +a.has-text-danger:hover, a.has-text-danger:focus { + color: #a70800 !important; } + +.has-background-danger { + background-color: #da0b00 !important; } + +.has-text-black-bis { + color: #121212 !important; } + +.has-background-black-bis { + background-color: #121212 !important; } + +.has-text-black-ter { + color: #242424 !important; } + +.has-background-black-ter { + background-color: #242424 !important; } + +.has-text-grey-darker { + color: #363636 !important; } + +.has-background-grey-darker { + background-color: #363636 !important; } + +.has-text-grey-dark { + color: #4a4a4a !important; } + +.has-background-grey-dark { + background-color: #4a4a4a !important; } + +.has-text-grey { + color: #6b6b6b !important; } + +.has-background-grey { + background-color: #6b6b6b !important; } + +.has-text-grey-light { + color: #b5b5b5 !important; } + +.has-background-grey-light { + background-color: #b5b5b5 !important; } + +.has-text-grey-lighter { + color: #dbdbdb !important; } + +.has-background-grey-lighter { + background-color: #dbdbdb !important; } + +.has-text-white-ter { + color: whitesmoke !important; } + +.has-background-white-ter { + background-color: whitesmoke !important; } + +.has-text-white-bis { + color: #fafafa !important; } + +.has-background-white-bis { + background-color: #fafafa !important; } + +.has-text-weight-light { + font-weight: 300 !important; } + +.has-text-weight-normal { + font-weight: 400 !important; } + +.has-text-weight-medium { + font-weight: 500 !important; } + +.has-text-weight-semibold { + font-weight: 600 !important; } + +.has-text-weight-bold { + font-weight: 700 !important; } + +.is-family-primary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-secondary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-sans-serif { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-monospace { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-family-code { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-block { + display: block !important; } + +@media screen and (max-width: 768px) { + .is-block-mobile { + display: block !important; } } + +@media screen and (min-width: 769px), print { + .is-block-tablet { + display: block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-block-tablet-only { + display: block !important; } } + +@media screen and (max-width: 1055px) { + .is-block-touch { + display: block !important; } } + +@media screen and (min-width: 1056px) { + .is-block-desktop { + display: block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-block-desktop-only { + display: block !important; } } + +@media screen and (min-width: 1216px) { + .is-block-widescreen { + display: block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-block-widescreen-only { + display: block !important; } } + +@media screen and (min-width: 1408px) { + .is-block-fullhd { + display: block !important; } } + +.is-flex { + display: flex !important; } + +@media screen and (max-width: 768px) { + .is-flex-mobile { + display: flex !important; } } + +@media screen and (min-width: 769px), print { + .is-flex-tablet { + display: flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-flex-tablet-only { + display: flex !important; } } + +@media screen and (max-width: 1055px) { + .is-flex-touch { + display: flex !important; } } + +@media screen and (min-width: 1056px) { + .is-flex-desktop { + display: flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-flex-desktop-only { + display: flex !important; } } + +@media screen and (min-width: 1216px) { + .is-flex-widescreen { + display: flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-flex-widescreen-only { + display: flex !important; } } + +@media screen and (min-width: 1408px) { + .is-flex-fullhd { + display: flex !important; } } + +.is-inline { + display: inline !important; } + +@media screen and (max-width: 768px) { + .is-inline-mobile { + display: inline !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-tablet { + display: inline !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-tablet-only { + display: inline !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-touch { + display: inline !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-desktop { + display: inline !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-desktop-only { + display: inline !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-widescreen { + display: inline !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-widescreen-only { + display: inline !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-fullhd { + display: inline !important; } } + +.is-inline-block { + display: inline-block !important; } + +@media screen and (max-width: 768px) { + .is-inline-block-mobile { + display: inline-block !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-block-tablet { + display: inline-block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-block-tablet-only { + display: inline-block !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-block-touch { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-block-desktop { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-block-desktop-only { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-block-widescreen { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-block-widescreen-only { + display: inline-block !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-block-fullhd { + display: inline-block !important; } } + +.is-inline-flex { + display: inline-flex !important; } + +@media screen and (max-width: 768px) { + .is-inline-flex-mobile { + display: inline-flex !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-flex-tablet { + display: inline-flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-flex-tablet-only { + display: inline-flex !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-flex-touch { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-flex-desktop { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-flex-desktop-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-flex-widescreen { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-flex-widescreen-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-flex-fullhd { + display: inline-flex !important; } } + +.is-hidden { + display: none !important; } + +.is-sr-only { + border: none !important; + clip: rect(0, 0, 0, 0) !important; + height: 0.01em !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + white-space: nowrap !important; + width: 0.01em !important; } + +@media screen and (max-width: 768px) { + .is-hidden-mobile { + display: none !important; } } + +@media screen and (min-width: 769px), print { + .is-hidden-tablet { + display: none !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-hidden-tablet-only { + display: none !important; } } + +@media screen and (max-width: 1055px) { + .is-hidden-touch { + display: none !important; } } + +@media screen and (min-width: 1056px) { + .is-hidden-desktop { + display: none !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-hidden-desktop-only { + display: none !important; } } + +@media screen and (min-width: 1216px) { + .is-hidden-widescreen { + display: none !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-hidden-widescreen-only { + display: none !important; } } + +@media screen and (min-width: 1408px) { + .is-hidden-fullhd { + display: none !important; } } + +.is-invisible { + visibility: hidden !important; } + +@media screen and (max-width: 768px) { + .is-invisible-mobile { + visibility: hidden !important; } } + +@media screen and (min-width: 769px), print { + .is-invisible-tablet { + visibility: hidden !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-invisible-tablet-only { + visibility: hidden !important; } } + +@media screen and (max-width: 1055px) { + .is-invisible-touch { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) { + .is-invisible-desktop { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-invisible-desktop-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) { + .is-invisible-widescreen { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-invisible-widescreen-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1408px) { + .is-invisible-fullhd { + visibility: hidden !important; } } + +.is-marginless { + margin: 0 !important; } + +.is-paddingless { + padding: 0 !important; } + +.is-radiusless { + border-radius: 0 !important; } + +.is-shadowless { + box-shadow: none !important; } + +.is-relative { + position: relative !important; } + +.box { + background-color: white; + border-radius: 6px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #222222; + display: block; + padding: 1.25rem; } + +a.box:hover, a.box:focus { + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #2e63b8; } + +a.box:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #2e63b8; } + +.button { + background-color: white; + border-color: #dbdbdb; + border-width: 1px; + color: #363636; + cursor: pointer; + justify-content: center; + padding-bottom: calc(0.375em - 1px); + padding-left: 0.75em; + padding-right: 0.75em; + padding-top: calc(0.375em - 1px); + text-align: center; + white-space: nowrap; } + .button strong { + color: inherit; } + .button .icon, .button .icon.is-small, .button #documenter .docs-sidebar form.docs-search > input.icon, #documenter .docs-sidebar .button form.docs-search > input.icon, .button .icon.is-medium, .button .icon.is-large { + height: 1.5em; + width: 1.5em; } + .button .icon:first-child:not(:last-child) { + margin-left: calc(-0.375em - 1px); + margin-right: 0.1875em; } + .button .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: calc(-0.375em - 1px); } + .button .icon:first-child:last-child { + margin-left: calc(-0.375em - 1px); + margin-right: calc(-0.375em - 1px); } + .button:hover, .button.is-hovered { + border-color: #b5b5b5; + color: #363636; } + .button:focus, .button.is-focused { + border-color: #3c5dcd; + color: #363636; } + .button:focus:not(:active), .button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .button:active, .button.is-active { + border-color: #4a4a4a; + color: #363636; } + .button.is-text { + background-color: transparent; + border-color: transparent; + color: #222222; + text-decoration: underline; } + .button.is-text:hover, .button.is-text.is-hovered, .button.is-text:focus, .button.is-text.is-focused { + background-color: whitesmoke; + color: #222222; } + .button.is-text:active, .button.is-text.is-active { + background-color: #e8e8e8; + color: #222222; } + .button.is-text[disabled], fieldset[disabled] .button.is-text { + background-color: transparent; + border-color: transparent; + box-shadow: none; } + .button.is-white { + background-color: white; + 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: white; + border-color: transparent; + box-shadow: none; } + .button.is-white.is-inverted { + background-color: #0a0a0a; + color: white; } + .button.is-white.is-inverted:hover, .button.is-white.is-inverted.is-hovered { + background-color: black; } + .button.is-white.is-inverted[disabled], fieldset[disabled] .button.is-white.is-inverted { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; + color: white; } + .button.is-white.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + .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: white; + border-color: white; + color: #0a0a0a; } + .button.is-white.is-outlined.is-loading::after { + border-color: transparent transparent white white !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: white; + box-shadow: none; + color: white; } + .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: white; } + .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 white white !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: white; } + .button.is-black:hover, .button.is-black.is-hovered { + background-color: #040404; + border-color: transparent; + color: white; } + .button.is-black:focus, .button.is-black.is-focused { + border-color: transparent; + color: white; } + .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: black; + border-color: transparent; + color: white; } + .button.is-black[disabled], fieldset[disabled] .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; } + .button.is-black.is-inverted { + background-color: white; + 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: white; + border-color: transparent; + box-shadow: none; + color: #0a0a0a; } + .button.is-black.is-loading::after { + border-color: transparent transparent white white !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: white; } + .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 white white !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: white; + color: white; } + .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: white; + 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: white; + box-shadow: none; + color: white; } + .button.is-light { + background-color: whitesmoke; + border-color: transparent; + color: #363636; } + .button.is-light:hover, .button.is-light.is-hovered { + background-color: #eeeeee; + border-color: transparent; + color: #363636; } + .button.is-light:focus, .button.is-light.is-focused { + border-color: transparent; + color: #363636; } + .button.is-light:focus:not(:active), .button.is-light.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } + .button.is-light:active, .button.is-light.is-active { + background-color: #e8e8e8; + border-color: transparent; + color: #363636; } + .button.is-light[disabled], fieldset[disabled] .button.is-light { + background-color: whitesmoke; + border-color: transparent; + box-shadow: none; } + .button.is-light.is-inverted { + background-color: #363636; + color: whitesmoke; } + .button.is-light.is-inverted:hover, .button.is-light.is-inverted.is-hovered { + background-color: #292929; } + .button.is-light.is-inverted[disabled], fieldset[disabled] .button.is-light.is-inverted { + background-color: #363636; + border-color: transparent; + box-shadow: none; + color: whitesmoke; } + .button.is-light.is-loading::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-light.is-outlined { + background-color: transparent; + border-color: whitesmoke; + color: whitesmoke; } + .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: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .button.is-light.is-outlined.is-loading::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-light.is-outlined.is-loading:hover::after, .button.is-light.is-outlined.is-loading.is-hovered::after, .button.is-light.is-outlined.is-loading:focus::after, .button.is-light.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-light.is-outlined[disabled], fieldset[disabled] .button.is-light.is-outlined { + background-color: transparent; + border-color: whitesmoke; + box-shadow: none; + color: whitesmoke; } + .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #363636; + color: #363636; } + .button.is-light.is-inverted.is-outlined:hover, .button.is-light.is-inverted.is-outlined.is-hovered, .button.is-light.is-inverted.is-outlined:focus, .button.is-light.is-inverted.is-outlined.is-focused { + background-color: #363636; + color: whitesmoke; } + .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 whitesmoke whitesmoke !important; } + .button.is-light.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #363636; + box-shadow: none; + color: #363636; } + .button.is-dark, .content kbd.button { + background-color: #363636; + border-color: transparent; + color: whitesmoke; } + .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: whitesmoke; } + .button.is-dark:focus, .content kbd.button:focus, .button.is-dark.is-focused, .content kbd.button.is-focused { + border-color: transparent; + color: whitesmoke; } + .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: whitesmoke; } + .button.is-dark[disabled], .content kbd.button[disabled], fieldset[disabled] .button.is-dark, fieldset[disabled] .content kbd.button, .content fieldset[disabled] kbd.button { + background-color: #363636; + border-color: transparent; + box-shadow: none; } + .button.is-dark.is-inverted, .content kbd.button.is-inverted { + background-color: whitesmoke; + color: #363636; } + .button.is-dark.is-inverted:hover, .content kbd.button.is-inverted:hover, .button.is-dark.is-inverted.is-hovered, .content kbd.button.is-inverted.is-hovered { + background-color: #e8e8e8; } + .button.is-dark.is-inverted[disabled], .content kbd.button.is-inverted[disabled], fieldset[disabled] .button.is-dark.is-inverted, fieldset[disabled] .content kbd.button.is-inverted, .content fieldset[disabled] kbd.button.is-inverted { + background-color: whitesmoke; + border-color: transparent; + box-shadow: none; + color: #363636; } + .button.is-dark.is-loading::after, .content kbd.button.is-loading::after { + border-color: transparent transparent whitesmoke whitesmoke !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: whitesmoke; } + .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 whitesmoke whitesmoke !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: whitesmoke; + color: whitesmoke; } + .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: whitesmoke; + 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: whitesmoke; + box-shadow: none; + color: whitesmoke; } + .button.is-primary, .docstring > section > a.button.docs-sourcelink { + background-color: #4eb5de; + border-color: transparent; + color: #fff; } + .button.is-primary:hover, .docstring > section > a.button.docs-sourcelink:hover, .button.is-primary.is-hovered, .docstring > section > a.button.is-hovered.docs-sourcelink { + background-color: #43b1dc; + border-color: transparent; + color: #fff; } + .button.is-primary:focus, .docstring > section > a.button.docs-sourcelink:focus, .button.is-primary.is-focused, .docstring > section > a.button.is-focused.docs-sourcelink { + border-color: transparent; + color: #fff; } + .button.is-primary:focus:not(:active), .docstring > section > a.button.docs-sourcelink:focus:not(:active), .button.is-primary.is-focused:not(:active), .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) { + box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } + .button.is-primary:active, .docstring > section > a.button.docs-sourcelink:active, .button.is-primary.is-active, .docstring > section > a.button.is-active.docs-sourcelink { + background-color: #39acda; + border-color: transparent; + color: #fff; } + .button.is-primary[disabled], .docstring > section > a.button.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary, fieldset[disabled] .docstring > section > a.button.docs-sourcelink { + background-color: #4eb5de; + border-color: transparent; + box-shadow: none; } + .button.is-primary.is-inverted, .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + color: #4eb5de; } + .button.is-primary.is-inverted:hover, .docstring > section > a.button.is-inverted.docs-sourcelink:hover, .button.is-primary.is-inverted.is-hovered, .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink { + background-color: #f2f2f2; } + .button.is-primary.is-inverted[disabled], .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-inverted, fieldset[disabled] .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #4eb5de; } + .button.is-primary.is-loading::after, .docstring > section > a.button.is-loading.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-primary.is-outlined, .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #4eb5de; + color: #4eb5de; } + .button.is-primary.is-outlined:hover, .docstring > section > a.button.is-outlined.docs-sourcelink:hover, .button.is-primary.is-outlined.is-hovered, .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-outlined:focus, .docstring > section > a.button.is-outlined.docs-sourcelink:focus, .button.is-primary.is-outlined.is-focused, .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink { + background-color: #4eb5de; + border-color: #4eb5de; + color: #fff; } + .button.is-primary.is-outlined.is-loading::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after { + border-color: transparent transparent #4eb5de #4eb5de !important; } + .button.is-primary.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-primary.is-outlined[disabled], .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-outlined, fieldset[disabled] .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #4eb5de; + box-shadow: none; + color: #4eb5de; } + .button.is-primary.is-inverted.is-outlined, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-primary.is-inverted.is-outlined:hover, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, .button.is-primary.is-inverted.is-outlined.is-hovered, .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-inverted.is-outlined:focus, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, .button.is-primary.is-inverted.is-outlined.is-focused, .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink { + background-color: #fff; + color: #4eb5de; } + .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #4eb5de #4eb5de !important; } + .button.is-primary.is-inverted.is-outlined[disabled], .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-inverted.is-outlined, fieldset[disabled] .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-link { + background-color: #2e63b8; + border-color: transparent; + color: #fff; } + .button.is-link:hover, .button.is-link.is-hovered { + background-color: #2b5eae; + border-color: transparent; + color: #fff; } + .button.is-link:focus, .button.is-link.is-focused { + border-color: transparent; + color: #fff; } + .button.is-link:focus:not(:active), .button.is-link.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .button.is-link:active, .button.is-link.is-active { + background-color: #2958a4; + border-color: transparent; + color: #fff; } + .button.is-link[disabled], fieldset[disabled] .button.is-link { + background-color: #2e63b8; + border-color: transparent; + box-shadow: none; } + .button.is-link.is-inverted { + background-color: #fff; + color: #2e63b8; } + .button.is-link.is-inverted:hover, .button.is-link.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-link.is-inverted[disabled], fieldset[disabled] .button.is-link.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #2e63b8; } + .button.is-link.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-link.is-outlined { + background-color: transparent; + border-color: #2e63b8; + color: #2e63b8; } + .button.is-link.is-outlined:hover, .button.is-link.is-outlined.is-hovered, .button.is-link.is-outlined:focus, .button.is-link.is-outlined.is-focused { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + .button.is-link.is-outlined.is-loading::after { + border-color: transparent transparent #2e63b8 #2e63b8 !important; } + .button.is-link.is-outlined.is-loading:hover::after, .button.is-link.is-outlined.is-loading.is-hovered::after, .button.is-link.is-outlined.is-loading:focus::after, .button.is-link.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-link.is-outlined[disabled], fieldset[disabled] .button.is-link.is-outlined { + background-color: transparent; + border-color: #2e63b8; + box-shadow: none; + color: #2e63b8; } + .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-link.is-inverted.is-outlined:hover, .button.is-link.is-inverted.is-outlined.is-hovered, .button.is-link.is-inverted.is-outlined:focus, .button.is-link.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #2e63b8; } + .button.is-link.is-inverted.is-outlined.is-loading:hover::after, .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-link.is-inverted.is-outlined.is-loading:focus::after, .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #2e63b8 #2e63b8 !important; } + .button.is-link.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-info { + background-color: #209cee; + border-color: transparent; + color: #fff; } + .button.is-info:hover, .button.is-info.is-hovered { + background-color: #1497ed; + border-color: transparent; + color: #fff; } + .button.is-info:focus, .button.is-info.is-focused { + border-color: transparent; + color: #fff; } + .button.is-info:focus:not(:active), .button.is-info.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } + .button.is-info:active, .button.is-info.is-active { + background-color: #1190e3; + border-color: transparent; + color: #fff; } + .button.is-info[disabled], fieldset[disabled] .button.is-info { + background-color: #209cee; + border-color: transparent; + box-shadow: none; } + .button.is-info.is-inverted { + background-color: #fff; + color: #209cee; } + .button.is-info.is-inverted:hover, .button.is-info.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-info.is-inverted[disabled], fieldset[disabled] .button.is-info.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #209cee; } + .button.is-info.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-info.is-outlined { + background-color: transparent; + border-color: #209cee; + color: #209cee; } + .button.is-info.is-outlined:hover, .button.is-info.is-outlined.is-hovered, .button.is-info.is-outlined:focus, .button.is-info.is-outlined.is-focused { + background-color: #209cee; + border-color: #209cee; + color: #fff; } + .button.is-info.is-outlined.is-loading::after { + border-color: transparent transparent #209cee #209cee !important; } + .button.is-info.is-outlined.is-loading:hover::after, .button.is-info.is-outlined.is-loading.is-hovered::after, .button.is-info.is-outlined.is-loading:focus::after, .button.is-info.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-info.is-outlined[disabled], fieldset[disabled] .button.is-info.is-outlined { + background-color: transparent; + border-color: #209cee; + box-shadow: none; + color: #209cee; } + .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-info.is-inverted.is-outlined:hover, .button.is-info.is-inverted.is-outlined.is-hovered, .button.is-info.is-inverted.is-outlined:focus, .button.is-info.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #209cee; } + .button.is-info.is-inverted.is-outlined.is-loading:hover::after, .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-info.is-inverted.is-outlined.is-loading:focus::after, .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #209cee #209cee !important; } + .button.is-info.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-success { + background-color: #22c35b; + border-color: transparent; + color: #fff; } + .button.is-success:hover, .button.is-success.is-hovered { + background-color: #20b856; + border-color: transparent; + color: #fff; } + .button.is-success:focus, .button.is-success.is-focused { + border-color: transparent; + color: #fff; } + .button.is-success:focus:not(:active), .button.is-success.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } + .button.is-success:active, .button.is-success.is-active { + background-color: #1ead51; + border-color: transparent; + color: #fff; } + .button.is-success[disabled], fieldset[disabled] .button.is-success { + background-color: #22c35b; + border-color: transparent; + box-shadow: none; } + .button.is-success.is-inverted { + background-color: #fff; + color: #22c35b; } + .button.is-success.is-inverted:hover, .button.is-success.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-success.is-inverted[disabled], fieldset[disabled] .button.is-success.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #22c35b; } + .button.is-success.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-success.is-outlined { + background-color: transparent; + border-color: #22c35b; + color: #22c35b; } + .button.is-success.is-outlined:hover, .button.is-success.is-outlined.is-hovered, .button.is-success.is-outlined:focus, .button.is-success.is-outlined.is-focused { + background-color: #22c35b; + border-color: #22c35b; + color: #fff; } + .button.is-success.is-outlined.is-loading::after { + border-color: transparent transparent #22c35b #22c35b !important; } + .button.is-success.is-outlined.is-loading:hover::after, .button.is-success.is-outlined.is-loading.is-hovered::after, .button.is-success.is-outlined.is-loading:focus::after, .button.is-success.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-success.is-outlined[disabled], fieldset[disabled] .button.is-success.is-outlined { + background-color: transparent; + border-color: #22c35b; + box-shadow: none; + color: #22c35b; } + .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-success.is-inverted.is-outlined:hover, .button.is-success.is-inverted.is-outlined.is-hovered, .button.is-success.is-inverted.is-outlined:focus, .button.is-success.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #22c35b; } + .button.is-success.is-inverted.is-outlined.is-loading:hover::after, .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-success.is-inverted.is-outlined.is-loading:focus::after, .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #22c35b #22c35b !important; } + .button.is-success.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-warning { + background-color: #ffdd57; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:hover, .button.is-warning.is-hovered { + background-color: #ffda4a; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:focus, .button.is-warning.is-focused { + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:focus:not(:active), .button.is-warning.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } + .button.is-warning:active, .button.is-warning.is-active { + background-color: #ffd83e; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning[disabled], fieldset[disabled] .button.is-warning { + background-color: #ffdd57; + border-color: transparent; + box-shadow: none; } + .button.is-warning.is-inverted { + background-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .button.is-warning.is-inverted:hover, .button.is-warning.is-inverted.is-hovered { + background-color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-inverted[disabled], fieldset[disabled] .button.is-warning.is-inverted { + background-color: rgba(0, 0, 0, 0.7); + border-color: transparent; + box-shadow: none; + color: #ffdd57; } + .button.is-warning.is-loading::after { + border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; } + .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ffdd57; + color: #ffdd57; } + .button.is-warning.is-outlined:hover, .button.is-warning.is-outlined.is-hovered, .button.is-warning.is-outlined:focus, .button.is-warning.is-outlined.is-focused { + background-color: #ffdd57; + border-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-outlined.is-loading::after { + border-color: transparent transparent #ffdd57 #ffdd57 !important; } + .button.is-warning.is-outlined.is-loading:hover::after, .button.is-warning.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-outlined.is-loading:focus::after, .button.is-warning.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; } + .button.is-warning.is-outlined[disabled], fieldset[disabled] .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ffdd57; + box-shadow: none; + color: #ffdd57; } + .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-inverted.is-outlined:hover, .button.is-warning.is-inverted.is-outlined.is-hovered, .button.is-warning.is-inverted.is-outlined:focus, .button.is-warning.is-inverted.is-outlined.is-focused { + background-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ffdd57 #ffdd57 !important; } + .button.is-warning.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + box-shadow: none; + color: rgba(0, 0, 0, 0.7); } + .button.is-danger { + background-color: #da0b00; + border-color: transparent; + color: #fff; } + .button.is-danger:hover, .button.is-danger.is-hovered { + background-color: #cd0a00; + border-color: transparent; + color: #fff; } + .button.is-danger:focus, .button.is-danger.is-focused { + border-color: transparent; + color: #fff; } + .button.is-danger:focus:not(:active), .button.is-danger.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } + .button.is-danger:active, .button.is-danger.is-active { + background-color: #c10a00; + border-color: transparent; + color: #fff; } + .button.is-danger[disabled], fieldset[disabled] .button.is-danger { + background-color: #da0b00; + border-color: transparent; + box-shadow: none; } + .button.is-danger.is-inverted { + background-color: #fff; + color: #da0b00; } + .button.is-danger.is-inverted:hover, .button.is-danger.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-danger.is-inverted[disabled], fieldset[disabled] .button.is-danger.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #da0b00; } + .button.is-danger.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-danger.is-outlined { + background-color: transparent; + border-color: #da0b00; + color: #da0b00; } + .button.is-danger.is-outlined:hover, .button.is-danger.is-outlined.is-hovered, .button.is-danger.is-outlined:focus, .button.is-danger.is-outlined.is-focused { + background-color: #da0b00; + border-color: #da0b00; + color: #fff; } + .button.is-danger.is-outlined.is-loading::after { + border-color: transparent transparent #da0b00 #da0b00 !important; } + .button.is-danger.is-outlined.is-loading:hover::after, .button.is-danger.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-outlined.is-loading:focus::after, .button.is-danger.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-danger.is-outlined[disabled], fieldset[disabled] .button.is-danger.is-outlined { + background-color: transparent; + border-color: #da0b00; + box-shadow: none; + color: #da0b00; } + .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-danger.is-inverted.is-outlined:hover, .button.is-danger.is-inverted.is-outlined.is-hovered, .button.is-danger.is-inverted.is-outlined:focus, .button.is-danger.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #da0b00; } + .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #da0b00 #da0b00 !important; } + .button.is-danger.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-small, #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 2px; + font-size: 0.75rem; } + .button.is-normal { + font-size: 1rem; } + .button.is-medium { + font-size: 1.25rem; } + .button.is-large { + font-size: 1.5rem; } + .button[disabled], fieldset[disabled] .button { + background-color: white; + border-color: #dbdbdb; + box-shadow: none; + opacity: 0.5; } + .button.is-fullwidth { + display: flex; + width: 100%; } + .button.is-loading { + color: transparent !important; + pointer-events: none; } + .button.is-loading::after { + position: absolute; + left: calc(50% - (1em / 2)); + top: calc(50% - (1em / 2)); + position: absolute !important; } + .button.is-static { + background-color: whitesmoke; + border-color: #dbdbdb; + color: #6b6b6b; + box-shadow: none; + pointer-events: none; } + .button.is-rounded, #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + +.buttons { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .buttons .button { + margin-bottom: 0.5rem; } + .buttons .button:not(:last-child):not(.is-fullwidth) { + margin-right: 0.5rem; } + .buttons:last-child { + margin-bottom: -0.5rem; } + .buttons:not(:last-child) { + margin-bottom: 1rem; } + .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) { + border-radius: 2px; + font-size: 0.75rem; } + .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) { + font-size: 1.25rem; } + .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) { + font-size: 1.5rem; } + .buttons.has-addons .button:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .buttons.has-addons .button:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + margin-right: -1px; } + .buttons.has-addons .button:last-child { + margin-right: 0; } + .buttons.has-addons .button:hover, .buttons.has-addons .button.is-hovered { + z-index: 2; } + .buttons.has-addons .button:focus, .buttons.has-addons .button.is-focused, .buttons.has-addons .button:active, .buttons.has-addons .button.is-active, .buttons.has-addons .button.is-selected { + z-index: 3; } + .buttons.has-addons .button:focus:hover, .buttons.has-addons .button.is-focused:hover, .buttons.has-addons .button:active:hover, .buttons.has-addons .button.is-active:hover, .buttons.has-addons .button.is-selected:hover { + z-index: 4; } + .buttons.has-addons .button.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .buttons.is-centered { + justify-content: center; } + .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + .buttons.is-right { + justify-content: flex-end; } + .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + +.container { + flex-grow: 1; + margin: 0 auto; + position: relative; + width: auto; } + @media screen and (min-width: 1056px) { + .container { + max-width: 992px; } + .container.is-fluid { + margin-left: 32px; + margin-right: 32px; + max-width: none; } } + @media screen and (max-width: 1215px) { + .container.is-widescreen { + max-width: 1152px; } } + @media screen and (max-width: 1407px) { + .container.is-fullhd { + max-width: 1344px; } } + @media screen and (min-width: 1216px) { + .container { + max-width: 1152px; } } + @media screen and (min-width: 1408px) { + .container { + max-width: 1344px; } } +.content li + li { + margin-top: 0.25em; } + +.content p:not(:last-child), +.content dl:not(:last-child), +.content ol:not(:last-child), +.content ul:not(:last-child), +.content blockquote:not(:last-child), +.content pre:not(:last-child), +.content table:not(:last-child) { + margin-bottom: 1em; } + +.content h1, +.content h2, +.content h3, +.content h4, +.content h5, +.content h6 { + color: #222222; + 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: whitesmoke; + 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: #222222; } + .content table th:not([align]) { + text-align: left; } + .content table thead td, + .content table thead th { + border-width: 0 0 2px; + color: #222222; } + .content table tfoot td, + .content table tfoot th { + border-width: 2px 0 0; + color: #222222; } + .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: 0.75rem; } + +.content.is-medium { + font-size: 1.25rem; } + +.content.is-large { + font-size: 1.5rem; } + +.icon { + align-items: center; + display: inline-flex; + justify-content: center; + height: 1.5rem; + width: 1.5rem; } + .icon.is-small, #documenter .docs-sidebar form.docs-search > input.icon { + height: 1rem; + width: 1rem; } + .icon.is-medium { + height: 2rem; + width: 2rem; } + .icon.is-large { + height: 3rem; + width: 3rem; } + +.image, #documenter .docs-sidebar .docs-logo > img { + display: block; + position: relative; } + .image img, #documenter .docs-sidebar .docs-logo > img img { + display: block; + height: auto; + width: 100%; } + .image img.is-rounded, #documenter .docs-sidebar .docs-logo > img img.is-rounded { + border-radius: 290486px; } + .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img, + .image.is-square .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img, + .image.is-1by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img, + .image.is-5by4 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img, + .image.is-4by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img, + .image.is-3by2 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img, + .image.is-5by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img, + .image.is-16by9 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img, + .image.is-2by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img, + .image.is-3by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img, + .image.is-4by5 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img, + .image.is-3by4 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img, + .image.is-2by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img, + .image.is-3by5 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img, + .image.is-9by16 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img, + .image.is-1by2 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img, + .image.is-1by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio { + height: 100%; + width: 100%; } + .image.is-square, #documenter .docs-sidebar .docs-logo > img.is-square, .image.is-1by1, #documenter .docs-sidebar .docs-logo > img.is-1by1 { + padding-top: 100%; } + .image.is-5by4, #documenter .docs-sidebar .docs-logo > img.is-5by4 { + padding-top: 80%; } + .image.is-4by3, #documenter .docs-sidebar .docs-logo > img.is-4by3 { + padding-top: 75%; } + .image.is-3by2, #documenter .docs-sidebar .docs-logo > img.is-3by2 { + padding-top: 66.6666%; } + .image.is-5by3, #documenter .docs-sidebar .docs-logo > img.is-5by3 { + padding-top: 60%; } + .image.is-16by9, #documenter .docs-sidebar .docs-logo > img.is-16by9 { + padding-top: 56.25%; } + .image.is-2by1, #documenter .docs-sidebar .docs-logo > img.is-2by1 { + padding-top: 50%; } + .image.is-3by1, #documenter .docs-sidebar .docs-logo > img.is-3by1 { + padding-top: 33.3333%; } + .image.is-4by5, #documenter .docs-sidebar .docs-logo > img.is-4by5 { + padding-top: 125%; } + .image.is-3by4, #documenter .docs-sidebar .docs-logo > img.is-3by4 { + padding-top: 133.3333%; } + .image.is-2by3, #documenter .docs-sidebar .docs-logo > img.is-2by3 { + padding-top: 150%; } + .image.is-3by5, #documenter .docs-sidebar .docs-logo > img.is-3by5 { + padding-top: 166.6666%; } + .image.is-9by16, #documenter .docs-sidebar .docs-logo > img.is-9by16 { + padding-top: 177.7777%; } + .image.is-1by2, #documenter .docs-sidebar .docs-logo > img.is-1by2 { + padding-top: 200%; } + .image.is-1by3, #documenter .docs-sidebar .docs-logo > img.is-1by3 { + padding-top: 300%; } + .image.is-16x16, #documenter .docs-sidebar .docs-logo > img.is-16x16 { + height: 16px; + width: 16px; } + .image.is-24x24, #documenter .docs-sidebar .docs-logo > img.is-24x24 { + height: 24px; + width: 24px; } + .image.is-32x32, #documenter .docs-sidebar .docs-logo > img.is-32x32 { + height: 32px; + width: 32px; } + .image.is-48x48, #documenter .docs-sidebar .docs-logo > img.is-48x48 { + height: 48px; + width: 48px; } + .image.is-64x64, #documenter .docs-sidebar .docs-logo > img.is-64x64 { + height: 64px; + width: 64px; } + .image.is-96x96, #documenter .docs-sidebar .docs-logo > img.is-96x96 { + height: 96px; + width: 96px; } + .image.is-128x128, #documenter .docs-sidebar .docs-logo > img.is-128x128 { + height: 128px; + width: 128px; } + +.notification { + background-color: whitesmoke; + border-radius: 4px; + padding: 1.25rem 2.5rem 1.25rem 1.5rem; + position: relative; } + .notification a:not(.button):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + .notification strong { + color: currentColor; } + .notification code, + .notification pre { + background: white; } + .notification pre code { + background: transparent; } + .notification > .delete { + position: absolute; + right: 0.5rem; + top: 0.5rem; } + .notification .title, + .notification .subtitle, + .notification .content { + color: currentColor; } + .notification.is-white { + background-color: white; + color: #0a0a0a; } + .notification.is-black { + background-color: #0a0a0a; + color: white; } + .notification.is-light { + background-color: whitesmoke; + color: #363636; } + .notification.is-dark, .content kbd.notification { + background-color: #363636; + color: whitesmoke; } + .notification.is-primary, .docstring > section > a.notification.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .notification.is-link { + background-color: #2e63b8; + color: #fff; } + .notification.is-info { + background-color: #209cee; + color: #fff; } + .notification.is-success { + background-color: #22c35b; + color: #fff; } + .notification.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .notification.is-danger { + background-color: #da0b00; + color: #fff; } + +.progress { + -moz-appearance: none; + -webkit-appearance: none; + border: none; + border-radius: 290486px; + display: block; + height: 1rem; + overflow: hidden; + padding: 0; + width: 100%; } + .progress::-webkit-progress-bar { + background-color: #dbdbdb; } + .progress::-webkit-progress-value { + background-color: #222222; } + .progress::-moz-progress-bar { + background-color: #222222; } + .progress::-ms-fill { + background-color: #222222; + border: none; } + .progress.is-white::-webkit-progress-value { + background-color: white; } + .progress.is-white::-moz-progress-bar { + background-color: white; } + .progress.is-white::-ms-fill { + background-color: white; } + .progress.is-white:indeterminate { + background-image: linear-gradient(to right, white 30%, #dbdbdb 30%); } + .progress.is-black::-webkit-progress-value { + background-color: #0a0a0a; } + .progress.is-black::-moz-progress-bar { + background-color: #0a0a0a; } + .progress.is-black::-ms-fill { + background-color: #0a0a0a; } + .progress.is-black:indeterminate { + background-image: linear-gradient(to right, #0a0a0a 30%, #dbdbdb 30%); } + .progress.is-light::-webkit-progress-value { + background-color: whitesmoke; } + .progress.is-light::-moz-progress-bar { + background-color: whitesmoke; } + .progress.is-light::-ms-fill { + background-color: whitesmoke; } + .progress.is-light:indeterminate { + background-image: linear-gradient(to right, whitesmoke 30%, #dbdbdb 30%); } + .progress.is-dark::-webkit-progress-value, .content kbd.progress::-webkit-progress-value { + background-color: #363636; } + .progress.is-dark::-moz-progress-bar, .content kbd.progress::-moz-progress-bar { + background-color: #363636; } + .progress.is-dark::-ms-fill, .content kbd.progress::-ms-fill { + background-color: #363636; } + .progress.is-dark:indeterminate, .content kbd.progress:indeterminate { + background-image: linear-gradient(to right, #363636 30%, #dbdbdb 30%); } + .progress.is-primary::-webkit-progress-value, .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value { + background-color: #4eb5de; } + .progress.is-primary::-moz-progress-bar, .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar { + background-color: #4eb5de; } + .progress.is-primary::-ms-fill, .docstring > section > a.progress.docs-sourcelink::-ms-fill { + background-color: #4eb5de; } + .progress.is-primary:indeterminate, .docstring > section > a.progress.docs-sourcelink:indeterminate { + background-image: linear-gradient(to right, #4eb5de 30%, #dbdbdb 30%); } + .progress.is-link::-webkit-progress-value { + background-color: #2e63b8; } + .progress.is-link::-moz-progress-bar { + background-color: #2e63b8; } + .progress.is-link::-ms-fill { + background-color: #2e63b8; } + .progress.is-link:indeterminate { + background-image: linear-gradient(to right, #2e63b8 30%, #dbdbdb 30%); } + .progress.is-info::-webkit-progress-value { + background-color: #209cee; } + .progress.is-info::-moz-progress-bar { + background-color: #209cee; } + .progress.is-info::-ms-fill { + background-color: #209cee; } + .progress.is-info:indeterminate { + background-image: linear-gradient(to right, #209cee 30%, #dbdbdb 30%); } + .progress.is-success::-webkit-progress-value { + background-color: #22c35b; } + .progress.is-success::-moz-progress-bar { + background-color: #22c35b; } + .progress.is-success::-ms-fill { + background-color: #22c35b; } + .progress.is-success:indeterminate { + background-image: linear-gradient(to right, #22c35b 30%, #dbdbdb 30%); } + .progress.is-warning::-webkit-progress-value { + background-color: #ffdd57; } + .progress.is-warning::-moz-progress-bar { + background-color: #ffdd57; } + .progress.is-warning::-ms-fill { + background-color: #ffdd57; } + .progress.is-warning:indeterminate { + background-image: linear-gradient(to right, #ffdd57 30%, #dbdbdb 30%); } + .progress.is-danger::-webkit-progress-value { + background-color: #da0b00; } + .progress.is-danger::-moz-progress-bar { + background-color: #da0b00; } + .progress.is-danger::-ms-fill { + background-color: #da0b00; } + .progress.is-danger:indeterminate { + background-image: linear-gradient(to right, #da0b00 30%, #dbdbdb 30%); } + .progress:indeterminate { + animation-duration: 1.5s; + animation-iteration-count: infinite; + animation-name: moveIndeterminate; + animation-timing-function: linear; + background-color: #dbdbdb; + background-image: linear-gradient(to right, #222222 30%, #dbdbdb 30%); + background-position: top left; + background-repeat: no-repeat; + background-size: 150% 150%; } + .progress:indeterminate::-webkit-progress-bar { + background-color: transparent; } + .progress:indeterminate::-moz-progress-bar { + background-color: transparent; } + .progress.is-small, #documenter .docs-sidebar form.docs-search > input.progress { + height: 0.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: white; + color: #363636; } + .table td, + .table th { + border: 1px solid #dbdbdb; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + .table td.is-white, + .table th.is-white { + background-color: white; + border-color: white; + color: #0a0a0a; } + .table td.is-black, + .table th.is-black { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .table td.is-light, + .table th.is-light { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .table td.is-dark, + .table th.is-dark { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .table td.is-primary, + .table th.is-primary { + background-color: #4eb5de; + border-color: #4eb5de; + color: #fff; } + .table td.is-link, + .table th.is-link { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + .table td.is-info, + .table th.is-info { + background-color: #209cee; + border-color: #209cee; + color: #fff; } + .table td.is-success, + .table th.is-success { + background-color: #22c35b; + border-color: #22c35b; + color: #fff; } + .table td.is-warning, + .table th.is-warning { + background-color: #ffdd57; + border-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .table td.is-danger, + .table th.is-danger { + background-color: #da0b00; + border-color: #da0b00; + color: #fff; } + .table td.is-narrow, + .table th.is-narrow { + white-space: nowrap; + width: 1%; } + .table td.is-selected, + .table th.is-selected { + background-color: #4eb5de; + color: #fff; } + .table td.is-selected a, + .table td.is-selected strong, + .table th.is-selected a, + .table th.is-selected strong { + color: currentColor; } + .table th { + color: #222222; } + .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: transparent; } + .table thead td, + .table thead th { + border-width: 0 0 2px; + color: #222222; } + .table tfoot { + background-color: transparent; } + .table tfoot td, + .table tfoot th { + border-width: 2px 0 0; + color: #222222; } + .table tbody { + background-color: transparent; } + .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: whitesmoke; } + .table.is-narrow td, + .table.is-narrow th { + padding: 0.25em 0.5em; } + .table.is-striped tbody tr:not(.is-selected):nth-child(even) { + background-color: #fafafa; } + +.table-container { + -webkit-overflow-scrolling: touch; + overflow: auto; + overflow-y: hidden; + max-width: 100%; } + +.tags { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .tags .tag, .tags .content kbd, .content .tags kbd, .tags .docstring > section > a.docs-sourcelink { + margin-bottom: 0.5rem; } + .tags .tag:not(:last-child), .tags .content kbd:not(:last-child), .content .tags kbd:not(:last-child), .tags .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0.5rem; } + .tags:last-child { + margin-bottom: -0.5rem; } + .tags:not(:last-child) { + margin-bottom: 1rem; } + .tags.are-medium .tag:not(.is-normal):not(.is-large), .tags.are-medium .content kbd:not(.is-normal):not(.is-large), .content .tags.are-medium kbd:not(.is-normal):not(.is-large), .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large) { + font-size: 1rem; } + .tags.are-large .tag:not(.is-normal):not(.is-medium), .tags.are-large .content kbd:not(.is-normal):not(.is-medium), .content .tags.are-large kbd:not(.is-normal):not(.is-medium), .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium) { + font-size: 1.25rem; } + .tags.is-centered { + justify-content: center; } + .tags.is-centered .tag, .tags.is-centered .content kbd, .content .tags.is-centered kbd, .tags.is-centered .docstring > section > a.docs-sourcelink { + margin-right: 0.25rem; + margin-left: 0.25rem; } + .tags.is-right { + justify-content: flex-end; } + .tags.is-right .tag:not(:first-child), .tags.is-right .content kbd:not(:first-child), .content .tags.is-right kbd:not(:first-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0.5rem; } + .tags.is-right .tag:not(:last-child), .tags.is-right .content kbd:not(:last-child), .content .tags.is-right kbd:not(:last-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0; } + .tags.has-addons .tag, .tags.has-addons .content kbd, .content .tags.has-addons kbd, .tags.has-addons .docstring > section > a.docs-sourcelink { + margin-right: 0; } + .tags.has-addons .tag:not(:first-child), .tags.has-addons .content kbd:not(:first-child), .content .tags.has-addons kbd:not(:first-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0; + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .tags.has-addons .tag:not(:last-child), .tags.has-addons .content kbd:not(:last-child), .content .tags.has-addons kbd:not(:last-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + +.tag:not(body), .content kbd:not(body), .docstring > section > a.docs-sourcelink:not(body) { + align-items: center; + background-color: whitesmoke; + border-radius: 4px; + color: #222222; + display: inline-flex; + font-size: 0.75rem; + height: 2em; + justify-content: center; + line-height: 1.5; + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + .tag:not(body) .delete, .content kbd:not(body) .delete, .docstring > section > a.docs-sourcelink:not(body) .delete { + margin-left: 0.25rem; + margin-right: -0.375rem; } + .tag.is-white:not(body), .content kbd.is-white:not(body), .docstring > section > a.docs-sourcelink.is-white:not(body) { + background-color: white; + 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: white; } + .tag.is-light:not(body), .content kbd.is-light:not(body), .docstring > section > a.docs-sourcelink.is-light:not(body) { + background-color: whitesmoke; + color: #363636; } + .tag.is-dark:not(body), .content kbd:not(body), .docstring > section > a.docs-sourcelink.is-dark:not(body), .content .docstring > section > kbd:not(body) { + background-color: #363636; + color: whitesmoke; } + .tag.is-primary:not(body), .content kbd.is-primary:not(body), .docstring > section > a.docs-sourcelink:not(body) { + background-color: #4eb5de; + color: #fff; } + .tag.is-link:not(body), .content kbd.is-link:not(body), .docstring > section > a.docs-sourcelink.is-link:not(body) { + background-color: #2e63b8; + color: #fff; } + .tag.is-info:not(body), .content kbd.is-info:not(body), .docstring > section > a.docs-sourcelink.is-info:not(body) { + background-color: #209cee; + color: #fff; } + .tag.is-success:not(body), .content kbd.is-success:not(body), .docstring > section > a.docs-sourcelink.is-success:not(body) { + background-color: #22c35b; + color: #fff; } + .tag.is-warning:not(body), .content kbd.is-warning:not(body), .docstring > section > a.docs-sourcelink.is-warning:not(body) { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .tag.is-danger:not(body), .content kbd.is-danger:not(body), .docstring > section > a.docs-sourcelink.is-danger:not(body) { + background-color: #da0b00; + color: #fff; } + .tag.is-normal:not(body), .content kbd.is-normal:not(body), .docstring > section > a.docs-sourcelink.is-normal:not(body) { + font-size: 0.75rem; } + .tag.is-medium:not(body), .content kbd.is-medium:not(body), .docstring > section > a.docs-sourcelink.is-medium:not(body) { + font-size: 1rem; } + .tag.is-large:not(body), .content kbd.is-large:not(body), .docstring > section > a.docs-sourcelink.is-large:not(body) { + font-size: 1.25rem; } + .tag:not(body) .icon:first-child:not(:last-child), .content kbd:not(body) .icon:first-child:not(:last-child), .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child) { + margin-left: -0.375em; + margin-right: 0.1875em; } + .tag:not(body) .icon:last-child:not(:first-child), .content kbd:not(body) .icon:last-child:not(:first-child), .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: -0.375em; } + .tag:not(body) .icon:first-child:last-child, .content kbd:not(body) .icon:first-child:last-child, .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child { + margin-left: -0.375em; + margin-right: -0.375em; } + .tag.is-delete:not(body), .content kbd.is-delete:not(body), .docstring > section > a.docs-sourcelink.is-delete:not(body) { + margin-left: 1px; + padding: 0; + position: relative; + width: 2em; } + .tag.is-delete:not(body)::before, .content kbd.is-delete:not(body)::before, .docstring > section > a.docs-sourcelink.is-delete:not(body)::before, .tag.is-delete:not(body)::after, .content kbd.is-delete:not(body)::after, .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + background-color: currentColor; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + .tag.is-delete:not(body)::before, .content kbd.is-delete:not(body)::before, .docstring > section > a.docs-sourcelink.is-delete:not(body)::before { + height: 1px; + width: 50%; } + .tag.is-delete:not(body)::after, .content kbd.is-delete:not(body)::after, .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + height: 50%; + width: 1px; } + .tag.is-delete:not(body):hover, .content kbd.is-delete:not(body):hover, .docstring > section > a.docs-sourcelink.is-delete:not(body):hover, .tag.is-delete:not(body):focus, .content kbd.is-delete:not(body):focus, .docstring > section > a.docs-sourcelink.is-delete:not(body):focus { + background-color: #e8e8e8; } + .tag.is-delete:not(body):active, .content kbd.is-delete:not(body):active, .docstring > section > a.docs-sourcelink.is-delete:not(body):active { + background-color: #dbdbdb; } + .tag.is-rounded:not(body), #documenter .docs-sidebar form.docs-search > input:not(body), .content kbd.is-rounded:not(body), #documenter .docs-sidebar .content form.docs-search > input:not(body), .docstring > section > a.docs-sourcelink.is-rounded:not(body) { + border-radius: 290486px; } + +a.tag:hover, .docstring > section > a.docs-sourcelink:hover { + text-decoration: underline; } + +.title, +.subtitle { + word-break: break-word; } + .title em, + .title span, + .subtitle em, + .subtitle span { + font-weight: inherit; } + .title sub, + .subtitle sub { + font-size: 0.75em; } + .title sup, + .subtitle sup { + font-size: 0.75em; } + .title .tag, .title .content kbd, .content .title kbd, .title .docstring > section > a.docs-sourcelink, + .subtitle .tag, + .subtitle .content kbd, + .content .subtitle kbd, + .subtitle .docstring > section > a.docs-sourcelink { + vertical-align: middle; } + +.title { + color: #363636; + font-size: 2rem; + font-weight: 600; + line-height: 1.125; } + .title strong { + color: inherit; + font-weight: inherit; } + .title + .highlight { + margin-top: -0.75rem; } + .title:not(.is-spaced) + .subtitle { + margin-top: -1.25rem; } + .title.is-1 { + font-size: 3rem; } + .title.is-2 { + font-size: 2.5rem; } + .title.is-3 { + font-size: 2rem; } + .title.is-4 { + font-size: 1.5rem; } + .title.is-5 { + font-size: 1.25rem; } + .title.is-6 { + font-size: 1rem; } + .title.is-7 { + font-size: 0.75rem; } + +.subtitle { + color: #4a4a4a; + font-size: 1.25rem; + font-weight: 400; + line-height: 1.25; } + .subtitle strong { + color: #363636; + font-weight: 600; } + .subtitle:not(.is-spaced) + .title { + margin-top: -1.25rem; } + .subtitle.is-1 { + font-size: 3rem; } + .subtitle.is-2 { + font-size: 2.5rem; } + .subtitle.is-3 { + font-size: 2rem; } + .subtitle.is-4 { + font-size: 1.5rem; } + .subtitle.is-5 { + font-size: 1.25rem; } + .subtitle.is-6 { + font-size: 1rem; } + .subtitle.is-7 { + font-size: 0.75rem; } + +.heading { + display: block; + font-size: 11px; + letter-spacing: 1px; + margin-bottom: 5px; + text-transform: uppercase; } + +.highlight { + font-weight: 400; + max-width: 100%; + overflow: hidden; + padding: 0; } + .highlight pre { + overflow: auto; + max-width: 100%; } + +.number { + align-items: center; + background-color: whitesmoke; + border-radius: 290486px; + display: inline-flex; + font-size: 1.25rem; + height: 2em; + justify-content: center; + margin-right: 1.5rem; + min-width: 2.5em; + padding: 0.25rem 0.5rem; + text-align: center; + vertical-align: top; } + +.select select, .textarea, .input, #documenter .docs-sidebar form.docs-search > input { + background-color: white; + border-color: #dbdbdb; + border-radius: 4px; + color: #363636; } + .select select::-moz-placeholder, .textarea::-moz-placeholder, .input::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input::-moz-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select::-webkit-input-placeholder, .textarea::-webkit-input-placeholder, .input::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select:-moz-placeholder, .textarea:-moz-placeholder, .input:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input:-moz-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select:-ms-input-placeholder, .textarea:-ms-input-placeholder, .input:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select:hover, .textarea:hover, .input:hover, #documenter .docs-sidebar form.docs-search > input:hover, .select select.is-hovered, .is-hovered.textarea, .is-hovered.input, #documenter .docs-sidebar form.docs-search > input.is-hovered { + border-color: #b5b5b5; } + .select select:focus, .textarea:focus, .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .select select.is-focused, .is-focused.textarea, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .select select:active, .textarea:active, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .select select.is-active, .is-active.textarea, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + border-color: #2e63b8; + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .select select[disabled], .textarea[disabled], .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], fieldset[disabled] .select select, .select fieldset[disabled] select, fieldset[disabled] .textarea, fieldset[disabled] .input, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input { + background-color: whitesmoke; + border-color: whitesmoke; + box-shadow: none; + color: #6b6b6b; } + .select select[disabled]::-moz-placeholder, .textarea[disabled]::-moz-placeholder, .input[disabled]::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, fieldset[disabled] .select select::-moz-placeholder, .select fieldset[disabled] select::-moz-placeholder, fieldset[disabled] .textarea::-moz-placeholder, fieldset[disabled] .input::-moz-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-moz-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-moz-placeholder { + color: rgba(107, 107, 107, 0.3); } + .select select[disabled]::-webkit-input-placeholder, .textarea[disabled]::-webkit-input-placeholder, .input[disabled]::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, fieldset[disabled] .select select::-webkit-input-placeholder, .select fieldset[disabled] select::-webkit-input-placeholder, fieldset[disabled] .textarea::-webkit-input-placeholder, fieldset[disabled] .input::-webkit-input-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-webkit-input-placeholder { + color: rgba(107, 107, 107, 0.3); } + .select select[disabled]:-moz-placeholder, .textarea[disabled]:-moz-placeholder, .input[disabled]:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, fieldset[disabled] .select select:-moz-placeholder, .select fieldset[disabled] select:-moz-placeholder, fieldset[disabled] .textarea:-moz-placeholder, fieldset[disabled] .input:-moz-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-moz-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-moz-placeholder { + color: rgba(107, 107, 107, 0.3); } + .select select[disabled]:-ms-input-placeholder, .textarea[disabled]:-ms-input-placeholder, .input[disabled]:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, fieldset[disabled] .select select:-ms-input-placeholder, .select fieldset[disabled] select:-ms-input-placeholder, fieldset[disabled] .textarea:-ms-input-placeholder, fieldset[disabled] .input:-ms-input-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-ms-input-placeholder { + color: rgba(107, 107, 107, 0.3); } + +.textarea, .input, #documenter .docs-sidebar form.docs-search > input { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1); + max-width: 100%; + width: 100%; } + .textarea[readonly], .input[readonly], #documenter .docs-sidebar form.docs-search > input[readonly] { + box-shadow: none; } + .is-white.textarea, .is-white.input, #documenter .docs-sidebar form.docs-search > input.is-white { + border-color: white; } + .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: whitesmoke; } + .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: 0.75rem; } + .is-medium.textarea, .is-medium.input, #documenter .docs-sidebar form.docs-search > input.is-medium { + font-size: 1.25rem; } + .is-large.textarea, .is-large.input, #documenter .docs-sidebar form.docs-search > input.is-large { + font-size: 1.5rem; } + .is-fullwidth.textarea, .is-fullwidth.input, #documenter .docs-sidebar form.docs-search > input.is-fullwidth { + display: block; + width: 100%; } + .is-inline.textarea, .is-inline.input, #documenter .docs-sidebar form.docs-search > input.is-inline { + display: inline; + width: auto; } + +.input.is-rounded, #documenter .docs-sidebar form.docs-search > input { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + +.input.is-static, #documenter .docs-sidebar form.docs-search > input.is-static { + background-color: transparent; + border-color: transparent; + box-shadow: none; + padding-left: 0; + padding-right: 0; } + +.textarea { + display: block; + max-width: 100%; + min-width: 100%; + padding: 0.625em; + resize: vertical; } + .textarea:not([rows]) { + max-height: 600px; + min-height: 120px; } + .textarea[rows] { + height: initial; } + .textarea.has-fixed-size { + resize: none; } + +.radio, .checkbox { + cursor: pointer; + display: inline-block; + line-height: 1.25; + position: relative; } + .radio input, .checkbox input { + cursor: pointer; } + .radio:hover, .checkbox:hover { + color: #363636; } + .radio[disabled], .checkbox[disabled], fieldset[disabled] .radio, fieldset[disabled] .checkbox { + color: #6b6b6b; + cursor: not-allowed; } + +.radio + .radio { + margin-left: 0.5em; } + +.select { + display: inline-block; + max-width: 100%; + position: relative; + vertical-align: top; } + .select:not(.is-multiple) { + height: 2.25em; } + .select:not(.is-multiple):not(.is-loading)::after { + border-color: #2e63b8; + right: 1.125em; + z-index: 4; } + .select.is-rounded select, #documenter .docs-sidebar form.docs-search > input.select select { + border-radius: 290486px; + padding-left: 1em; } + .select select { + cursor: pointer; + display: block; + font-size: 1em; + max-width: 100%; + outline: none; } + .select select::-ms-expand { + display: none; } + .select select[disabled]:hover, fieldset[disabled] .select select:hover { + border-color: whitesmoke; } + .select select:not([multiple]) { + padding-right: 2.5em; } + .select select[multiple] { + height: auto; + padding: 0; } + .select select[multiple] option { + padding: 0.5em 1em; } + .select:not(.is-multiple):not(.is-loading):hover::after { + border-color: #363636; } + .select.is-white:not(:hover)::after { + border-color: white; } + .select.is-white select { + border-color: white; } + .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: black; } + .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: whitesmoke; } + .select.is-light select { + border-color: whitesmoke; } + .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: 0.75rem; } + .select.is-medium { + font-size: 1.25rem; } + .select.is-large { + font-size: 1.5rem; } + .select.is-disabled::after { + border-color: #6b6b6b; } + .select.is-fullwidth { + width: 100%; } + .select.is-fullwidth select { + width: 100%; } + .select.is-loading::after { + margin-top: 0; + position: absolute; + right: 0.625em; + top: 0.625em; + transform: none; } + .select.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.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: white; + 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: white; } + .file.is-black:hover .file-cta, .file.is-black.is-hovered .file-cta { + background-color: #040404; + border-color: transparent; + color: white; } + .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: white; } + .file.is-black:active .file-cta, .file.is-black.is-active .file-cta { + background-color: black; + border-color: transparent; + color: white; } + .file.is-light .file-cta { + background-color: whitesmoke; + border-color: transparent; + color: #363636; } + .file.is-light:hover .file-cta, .file.is-light.is-hovered .file-cta { + background-color: #eeeeee; + border-color: transparent; + color: #363636; } + .file.is-light:focus .file-cta, .file.is-light.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(245, 245, 245, 0.25); + color: #363636; } + .file.is-light:active .file-cta, .file.is-light.is-active .file-cta { + background-color: #e8e8e8; + border-color: transparent; + color: #363636; } + .file.is-dark .file-cta, .content kbd.file .file-cta { + background-color: #363636; + border-color: transparent; + color: whitesmoke; } + .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: whitesmoke; } + .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: whitesmoke; } + .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: whitesmoke; } + .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: 0.75rem; } + .file.is-medium { + font-size: 1.25rem; } + .file.is-medium .file-icon .fa { + font-size: 21px; } + .file.is-large { + font-size: 1.5rem; } + .file.is-large .file-icon .fa { + font-size: 28px; } + .file.has-name .file-cta { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + .file.has-name .file-name { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .file.has-name.is-empty .file-cta { + border-radius: 4px; } + .file.has-name.is-empty .file-name { + display: none; } + .file.is-boxed .file-label { + flex-direction: column; } + .file.is-boxed .file-cta { + flex-direction: column; + height: auto; + padding: 1em 3em; } + .file.is-boxed .file-name { + border-width: 0 1px 1px; } + .file.is-boxed .file-icon { + height: 1.5em; + width: 1.5em; } + .file.is-boxed .file-icon .fa { + font-size: 21px; } + .file.is-boxed.is-small .file-icon .fa, #documenter .docs-sidebar form.docs-search > input.is-boxed .file-icon .fa { + font-size: 14px; } + .file.is-boxed.is-medium .file-icon .fa { + font-size: 28px; } + .file.is-boxed.is-large .file-icon .fa { + font-size: 35px; } + .file.is-boxed.has-name .file-cta { + border-radius: 4px 4px 0 0; } + .file.is-boxed.has-name .file-name { + border-radius: 0 0 4px 4px; + border-width: 0 1px 1px; } + .file.is-centered { + justify-content: center; } + .file.is-fullwidth .file-label { + width: 100%; } + .file.is-fullwidth .file-name { + flex-grow: 1; + max-width: none; } + .file.is-right { + justify-content: flex-end; } + .file.is-right .file-cta { + border-radius: 0 4px 4px 0; } + .file.is-right .file-name { + border-radius: 4px 0 0 4px; + border-width: 1px 0 1px 1px; + order: -1; } + +.file-label { + align-items: stretch; + display: flex; + cursor: pointer; + justify-content: flex-start; + overflow: hidden; + position: relative; } + .file-label:hover .file-cta { + background-color: #eeeeee; + color: #363636; } + .file-label:hover .file-name { + border-color: #d5d5d5; } + .file-label:active .file-cta { + background-color: #e8e8e8; + color: #363636; } + .file-label:active .file-name { + border-color: #cfcfcf; } + +.file-input { + height: 100%; + left: 0; + opacity: 0; + outline: none; + position: absolute; + top: 0; + width: 100%; } + +.file-cta, +.file-name { + border-color: #dbdbdb; + border-radius: 4px; + font-size: 1em; + padding-left: 1em; + padding-right: 1em; + white-space: nowrap; } + +.file-cta { + background-color: whitesmoke; + color: #4a4a4a; } + +.file-name { + border-color: #dbdbdb; + border-style: solid; + border-width: 1px 1px 1px 0; + display: block; + max-width: 16em; + overflow: hidden; + text-align: left; + text-overflow: ellipsis; } + +.file-icon { + align-items: center; + display: flex; + height: 1em; + justify-content: center; + margin-right: 0.5em; + width: 1em; } + .file-icon .fa { + font-size: 14px; } + +.label { + color: #363636; + display: block; + font-size: 1rem; + font-weight: 700; } + .label:not(:last-child) { + margin-bottom: 0.5em; } + .label.is-small, #documenter .docs-sidebar form.docs-search > input.label { + font-size: 0.75rem; } + .label.is-medium { + font-size: 1.25rem; } + .label.is-large { + font-size: 1.5rem; } + +.help { + display: block; + font-size: 0.75rem; + margin-top: 0.25rem; } + .help.is-white { + color: white; } + .help.is-black { + color: #0a0a0a; } + .help.is-light { + color: whitesmoke; } + .help.is-dark, .content kbd.help { + color: #363636; } + .help.is-primary, .docstring > section > a.help.docs-sourcelink { + color: #4eb5de; } + .help.is-link { + color: #2e63b8; } + .help.is-info { + color: #209cee; } + .help.is-success { + color: #22c35b; } + .help.is-warning { + color: #ffdd57; } + .help.is-danger { + color: #da0b00; } + +.field:not(:last-child) { + margin-bottom: 0.75rem; } + +.field.has-addons { + display: flex; + justify-content: flex-start; } + .field.has-addons .control:not(:last-child) { + margin-right: -1px; } + .field.has-addons .control:not(:first-child):not(:last-child) .button, + .field.has-addons .control:not(:first-child):not(:last-child) .input, + .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input, + .field.has-addons .control:not(:first-child):not(:last-child) .select select { + border-radius: 0; } + .field.has-addons .control:first-child:not(:only-child) .button, + .field.has-addons .control:first-child:not(:only-child) .input, + .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input, + .field.has-addons .control:first-child:not(:only-child) .select select { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + .field.has-addons .control:last-child:not(:only-child) .button, + .field.has-addons .control:last-child:not(:only-child) .input, + .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input, + .field.has-addons .control:last-child:not(:only-child) .select select { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .field.has-addons .control .button:not([disabled]):hover, .field.has-addons .control .button.is-hovered:not([disabled]), + .field.has-addons .control .input:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover, + .field.has-addons .control .input.is-hovered:not([disabled]), + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-hovered:not([disabled]), + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-hovered:not([disabled]), + .field.has-addons .control .select select:not([disabled]):hover, + .field.has-addons .control .select select.is-hovered:not([disabled]) { + z-index: 2; } + .field.has-addons .control .button:not([disabled]):focus, .field.has-addons .control .button.is-focused:not([disabled]), .field.has-addons .control .button:not([disabled]):active, .field.has-addons .control .button.is-active:not([disabled]), + .field.has-addons .control .input:not([disabled]):focus, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus, + .field.has-addons .control .input.is-focused:not([disabled]), + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]), + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]), + .field.has-addons .control .input:not([disabled]):active, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active, + .field.has-addons .control .input.is-active:not([disabled]), + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]), + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]), + .field.has-addons .control .select select:not([disabled]):focus, + .field.has-addons .control .select select.is-focused:not([disabled]), + .field.has-addons .control .select select:not([disabled]):active, + .field.has-addons .control .select select.is-active:not([disabled]) { + z-index: 3; } + .field.has-addons .control .button:not([disabled]):focus:hover, .field.has-addons .control .button.is-focused:not([disabled]):hover, .field.has-addons .control .button:not([disabled]):active:hover, .field.has-addons .control .button.is-active:not([disabled]):hover, + .field.has-addons .control .input:not([disabled]):focus:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover, + .field.has-addons .control .input.is-focused:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]):hover, + .field.has-addons .control .input:not([disabled]):active:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover, + .field.has-addons .control .input.is-active:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]):hover, + .field.has-addons .control .select select:not([disabled]):focus:hover, + .field.has-addons .control .select select.is-focused:not([disabled]):hover, + .field.has-addons .control .select select:not([disabled]):active:hover, + .field.has-addons .control .select select.is-active:not([disabled]):hover { + z-index: 4; } + .field.has-addons .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .field.has-addons.has-addons-centered { + justify-content: center; } + .field.has-addons.has-addons-right { + justify-content: flex-end; } + .field.has-addons.has-addons-fullwidth .control { + flex-grow: 1; + flex-shrink: 0; } + +.field.is-grouped { + display: flex; + justify-content: flex-start; } + .field.is-grouped > .control { + flex-shrink: 0; } + .field.is-grouped > .control:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + .field.is-grouped > .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .field.is-grouped.is-grouped-centered { + justify-content: center; } + .field.is-grouped.is-grouped-right { + justify-content: flex-end; } + .field.is-grouped.is-grouped-multiline { + flex-wrap: wrap; } + .field.is-grouped.is-grouped-multiline > .control:last-child, .field.is-grouped.is-grouped-multiline > .control:not(:last-child) { + margin-bottom: 0.75rem; } + .field.is-grouped.is-grouped-multiline:last-child { + margin-bottom: -0.75rem; } + .field.is-grouped.is-grouped-multiline:not(:last-child) { + margin-bottom: 0; } + +@media screen and (min-width: 769px), print { + .field.is-horizontal { + display: flex; } } + +.field-label .label { + font-size: inherit; } + +@media screen and (max-width: 768px) { + .field-label { + margin-bottom: 0.5rem; } } + +@media screen and (min-width: 769px), print { + .field-label { + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + margin-right: 1.5rem; + text-align: right; } + .field-label.is-small, #documenter .docs-sidebar form.docs-search > input.field-label { + font-size: 0.75rem; + padding-top: 0.375em; } + .field-label.is-normal { + padding-top: 0.375em; } + .field-label.is-medium { + font-size: 1.25rem; + padding-top: 0.375em; } + .field-label.is-large { + font-size: 1.5rem; + padding-top: 0.375em; } } + +.field-body .field .field { + margin-bottom: 0; } + +@media screen and (min-width: 769px), print { + .field-body { + display: flex; + flex-basis: 0; + flex-grow: 5; + flex-shrink: 1; } + .field-body .field { + margin-bottom: 0; } + .field-body > .field { + flex-shrink: 1; } + .field-body > .field:not(.is-narrow) { + flex-grow: 1; } + .field-body > .field:not(:last-child) { + margin-right: 0.75rem; } } + +.control { + box-sizing: border-box; + clear: both; + font-size: 1rem; + position: relative; + text-align: left; } + .control.has-icons-left .input:focus ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon, + .control.has-icons-left .select:focus ~ .icon, .control.has-icons-right .input:focus ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon, + .control.has-icons-right .select:focus ~ .icon { + color: #6b6b6b; } + .control.has-icons-left .input.is-small ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon, + .control.has-icons-left .select.is-small ~ .icon, .control.has-icons-right .input.is-small ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon, + .control.has-icons-right .select.is-small ~ .icon { + font-size: 0.75rem; } + .control.has-icons-left .input.is-medium ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon, + .control.has-icons-left .select.is-medium ~ .icon, .control.has-icons-right .input.is-medium ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon, + .control.has-icons-right .select.is-medium ~ .icon { + font-size: 1.25rem; } + .control.has-icons-left .input.is-large ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon, + .control.has-icons-left .select.is-large ~ .icon, .control.has-icons-right .input.is-large ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon, + .control.has-icons-right .select.is-large ~ .icon { + font-size: 1.5rem; } + .control.has-icons-left .icon, .control.has-icons-right .icon { + color: #dbdbdb; + height: 2.25em; + pointer-events: none; + position: absolute; + top: 0; + width: 2.25em; + z-index: 4; } + .control.has-icons-left .input, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input, + .control.has-icons-left .select select { + padding-left: 2.25em; } + .control.has-icons-left .icon.is-left { + left: 0; } + .control.has-icons-right .input, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input, + .control.has-icons-right .select select { + padding-right: 2.25em; } + .control.has-icons-right .icon.is-right { + right: 0; } + .control.is-loading::after { + position: absolute !important; + right: 0.625em; + top: 0.625em; + z-index: 4; } + .control.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.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 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: #222222; + cursor: default; + pointer-events: none; } + .breadcrumb li + li::before { + color: #b5b5b5; + content: "\0002f"; } + .breadcrumb ul, + .breadcrumb ol { + align-items: flex-start; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .breadcrumb .icon:first-child { + margin-right: 0.5em; } + .breadcrumb .icon:last-child { + margin-left: 0.5em; } + .breadcrumb.is-centered ol, + .breadcrumb.is-centered ul { + justify-content: center; } + .breadcrumb.is-right ol, + .breadcrumb.is-right ul { + justify-content: flex-end; } + .breadcrumb.is-small, #documenter .docs-sidebar form.docs-search > input.breadcrumb { + font-size: 0.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: white; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #222222; + max-width: 100%; + position: relative; } + +.card-header { + background-color: transparent; + align-items: stretch; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + display: flex; } + +.card-header-title { + align-items: center; + color: #222222; + display: flex; + flex-grow: 1; + font-weight: 700; + padding: 0.75rem; } + .card-header-title.is-centered { + justify-content: center; } + +.card-header-icon { + align-items: center; + cursor: pointer; + display: flex; + justify-content: center; + padding: 0.75rem; } + +.card-image { + display: block; + position: relative; } + +.card-content { + background-color: transparent; + padding: 1.5rem; } + +.card-footer { + background-color: transparent; + border-top: 1px solid #dbdbdb; + align-items: stretch; + display: flex; } + +.card-footer-item { + align-items: center; + display: flex; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + justify-content: center; + padding: 0.75rem; } + .card-footer-item:not(:last-child) { + border-right: 1px solid #dbdbdb; } + +.card .media:not(:last-child) { + margin-bottom: 1.5rem; } + +.dropdown { + display: inline-flex; + position: relative; + vertical-align: top; } + .dropdown.is-active .dropdown-menu, .dropdown.is-hoverable:hover .dropdown-menu { + display: block; } + .dropdown.is-right .dropdown-menu { + left: auto; + right: 0; } + .dropdown.is-up .dropdown-menu { + bottom: 100%; + padding-bottom: 4px; + padding-top: initial; + top: auto; } + +.dropdown-menu { + display: none; + left: 0; + min-width: 12rem; + padding-top: 4px; + position: absolute; + top: 100%; + z-index: 20; } + +.dropdown-content { + background-color: white; + border-radius: 4px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + +.dropdown-item { + color: #4a4a4a; + display: block; + font-size: 0.875rem; + line-height: 1.5; + padding: 0.375rem 1rem; + position: relative; } + +a.dropdown-item, +button.dropdown-item { + padding-right: 3rem; + text-align: left; + white-space: nowrap; + width: 100%; } + a.dropdown-item:hover, + button.dropdown-item:hover { + background-color: whitesmoke; + color: #0a0a0a; } + a.dropdown-item.is-active, + button.dropdown-item.is-active { + background-color: #2e63b8; + color: #fff; } + +.dropdown-divider { + background-color: #dbdbdb; + border: none; + display: block; + height: 1px; + margin: 0.5rem 0; } + +.level { + align-items: center; + justify-content: space-between; } + .level code { + border-radius: 4px; } + .level img { + display: inline-block; + vertical-align: top; } + .level.is-mobile { + display: flex; } + .level.is-mobile .level-left, + .level.is-mobile .level-right { + display: flex; } + .level.is-mobile .level-left + .level-right { + margin-top: 0; } + .level.is-mobile .level-item:not(:last-child) { + margin-bottom: 0; + margin-right: 0.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: 0.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: 0.75rem; } } +.level-left { + align-items: center; + justify-content: flex-start; } + @media screen and (max-width: 768px) { + .level-left + .level-right { + margin-top: 1.5rem; } } + @media screen and (min-width: 769px), print { + .level-left { + display: flex; } } +.level-right { + align-items: center; + justify-content: flex-end; } + @media screen and (min-width: 769px), print { + .level-right { + display: flex; } } +.list { + background-color: white; + border-radius: 4px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); } + +.list-item { + display: block; + padding: 0.5em 1em; } + .list-item:not(a) { + color: #222222; } + .list-item:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; } + .list-item:last-child { + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; } + .list-item:not(:last-child) { + border-bottom: 1px solid #dbdbdb; } + .list-item.is-active { + background-color: #2e63b8; + color: #fff; } + +a.list-item { + background-color: whitesmoke; + cursor: pointer; } + +.media { + align-items: flex-start; + display: flex; + text-align: left; } + .media .content:not(:last-child) { + margin-bottom: 0.75rem; } + .media .media { + border-top: 1px solid rgba(219, 219, 219, 0.5); + display: flex; + padding-top: 0.75rem; } + .media .media .content:not(:last-child), + .media .media .control:not(:last-child) { + margin-bottom: 0.5rem; } + .media .media .media { + padding-top: 0.5rem; } + .media .media .media + .media { + margin-top: 0.5rem; } + .media + .media { + border-top: 1px solid rgba(219, 219, 219, 0.5); + margin-top: 1rem; + padding-top: 1rem; } + .media.is-large + .media { + margin-top: 1.5rem; + padding-top: 1.5rem; } + +.media-left, +.media-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + +.media-left { + margin-right: 1rem; } + +.media-right { + margin-left: 1rem; } + +.media-content { + flex-basis: auto; + flex-grow: 1; + flex-shrink: 1; + text-align: left; } + +@media screen and (max-width: 768px) { + .media-content { + overflow-x: auto; } } + +.menu { + font-size: 1rem; } + .menu.is-small, #documenter .docs-sidebar form.docs-search > input.menu { + font-size: 0.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: #222222; + display: block; + padding: 0.5em 0.75em; } + .menu-list a:hover { + background-color: whitesmoke; + color: #222222; } + .menu-list a.is-active { + background-color: #2e63b8; + color: #fff; } + .menu-list li ul { + border-left: 1px solid #dbdbdb; + margin: 0.75em; + padding-left: 0.75em; } + +.menu-label { + color: #6b6b6b; + font-size: 0.75em; + letter-spacing: 0.1em; + text-transform: uppercase; } + .menu-label:not(:first-child) { + margin-top: 1em; } + .menu-label:not(:last-child) { + margin-bottom: 1em; } + +.message { + background-color: whitesmoke; + 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: 0.75rem; } + .message.is-medium { + font-size: 1.25rem; } + .message.is-large { + font-size: 1.5rem; } + .message.is-white { + background-color: white; } + .message.is-white .message-header { + background-color: white; + color: #0a0a0a; } + .message.is-white .message-body { + border-color: white; + color: #4d4d4d; } + .message.is-black { + background-color: #fafafa; } + .message.is-black .message-header { + background-color: #0a0a0a; + color: white; } + .message.is-black .message-body { + border-color: #0a0a0a; + color: #090909; } + .message.is-light { + background-color: #fafafa; } + .message.is-light .message-header { + background-color: whitesmoke; + color: #363636; } + .message.is-light .message-body { + border-color: whitesmoke; + color: #505050; } + .message.is-dark, .content kbd.message { + background-color: #fafafa; } + .message.is-dark .message-header, .content kbd.message .message-header { + background-color: #363636; + color: whitesmoke; } + .message.is-dark .message-body, .content kbd.message .message-body { + border-color: #363636; + color: #2a2a2a; } + .message.is-primary, .docstring > section > a.message.docs-sourcelink { + background-color: #f6fbfd; } + .message.is-primary .message-header, .docstring > section > a.message.docs-sourcelink .message-header { + background-color: #4eb5de; + color: #fff; } + .message.is-primary .message-body, .docstring > section > a.message.docs-sourcelink .message-body { + border-color: #4eb5de; + color: #1f556a; } + .message.is-link { + background-color: #f7f9fd; } + .message.is-link .message-header { + background-color: #2e63b8; + color: #fff; } + .message.is-link .message-body { + border-color: #2e63b8; + color: #264981; } + .message.is-info { + background-color: #f6fbfe; } + .message.is-info .message-header { + background-color: #209cee; + color: #fff; } + .message.is-info .message-body { + border-color: #209cee; + color: #12537d; } + .message.is-success { + background-color: #f6fdf9; } + .message.is-success .message-header { + background-color: #22c35b; + color: #fff; } + .message.is-success .message-body { + border-color: #22c35b; + color: #0f361d; } + .message.is-warning { + background-color: #fffdf5; } + .message.is-warning .message-header { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .message.is-warning .message-body { + border-color: #ffdd57; + color: #3c3108; } + .message.is-danger { + background-color: #fff5f5; } + .message.is-danger .message-header { + background-color: #da0b00; + color: #fff; } + .message.is-danger .message-body { + border-color: #da0b00; + color: #9b0c04; } + +.message-header { + align-items: center; + background-color: #222222; + border-radius: 4px 4px 0 0; + color: #fff; + display: flex; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em 1em; + position: relative; } + .message-header .delete { + flex-grow: 0; + flex-shrink: 0; + margin-left: 0.75em; } + .message-header + .message-body { + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; } + +.message-body { + border-color: #dbdbdb; + border-radius: 4px; + border-style: solid; + border-width: 0 0 0 4px; + color: #222222; + padding: 1.25em 1.5em; } + .message-body code, + .message-body pre { + background-color: white; } + .message-body pre code { + background-color: transparent; } + +.modal { + align-items: center; + display: none; + flex-direction: column; + justify-content: center; + overflow: hidden; + position: fixed; + z-index: 40; } + .modal.is-active { + display: flex; } + +.modal-background { + background-color: rgba(10, 10, 10, 0.86); } + +.modal-content, +.modal-card { + margin: 0 20px; + max-height: calc(100vh - 160px); + overflow: auto; + position: relative; + width: 100%; } + @media screen and (min-width: 769px), print { + .modal-content, + .modal-card { + margin: 0 auto; + max-height: calc(100vh - 40px); + width: 640px; } } +.modal-close { + background: none; + height: 40px; + position: fixed; + right: 20px; + top: 20px; + width: 40px; } + +.modal-card { + display: flex; + flex-direction: column; + max-height: calc(100vh - 40px); + overflow: hidden; + -ms-overflow-y: visible; } + +.modal-card-head, +.modal-card-foot { + align-items: center; + background-color: whitesmoke; + 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: #222222; + flex-grow: 1; + flex-shrink: 0; + font-size: 1.5rem; + line-height: 1; } + +.modal-card-foot { + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + border-top: 1px solid #dbdbdb; } + .modal-card-foot .button:not(:last-child) { + margin-right: 0.5em; } + +.modal-card-body { + -webkit-overflow-scrolling: touch; + background-color: white; + flex-grow: 1; + flex-shrink: 1; + overflow: auto; + padding: 20px; } + +.navbar { + background-color: white; + min-height: 3.25rem; + position: relative; + z-index: 30; } + .navbar.is-white { + background-color: white; + 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: white; + color: #0a0a0a; } } + .navbar.is-black { + background-color: #0a0a0a; + color: white; } + .navbar.is-black .navbar-brand > .navbar-item, + .navbar.is-black .navbar-brand .navbar-link { + color: white; } + .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: black; + color: white; } + .navbar.is-black .navbar-brand .navbar-link::after { + border-color: white; } + .navbar.is-black .navbar-burger { + color: white; } + @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: white; } + .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: black; + color: white; } + .navbar.is-black .navbar-start .navbar-link::after, + .navbar.is-black .navbar-end .navbar-link::after { + border-color: white; } + .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: black; + color: white; } + .navbar.is-black .navbar-dropdown a.navbar-item.is-active { + background-color: #0a0a0a; + color: white; } } + .navbar.is-light { + background-color: whitesmoke; + color: #363636; } + .navbar.is-light .navbar-brand > .navbar-item, + .navbar.is-light .navbar-brand .navbar-link { + color: #363636; } + .navbar.is-light .navbar-brand > a.navbar-item:focus, .navbar.is-light .navbar-brand > a.navbar-item:hover, .navbar.is-light .navbar-brand > a.navbar-item.is-active, + .navbar.is-light .navbar-brand .navbar-link:focus, + .navbar.is-light .navbar-brand .navbar-link:hover, + .navbar.is-light .navbar-brand .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-brand .navbar-link::after { + border-color: #363636; } + .navbar.is-light .navbar-burger { + color: #363636; } + @media screen and (min-width: 1056px) { + .navbar.is-light .navbar-start > .navbar-item, + .navbar.is-light .navbar-start .navbar-link, + .navbar.is-light .navbar-end > .navbar-item, + .navbar.is-light .navbar-end .navbar-link { + color: #363636; } + .navbar.is-light .navbar-start > a.navbar-item:focus, .navbar.is-light .navbar-start > a.navbar-item:hover, .navbar.is-light .navbar-start > a.navbar-item.is-active, + .navbar.is-light .navbar-start .navbar-link:focus, + .navbar.is-light .navbar-start .navbar-link:hover, + .navbar.is-light .navbar-start .navbar-link.is-active, + .navbar.is-light .navbar-end > a.navbar-item:focus, + .navbar.is-light .navbar-end > a.navbar-item:hover, + .navbar.is-light .navbar-end > a.navbar-item.is-active, + .navbar.is-light .navbar-end .navbar-link:focus, + .navbar.is-light .navbar-end .navbar-link:hover, + .navbar.is-light .navbar-end .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-start .navbar-link::after, + .navbar.is-light .navbar-end .navbar-link::after { + border-color: #363636; } + .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #363636; } } + .navbar.is-dark, .content kbd.navbar { + background-color: #363636; + color: whitesmoke; } + .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: whitesmoke; } + .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: whitesmoke; } + .navbar.is-dark .navbar-brand .navbar-link::after, .content kbd.navbar .navbar-brand .navbar-link::after { + border-color: whitesmoke; } + .navbar.is-dark .navbar-burger, .content kbd.navbar .navbar-burger { + color: whitesmoke; } + @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: whitesmoke; } + .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: whitesmoke; } + .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: whitesmoke; } + .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: whitesmoke; } + .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, .content kbd.navbar .navbar-dropdown a.navbar-item.is-active { + background-color: #363636; + color: whitesmoke; } } + .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 whitesmoke; } + .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 whitesmoke; } + .navbar.is-fixed-top { + top: 0; } + +html.has-navbar-fixed-top, +body.has-navbar-fixed-top { + padding-top: 3.25rem; } + +html.has-navbar-fixed-bottom, +body.has-navbar-fixed-bottom { + padding-bottom: 3.25rem; } + +.navbar-brand, +.navbar-tabs { + align-items: stretch; + display: flex; + flex-shrink: 0; + min-height: 3.25rem; } + +.navbar-brand a.navbar-item:focus, .navbar-brand a.navbar-item:hover { + background-color: transparent; } + +.navbar-tabs { + -webkit-overflow-scrolling: touch; + max-width: 100vw; + overflow-x: auto; + overflow-y: hidden; } + +.navbar-burger { + color: #4a4a4a; + cursor: pointer; + display: block; + height: 3.25rem; + position: relative; + width: 3.25rem; + margin-left: auto; } + .navbar-burger span { + background-color: currentColor; + display: block; + height: 1px; + left: calc(50% - 8px); + position: absolute; + transform-origin: center; + transition-duration: 86ms; + transition-property: background-color, opacity, transform; + transition-timing-function: ease-out; + width: 16px; } + .navbar-burger span:nth-child(1) { + top: calc(50% - 6px); } + .navbar-burger span:nth-child(2) { + top: calc(50% - 1px); } + .navbar-burger span:nth-child(3) { + top: calc(50% + 4px); } + .navbar-burger:hover { + background-color: rgba(0, 0, 0, 0.05); } + .navbar-burger.is-active span:nth-child(1) { + transform: translateY(5px) rotate(45deg); } + .navbar-burger.is-active span:nth-child(2) { + opacity: 0; } + .navbar-burger.is-active span:nth-child(3) { + transform: translateY(-5px) rotate(-45deg); } + +.navbar-menu { + display: none; } + +.navbar-item, +.navbar-link { + color: #4a4a4a; + display: block; + line-height: 1.5; + padding: 0.5rem 0.75rem; + position: relative; } + .navbar-item .icon:only-child, + .navbar-link .icon:only-child { + margin-left: -0.25rem; + margin-right: -0.25rem; } + +a.navbar-item, +.navbar-link { + cursor: pointer; } + a.navbar-item:focus, a.navbar-item:focus-within, a.navbar-item:hover, a.navbar-item.is-active, + .navbar-link:focus, + .navbar-link:focus-within, + .navbar-link:hover, + .navbar-link.is-active { + background-color: #fafafa; + color: #2e63b8; } + +.navbar-item { + display: block; + flex-grow: 0; + flex-shrink: 0; } + .navbar-item img { + max-height: 1.75rem; } + .navbar-item.has-dropdown { + padding: 0; } + .navbar-item.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .navbar-item.is-tab { + border-bottom: 1px solid transparent; + min-height: 3.25rem; + padding-bottom: calc(0.5rem - 1px); } + .navbar-item.is-tab:focus, .navbar-item.is-tab:hover { + background-color: transparent; + border-bottom-color: #2e63b8; } + .navbar-item.is-tab.is-active { + background-color: transparent; + 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: whitesmoke; + 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: white; + 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: whitesmoke; + color: #0a0a0a; } + .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #2e63b8; } + .navbar-burger { + display: none; } + .navbar-item, + .navbar-link { + align-items: center; + display: flex; } + .navbar-item { + display: flex; } + .navbar-item.has-dropdown { + align-items: stretch; } + .navbar-item.has-dropdown-up .navbar-link::after { + transform: rotate(135deg) translate(0.25em, -0.25em); } + .navbar-item.has-dropdown-up .navbar-dropdown { + border-bottom: 2px solid #dbdbdb; + border-radius: 6px 6px 0 0; + border-top: none; + bottom: 100%; + box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1); + top: auto; } + .navbar-item.is-active .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown { + display: block; } + .navbar.is-spaced .navbar-item.is-active .navbar-dropdown, .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed { + opacity: 1; + pointer-events: auto; + transform: translateY(0); } + .navbar-menu { + flex-grow: 1; + flex-shrink: 0; } + .navbar-start { + justify-content: flex-start; + margin-right: auto; } + .navbar-end { + justify-content: flex-end; + margin-left: auto; } + .navbar-dropdown { + background-color: white; + 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: whitesmoke; + color: #0a0a0a; } + .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + 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: transparent; } + .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: -0.25rem; } + .pagination.is-small, #documenter .docs-sidebar form.docs-search > input.pagination { + font-size: 0.75rem; } + .pagination.is-medium { + font-size: 1.25rem; } + .pagination.is-large { + font-size: 1.5rem; } + .pagination.is-rounded .pagination-previous, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous, + .pagination.is-rounded .pagination-next, + #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next { + padding-left: 1em; + padding-right: 1em; + border-radius: 290486px; } + .pagination.is-rounded .pagination-link, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link { + border-radius: 290486px; } + +.pagination, +.pagination-list { + align-items: center; + display: flex; + justify-content: center; + text-align: center; } + +.pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis { + font-size: 1em; + justify-content: center; + margin: 0.25rem; + padding-left: 0.5em; + padding-right: 0.5em; + text-align: center; } + +.pagination-previous, +.pagination-next, +.pagination-link { + border-color: #dbdbdb; + color: #363636; + min-width: 2.25em; } + .pagination-previous:hover, + .pagination-next:hover, + .pagination-link:hover { + border-color: #b5b5b5; + color: #363636; } + .pagination-previous:focus, + .pagination-next:focus, + .pagination-link:focus { + border-color: #3c5dcd; } + .pagination-previous:active, + .pagination-next:active, + .pagination-link:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); } + .pagination-previous[disabled], + .pagination-next[disabled], + .pagination-link[disabled] { + background-color: #dbdbdb; + border-color: #dbdbdb; + box-shadow: none; + color: #6b6b6b; + opacity: 0.5; } + +.pagination-previous, +.pagination-next { + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + +.pagination-link.is-current { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + +.pagination-ellipsis { + color: #b5b5b5; + pointer-events: none; } + +.pagination-list { + flex-wrap: wrap; } + +@media screen and (max-width: 768px) { + .pagination { + flex-wrap: wrap; } + .pagination-previous, + .pagination-next { + flex-grow: 1; + flex-shrink: 1; } + .pagination-list li { + flex-grow: 1; + flex-shrink: 1; } } + +@media screen and (min-width: 769px), print { + .pagination-list { + flex-grow: 1; + flex-shrink: 1; + justify-content: flex-start; + order: 1; } + .pagination-previous { + order: 2; } + .pagination-next { + order: 3; } + .pagination { + justify-content: space-between; } + .pagination.is-centered .pagination-previous { + order: 1; } + .pagination.is-centered .pagination-list { + justify-content: center; + order: 2; } + .pagination.is-centered .pagination-next { + order: 3; } + .pagination.is-right .pagination-previous { + order: 1; } + .pagination.is-right .pagination-next { + order: 2; } + .pagination.is-right .pagination-list { + justify-content: flex-end; + order: 3; } } + +.panel { + font-size: 1rem; } + .panel:not(:last-child) { + margin-bottom: 1.5rem; } + +.panel-heading, +.panel-tabs, +.panel-block { + border-bottom: 1px solid #dbdbdb; + border-left: 1px solid #dbdbdb; + border-right: 1px solid #dbdbdb; } + .panel-heading:first-child, + .panel-tabs:first-child, + .panel-block:first-child { + border-top: 1px solid #dbdbdb; } + +.panel-heading { + background-color: whitesmoke; + border-radius: 4px 4px 0 0; + color: #222222; + font-size: 1.25em; + font-weight: 300; + line-height: 1.25; + padding: 0.5em 0.75em; } + +.panel-tabs { + align-items: flex-end; + display: flex; + font-size: 0.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: #222222; } + .panel-list a:hover { + color: #2e63b8; } + +.panel-block { + align-items: center; + color: #222222; + display: flex; + justify-content: flex-start; + padding: 0.5em 0.75em; } + .panel-block input[type="checkbox"] { + margin-right: 0.75em; } + .panel-block > .control { + flex-grow: 1; + flex-shrink: 1; + width: 100%; } + .panel-block.is-wrapped { + flex-wrap: wrap; } + .panel-block.is-active { + border-left-color: #2e63b8; + color: #363636; } + .panel-block.is-active .panel-icon { + color: #2e63b8; } + +a.panel-block, +label.panel-block { + cursor: pointer; } + a.panel-block:hover, + label.panel-block:hover { + background-color: whitesmoke; } + +.panel-icon { + display: inline-block; + font-size: 14px; + height: 1em; + line-height: 1em; + text-align: center; + vertical-align: top; + width: 1em; + color: #6b6b6b; + margin-right: 0.75em; } + .panel-icon .fa { + font-size: inherit; + line-height: inherit; } + +.tabs { + -webkit-overflow-scrolling: touch; + align-items: stretch; + display: flex; + font-size: 1rem; + justify-content: space-between; + overflow: hidden; + overflow-x: auto; + white-space: nowrap; } + .tabs a { + align-items: center; + border-bottom-color: #dbdbdb; + border-bottom-style: solid; + border-bottom-width: 1px; + color: #222222; + display: flex; + justify-content: center; + margin-bottom: -1px; + padding: 0.5em 1em; + vertical-align: top; } + .tabs a:hover { + border-bottom-color: #222222; + color: #222222; } + .tabs li { + display: block; } + .tabs li.is-active a { + border-bottom-color: #2e63b8; + color: #2e63b8; } + .tabs ul { + align-items: center; + border-bottom-color: #dbdbdb; + border-bottom-style: solid; + border-bottom-width: 1px; + display: flex; + flex-grow: 1; + flex-shrink: 0; + justify-content: flex-start; } + .tabs ul.is-left { + padding-right: 0.75em; } + .tabs ul.is-center { + flex: none; + justify-content: center; + padding-left: 0.75em; + padding-right: 0.75em; } + .tabs ul.is-right { + justify-content: flex-end; + padding-left: 0.75em; } + .tabs .icon:first-child { + margin-right: 0.5em; } + .tabs .icon:last-child { + margin-left: 0.5em; } + .tabs.is-centered ul { + justify-content: center; } + .tabs.is-right ul { + justify-content: flex-end; } + .tabs.is-boxed a { + border: 1px solid transparent; + border-radius: 4px 4px 0 0; } + .tabs.is-boxed a:hover { + background-color: whitesmoke; + border-bottom-color: #dbdbdb; } + .tabs.is-boxed li.is-active a { + background-color: white; + border-color: #dbdbdb; + border-bottom-color: transparent !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: whitesmoke; + border-color: #b5b5b5; + z-index: 2; } + .tabs.is-toggle li + li { + margin-left: -1px; } + .tabs.is-toggle li:first-child a { + border-radius: 4px 0 0 4px; } + .tabs.is-toggle li:last-child a { + border-radius: 0 4px 4px 0; } + .tabs.is-toggle li.is-active a { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; + z-index: 1; } + .tabs.is-toggle ul { + border-bottom: none; } + .tabs.is-toggle.is-toggle-rounded li:first-child a { + border-bottom-left-radius: 290486px; + border-top-left-radius: 290486px; + padding-left: 1.25em; } + .tabs.is-toggle.is-toggle-rounded li:last-child a { + border-bottom-right-radius: 290486px; + border-top-right-radius: 290486px; + padding-right: 1.25em; } + .tabs.is-small, #documenter .docs-sidebar form.docs-search > input.tabs { + font-size: 0.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: 0.75rem; } + .columns.is-mobile > .column.is-narrow { + flex: none; } + .columns.is-mobile > .column.is-full { + flex: none; + width: 100%; } + .columns.is-mobile > .column.is-three-quarters { + flex: none; + width: 75%; } + .columns.is-mobile > .column.is-two-thirds { + flex: none; + width: 66.6666%; } + .columns.is-mobile > .column.is-half { + flex: none; + width: 50%; } + .columns.is-mobile > .column.is-one-third { + flex: none; + width: 33.3333%; } + .columns.is-mobile > .column.is-one-quarter { + flex: none; + width: 25%; } + .columns.is-mobile > .column.is-one-fifth { + flex: none; + width: 20%; } + .columns.is-mobile > .column.is-two-fifths { + flex: none; + width: 40%; } + .columns.is-mobile > .column.is-three-fifths { + flex: none; + width: 60%; } + .columns.is-mobile > .column.is-four-fifths { + flex: none; + width: 80%; } + .columns.is-mobile > .column.is-offset-three-quarters { + margin-left: 75%; } + .columns.is-mobile > .column.is-offset-two-thirds { + margin-left: 66.6666%; } + .columns.is-mobile > .column.is-offset-half { + margin-left: 50%; } + .columns.is-mobile > .column.is-offset-one-third { + margin-left: 33.3333%; } + .columns.is-mobile > .column.is-offset-one-quarter { + margin-left: 25%; } + .columns.is-mobile > .column.is-offset-one-fifth { + margin-left: 20%; } + .columns.is-mobile > .column.is-offset-two-fifths { + margin-left: 40%; } + .columns.is-mobile > .column.is-offset-three-fifths { + margin-left: 60%; } + .columns.is-mobile > .column.is-offset-four-fifths { + margin-left: 80%; } + .columns.is-mobile > .column.is-0 { + flex: none; + width: 0%; } + .columns.is-mobile > .column.is-offset-0 { + margin-left: 0%; } + .columns.is-mobile > .column.is-1 { + flex: none; + width: 8.3333333333%; } + .columns.is-mobile > .column.is-offset-1 { + margin-left: 8.3333333333%; } + .columns.is-mobile > .column.is-2 { + flex: none; + width: 16.6666666667%; } + .columns.is-mobile > .column.is-offset-2 { + margin-left: 16.6666666667%; } + .columns.is-mobile > .column.is-3 { + flex: none; + width: 25%; } + .columns.is-mobile > .column.is-offset-3 { + margin-left: 25%; } + .columns.is-mobile > .column.is-4 { + flex: none; + width: 33.3333333333%; } + .columns.is-mobile > .column.is-offset-4 { + margin-left: 33.3333333333%; } + .columns.is-mobile > .column.is-5 { + flex: none; + width: 41.6666666667%; } + .columns.is-mobile > .column.is-offset-5 { + margin-left: 41.6666666667%; } + .columns.is-mobile > .column.is-6 { + flex: none; + width: 50%; } + .columns.is-mobile > .column.is-offset-6 { + margin-left: 50%; } + .columns.is-mobile > .column.is-7 { + flex: none; + width: 58.3333333333%; } + .columns.is-mobile > .column.is-offset-7 { + margin-left: 58.3333333333%; } + .columns.is-mobile > .column.is-8 { + flex: none; + width: 66.6666666667%; } + .columns.is-mobile > .column.is-offset-8 { + margin-left: 66.6666666667%; } + .columns.is-mobile > .column.is-9 { + flex: none; + width: 75%; } + .columns.is-mobile > .column.is-offset-9 { + margin-left: 75%; } + .columns.is-mobile > .column.is-10 { + flex: none; + width: 83.3333333333%; } + .columns.is-mobile > .column.is-offset-10 { + margin-left: 83.3333333333%; } + .columns.is-mobile > .column.is-11 { + flex: none; + width: 91.6666666667%; } + .columns.is-mobile > .column.is-offset-11 { + margin-left: 91.6666666667%; } + .columns.is-mobile > .column.is-12 { + flex: none; + width: 100%; } + .columns.is-mobile > .column.is-offset-12 { + margin-left: 100%; } + @media screen and (max-width: 768px) { + .column.is-narrow-mobile { + flex: none; } + .column.is-full-mobile { + flex: none; + width: 100%; } + .column.is-three-quarters-mobile { + flex: none; + width: 75%; } + .column.is-two-thirds-mobile { + flex: none; + width: 66.6666%; } + .column.is-half-mobile { + flex: none; + width: 50%; } + .column.is-one-third-mobile { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-mobile { + flex: none; + width: 25%; } + .column.is-one-fifth-mobile { + flex: none; + width: 20%; } + .column.is-two-fifths-mobile { + flex: none; + width: 40%; } + .column.is-three-fifths-mobile { + flex: none; + width: 60%; } + .column.is-four-fifths-mobile { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-mobile { + margin-left: 75%; } + .column.is-offset-two-thirds-mobile { + margin-left: 66.6666%; } + .column.is-offset-half-mobile { + margin-left: 50%; } + .column.is-offset-one-third-mobile { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-mobile { + margin-left: 25%; } + .column.is-offset-one-fifth-mobile { + margin-left: 20%; } + .column.is-offset-two-fifths-mobile { + margin-left: 40%; } + .column.is-offset-three-fifths-mobile { + margin-left: 60%; } + .column.is-offset-four-fifths-mobile { + margin-left: 80%; } + .column.is-0-mobile { + flex: none; + width: 0%; } + .column.is-offset-0-mobile { + margin-left: 0%; } + .column.is-1-mobile { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-mobile { + margin-left: 8.3333333333%; } + .column.is-2-mobile { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-mobile { + margin-left: 16.6666666667%; } + .column.is-3-mobile { + flex: none; + width: 25%; } + .column.is-offset-3-mobile { + margin-left: 25%; } + .column.is-4-mobile { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-mobile { + margin-left: 33.3333333333%; } + .column.is-5-mobile { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-mobile { + margin-left: 41.6666666667%; } + .column.is-6-mobile { + flex: none; + width: 50%; } + .column.is-offset-6-mobile { + margin-left: 50%; } + .column.is-7-mobile { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-mobile { + margin-left: 58.3333333333%; } + .column.is-8-mobile { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-mobile { + margin-left: 66.6666666667%; } + .column.is-9-mobile { + flex: none; + width: 75%; } + .column.is-offset-9-mobile { + margin-left: 75%; } + .column.is-10-mobile { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-mobile { + margin-left: 83.3333333333%; } + .column.is-11-mobile { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-mobile { + margin-left: 91.6666666667%; } + .column.is-12-mobile { + flex: none; + width: 100%; } + .column.is-offset-12-mobile { + margin-left: 100%; } } + @media screen and (min-width: 769px), print { + .column.is-narrow, .column.is-narrow-tablet { + flex: none; } + .column.is-full, .column.is-full-tablet { + flex: none; + width: 100%; } + .column.is-three-quarters, .column.is-three-quarters-tablet { + flex: none; + width: 75%; } + .column.is-two-thirds, .column.is-two-thirds-tablet { + flex: none; + width: 66.6666%; } + .column.is-half, .column.is-half-tablet { + flex: none; + width: 50%; } + .column.is-one-third, .column.is-one-third-tablet { + flex: none; + width: 33.3333%; } + .column.is-one-quarter, .column.is-one-quarter-tablet { + flex: none; + width: 25%; } + .column.is-one-fifth, .column.is-one-fifth-tablet { + flex: none; + width: 20%; } + .column.is-two-fifths, .column.is-two-fifths-tablet { + flex: none; + width: 40%; } + .column.is-three-fifths, .column.is-three-fifths-tablet { + flex: none; + width: 60%; } + .column.is-four-fifths, .column.is-four-fifths-tablet { + flex: none; + width: 80%; } + .column.is-offset-three-quarters, .column.is-offset-three-quarters-tablet { + margin-left: 75%; } + .column.is-offset-two-thirds, .column.is-offset-two-thirds-tablet { + margin-left: 66.6666%; } + .column.is-offset-half, .column.is-offset-half-tablet { + margin-left: 50%; } + .column.is-offset-one-third, .column.is-offset-one-third-tablet { + margin-left: 33.3333%; } + .column.is-offset-one-quarter, .column.is-offset-one-quarter-tablet { + margin-left: 25%; } + .column.is-offset-one-fifth, .column.is-offset-one-fifth-tablet { + margin-left: 20%; } + .column.is-offset-two-fifths, .column.is-offset-two-fifths-tablet { + margin-left: 40%; } + .column.is-offset-three-fifths, .column.is-offset-three-fifths-tablet { + margin-left: 60%; } + .column.is-offset-four-fifths, .column.is-offset-four-fifths-tablet { + margin-left: 80%; } + .column.is-0, .column.is-0-tablet { + flex: none; + width: 0%; } + .column.is-offset-0, .column.is-offset-0-tablet { + margin-left: 0%; } + .column.is-1, .column.is-1-tablet { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1, .column.is-offset-1-tablet { + margin-left: 8.3333333333%; } + .column.is-2, .column.is-2-tablet { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2, .column.is-offset-2-tablet { + margin-left: 16.6666666667%; } + .column.is-3, .column.is-3-tablet { + flex: none; + width: 25%; } + .column.is-offset-3, .column.is-offset-3-tablet { + margin-left: 25%; } + .column.is-4, .column.is-4-tablet { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4, .column.is-offset-4-tablet { + margin-left: 33.3333333333%; } + .column.is-5, .column.is-5-tablet { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5, .column.is-offset-5-tablet { + margin-left: 41.6666666667%; } + .column.is-6, .column.is-6-tablet { + flex: none; + width: 50%; } + .column.is-offset-6, .column.is-offset-6-tablet { + margin-left: 50%; } + .column.is-7, .column.is-7-tablet { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7, .column.is-offset-7-tablet { + margin-left: 58.3333333333%; } + .column.is-8, .column.is-8-tablet { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8, .column.is-offset-8-tablet { + margin-left: 66.6666666667%; } + .column.is-9, .column.is-9-tablet { + flex: none; + width: 75%; } + .column.is-offset-9, .column.is-offset-9-tablet { + margin-left: 75%; } + .column.is-10, .column.is-10-tablet { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10, .column.is-offset-10-tablet { + margin-left: 83.3333333333%; } + .column.is-11, .column.is-11-tablet { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11, .column.is-offset-11-tablet { + margin-left: 91.6666666667%; } + .column.is-12, .column.is-12-tablet { + flex: none; + width: 100%; } + .column.is-offset-12, .column.is-offset-12-tablet { + margin-left: 100%; } } + @media screen and (max-width: 1055px) { + .column.is-narrow-touch { + flex: none; } + .column.is-full-touch { + flex: none; + width: 100%; } + .column.is-three-quarters-touch { + flex: none; + width: 75%; } + .column.is-two-thirds-touch { + flex: none; + width: 66.6666%; } + .column.is-half-touch { + flex: none; + width: 50%; } + .column.is-one-third-touch { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-touch { + flex: none; + width: 25%; } + .column.is-one-fifth-touch { + flex: none; + width: 20%; } + .column.is-two-fifths-touch { + flex: none; + width: 40%; } + .column.is-three-fifths-touch { + flex: none; + width: 60%; } + .column.is-four-fifths-touch { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-touch { + margin-left: 75%; } + .column.is-offset-two-thirds-touch { + margin-left: 66.6666%; } + .column.is-offset-half-touch { + margin-left: 50%; } + .column.is-offset-one-third-touch { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-touch { + margin-left: 25%; } + .column.is-offset-one-fifth-touch { + margin-left: 20%; } + .column.is-offset-two-fifths-touch { + margin-left: 40%; } + .column.is-offset-three-fifths-touch { + margin-left: 60%; } + .column.is-offset-four-fifths-touch { + margin-left: 80%; } + .column.is-0-touch { + flex: none; + width: 0%; } + .column.is-offset-0-touch { + margin-left: 0%; } + .column.is-1-touch { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-touch { + margin-left: 8.3333333333%; } + .column.is-2-touch { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-touch { + margin-left: 16.6666666667%; } + .column.is-3-touch { + flex: none; + width: 25%; } + .column.is-offset-3-touch { + margin-left: 25%; } + .column.is-4-touch { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-touch { + margin-left: 33.3333333333%; } + .column.is-5-touch { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-touch { + margin-left: 41.6666666667%; } + .column.is-6-touch { + flex: none; + width: 50%; } + .column.is-offset-6-touch { + margin-left: 50%; } + .column.is-7-touch { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-touch { + margin-left: 58.3333333333%; } + .column.is-8-touch { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-touch { + margin-left: 66.6666666667%; } + .column.is-9-touch { + flex: none; + width: 75%; } + .column.is-offset-9-touch { + margin-left: 75%; } + .column.is-10-touch { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-touch { + margin-left: 83.3333333333%; } + .column.is-11-touch { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-touch { + margin-left: 91.6666666667%; } + .column.is-12-touch { + flex: none; + width: 100%; } + .column.is-offset-12-touch { + margin-left: 100%; } } + @media screen and (min-width: 1056px) { + .column.is-narrow-desktop { + flex: none; } + .column.is-full-desktop { + flex: none; + width: 100%; } + .column.is-three-quarters-desktop { + flex: none; + width: 75%; } + .column.is-two-thirds-desktop { + flex: none; + width: 66.6666%; } + .column.is-half-desktop { + flex: none; + width: 50%; } + .column.is-one-third-desktop { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-desktop { + flex: none; + width: 25%; } + .column.is-one-fifth-desktop { + flex: none; + width: 20%; } + .column.is-two-fifths-desktop { + flex: none; + width: 40%; } + .column.is-three-fifths-desktop { + flex: none; + width: 60%; } + .column.is-four-fifths-desktop { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-desktop { + margin-left: 75%; } + .column.is-offset-two-thirds-desktop { + margin-left: 66.6666%; } + .column.is-offset-half-desktop { + margin-left: 50%; } + .column.is-offset-one-third-desktop { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-desktop { + margin-left: 25%; } + .column.is-offset-one-fifth-desktop { + margin-left: 20%; } + .column.is-offset-two-fifths-desktop { + margin-left: 40%; } + .column.is-offset-three-fifths-desktop { + margin-left: 60%; } + .column.is-offset-four-fifths-desktop { + margin-left: 80%; } + .column.is-0-desktop { + flex: none; + width: 0%; } + .column.is-offset-0-desktop { + margin-left: 0%; } + .column.is-1-desktop { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-desktop { + margin-left: 8.3333333333%; } + .column.is-2-desktop { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-desktop { + margin-left: 16.6666666667%; } + .column.is-3-desktop { + flex: none; + width: 25%; } + .column.is-offset-3-desktop { + margin-left: 25%; } + .column.is-4-desktop { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-desktop { + margin-left: 33.3333333333%; } + .column.is-5-desktop { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-desktop { + margin-left: 41.6666666667%; } + .column.is-6-desktop { + flex: none; + width: 50%; } + .column.is-offset-6-desktop { + margin-left: 50%; } + .column.is-7-desktop { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-desktop { + margin-left: 58.3333333333%; } + .column.is-8-desktop { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-desktop { + margin-left: 66.6666666667%; } + .column.is-9-desktop { + flex: none; + width: 75%; } + .column.is-offset-9-desktop { + margin-left: 75%; } + .column.is-10-desktop { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-desktop { + margin-left: 83.3333333333%; } + .column.is-11-desktop { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-desktop { + margin-left: 91.6666666667%; } + .column.is-12-desktop { + flex: none; + width: 100%; } + .column.is-offset-12-desktop { + margin-left: 100%; } } + @media screen and (min-width: 1216px) { + .column.is-narrow-widescreen { + flex: none; } + .column.is-full-widescreen { + flex: none; + width: 100%; } + .column.is-three-quarters-widescreen { + flex: none; + width: 75%; } + .column.is-two-thirds-widescreen { + flex: none; + width: 66.6666%; } + .column.is-half-widescreen { + flex: none; + width: 50%; } + .column.is-one-third-widescreen { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-widescreen { + flex: none; + width: 25%; } + .column.is-one-fifth-widescreen { + flex: none; + width: 20%; } + .column.is-two-fifths-widescreen { + flex: none; + width: 40%; } + .column.is-three-fifths-widescreen { + flex: none; + width: 60%; } + .column.is-four-fifths-widescreen { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-widescreen { + margin-left: 75%; } + .column.is-offset-two-thirds-widescreen { + margin-left: 66.6666%; } + .column.is-offset-half-widescreen { + margin-left: 50%; } + .column.is-offset-one-third-widescreen { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-widescreen { + margin-left: 25%; } + .column.is-offset-one-fifth-widescreen { + margin-left: 20%; } + .column.is-offset-two-fifths-widescreen { + margin-left: 40%; } + .column.is-offset-three-fifths-widescreen { + margin-left: 60%; } + .column.is-offset-four-fifths-widescreen { + margin-left: 80%; } + .column.is-0-widescreen { + flex: none; + width: 0%; } + .column.is-offset-0-widescreen { + margin-left: 0%; } + .column.is-1-widescreen { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-widescreen { + margin-left: 8.3333333333%; } + .column.is-2-widescreen { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-widescreen { + margin-left: 16.6666666667%; } + .column.is-3-widescreen { + flex: none; + width: 25%; } + .column.is-offset-3-widescreen { + margin-left: 25%; } + .column.is-4-widescreen { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-widescreen { + margin-left: 33.3333333333%; } + .column.is-5-widescreen { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-widescreen { + margin-left: 41.6666666667%; } + .column.is-6-widescreen { + flex: none; + width: 50%; } + .column.is-offset-6-widescreen { + margin-left: 50%; } + .column.is-7-widescreen { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-widescreen { + margin-left: 58.3333333333%; } + .column.is-8-widescreen { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-widescreen { + margin-left: 66.6666666667%; } + .column.is-9-widescreen { + flex: none; + width: 75%; } + .column.is-offset-9-widescreen { + margin-left: 75%; } + .column.is-10-widescreen { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-widescreen { + margin-left: 83.3333333333%; } + .column.is-11-widescreen { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-widescreen { + margin-left: 91.6666666667%; } + .column.is-12-widescreen { + flex: none; + width: 100%; } + .column.is-offset-12-widescreen { + margin-left: 100%; } } + @media screen and (min-width: 1408px) { + .column.is-narrow-fullhd { + flex: none; } + .column.is-full-fullhd { + flex: none; + width: 100%; } + .column.is-three-quarters-fullhd { + flex: none; + width: 75%; } + .column.is-two-thirds-fullhd { + flex: none; + width: 66.6666%; } + .column.is-half-fullhd { + flex: none; + width: 50%; } + .column.is-one-third-fullhd { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-fullhd { + flex: none; + width: 25%; } + .column.is-one-fifth-fullhd { + flex: none; + width: 20%; } + .column.is-two-fifths-fullhd { + flex: none; + width: 40%; } + .column.is-three-fifths-fullhd { + flex: none; + width: 60%; } + .column.is-four-fifths-fullhd { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-fullhd { + margin-left: 75%; } + .column.is-offset-two-thirds-fullhd { + margin-left: 66.6666%; } + .column.is-offset-half-fullhd { + margin-left: 50%; } + .column.is-offset-one-third-fullhd { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-fullhd { + margin-left: 25%; } + .column.is-offset-one-fifth-fullhd { + margin-left: 20%; } + .column.is-offset-two-fifths-fullhd { + margin-left: 40%; } + .column.is-offset-three-fifths-fullhd { + margin-left: 60%; } + .column.is-offset-four-fifths-fullhd { + margin-left: 80%; } + .column.is-0-fullhd { + flex: none; + width: 0%; } + .column.is-offset-0-fullhd { + margin-left: 0%; } + .column.is-1-fullhd { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-fullhd { + margin-left: 8.3333333333%; } + .column.is-2-fullhd { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-fullhd { + margin-left: 16.6666666667%; } + .column.is-3-fullhd { + flex: none; + width: 25%; } + .column.is-offset-3-fullhd { + margin-left: 25%; } + .column.is-4-fullhd { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-fullhd { + margin-left: 33.3333333333%; } + .column.is-5-fullhd { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-fullhd { + margin-left: 41.6666666667%; } + .column.is-6-fullhd { + flex: none; + width: 50%; } + .column.is-offset-6-fullhd { + margin-left: 50%; } + .column.is-7-fullhd { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-fullhd { + margin-left: 58.3333333333%; } + .column.is-8-fullhd { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-fullhd { + margin-left: 66.6666666667%; } + .column.is-9-fullhd { + flex: none; + width: 75%; } + .column.is-offset-9-fullhd { + margin-left: 75%; } + .column.is-10-fullhd { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-fullhd { + margin-left: 83.3333333333%; } + .column.is-11-fullhd { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-fullhd { + margin-left: 91.6666666667%; } + .column.is-12-fullhd { + flex: none; + width: 100%; } + .column.is-offset-12-fullhd { + margin-left: 100%; } } +.columns { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + .columns:last-child { + margin-bottom: -0.75rem; } + .columns:not(:last-child) { + margin-bottom: calc(1.5rem - 0.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: 0.25rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-1-mobile { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-1-tablet { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-1-tablet-only { + --columnGap: 0.25rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-1-touch { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-1-desktop { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-1-desktop-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-1-widescreen { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-1-widescreen-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-1-fullhd { + --columnGap: 0.25rem; } } + .columns.is-variable.is-2 { + --columnGap: 0.5rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-2-mobile { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-2-tablet { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-2-tablet-only { + --columnGap: 0.5rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-2-touch { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-2-desktop { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-2-desktop-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-2-widescreen { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-2-widescreen-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-2-fullhd { + --columnGap: 0.5rem; } } + .columns.is-variable.is-3 { + --columnGap: 0.75rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-3-mobile { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-3-tablet { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-3-tablet-only { + --columnGap: 0.75rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-3-touch { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-3-desktop { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-3-desktop-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-3-widescreen { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-3-widescreen-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-3-fullhd { + --columnGap: 0.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: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + .tile.is-ancestor:last-child { + margin-bottom: -0.75rem; } + .tile.is-ancestor:not(:last-child) { + margin-bottom: 0.75rem; } + .tile.is-child { + margin: 0 !important; } + .tile.is-parent { + padding: 0.75rem; } + .tile.is-vertical { + flex-direction: column; } + .tile.is-vertical > .tile.is-child:not(:last-child) { + margin-bottom: 1.5rem !important; } + @media screen and (min-width: 769px), print { + .tile:not(.is-child) { + display: flex; } + .tile.is-1 { + flex: none; + width: 8.3333333333%; } + .tile.is-2 { + flex: none; + width: 16.6666666667%; } + .tile.is-3 { + flex: none; + width: 25%; } + .tile.is-4 { + flex: none; + width: 33.3333333333%; } + .tile.is-5 { + flex: none; + width: 41.6666666667%; } + .tile.is-6 { + flex: none; + width: 50%; } + .tile.is-7 { + flex: none; + width: 58.3333333333%; } + .tile.is-8 { + flex: none; + width: 66.6666666667%; } + .tile.is-9 { + flex: none; + width: 75%; } + .tile.is-10 { + flex: none; + width: 83.3333333333%; } + .tile.is-11 { + flex: none; + width: 91.6666666667%; } + .tile.is-12 { + flex: none; + width: 100%; } } +.hero { + align-items: stretch; + display: flex; + flex-direction: column; + justify-content: space-between; } + .hero .navbar { + background: none; } + .hero .tabs ul { + border-bottom: none; } + .hero.is-white { + background-color: white; + 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: white; } } + .hero.is-white .navbar-item, + .hero.is-white .navbar-link { + color: rgba(10, 10, 10, 0.7); } + .hero.is-white a.navbar-item:hover, .hero.is-white a.navbar-item.is-active, + .hero.is-white .navbar-link:hover, + .hero.is-white .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + .hero.is-white .tabs a { + color: #0a0a0a; + opacity: 0.9; } + .hero.is-white .tabs a:hover { + opacity: 1; } + .hero.is-white .tabs li.is-active a { + opacity: 1; } + .hero.is-white .tabs.is-boxed a, .hero.is-white .tabs.is-toggle a { + color: #0a0a0a; } + .hero.is-white .tabs.is-boxed a:hover, .hero.is-white .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-white .tabs.is-boxed li.is-active a, .hero.is-white .tabs.is-boxed li.is-active a:hover, .hero.is-white .tabs.is-toggle li.is-active a, .hero.is-white .tabs.is-toggle li.is-active a:hover { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .hero.is-white.is-bold { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } + @media screen and (max-width: 768px) { + .hero.is-white.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } } + .hero.is-black { + background-color: #0a0a0a; + color: white; } + .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: white; } + .hero.is-black .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-black .subtitle a:not(.button), + .hero.is-black .subtitle strong { + color: white; } + @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: black; + color: white; } + .hero.is-black .tabs a { + color: white; + opacity: 0.9; } + .hero.is-black .tabs a:hover { + opacity: 1; } + .hero.is-black .tabs li.is-active a { + opacity: 1; } + .hero.is-black .tabs.is-boxed a, .hero.is-black .tabs.is-toggle a { + color: white; } + .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: white; + border-color: white; + color: #0a0a0a; } + .hero.is-black.is-bold { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } + @media screen and (max-width: 768px) { + .hero.is-black.is-bold .navbar-menu { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } } + .hero.is-light { + background-color: whitesmoke; + color: #363636; } + .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-light strong { + color: inherit; } + .hero.is-light .title { + color: #363636; } + .hero.is-light .subtitle { + color: rgba(54, 54, 54, 0.9); } + .hero.is-light .subtitle a:not(.button), + .hero.is-light .subtitle strong { + color: #363636; } + @media screen and (max-width: 1055px) { + .hero.is-light .navbar-menu { + background-color: whitesmoke; } } + .hero.is-light .navbar-item, + .hero.is-light .navbar-link { + color: rgba(54, 54, 54, 0.7); } + .hero.is-light a.navbar-item:hover, .hero.is-light a.navbar-item.is-active, + .hero.is-light .navbar-link:hover, + .hero.is-light .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .hero.is-light .tabs a { + color: #363636; + opacity: 0.9; } + .hero.is-light .tabs a:hover { + opacity: 1; } + .hero.is-light .tabs li.is-active a { + opacity: 1; } + .hero.is-light .tabs.is-boxed a, .hero.is-light .tabs.is-toggle a { + color: #363636; } + .hero.is-light .tabs.is-boxed a:hover, .hero.is-light .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-light .tabs.is-boxed li.is-active a, .hero.is-light .tabs.is-boxed li.is-active a:hover, .hero.is-light .tabs.is-toggle li.is-active a, .hero.is-light .tabs.is-toggle li.is-active a:hover { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .hero.is-light.is-bold { + background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } + @media screen and (max-width: 768px) { + .hero.is-light.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } } + .hero.is-dark, .content kbd.hero { + background-color: #363636; + color: whitesmoke; } + .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: whitesmoke; } + .hero.is-dark .subtitle, .content kbd.hero .subtitle { + color: rgba(245, 245, 245, 0.9); } + .hero.is-dark .subtitle a:not(.button), .content kbd.hero .subtitle a:not(.button), + .hero.is-dark .subtitle strong, + .content kbd.hero .subtitle strong { + color: whitesmoke; } + @media screen and (max-width: 1055px) { + .hero.is-dark .navbar-menu, .content kbd.hero .navbar-menu { + background-color: #363636; } } + .hero.is-dark .navbar-item, .content kbd.hero .navbar-item, + .hero.is-dark .navbar-link, + .content kbd.hero .navbar-link { + color: rgba(245, 245, 245, 0.7); } + .hero.is-dark a.navbar-item:hover, .content kbd.hero a.navbar-item:hover, .hero.is-dark a.navbar-item.is-active, .content kbd.hero a.navbar-item.is-active, + .hero.is-dark .navbar-link:hover, + .content kbd.hero .navbar-link:hover, + .hero.is-dark .navbar-link.is-active, + .content kbd.hero .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; } + .hero.is-dark .tabs a, .content kbd.hero .tabs a { + color: whitesmoke; + opacity: 0.9; } + .hero.is-dark .tabs a:hover, .content kbd.hero .tabs a:hover { + opacity: 1; } + .hero.is-dark .tabs li.is-active a, .content kbd.hero .tabs li.is-active a { + opacity: 1; } + .hero.is-dark .tabs.is-boxed a, .content kbd.hero .tabs.is-boxed a, .hero.is-dark .tabs.is-toggle a, .content kbd.hero .tabs.is-toggle a { + color: whitesmoke; } + .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: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .hero.is-dark.is-bold, .content kbd.hero.is-bold { + background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); } + @media screen and (max-width: 768px) { + .hero.is-dark.is-bold .navbar-menu, .content kbd.hero.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); } } + .hero.is-primary, .docstring > section > a.hero.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-primary strong, + .docstring > section > a.hero.docs-sourcelink strong { + color: inherit; } + .hero.is-primary .title, .docstring > section > a.hero.docs-sourcelink .title { + color: #fff; } + .hero.is-primary .subtitle, .docstring > section > a.hero.docs-sourcelink .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-primary .subtitle a:not(.button), .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button), + .hero.is-primary .subtitle strong, + .docstring > section > a.hero.docs-sourcelink .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-primary .navbar-menu, .docstring > section > a.hero.docs-sourcelink .navbar-menu { + background-color: #4eb5de; } } + .hero.is-primary .navbar-item, .docstring > section > a.hero.docs-sourcelink .navbar-item, + .hero.is-primary .navbar-link, + .docstring > section > a.hero.docs-sourcelink .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-primary a.navbar-item:hover, .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, .hero.is-primary a.navbar-item.is-active, .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active, + .hero.is-primary .navbar-link:hover, + .docstring > section > a.hero.docs-sourcelink .navbar-link:hover, + .hero.is-primary .navbar-link.is-active, + .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active { + background-color: #39acda; + color: #fff; } + .hero.is-primary .tabs a, .docstring > section > a.hero.docs-sourcelink .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-primary .tabs a:hover, .docstring > section > a.hero.docs-sourcelink .tabs a:hover { + opacity: 1; } + .hero.is-primary .tabs li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a { + opacity: 1; } + .hero.is-primary .tabs.is-boxed a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, .hero.is-primary .tabs.is-toggle a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a { + color: #fff; } + .hero.is-primary .tabs.is-boxed a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, .hero.is-primary .tabs.is-toggle a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-primary .tabs.is-boxed li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, .hero.is-primary .tabs.is-boxed li.is-active a:hover, .hero.is-primary .tabs.is-toggle li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, .hero.is-primary .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #4eb5de; } + .hero.is-primary.is-bold, .docstring > section > a.hero.is-bold.docs-sourcelink { + background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); } + @media screen and (max-width: 768px) { + .hero.is-primary.is-bold .navbar-menu, .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu { + background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); } } + .hero.is-link { + background-color: #2e63b8; + color: #fff; } + .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-link strong { + color: inherit; } + .hero.is-link .title { + color: #fff; } + .hero.is-link .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-link .subtitle a:not(.button), + .hero.is-link .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-link .navbar-menu { + background-color: #2e63b8; } } + .hero.is-link .navbar-item, + .hero.is-link .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-link a.navbar-item:hover, .hero.is-link a.navbar-item.is-active, + .hero.is-link .navbar-link:hover, + .hero.is-link .navbar-link.is-active { + background-color: #2958a4; + color: #fff; } + .hero.is-link .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-link .tabs a:hover { + opacity: 1; } + .hero.is-link .tabs li.is-active a { + opacity: 1; } + .hero.is-link .tabs.is-boxed a, .hero.is-link .tabs.is-toggle a { + color: #fff; } + .hero.is-link .tabs.is-boxed a:hover, .hero.is-link .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-link .tabs.is-boxed li.is-active a, .hero.is-link .tabs.is-boxed li.is-active a:hover, .hero.is-link .tabs.is-toggle li.is-active a, .hero.is-link .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #2e63b8; } + .hero.is-link.is-bold { + background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); } + @media screen and (max-width: 768px) { + .hero.is-link.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); } } + .hero.is-info { + background-color: #209cee; + color: #fff; } + .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-info strong { + color: inherit; } + .hero.is-info .title { + color: #fff; } + .hero.is-info .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-info .subtitle a:not(.button), + .hero.is-info .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-info .navbar-menu { + background-color: #209cee; } } + .hero.is-info .navbar-item, + .hero.is-info .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-info a.navbar-item:hover, .hero.is-info a.navbar-item.is-active, + .hero.is-info .navbar-link:hover, + .hero.is-info .navbar-link.is-active { + background-color: #1190e3; + color: #fff; } + .hero.is-info .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-info .tabs a:hover { + opacity: 1; } + .hero.is-info .tabs li.is-active a { + opacity: 1; } + .hero.is-info .tabs.is-boxed a, .hero.is-info .tabs.is-toggle a { + color: #fff; } + .hero.is-info .tabs.is-boxed a:hover, .hero.is-info .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-info .tabs.is-boxed li.is-active a, .hero.is-info .tabs.is-boxed li.is-active a:hover, .hero.is-info .tabs.is-toggle li.is-active a, .hero.is-info .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #209cee; } + .hero.is-info.is-bold { + background-image: linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%); } + @media screen and (max-width: 768px) { + .hero.is-info.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%); } } + .hero.is-success { + background-color: #22c35b; + color: #fff; } + .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-success strong { + color: inherit; } + .hero.is-success .title { + color: #fff; } + .hero.is-success .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-success .subtitle a:not(.button), + .hero.is-success .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-success .navbar-menu { + background-color: #22c35b; } } + .hero.is-success .navbar-item, + .hero.is-success .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-success a.navbar-item:hover, .hero.is-success a.navbar-item.is-active, + .hero.is-success .navbar-link:hover, + .hero.is-success .navbar-link.is-active { + background-color: #1ead51; + color: #fff; } + .hero.is-success .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-success .tabs a:hover { + opacity: 1; } + .hero.is-success .tabs li.is-active a { + opacity: 1; } + .hero.is-success .tabs.is-boxed a, .hero.is-success .tabs.is-toggle a { + color: #fff; } + .hero.is-success .tabs.is-boxed a:hover, .hero.is-success .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-success .tabs.is-boxed li.is-active a, .hero.is-success .tabs.is-boxed li.is-active a:hover, .hero.is-success .tabs.is-toggle li.is-active a, .hero.is-success .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #22c35b; } + .hero.is-success.is-bold { + background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); } + @media screen and (max-width: 768px) { + .hero.is-success.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); } } + .hero.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-warning strong { + color: inherit; } + .hero.is-warning .title { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .subtitle { + color: rgba(0, 0, 0, 0.9); } + .hero.is-warning .subtitle a:not(.button), + .hero.is-warning .subtitle strong { + color: rgba(0, 0, 0, 0.7); } + @media screen and (max-width: 1055px) { + .hero.is-warning .navbar-menu { + background-color: #ffdd57; } } + .hero.is-warning .navbar-item, + .hero.is-warning .navbar-link { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning a.navbar-item:hover, .hero.is-warning a.navbar-item.is-active, + .hero.is-warning .navbar-link:hover, + .hero.is-warning .navbar-link.is-active { + background-color: #ffd83e; + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .tabs a { + color: rgba(0, 0, 0, 0.7); + opacity: 0.9; } + .hero.is-warning .tabs a:hover { + opacity: 1; } + .hero.is-warning .tabs li.is-active a { + opacity: 1; } + .hero.is-warning .tabs.is-boxed a, .hero.is-warning .tabs.is-toggle a { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .tabs.is-boxed a:hover, .hero.is-warning .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-warning .tabs.is-boxed li.is-active a, .hero.is-warning .tabs.is-boxed li.is-active a:hover, .hero.is-warning .tabs.is-toggle li.is-active a, .hero.is-warning .tabs.is-toggle li.is-active a:hover { + background-color: rgba(0, 0, 0, 0.7); + border-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .hero.is-warning.is-bold { + background-image: linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%); } + @media screen and (max-width: 768px) { + .hero.is-warning.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%); } } + .hero.is-danger { + background-color: #da0b00; + color: #fff; } + .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-danger strong { + color: inherit; } + .hero.is-danger .title { + color: #fff; } + .hero.is-danger .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-danger .subtitle a:not(.button), + .hero.is-danger .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-danger .navbar-menu { + background-color: #da0b00; } } + .hero.is-danger .navbar-item, + .hero.is-danger .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-danger a.navbar-item:hover, .hero.is-danger a.navbar-item.is-active, + .hero.is-danger .navbar-link:hover, + .hero.is-danger .navbar-link.is-active { + background-color: #c10a00; + color: #fff; } + .hero.is-danger .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-danger .tabs a:hover { + opacity: 1; } + .hero.is-danger .tabs li.is-active a { + opacity: 1; } + .hero.is-danger .tabs.is-boxed a, .hero.is-danger .tabs.is-toggle a { + color: #fff; } + .hero.is-danger .tabs.is-boxed a:hover, .hero.is-danger .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-danger .tabs.is-boxed li.is-active a, .hero.is-danger .tabs.is-boxed li.is-active a:hover, .hero.is-danger .tabs.is-toggle li.is-active a, .hero.is-danger .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #da0b00; } + .hero.is-danger.is-bold { + background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); } + @media screen and (max-width: 768px) { + .hero.is-danger.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); } } + .hero.is-small .hero-body, #documenter .docs-sidebar form.docs-search > input.hero .hero-body { + padding-bottom: 1.5rem; + padding-top: 1.5rem; } + @media screen and (min-width: 769px), print { + .hero.is-medium .hero-body { + padding-bottom: 9rem; + padding-top: 9rem; } } + @media screen and (min-width: 769px), print { + .hero.is-large .hero-body { + padding-bottom: 18rem; + padding-top: 18rem; } } + .hero.is-halfheight .hero-body, .hero.is-fullheight .hero-body, .hero.is-fullheight-with-navbar .hero-body { + align-items: center; + display: flex; } + .hero.is-halfheight .hero-body > .container, .hero.is-fullheight .hero-body > .container, .hero.is-fullheight-with-navbar .hero-body > .container { + flex-grow: 1; + flex-shrink: 1; } + .hero.is-halfheight { + min-height: 50vh; } + .hero.is-fullheight { + min-height: 100vh; } + +.hero-video { + overflow: hidden; } + .hero-video video { + left: 50%; + min-height: 100%; + min-width: 100%; + position: absolute; + top: 50%; + transform: translate3d(-50%, -50%, 0); } + .hero-video.is-transparent { + opacity: 0.3; } + @media screen and (max-width: 768px) { + .hero-video { + display: none; } } +.hero-buttons { + margin-top: 1.5rem; } + @media screen and (max-width: 768px) { + .hero-buttons .button { + display: flex; } + .hero-buttons .button:not(:last-child) { + margin-bottom: 0.75rem; } } + @media screen and (min-width: 769px), print { + .hero-buttons { + display: flex; + justify-content: center; } + .hero-buttons .button:not(:last-child) { + margin-right: 1.5rem; } } +.hero-head, +.hero-foot { + flex-grow: 0; + flex-shrink: 0; } + +.hero-body { + flex-grow: 1; + flex-shrink: 0; + padding: 3rem 1.5rem; } + +.section { + padding: 3rem 1.5rem; } + @media screen and (min-width: 1056px) { + .section.is-medium { + padding: 9rem 1.5rem; } + .section.is-large { + padding: 18rem 1.5rem; } } +.footer { + background-color: #fafafa; + padding: 3rem 1.5rem 6rem; } + +h1 .docs-heading-anchor, h1 .docs-heading-anchor:hover, h1 .docs-heading-anchor:visited, h2 .docs-heading-anchor, h2 .docs-heading-anchor:hover, h2 .docs-heading-anchor:visited, h3 .docs-heading-anchor, h3 .docs-heading-anchor:hover, h3 .docs-heading-anchor:visited, h4 .docs-heading-anchor, h4 .docs-heading-anchor:hover, h4 .docs-heading-anchor:visited, h5 .docs-heading-anchor, h5 .docs-heading-anchor:hover, h5 .docs-heading-anchor:visited, h6 .docs-heading-anchor, h6 .docs-heading-anchor:hover, h6 .docs-heading-anchor:visited { + color: #222222; } + +h1 .docs-heading-anchor-permalink, h2 .docs-heading-anchor-permalink, h3 .docs-heading-anchor-permalink, h4 .docs-heading-anchor-permalink, h5 .docs-heading-anchor-permalink, h6 .docs-heading-anchor-permalink { + visibility: hidden; + vertical-align: middle; + margin-left: 0.5em; + font-size: 0.7rem; } + h1 .docs-heading-anchor-permalink::before, h2 .docs-heading-anchor-permalink::before, h3 .docs-heading-anchor-permalink::before, h4 .docs-heading-anchor-permalink::before, h5 .docs-heading-anchor-permalink::before, h6 .docs-heading-anchor-permalink::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f0c1"; } + +h1:hover .docs-heading-anchor-permalink, h2:hover .docs-heading-anchor-permalink, h3:hover .docs-heading-anchor-permalink, h4:hover .docs-heading-anchor-permalink, h5:hover .docs-heading-anchor-permalink, h6:hover .docs-heading-anchor-permalink { + visibility: visible; } + +.docs-dark-only { + display: none !important; } + +pre { + position: relative; + overflow: hidden; } + pre code, pre code.hljs { + padding: 0 0.75rem !important; + overflow: auto; + display: block; } + pre code:first-of-type, pre code.hljs:first-of-type { + padding-top: 0.5rem !important; } + pre code:last-of-type, pre code.hljs:last-of-type { + padding-bottom: 0.5rem !important; } + pre .copy-button { + opacity: 0.2; + transition: opacity 0.2s; + position: absolute; + right: 0em; + top: 0em; + padding: 0.5em; + width: 2.5em; + height: 2.5em; + background: transparent; + border: none; + font-family: "Font Awesome 5 Free"; + color: #222222; + 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: 0.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 0.75rem; + position: relative; } + .admonition-header:before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + margin-right: 0.75rem; + content: "\f06a"; } + +.admonition-body { + color: #222222; + padding: 0.5rem 0.75rem; } + .admonition-body pre { + background-color: whitesmoke; } + .admonition-body code { + background-color: rgba(0, 0, 0, 0.05); } + +.docstring { + margin-bottom: 1em; + background-color: transparent; + border: 1px solid #dbdbdb; + box-shadow: 2px 2px 3px rgba(10, 10, 10, 0.1); + max-width: 100%; } + .docstring > header { + display: flex; + flex-grow: 1; + align-items: stretch; + padding: 0.5rem 0.75rem; + background-color: whitesmoke; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + box-shadow: none; + border-bottom: 1px solid #dbdbdb; } + .docstring > header code { + background-color: transparent; } + .docstring > header .docstring-binding { + margin-right: 0.3em; } + .docstring > header .docstring-category { + margin-left: 0.3em; } + .docstring > section { + position: relative; + padding: 0.75rem 0.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: 0.375rem; + bottom: 0.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: white; } + +.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: #222222; } + +.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: #222222; } + +.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; } + +/* This file contain the overall layout. + * + * The main container is
        that is identified by id #documenter. + */ +#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: white; + border-bottom: 1px solid #dbdbdb; + z-index: 2; + min-height: 4rem; + margin-bottom: 1rem; + display: flex; } + #documenter .docs-main header.docs-navbar .breadcrumb { + flex-grow: 1; } + #documenter .docs-main header.docs-navbar .docs-right { + display: flex; + white-space: nowrap; } + #documenter .docs-main header.docs-navbar .docs-right .docs-icon, #documenter .docs-main header.docs-navbar .docs-right .docs-label, #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + display: inline-block; } + #documenter .docs-main header.docs-navbar .docs-right .docs-label { + padding: 0; + margin-left: 0.3em; } + #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button { + margin: auto 0 auto 1rem; } + #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + font-size: 1.5rem; + margin: auto 0 auto 1rem; } + #documenter .docs-main header.docs-navbar > * { + margin: auto 0; } + @media screen and (max-width: 1055px) { + #documenter .docs-main header.docs-navbar { + position: sticky; + top: 0; + padding: 0 1rem; + /* For Headroom.js */ + transition-property: top, box-shadow; + -webkit-transition-property: top, box-shadow; + /* Safari */ + transition-duration: 0.3s; + -webkit-transition-duration: 0.3s; + /* Safari */ } + #documenter .docs-main header.docs-navbar.headroom--not-top { + box-shadow: 0.2rem 0rem 0.4rem #bbb; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } + #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; + /* Safari */ } } +#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: whitesmoke; + 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; + /* Setting up a nicer theme style for the scrollbar */ } + #documenter .docs-sidebar.visible { + left: 0; + box-shadow: 0.4rem 0rem 0.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; + /* Managing collapsible submenus */ } + #documenter .docs-sidebar ul.docs-menu > li > .tocitem { + font-weight: bold; } + #documenter .docs-sidebar ul.docs-menu > li li { + font-size: 0.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: 0.75rem; + margin-left: 1rem; + margin-top: auto; + margin-bottom: auto; } + #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f054"; } + #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before { + content: "\f078"; } + #documenter .docs-sidebar ul.docs-menu .tocitem { + display: block; + padding: 0.5rem 0.5rem; } + #documenter .docs-sidebar ul.docs-menu .tocitem, #documenter .docs-sidebar ul.docs-menu .tocitem:hover { + color: #0a0a0a; + background: whitesmoke; } + #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: white; } + #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover { + background-color: white; + 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: 0.85rem; + border-left: none; + margin-left: 0; + margin-top: 0.5rem; } + #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem { + width: 100%; + padding: 0; } + #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before { + content: "⚬"; + margin-right: 0.4em; } + #documenter .docs-sidebar form.docs-search { + margin: auto; + margin-top: 0.5rem; + margin-bottom: 0.5rem; } + #documenter .docs-sidebar form.docs-search > input { + width: 14.4rem; } + @media screen and (min-width: 1056px) { + #documenter .docs-sidebar ul.docs-menu { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar { + width: .3rem; + background: none; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #e0e0e0; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover { + background: #cccccc; } } + @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: #cccccc; } } +#documenter .docs-main #documenter-search-info { + margin-bottom: 1rem; } + +#documenter .docs-main #documenter-search-results { + list-style-type: circle; + list-style-position: outside; } + #documenter .docs-main #documenter-search-results li { + margin-left: 2rem; } + #documenter .docs-main #documenter-search-results .docs-highlight { + background-color: yellow; } + +.ansi span.sgr1 { + font-weight: bolder; } + +.ansi span.sgr2 { + font-weight: lighter; } + +.ansi span.sgr3 { + font-style: italic; } + +.ansi span.sgr4 { + text-decoration: underline; } + +.ansi span.sgr7 { + color: white; + background-color: #222222; } + +.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: whitesmoke; } + +.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: whitesmoke; } + +code.language-julia-repl > span.hljs-meta { + color: #066f00; + font-weight: bolder; } + +/*! + Theme: Default + Description: Original highlight.js style + Author: (c) Ivan Sagalaev + Maintainer: @highlightjs/core-team + Website: https://highlightjs.org/ + License: see project LICENSE + Touched: 2021 +*/ +/* +This is left on purpose making default.css the single file that can be lifted +as-is from the repository directly without the need for a build step + +Typically this "required" baseline CSS is added by `makestuff.js` during build. +*/ +pre code.hljs { + display: block; + overflow-x: auto; } + +code.hljs { + padding: 3px 5px; } + +/* end baseline CSS */ +.hljs { + background: #F0F0F0; + color: #444; } + +/* Base color: saturation 0; */ +.hljs-subst { + /* default */ } + +/* purposely ignored */ +.hljs-comment { + color: #888888; } + +.hljs-tag, +.hljs-punctuation { + color: #444a; } + +.hljs-tag .hljs-name, +.hljs-tag .hljs-attr { + color: #444; } + +.hljs-keyword, +.hljs-attribute, +.hljs-selector-tag, +.hljs-meta .hljs-keyword, +.hljs-doctag, +.hljs-name { + font-weight: bold; } + +/* User color: hue: 0 */ +.hljs-type, +.hljs-string, +.hljs-number, +.hljs-selector-id, +.hljs-selector-class, +.hljs-quote, +.hljs-template-tag, +.hljs-deletion { + color: #880000; } + +.hljs-title, +.hljs-section { + color: #880000; + font-weight: bold; } + +.hljs-regexp, +.hljs-symbol, +.hljs-variable, +.hljs-template-variable, +.hljs-link, +.hljs-selector-attr, +.hljs-operator, +.hljs-selector-pseudo { + color: #BC6060; } + +/* Language color: hue: 90; */ +.hljs-literal { + color: #78A960; } + +.hljs-built_in, +.hljs-bullet, +.hljs-code, +.hljs-addition { + color: #397300; } + +/* Meta color: hue: 200 */ +.hljs-meta { + color: #1f7199; } + +.hljs-meta .hljs-string { + color: #4d99bf; } + +/* Misc effects */ +.hljs-emphasis { + font-style: italic; } + +.hljs-strong { + font-weight: bold; } diff --git a/previews/PR341/assets/themeswap.js b/previews/PR341/assets/themeswap.js new file mode 100644 index 000000000..c58e993e3 --- /dev/null +++ b/previews/PR341/assets/themeswap.js @@ -0,0 +1,66 @@ +// Small function to quickly swap out themes. Gets put into the tag.. +function set_theme_from_local_storage() { + // Intialize the theme to null, which means default + var theme = null; + // If the browser supports the localstorage and is not disabled then try to get the + // documenter theme + if(window.localStorage != null) { + // Get the user-picked theme from localStorage. May be `null`, which means the default + // theme. + theme = window.localStorage.getItem("documenter-theme"); + } + // Check if the browser supports user color preference + var darkPreference = false; + // Check if the users preference is for dark color scheme + if(window.matchMedia('(prefers-color-scheme: dark)').matches === true) { + darkPreference = true; + } + // Initialize a few variables for the loop: + // + // - active: will contain the index of the theme that should be active. Note that there + // is no guarantee that localStorage contains sane values. If `active` stays `null` + // we either could not find the theme or it is the default (primary) theme anyway. + // Either way, we then need to stick to the primary theme. + // + // - disabled: style sheets that should be disabled (i.e. all the theme style sheets + // that are not the currently active theme) + var active = null; var disabled = []; var darkTheme = null; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + // The tag of each style sheet is expected to have a data-theme-name attribute + // which must contain the name of the theme. The names in localStorage much match this. + var themename = ss.ownerNode.getAttribute("data-theme-name"); + // attribute not set => non-theme stylesheet => ignore + if(themename === null) continue; + // To distinguish the default (primary) theme, it needs to have the data-theme-primary + // attribute set. + var isprimary = (ss.ownerNode.getAttribute("data-theme-primary") !== null); + // Check if the theme is primary dark theme + var isDarkTheme = (ss.ownerNode.getAttribute("data-theme-primary-dark") !== null); + // If ss is for dark theme then set the value of darkTheme to the name of the theme + if(isDarkTheme) darkTheme = themename; + // If we find a matching theme (and it's not the default), we'll set active to non-null + if(themename === theme) active = i; + // Store the style sheets of inactive themes so that we could disable them + if(themename !== theme) disabled.push(ss); + } + if(active !== null) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + theme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + else if(darkTheme !== null && darkPreference === true) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + darkTheme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + if (ss.ownerNode.getAttribute("data-theme-name") !== darkTheme) { + ss.disabled = true; + } + }); + } +} +set_theme_from_local_storage(); diff --git a/previews/PR341/assets/warner.js b/previews/PR341/assets/warner.js new file mode 100644 index 000000000..5531c8851 --- /dev/null +++ b/previews/PR341/assets/warner.js @@ -0,0 +1,49 @@ +function maybeAddWarning () { + // DOCUMENTER_NEWEST is defined in versions.js, DOCUMENTER_CURRENT_VERSION and DOCUMENTER_STABLE + // in siteinfo.js. + // If either of these are undefined something went horribly wrong, so we abort. + if ( + window.DOCUMENTER_NEWEST === undefined || + window.DOCUMENTER_CURRENT_VERSION === undefined || + window.DOCUMENTER_STABLE === undefined + ) { + return + }; + + // Current version is not a version number, so we can't tell if it's the newest version. Abort. + if (!/v(\d+\.)*\d+/.test(window.DOCUMENTER_CURRENT_VERSION)) { + return + }; + + // Current version is newest version, so no need to add a warning. + if (window.DOCUMENTER_NEWEST === window.DOCUMENTER_CURRENT_VERSION) { + return + }; + + // Add a noindex meta tag (unless one exists) so that search engines don't index this version of the docs. + if (document.body.querySelector('meta[name="robots"]') === null) { + const meta = document.createElement('meta'); + meta.name = 'robots'; + meta.content = 'noindex'; + + document.getElementsByTagName('head')[0].appendChild(meta); + }; + + const div = document.createElement('div'); + div.classList.add('outdated-warning-overlay'); + const closer = document.createElement('button'); + closer.classList.add('outdated-warning-closer', 'delete'); + closer.addEventListener('click', function () { + document.body.removeChild(div); + }); + const href = window.documenterBaseURL + '/../' + window.DOCUMENTER_STABLE; + div.innerHTML = 'This documentation is not for the latest stable release, but for either the development version or an older release.
        Click here to go to the documentation for the latest stable release.'; + div.appendChild(closer); + document.body.appendChild(div); +}; + +if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', maybeAddWarning); +} else { + maybeAddWarning(); +}; diff --git a/previews/PR341/boundary_conditions/index.html b/previews/PR341/boundary_conditions/index.html new file mode 100644 index 000000000..4ba8ae095 --- /dev/null +++ b/previews/PR341/boundary_conditions/index.html @@ -0,0 +1,2 @@ + +Boundary conditions · SpeedyWeather.jl diff --git a/previews/PR341/conventions/index.html b/previews/PR341/conventions/index.html new file mode 100644 index 000000000..8536a2399 --- /dev/null +++ b/previews/PR341/conventions/index.html @@ -0,0 +1,12 @@ + +Style and convention guide · SpeedyWeather.jl

        Style and convention guide

        In SpeedyWeather.jl we've been following the several conventions that are documented here.

        Variable naming

        The prognostic variables in spectral space are called

            vor         # Vorticity of horizontal wind field
        +    div         # Divergence of horizontal wind field
        +    temp        # Absolute temperature [K]
        +    pres_surf   # Logarithm of surface pressure [log(Pa)]
        +    humid       # Specific humidity [g/kg]

        their transforms into grid-point space get a _grid suffix, their tendencies a _tend suffix. Further derived diagnostic dynamic variables are

            u
        +    v
        +    geopot
        +    ...

        Preallocation

        All arrays representing variables are preallocated and grouped into two structs

            Prog::PrognosticVariables
        +    Diag::DiagnosticVariables

        The Diag struct contains further structs which represent the grid-point transformations of the prognostic variables and their tendencies.

            gridvars::GridVariables
        +    tendencies::Tendencies
        +    ...

        Constant arrays are grouped into several structs

        Boundaries

        Julian conventions

        We follow Julia's style guide and highlight here some important aspects of it.

        • Bang (!) convention. A function func does not change its input arguments, however, func! does.

        Hence, func! is often the in-place version of func, avoiding as much memory allocation as possible and often changing its first argument, e.g. func!(out,in) so that argument in is used to calculate out which has been preallocated before function call.

        • Number format flexibility. Numeric literals such as 2.0 or 1/3 are only used in the model setup

        but avoided throughout the code to obtain a fully number format-flexible package using the number format NF as a compile-time variable throughout the code. This often leads to overly specific code whereas a Real would generally suffice. However, this is done to avoid any implicit type conversions.

        diff --git a/previews/PR341/development/index.html b/previews/PR341/development/index.html new file mode 100644 index 000000000..71a490deb --- /dev/null +++ b/previews/PR341/development/index.html @@ -0,0 +1,3 @@ + +Development notes · SpeedyWeather.jl

        Development notes

        To run tests, from the path of your local clone of the repository do:

        julia --project=. -e 'import Pkg; Pkg.test()'

        To install dependencies:

        julia --project -e 'import Pkg; Pkg.instantiate()`

        then opening:

        julia --project

        you are able to using SpeedyWeather.

        To generate the docs:

        julia --project=docs -e 'import Pkg; Pkg.develop(path="."); Pkg.instantiate()'
        +julia --project=docs docs/make.jl

        If the docs are generated successfully, you view them by opening docs/build/index.html in your favorite browser.

        diff --git a/previews/PR341/dynamical_core/index.html b/previews/PR341/dynamical_core/index.html new file mode 100644 index 000000000..f85d200c2 --- /dev/null +++ b/previews/PR341/dynamical_core/index.html @@ -0,0 +1,21 @@ + +Dynamical core · SpeedyWeather.jl

        Dynamical core

        A mathematical and implementation-specific description of the dynamical core used in SpeedyWeather.jl. We start by describing the barotropic vorticity equations which is one set of equations that SpeedyWeather.jl can solve (see How to run SpeedyWeather.jl) as many details therein also apply to the Shallow water equations and Primitive equations explained thereafter.

        The dynamical core presented here largely follows the idealized models with spectral dynamics developed at the Geophysical Fluid Dynamics Laboratory[1]: A barotropic vorticity model[2], a shallow water model [3] and a primitive equation model[4].

        Barotropic vorticity equation

        The barotropic vorticity equation is the prognostic equation that describes the time evolution of relative vorticity $\zeta$ with advection, Coriolis force and diffusion in a single global layer on the sphere.

        \[\frac{\partial \zeta}{\partial t} + \nabla \cdot (\mathbf{u}(\zeta + f)) = +\nabla \times \mathbf{F} + (-1)^{n+1}\nu\nabla^{2n}\zeta\]

        with time $t$, velocity vector $\mathbf{u} = (u, v)$, Coriolis parameter $f$, and hyperdiffusion $(-1)^{n+1} \nu \nabla^{2n} \zeta$ ($n$ is the hyperdiffusion order; see Horizontal diffusion). We also include a forcing vector $\mathbf{F} = (F_u,F_v)$ which acts on the zonal velocity $u$ and the meridional velocity $v$ and hence its curl $\nabla \times \mathbf{F}$ is a tendency for relative vorticity $\zeta$.

        Starting with some relative vorticity $\zeta$, the Laplacian is inverted to obtain the stream function $\Psi$

        \[\Psi = \nabla^{-2}\zeta\]

        The zonal velocity $u$ and meridional velocity $v$ are then the (negative) meridional gradient and zonal gradient of $\Psi$

        \[\begin{aligned} +u &= -\frac{1}{R} \frac{\partial \Psi}{\partial \theta} \\ +v &= \frac{1}{R\cos(\theta)} \frac{\partial \Psi}{\partial \phi} \\ +\end{aligned}\]

        which is described in Derivatives in spherical coordinates.

        Algorithm

        We briefly outline the algorithm that SpeedyWeather.jl uses in order to integrate the barotropic vorticity equation. As an intial step

        0. Start with initial conditions of $\zeta_{lm}$ in spectral space and transform this model state to grid-point space:

        • Invert the Laplacian to obtain the stream function $\Psi_{lm}$ in spectral space
        • obtain zonal velocity $(\cos(\theta)u)_{lm}$ through a Meridional derivative
        • obtain meridional velocity $(\cos(\theta)v)_{lm}$ through a Zonal derivative
        • Transform zonal and meridional velocity $(\cos(\theta)u)_{lm}$, $(\cos(\theta)v)_{lm}$ to grid-point space
        • Unscale the $\cos(\theta)$ factor to obtain $u,v$
        • Transform $\zeta_{lm}$ to $\zeta$ in grid-point space

        Now loop over

        1. Compute the forcing vector $\mathbf{F} = (F_u,F_v)$ for $u$ and $v$
        2. Multiply $u,v$ with $\zeta+f$ in grid-point space
        3. Add $A = F_u + v(\zeta + f)$ and $B = F_v - u(\zeta + f)$
        4. Transform these vector components to spectral space $A_{lm}$, $B_{lm}$
        5. Compute the curl of $(A,B)_{lm}$ in spectral space which is the tendency of $\zeta_{lm}$
        6. Compute the Horizontal diffusion based on that tendency
        7. Compute a leapfrog time step as described in Time integration
        8. Transform the spectral state of $\zeta_{lm}$ to grid-point $u,v,\zeta$ as described in 0.
        9. Possibly do some output
        10. Repeat from 1.

        Shallow water equations

        \[\begin{aligned} +\frac{\partial \zeta}{\partial t} + \nabla \cdot (\mathbf{u}(\zeta + f)) &= (-1)^{n+1}\nu\nabla^{2n}\zeta \\ +\frac{\partial \mathcal{D}}{\partial t} - \nabla \times (\mathbf{u}(\zeta + f)) &= -\nabla^2(\tfrac{1}{2}(u^2 + v^2) + g\eta) + (-1)^{n+1}\nu\nabla^{2n}\mathcal{D} \\ +\frac{\partial \eta}{\partial t} + \nabla \cdot (\mathbf{u}h) &= 0. +\end{aligned}\]

        more to come

        Primitive equations

        The primitive equations solved by SpeedyWeather.jl are

        \[\begin{aligned} +\partial_t u = ... \\ +\partial_t v = ... \\ +\partial_t T = ... \\ +\partial_t Q = ... +\end{aligned}\]

        more to come

        Horizontal diffusion

        In SpeedyWeather.jl we use hyerdiffusion through an $n$-th power Laplacian $(-1)^{n+1}\nabla^{2n}$ (hyper when $n>1$) which can be implemented as a multiplication of the spectral coefficients $\Psi_{lm}$ with $(-l(l+1))^nR^{-2n}$ (see spectral Laplacian) It is therefore computationally not more expensive to apply hyperdiffusion over diffusion as the $(-l(l+1))^nR^{-2n}$ can be precomputed. Note the sign change $(-1)^{n+1}$ here is such that the dissipative nature of the diffusion operator is retained for $n$ odd and even.

        In SpeedyWeather.jl the diffusion is applied implicitly. For that, consider a leapfrog scheme with time step $\Delta t$ of variable $\zeta$ to obtain from time steps $i-1$ and $i$, the next time step $i+1$

        \[\zeta_{i+1} = \zeta_{i-1} + 2\Delta t d\zeta,\]

        with $d\zeta$ being some tendency evaluated from $\zeta_i$. Now we want to add a diffusion term $(-1)^{n+1}\nu \nabla^{2n}\zeta$ with viscosity $\nu$, wich however, is implicitly calculated from $\zeta_{i+1}$, then

        \[\zeta_{i+1} = \zeta_{i-1} + 2\Delta t (d\zeta + (-1)^{n+1} \nu\nabla^{2n}\zeta_{i+1})\]

        As the application of $(-1)^{n+1}\nu\nabla^{2n}$ is, for every spectral mode, equivalent to a multiplication of a constant, we can rewrite this to

        \[\zeta_{i+1} = \frac{\zeta_{i-1} + 2\Delta t d\zeta}{1 - 2\Delta (-1)^{n+1}\nu\nabla^{2n}},\]

        and expand the numerator to

        \[\zeta_{i+1} = \zeta_{i-1} + 2\Delta t \frac{d\zeta + (-1)^{n+1} \nu\nabla^{2n}\zeta_{i-1}}{1 - 2\Delta t (-1)^{n+1}\nu \nabla^{2n}},\]

        Hence the diffusion can be applied implicitly by updating the tendency $d\zeta$ as

        \[d\zeta \to \frac{d\zeta + (-1)^{n+1}\nu\nabla^{2n}\zeta_{i-1}}{1 - 2\Delta t \nu \nabla^{2n}}\]

        which only depends on $\zeta_{i-1}$. Now let $D_\text{explicit} = (-1)^{n+1}\nu\nabla^{2n}$ be the explicit part and $D_\text{implicit} = 1 - (-1)^{n+1} 2\Delta t \nu\nabla^{2n}$ the implicit part. Both parts can be precomputed and are $D_\text{implicit} = 1 - 2\Delta t \nu\nabla^{2n}$ the implicit part. Both parts can be precomputed and are only an element-wise multiplication in spectral space. For every spectral harmonic $l,m$ we do

        \[d\zeta \to D_\text{implicit}^{-1}(d\zeta + D_\text{explicit}\zeta_{i-1}).\]

        Hence 2 multiplications and 1 subtraction with precomputed constants. However, we will normalize the (hyper-)Laplacians as described in the following. This also will take care of the alternating sign such that the diffusion operation is dissipative regardless the power $n$.

        Normalization of diffusion

        In physics, the Laplace operator $\nabla^2$ is often used to represent diffusion due to viscosity in a fluid. In that case, the viscosity coefficient is $\nu$ of units $\text{m}^2\text{s}^{-1}$ and the full operator reads as $\nu \nabla^2$ with units $(\text{m}^2\text{s}^{-1})(\text{m}^{-2}) = \text{s}^{-1}$. This motivates us to normalize the Laplace operator by a constant of units $\text{m}^{-2}$ and the viscosity coefficient by its inverse such that the viscosity coefficient becomes a damping timescale of unit $\text{s}^{-1}$. Given the application in spectral space we decide to normalize by the largest eigenvalue $-l_\text{max}(l_\text{max}+1)$ such that all entries in the discrete spectral Laplace operator are in $[0,1]$. This also has the effect that the alternating sign drops out, such that higher wavenumbers are always dampened and not amplified. The normalized viscosity coefficient $\nu^* = l_\text{max}(l_\text{max}+1)\nu$ (always positive) is therefore reinterpreted as the (inverse) time scale at which the highest wavenumber is dampened to zero due to diffusion. Together we have

        \[D^\text{explicit}_{l,m} = -\nu^* \frac{l(l+1)}{l_\text{max}(l_\text{max}+1)}\]

        and the hyper-Laplacian of power $n$ follows as

        \[D^\text{explicit,n}_{l,m} = -\nu^* \left(\frac{l(l+1)}{l_\text{max}(l_\text{max}+1)}\right)^n\]

        and the implicit part is accordingly $D^\text{implicit,n}_{l,m} = 1 - 2\Delta t D^\text{explicit,n}_{l,m}$.

        Radius scaling

        SpeedyWeather.jl uses a scaling for vorticity $\zeta$ and stream function $\Psi$ that is

        \[\tilde{\zeta} = \zeta R, \tilde{\Psi} = \Psi R^{-1}.\]

        In the barotropic voriticity equation model the inversion of the Laplcians in order to obtain $\Psi$ from $\zeta$ therefore becomes

        \[\tilde{\zeta} = \tilde{\nabla}^2 \tilde{\Psi}\]

        where the dimensionless gradients simply omit the scaling with $1/R$, $\tilde{\nabla} = R\nabla$. The Barotropic vorticity equation scaled with $R^2$ is

        \[\partial_{\tilde{t}}\tilde{\zeta} + \tilde{\nabla} \cdot (\mathbf{u}(\tilde{\zeta} + \tilde{f})) = \tilde{\nu}\tilde{\nabla}^{2n}\tilde{\zeta}\]

        with

        • $\tilde{t} = tR^{-1}$, the scaled time $t$
        • $\mathbf{u} = (u,v)$, the velocity vector (no scaling applied)
        • $\tilde{f} = fR$, the scaled Coriolis parameter $f$
        • $\tilde{\nu} = \nu^* R$, the scaled viscosity $\nu^*$, which itself is normalized to a damping time scale, see Normalization of diffusion.

        Scaled shallow water equations

        Similar to the scaled barotropic vorticity equations, the scaled shallow water equations scale the vorticity and the divergence equation with $R^2$, but the continuity equation with $R$

        \[\begin{aligned} +\frac{\partial \tilde{\zeta}}{\partial \tilde{t}} + \tilde{\nabla} \cdot (\mathbf{u}(\tilde{\zeta} + \tilde{f})) &= +\tilde{\nu}\tilde{\nabla}^{2n}\tilde{\zeta} \\ +\frac{\partial \tilde{\mathcal{D}}}{\partial \tilde{t}} - \tilde{\nabla} \times (\mathbf{u}(\tilde{\zeta} + \tilde{f})) &= +-\tilde{\nabla}^2\left(\tfrac{1}{2}(u^2 + v^2) + g\eta \right) + \tilde{\nu}\tilde{\nabla}^{2n}\tilde{\mathcal{D}} \\ +\frac{\partial \eta}{\partial \tilde{t}} + \tilde{\nabla} \cdot (\mathbf{u}h) &= 0. +\end{aligned}\]

        Time integration

        SpeedyWeather.jl uses a leapfrog time scheme with a Robert's and William's filter to dampen the computational mode and achieve 3rd order accuracy.

        Oscillation equation

        \[\frac{dF}{dt} = i\omega F\]

        References

        diff --git a/previews/PR341/extending/index.html b/previews/PR341/extending/index.html new file mode 100644 index 000000000..fee38d096 --- /dev/null +++ b/previews/PR341/extending/index.html @@ -0,0 +1,2 @@ + +Extending SpeedyWeather · SpeedyWeather.jl diff --git a/previews/PR341/functions/index.html b/previews/PR341/functions/index.html new file mode 100644 index 000000000..6a2259659 --- /dev/null +++ b/previews/PR341/functions/index.html @@ -0,0 +1,180 @@ + +Function and type index · SpeedyWeather.jl

        Function and type index

        Parameters and constants

        Missing docstring.

        Missing docstring for SpeedyWeather.Parameters. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for SpeedyWeather.Constants. Check Documenter's build log for details.

        Boundaries and boundary conditions

        Missing docstring.

        Missing docstring for SpeedyWeather.Boundaries. Check Documenter's build log for details.

        Spherical harmonic transform

        Missing docstring.

        Missing docstring for SpeedyWeather.GeoSpectral. Check Documenter's build log for details.

        SpeedyWeather.SpeedyTransforms.spectralFunction
        alms = spectral(    map::AbstractMatrix;
        +                    Grid::Type{<:AbstractGrid}=DEFAULT_GRID,
        +                    kwargs...)

        Converts map to grid(map) to execute spectral(map::AbstractGrid;kwargs...).

        source
        alms = spectral(    map::AbstractGrid;
        +                    Grid::Type{<:AbstractGrid}=DEFAULT_GRID,
        +                    kwargs...)

        Converts map to Grid(map) to execute spectral(map::AbstractGrid;kwargs...).

        source
        alms = spectral(    map::AbstractMatrix;
        +                    Grid::Type{<:AbstractGrid}=DEFAULT_GRID,
        +                    kwargs...)

        Spectral transform (grid to spectral) map to grid(map) to execute spectral(map::AbstractGrid;kwargs...).

        source
        SpeedyWeather.SpeedyTransforms.spectral!Function
        spectral!(  alms::LowerTriangularMatrix,
        +            map::AbstractGrid,
        +            S::SpectralTransform)

        Spectral transform (grid to spectral space) from the gridded field map on a grid<:AbstractGrid to a LowerTriangularMatrix of spherical harmonic coefficients alms. Uses FFT in the zonal direction, and a Legendre Transform in the meridional direction exploiting symmetries. The spectral transform is number format-flexible as long as the parametric types of map, alms, S are identical. The spectral transform is grid-flexible as long as the typeof(map)<:AbstractGrid. Uses the precalculated arrays, FFT plans and other constants in the SpectralTransform struct S.

        source
        SpeedyWeather.SpeedyTransforms.griddedFunction
        map = gridded(  alms::AbstractMatrix;
        +                recompute_legendre::Bool=true,
        +                grid::Type{<:AbstractGrid}=DEFAULT_GRID)

        Spectral transform (spectral to grid space) from spherical coefficients alms to a newly allocated gridded field map. Based on the size of alms the grid type grid, the spatial resolution is retrieved based on the truncation defined for grid. SpectralTransform struct S is allocated to execute gridded(alms,S).

        source
        map = gridded(  alms::AbstractMatrix,
        +                S::SpectralTransform)

        Spectral transform (spectral to grid space) from spherical coefficients alms to a newly allocated gridded field map with precalculated properties based on the SpectralTransform struct S. alms is converted to a LowerTriangularMatrix to execute the in-place gridded!.

        source
        SpeedyWeather.SpeedyTransforms.gridded!Function
        gridded!(
        +    diagn::DiagnosticVariables,
        +    progn::PrognosticVariables,
        +    lf::Int64,
        +    model::SpeedyWeather.ModelSetup
        +)
        +

        Propagate the spectral state of progn to diagn using time step/leapfrog index lf. Function barrier that calls gridded! for the respective model.

        source
        gridded!(
        +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
        +    progn::SpeedyWeather.PrognosticLayerTimesteps,
        +    lf::Int64,
        +    model::Barotropic
        +)
        +

        Propagate the spectral state of the prognostic variables progn to the diagnostic variables in diagn for the barotropic vorticity model. Updates grid vorticity, spectral stream function and spectral and grid velocities u,v.

        source
        gridded!(
        +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
        +    progn::SpeedyWeather.PrognosticLayerTimesteps,
        +    lf::Int64,
        +    model::ShallowWater
        +)
        +

        Propagate the spectral state of the prognostic variables progn to the diagnostic variables in diagn for the shallow water model. Updates grid vorticity, grid divergence, grid interface displacement (pres_grid) and the velocities u,v.

        source
        gridded!(
        +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
        +    progn::SpeedyWeather.PrognosticLayerTimesteps,
        +    lf::Int64,
        +    model::PrimitiveEquation
        +)
        +

        Propagate the spectral state of the prognostic variables progn to the diagnostic variables in diagn for primitive equation models. Updates grid vorticity, grid divergence, grid temperature, pressure (pres_grid) and the velocities u,v.

        source
        gridded!(   map::AbstractGrid,
        +            alms::LowerTriangularMatrix,
        +            S::SpectralTransform)

        Spectral transform (spectral to grid) of the spherical harmonic coefficients alms to a gridded field map. The spectral transform is number format-flexible as long as the parametric types of map, alms, S are identical. The spectral transform is grid-flexible as long as the typeof(map)<:AbstractGrid. Uses the precalculated arrays, FFT plans and other constants in the SpectralTransform struct S.

        source
        Missing docstring.

        Missing docstring for SpeedyWeather.triangular_truncation. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for SpeedyWeather.roundup_fft. Check Documenter's build log for details.

        SpeedyWeather.SpeedyTransforms.spectral_truncationFunction
        alms_trunc = spectral_truncation(alms,trunc)

        Returns a spectral coefficient matrix alms_trunc that is truncated from alms to the size (trunc+1)². alms_trunc only contains those coefficient of alms for which m,l ≤ trunc, and l ≥ m are zero anyway. If trunc is larger than the implicit truncation in alms obtained from its size than spectral_interpolation is automatically called instead, returning alms_interp, a coefficient matrix that is larger than alms with padded zero coefficients.

        source
        SpeedyWeather.SpeedyTransforms.spectral_truncation!Function
        spectral_truncation!(alms::AbstractMatrix,ltrunc::Integer,mtrunc::Integer)

        Truncate spectral coefficients alms in-place by setting (a) the upper right triangle to zero and (b) all coefficients for which the degree l is larger than the truncation ltrunc or order m larger than the truncaction mtrunc.

        source
        spectral_truncation!(alms::LowerTriangularMatrix,ltrunc::Integer,mtrunc::Integer)

        Truncate spectral coefficients alms in-place by setting all coefficients for which the degree l is larger than the truncation ltrunc or order m larger than the truncaction mtrunc. Similar to spectral_truncation!(::AbstractMatrix, ...) but skips the upper triangle which is zero by design for LowerTriangularMatrix.

        source
        spectral_truncation!(alms,trunc)

        Truncate spectral coefficients alms in-place by setting (a) the upper right triangle to zero and (b) all coefficients for which the degree l is larger than the truncation trunc.

        source
        spectral_truncation!(alms)

        Truncate spectral coefficients alms in-place by setting the upper right triangle to zero. This is to enforce that all coefficients for which the degree l is larger than order m are zero.

        source
        Missing docstring.

        Missing docstring for SpeedyWeather.spectral_interpolation!. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for SpeedyWeather.get_legendre_polynomials!. Check Documenter's build log for details.

        SpeedyWeather.SpeedyTransforms.∇²!Function
        ∇²!(    ∇²alms::LowerTriangularMatrix,
        +        alms::LowerTriangularMatrix,
        +        S::SpectralTransform;
        +        add::Bool=false,
        +        flipsign::Bool=false,
        +        inverse::Bool=false)

        Laplace operator ∇² applied to the spectral coefficients alms in spherical coordinates. The radius R is omitted in the eigenvalues which are precomputed in S. ∇²! is the in-place version which directly stores the output in the first argument ∇²alms.

        Keyword arguments

        • add=true adds the ∇²(alms) to the output
        • flipsign=true computes -∇²(alms) instead
        • inverse=true computes ∇⁻²(alms) instead

        Default is add=false, flipsign=false, inverse=false. These options can be combined.

        source
        Missing docstring.

        Missing docstring for SpeedyWeather.∇². Check Documenter's build log for details.

        SpeedyWeather.SpeedyTransforms.∇⁻²!Function
        ∇⁻²!(   ∇⁻²alms::LowerTriangularMatrix,
        +        alms::LowerTriangularMatrix,
        +        S::SpectralTransform;
        +        add::Bool=false,
        +        flipsign::Bool=false)

        Calls ∇²!(∇⁻²alms, alms, S; add, flipsign, inverse=true).

        source
        Missing docstring.

        Missing docstring for SpeedyWeather.∇⁻². Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for SpeedyWeather.gradient_latitude!. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for SpeedyWeather.gradient_latitude. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for SpeedyWeather.gradient_longitude!. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for SpeedyWeather.gradient_longitude. Check Documenter's build log for details.

        SpeedyWeather.SpeedyTransforms.divergence!Function
        divergence!(div::LowerTriangularMatrix,
        +            u::LowerTriangularMatrix,
        +            v::LowerTriangularMatrix,
        +            S::SpectralTransform{NF};
        +            flipsign::Bool=false,
        +            add::Bool=false,
        +            )

        Divergence of a vector u,v written into div, div = ∇⋅(u,v). u,v are expected to have a 1/coslat-scaling included, then div is not scaled. flipsign option calculates -∇⋅(u,v) instead. add option calculates div += ∇⋅(u,v) instead. flipsign and add can be combined. This functions only creates the kernel and calls the generic divergence function _divergence! subsequently.

        source
        SpeedyWeather.SpeedyTransforms.curl!Function
        curl!(  curl::LowerTriangularMatrix,
        +        u::LowerTriangularMatrix,
        +        v::LowerTriangularMatrix,
        +        S::SpectralTransform;
        +        flipsign::Bool=false,
        +        add::Bool=false,
        +        )

        Curl of a vector u,v written into curl, curl = ∇×(u,v). u,v are expected to have a 1/coslat-scaling included, then curl is not scaled. flipsign option calculates -∇×(u,v) instead. add option calculates curl += ∇×(u,v) instead. flipsign and add can be combined. This functions only creates the kernel and calls the generic divergence function _divergence! subsequently with flipped u,v -> v,u for the curl.

        source
        Missing docstring.

        Missing docstring for SpeedyWeather._divergence!. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for SpeedyWeather.curl_div!. Check Documenter's build log for details.

        SpeedyWeather.SpeedyTransforms.UV_from_vordiv!Function
        UV_from_vordiv!(U::LowerTriangularMatrix,
        +                V::LowerTriangularMatrix,
        +                vor::LowerTriangularMatrix,
        +                div::LowerTriangularMatrix,
        +                S::SpectralTransform)

        Get U,V (=(u,v)*coslat) from vorticity ζ and divergence D in spectral space. Two operations are combined into a single linear operation. First, invert the spherical Laplace ∇² operator to get stream function from vorticity and velocity potential from divergence. Then compute zonal and meridional gradients to get U,V.

        source
        SpeedyWeather.SpeedyTransforms.UV_from_vor!Function
        UV_from_vor!(   U::LowerTriangularMatrix,
        +                V::LowerTriangularMatrix,
        +                vor::LowerTriangularMatrix,
        +                S::SpectralTransform)

        Get U,V (=(u,v)*coslat) from vorticity ζ spectral space (divergence D=0) Two operations are combined into a single linear operation. First, invert the spherical Laplace ∇² operator to get stream function from vorticity. Then compute zonal and meridional gradients to get U,V.

        source
        Missing docstring.

        Missing docstring for SpeedyWeather.ϵlm. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for SpeedyWeather.get_recursion_factors. Check Documenter's build log for details.

        Dynamics

        SpeedyWeather.bernoulli_potential!Function
        bernoulli_potential!(
        +    diagn::SpeedyWeather.DiagnosticVariablesLayer{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF},
        +    S::SpectralTransform
        +) -> LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat
        +

        Computes the Laplace operator ∇² of the Bernoulli potential B in spectral space.

        1. computes the kinetic energy KE = ½(u²+v²) on the grid
        2. transforms KE to spectral space
        3. adds geopotential for the Bernoulli potential in spectral space
        4. takes the Laplace operator.

        This version is used for both ShallowWater and PrimitiveEquation, only the geopotential calculation in geopotential! differs.

        source
        SpeedyWeather.volume_flux_divergence!Function
        volume_flux_divergence!(
        +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
        +    surface::SpeedyWeather.SurfaceVariables,
        +    orog::SpeedyWeather.AbstractOrography,
        +    constants::DynamicsConstants,
        +    G::Geometry,
        +    S::SpectralTransform
        +)
        +

        Computes the (negative) divergence of the volume fluxes uh,vh for the continuity equation, -∇⋅(uh,vh).

        source
        Missing docstring.

        Missing docstring for SpeedyWeather.vorticity_fluxes!. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for SpeedyWeather.vorticity_flux_curl!. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for SpeedyWeather.vorticity_flux_divergence!. Check Documenter's build log for details.

        Geometry

        SpeedyWeather.GeometryType

        Construct Geometry struct containing parameters and arrays describing an iso-latitude grid <:AbstractGrid and the vertical levels. Pass on SpectralGrid to calculate the following fields

        • spectral_grid::SpectralGrid: SpectralGrid that defines spectral and grid resolution

        • Grid::Type{<:SpeedyWeather.RingGrids.AbstractGrid}: grid of the dynamical core Default: spectral_grid.Grid

        • nlat_half::Int64: resolution parameter nlathalf of Grid, # of latitudes on one hemisphere (incl Equator) Default: spectralgrid.nlat_half

        • nlon_max::Int64: maximum number of longitudes (at/around Equator) Default: getnlonmax(Grid, nlat_half)

        • nlon::Int64: =nlonmax, same (used for compatibility), TODO: still needed? Default: nlonmax

        • nlat::Int64: number of latitude rings Default: getnlat(Grid, nlathalf)

        • nlev::Int64: number of vertical levels Default: spectral_grid.nlev

        • npoints::Int64: total number of grid points Default: spectral_grid.npoints

        • radius::AbstractFloat: Planet's radius [m] Default: spectral_grid.radius

        • latd::Vector{Float64}: array of latitudes in degrees (90˚...-90˚) Default: getlatd(Grid, nlathalf)

        • lond::Vector{Float64}: array of longitudes in degrees (0...360˚), empty for non-full grids Default: getlond(Grid, nlathalf)

        • londs::Vector{NF} where NF<:AbstractFloat: longitude (-180˚...180˚) for each grid point in ring order Default: (getlatdlonds(Grid, nlathalf))[2]

        • latds::Vector{NF} where NF<:AbstractFloat: latitude (-90˚...˚90) for each grid point in ring order Default: (getlatdlonds(Grid, nlathalf))[1]

        • sinlat::Vector{NF} where NF<:AbstractFloat: sin of latitudes Default: sind.(latd)

        • coslat::Vector{NF} where NF<:AbstractFloat: cos of latitudes Default: cosd.(latd)

        • coslat⁻¹::Vector{NF} where NF<:AbstractFloat: = 1/cos(lat) Default: 1 ./ coslat

        • coslat²::Vector{NF} where NF<:AbstractFloat: = cos²(lat) Default: coslat .^ 2

        • coslat⁻²::Vector{NF} where NF<:AbstractFloat: # = 1/cos²(lat) Default: 1 ./ coslat²

        • σ_levels_half::Vector{NF} where NF<:AbstractFloat: σ at half levels, σk+1/2 Default: spectralgrid.verticalcoordinates.σhalf

        • σ_levels_full::Vector{NF} where NF<:AbstractFloat: σ at full levels, σₖ Default: 0.5 * (σlevelshalf[2:end] + σlevelshalf[1:end - 1])

        • σ_levels_thick::Vector{NF} where NF<:AbstractFloat: σ level thicknesses, σₖ₊₁ - σₖ Default: σlevelshalf[2:end] - σlevelshalf[1:end - 1]

        • ln_σ_levels_full::Vector{NF} where NF<:AbstractFloat: log of σ at full levels, include surface (σ=1) as last element Default: log.(vcat(σlevelsfull, 1))

        source
        Missing docstring.

        Missing docstring for SpeedyWeather.vertical_coordinates. Check Documenter's build log for details.

        Time stepping

        SpeedyWeather.time_stepping!Function
        time_stepping!(
        +    progn::PrognosticVariables,
        +    diagn::DiagnosticVariables,
        +    model::SpeedyWeather.ModelSetup
        +) -> PrognosticVariables
        +

        Main time loop that that initializes output and feedback, loops over all time steps and calls the output and feedback functions.

        source
        SpeedyWeather.timestep!Function
        timestep!(
        +    progn::PrognosticVariables,
        +    diagn::DiagnosticVariables,
        +    time::Dates.DateTime,
        +    dt::Real,
        +    i::Integer,
        +    model::Barotropic
        +)
        +timestep!(
        +    progn::PrognosticVariables,
        +    diagn::DiagnosticVariables,
        +    time::Dates.DateTime,
        +    dt::Real,
        +    i::Integer,
        +    model::Barotropic,
        +    lf1::Int64
        +)
        +timestep!(
        +    progn::PrognosticVariables,
        +    diagn::DiagnosticVariables,
        +    time::Dates.DateTime,
        +    dt::Real,
        +    i::Integer,
        +    model::Barotropic,
        +    lf1::Int64,
        +    lf2::Int64
        +)
        +

        Calculate a single time step for the model <: Barotropic.

        source
        timestep!(
        +    progn::PrognosticVariables{NF<:AbstractFloat},
        +    diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},
        +    time::Dates.DateTime,
        +    dt::Real,
        +    i::Integer,
        +    model::ShallowWater
        +) -> SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat
        +timestep!(
        +    progn::PrognosticVariables{NF<:AbstractFloat},
        +    diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},
        +    time::Dates.DateTime,
        +    dt::Real,
        +    i::Integer,
        +    model::ShallowWater,
        +    lf1::Int64
        +) -> SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat
        +timestep!(
        +    progn::PrognosticVariables{NF<:AbstractFloat},
        +    diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},
        +    time::Dates.DateTime,
        +    dt::Real,
        +    i::Integer,
        +    model::ShallowWater,
        +    lf1::Int64,
        +    lf2::Int64
        +) -> SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat
        +

        Calculate a single time step for the model <: ShallowWater.

        source
        timestep!(
        +    progn::PrognosticVariables{NF<:AbstractFloat},
        +    diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},
        +    time::Dates.DateTime,
        +    dt::Real,
        +    i::Integer,
        +    model::PrimitiveEquation
        +) -> Any
        +timestep!(
        +    progn::PrognosticVariables{NF<:AbstractFloat},
        +    diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},
        +    time::Dates.DateTime,
        +    dt::Real,
        +    i::Integer,
        +    model::PrimitiveEquation,
        +    lf1::Int64
        +) -> Any
        +timestep!(
        +    progn::PrognosticVariables{NF<:AbstractFloat},
        +    diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},
        +    time::Dates.DateTime,
        +    dt::Real,
        +    i::Integer,
        +    model::PrimitiveEquation,
        +    lf1::Int64,
        +    lf2::Int64
        +) -> Any
        +

        Calculate a single time step for the model<:PrimitiveEquation

        source
        SpeedyWeather.first_timesteps!Function
        first_timesteps!(
        +    progn::PrognosticVariables,
        +    diagn::DiagnosticVariables,
        +    clock::SpeedyWeather.Clock,
        +    model::SpeedyWeather.ModelSetup,
        +    output::SpeedyWeather.AbstractOutputWriter
        +) -> typeof(time)
        +

        Performs the first two initial time steps (Euler forward, unfiltered leapfrog) to populate the prognostic variables with two time steps (t=0,Δt) that can then be used in the normal leap frogging.

        source
        SpeedyWeather.leapfrog!Function
        leapfrog!(
        +    A_old::LowerTriangularMatrix{Complex{NF<:AbstractFloat}},
        +    A_new::LowerTriangularMatrix{Complex{NF<:AbstractFloat}},
        +    tendency::LowerTriangularMatrix{Complex{NF<:AbstractFloat}},
        +    dt::Real,
        +    lf::Int64,
        +    L::Leapfrog{NF<:AbstractFloat}
        +)
        +

        Performs one leapfrog time step with (lf=2) or without (lf=1) Robert+William's filter (see William (2009), Montly Weather Review, Eq. 7-9).

        source

        Longwave radiation

        Missing docstring.

        Missing docstring for SpeedyWeather.radset!. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for SpeedyWeather.radlw_down!. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for SpeedyWeather.compute_bbe!. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for SpeedyWeather.radlw_up!. Check Documenter's build log for details.

        Shortwave radiation

        Missing docstring.

        Missing docstring for SpeedyWeather.shortwave_radiation!. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for SpeedyWeather.solar!. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for SpeedyWeather.sol_oz!. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for SpeedyWeather.cloud!. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for SpeedyWeather.radsw!. Check Documenter's build log for details.

        diff --git a/previews/PR341/grids/index.html b/previews/PR341/grids/index.html new file mode 100644 index 000000000..7ce40768c --- /dev/null +++ b/previews/PR341/grids/index.html @@ -0,0 +1,7 @@ + +Grids · SpeedyWeather.jl

        Grids

        The spectral transform (the Spherical Harmonic Transform) in SpeedyWeather.jl supports any ring-based equi-longitude grid. Several grids are already implemented but other can be added. The following pages will describe an overview of these grids and but let's start but how they can be used

        julia> spectral_grid = SpectralGrid(Grid = FullGaussianGrid)
        +SpectralGrid:
        + Spectral:   T31 LowerTriangularMatrix{Complex{Float32}}, radius = 6.371e6 m
        + Grid:       4608-element, 48-ring FullGaussianGrid{Float32} (quadratic)
        + Resolution: 333km (average)
        + Vertical:   8-level SigmaCoordinates

        The life of every SpeedyWeather.jl simulation starts with a SpectralGrid object which defines the resolution in spectral and in grid-point space. The generator SpectralGrid() can take as a keyword argument Grid which can be any of the grids described below. The resolution of the grid, however, is not directly chosen, but determined from the spectral resolution trunc and the dealiasing factor. More in Matching spectral and grid resolution.

        RingGrids is a module too!

        While RingGrids is the underlying module that SpeedyWeather.jl uses for data structs on the sphere, the module can also be used independently of SpeedyWeather, for example to interpolate between data on different grids. See RingGrids

        Ring-based equi-longitude grids

        SpeedyWeather.jl's spectral transform supports all ring-based equi-longitude grids. These grids have their grid points located on rings with constant latitude and on these rings the points are equi-spaced in longitude. There is technically no constrain on the spacing of the latitude rings, but the Legendre transform requires a quadrature to map those to spectral space and back. Common choices for latitudes are the Gaussian latitudes which use the Gaussian quadrature, or equi-angle latitudes (i.e. just regular latitudes but excluding the poles) that use the Clenshaw-Curtis quadrature. The longitudes have to be equi-spaced on every ring, which is necessary for the fast Fourier transform, as one would otherwise need to use a non-uniform Fourier transform. In SpeedyWeather.jl the first grid point on any ring can have a longitudinal offset though, for example by spacing 4 points around the globe at 45˚E, 135˚E, 225˚E, and 315˚E. In this case the offset is 45˚E as the first point is not at 0˚E.

        Implemented grids

        All grids in SpeedyWeather.jl are a subtype of AbstractGrid, i.e. <: AbstractGrid. We further distinguish between full, and reduced grids. Full grids have the same number of longitude points on every latitude ring (i.e. points converge towards the poles) and reduced grids reduce the number of points towards the poles to have them more evenly spread out across the globe. More evenly does not necessarily mean that a grid is equal-area, meaning that every grid cell covers exactly the same area (although the shape changes).

        Currently the following full grids <: AbstractFullGrid are implemented

        • FullGaussianGrid, a full grid with Gaussian latitudes
        • FullClenshawGrid, a full grid with equi-angle latitudes

        and additionally we have FullHEALPixGrid and FullOctaHEALPixGrid which are the full grid equivalents to the HEALPix grid and the OctaHEALPix grid discussed below. Full grid equivalent means that they have the same latitude rings, but no reduction in the number of points per ring towards the poles and no longitude offset. Other implemented reduced grids are

        • OctahedralGaussianGrid, a reduced grid with Gaussian latitudes based on an octahedron
        • OctahedralClenshawGrid, similar but based on equi-angle latitudes
        • HEALPixGrid, an equal-area grid based on a dodecahedron with 12 faces
        • OctaHEALPixGrid, an equal-area grid from the class of HEALPix grids but based on an octahedron.

        An overview of these grids is visualised here

        Overview of implemented grids in SpeedyWeather.jl

        Visualised are each grid's grid points (white dots) and grid faces (white lines). All grids shown have 16 latitude rings on one hemisphere, Equator included. The total number of grid points is denoted in the top left of every subplot. The sphere is shaded with grey, orange and turquoise regions to denote the hemispheres in a and b, the 8 octahedral faces c, d,f and the 12 dodecahedral faces (or base pixels) in e. Coastlines are added for orientation.

        Grid resolution

        All grids use the same resolution parameter nlat_half, i.e. the number of rings on one hemisphere, Equator included. The Gaussian grids (full and reduced) do not have a ring on the equator, so their total number of rings nlat is always even and twice nlat_half. Clenshaw-Curtis grids and the HEALPix grids have a ring on the equator such their total number of rings is always odd and one less than the Gaussian grids at the same nlat_half.

        HEALPix grids do not use Nside as resolution parameter

        The original formulation for HEALPix grids use $N_{side}$, the number of grid points along the edges of each basepixel (8 in the figure above), SpeedyWeather.jl uses nlat_half, the number of rings on one hemisphere, Equator included, for all grids. This is done for consistency across grids. We may use $N_{side}$ for the documentation or within functions though.

        Matching spectral and grid resolution

        A given spectral resolution can be matched to a variety of grid resolutions. A cubic grid, for example, combines a spectral truncation T with a grid resolution N (=nlat_half) such that T + 1 = N. Using T31 and an O32 is therefore often abbreviated as Tco31 meaning that the spherical harmonics are truncated at $l_{max}=31$ in combination with N=32, i.e. 64 latitude rings in total on an octahedral Gaussian grid.

        Let J be the total number of rings. Then we have

        • $T \approx J$ for linear truncation
        • $\frac{3}{2}T \approx J$ for quadratic truncation
        • $2T \approx J$ for cubic truncation

        and in general $\frac{m+1}{2}T \approx J$ for m-th order truncation. So the higher the truncaction order the more grid points are used in combination with the same spectral resolution. A higher truncation order therefore makes all grid-point calculations more expensive, but can represent products of terms on the grid (which will have higher wavenumber components) to a higher accuracy as more grid points are available within a given wavelength. Using a sufficiently high truncation is therefore one way to avoid aliasing. In SpeedyWeather.jl the parameter dealiasing controls this option, = 1 would be linear, = 2 quadratic, = 3 cubic etc.

        For now just a quick overview of how the grid resolution changes when dealiasing is passed onto SpectralGrid on the FullGaussianGrid

        truncdealiasingFullGaussianGrid size
        31164x32
        31296x48
        313128x64
        42196x48
        422128x64
        423192x96
        .........

        You will obtain this information every time you create a SpectralGrid(;Grid,trunc,dealiasing).

        Full Gaussian grid

        ...

        Full Clenshaw-Curtis grid

        ...

        Octahedral Gaussian grid

        ...

        The HEALPix grid

        Technically, HEALPix grids are a class of grids that tessalate the sphere into faces that are often called basepixels. For each member of this class there are $N_\varphi$ basepixels in zonal direction and $N_\theta$ basepixels in meridional direction. For $N_\varphi = 4$ and $N_\theta = 3$ we obtain the classical HEALPix grid with $N_\varphi N_\theta = 12$ basepixels shown above in Implemented Grids. Each basepixel has a quadratic number of grid points in them. There's an equatorial zone where the number of zonal grid points is constant (always $2N$, so 32 at $N=16$) and there are polar caps above and below the equatorial zone with the border at $\cos(\theta) = 2/3$ ($\theta$ in colatitudes).

        Following Górski, 2004[1], the $z=cos(\theta)$ colatitude of the $j$-th ring in the north polar cap, $j=1,...,N_{side}$ with $2N_{side} = N$ is

        \[z = 1 - \frac{j^2}{3N_{side}^2}\]

        and on that ring, the longitude $\phi$ of the $i$-th point ($i$ is the in-ring-index) is at

        \[\phi = \frac{\pi}{2j}(i-\tfrac{1}{2})\]

        The in-ring index $i$ goes from $i=1,...,4$ for the first (i.e. northern-most) ring, $i=1,...,8$ for the second ring and $i = 1,...,4j$ for the $j$-th ring in the northern polar cap.

        In the north equatorial belt $j=N_{side},...,2N_{side}$ this changes to

        \[z = \frac{4}{3} - \frac{2j}{3N_{side}}\]

        and the longitudes change to ($i$ is always $i = 1,...,4N_{side}$ in the equatorial belt meaning the number of longitude points is constant here)

        \[\phi = \frac{\pi}{2N_{side}}(i - \frac{s}{2}), \quad s = (j - N_{side} + 1) \mod 2\]

        The modulo function comes in as there is an alternating longitudinal offset from the prime meridian (see Implemented grids). For the southern hemisphere the grid point locations can be obtained by mirror symmetry.

        Grid cell boundaries

        The cell boundaries are obtained by setting $i = k + 1/2$ or $i = k + 1/2 + j$ (half indices) into the equations above, such that $z(\phi,k)$, a function for the cosine of colatitude $z$ of index $k$ and the longitude $\phi$ is obtained. These are then (northern polar cap)

        \[z = 1 - \frac{k^2}{3N_{side}^2}\left(\frac{\pi}{2\phi_t}\right)^2, \quad z = 1 - \frac{k^2}{3N_{side}^2}\left(\frac{\pi}{2\phi_t - \pi}\right)^2\]

        with $\phi_t = \phi \mod \tfrac{\pi}{2}$ and in the equatorial belt

        \[z = \frac{2}{3}-\frac{4k}{3N_{side}} \pm \frac{8\phi}{3\pi}\]

        OctaHEALPix grid

        While the classic HEALPix grid is based on a dodecahedron, other choices for $N_\varphi$ and $N_\theta$ in the class of HEALPix grids will change the number of faces there are in zonal/meridional direction. With $N_\varphi = 4$ and $N_\theta = 1$ we obtain a HEALPix grid that is based on an octahedron, which has the convenient property that there are twice as many longitude points around the equator than there are latitude rings between the poles. This is a desirable for truncation as this matches the distances too, $2\pi$ around the Equator versus $\pi$ between the poles. $N_\varphi = 6, N_\theta = 2$ or $N_\varphi = 8, N_\theta = 3$ are other possible choices for this, but also more complicated. See Górski, 2004[1] for further examples and visulations of these grids.

        We call the $N_\varphi = 4, N_\theta = 1$ HEALPix grid the OctaHEALPix grid, which combines the equal-area property of the HEALPix grids with the octahedron that's also used in the OctahedralGaussianGrid or the OctahedralClenshawGrid. As $N_\theta = 1$ there is no equatorial belt which simplifies the grid. The latitude of the $j$-th isolatitude ring on the OctaHEALPixGrid is defined by

        \[z = 1 - \frac{j^2}{N^2},\]

        with $j=1,...,N$, and similarly for the southern hemisphere by symmetry. On this grid $N_{side} = N$ where $N$= nlat_half, the number of latitude rings on one hemisphere, Equator included, because each of the 4 basepixels spans from pole to pole and covers a quarter of the sphere. The longitudes with in-ring- index $i = 1,...,4j$ are

        \[\phi = \frac{\pi}{2j}(i - \tfrac{1}{2})\]

        and again, the southern hemisphere grid points are obtained by symmetry.

        Grid cell boundaries

        Similar to the grid cell boundaries for the HEALPix grid, the OctaHEALPix grid's boundaries are

        \[z = 1 - \frac{k^2}{N^2}\left(\frac{\pi}{2\phi_t}\right)^2, \quad z = 1 - \frac{k^2}{N^2}\left(\frac{\pi}{2\phi_t - \pi}\right)^2\]

        The $3N_{side}^2$ in the denominator of the HEALPix grid came simply $N^2$ for the OctaHEALPix grid and there's no separate equation for the equatorial belt (which doesn't exist in the OctaHEALPix grid).

        References

        [1] Górski, Hivon, Banday, Wandelt, Hansen, Reinecke, Bartelmann, 2004. HEALPix: A FRAMEWORK FOR HIGH-RESOLUTION DISCRETIZATION AND FAST ANALYSIS OF DATA DISTRIBUTED ON THE SPHERE, The Astrophysical Journal. doi:10.1086/427976

        diff --git a/previews/PR341/how_to_run_speedy/index.html b/previews/PR341/how_to_run_speedy/index.html new file mode 100644 index 000000000..1ccb149a5 --- /dev/null +++ b/previews/PR341/how_to_run_speedy/index.html @@ -0,0 +1,5 @@ + +How to run SpeedyWeather.jl · SpeedyWeather.jl

        How to run SpeedyWeather.jl

        The simplest way to run SpeedyWeather.jl with default parameters is

        using SpeedyWeather
        +run_speedy()

        Hooray, you have just simulated the Earth's atmosphere. Parameters, their meanings and defaults are documented in Parameters. For example, if you want to run the primitive equation dry core (no humidity) simulation in double precision (Float64), at higher resolution (trunc, the triangular spectral truncation), slow down the rotation of the Earth (rotation in $s^{-1}$), and create some netCDF ouput, do

        run_speedy(Float64,PrimitiveDry,trunc=42,planet=Earth(rotation=1e-5),output=true)

        If provided, the number format has to be the first argument, the model (Barotropic, ShallowWater, PrimitiveDry, PrimitiveWet are available) the second, and all other arguments are keyword arguments.

        The run_speedy interface

        SpeedyWeather.run_speedyFunction
        progn_vars = run_speedy(NF,Model;kwargs...)     or
        +progn_vars = run_speedy(NF;kwargs...)           or
        +progn_vars = run_speedy(Model;kwargs...)

        Runs SpeedyWeather.jl with number format NF and the model Model and any additional parameters in the keyword arguments kwargs.... Unspecified parameters use the default values.

        source

        The initialize_speedy interface

        Missing docstring.

        Missing docstring for initialize_speedy. Check Documenter's build log for details.

        diff --git a/previews/PR341/index.html b/previews/PR341/index.html new file mode 100644 index 000000000..f26bfadc0 --- /dev/null +++ b/previews/PR341/index.html @@ -0,0 +1,2 @@ + +Home · SpeedyWeather.jl

        SpeedyWeather.jl documentation

        Welcome to the documentation for SpeedyWeather.jl a global atmospheric circulation model with simple parametrizations to represent physical processes such as clouds, precipitation and radiation.

        Overview

        SpeedyWeather.jl is a global spectral model that uses a spherical harmonic transform to perform some calculations in spectral space (time integration, gradients, linear terms) and some in grid-point space (advection, non-linear terms, parameterizations). The prognostic variables used are vorticity, divergence, absolute temperature, logarithm of surface pressure and specific humidity. The time stepping uses a leapfrog scheme with additional filters and a semi-implicit formulation for gravity waves. The default resolution is T31 (96x48 grid points on a regular Gaussian grid, about 400km at the Equator) and 8 vertical levels.

        Simple parameterizations are used to represent the physical processes convection, large-scale condensation, clouds, short-wave radiation, long-waves radiation, surface fluxes of momentum and energy, and vertical diffusion.

        Manual outline

        See the following pages of the documentation for more details

        and the submodules

        and the original documentation by Molteni and Kucharski.

        Developers

        The development of SpeedyWeather.jl is lead by Milan Klöwer and current and past contributors include

        Any contributions are always welcome!

        Funding

        MK received funding by the European Research Council under Horizon 2020 within the ITHACA project, grant agreement number 741112 from 2021-2022. Since 2023 this project is also funded by the National Science Foundation NSF.

        diff --git a/previews/PR341/installation/index.html b/previews/PR341/installation/index.html new file mode 100644 index 000000000..8a6e8676f --- /dev/null +++ b/previews/PR341/installation/index.html @@ -0,0 +1,3 @@ + +Installation · SpeedyWeather.jl

        Installation

        SpeedyWeather.jl is registered in the Julia Registry. In most cases just open the Julia REPL and type

        julia> using Pkg
        +julia> Pkg.add("SpeedyWeather")

        which will automatically install the latest release and all necessary dependencies. If you run into any troubles please raise an issue

        However, you may want to make use of the latest features, then install directly from the main branch with

        julia> Pkg.add(url="https://github.com/SpeedyWeather/SpeedyWeather.jl",rev="main")

        other branches than main can be similarly installed.

        Compatibility with Julia versions

        SpeedyWeather.jl usually lives on the latest minor release and/or its predecessor. At the moment (May 2023) this means

        • Julia v1.8
        • Julia v1.9

        are supported, but we dropped the support of earlier versions.

        diff --git a/previews/PR341/lowertriangularmatrices/index.html b/previews/PR341/lowertriangularmatrices/index.html new file mode 100644 index 000000000..e69c681da --- /dev/null +++ b/previews/PR341/lowertriangularmatrices/index.html @@ -0,0 +1,60 @@ + +Submodule: LowerTriangularMatrices · SpeedyWeather.jl

        LowerTriangularMatrices

        LowerTriangularMatrices is a submodule that has been developed for SpeedyWeather.jl which is technically independent (SpeedyWeather.jl however imports it and so does SpeedyTransforms) and can also be used without running simulations. It is just not put into its own respective repository.

        This module defines LowerTriangularMatrix, a lower triangular matrix, which in contrast to LinearAlgebra.LowerTriangular does not store the entries above the diagonal. SpeedyWeather.jl uses LowerTriangularMatrix which is defined as a subtype of AbstractMatrix to store the spherical harmonic coefficients (see Spectral packing).

        Creation of LowerTriangularMatrix

        A LowerTriangularMatrix can be created using zeros,ones,rand, or randn

        julia> using SpeedyWeather.LowerTriangularMatrices
        +
        +julia> L = rand(LowerTriangularMatrix{Float32},5,5)
        +5×5 LowerTriangularMatrix{Float32}:
        + 0.912744   0.0        0.0       0.0       0.0
        + 0.0737592  0.230592   0.0       0.0       0.0
        + 0.799679   0.0765255  0.888098  0.0       0.0
        + 0.670835   0.997938   0.505276  0.492966  0.0
        + 0.949321   0.193692   0.793623  0.152817  0.357968

        or the undef initializor LowerTriangularMatrix{Float32}(undef,3,3). The element type is arbitrary though, you can use any type T too.

        Alternatively, it can be created through conversion from Matrix, which drops the upper triangle entries and sets them to zero

        julia> M = rand(Float16,3,3)
        +3×3 Matrix{Float16}:
        + 0.2222  0.694    0.3452
        + 0.2158  0.04443  0.274
        + 0.9746  0.793    0.6294
        +
        +julia> LowerTriangularMatrix(M)
        +3×3 LowerTriangularMatrix{Float16}:
        + 0.2222  0.0      0.0
        + 0.2158  0.04443  0.0
        + 0.9746  0.793    0.6294

        Indexing LowerTriangularMatrix

        LowerTriangularMatrix supports two types of indexing: 1) by denoting two indices, column and row [l,m] or 2) by denoting a single index [lm]. The double index works as expected

        julia> L
        +3×3 LowerTriangularMatrix{Float16}:
        + 0.1499  0.0    0.0
        + 0.1177  0.478  0.0
        + 0.1709  0.756  0.3223
        +
        +julia> L[2,2]
        +Float16(0.478)

        But the single index skips the zero entries in the upper triangle, i.e.

        julia> L[4]
        +Float16(0.478)

        which, important, is different from single indices of an AbstractMatrix

        julia> Matrix(L)[4]
        +Float16(0.0)

        In performance-critical code a single index should be used, as this directly maps to the index of the underlying data vector. The double index is somewhat slower as it first has to be converted to the corresponding single index.

        Consequently, many loops in SpeedyWeather.jl are build with the following structure

        n,m = size(L)
        +ij = 0
        +for j in 1:m
        +    for i in j:n
        +        ij += 1
        +        L[ij] = i+j
        +    end
        +end

        which loops over all lower triangle entries of L::LowerTriangularMatrix and the single index ij is simply counted up. However, one could also use [i,j] as indices in the loop body or to perform any calculation (i+j here). An iterator over all entries in the lower triangle can be created by

        for ij in eachindex(L)
        +    # do something
        +end

        The setindex! functionality of matrixes will throw a BoundsError when trying to write into the upper triangle of a LowerTriangularMatrix, for example

        julia> L[2,1] = 0    # valid index
        +0
        +
        +julia> L[1,2] = 0    # invalid index in the upper triangle
        +ERROR: BoundsError: attempt to access 3×3 LowerTriangularMatrix{Float32} at index [1, 2]

        Linear algebra with LowerTriangularMatrix

        The LowerTriangularMatrices module's main purpose is not linear algebra, and it's implementation may not be efficient, however, many operations work as expected

        julia> L = rand(LowerTriangularMatrix{Float32},3,3)
        +3×3 LowerTriangularMatrix{Float32}:
        + 0.57649   0.0       0.0
        + 0.348685  0.875371  0.0
        + 0.881923  0.850552  0.998306
        +
        +julia> L + L
        +3×3 LowerTriangularMatrix{Float32}:
        + 1.15298   0.0      0.0
        + 0.697371  1.75074  0.0
        + 1.76385   1.7011   1.99661
        +
        +julia> L * L
        +3×3 Matrix{Float32}:
        + 0.332341  0.0       0.0
        + 0.506243  0.766275  0.0
        + 1.68542   1.59366   0.996616

        Note, however, that the latter includes a conversion to Matrix, which is true for many operations, including inv or \. Hence when trying to do more sophisticated linear algebra with LowerTriangularMatrix we quickly leave lower triangular-land and go back to normal matrix-land.

        Function index

        SpeedyWeather.LowerTriangularMatrices.LowerTriangularMatrixType
        L = LowerTriangularMatrix{T}(v::Vector{T},m::Int,n::Int)

        A lower triangular matrix implementation that only stores the non-zero entries explicitly. L<:AbstractMatrix although in general we have L[i] != Matrix(L)[i], the former skips zero entries, tha latter includes them.

        source
        SpeedyWeather.LowerTriangularMatrices.ij2kFunction
        k = ij2k(   i::Integer,     # row index of matrix
        +            j::Integer,     # column index of matrix
        +            m::Integer)     # number of rows in matrix

        Converts the index pair i,j of an mxn LowerTriangularMatrix L to a single index k that indexes the same element in the corresponding vector that stores only the lower triangle (the non-zero entries) of L.

        source
        Base.fill!Method
        fill!(L::LowerTriangularMatrix,x)

        Fills the elements of L with x. Faster than fill!(::AbstractArray,x) as only the non-zero elements in L are assigned with x.

        source
        SpeedyWeather.LowerTriangularMatrices.eachharmonicFunction
        unit_range = eachharmonic(L::LowerTriangular)

        creates unit_range::UnitRange to loop over all non-zeros in a LowerTriangularMatrix L. Like eachindex but skips the upper triangle with zeros in L.

        source
        unit_range = eachharmonic(Ls::LowerTriangularMatrix...)

        creates unit_range::UnitRange to loop over all non-zeros in the LowerTriangularMatrices provided as arguments. Checks bounds first. All LowerTriangularMatrix's need to be of the same size. Like eachindex but skips the upper triangle with zeros in L.

        source
        diff --git a/previews/PR341/output/index.html b/previews/PR341/output/index.html new file mode 100644 index 000000000..0fc19ad05 --- /dev/null +++ b/previews/PR341/output/index.html @@ -0,0 +1,31 @@ + +NetCDF output · SpeedyWeather.jl

        NetCDF output

        SpeedyWeather.jl uses NetCDF to output the data of a simulation. The following describes the details of this and how to change the way in which the NetCDF output is written. There are many options to this available.

        Accessing the NetCDF output writer

        The output writer is a component of every Model, i.e. BarotropicModel, ShallowWaterModel, PrimitiveDryModel and PrimitiveWetModel, hence a non-default output writer can be passed on as a keyword argument to the model constructor

        julia> spectral_grid = SpectralGrid()
        +julia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry)
        +julia> model = PrimitiveDryModel(;spectral_grid, output=my_output_writer)

        So after we have defined the grid through the SpectralGrid object we can use and change the implemented OutputWriter by passing on the following arguments

        julia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry, kwargs...)

        the spectral_grid has to be the first argument then the model type (Barotropic, ShallowWater, PrimitiveDry, PrimitiveWet) which helps the output writer to make default choices on which variables to output. However, we can also pass on further keyword arguments. So let's start with an example.

        Example 1: NetCDF output every hour

        If we want to increase the frequency of the output we can choose output_dt (default =6 in hours) like so

        julia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry, output_dt=1)
        +julia> model = PrimitiveDryModel(;spectral_grid, output=my_output_writer)

        which will now output every hour. It is important to pass on the new output writer my_output_writer to the model constructor, otherwise it will not be part of your model and the default is used instead. Note that output_dt has to be understood as the minimum frequency or maximum output time step. Example, we run the model at a resolution of T85 and the time step is going to be 670s

        julia> spectral_grid = SpectralGrid(trunc=85)
        +julia> time_stepper = Leapfrog(spectral_grid)
        +Leapfrog{Float32}:
        +...
        + Δt_sec::Int64 = 670
        +...

        This means that after 32 time steps 5h 57min and 20s will have passed where output will happen as the next time step would be >6h. The time axis of the NetCDF output will look like

        julia> using NCDatasets
        +julia> ds = NCDataset("run_0001/output.nc");
        +julia> ds["time"][:]
        +5-element Vector{Dates.DateTime}:
        + 2000-01-01T00:00:00
        + 2000-01-01T05:57:20
        + 2000-01-01T11:54:40
        + 2000-01-01T17:52:00
        + 2000-01-01T23:49:20
        +
        +julia> diff(ds["time"][:])
        +4-element Vector{Dates.Millisecond}:
        + 21440000 milliseconds
        + 21440000 milliseconds
        + 21440000 milliseconds
        + 21440000 milliseconds

        This is so that we don't interpolate in time during output to hit exactly every 6 hours, but at the same time have a constant spacing in time between output time steps.

        Example 2: Output onto a higher/lower resolution grid

        Say we want to run the model at a given horizontal resolution but want to output on another resolution, the OutputWriter takes as argument output_Grid<:AbstractFullGrid and nlat_half::Int. So for example output_Grid=FullClenshawGrid and nlat_half=48 will always interpolate onto a regular 192x95 longitude-latitude grid of 1.875˚ resolution, regardless the grid and resolution used for the model integration.

        julia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry, output_Grid=FullClenshawGrid, nlat_half=48)

        Note that by default the output is on the corresponding full of the grid used in the dynamical core so that interpolation only happens at most in the zonal direction as they share the location of the latitude rings. You can check this by

        julia> RingGrids.full_grid(OctahedralGaussianGrid)
        +FullGaussianGrid

        So the corresponding full grid of an OctahedralGaussianGrid is the FullGaussiangrid and the same resolution nlat_half is chosen by default in the output writer (which you can change though as shown above). Overview of the corresponding full grids

        GridCorresponding full grid
        FullGaussianGridFullGaussianGrid
        FullClenshawGridFullClenshawGrid
        OctahadralGaussianGridFullGaussianGrid
        OctahedralClensawhGridFullClenshawGrid
        HEALPixGridFullHEALPixGrid
        OctaHEALPixGridFullOctaHEALPixGrid

        The grids FullHEALPixGrid, FullOctaHEALPixGrid share the same latitude rings as their reduced grids, but have always as many longitude points as they are at most around the equator. These grids are not tested in the dynamical core (but you may use them experimentally) and mostly designed for output purposes.

        Example 3: Changing the output path or identification

        That's easy by passing on path="/my/favourite/path/" and the folder run_* with * the identification of the run (that's the id keyword, which can be manually set but is also automatically determined as a number counting up depending on which folders already exist) will be created within.

        julia> path = pwd()
        +"/Users/milan"
        +julia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry, path=path)

        This folder must already exist. If you want to give your run a name/identification you can pass on id

        julia> my_output_writer = OutputWriter(spectral_grid,PrimitiveDry,id="diffusion_test");

        which will be used instead of a 4 digit number like 0001, 0002 which is automatically determined if id is not provided. You will see the id of the run in the progress bar

        Weather is speedy: run diffusion_test 100%|███████████████████████| Time: 0:00:12 (19.20 years/day)

        and the run folder, here run_diffusion_test, is also named accordingly

        shell> ls
        +...
        +run_diffusion_test
        +...

        Further options

        Further options are described in the OutputWriter docstring, (also accessible via julia>?OutputWriter for example). Note that some fields are actual options, but others are derived from the options you provided or are arrays/objects the output writer needs, but shouldn't be passed on by the user. The actual options are declared as [OPTION] in the following

        SpeedyWeather.OutputWriterType

        NetCDF output writer. Contains all output options and auxiliary fields for output interpolation. To be initialised with OutputWriter(::SpectralGrid,::Type{<:ModelSetup},kwargs...) to pass on the resolution information and the model type which chooses which variables to output. Options include

        • spectral_grid::SpectralGrid

        • output::Bool

        • path::String: [OPTION] path to output folder, run_???? will be created within

        • id::Union{Int64, String}: [OPTION] run identification number/string

        • run_path::String

        • filename::String: [OPTION] name of the output netcdf file

        • write_restart::Bool: [OPTION] also write restart file if output==true?

        • pkg_version::VersionNumber

        • startdate::Dates.DateTime

        • output_dt::Float64: [OPTION] output frequency, time step [hrs]

        • output_vars::Vector{Symbol}: [OPTION] which variables to output, u, v, vor, div, pres, temp, humid

        • missing_value::Union{Float32, Float64}: [OPTION] missing value to be used in netcdf output

        • compression_level::Int64: [OPTION] lossless compression level; 1=low but fast, 9=high but slow

        • keepbits::SpeedyWeather.Keepbits: [OPTION] mantissa bits to keep for every variable

        • output_every_n_steps::Int64

        • timestep_counter::Int64

        • output_counter::Int64

        • netcdf_file::Union{Nothing, NetCDF.NcFile}

        • input_Grid::Type{<:SpeedyWeather.RingGrids.AbstractGrid}

        • as_matrix::Bool: [OPTION] sort grid points into a matrix (interpolation-free), for OctahedralClenshawGrid, OctaHEALPixGrid only

        • quadrant_rotation::NTuple{4, Int64}

        • matrix_quadrant::NTuple{4, Tuple{Int64, Int64}}

        • output_Grid::Type{<:SpeedyWeather.RingGrids.AbstractFullGrid}: [OPTION] the grid used for output, full grids only

        • nlat_half::Int64: [OPTION] the resolution of the output grid, default: same nlat_half as in the dynamical core

        • nlon::Int64

        • nlat::Int64

        • npoints::Int64

        • nlev::Int64

        • interpolator::SpeedyWeather.RingGrids.AbstractInterpolator

        • u::Matrix{NF} where NF<:Union{Float32, Float64}

        • v::Matrix{NF} where NF<:Union{Float32, Float64}

        • vor::Matrix{NF} where NF<:Union{Float32, Float64}

        • div::Matrix{NF} where NF<:Union{Float32, Float64}

        • temp::Matrix{NF} where NF<:Union{Float32, Float64}

        • pres::Matrix{NF} where NF<:Union{Float32, Float64}

        • humid::Matrix{NF} where NF<:Union{Float32, Float64}

        source
        diff --git a/previews/PR341/parametrizations/index.html b/previews/PR341/parametrizations/index.html new file mode 100644 index 000000000..682599e6c --- /dev/null +++ b/previews/PR341/parametrizations/index.html @@ -0,0 +1,2 @@ + +Parameterizations · SpeedyWeather.jl
        diff --git a/previews/PR341/ringgrids/index.html b/previews/PR341/ringgrids/index.html new file mode 100644 index 000000000..8ae4b3e0f --- /dev/null +++ b/previews/PR341/ringgrids/index.html @@ -0,0 +1,232 @@ + +Submodule: RingGrids · SpeedyWeather.jl

        RingGrids

        RingGrids is a submodule that has been developed for SpeedyWeather.jl which is technically independent (SpeedyWeather.jl however imports it and so does SpeedyTransforms) and can also be used without running simulations. It is just not put into its own respective repository.

        RingGrids defines several iso-latitude grids, which are mathematically described in the section on Grids. In brief, they include the regular latitude-longitude grids (here called FullClenshawGrid) as well as grids which latitudes are shifted to the Gaussian latitudes and reduced grids, meaning that they have a decreasing number of longitudinal points towards the poles to be more equal-area than full grids.

        RingGrids defines and exports the following grids:

        • full grids: FullClenshawGrid, FullGaussianGrid, FullHEALPix, and FullOctaHEALPix
        • reduced grids: OctahedralGaussianGrid, OctahedralClenshawGrid, OctaHEALPixGrid and HEALPixGrid

        The following explanation of how to use these can be mostly applied to any of them, however, there are certain functions that are not defined, e.g. the full grids can be trivially converted to a Matrix but not the OctahedralGaussianGrid.

        Creating data on a RingGrid

        Every grid in RingGrids has a data field, which is a vector containing the data on the grid. The grid points are unravelled west to east then north to south, meaning that it starts at 90˚N and 0˚E then walks eastward for 360˚ before jumping on the next latitude ring further south, this way circling around the sphere till reaching the south pole. This may also be called ring order.

        Data on a 96x48 Matrix which follows this ring order can be put on a FullGaussianGrid like so

        julia> map
        +96×48 Matrix{Float32}:
        + -0.219801   -0.519598   1.2066    …   0.81304    -1.16023    1.0353
        + -0.55615    -1.05712   -0.227948     -2.06369     1.10353    1.60918
        +  0.446913   -0.856431   1.58896      -1.0894     -0.894315   0.632353
        +  0.445915   -0.107201  -0.577785      0.574784   -0.825049   1.29677
        +  1.194      -0.353374   1.30581       0.465554    0.358457  -0.726567
        +  1.28693     1.43997    0.691283  …  -0.330544   -0.267588   0.181308
        +  ⋮                                ⋱   ⋮
        + -0.432703    0.17233    0.89222       0.888913    1.32787   -0.248779
        + -0.404498    0.127172  -0.64237       0.127979   -1.55253   -2.00749
        + -0.857746   -0.433251  -0.468293      1.09825    -0.291169   1.07452
        +  0.375367   -0.218278   0.492855     -0.287976    0.878996  -1.19745
        + -0.0619525  -0.129129  -1.35502   …   0.0824819   0.481736   0.845638
        +
        +julia> grid = FullGaussianGrid(map)
        +4608-element, 48-ring FullGaussianGrid{Float32}:
        + -0.21980117
        + -0.5561496
        +  0.44691312
        +  0.4459149
        +  1.1940043
        +  1.2869298
        +  ⋮
        + -0.24877885
        + -2.007495
        +  1.0745221
        + -1.197454
        +  0.84563845

        A full Gaussian grid has always $2N$ x $N$ grid points, but a FullClenshawGrid has $2N$ x $N-1$, if those dimensions don't match, the creation will throw an error. To reobtain the data from a grid, you can access its data field which returns a normal Vector

        julia> grid.data
        +4608-element Vector{Float32}:
        + -0.21980117
        + -0.5561496
        +  0.44691312
        +  0.4459149
        +  1.1940043
        +  1.2869298
        +  ⋮
        + -0.24877885
        + -2.007495
        +  1.0745221
        + -1.197454
        +  0.84563845

        Which can be reshaped to reobtain map from above. Alternatively you can Matrix(grid) to do this in one step

        julia> map == Matrix(FullGaussianGrid(map))
        +true

        You can also use zeros,ones,rand,randn to create a grid, whereby nlat_half, i.e. the number of latitude rings on one hemisphere, Equator included, is used as a resolution parameter and here as a second argument.

        julia> nlat_half = 4
        +julia> grid = randn(OctahedralGaussianGrid{Float16},nlat_half)
        +208-element, 8-ring OctahedralGaussianGrid{Float16}:
        + -1.868
        +  0.493
        +  0.3142
        +  1.871
        +  1.349
        +  0.623
        +  ⋮
        +  1.064
        +  0.4346
        + -0.641
        +  0.1445
        +  0.3909

        and any element type T can be used for OctahedralGaussianGrid{T} and similar for other grid types.

        Indexing RingGrids

        All RingGrids have a single index ij which follows the ring order. While this is obviously not super exciting here are some examples how to make better use of the information that the data sits on a grid.

        We obtain the latitudes of the rings of a grid by calling get_latd (get_lond is only defined for full grids, or use get_latdlonds for latitudes, longitudes per grid point not per ring)

        julia> latd = get_latd(grid)
        +8-element Vector{Float64}:
        +  73.79921362856324
        +  52.81294318999426
        +  31.704091745007943
        +  10.569882312576093
        + -10.569882312576093
        + -31.704091745007943
        + -52.81294318999426
        + -73.79921362856324

        Now we could calculate Coriolis and add it on the grid as follows

        rotation = 7.29e-5                  # angular frequency of Earth's rotation [rad/s]
        +coriolis = 2rotation*sind.(latd)    # vector of coriolis parameters per latitude ring
        +
        +rings = eachring(grid)
        +for (j,ring) in enumerate(rings)
        +    f = coriolis[j]
        +    for ij in ring
        +        grid[ij] += f
        +    end
        +end

        eachring creates a vector of UnitRange indices, such that we can loop over the ring index j (j=1 being closest to the North pole) pull the coriolis parameter at that latitude and then loop over all in-ring indices i (changing longitudes) to do something on the grid. Something similar can be done to scale/unscale with the cosine of latitude for example. We can always loop over all grid-points like so

        for ij in eachgridpoint(grid)
        +    grid[ij]
        +end

        or use eachindex instead.

        Interpolation on RingGrids

        In most cases we will want to use RingGrids so that our data directly comes with the geometric information of where the grid-point is one the sphere. We have seen how to use get_latd, get_lond, ... for that above. This information generally can also be used to interpolate our data from grid to another or to request an interpolated value on some coordinates. Using our data on grid which is an OctahedralGaussianGrid from above we can use the interpolate function to get it onto a FullGaussianGrid (or any other grid for purpose)

        julia> grid
        +208-element, 8-ring OctahedralGaussianGrid{Float16}:
        + -1.868
        +  0.493
        +  0.3142
        +  1.871
        +  1.349
        +  0.623
        +  ⋮
        +  1.064
        +  0.4346
        + -0.641
        +  0.1445
        +  0.3909
        +
        +julia> interpolate(FullGaussianGrid,grid)
        +128-element, 8-ring FullGaussianGrid{Float64}:
        + -1.8681640625
        +  0.4482421875
        +  1.0927734375
        +  1.4794921875
        +  0.623046875
        + -0.6435546875
        +  ⋮
        + -0.57763671875
        +  1.064453125
        +  0.16552734375
        + -0.248291015625
        +  0.329345703125

        By default this will linearly interpolate (it's an anvil interpolator, see below) onto a grid with the same nlat_half, but we can also coarse-grain or fine-grain by specifying nlat_half directly as 2nd argument

        julia> interpolate(FullGaussianGrid,6,grid)
        +288-element, 12-ring FullGaussianGrid{Float64}:
        + -1.248046875
        +  0.08984375
        +  0.2763671875
        +  0.76513671875
        +  1.1767578125
        +  ⋮
        +  0.26416015625
        + -0.295166015625
        + -0.271728515625
        +  0.0511474609375
        +  0.0814208984375

        So we got from an 8-ring OctahedralGaussianGrid{Float16} to a 12-ring FullGaussianGrid{Float64}, so it did a conversion from Float16 to Float64 on the fly too, because the default precision is Float64 unless specified. interpolate(FullGaussianGrid{Float16},6,grid) would have interpolated onto a grid with element type Float16.

        One can also interpolate onto a give cordinate ˚N, ˚E like so

        julia> interpolate(30.0,10.0,grid)
        +1-element Vector{Float16}:
        + 0.9297

        we interpolated the data from grid onto 30˚N, 10˚E. To do this simultaneously for many coordinates they can be packed into a vector too

        julia> interpolate([30.0,40.0,50.0],[10.0,10.0,10.0],grid)
        +3-element Vector{Float16}:
        +  0.9297
        +  0.08887
        + -0.929

        which returns the data on grid at 30˚N, 40˚N, 50˚N, and 10˚E respectively. Note how the interpolation here retains the element type of grid.

        Performance for RingGrid interpolation

        Every time an interpolation like interpolate(30.0,10.0,grid) is called, several things happen, which are important to understand to know how to get the fastest interpolation out of this module in a given situation. Under the hood an interpolation takes three arguments

        • output vector
        • input grid
        • interpolator

        The output vector is just an array into which the interpolated data is written, providing this prevents unnecessary allocation of memory in case the destination array of the interpolation already exists. The input grid contains the data which is subject to interpolation, it must come on a ring grid, however, its coordinate information is actually already in the interpolator. The interpolator knows about the geometry of the grid the data is coming on and the coordinates it is supposed to interpolate onto. It has therefore precalculated the indices that are needed to access the right data on the input grid and the weights it needs to apply in the actual interplation operation. The only thing it does not know is the actual data values of that grid. So in the case you want to interpolate from grid A to grid B many times, you can just reuse the same interpolator. If you want to change the coordinates of the output grid but its total number of points remain constants then you can update the locator inside the interpolator and only else you will need to create a new interpolator. Let's look at this in practice. Say we have two grids an want to interpolate between them

        julia> grid_in = rand(HEALPixGrid,4)
        +julia> grid_out = zeros(FullClenshawGrid,6)
        +julia> interp = RingGrids.interpolator(grid_out,grid_in)

        Now we have created an interpolator interp which knows about the geometry where to interpolate from and the coordinates there to interpolate to. It is also initialized, meaning it has precomputed the indices to of grid_in that are supposed to be used. It just does not know about the data of grid_in (and neither of grid_out which will be overwritten anyway). We can now do

        julia> interpolate!(grid_out,grid_in,interp);
        +julia> grid_out
        +264-element, 11-ring FullClenshawGrid{Float64}:
        + 0.47698810225785837
        + 0.49923033302273034
        + 0.5214725637876022
        + 0.5437147945524742
        + ⋮
        + 0.6277318221906577
        + 0.5934538182075797
        + 0.6009226488782581
        + 0.6083914795489366

        which is identical to interpolate(grid_out,grid_in) but you can reuse interp with more data. The interpolation can also handle various element types (the interpolator interp does not have to be updated for this either)

        julia> grid_out = zeros(FullClenshawGrid{Float16},6);
        +julia> interpolate!(grid_out,grid_in,interp)
        +julia> grid_out
        +264-element, 11-ring FullClenshawGrid{Float16}:
        + 0.477
        + 0.4993
        + 0.5215
        + 0.544
        + 0.5493
        + 0.555
        + ⋮
        + 0.662
        + 0.628
        + 0.5933
        + 0.601
        + 0.6084

        and we have converted data from a HEALPixGrid{Float64} (which is always default if not specified) to a FullClenshawGrid{Float16} including the type conversion Float64-Float16 on the fly. Technically there are three data types and their combinations possible: The input data will come with a type, the output array has an element type and the interpolator has precomputed weights with a given type. Say we want to go from Float16 data on an OctahedralGaussianGrid to Float16 on a FullClenshawGrid but using Float32 precision for the interpolation itself, we would do this by

        julia> grid_in = randn(OctahedralGaussianGrid{Float16},24)
        +julia> grid_out = zeros(FullClenshawGrid{Float16},24)
        +julia> interp = RingGrids.interpolator(Float32,grid_out,grid_in)
        +julia> interpolate!(grid_out,grid_in,interp)
        +julia> grid_out
        +4512-element, 47-ring FullClenshawGrid{Float16}:
        + -0.954
        + -0.724
        + -0.4941
        + -0.264
        + -0.03433
        +  0.1796
        +  ⋮
        + -0.5703
        + -0.3481
        + -0.07666
        +  0.1958
        +  0.467

        As a last example we want to illustrate a situation where we would always want to interplate onto 10 coordinates, but their locations may change. In order to avoid recreating an interpolator object we would do (AnvilInterpolator is described in Anvil interpolator)

        julia> npoints = 10    # number of coordinates to interpolate onto
        +julia> interp = AnvilInterpolator(Float32,HEALPixGrid,24,npoints)

        with the first argument being the number format used during interpolation, then the input grid type, its resolution in terms of nlat_half and then the number of points to interpolate onto. However, interp is not yet initialized as it does not know about the destination coordinates yet. Let's define them, but note that we already decided there's only 10 of them above.

        julia> latds = collect(0.0:5.0:45.0)
        +10-element Vector{Float64}:
        +  0.0
        +  5.0
        +  ⋮
        + 40.0
        + 45.0
        +
        +julia> londs = collect(-10.0:2.0:8.0)
        +10-element Vector{Float64}:
        + -10.0
        +  -8.0
        +  -6.0
        +  ⋮
        +   6.0
        +   8.0

        now we can update the locator inside our interpolator as follows

        julia> RingGrids.update_locator!(interp,latds,londs)

        With data matching the input from above, a nlat_half=24 HEALPixGrid, and allocate 10-element output vector

        julia> output_vec = zeros(10)
        +julia> grid_input = rand(HEALPixGrid,24)

        we can use the interpolator as follows

        julia> interpolate!(output_vec,grid_input,interp)
        +10-element Vector{Float64}:
        + 0.3182548251299291
        + 0.7499448926757676
        + 0.25733825675836064
        +  ⋮
        + 0.2949249541923441
        + 0.6690698461409016
        + 0.6159433564856793

        which is the approximately the same as doing it directly without creating an interpolator first and updating its locator

        julia> interpolate(latds,londs,grid_input)
        +10-element Vector{Float64}:
        + 0.31825482404891603
        + 0.7499448923165136
        + 0.25733824520344434
        +  ⋮
        + 0.294924962125593
        + 0.6690698486360254
        + 0.6159433558779497

        but allows for a reuse of the interpolator. Note that the two output arrays are not exactly identical because we manually set our interpolator interp to use Float32 for the interplation whereas the default is Float64.

        Anvil interpolator

        Currently the only interpolator implemented is a 4-point bilinear interpolator, which schematically works as follows. Anvil interpolation is the bilinear average of a,b,c,d which are values at grid points in an anvil-shaped configuration at location x, which is denoted by Δab,Δcd,Δy, the fraction of distances between a-b,c-d, and ab-cd, respectively. Note that a,c and b,d do not necessarily share the same longitude/x-coordinate.

                0..............1    # fraction of distance Δab between a,b
        +        |<  Δab   >|
        +
        +0^      a -------- o - b    # anvil-shaped average of a,b,c,d at location x
        +.Δy                |
        +.                  |
        +.v                 x 
        +.                  |
        +1         c ------ o ---- d
        +
        +          |<  Δcd >|
        +          0...............1 # fraction of distance Δcd between c,d
        +
        +^ fraction of distance Δy between a-b and c-d.

        This interpolation is chosen as by definiton of the ring grids, a and b share the same latitude, so do c and d, but the longitudes can be different for all four, a,b,c,d.

        Function index

        SpeedyWeather.RingGrids.eachringFunction
        eachring(grid::SpeedyWeather.RingGrids.AbstractGrid) -> Any
        +

        Vector{UnitRange} rings to loop over every ring of grid grid and then each grid point per ring. To be used like

        rings = eachring(grid)
        +for ring in rings
        +    for ij in ring
        +        grid[ij]
        source
        eachring(
        +    grid1::SpeedyWeather.RingGrids.AbstractGrid,
        +    grids::Grid<:SpeedyWeather.RingGrids.AbstractGrid...
        +) -> Any
        +

        Same as eachring(grid) but performs a bounds check to assess that all grids in grids are of same size.

        source
        SpeedyWeather.RingGrids.whichringFunction
        whichring(
        +    ij::Integer,
        +    rings::Vector{UnitRange{Int64}}
        +) -> Int64
        +

        Obtain ring index j from gridpoint ij and Vector{UnitRange} describing rind indices as obtained from eachring(::Grid)

        source
        SpeedyWeather.RingGrids.get_nlonsFunction
        get_nlons(
        +    Grid::Type{<:SpeedyWeather.RingGrids.AbstractGrid},
        +    nlat_half::Integer;
        +    both_hemispheres
        +) -> Any
        +

        Returns a vector nlons for the number of longitude points per latitude ring, north to south. Provide grid Grid and its resolution parameter nlat_half. For both_hemisphere==false only the northern hemisphere (incl Equator) is returned.

        source
        diff --git a/previews/PR341/search/index.html b/previews/PR341/search/index.html new file mode 100644 index 000000000..ab495ac8e --- /dev/null +++ b/previews/PR341/search/index.html @@ -0,0 +1,2 @@ + +Search · SpeedyWeather.jl diff --git a/previews/PR341/search_index.js b/previews/PR341/search_index.js new file mode 100644 index 000000000..db37f3802 --- /dev/null +++ b/previews/PR341/search_index.js @@ -0,0 +1,3 @@ +var documenterSearchIndex = {"docs": +[{"location":"development/#Development-notes","page":"Development notes","title":"Development notes","text":"","category":"section"},{"location":"development/","page":"Development notes","title":"Development notes","text":"To run tests, from the path of your local clone of the repository do:","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"julia --project=. -e 'import Pkg; Pkg.test()'","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"To install dependencies:","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"julia --project -e 'import Pkg; Pkg.instantiate()`","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"then opening:","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"julia --project","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"you are able to using SpeedyWeather.","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"To generate the docs:","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"julia --project=docs -e 'import Pkg; Pkg.develop(path=\".\"); Pkg.instantiate()'\njulia --project=docs docs/make.jl","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"If the docs are generated successfully, you view them by opening docs/build/index.html in your favorite browser.","category":"page"},{"location":"installation/#Installation","page":"Installation","title":"Installation","text":"","category":"section"},{"location":"installation/","page":"Installation","title":"Installation","text":"SpeedyWeather.jl is registered in the Julia Registry. In most cases just open the Julia REPL and type","category":"page"},{"location":"installation/","page":"Installation","title":"Installation","text":"julia> using Pkg\njulia> Pkg.add(\"SpeedyWeather\")","category":"page"},{"location":"installation/","page":"Installation","title":"Installation","text":"which will automatically install the latest release and all necessary dependencies. If you run into any troubles please raise an issue","category":"page"},{"location":"installation/","page":"Installation","title":"Installation","text":"However, you may want to make use of the latest features, then install directly from the main branch with","category":"page"},{"location":"installation/","page":"Installation","title":"Installation","text":"julia> Pkg.add(url=\"https://github.com/SpeedyWeather/SpeedyWeather.jl\",rev=\"main\")","category":"page"},{"location":"installation/","page":"Installation","title":"Installation","text":"other branches than main can be similarly installed.","category":"page"},{"location":"installation/#Compatibility-with-Julia-versions","page":"Installation","title":"Compatibility with Julia versions","text":"","category":"section"},{"location":"installation/","page":"Installation","title":"Installation","text":"SpeedyWeather.jl usually lives on the latest minor release and/or its predecessor. At the moment (May 2023) this means ","category":"page"},{"location":"installation/","page":"Installation","title":"Installation","text":"Julia v1.8\nJulia v1.9","category":"page"},{"location":"installation/","page":"Installation","title":"Installation","text":"are supported, but we dropped the support of earlier versions.","category":"page"},{"location":"output/#NetCDF-output","page":"NetCDF output","title":"NetCDF output","text":"","category":"section"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"SpeedyWeather.jl uses NetCDF to output the data of a simulation. The following describes the details of this and how to change the way in which the NetCDF output is written. There are many options to this available.","category":"page"},{"location":"output/#Accessing-the-NetCDF-output-writer","page":"NetCDF output","title":"Accessing the NetCDF output writer","text":"","category":"section"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"The output writer is a component of every Model, i.e. BarotropicModel, ShallowWaterModel, PrimitiveDryModel and PrimitiveWetModel, hence a non-default output writer can be passed on as a keyword argument to the model constructor","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"julia> spectral_grid = SpectralGrid()\njulia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry)\njulia> model = PrimitiveDryModel(;spectral_grid, output=my_output_writer)","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"So after we have defined the grid through the SpectralGrid object we can use and change the implemented OutputWriter by passing on the following arguments","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"julia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry, kwargs...)","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"the spectral_grid has to be the first argument then the model type (Barotropic, ShallowWater, PrimitiveDry, PrimitiveWet) which helps the output writer to make default choices on which variables to output. However, we can also pass on further keyword arguments. So let's start with an example.","category":"page"},{"location":"output/#Example-1:-NetCDF-output-every-hour","page":"NetCDF output","title":"Example 1: NetCDF output every hour","text":"","category":"section"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"If we want to increase the frequency of the output we can choose output_dt (default =6 in hours) like so","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"julia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry, output_dt=1)\njulia> model = PrimitiveDryModel(;spectral_grid, output=my_output_writer)","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"which will now output every hour. It is important to pass on the new output writer my_output_writer to the model constructor, otherwise it will not be part of your model and the default is used instead. Note that output_dt has to be understood as the minimum frequency or maximum output time step. Example, we run the model at a resolution of T85 and the time step is going to be 670s","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"julia> spectral_grid = SpectralGrid(trunc=85)\njulia> time_stepper = Leapfrog(spectral_grid)\nLeapfrog{Float32}:\n...\n Δt_sec::Int64 = 670\n...","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"This means that after 32 time steps 5h 57min and 20s will have passed where output will happen as the next time step would be >6h. The time axis of the NetCDF output will look like","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"julia> using NCDatasets\njulia> ds = NCDataset(\"run_0001/output.nc\");\njulia> ds[\"time\"][:]\n5-element Vector{Dates.DateTime}:\n 2000-01-01T00:00:00\n 2000-01-01T05:57:20\n 2000-01-01T11:54:40\n 2000-01-01T17:52:00\n 2000-01-01T23:49:20\n\njulia> diff(ds[\"time\"][:])\n4-element Vector{Dates.Millisecond}:\n 21440000 milliseconds\n 21440000 milliseconds\n 21440000 milliseconds\n 21440000 milliseconds","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"This is so that we don't interpolate in time during output to hit exactly every 6 hours, but at the same time have a constant spacing in time between output time steps.","category":"page"},{"location":"output/#Example-2:-Output-onto-a-higher/lower-resolution-grid","page":"NetCDF output","title":"Example 2: Output onto a higher/lower resolution grid","text":"","category":"section"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"Say we want to run the model at a given horizontal resolution but want to output on another resolution, the OutputWriter takes as argument output_Grid<:AbstractFullGrid and nlat_half::Int. So for example output_Grid=FullClenshawGrid and nlat_half=48 will always interpolate onto a regular 192x95 longitude-latitude grid of 1.875˚ resolution, regardless the grid and resolution used for the model integration.","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"julia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry, output_Grid=FullClenshawGrid, nlat_half=48)","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"Note that by default the output is on the corresponding full of the grid used in the dynamical core so that interpolation only happens at most in the zonal direction as they share the location of the latitude rings. You can check this by","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"julia> RingGrids.full_grid(OctahedralGaussianGrid)\nFullGaussianGrid","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"So the corresponding full grid of an OctahedralGaussianGrid is the FullGaussiangrid and the same resolution nlat_half is chosen by default in the output writer (which you can change though as shown above). Overview of the corresponding full grids","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"Grid Corresponding full grid\nFullGaussianGrid FullGaussianGrid\nFullClenshawGrid FullClenshawGrid\nOctahadralGaussianGrid FullGaussianGrid\nOctahedralClensawhGrid FullClenshawGrid\nHEALPixGrid FullHEALPixGrid\nOctaHEALPixGrid FullOctaHEALPixGrid","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"The grids FullHEALPixGrid, FullOctaHEALPixGrid share the same latitude rings as their reduced grids, but have always as many longitude points as they are at most around the equator. These grids are not tested in the dynamical core (but you may use them experimentally) and mostly designed for output purposes.","category":"page"},{"location":"output/#Example-3:-Changing-the-output-path-or-identification","page":"NetCDF output","title":"Example 3: Changing the output path or identification","text":"","category":"section"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"That's easy by passing on path=\"/my/favourite/path/\" and the folder run_* with * the identification of the run (that's the id keyword, which can be manually set but is also automatically determined as a number counting up depending on which folders already exist) will be created within.","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"julia> path = pwd()\n\"/Users/milan\"\njulia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry, path=path)","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"This folder must already exist. If you want to give your run a name/identification you can pass on id","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"julia> my_output_writer = OutputWriter(spectral_grid,PrimitiveDry,id=\"diffusion_test\");","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"which will be used instead of a 4 digit number like 0001, 0002 which is automatically determined if id is not provided. You will see the id of the run in the progress bar","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"Weather is speedy: run diffusion_test 100%|███████████████████████| Time: 0:00:12 (19.20 years/day)","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"and the run folder, here run_diffusion_test, is also named accordingly","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"shell> ls\n...\nrun_diffusion_test\n...","category":"page"},{"location":"output/#Further-options","page":"NetCDF output","title":"Further options","text":"","category":"section"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"Further options are described in the OutputWriter docstring, (also accessible via julia>?OutputWriter for example). Note that some fields are actual options, but others are derived from the options you provided or are arrays/objects the output writer needs, but shouldn't be passed on by the user. The actual options are declared as [OPTION] in the following","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"OutputWriter","category":"page"},{"location":"output/#SpeedyWeather.OutputWriter","page":"NetCDF output","title":"SpeedyWeather.OutputWriter","text":"NetCDF output writer. Contains all output options and auxiliary fields for output interpolation. To be initialised with OutputWriter(::SpectralGrid,::Type{<:ModelSetup},kwargs...) to pass on the resolution information and the model type which chooses which variables to output. Options include\n\nspectral_grid::SpectralGrid\noutput::Bool\npath::String: [OPTION] path to output folder, run_???? will be created within\nid::Union{Int64, String}: [OPTION] run identification number/string\nrun_path::String\nfilename::String: [OPTION] name of the output netcdf file\nwrite_restart::Bool: [OPTION] also write restart file if output==true?\npkg_version::VersionNumber\nstartdate::Dates.DateTime\noutput_dt::Float64: [OPTION] output frequency, time step [hrs]\noutput_vars::Vector{Symbol}: [OPTION] which variables to output, u, v, vor, div, pres, temp, humid\nmissing_value::Union{Float32, Float64}: [OPTION] missing value to be used in netcdf output\ncompression_level::Int64: [OPTION] lossless compression level; 1=low but fast, 9=high but slow\nkeepbits::SpeedyWeather.Keepbits: [OPTION] mantissa bits to keep for every variable\noutput_every_n_steps::Int64\ntimestep_counter::Int64\noutput_counter::Int64\nnetcdf_file::Union{Nothing, NetCDF.NcFile}\ninput_Grid::Type{<:SpeedyWeather.RingGrids.AbstractGrid}\nas_matrix::Bool: [OPTION] sort grid points into a matrix (interpolation-free), for OctahedralClenshawGrid, OctaHEALPixGrid only\nquadrant_rotation::NTuple{4, Int64}\nmatrix_quadrant::NTuple{4, Tuple{Int64, Int64}}\noutput_Grid::Type{<:SpeedyWeather.RingGrids.AbstractFullGrid}: [OPTION] the grid used for output, full grids only\nnlat_half::Int64: [OPTION] the resolution of the output grid, default: same nlat_half as in the dynamical core\nnlon::Int64\nnlat::Int64\nnpoints::Int64\nnlev::Int64\ninterpolator::SpeedyWeather.RingGrids.AbstractInterpolator\nu::Matrix{NF} where NF<:Union{Float32, Float64}\nv::Matrix{NF} where NF<:Union{Float32, Float64}\nvor::Matrix{NF} where NF<:Union{Float32, Float64}\ndiv::Matrix{NF} where NF<:Union{Float32, Float64}\ntemp::Matrix{NF} where NF<:Union{Float32, Float64}\npres::Matrix{NF} where NF<:Union{Float32, Float64}\nhumid::Matrix{NF} where NF<:Union{Float32, Float64}\n\n\n\n\n\n","category":"type"},{"location":"functions/#Function-and-type-index","page":"Function and type index","title":"Function and type index","text":"","category":"section"},{"location":"functions/#Parameters-and-constants","page":"Function and type index","title":"Parameters and constants","text":"","category":"section"},{"location":"functions/","page":"Function and type index","title":"Function and type index","text":"SpeedyWeather.Parameters\nSpeedyWeather.Constants","category":"page"},{"location":"functions/#Boundaries-and-boundary-conditions","page":"Function and type index","title":"Boundaries and boundary conditions","text":"","category":"section"},{"location":"functions/","page":"Function and type index","title":"Function and type index","text":"SpeedyWeather.Boundaries","category":"page"},{"location":"functions/#Spherical-harmonic-transform","page":"Function and type index","title":"Spherical harmonic transform","text":"","category":"section"},{"location":"functions/","page":"Function and type index","title":"Function and type index","text":"SpeedyWeather.GeoSpectral\nSpeedyWeather.SpectralTransform\nSpeedyWeather.spectral\nSpeedyWeather.spectral!\nSpeedyWeather.gridded\nSpeedyWeather.gridded!\nSpeedyWeather.triangular_truncation\nSpeedyWeather.roundup_fft\nSpeedyWeather.spectral_truncation\nSpeedyWeather.spectral_truncation!\nSpeedyWeather.spectral_interpolation!\nSpeedyWeather.get_legendre_polynomials!\nSpeedyWeather.∇²!\nSpeedyWeather.∇²\nSpeedyWeather.∇⁻²!\nSpeedyWeather.∇⁻²\nSpeedyWeather.gradient_latitude!\nSpeedyWeather.gradient_latitude\nSpeedyWeather.gradient_longitude!\nSpeedyWeather.gradient_longitude\nSpeedyWeather.divergence!\nSpeedyWeather.curl!\nSpeedyWeather._divergence!\nSpeedyWeather.curl_div!\nSpeedyWeather.UV_from_vordiv!\nSpeedyWeather.UV_from_vor!\nSpeedyWeather.ϵlm\nSpeedyWeather.get_recursion_factors","category":"page"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.SpectralTransform","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.SpectralTransform","text":"S = SpectralTransform{NF<:AbstractFloat}(...)\n\nSpectralTransform struct that contains all parameters and preallocated arrays for the spectral transform.\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.spectral","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.spectral","text":"alms = spectral( map::AbstractMatrix;\n Grid::Type{<:AbstractGrid}=DEFAULT_GRID,\n kwargs...)\n\nConverts map to grid(map) to execute spectral(map::AbstractGrid;kwargs...).\n\n\n\n\n\nalms = spectral( map::AbstractGrid;\n Grid::Type{<:AbstractGrid}=DEFAULT_GRID,\n kwargs...)\n\nConverts map to Grid(map) to execute spectral(map::AbstractGrid;kwargs...).\n\n\n\n\n\nalms = spectral( map::AbstractMatrix;\n Grid::Type{<:AbstractGrid}=DEFAULT_GRID,\n kwargs...)\n\nSpectral transform (grid to spectral) map to grid(map) to execute spectral(map::AbstractGrid;kwargs...).\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.spectral!","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.spectral!","text":"spectral!( alms::LowerTriangularMatrix,\n map::AbstractGrid,\n S::SpectralTransform)\n\nSpectral transform (grid to spectral space) from the gridded field map on a grid<:AbstractGrid to a LowerTriangularMatrix of spherical harmonic coefficients alms. Uses FFT in the zonal direction, and a Legendre Transform in the meridional direction exploiting symmetries. The spectral transform is number format-flexible as long as the parametric types of map, alms, S are identical. The spectral transform is grid-flexible as long as the typeof(map)<:AbstractGrid. Uses the precalculated arrays, FFT plans and other constants in the SpectralTransform struct S.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.gridded","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.gridded","text":"map = gridded( alms::AbstractMatrix;\n recompute_legendre::Bool=true,\n grid::Type{<:AbstractGrid}=DEFAULT_GRID)\n\nSpectral transform (spectral to grid space) from spherical coefficients alms to a newly allocated gridded field map. Based on the size of alms the grid type grid, the spatial resolution is retrieved based on the truncation defined for grid. SpectralTransform struct S is allocated to execute gridded(alms,S).\n\n\n\n\n\nmap = gridded( alms::AbstractMatrix,\n S::SpectralTransform)\n\nSpectral transform (spectral to grid space) from spherical coefficients alms to a newly allocated gridded field map with precalculated properties based on the SpectralTransform struct S. alms is converted to a LowerTriangularMatrix to execute the in-place gridded!.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.gridded!","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.gridded!","text":"gridded!(\n diagn::DiagnosticVariables,\n progn::PrognosticVariables,\n lf::Int64,\n model::SpeedyWeather.ModelSetup\n)\n\n\nPropagate the spectral state of progn to diagn using time step/leapfrog index lf. Function barrier that calls gridded! for the respective model.\n\n\n\n\n\ngridded!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n progn::SpeedyWeather.PrognosticLayerTimesteps,\n lf::Int64,\n model::Barotropic\n)\n\n\nPropagate the spectral state of the prognostic variables progn to the diagnostic variables in diagn for the barotropic vorticity model. Updates grid vorticity, spectral stream function and spectral and grid velocities u,v.\n\n\n\n\n\ngridded!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n progn::SpeedyWeather.PrognosticLayerTimesteps,\n lf::Int64,\n model::ShallowWater\n)\n\n\nPropagate the spectral state of the prognostic variables progn to the diagnostic variables in diagn for the shallow water model. Updates grid vorticity, grid divergence, grid interface displacement (pres_grid) and the velocities u,v.\n\n\n\n\n\ngridded!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n progn::SpeedyWeather.PrognosticLayerTimesteps,\n lf::Int64,\n model::PrimitiveEquation\n)\n\n\nPropagate the spectral state of the prognostic variables progn to the diagnostic variables in diagn for primitive equation models. Updates grid vorticity, grid divergence, grid temperature, pressure (pres_grid) and the velocities u,v.\n\n\n\n\n\ngridded!( map::AbstractGrid,\n alms::LowerTriangularMatrix,\n S::SpectralTransform)\n\nSpectral transform (spectral to grid) of the spherical harmonic coefficients alms to a gridded field map. The spectral transform is number format-flexible as long as the parametric types of map, alms, S are identical. The spectral transform is grid-flexible as long as the typeof(map)<:AbstractGrid. Uses the precalculated arrays, FFT plans and other constants in the SpectralTransform struct S.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.spectral_truncation","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.spectral_truncation","text":"alms_trunc = spectral_truncation(alms,trunc)\n\nReturns a spectral coefficient matrix alms_trunc that is truncated from alms to the size (trunc+1)². alms_trunc only contains those coefficient of alms for which m,l ≤ trunc, and l ≥ m are zero anyway. If trunc is larger than the implicit truncation in alms obtained from its size than spectral_interpolation is automatically called instead, returning alms_interp, a coefficient matrix that is larger than alms with padded zero coefficients.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.spectral_truncation!","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.spectral_truncation!","text":"spectral_truncation!(alms::AbstractMatrix,ltrunc::Integer,mtrunc::Integer)\n\nTruncate spectral coefficients alms in-place by setting (a) the upper right triangle to zero and (b) all coefficients for which the degree l is larger than the truncation ltrunc or order m larger than the truncaction mtrunc.\n\n\n\n\n\nspectral_truncation!(alms::LowerTriangularMatrix,ltrunc::Integer,mtrunc::Integer)\n\nTruncate spectral coefficients alms in-place by setting all coefficients for which the degree l is larger than the truncation ltrunc or order m larger than the truncaction mtrunc. Similar to spectral_truncation!(::AbstractMatrix, ...) but skips the upper triangle which is zero by design for LowerTriangularMatrix.\n\n\n\n\n\nspectral_truncation!(alms,trunc)\n\nTruncate spectral coefficients alms in-place by setting (a) the upper right triangle to zero and (b) all coefficients for which the degree l is larger than the truncation trunc.\n\n\n\n\n\nspectral_truncation!(alms)\n\nTruncate spectral coefficients alms in-place by setting the upper right triangle to zero. This is to enforce that all coefficients for which the degree l is larger than order m are zero.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.∇²!","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.∇²!","text":"∇²!( ∇²alms::LowerTriangularMatrix,\n alms::LowerTriangularMatrix,\n S::SpectralTransform;\n add::Bool=false,\n flipsign::Bool=false,\n inverse::Bool=false)\n\nLaplace operator ∇² applied to the spectral coefficients alms in spherical coordinates. The radius R is omitted in the eigenvalues which are precomputed in S. ∇²! is the in-place version which directly stores the output in the first argument ∇²alms.\n\nKeyword arguments\n\nadd=true adds the ∇²(alms) to the output\nflipsign=true computes -∇²(alms) instead\ninverse=true computes ∇⁻²(alms) instead\n\nDefault is add=false, flipsign=false, inverse=false. These options can be combined.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.∇⁻²!","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.∇⁻²!","text":"∇⁻²!( ∇⁻²alms::LowerTriangularMatrix,\n alms::LowerTriangularMatrix,\n S::SpectralTransform;\n add::Bool=false,\n flipsign::Bool=false)\n\nCalls ∇²!(∇⁻²alms, alms, S; add, flipsign, inverse=true).\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.divergence!","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.divergence!","text":"divergence!(div::LowerTriangularMatrix,\n u::LowerTriangularMatrix,\n v::LowerTriangularMatrix,\n S::SpectralTransform{NF};\n flipsign::Bool=false,\n add::Bool=false,\n )\n\nDivergence of a vector u,v written into div, div = ∇⋅(u,v). u,v are expected to have a 1/coslat-scaling included, then div is not scaled. flipsign option calculates -∇⋅(u,v) instead. add option calculates div += ∇⋅(u,v) instead. flipsign and add can be combined. This functions only creates the kernel and calls the generic divergence function _divergence! subsequently.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.curl!","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.curl!","text":"curl!( curl::LowerTriangularMatrix,\n u::LowerTriangularMatrix,\n v::LowerTriangularMatrix,\n S::SpectralTransform;\n flipsign::Bool=false,\n add::Bool=false,\n )\n\nCurl of a vector u,v written into curl, curl = ∇×(u,v). u,v are expected to have a 1/coslat-scaling included, then curl is not scaled. flipsign option calculates -∇×(u,v) instead. add option calculates curl += ∇×(u,v) instead. flipsign and add can be combined. This functions only creates the kernel and calls the generic divergence function _divergence! subsequently with flipped u,v -> v,u for the curl.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.UV_from_vordiv!","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.UV_from_vordiv!","text":"UV_from_vordiv!(U::LowerTriangularMatrix,\n V::LowerTriangularMatrix,\n vor::LowerTriangularMatrix,\n div::LowerTriangularMatrix,\n S::SpectralTransform)\n\nGet U,V (=(u,v)*coslat) from vorticity ζ and divergence D in spectral space. Two operations are combined into a single linear operation. First, invert the spherical Laplace ∇² operator to get stream function from vorticity and velocity potential from divergence. Then compute zonal and meridional gradients to get U,V.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.UV_from_vor!","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.UV_from_vor!","text":"UV_from_vor!( U::LowerTriangularMatrix,\n V::LowerTriangularMatrix,\n vor::LowerTriangularMatrix,\n S::SpectralTransform)\n\nGet U,V (=(u,v)*coslat) from vorticity ζ spectral space (divergence D=0) Two operations are combined into a single linear operation. First, invert the spherical Laplace ∇² operator to get stream function from vorticity. Then compute zonal and meridional gradients to get U,V.\n\n\n\n\n\n","category":"function"},{"location":"functions/#Dynamics","page":"Function and type index","title":"Dynamics","text":"","category":"section"},{"location":"functions/","page":"Function and type index","title":"Function and type index","text":"SpeedyWeather.bernoulli_potential!\nSpeedyWeather.volume_flux_divergence!\nSpeedyWeather.vorticity_fluxes!\nSpeedyWeather.vorticity_flux_curl!\nSpeedyWeather.vorticity_flux_divergence!","category":"page"},{"location":"functions/#SpeedyWeather.bernoulli_potential!","page":"Function and type index","title":"SpeedyWeather.bernoulli_potential!","text":"bernoulli_potential!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF},\n S::SpectralTransform\n) -> LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat\n\n\nComputes the Laplace operator ∇² of the Bernoulli potential B in spectral space.\n\ncomputes the kinetic energy KE = ½(u²+v²) on the grid\ntransforms KE to spectral space\nadds geopotential for the Bernoulli potential in spectral space\ntakes the Laplace operator.\n\nThis version is used for both ShallowWater and PrimitiveEquation, only the geopotential calculation in geopotential! differs.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.volume_flux_divergence!","page":"Function and type index","title":"SpeedyWeather.volume_flux_divergence!","text":"volume_flux_divergence!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n surface::SpeedyWeather.SurfaceVariables,\n orog::SpeedyWeather.AbstractOrography,\n constants::DynamicsConstants,\n G::Geometry,\n S::SpectralTransform\n)\n\n\nComputes the (negative) divergence of the volume fluxes uh,vh for the continuity equation, -∇⋅(uh,vh).\n\n\n\n\n\n","category":"function"},{"location":"functions/#Geometry","page":"Function and type index","title":"Geometry","text":"","category":"section"},{"location":"functions/","page":"Function and type index","title":"Function and type index","text":"SpeedyWeather.Geometry\nSpeedyWeather.vertical_coordinates\nSpeedyWeather.GenLogisticCoefs\nSpeedyWeather.generalised_logistic","category":"page"},{"location":"functions/#SpeedyWeather.Geometry","page":"Function and type index","title":"SpeedyWeather.Geometry","text":"Construct Geometry struct containing parameters and arrays describing an iso-latitude grid <:AbstractGrid and the vertical levels. Pass on SpectralGrid to calculate the following fields\n\nspectral_grid::SpectralGrid: SpectralGrid that defines spectral and grid resolution\nGrid::Type{<:SpeedyWeather.RingGrids.AbstractGrid}: grid of the dynamical core Default: spectral_grid.Grid\nnlat_half::Int64: resolution parameter nlathalf of Grid, # of latitudes on one hemisphere (incl Equator) Default: spectralgrid.nlat_half\nnlon_max::Int64: maximum number of longitudes (at/around Equator) Default: getnlonmax(Grid, nlat_half)\nnlon::Int64: =nlonmax, same (used for compatibility), TODO: still needed? Default: nlonmax\nnlat::Int64: number of latitude rings Default: getnlat(Grid, nlathalf)\nnlev::Int64: number of vertical levels Default: spectral_grid.nlev\nnpoints::Int64: total number of grid points Default: spectral_grid.npoints\nradius::AbstractFloat: Planet's radius [m] Default: spectral_grid.radius\nlatd::Vector{Float64}: array of latitudes in degrees (90˚...-90˚) Default: getlatd(Grid, nlathalf)\nlond::Vector{Float64}: array of longitudes in degrees (0...360˚), empty for non-full grids Default: getlond(Grid, nlathalf)\nlonds::Vector{NF} where NF<:AbstractFloat: longitude (-180˚...180˚) for each grid point in ring order Default: (getlatdlonds(Grid, nlathalf))[2]\nlatds::Vector{NF} where NF<:AbstractFloat: latitude (-90˚...˚90) for each grid point in ring order Default: (getlatdlonds(Grid, nlathalf))[1]\nsinlat::Vector{NF} where NF<:AbstractFloat: sin of latitudes Default: sind.(latd)\ncoslat::Vector{NF} where NF<:AbstractFloat: cos of latitudes Default: cosd.(latd)\ncoslat⁻¹::Vector{NF} where NF<:AbstractFloat: = 1/cos(lat) Default: 1 ./ coslat\ncoslat²::Vector{NF} where NF<:AbstractFloat: = cos²(lat) Default: coslat .^ 2\ncoslat⁻²::Vector{NF} where NF<:AbstractFloat: # = 1/cos²(lat) Default: 1 ./ coslat²\nσ_levels_half::Vector{NF} where NF<:AbstractFloat: σ at half levels, σk+1/2 Default: spectralgrid.verticalcoordinates.σhalf\nσ_levels_full::Vector{NF} where NF<:AbstractFloat: σ at full levels, σₖ Default: 0.5 * (σlevelshalf[2:end] + σlevelshalf[1:end - 1])\nσ_levels_thick::Vector{NF} where NF<:AbstractFloat: σ level thicknesses, σₖ₊₁ - σₖ Default: σlevelshalf[2:end] - σlevelshalf[1:end - 1]\nln_σ_levels_full::Vector{NF} where NF<:AbstractFloat: log of σ at full levels, include surface (σ=1) as last element Default: log.(vcat(σlevelsfull, 1))\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.GenLogisticCoefs","page":"Function and type index","title":"SpeedyWeather.GenLogisticCoefs","text":"Coefficients of the generalised logistic function to describe the vertical coordinate. Default coefficients A,K,C,Q,B,M,ν are fitted to the old L31 configuration at ECMWF.\n\nFollowing the notation of https://en.wikipedia.org/wiki/Generalisedlogisticfunction (Dec 15 2021).\n\nChange default parameters for more/fewer levels in the stratosphere vs troposphere vs boundary layer.\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.generalised_logistic","page":"Function and type index","title":"SpeedyWeather.generalised_logistic","text":"Generalised logistic function based on the coefficients in coefs.\n\n\n\n\n\n","category":"function"},{"location":"functions/#Time-stepping","page":"Function and type index","title":"Time stepping","text":"","category":"section"},{"location":"functions/","page":"Function and type index","title":"Function and type index","text":"SpeedyWeather.time_stepping!\nSpeedyWeather.timestep!\nSpeedyWeather.first_timesteps!\nSpeedyWeather.leapfrog!","category":"page"},{"location":"functions/#SpeedyWeather.time_stepping!","page":"Function and type index","title":"SpeedyWeather.time_stepping!","text":"time_stepping!(\n progn::PrognosticVariables,\n diagn::DiagnosticVariables,\n model::SpeedyWeather.ModelSetup\n) -> PrognosticVariables\n\n\nMain time loop that that initializes output and feedback, loops over all time steps and calls the output and feedback functions.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.timestep!","page":"Function and type index","title":"SpeedyWeather.timestep!","text":"timestep!(\n progn::PrognosticVariables,\n diagn::DiagnosticVariables,\n time::Dates.DateTime,\n dt::Real,\n i::Integer,\n model::Barotropic\n)\ntimestep!(\n progn::PrognosticVariables,\n diagn::DiagnosticVariables,\n time::Dates.DateTime,\n dt::Real,\n i::Integer,\n model::Barotropic,\n lf1::Int64\n)\ntimestep!(\n progn::PrognosticVariables,\n diagn::DiagnosticVariables,\n time::Dates.DateTime,\n dt::Real,\n i::Integer,\n model::Barotropic,\n lf1::Int64,\n lf2::Int64\n)\n\n\nCalculate a single time step for the model <: Barotropic.\n\n\n\n\n\ntimestep!(\n progn::PrognosticVariables{NF<:AbstractFloat},\n diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},\n time::Dates.DateTime,\n dt::Real,\n i::Integer,\n model::ShallowWater\n) -> SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat\ntimestep!(\n progn::PrognosticVariables{NF<:AbstractFloat},\n diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},\n time::Dates.DateTime,\n dt::Real,\n i::Integer,\n model::ShallowWater,\n lf1::Int64\n) -> SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat\ntimestep!(\n progn::PrognosticVariables{NF<:AbstractFloat},\n diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},\n time::Dates.DateTime,\n dt::Real,\n i::Integer,\n model::ShallowWater,\n lf1::Int64,\n lf2::Int64\n) -> SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat\n\n\nCalculate a single time step for the model <: ShallowWater.\n\n\n\n\n\ntimestep!(\n progn::PrognosticVariables{NF<:AbstractFloat},\n diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},\n time::Dates.DateTime,\n dt::Real,\n i::Integer,\n model::PrimitiveEquation\n) -> Any\ntimestep!(\n progn::PrognosticVariables{NF<:AbstractFloat},\n diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},\n time::Dates.DateTime,\n dt::Real,\n i::Integer,\n model::PrimitiveEquation,\n lf1::Int64\n) -> Any\ntimestep!(\n progn::PrognosticVariables{NF<:AbstractFloat},\n diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},\n time::Dates.DateTime,\n dt::Real,\n i::Integer,\n model::PrimitiveEquation,\n lf1::Int64,\n lf2::Int64\n) -> Any\n\n\nCalculate a single time step for the model<:PrimitiveEquation\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.first_timesteps!","page":"Function and type index","title":"SpeedyWeather.first_timesteps!","text":"first_timesteps!(\n progn::PrognosticVariables,\n diagn::DiagnosticVariables,\n clock::SpeedyWeather.Clock,\n model::SpeedyWeather.ModelSetup,\n output::SpeedyWeather.AbstractOutputWriter\n) -> typeof(time)\n\n\nPerforms the first two initial time steps (Euler forward, unfiltered leapfrog) to populate the prognostic variables with two time steps (t=0,Δt) that can then be used in the normal leap frogging.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.leapfrog!","page":"Function and type index","title":"SpeedyWeather.leapfrog!","text":"leapfrog!(\n A_old::LowerTriangularMatrix{Complex{NF<:AbstractFloat}},\n A_new::LowerTriangularMatrix{Complex{NF<:AbstractFloat}},\n tendency::LowerTriangularMatrix{Complex{NF<:AbstractFloat}},\n dt::Real,\n lf::Int64,\n L::Leapfrog{NF<:AbstractFloat}\n)\n\n\nPerforms one leapfrog time step with (lf=2) or without (lf=1) Robert+William's filter (see William (2009), Montly Weather Review, Eq. 7-9).\n\n\n\n\n\n","category":"function"},{"location":"functions/#Longwave-radiation","page":"Function and type index","title":"Longwave radiation","text":"","category":"section"},{"location":"functions/","page":"Function and type index","title":"Function and type index","text":"SpeedyWeather.radset!\nSpeedyWeather.radlw_down!\nSpeedyWeather.compute_bbe!\nSpeedyWeather.radlw_up!","category":"page"},{"location":"functions/#Shortwave-radiation","page":"Function and type index","title":"Shortwave radiation","text":"","category":"section"},{"location":"functions/","page":"Function and type index","title":"Function and type index","text":"SpeedyWeather.shortwave_radiation!\nSpeedyWeather.solar!\nSpeedyWeather.sol_oz!\nSpeedyWeather.cloud!\nSpeedyWeather.radsw!","category":"page"},{"location":"parametrizations/#Parameterizations","page":"Parameterizations","title":"Parameterizations","text":"","category":"section"},{"location":"parametrizations/","page":"Parameterizations","title":"Parameterizations","text":"This page describes the mathematical formulation of the parameterizations used in SpeedyWeather.jl to represent physical processes in the atmopshere. Every section is followed by a brief description of implementation details.","category":"page"},{"location":"parametrizations/#Convection","page":"Parameterizations","title":"Convection","text":"","category":"section"},{"location":"parametrizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"parametrizations/#Large-scale-condensation","page":"Parameterizations","title":"Large-scale condensation","text":"","category":"section"},{"location":"parametrizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"parametrizations/#Clouds","page":"Parameterizations","title":"Clouds","text":"","category":"section"},{"location":"parametrizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"parametrizations/#Short-wave-radiation","page":"Parameterizations","title":"Short-wave radiation","text":"","category":"section"},{"location":"parametrizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"parametrizations/#Long-wave-radiation","page":"Parameterizations","title":"Long-wave radiation","text":"","category":"section"},{"location":"parametrizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"parametrizations/#Surface-fluxes-of-momentum-and-energy","page":"Parameterizations","title":"Surface fluxes of momentum and energy","text":"","category":"section"},{"location":"parametrizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"parametrizations/#Vertical-diffusion","page":"Parameterizations","title":"Vertical diffusion","text":"","category":"section"},{"location":"parametrizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"how_to_run_speedy/#How-to-run-SpeedyWeather.jl","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"","category":"section"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"The simplest way to run SpeedyWeather.jl with default parameters is","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"using SpeedyWeather\nrun_speedy()","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"Hooray, you have just simulated the Earth's atmosphere. Parameters, their meanings and defaults are documented in Parameters. For example, if you want to run the primitive equation dry core (no humidity) simulation in double precision (Float64), at higher resolution (trunc, the triangular spectral truncation), slow down the rotation of the Earth (rotation in s^-1), and create some netCDF ouput, do","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"run_speedy(Float64,PrimitiveDry,trunc=42,planet=Earth(rotation=1e-5),output=true)","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"If provided, the number format has to be the first argument, the model (Barotropic, ShallowWater, PrimitiveDry, PrimitiveWet are available) the second, and all other arguments are keyword arguments.","category":"page"},{"location":"how_to_run_speedy/#The-run_speedy-interface","page":"How to run SpeedyWeather.jl","title":"The run_speedy interface","text":"","category":"section"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"run_speedy","category":"page"},{"location":"how_to_run_speedy/#SpeedyWeather.run_speedy","page":"How to run SpeedyWeather.jl","title":"SpeedyWeather.run_speedy","text":"progn_vars = run_speedy(NF,Model;kwargs...) or\nprogn_vars = run_speedy(NF;kwargs...) or\nprogn_vars = run_speedy(Model;kwargs...)\n\nRuns SpeedyWeather.jl with number format NF and the model Model and any additional parameters in the keyword arguments kwargs.... Unspecified parameters use the default values.\n\n\n\n\n\n","category":"function"},{"location":"how_to_run_speedy/#The-initialize_speedy-interface","page":"How to run SpeedyWeather.jl","title":"The initialize_speedy interface","text":"","category":"section"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"initialize_speedy","category":"page"},{"location":"speedytransforms/#SpeedyTransforms","page":"Submodule: SpeedyTransforms","title":"SpeedyTransforms","text":"","category":"section"},{"location":"speedytransforms/","page":"Submodule: SpeedyTransforms","title":"Submodule: SpeedyTransforms","text":"SpeedyTransforms is a submodule that has been developed for SpeedyWeather.jl which is technically independent (SpeedyWeather.jl however imports it) and can also be used without running simulations. It is just not put into its own respective repository.","category":"page"},{"location":"speedytransforms/#Functions","page":"Submodule: SpeedyTransforms","title":"Functions","text":"","category":"section"},{"location":"grids/#Grids","page":"Grids","title":"Grids","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"The spectral transform (the Spherical Harmonic Transform) in SpeedyWeather.jl supports any ring-based equi-longitude grid. Several grids are already implemented but other can be added. The following pages will describe an overview of these grids and but let's start but how they can be used","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"julia> spectral_grid = SpectralGrid(Grid = FullGaussianGrid)\nSpectralGrid:\n Spectral: T31 LowerTriangularMatrix{Complex{Float32}}, radius = 6.371e6 m\n Grid: 4608-element, 48-ring FullGaussianGrid{Float32} (quadratic)\n Resolution: 333km (average)\n Vertical: 8-level SigmaCoordinates","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"The life of every SpeedyWeather.jl simulation starts with a SpectralGrid object which defines the resolution in spectral and in grid-point space. The generator SpectralGrid() can take as a keyword argument Grid which can be any of the grids described below. The resolution of the grid, however, is not directly chosen, but determined from the spectral resolution trunc and the dealiasing factor. More in Matching spectral and grid resolution.","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"info: RingGrids is a module too!\nWhile RingGrids is the underlying module that SpeedyWeather.jl uses for data structs on the sphere, the module can also be used independently of SpeedyWeather, for example to interpolate between data on different grids. See RingGrids","category":"page"},{"location":"grids/#Ring-based-equi-longitude-grids","page":"Grids","title":"Ring-based equi-longitude grids","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"SpeedyWeather.jl's spectral transform supports all ring-based equi-longitude grids. These grids have their grid points located on rings with constant latitude and on these rings the points are equi-spaced in longitude. There is technically no constrain on the spacing of the latitude rings, but the Legendre transform requires a quadrature to map those to spectral space and back. Common choices for latitudes are the Gaussian latitudes which use the Gaussian quadrature, or equi-angle latitudes (i.e. just regular latitudes but excluding the poles) that use the Clenshaw-Curtis quadrature. The longitudes have to be equi-spaced on every ring, which is necessary for the fast Fourier transform, as one would otherwise need to use a non-uniform Fourier transform. In SpeedyWeather.jl the first grid point on any ring can have a longitudinal offset though, for example by spacing 4 points around the globe at 45˚E, 135˚E, 225˚E, and 315˚E. In this case the offset is 45˚E as the first point is not at 0˚E.","category":"page"},{"location":"grids/#Implemented-grids","page":"Grids","title":"Implemented grids","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"All grids in SpeedyWeather.jl are a subtype of AbstractGrid, i.e. <: AbstractGrid. We further distinguish between full, and reduced grids. Full grids have the same number of longitude points on every latitude ring (i.e. points converge towards the poles) and reduced grids reduce the number of points towards the poles to have them more evenly spread out across the globe. More evenly does not necessarily mean that a grid is equal-area, meaning that every grid cell covers exactly the same area (although the shape changes).","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"Currently the following full grids <: AbstractFullGrid are implemented","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"FullGaussianGrid, a full grid with Gaussian latitudes\nFullClenshawGrid, a full grid with equi-angle latitudes","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"and additionally we have FullHEALPixGrid and FullOctaHEALPixGrid which are the full grid equivalents to the HEALPix grid and the OctaHEALPix grid discussed below. Full grid equivalent means that they have the same latitude rings, but no reduction in the number of points per ring towards the poles and no longitude offset. Other implemented reduced grids are","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"OctahedralGaussianGrid, a reduced grid with Gaussian latitudes based on an octahedron\nOctahedralClenshawGrid, similar but based on equi-angle latitudes\nHEALPixGrid, an equal-area grid based on a dodecahedron with 12 faces\nOctaHEALPixGrid, an equal-area grid from the class of HEALPix grids but based on an octahedron.","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"An overview of these grids is visualised here","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"(Image: Overview of implemented grids in SpeedyWeather.jl)","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"Visualised are each grid's grid points (white dots) and grid faces (white lines). All grids shown have 16 latitude rings on one hemisphere, Equator included. The total number of grid points is denoted in the top left of every subplot. The sphere is shaded with grey, orange and turquoise regions to denote the hemispheres in a and b, the 8 octahedral faces c, d,f and the 12 dodecahedral faces (or base pixels) in e. Coastlines are added for orientation.","category":"page"},{"location":"grids/#Grid-resolution","page":"Grids","title":"Grid resolution","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"All grids use the same resolution parameter nlat_half, i.e. the number of rings on one hemisphere, Equator included. The Gaussian grids (full and reduced) do not have a ring on the equator, so their total number of rings nlat is always even and twice nlat_half. Clenshaw-Curtis grids and the HEALPix grids have a ring on the equator such their total number of rings is always odd and one less than the Gaussian grids at the same nlat_half. ","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"info: HEALPix grids do not use Nside as resolution parameter\nThe original formulation for HEALPix grids use N_side, the number of grid points along the edges of each basepixel (8 in the figure above), SpeedyWeather.jl uses nlat_half, the number of rings on one hemisphere, Equator included, for all grids. This is done for consistency across grids. We may use N_side for the documentation or within functions though.","category":"page"},{"location":"grids/#Matching-spectral-and-grid-resolution","page":"Grids","title":"Matching spectral and grid resolution","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"A given spectral resolution can be matched to a variety of grid resolutions. A cubic grid, for example, combines a spectral truncation T with a grid resolution N (=nlat_half) such that T + 1 = N. Using T31 and an O32 is therefore often abbreviated as Tco31 meaning that the spherical harmonics are truncated at l_max=31 in combination with N=32, i.e. 64 latitude rings in total on an octahedral Gaussian grid.","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"Let J be the total number of rings. Then we have","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"T approx J for linear truncation\nfrac32T approx J for quadratic truncation\n2T approx J for cubic truncation","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"and in general fracm+12T approx J for m-th order truncation. So the higher the truncaction order the more grid points are used in combination with the same spectral resolution. A higher truncation order therefore makes all grid-point calculations more expensive, but can represent products of terms on the grid (which will have higher wavenumber components) to a higher accuracy as more grid points are available within a given wavelength. Using a sufficiently high truncation is therefore one way to avoid aliasing. In SpeedyWeather.jl the parameter dealiasing controls this option, = 1 would be linear, = 2 quadratic, = 3 cubic etc.","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"For now just a quick overview of how the grid resolution changes when dealiasing is passed onto SpectralGrid on the FullGaussianGrid","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"trunc dealiasing FullGaussianGrid size\n31 1 64x32\n31 2 96x48\n31 3 128x64\n42 1 96x48\n42 2 128x64\n42 3 192x96\n... ... ...","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"You will obtain this information every time you create a SpectralGrid(;Grid,trunc,dealiasing).","category":"page"},{"location":"grids/#Full-Gaussian-grid","page":"Grids","title":"Full Gaussian grid","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"...","category":"page"},{"location":"grids/#Full-Clenshaw-Curtis-grid","page":"Grids","title":"Full Clenshaw-Curtis grid","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"...","category":"page"},{"location":"grids/#Octahedral-Gaussian-grid","page":"Grids","title":"Octahedral Gaussian grid","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"...","category":"page"},{"location":"grids/#The-HEALPix-grid","page":"Grids","title":"The HEALPix grid","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"Technically, HEALPix grids are a class of grids that tessalate the sphere into faces that are often called basepixels. For each member of this class there are N_varphi basepixels in zonal direction and N_theta basepixels in meridional direction. For N_varphi = 4 and N_theta = 3 we obtain the classical HEALPix grid with N_varphi N_theta = 12 basepixels shown above in Implemented Grids. Each basepixel has a quadratic number of grid points in them. There's an equatorial zone where the number of zonal grid points is constant (always 2N, so 32 at N=16) and there are polar caps above and below the equatorial zone with the border at cos(theta) = 23 (theta in colatitudes).","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"Following Górski, 2004[1], the z=cos(theta) colatitude of the j-th ring in the north polar cap, j=1N_side with 2N_side = N is ","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"z = 1 - fracj^23N_side^2","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"and on that ring, the longitude phi of the i-th point (i is the in-ring-index) is at","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"phi = fracpi2j(i-tfrac12)","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"The in-ring index i goes from i=14 for the first (i.e. northern-most) ring, i=18 for the second ring and i = 14j for the j-th ring in the northern polar cap.","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"In the north equatorial belt j=N_side2N_side this changes to","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"z = frac43 - frac2j3N_side","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"and the longitudes change to (i is always i = 14N_side in the equatorial belt meaning the number of longitude points is constant here)","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"phi = fracpi2N_side(i - fracs2) quad s = (j - N_side + 1) mod 2","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"The modulo function comes in as there is an alternating longitudinal offset from the prime meridian (see Implemented grids). For the southern hemisphere the grid point locations can be obtained by mirror symmetry.","category":"page"},{"location":"grids/#Grid-cell-boundaries","page":"Grids","title":"Grid cell boundaries","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"The cell boundaries are obtained by setting i = k + 12 or i = k + 12 + j (half indices) into the equations above, such that z(phik), a function for the cosine of colatitude z of index k and the longitude phi is obtained. These are then (northern polar cap)","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"z = 1 - frack^23N_side^2left(fracpi2phi_tright)^2 quad z = 1 - frack^23N_side^2left(fracpi2phi_t - piright)^2","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"with phi_t = phi mod tfracpi2 and in the equatorial belt","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"z = frac23-frac4k3N_side pm frac8phi3pi","category":"page"},{"location":"grids/#OctaHEALPix-grid","page":"Grids","title":"OctaHEALPix grid","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"While the classic HEALPix grid is based on a dodecahedron, other choices for N_varphi and N_theta in the class of HEALPix grids will change the number of faces there are in zonal/meridional direction. With N_varphi = 4 and N_theta = 1 we obtain a HEALPix grid that is based on an octahedron, which has the convenient property that there are twice as many longitude points around the equator than there are latitude rings between the poles. This is a desirable for truncation as this matches the distances too, 2pi around the Equator versus pi between the poles. N_varphi = 6 N_theta = 2 or N_varphi = 8 N_theta = 3 are other possible choices for this, but also more complicated. See Górski, 2004[1] for further examples and visulations of these grids.","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"We call the N_varphi = 4 N_theta = 1 HEALPix grid the OctaHEALPix grid, which combines the equal-area property of the HEALPix grids with the octahedron that's also used in the OctahedralGaussianGrid or the OctahedralClenshawGrid. As N_theta = 1 there is no equatorial belt which simplifies the grid. The latitude of the j-th isolatitude ring on the OctaHEALPixGrid is defined by","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"z = 1 - fracj^2N^2","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"with j=1N, and similarly for the southern hemisphere by symmetry. On this grid N_side = N where N= nlat_half, the number of latitude rings on one hemisphere, Equator included, because each of the 4 basepixels spans from pole to pole and covers a quarter of the sphere. The longitudes with in-ring- index i = 14j are","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"phi = fracpi2j(i - tfrac12)","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"and again, the southern hemisphere grid points are obtained by symmetry.","category":"page"},{"location":"grids/#Grid-cell-boundaries-2","page":"Grids","title":"Grid cell boundaries","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"Similar to the grid cell boundaries for the HEALPix grid, the OctaHEALPix grid's boundaries are","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"z = 1 - frack^2N^2left(fracpi2phi_tright)^2 quad z = 1 - frack^2N^2left(fracpi2phi_t - piright)^2","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"The 3N_side^2 in the denominator of the HEALPix grid came simply N^2 for the OctaHEALPix grid and there's no separate equation for the equatorial belt (which doesn't exist in the OctaHEALPix grid).","category":"page"},{"location":"grids/#References","page":"Grids","title":"References","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"[1] Górski, Hivon, Banday, Wandelt, Hansen, Reinecke, Bartelmann, 2004. HEALPix: A FRAMEWORK FOR HIGH-RESOLUTION DISCRETIZATION AND FAST ANALYSIS OF DATA DISTRIBUTED ON THE SPHERE, The Astrophysical Journal. doi:10.1086/427976","category":"page"},{"location":"boundary_conditions/#Boundary-conditions","page":"Boundary conditions","title":"Boundary conditions","text":"","category":"section"},{"location":"boundary_conditions/","page":"Boundary conditions","title":"Boundary conditions","text":"This page describes the formulation of boundary conditions and their implementation.","category":"page"},{"location":"lowertriangularmatrices/#LowerTriangularMatrices","page":"Submodule: LowerTriangularMatrices","title":"LowerTriangularMatrices","text":"","category":"section"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"LowerTriangularMatrices is a submodule that has been developed for SpeedyWeather.jl which is technically independent (SpeedyWeather.jl however imports it and so does SpeedyTransforms) and can also be used without running simulations. It is just not put into its own respective repository.","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"This module defines LowerTriangularMatrix, a lower triangular matrix, which in contrast to LinearAlgebra.LowerTriangular does not store the entries above the diagonal. SpeedyWeather.jl uses LowerTriangularMatrix which is defined as a subtype of AbstractMatrix to store the spherical harmonic coefficients (see Spectral packing). ","category":"page"},{"location":"lowertriangularmatrices/#Creation-of-LowerTriangularMatrix","page":"Submodule: LowerTriangularMatrices","title":"Creation of LowerTriangularMatrix","text":"","category":"section"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"A LowerTriangularMatrix can be created using zeros,ones,rand, or randn","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"julia> using SpeedyWeather.LowerTriangularMatrices\n\njulia> L = rand(LowerTriangularMatrix{Float32},5,5)\n5×5 LowerTriangularMatrix{Float32}:\n 0.912744 0.0 0.0 0.0 0.0\n 0.0737592 0.230592 0.0 0.0 0.0\n 0.799679 0.0765255 0.888098 0.0 0.0\n 0.670835 0.997938 0.505276 0.492966 0.0\n 0.949321 0.193692 0.793623 0.152817 0.357968","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"or the undef initializor LowerTriangularMatrix{Float32}(undef,3,3). The element type is arbitrary though, you can use any type T too.","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"Alternatively, it can be created through conversion from Matrix, which drops the upper triangle entries and sets them to zero","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"julia> M = rand(Float16,3,3)\n3×3 Matrix{Float16}:\n 0.2222 0.694 0.3452\n 0.2158 0.04443 0.274\n 0.9746 0.793 0.6294\n\njulia> LowerTriangularMatrix(M)\n3×3 LowerTriangularMatrix{Float16}:\n 0.2222 0.0 0.0\n 0.2158 0.04443 0.0\n 0.9746 0.793 0.6294","category":"page"},{"location":"lowertriangularmatrices/#Indexing-LowerTriangularMatrix","page":"Submodule: LowerTriangularMatrices","title":"Indexing LowerTriangularMatrix","text":"","category":"section"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"LowerTriangularMatrix supports two types of indexing: 1) by denoting two indices, column and row [l,m] or 2) by denoting a single index [lm]. The double index works as expected","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"julia> L\n3×3 LowerTriangularMatrix{Float16}:\n 0.1499 0.0 0.0\n 0.1177 0.478 0.0\n 0.1709 0.756 0.3223\n\njulia> L[2,2]\nFloat16(0.478)","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"But the single index skips the zero entries in the upper triangle, i.e.","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"julia> L[4]\nFloat16(0.478)","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"which, important, is different from single indices of an AbstractMatrix","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"julia> Matrix(L)[4]\nFloat16(0.0)","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"In performance-critical code a single index should be used, as this directly maps to the index of the underlying data vector. The double index is somewhat slower as it first has to be converted to the corresponding single index.","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"Consequently, many loops in SpeedyWeather.jl are build with the following structure","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"n,m = size(L)\nij = 0\nfor j in 1:m\n for i in j:n\n ij += 1\n L[ij] = i+j\n end\nend","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"which loops over all lower triangle entries of L::LowerTriangularMatrix and the single index ij is simply counted up. However, one could also use [i,j] as indices in the loop body or to perform any calculation (i+j here). An iterator over all entries in the lower triangle can be created by","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"for ij in eachindex(L)\n # do something\nend","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"The setindex! functionality of matrixes will throw a BoundsError when trying to write into the upper triangle of a LowerTriangularMatrix, for example","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"julia> L[2,1] = 0 # valid index\n0\n\njulia> L[1,2] = 0 # invalid index in the upper triangle\nERROR: BoundsError: attempt to access 3×3 LowerTriangularMatrix{Float32} at index [1, 2]","category":"page"},{"location":"lowertriangularmatrices/#Linear-algebra-with-LowerTriangularMatrix","page":"Submodule: LowerTriangularMatrices","title":"Linear algebra with LowerTriangularMatrix","text":"","category":"section"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"The LowerTriangularMatrices module's main purpose is not linear algebra, and it's implementation may not be efficient, however, many operations work as expected","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"julia> L = rand(LowerTriangularMatrix{Float32},3,3)\n3×3 LowerTriangularMatrix{Float32}:\n 0.57649 0.0 0.0\n 0.348685 0.875371 0.0\n 0.881923 0.850552 0.998306\n\njulia> L + L\n3×3 LowerTriangularMatrix{Float32}:\n 1.15298 0.0 0.0\n 0.697371 1.75074 0.0\n 1.76385 1.7011 1.99661\n\njulia> L * L\n3×3 Matrix{Float32}:\n 0.332341 0.0 0.0\n 0.506243 0.766275 0.0\n 1.68542 1.59366 0.996616","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"Note, however, that the latter includes a conversion to Matrix, which is true for many operations, including inv or \\. Hence when trying to do more sophisticated linear algebra with LowerTriangularMatrix we quickly leave lower triangular-land and go back to normal matrix-land.","category":"page"},{"location":"lowertriangularmatrices/#Function-index","page":"Submodule: LowerTriangularMatrices","title":"Function index","text":"","category":"section"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"LowerTriangularMatrix\nLowerTriangularMatrices.ij2k\nBase.fill!(L::LowerTriangularMatrix{T}, x) where T\nLowerTriangularMatrices.eachharmonic","category":"page"},{"location":"lowertriangularmatrices/#SpeedyWeather.LowerTriangularMatrices.LowerTriangularMatrix","page":"Submodule: LowerTriangularMatrices","title":"SpeedyWeather.LowerTriangularMatrices.LowerTriangularMatrix","text":"L = LowerTriangularMatrix{T}(v::Vector{T},m::Int,n::Int)\n\nA lower triangular matrix implementation that only stores the non-zero entries explicitly. L<:AbstractMatrix although in general we have L[i] != Matrix(L)[i], the former skips zero entries, tha latter includes them.\n\n\n\n\n\n","category":"type"},{"location":"lowertriangularmatrices/#SpeedyWeather.LowerTriangularMatrices.ij2k","page":"Submodule: LowerTriangularMatrices","title":"SpeedyWeather.LowerTriangularMatrices.ij2k","text":"k = ij2k( i::Integer, # row index of matrix\n j::Integer, # column index of matrix\n m::Integer) # number of rows in matrix\n\nConverts the index pair i,j of an mxn LowerTriangularMatrix L to a single index k that indexes the same element in the corresponding vector that stores only the lower triangle (the non-zero entries) of L.\n\n\n\n\n\n","category":"function"},{"location":"lowertriangularmatrices/#Base.fill!-Union{Tuple{T}, Tuple{LowerTriangularMatrix{T}, Any}} where T","page":"Submodule: LowerTriangularMatrices","title":"Base.fill!","text":"fill!(L::LowerTriangularMatrix,x)\n\nFills the elements of L with x. Faster than fill!(::AbstractArray,x) as only the non-zero elements in L are assigned with x.\n\n\n\n\n\n","category":"method"},{"location":"lowertriangularmatrices/#SpeedyWeather.LowerTriangularMatrices.eachharmonic","page":"Submodule: LowerTriangularMatrices","title":"SpeedyWeather.LowerTriangularMatrices.eachharmonic","text":"unit_range = eachharmonic(L::LowerTriangular)\n\ncreates unit_range::UnitRange to loop over all non-zeros in a LowerTriangularMatrix L. Like eachindex but skips the upper triangle with zeros in L.\n\n\n\n\n\nunit_range = eachharmonic(Ls::LowerTriangularMatrix...)\n\ncreates unit_range::UnitRange to loop over all non-zeros in the LowerTriangularMatrices provided as arguments. Checks bounds first. All LowerTriangularMatrix's need to be of the same size. Like eachindex but skips the upper triangle with zeros in L.\n\n\n\n\n\n","category":"function"},{"location":"conventions/#Style-and-convention-guide","page":"Style and convention guide","title":"Style and convention guide","text":"","category":"section"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"In SpeedyWeather.jl we've been following the several conventions that are documented here.","category":"page"},{"location":"conventions/#Variable-naming","page":"Style and convention guide","title":"Variable naming","text":"","category":"section"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"The prognostic variables in spectral space are called","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":" vor # Vorticity of horizontal wind field\n div # Divergence of horizontal wind field\n temp # Absolute temperature [K]\n pres_surf # Logarithm of surface pressure [log(Pa)]\n humid # Specific humidity [g/kg]","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"their transforms into grid-point space get a _grid suffix, their tendencies a _tend suffix. Further derived diagnostic dynamic variables are","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":" u\n v\n geopot\n ...","category":"page"},{"location":"conventions/#Preallocation","page":"Style and convention guide","title":"Preallocation","text":"","category":"section"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"All arrays representing variables are preallocated and grouped into two structs","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":" Prog::PrognosticVariables\n Diag::DiagnosticVariables","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"The Diag struct contains further structs which represent the grid-point transformations of the prognostic variables and their tendencies.","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":" gridvars::GridVariables\n tendencies::Tendencies\n ...","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"Constant arrays are grouped into several structs","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"Boundaries","category":"page"},{"location":"conventions/#Julian-conventions","page":"Style and convention guide","title":"Julian conventions","text":"","category":"section"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"We follow Julia's style guide and highlight here some important aspects of it.","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"Bang (!) convention. A function func does not change its input arguments, however, func! does.","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"Hence, func! is often the in-place version of func, avoiding as much memory allocation as possible and often changing its first argument, e.g. func!(out,in) so that argument in is used to calculate out which has been preallocated before function call.","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"Number format flexibility. Numeric literals such as 2.0 or 1/3 are only used in the model setup","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"but avoided throughout the code to obtain a fully number format-flexible package using the number format NF as a compile-time variable throughout the code. This often leads to overly specific code whereas a Real would generally suffice. However, this is done to avoid any implicit type conversions.","category":"page"},{"location":"extending/#New-model-setups","page":"Extending SpeedyWeather","title":"New model setups","text":"","category":"section"},{"location":"extending/","page":"Extending SpeedyWeather","title":"Extending SpeedyWeather","text":"more to come...","category":"page"},{"location":"dynamical_core/#Dynamical-core","page":"Dynamical core","title":"Dynamical core","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"A mathematical and implementation-specific description of the dynamical core used in SpeedyWeather.jl. We start by describing the barotropic vorticity equations which is one set of equations that SpeedyWeather.jl can solve (see How to run SpeedyWeather.jl) as many details therein also apply to the Shallow water equations and Primitive equations explained thereafter.","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"The dynamical core presented here largely follows the idealized models with spectral dynamics developed at the Geophysical Fluid Dynamics Laboratory[1]: A barotropic vorticity model[2], a shallow water model [3] and a primitive equation model[4]. ","category":"page"},{"location":"dynamical_core/#Barotropic-vorticity-equation","page":"Dynamical core","title":"Barotropic vorticity equation","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"The barotropic vorticity equation is the prognostic equation that describes the time evolution of relative vorticity zeta with advection, Coriolis force and diffusion in a single global layer on the sphere.","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"fracpartial zetapartial t + nabla cdot (mathbfu(zeta + f)) =\nnabla times mathbfF + (-1)^n+1nunabla^2nzeta","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"with time t, velocity vector mathbfu = (u v), Coriolis parameter f, and hyperdiffusion (-1)^n+1 nu nabla^2n zeta (n is the hyperdiffusion order; see Horizontal diffusion). We also include a forcing vector mathbfF = (F_uF_v) which acts on the zonal velocity u and the meridional velocity v and hence its curl nabla times mathbfF is a tendency for relative vorticity zeta.","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"Starting with some relative vorticity zeta, the Laplacian is inverted to obtain the stream function Psi","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"Psi = nabla^-2zeta","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"The zonal velocity u and meridional velocity v are then the (negative) meridional gradient and zonal gradient of Psi","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"beginaligned\nu = -frac1R fracpartial Psipartial theta \nv = frac1Rcos(theta) fracpartial Psipartial phi \nendaligned","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"which is described in Derivatives in spherical coordinates.","category":"page"},{"location":"dynamical_core/#Algorithm","page":"Dynamical core","title":"Algorithm","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"We briefly outline the algorithm that SpeedyWeather.jl uses in order to integrate the barotropic vorticity equation. As an intial step","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"0. Start with initial conditions of zeta_lm in spectral space and transform this model state to grid-point space:","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"Invert the Laplacian to obtain the stream function Psi_lm in spectral space\nobtain zonal velocity (cos(theta)u)_lm through a Meridional derivative\nobtain meridional velocity (cos(theta)v)_lm through a Zonal derivative\nTransform zonal and meridional velocity (cos(theta)u)_lm, (cos(theta)v)_lm to grid-point space\nUnscale the cos(theta) factor to obtain uv\nTransform zeta_lm to zeta in grid-point space","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"Now loop over","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"Compute the forcing vector mathbfF = (F_uF_v) for u and v\nMultiply uv with zeta+f in grid-point space\nAdd A = F_u + v(zeta + f) and B = F_v - u(zeta + f)\nTransform these vector components to spectral space A_lm, B_lm\nCompute the curl of (AB)_lm in spectral space which is the tendency of zeta_lm\nCompute the Horizontal diffusion based on that tendency\nCompute a leapfrog time step as described in Time integration\nTransform the spectral state of zeta_lm to grid-point uvzeta as described in 0.\nPossibly do some output\nRepeat from 1.","category":"page"},{"location":"dynamical_core/#Shallow-water-equations","page":"Dynamical core","title":"Shallow water equations","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"beginaligned\nfracpartial zetapartial t + nabla cdot (mathbfu(zeta + f)) = (-1)^n+1nunabla^2nzeta \nfracpartial mathcalDpartial t - nabla times (mathbfu(zeta + f)) = -nabla^2(tfrac12(u^2 + v^2) + geta) + (-1)^n+1nunabla^2nmathcalD \nfracpartial etapartial t + nabla cdot (mathbfuh) = 0\nendaligned","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"more to come","category":"page"},{"location":"dynamical_core/#Primitive-equations","page":"Dynamical core","title":"Primitive equations","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"The primitive equations solved by SpeedyWeather.jl are","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"beginaligned\npartial_t u = \npartial_t v = \npartial_t T = \npartial_t Q = \nendaligned","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"more to come","category":"page"},{"location":"dynamical_core/#Horizontal-diffusion","page":"Dynamical core","title":"Horizontal diffusion","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"In SpeedyWeather.jl we use hyerdiffusion through an n-th power Laplacian (-1)^n+1nabla^2n (hyper when n1) which can be implemented as a multiplication of the spectral coefficients Psi_lm with (-l(l+1))^nR^-2n (see spectral Laplacian) It is therefore computationally not more expensive to apply hyperdiffusion over diffusion as the (-l(l+1))^nR^-2n can be precomputed. Note the sign change (-1)^n+1 here is such that the dissipative nature of the diffusion operator is retained for n odd and even.","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"In SpeedyWeather.jl the diffusion is applied implicitly. For that, consider a leapfrog scheme with time step Delta t of variable zeta to obtain from time steps i-1 and i, the next time step i+1","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"zeta_i+1 = zeta_i-1 + 2Delta t dzeta","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"with dzeta being some tendency evaluated from zeta_i. Now we want to add a diffusion term (-1)^n+1nu nabla^2nzeta with viscosity nu, wich however, is implicitly calculated from zeta_i+1, then","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"zeta_i+1 = zeta_i-1 + 2Delta t (dzeta + (-1)^n+1 nunabla^2nzeta_i+1)","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"As the application of (-1)^n+1nunabla^2n is, for every spectral mode, equivalent to a multiplication of a constant, we can rewrite this to","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"zeta_i+1 = fraczeta_i-1 + 2Delta t dzeta1 - 2Delta (-1)^n+1nunabla^2n","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"and expand the numerator to","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"zeta_i+1 = zeta_i-1 + 2Delta t fracdzeta + (-1)^n+1 nunabla^2nzeta_i-11 - 2Delta t (-1)^n+1nu nabla^2n","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"Hence the diffusion can be applied implicitly by updating the tendency dzeta as","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"dzeta to fracdzeta + (-1)^n+1nunabla^2nzeta_i-11 - 2Delta t nu nabla^2n","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"which only depends on zeta_i-1. Now let D_textexplicit = (-1)^n+1nunabla^2n be the explicit part and D_textimplicit = 1 - (-1)^n+1 2Delta t nunabla^2n the implicit part. Both parts can be precomputed and are D_textimplicit = 1 - 2Delta t nunabla^2n the implicit part. Both parts can be precomputed and are only an element-wise multiplication in spectral space. For every spectral harmonic lm we do","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"dzeta to D_textimplicit^-1(dzeta + D_textexplicitzeta_i-1)","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"Hence 2 multiplications and 1 subtraction with precomputed constants. However, we will normalize the (hyper-)Laplacians as described in the following. This also will take care of the alternating sign such that the diffusion operation is dissipative regardless the power n.","category":"page"},{"location":"dynamical_core/#Normalization-of-diffusion","page":"Dynamical core","title":"Normalization of diffusion","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"In physics, the Laplace operator nabla^2 is often used to represent diffusion due to viscosity in a fluid. In that case, the viscosity coefficient is nu of units textm^2texts^-1 and the full operator reads as nu nabla^2 with units (textm^2texts^-1)(textm^-2) = texts^-1. This motivates us to normalize the Laplace operator by a constant of units textm^-2 and the viscosity coefficient by its inverse such that the viscosity coefficient becomes a damping timescale of unit texts^-1. Given the application in spectral space we decide to normalize by the largest eigenvalue -l_textmax(l_textmax+1) such that all entries in the discrete spectral Laplace operator are in 01. This also has the effect that the alternating sign drops out, such that higher wavenumbers are always dampened and not amplified. The normalized viscosity coefficient nu^* = l_textmax(l_textmax+1)nu (always positive) is therefore reinterpreted as the (inverse) time scale at which the highest wavenumber is dampened to zero due to diffusion. Together we have ","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"D^textexplicit_lm = -nu^* fracl(l+1)l_textmax(l_textmax+1)","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"and the hyper-Laplacian of power n follows as","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"D^textexplicitn_lm = -nu^* left(fracl(l+1)l_textmax(l_textmax+1)right)^n","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"and the implicit part is accordingly D^textimplicitn_lm = 1 - 2Delta t D^textexplicitn_lm.","category":"page"},{"location":"dynamical_core/#Radius-scaling","page":"Dynamical core","title":"Radius scaling","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"SpeedyWeather.jl uses a scaling for vorticity zeta and stream function Psi that is","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"tildezeta = zeta R tildePsi = Psi R^-1","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"In the barotropic voriticity equation model the inversion of the Laplcians in order to obtain Psi from zeta therefore becomes","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"tildezeta = tildenabla^2 tildePsi","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"where the dimensionless gradients simply omit the scaling with 1R, tildenabla = Rnabla. The Barotropic vorticity equation scaled with R^2 is","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"partial_tildettildezeta + tildenabla cdot (mathbfu(tildezeta + tildef)) = tildenutildenabla^2ntildezeta","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"with","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"tildet = tR^-1, the scaled time t\nmathbfu = (uv), the velocity vector (no scaling applied)\ntildef = fR, the scaled Coriolis parameter f\ntildenu = nu^* R, the scaled viscosity nu^*, which itself is normalized to a damping time scale, see Normalization of diffusion.","category":"page"},{"location":"dynamical_core/#Scaled-shallow-water-equations","page":"Dynamical core","title":"Scaled shallow water equations","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"Similar to the scaled barotropic vorticity equations, the scaled shallow water equations scale the vorticity and the divergence equation with R^2, but the continuity equation with R","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"beginaligned\nfracpartial tildezetapartial tildet + tildenabla cdot (mathbfu(tildezeta + tildef)) =\ntildenutildenabla^2ntildezeta \nfracpartial tildemathcalDpartial tildet - tildenabla times (mathbfu(tildezeta + tildef)) =\n-tildenabla^2left(tfrac12(u^2 + v^2) + geta right) + tildenutildenabla^2ntildemathcalD \nfracpartial etapartial tildet + tildenabla cdot (mathbfuh) = 0\nendaligned","category":"page"},{"location":"dynamical_core/#Time-integration","page":"Dynamical core","title":"Time integration","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"SpeedyWeather.jl uses a leapfrog time scheme with a Robert's and William's filter to dampen the computational mode and achieve 3rd order accuracy.","category":"page"},{"location":"dynamical_core/#Oscillation-equation","page":"Dynamical core","title":"Oscillation equation","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"fracdFdt = iomega F","category":"page"},{"location":"dynamical_core/#References","page":"Dynamical core","title":"References","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"[1]: Geophysical Fluid Dynamics Laboratory, Idealized models with spectral dynamics","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"[2]: Geophysical Fluid Dynamics Laboratory, The barotropic vorticity equation.","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"[3]: Geophysical Fluid Dynamics Laboratory, The Shallow Water Equations.","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"[4]: Geophysical Fluid Dynamics Laboratory, The Spectral Dynamical Core","category":"page"},{"location":"spectral_transform/#Spherical-Harmonic-Transform","page":"Spherical harmonic transform","title":"Spherical Harmonic Transform","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The following sections outline the implementation of the spherical harmonic transform (in short spectral transform) between the coefficients of the spherical harmonics (the spectral space) and the grid space on a longitude-latitude regular Gaussian grid.","category":"page"},{"location":"spectral_transform/#Inspiration","page":"Spherical harmonic transform","title":"Inspiration","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The spectral transform implemented by SpeedyWeather.jl follows largely Justin Willmert's CMB.jl package and makes use of AssociatedLegendrePolynomials.jl and FFTW.jl (for Float32/64) or GenericFFT.jl (for generic) for the Fourier transform. Justin described his work in a Blog series [1][2][3][4][5][6][7][8].","category":"page"},{"location":"spectral_transform/#Spherical-harmonics","page":"Spherical harmonic transform","title":"Spherical harmonics","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The spherical harmonics Y_lm of degree l and order m over the longitude phi = (02pi) and colatitudes theta = (-pi2pi2), are","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Y_lm(phi theta) = lambda_l^m(sintheta) e^imphi","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"with lambda_l^m being the pre-normalized associated Legendre polynomials, and e^imphi are the complex exponentials (the Fourier modes). Together they form a set of orthogonal basis functions on the sphere. For an interactive visualisation of the spherical harmonics, see here.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"info: Latitudes versus colatitudes\nThe implementations of the spherical transforms in SpeedyWeather.jl use colatitudes theta = (0pi) (0 at the north pole) but the dynamical core uses latitudes theta = (-pi2pi2) (pi2 at the north pole). However, all arrays are always sorted north to south such that [i,1] will access the northern-most grid points. Note: We may also use latitudes in the spherical harmonic transform in the future for consistency. ","category":"page"},{"location":"spectral_transform/#Synthesis-(spectral-to-grid)","page":"Spherical harmonic transform","title":"Synthesis (spectral to grid)","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The synthesis (or inverse transform) takes the spectral coefficients a_lm and transforms them to grid-point values f(phitheta) (for the sake of simplicity first regarded as continuous). The synthesis is a linear combination of the spherical harmonics Y_lm with non-zero coefficients.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"f(phitheta) = sum_l=0^infty sum_m=-l^l a_lm Y_lm(phitheta)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"We obtain an approximation with a finite set of a_lm by truncating the series after l = l_max.","category":"page"},{"location":"spectral_transform/#Analysis-(grid-to-spectral)","page":"Spherical harmonic transform","title":"Analysis (grid to spectral)","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Starting in grid-point space we can transform a field f(lambdatheta) into the spectral space of the spherical harmonics by","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"a_lm = int_0^2pi int_-tfracpi2^tfracpi2 f(lambdatheta) Y_lm(lambdatheta) cos theta dtheta dlambda","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"This integral has to be discretized to when grid-point values f(lambda_itheta_i) are used. For more details, see [7],[8].","category":"page"},{"location":"spectral_transform/#Spectral-packing","page":"Spherical harmonic transform","title":"Spectral packing","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Spectral packing is the way how the coefficients a_lm of the spherical harmonics of a given spectral field are stored in an array. SpeedyWeather.jl uses the conventional spectral packing of degree l and order m as illustrated in the following image (Cyp, CC BY-SA 3.0, via Wikimedia Commons)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Every row represents an order l geq 0, starting from l=0 at the top. Every column represents an order m geq 0, starting from m=0 on the left. The coefficients of these spherical harmonics are directly mapped into a matrix a_lm as ","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":" m \nl a_00 \n a_10 a_11 \n a_20 a_12 a_22 \n a_30 a_13 a_23 a_33","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"which is consistently extended for higher degrees and orders. Consequently, all spectral fields are lower-triangular matrices with complex entries. The upper triangle excluding the diagonal explicitly stores zeros. Note that internally vector fields include an additional degree, such that l_max = m_max + 1 (see Gradients in spherical coordinates for more information). The harmonics with a_l0 (the first column) are also called zonal harmonics as they are constant with longitude phi. The harmonics with a_ll (the main diagonal) are also called sectoral harmonics as they essentially split the sphere into 2l sectors in longitude phi without a zero-crossing in latitude.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"info: Array indices\nFor a spectral field alms note that due to Julia's 1-based indexing the coefficient a_lm is obtained via alms[l+1,m+1].","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Fortran speedy does not use the same spectral packing as SpeedyWeather.jl. The alternative packing lm therein uses l=m and m=l-m as summarized in the following table.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"degree l order m l=m m=l-m\n0 0 0 0\n1 0 0 1\n1 1 1 0\n2 0 0 2\n2 1 1 1\n2 2 2 0\n3 0 0 3\n... ... ... ...","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"This alternative packing uses the top-left triangle of a coefficient matrix, and the degrees and orders from above are stored at the following indices","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":" m \nl a_00 a_10 a_20 a_30\n a_11 a_21 a_31 \n a_22 a_32 \n a_33 ","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"This spectral packing is not used in SpeedyWeather.jl but illustrated here for completeness and comparison with Fortran-speedy.","category":"page"},{"location":"spectral_transform/#Example-transforms","page":"Spherical harmonic transform","title":"Example transforms","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"julia> using SpeedyWeather\njulia> alms = zeros(ComplexF64,3,3) # spectral coefficients\njulia> alms[2,2] = 1 # only l=1,m=1 harmonic\njulia> map = gridded(alms) # convert to grid space\n8×4 Matrix{Float64}:\n -0.324541 -0.600363 -0.600363 -0.324541\n -0.134429 -0.248678 -0.248678 -0.134429\n 0.134429 0.248678 0.248678 0.134429\n 0.324541 0.600363 0.600363 0.324541\n 0.324541 0.600363 0.600363 0.324541\n 0.134429 0.248678 0.248678 0.134429\n -0.134429 -0.248678 -0.248678 -0.134429\n -0.324541 -0.600363 -0.600363 -0.324541\n \njulia> spectral(map) # back to spectral space\n3×3 Matrix{ComplexF64}:\n 0.0+0.0im 0.0+0.0im 0.0+0.0im\n 0.0+0.0im 1.0+3.60727e-17im 0.0+0.0im\n 0.0+0.0im 0.0+0.0im 0.0+0.0im","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"and we have successfully reobtained the l=m=1 spherical harmonic.","category":"page"},{"location":"spectral_transform/#Available-horizontal-resolutions","page":"Spherical harmonic transform","title":"Available horizontal resolutions","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"SpeedyWeather.jl uses triangular truncation such that only spherical harmonics with l leq l_max and m leq m_max are explicitly represented. This is usually described as Tm_max, with l_max = m_max (although in vector quantities require one more degree l in the recursion relation of meridional gradients). For example, T31 is the spectral resolution with l_max = m_max = 31. Note that the degree l and order m are mathematically 0-based, such that the corresponding coefficient matrix is of size 32x32.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Using triangular truncation[9], there are constraints on the corresponding grid resolution. Let nlon, nlat be the number of longitudes, latitudes on a regular Gaussian grid. Then spectral and grid resolution have to be chosen such that","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"nlon geq 3l_max+1\nnlat geq (3l_max+1)2","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"In general, we choose nlon = 2nlat, and ideally nlon is easily Fourier-transformable, e.g. nlon = 2^i3^j5^k with some integers ijk geq 0. SpeedyWeather.jl is tested at the following horizontal resolutions, with Delta x = tfrac2pi Rnlon as the approximate grid spacing at the Equator","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"l_max nlon nlat Delta x\n31 (default) 96 48 400 km\n42 128 64 300 km\n85 256 128 160 km\n170 512 256 80 km\n341 1024 512 40 km\n682 2048 1024 20 km","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Choosing trunc as argument in run_speedy will automatically choose nlon,nlat as presented in the table. Other common choices are T63 (192x96), T127 (384x192), T255 (768x384), T511 (1536x768), among others.","category":"page"},{"location":"spectral_transform/#Derivatives-in-spherical-coordinates","page":"Spherical harmonic transform","title":"Derivatives in spherical coordinates","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Horizontal gradients in spherical coordinates are defined for a scalar field A and the latitudes theta and longitudes lambda as","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"nabla A = left(frac1Rcosthetafracpartial Apartial lambda frac1Rfracpartial Apartial theta right)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"However, the divergence of a vector field mathbfu = (uv) includes additional cos(theta) scalings","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"nabla cdot mathbfu = frac1Rcosthetafracpartial upartial lambda +\nfrac1Rcosthetafracpartial (v costheta)partial theta","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"and similar for the curl","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"nabla times mathbfu = frac1Rcosthetafracpartial vpartial lambda -\nfrac1Rcosthetafracpartial (u costheta)partial theta","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The radius of the sphere (i.e. Earth) is R. The zonal gradient scales with 1cos(theta) as the longitudes converge towards the poles (note that theta describes latitudes here, defintions using colatitudes replace the cos with a sin.)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Starting with a spectral field of vorticity zeta and divergence mathcalD one can obtain stream function Psi and velocity potential Phi by inverting the Laplace operator nabla^2:","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Psi = nabla^-2zeta quad Phi = nabla^-2mathcalD","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The velocities uv are then obtained from (uv) = nabla^botPsi + nablaPhi following the defintion from above and nabla^bot = (-R^-1partial_theta (Rcostheta)^-1partial_lambda)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"beginaligned\nu = -frac1Rpartial_thetaPsi + frac1Rcosthetapartial_lambdaPhi \nv = +frac1Rpartial_thetaPhi + frac1Rcosthetapartial_lambdaPsi\nendaligned","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Alternatively, we can use the velocities U = ucostheta V = vcostheta, which we do as the meridional gradient for spherical harmonics is easier implemented with a costheta-scaling included, and because the divergence and curl in spherical coordinates evaluates the meridional gradient with UV and not uv. From uv we can return to zeta mathcalD via","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"beginaligned\nzeta = frac1Rcosthetapartial_lambda v - frac1Rcosthetapartial_theta (u costheta) \nmathcalD = frac1Rcosthetapartial_lambda u + frac1Rcosthetapartial_theta (v costheta)\nendaligned","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Equivalently, we have","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"beginaligned\nU = -fraccosthetaRpartial_thetaPsi + frac1Rpartial_lambdaPhi \nV = +fraccosthetaRpartial_thetaPhi + frac1Rpartial_lambdaPsi \nzeta = frac1Rpartial_lambda left( fracVcos^2theta right) -\nfraccosthetaRpartial_theta left( fracUcos^2theta right) \nmathcalD = frac1Rpartial_lambda left( fracUcos^2theta right) +\nfraccosthetaRpartial_theta left( fracVcos^2theta right)\nendaligned","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"which is a more convenient formulation as required costheta scalings are reduced to a minimum. The remaining (UV)*cos^-2theta are done in grid-point space and usually in combination with other operations like the computation of the vorticity flux. But also note that SpeedyWeather.jl scales the equations with the radius R (see Radius scaling) such that the divisions by R drop out too. As described in Meridional derivative, it is more convenient to implement costheta partial_theta via a recursion relation for the Legendre polynomials than partial_theta directly. How the operators nabla nabla times nabla cdot can be implemented with spherical harmonics is presented in the following sections.","category":"page"},{"location":"spectral_transform/#Zonal-derivative","page":"Spherical harmonic transform","title":"Zonal derivative","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The zonal derivative of a scalar field Psi in spectral space is the zonal derivative of all its respective spherical harmonics Psi_lm(phitheta) (now we use phi for longitudes to avoid confusion with the Legendre polynomials lambda_lm)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"v_lm = frac1R cos(theta) fracpartialpartial phi left( lambda_l^m(costheta) e^imphi right) =\nfracimR cos(theta) lambda_l^m(costheta) e^imphi = fracimR cos(theta) Psi_lm","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"So for every spectral harmonic, cos(theta)v_lm is obtained from Psi_lm via a multiplication with imR. Unscaling the cos(theta)-factor is done after transforming the spectral coefficients v_lm into grid-point space. As discussed in Radius scaling, SpeedyWeather.jl scales the stream function as tildePsi = R^-1Psi such that the division by radius R in the gradients can be omitted. The zonal derivative becomes therefore effectively for each spherical harmonic a scaling with its (imaginary) order im. The spherical harmonics are essentially just a Fourier transform in zonal direction and the derivative a multiplication with the respective wave number m times imaginary i.","category":"page"},{"location":"spectral_transform/#Meridional-derivative","page":"Spherical harmonic transform","title":"Meridional derivative","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The meridioinal derivative of the spherical harmonics is a derivative of the Legendre polynomials for which the following recursion relation applies[10],[11]","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"costheta fracdP_lmdtheta = -lepsilon_l+1mP_l+1m + (l+1)epsilon_lmP_l-1m","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"with recursion factors","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"epsilon_lm = sqrtfracl^2-m^24l^2-1","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"In the following we use the example of obtaining the zonal velocity u from the stream function Psi, which is through the negative meridional gradient. For the meridional derivative itself the leading minus sign has to be omitted. Starting with the spectral expansion","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Psi(lambdatheta) = sum_lmPsi_lmP_lm(sintheta)e^imlambda","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"we multiply with -R^-1costhetapartial_theta to obtain","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"costhetaleft(-frac1Rpartial_thetaPsi right) = -frac1Rsum_lmPsi_lme^imlambdacosthetapartial_theta P_lm","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"at which point the recursion from above can be applied. Collecting terms proportional to P_lm then yields","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"(cos(theta)u)_lm = -frac1R(-(l-1)epsilon_lmPsi_l-1m + (l+2)epsilon_l+1mPsi_l+1m)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"To obtain the coefficient of each spherical harmonic lm of the meridional gradient of a spectral field, two coefficients at l-1m and l+1m have to be combined. This means that the coefficient of a gradient ((costheta) u)_lm is a linear combination of the coefficients of one higher and one lower degree Psi_l+1mPsi_l-1m. As the coefficient Psi_lm with ml are zero, the sectoral harmonics (l=m) of the gradients are obtained from the first off-diagonal only. However, the l=l_max harmonics of the gradients require the l_max-1 as well as the l_max+1 harmonics. In SpeedyWeather.jl vector quantitie like uv use therefore one more meridional mode than scalar quantities such as vorticity zeta or stream function Psi. The meridional derivative in SpeedyWeather.jl also omits the 1R-scaling as explained for the Zonal derivative and in Radius scaling.","category":"page"},{"location":"spectral_transform/#Divergence-and-curl-in-spherical-harmonics","page":"Spherical harmonic transform","title":"Divergence and curl in spherical harmonics","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The meridional gradient as described above can be applied to scalars, such as Psi and Phi in the conversion to velocities (uv) = nabla^botPsi + nablaPhi, however, the operators curl nabla times and divergence nabla cdot in spherical coordinates involve a costheta scaling before the meridional gradient is applied. How to translate this to spectral coefficients has to be derived separately[10],[11].","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The spectral transform of vorticity zeta is","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"zeta_lm = frac12piint_-tfracpi2^tfracpi2int_0^2pi zeta(lambdatheta) P_lm(sintheta) e^imlambda dlambda costheta dtheta","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Given that Rzeta = cos^-1partial_lambda v - cos^-1partial_theta (u costheta), we therefore have to evaluate a meridional integral of the form","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"int P_lm frac1cos theta partial_theta(u costheta)) cos theta dtheta","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"which can be solved through integration by parts. As ucostheta = 0 at theta = pm tfracpi2 only the integral","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"= -int partial_theta P_lm (u costheta) dtheta = -int costheta partial_theta P_lm (fracucostheta) costheta dtheta","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"remains. Inserting the recurrence relation from the Meridional derivative turns this into","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"= -int left(-l epsilon_l+1mP_l+1m + (l+1)epsilon_lm P_l-1m right) (fracucostheta) cos theta dtheta","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Now we expand (tfracucostheta) but only the lm harmonic will project ontoP_lm. Let u^* = ucos^-1theta v^* = vcos^-1theta we then have in total","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"beginaligned\nRzeta_lm = imv^*_lm + (l+1)epsilon_lmu^*_l-1m - lepsilon_l+1mu^*_l+1m \nRD_lm = imu^*_lm - (l+1)epsilon_lmv^*_l-1m + lepsilon_l+1mv^*_l+1m \nendaligned","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"And the divergence D is similar, but (uv) to (-vu). We have moved the scaling with the radius R directly into zetaD as further described in Radius scaling.","category":"page"},{"location":"spectral_transform/#Laplacian","page":"Spherical harmonic transform","title":"Laplacian","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The spectral Laplacian is easily applied to the coefficients Psi_lm of a spectral field as the spherical harmonics are eigenfunctions of the Laplace operator nabla^2 in spherical coordinates with eigenvalues -l(l+1) divided by the radius squared R^2, i.e. nabla^2 Psi becomes tfrac-l(l+1)R^2Psi_lm in spectral space. For example, vorticity zeta and streamfunction Psi are related by zeta = nabla^2Psi in the barotropic vorticity model. Hence, in spectral space this is equivalent for every spectral mode of degree l and order m to","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"zeta_lm = frac-l(l+1)R^2Psi_lm","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"This can be easily inverted to obtain the stream function Psi from vorticity zeta instead. In order to avoid division by zero, we set Psi_00 here, given that the stream function is only defined up to a constant anyway.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"beginaligned\nPsi_lm = fracR^2-l(l+1)zeta_lm quad foralllm 0\nPsi_00 = 0\nendaligned","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"See also Horizontal diffusion and Normalization of diffusion.","category":"page"},{"location":"spectral_transform/#U,V-from-vorticity-and-divergence","page":"Spherical harmonic transform","title":"U,V from vorticity and divergence","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"After having discussed the zonal and meridional derivatives with spherical harmonics as well as the Laplace operator, we can derive the conversion from vorticity zeta and divergence D (which are prognostic variables) to U=ucostheta V=vcostheta. Both are linear operations that act either solely on a given harmonic (the zonal gradient and the Laplace operator) or are linear combinations between one lower and one higher degree l (the meridional gradient). It is therefore computationally more efficient to compute UV directly from zetaD instead of calculating stream function and velocity potential first. In total we have","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"beginaligned\nU_lm = -fraciml(l+1)(RD)_lm + fracepsilon_l+1ml+1(Rzeta)_l+1m - fracepsilon_lml(Rzeta)_l-1m \nV_lm = -fraciml(l+1)(Rzeta)_lm - fracepsilon_l+1ml+1(RD)_l+1m + fracepsilon_lml(RD)_l-1m \nendaligned","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"We have moved the scaling with the radius R directly into zetaD as further described in Radius scaling.","category":"page"},{"location":"spectral_transform/#References","page":"Spherical harmonic transform","title":"References","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[1]: Justin Willmert, 2020. Introduction to Associated Legendre Polynomials (Legendre.jl Series, Part I)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[2]: Justin Willmert, 2020. Calculating Legendre Polynomials (Legendre.jl Series, Part II)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[3]: Justin Willmert, 2020. Pre-normalizing Legendre Polynomials (Legendre.jl Series, Part III)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[4]: Justin Willmert, 2020. Maintaining numerical accuracy in the Legendre recurrences (Legendre.jl Series, Part IV)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[5]: Justin Willmert, 2020. Introducing Legendre.jl (Legendre.jl Series, Part V)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[6]: Justin Willmert, 2020. Numerical Accuracy of the Spherical Harmonic Recurrence Coefficient (Legendre.jl Series Addendum)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[7]: Justin Willmert, 2020. Notes on Calculating the Spherical Harmonics","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[8]: Justin Willmert, 2022. More Notes on Calculating the Spherical Harmonics: Analysis of maps to harmonic coefficients","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[9]: David Randall, 2021. An Introduction to Numerical Modeling of the Atmosphere, Chapter 22.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[10]: Dale Durran, 2010. Numerical Methods for Fluid Dynamics, Springer. In particular section 6.2, 6.4.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[11]: Geophysical Fluid Dynamics Laboratory, The barotropic vorticity equation.","category":"page"},{"location":"ringgrids/#RingGrids","page":"Submodule: RingGrids","title":"RingGrids","text":"","category":"section"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"RingGrids is a submodule that has been developed for SpeedyWeather.jl which is technically independent (SpeedyWeather.jl however imports it and so does SpeedyTransforms) and can also be used without running simulations. It is just not put into its own respective repository.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"RingGrids defines several iso-latitude grids, which are mathematically described in the section on Grids. In brief, they include the regular latitude-longitude grids (here called FullClenshawGrid) as well as grids which latitudes are shifted to the Gaussian latitudes and reduced grids, meaning that they have a decreasing number of longitudinal points towards the poles to be more equal-area than full grids.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"RingGrids defines and exports the following grids:","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"full grids: FullClenshawGrid, FullGaussianGrid, FullHEALPix, and FullOctaHEALPix\nreduced grids: OctahedralGaussianGrid, OctahedralClenshawGrid, OctaHEALPixGrid and HEALPixGrid","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"The following explanation of how to use these can be mostly applied to any of them, however, there are certain functions that are not defined, e.g. the full grids can be trivially converted to a Matrix but not the OctahedralGaussianGrid.","category":"page"},{"location":"ringgrids/#Creating-data-on-a-RingGrid","page":"Submodule: RingGrids","title":"Creating data on a RingGrid","text":"","category":"section"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"Every grid in RingGrids has a data field, which is a vector containing the data on the grid. The grid points are unravelled west to east then north to south, meaning that it starts at 90˚N and 0˚E then walks eastward for 360˚ before jumping on the next latitude ring further south, this way circling around the sphere till reaching the south pole. This may also be called ring order.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"Data on a 96x48 Matrix which follows this ring order can be put on a FullGaussianGrid like so","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"julia> map\n96×48 Matrix{Float32}:\n -0.219801 -0.519598 1.2066 … 0.81304 -1.16023 1.0353\n -0.55615 -1.05712 -0.227948 -2.06369 1.10353 1.60918\n 0.446913 -0.856431 1.58896 -1.0894 -0.894315 0.632353\n 0.445915 -0.107201 -0.577785 0.574784 -0.825049 1.29677\n 1.194 -0.353374 1.30581 0.465554 0.358457 -0.726567\n 1.28693 1.43997 0.691283 … -0.330544 -0.267588 0.181308\n ⋮ ⋱ ⋮\n -0.432703 0.17233 0.89222 0.888913 1.32787 -0.248779\n -0.404498 0.127172 -0.64237 0.127979 -1.55253 -2.00749\n -0.857746 -0.433251 -0.468293 1.09825 -0.291169 1.07452\n 0.375367 -0.218278 0.492855 -0.287976 0.878996 -1.19745\n -0.0619525 -0.129129 -1.35502 … 0.0824819 0.481736 0.845638\n\njulia> grid = FullGaussianGrid(map)\n4608-element, 48-ring FullGaussianGrid{Float32}:\n -0.21980117\n -0.5561496\n 0.44691312\n 0.4459149\n 1.1940043\n 1.2869298\n ⋮\n -0.24877885\n -2.007495\n 1.0745221\n -1.197454\n 0.84563845","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"A full Gaussian grid has always 2N x N grid points, but a FullClenshawGrid has 2N x N-1, if those dimensions don't match, the creation will throw an error. To reobtain the data from a grid, you can access its data field which returns a normal Vector","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"julia> grid.data\n4608-element Vector{Float32}:\n -0.21980117\n -0.5561496\n 0.44691312\n 0.4459149\n 1.1940043\n 1.2869298\n ⋮\n -0.24877885\n -2.007495\n 1.0745221\n -1.197454\n 0.84563845","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"Which can be reshaped to reobtain map from above. Alternatively you can Matrix(grid) to do this in one step","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"julia> map == Matrix(FullGaussianGrid(map))\ntrue","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"You can also use zeros,ones,rand,randn to create a grid, whereby nlat_half, i.e. the number of latitude rings on one hemisphere, Equator included, is used as a resolution parameter and here as a second argument.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"julia> nlat_half = 4\njulia> grid = randn(OctahedralGaussianGrid{Float16},nlat_half)\n208-element, 8-ring OctahedralGaussianGrid{Float16}:\n -1.868\n 0.493\n 0.3142\n 1.871\n 1.349\n 0.623\n ⋮\n 1.064\n 0.4346\n -0.641\n 0.1445\n 0.3909","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"and any element type T can be used for OctahedralGaussianGrid{T} and similar for other grid types.","category":"page"},{"location":"ringgrids/#Indexing-RingGrids","page":"Submodule: RingGrids","title":"Indexing RingGrids","text":"","category":"section"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"All RingGrids have a single index ij which follows the ring order. While this is obviously not super exciting here are some examples how to make better use of the information that the data sits on a grid.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"We obtain the latitudes of the rings of a grid by calling get_latd (get_lond is only defined for full grids, or use get_latdlonds for latitudes, longitudes per grid point not per ring)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"julia> latd = get_latd(grid)\n8-element Vector{Float64}:\n 73.79921362856324\n 52.81294318999426\n 31.704091745007943\n 10.569882312576093\n -10.569882312576093\n -31.704091745007943\n -52.81294318999426\n -73.79921362856324","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"Now we could calculate Coriolis and add it on the grid as follows","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"rotation = 7.29e-5 # angular frequency of Earth's rotation [rad/s]\ncoriolis = 2rotation*sind.(latd) # vector of coriolis parameters per latitude ring\n\nrings = eachring(grid)\nfor (j,ring) in enumerate(rings)\n f = coriolis[j]\n for ij in ring\n grid[ij] += f\n end\nend","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"eachring creates a vector of UnitRange indices, such that we can loop over the ring index j (j=1 being closest to the North pole) pull the coriolis parameter at that latitude and then loop over all in-ring indices i (changing longitudes) to do something on the grid. Something similar can be done to scale/unscale with the cosine of latitude for example. We can always loop over all grid-points like so","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"for ij in eachgridpoint(grid)\n grid[ij]\nend","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"or use eachindex instead.","category":"page"},{"location":"ringgrids/#Interpolation-on-RingGrids","page":"Submodule: RingGrids","title":"Interpolation on RingGrids","text":"","category":"section"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"In most cases we will want to use RingGrids so that our data directly comes with the geometric information of where the grid-point is one the sphere. We have seen how to use get_latd, get_lond, ... for that above. This information generally can also be used to interpolate our data from grid to another or to request an interpolated value on some coordinates. Using our data on grid which is an OctahedralGaussianGrid from above we can use the interpolate function to get it onto a FullGaussianGrid (or any other grid for purpose)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"julia> grid\n208-element, 8-ring OctahedralGaussianGrid{Float16}:\n -1.868\n 0.493\n 0.3142\n 1.871\n 1.349\n 0.623\n ⋮\n 1.064\n 0.4346\n -0.641\n 0.1445\n 0.3909\n\njulia> interpolate(FullGaussianGrid,grid)\n128-element, 8-ring FullGaussianGrid{Float64}:\n -1.8681640625\n 0.4482421875\n 1.0927734375\n 1.4794921875\n 0.623046875\n -0.6435546875\n ⋮\n -0.57763671875\n 1.064453125\n 0.16552734375\n -0.248291015625\n 0.329345703125","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"By default this will linearly interpolate (it's an anvil interpolator, see below) onto a grid with the same nlat_half, but we can also coarse-grain or fine-grain by specifying nlat_half directly as 2nd argument","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"julia> interpolate(FullGaussianGrid,6,grid)\n288-element, 12-ring FullGaussianGrid{Float64}:\n -1.248046875\n 0.08984375\n 0.2763671875\n 0.76513671875\n 1.1767578125\n ⋮\n 0.26416015625\n -0.295166015625\n -0.271728515625\n 0.0511474609375\n 0.0814208984375","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"So we got from an 8-ring OctahedralGaussianGrid{Float16} to a 12-ring FullGaussianGrid{Float64}, so it did a conversion from Float16 to Float64 on the fly too, because the default precision is Float64 unless specified. interpolate(FullGaussianGrid{Float16},6,grid) would have interpolated onto a grid with element type Float16.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"One can also interpolate onto a give cordinate ˚N, ˚E like so","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"julia> interpolate(30.0,10.0,grid)\n1-element Vector{Float16}:\n 0.9297","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"we interpolated the data from grid onto 30˚N, 10˚E. To do this simultaneously for many coordinates they can be packed into a vector too","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"julia> interpolate([30.0,40.0,50.0],[10.0,10.0,10.0],grid)\n3-element Vector{Float16}:\n 0.9297\n 0.08887\n -0.929","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"which returns the data on grid at 30˚N, 40˚N, 50˚N, and 10˚E respectively. Note how the interpolation here retains the element type of grid.","category":"page"},{"location":"ringgrids/#Performance-for-RingGrid-interpolation","page":"Submodule: RingGrids","title":"Performance for RingGrid interpolation","text":"","category":"section"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"Every time an interpolation like interpolate(30.0,10.0,grid) is called, several things happen, which are important to understand to know how to get the fastest interpolation out of this module in a given situation. Under the hood an interpolation takes three arguments","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"output vector\ninput grid\ninterpolator","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"The output vector is just an array into which the interpolated data is written, providing this prevents unnecessary allocation of memory in case the destination array of the interpolation already exists. The input grid contains the data which is subject to interpolation, it must come on a ring grid, however, its coordinate information is actually already in the interpolator. The interpolator knows about the geometry of the grid the data is coming on and the coordinates it is supposed to interpolate onto. It has therefore precalculated the indices that are needed to access the right data on the input grid and the weights it needs to apply in the actual interplation operation. The only thing it does not know is the actual data values of that grid. So in the case you want to interpolate from grid A to grid B many times, you can just reuse the same interpolator. If you want to change the coordinates of the output grid but its total number of points remain constants then you can update the locator inside the interpolator and only else you will need to create a new interpolator. Let's look at this in practice. Say we have two grids an want to interpolate between them","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"julia> grid_in = rand(HEALPixGrid,4)\njulia> grid_out = zeros(FullClenshawGrid,6)\njulia> interp = RingGrids.interpolator(grid_out,grid_in)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"Now we have created an interpolator interp which knows about the geometry where to interpolate from and the coordinates there to interpolate to. It is also initialized, meaning it has precomputed the indices to of grid_in that are supposed to be used. It just does not know about the data of grid_in (and neither of grid_out which will be overwritten anyway). We can now do","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"julia> interpolate!(grid_out,grid_in,interp);\njulia> grid_out\n264-element, 11-ring FullClenshawGrid{Float64}:\n 0.47698810225785837\n 0.49923033302273034\n 0.5214725637876022\n 0.5437147945524742\n ⋮\n 0.6277318221906577\n 0.5934538182075797\n 0.6009226488782581\n 0.6083914795489366","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"which is identical to interpolate(grid_out,grid_in) but you can reuse interp with more data. The interpolation can also handle various element types (the interpolator interp does not have to be updated for this either)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"julia> grid_out = zeros(FullClenshawGrid{Float16},6);\njulia> interpolate!(grid_out,grid_in,interp)\njulia> grid_out\n264-element, 11-ring FullClenshawGrid{Float16}:\n 0.477\n 0.4993\n 0.5215\n 0.544\n 0.5493\n 0.555\n ⋮\n 0.662\n 0.628\n 0.5933\n 0.601\n 0.6084","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"and we have converted data from a HEALPixGrid{Float64} (which is always default if not specified) to a FullClenshawGrid{Float16} including the type conversion Float64-Float16 on the fly. Technically there are three data types and their combinations possible: The input data will come with a type, the output array has an element type and the interpolator has precomputed weights with a given type. Say we want to go from Float16 data on an OctahedralGaussianGrid to Float16 on a FullClenshawGrid but using Float32 precision for the interpolation itself, we would do this by","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"julia> grid_in = randn(OctahedralGaussianGrid{Float16},24)\njulia> grid_out = zeros(FullClenshawGrid{Float16},24)\njulia> interp = RingGrids.interpolator(Float32,grid_out,grid_in)\njulia> interpolate!(grid_out,grid_in,interp)\njulia> grid_out\n4512-element, 47-ring FullClenshawGrid{Float16}:\n -0.954\n -0.724\n -0.4941\n -0.264\n -0.03433\n 0.1796\n ⋮\n -0.5703\n -0.3481\n -0.07666\n 0.1958\n 0.467","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"As a last example we want to illustrate a situation where we would always want to interplate onto 10 coordinates, but their locations may change. In order to avoid recreating an interpolator object we would do (AnvilInterpolator is described in Anvil interpolator)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"julia> npoints = 10 # number of coordinates to interpolate onto\njulia> interp = AnvilInterpolator(Float32,HEALPixGrid,24,npoints)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"with the first argument being the number format used during interpolation, then the input grid type, its resolution in terms of nlat_half and then the number of points to interpolate onto. However, interp is not yet initialized as it does not know about the destination coordinates yet. Let's define them, but note that we already decided there's only 10 of them above.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"julia> latds = collect(0.0:5.0:45.0)\n10-element Vector{Float64}:\n 0.0\n 5.0\n ⋮\n 40.0\n 45.0\n\njulia> londs = collect(-10.0:2.0:8.0)\n10-element Vector{Float64}:\n -10.0\n -8.0\n -6.0\n ⋮\n 6.0\n 8.0","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"now we can update the locator inside our interpolator as follows","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"julia> RingGrids.update_locator!(interp,latds,londs)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"With data matching the input from above, a nlat_half=24 HEALPixGrid, and allocate 10-element output vector","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"julia> output_vec = zeros(10)\njulia> grid_input = rand(HEALPixGrid,24)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"we can use the interpolator as follows","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"julia> interpolate!(output_vec,grid_input,interp)\n10-element Vector{Float64}:\n 0.3182548251299291\n 0.7499448926757676\n 0.25733825675836064\n ⋮\n 0.2949249541923441\n 0.6690698461409016\n 0.6159433564856793","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"which is the approximately the same as doing it directly without creating an interpolator first and updating its locator","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"julia> interpolate(latds,londs,grid_input)\n10-element Vector{Float64}:\n 0.31825482404891603\n 0.7499448923165136\n 0.25733824520344434\n ⋮\n 0.294924962125593\n 0.6690698486360254\n 0.6159433558779497","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"but allows for a reuse of the interpolator. Note that the two output arrays are not exactly identical because we manually set our interpolator interp to use Float32 for the interplation whereas the default is Float64.","category":"page"},{"location":"ringgrids/#Anvil-interpolator","page":"Submodule: RingGrids","title":"Anvil interpolator","text":"","category":"section"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"Currently the only interpolator implemented is a 4-point bilinear interpolator, which schematically works as follows. Anvil interpolation is the bilinear average of a,b,c,d which are values at grid points in an anvil-shaped configuration at location x, which is denoted by Δab,Δcd,Δy, the fraction of distances between a-b,c-d, and ab-cd, respectively. Note that a,c and b,d do not necessarily share the same longitude/x-coordinate.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":" 0..............1 # fraction of distance Δab between a,b\n |< Δab >|\n\n0^ a -------- o - b # anvil-shaped average of a,b,c,d at location x\n.Δy |\n. |\n.v x \n. |\n1 c ------ o ---- d\n\n |< Δcd >|\n 0...............1 # fraction of distance Δcd between c,d\n\n^ fraction of distance Δy between a-b and c-d.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"This interpolation is chosen as by definiton of the ring grids, a and b share the same latitude, so do c and d, but the longitudes can be different for all four, a,b,c,d.","category":"page"},{"location":"ringgrids/#Function-index","page":"Submodule: RingGrids","title":"Function index","text":"","category":"section"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"RingGrids.each_index_in_ring\nRingGrids.eachgridpoint\nRingGrids.eachring\nRingGrids.whichring\nRingGrids.get_nlons","category":"page"},{"location":"ringgrids/#SpeedyWeather.RingGrids.each_index_in_ring","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.each_index_in_ring","text":"i = each_index_in_ring(grid,j)\n\nUnitRange i to access data on grid grid on ring j.\n\n\n\n\n\n","category":"function"},{"location":"ringgrids/#SpeedyWeather.RingGrids.eachgridpoint","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.eachgridpoint","text":"ijs = eachgridpoint(grid)\n\nUnitRange ijs to access each grid point on grid grid.\n\n\n\n\n\n","category":"function"},{"location":"ringgrids/#SpeedyWeather.RingGrids.eachring","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.eachring","text":"eachring(grid::SpeedyWeather.RingGrids.AbstractGrid) -> Any\n\n\nVector{UnitRange} rings to loop over every ring of grid grid and then each grid point per ring. To be used like\n\nrings = eachring(grid)\nfor ring in rings\n for ij in ring\n grid[ij]\n\n\n\n\n\neachring(\n grid1::SpeedyWeather.RingGrids.AbstractGrid,\n grids::Grid<:SpeedyWeather.RingGrids.AbstractGrid...\n) -> Any\n\n\nSame as eachring(grid) but performs a bounds check to assess that all grids in grids are of same size.\n\n\n\n\n\n","category":"function"},{"location":"ringgrids/#SpeedyWeather.RingGrids.whichring","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.whichring","text":"whichring(\n ij::Integer,\n rings::Vector{UnitRange{Int64}}\n) -> Int64\n\n\nObtain ring index j from gridpoint ij and Vector{UnitRange} describing rind indices as obtained from eachring(::Grid)\n\n\n\n\n\n","category":"function"},{"location":"ringgrids/#SpeedyWeather.RingGrids.get_nlons","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.get_nlons","text":"get_nlons(\n Grid::Type{<:SpeedyWeather.RingGrids.AbstractGrid},\n nlat_half::Integer;\n both_hemispheres\n) -> Any\n\n\nReturns a vector nlons for the number of longitude points per latitude ring, north to south. Provide grid Grid and its resolution parameter nlat_half. For both_hemisphere==false only the northern hemisphere (incl Equator) is returned.\n\n\n\n\n\n","category":"function"},{"location":"#SpeedyWeather.jl-documentation","page":"Home","title":"SpeedyWeather.jl documentation","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Welcome to the documentation for SpeedyWeather.jl a global atmospheric circulation model with simple parametrizations to represent physical processes such as clouds, precipitation and radiation.","category":"page"},{"location":"#Overview","page":"Home","title":"Overview","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"SpeedyWeather.jl is a global spectral model that uses a spherical harmonic transform to perform some calculations in spectral space (time integration, gradients, linear terms) and some in grid-point space (advection, non-linear terms, parameterizations). The prognostic variables used are vorticity, divergence, absolute temperature, logarithm of surface pressure and specific humidity. The time stepping uses a leapfrog scheme with additional filters and a semi-implicit formulation for gravity waves. The default resolution is T31 (96x48 grid points on a regular Gaussian grid, about 400km at the Equator) and 8 vertical levels.","category":"page"},{"location":"","page":"Home","title":"Home","text":"Simple parameterizations are used to represent the physical processes convection, large-scale condensation, clouds, short-wave radiation, long-waves radiation, surface fluxes of momentum and energy, and vertical diffusion.","category":"page"},{"location":"#Manual-outline","page":"Home","title":"Manual outline","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"See the following pages of the documentation for more details","category":"page"},{"location":"","page":"Home","title":"Home","text":"Installation\nHow to run SpeedyWeather.jl\nSpherical harmonic transform\nGrids\nDynamical core\nParametrizations\nExtending SpeedyWeather","category":"page"},{"location":"","page":"Home","title":"Home","text":"and the submodules","category":"page"},{"location":"","page":"Home","title":"Home","text":"RingGrids and their interpolation \nLowerTriangularMatrices \nSpeedyTransforms","category":"page"},{"location":"","page":"Home","title":"Home","text":"and the original documentation by Molteni and Kucharski.","category":"page"},{"location":"#Developers","page":"Home","title":"Developers","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"The development of SpeedyWeather.jl is lead by Milan Klöwer and current and past contributors include","category":"page"},{"location":"","page":"Home","title":"Home","text":"Tom Kimpson\nAlistair White\nMaximilian Gelbrecht\nDavid Meyer\nDaisuke Hotta\nNavid Constantinou","category":"page"},{"location":"","page":"Home","title":"Home","text":"Any contributions are always welcome!","category":"page"},{"location":"#Funding","page":"Home","title":"Funding","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"MK received funding by the European Research Council under Horizon 2020 within the ITHACA project, grant agreement number 741112 from 2021-2022. Since 2023 this project is also funded by the National Science Foundation NSF.","category":"page"},{"location":"time_integration/#Time-integration","page":"Time integration","title":"Time integration","text":"","category":"section"},{"location":"time_integration/","page":"Time integration","title":"Time integration","text":"SpeedyWeather.jl uses a leapfrog time scheme with a Robert's and William's filter to dampen the computational mode and achieve 3rd order accuracy.","category":"page"},{"location":"time_integration/#Oscillation-equation","page":"Time integration","title":"Oscillation equation","text":"","category":"section"},{"location":"time_integration/","page":"Time integration","title":"Time integration","text":"fracdFdt = iomega F","category":"page"},{"location":"time_integration/#Implementation-details","page":"Time integration","title":"Implementation details","text":"","category":"section"}] +} diff --git a/previews/PR341/siteinfo.js b/previews/PR341/siteinfo.js new file mode 100644 index 000000000..ccf1fa116 --- /dev/null +++ b/previews/PR341/siteinfo.js @@ -0,0 +1 @@ +var DOCUMENTER_CURRENT_VERSION = "previews/PR341"; diff --git a/previews/PR341/spectral_transform/index.html b/previews/PR341/spectral_transform/index.html new file mode 100644 index 000000000..158eefff6 --- /dev/null +++ b/previews/PR341/spectral_transform/index.html @@ -0,0 +1,45 @@ + +Spherical harmonic transform · SpeedyWeather.jl

        Spherical Harmonic Transform

        The following sections outline the implementation of the spherical harmonic transform (in short spectral transform) between the coefficients of the spherical harmonics (the spectral space) and the grid space on a longitude-latitude regular Gaussian grid.

        Inspiration

        The spectral transform implemented by SpeedyWeather.jl follows largely Justin Willmert's CMB.jl package and makes use of AssociatedLegendrePolynomials.jl and FFTW.jl (for Float32/64) or GenericFFT.jl (for generic) for the Fourier transform. Justin described his work in a Blog series [1][2][3][4][5][6][7][8].

        Spherical harmonics

        The spherical harmonics $Y_{lm}$ of degree $l$ and order $m$ over the longitude $\phi = (0,2\pi)$ and colatitudes $\theta = (-\pi/2,\pi/2)$, are

        \[Y_{lm}(\phi, \theta) = \lambda_l^m(\sin\theta) e^{im\phi}\]

        with $\lambda_l^m$ being the pre-normalized associated Legendre polynomials, and $e^{im\phi}$ are the complex exponentials (the Fourier modes). Together they form a set of orthogonal basis functions on the sphere. For an interactive visualisation of the spherical harmonics, see here.

        Latitudes versus colatitudes

        The implementations of the spherical transforms in SpeedyWeather.jl use colatitudes $\theta = (0,\pi)$ (0 at the north pole) but the dynamical core uses latitudes $\theta = (-\pi/2,\pi/2)$ ($\pi/2$ at the north pole). However, all arrays are always sorted north to south such that [i,1] will access the northern-most grid points. Note: We may also use latitudes in the spherical harmonic transform in the future for consistency.

        Synthesis (spectral to grid)

        The synthesis (or inverse transform) takes the spectral coefficients $a_{lm}$ and transforms them to grid-point values $f(\phi,\theta)$ (for the sake of simplicity first regarded as continuous). The synthesis is a linear combination of the spherical harmonics $Y_{lm}$ with non-zero coefficients.

        \[f(\phi,\theta) = \sum_{l=0}^{\infty} \sum_{m=-l}^l a_{lm} Y_{lm}(\phi,\theta)\]

        We obtain an approximation with a finite set of $a_{l,m}$ by truncating the series after $l = l_{max}$.

        Analysis (grid to spectral)

        Starting in grid-point space we can transform a field $f(\lambda,\theta)$ into the spectral space of the spherical harmonics by

        \[a_{l,m} = \int_0^{2\pi} \int_{-\tfrac{\pi}{2}}^\tfrac{\pi}{2} f(\lambda,\theta) Y_{l,m}(\lambda,\theta) \cos \theta d\theta d\lambda\]

        This integral has to be discretized to when grid-point values $f(\lambda_i,\theta_i)$ are used. For more details, see [7],[8].

        Spectral packing

        Spectral packing is the way how the coefficients $a_{lm}$ of the spherical harmonics of a given spectral field are stored in an array. SpeedyWeather.jl uses the conventional spectral packing of degree $l$ and order $m$ as illustrated in the following image (Cyp, CC BY-SA 3.0, via Wikimedia Commons)

        Every row represents an order $l \geq 0$, starting from $l=0$ at the top. Every column represents an order $m \geq 0$, starting from $m=0$ on the left. The coefficients of these spherical harmonics are directly mapped into a matrix $a_{lm}$ as

        $m$
        $l$$a_{00}$
        $a_{10}$$a_{11}$
        $a_{20}$$a_{12}$$a_{22}$
        $a_{30}$$a_{13}$$a_{23}$$a_{33}$

        which is consistently extended for higher degrees and orders. Consequently, all spectral fields are lower-triangular matrices with complex entries. The upper triangle excluding the diagonal explicitly stores zeros. Note that internally vector fields include an additional degree, such that $l_{max} = m_{max} + 1$ (see Gradients in spherical coordinates for more information). The harmonics with $a_{l0}$ (the first column) are also called zonal harmonics as they are constant with longitude $\phi$. The harmonics with $a_{ll}$ (the main diagonal) are also called sectoral harmonics as they essentially split the sphere into $2l$ sectors in longitude $\phi$ without a zero-crossing in latitude.

        Array indices

        For a spectral field alms note that due to Julia's 1-based indexing the coefficient $a_{lm}$ is obtained via alms[l+1,m+1].

        Fortran speedy does not use the same spectral packing as SpeedyWeather.jl. The alternative packing $l',m'$ therein uses $l'=m$ and $m'=l-m$ as summarized in the following table.

        degree $l$order $m$$l'=m$$m'=l-m$
        0000
        1001
        1110
        2002
        2111
        2220
        3003
        ............

        This alternative packing uses the top-left triangle of a coefficient matrix, and the degrees and orders from above are stored at the following indices

        $m'$
        $l'$$a_{00}$$a_{10}$$a_{20}$$a_{30}$
        $a_{11}$$a_{21}$$a_{31}$
        $a_{22}$$a_{32}$
        $a_{33}$

        This spectral packing is not used in SpeedyWeather.jl but illustrated here for completeness and comparison with Fortran-speedy.

        Example transforms

        julia> using SpeedyWeather
        +julia> alms = zeros(ComplexF64,3,3)    # spectral coefficients
        +julia> alms[2,2] = 1                   # only l=1,m=1 harmonic
        +julia> map = gridded(alms)             # convert to grid space
        +8×4 Matrix{Float64}:
        + -0.324541  -0.600363  -0.600363  -0.324541
        + -0.134429  -0.248678  -0.248678  -0.134429
        +  0.134429   0.248678   0.248678   0.134429
        +  0.324541   0.600363   0.600363   0.324541
        +  0.324541   0.600363   0.600363   0.324541
        +  0.134429   0.248678   0.248678   0.134429
        + -0.134429  -0.248678  -0.248678  -0.134429
        + -0.324541  -0.600363  -0.600363  -0.324541
        + 
        +julia> spectral(map)                   # back to spectral space
        +3×3 Matrix{ComplexF64}:
        + 0.0+0.0im  0.0+0.0im          0.0+0.0im
        + 0.0+0.0im  1.0+3.60727e-17im  0.0+0.0im
        + 0.0+0.0im  0.0+0.0im          0.0+0.0im

        and we have successfully reobtained the $l=m=1$ spherical harmonic.

        Available horizontal resolutions

        SpeedyWeather.jl uses triangular truncation such that only spherical harmonics with $l \leq l_{max}$ and $|m| \leq m_{max}$ are explicitly represented. This is usually described as $Tm_{max}$, with $l_{max} = m_{max}$ (although in vector quantities require one more degree $l$ in the recursion relation of meridional gradients). For example, T31 is the spectral resolution with $l_{max} = m_{max} = 31$. Note that the degree $l$ and order $m$ are mathematically 0-based, such that the corresponding coefficient matrix is of size 32x32.

        Using triangular truncation[9], there are constraints on the corresponding grid resolution. Let nlon, nlat be the number of longitudes, latitudes on a regular Gaussian grid. Then spectral and grid resolution have to be chosen such that

        • $nlon \geq 3l_{max}+1$
        • $nlat \geq (3l_{max}+1)/2$

        In general, we choose $nlon = 2nlat$, and ideally $nlon$ is easily Fourier-transformable, e.g. $nlon = 2^i3^j5^k$ with some integers $i,j,k \geq 0$. SpeedyWeather.jl is tested at the following horizontal resolutions, with $\Delta x = \tfrac{2\pi R}{nlon}$ as the approximate grid spacing at the Equator

        $l_{max}$nlonnlat$\Delta x$
        31 (default)9648400 km
        4212864300 km
        85256128160 km
        17051225680 km
        341102451240 km
        6822048102420 km

        Choosing trunc as argument in run_speedy will automatically choose nlon,nlat as presented in the table. Other common choices are T63 (192x96), T127 (384x192), T255 (768x384), T511 (1536x768), among others.

        Derivatives in spherical coordinates

        Horizontal gradients in spherical coordinates are defined for a scalar field $A$ and the latitudes $\theta$ and longitudes $\lambda$ as

        \[\nabla A = \left(\frac{1}{R\cos\theta}\frac{\partial A}{\partial \lambda}, \frac{1}{R}\frac{\partial A}{\partial \theta} \right).\]

        However, the divergence of a vector field $\mathbf{u} = (u,v)$ includes additional $\cos(\theta)$ scalings

        \[\nabla \cdot \mathbf{u} = \frac{1}{R\cos\theta}\frac{\partial u}{\partial \lambda} + +\frac{1}{R\cos\theta}\frac{\partial (v \cos\theta)}{\partial \theta},\]

        and similar for the curl

        \[\nabla \times \mathbf{u} = \frac{1}{R\cos\theta}\frac{\partial v}{\partial \lambda} - +\frac{1}{R\cos\theta}\frac{\partial (u \cos\theta)}{\partial \theta}.\]

        The radius of the sphere (i.e. Earth) is $R$. The zonal gradient scales with $1/\cos(\theta)$ as the longitudes converge towards the poles (note that $\theta$ describes latitudes here, defintions using colatitudes replace the $\cos$ with a $\sin$.)

        Starting with a spectral field of vorticity $\zeta$ and divergence $\mathcal{D}$ one can obtain stream function $\Psi$ and velocity potential $\Phi$ by inverting the Laplace operator $\nabla^2$:

        \[\Psi = \nabla^{-2}\zeta, \quad \Phi = \nabla^{-2}\mathcal{D}.\]

        The velocities $u,v$ are then obtained from $(u,v) = \nabla^\bot\Psi + \nabla\Phi$ following the defintion from above and $\nabla^\bot = (-R^{-1}\partial_\theta, (R\cos\theta)^{-1}\partial_\lambda)$

        \[\begin{aligned} +u &= -\frac{1}{R}\partial_\theta\Psi + \frac{1}{R\cos\theta}\partial_\lambda\Phi \\ +v &= +\frac{1}{R}\partial_\theta\Phi + \frac{1}{R\cos\theta}\partial_\lambda\Psi. +\end{aligned}\]

        Alternatively, we can use the velocities $U = u\cos\theta, V = v\cos\theta$, which we do as the meridional gradient for spherical harmonics is easier implemented with a $\cos\theta$-scaling included, and because the divergence and curl in spherical coordinates evaluates the meridional gradient with $U,V$ and not $u,v$. From $u,v$ we can return to $\zeta, \mathcal{D}$ via

        \[\begin{aligned} +\zeta &= \frac{1}{R\cos\theta}\partial_\lambda v - \frac{1}{R\cos\theta}\partial_\theta (u \cos\theta) \\ +\mathcal{D} &= \frac{1}{R\cos\theta}\partial_\lambda u + \frac{1}{R\cos\theta}\partial_\theta (v \cos\theta). +\end{aligned}\]

        Equivalently, we have

        \[\begin{aligned} +U &= -\frac{\cos\theta}{R}\partial_\theta\Psi + \frac{1}{R}\partial_\lambda\Phi \\ +V &= +\frac{\cos\theta}{R}\partial_\theta\Phi + \frac{1}{R}\partial_\lambda\Psi \\ +\zeta &= \frac{1}{R}\partial_\lambda \left( \frac{V}{\cos^2\theta} \right) - +\frac{\cos\theta}{R}\partial_\theta \left( \frac{U}{\cos^2\theta} \right) \\ +\mathcal{D} &= \frac{1}{R}\partial_\lambda \left( \frac{U}{\cos^2\theta} \right) + +\frac{\cos\theta}{R}\partial_\theta \left( \frac{V}{\cos^2\theta} \right). +\end{aligned}\]

        which is a more convenient formulation as required $\cos\theta$ scalings are reduced to a minimum. The remaining $(U,V)*\cos^{-2}\theta$ are done in grid-point space and usually in combination with other operations like the computation of the vorticity flux. But also note that SpeedyWeather.jl scales the equations with the radius R (see Radius scaling) such that the divisions by R drop out too. As described in Meridional derivative, it is more convenient to implement $\cos\theta \partial_\theta$ via a recursion relation for the Legendre polynomials than $\partial_\theta$ directly. How the operators $\nabla, \nabla \times, \nabla \cdot$ can be implemented with spherical harmonics is presented in the following sections.

        Zonal derivative

        The zonal derivative of a scalar field $\Psi$ in spectral space is the zonal derivative of all its respective spherical harmonics $\Psi_{lm}(\phi,\theta)$ (now we use $\phi$ for longitudes to avoid confusion with the Legendre polynomials $\lambda_{lm}$)

        \[v_{lm} = \frac{1}{R \cos(\theta)} \frac{\partial}{\partial \phi} \left( \lambda_l^m(\cos\theta) e^{im\phi} \right) = +\frac{im}{R \cos(\theta)} \lambda_l^m(\cos\theta) e^{im\phi} = \frac{im}{R \cos(\theta)} \Psi_{lm}\]

        So for every spectral harmonic, $\cos(\theta)v_{lm}$ is obtained from $\Psi_{lm}$ via a multiplication with $im/R$. Unscaling the $\cos(\theta)$-factor is done after transforming the spectral coefficients $v_{lm}$ into grid-point space. As discussed in Radius scaling, SpeedyWeather.jl scales the stream function as $\tilde{\Psi} = R^{-1}\Psi$ such that the division by radius $R$ in the gradients can be omitted. The zonal derivative becomes therefore effectively for each spherical harmonic a scaling with its (imaginary) order $im$. The spherical harmonics are essentially just a Fourier transform in zonal direction and the derivative a multiplication with the respective wave number $m$ times imaginary $i$.

        Meridional derivative

        The meridioinal derivative of the spherical harmonics is a derivative of the Legendre polynomials for which the following recursion relation applies[10],[11]

        \[\cos\theta \frac{dP_{l,m}}{d\theta} = -l\epsilon_{l+1,m}P_{l+1,m} + (l+1)\epsilon_{l,m}P_{l-1,m}.\]

        with recursion factors

        \[\epsilon_{l,m} = \sqrt{\frac{l^2-m^2}{4l^2-1}}\]

        In the following we use the example of obtaining the zonal velocity $u$ from the stream function $\Psi$, which is through the negative meridional gradient. For the meridional derivative itself the leading minus sign has to be omitted. Starting with the spectral expansion

        \[\Psi(\lambda,\theta) = \sum_{l,m}\Psi_{l,m}P_{l,m}(\sin\theta)e^{im\lambda}\]

        we multiply with $-R^{-1}\cos\theta\partial_\theta$ to obtain

        \[\cos\theta\left(-\frac{1}{R}\partial_\theta\Psi \right) = -\frac{1}{R}\sum_{l,m}\Psi_{l,m}e^{im\lambda}\cos\theta\partial_\theta P_{l,m}\]

        at which point the recursion from above can be applied. Collecting terms proportional to $P_{l,m}$ then yields

        \[(\cos(\theta)u)_{l,m} = -\frac{1}{R}(-(l-1)\epsilon_{l,m}\Psi_{l-1,m} + (l+2)\epsilon_{l+1,m}\Psi_{l+1,m})\]

        To obtain the coefficient of each spherical harmonic $l,m$ of the meridional gradient of a spectral field, two coefficients at $l-1,m$ and $l+1,m$ have to be combined. This means that the coefficient of a gradient $((\cos\theta) u)_{lm}$ is a linear combination of the coefficients of one higher and one lower degree $\Psi_{l+1,m},\Psi_{l-1,m}$. As the coefficient $\Psi_{lm}$ with $m<l$ are zero, the sectoral harmonics ($l=m$) of the gradients are obtained from the first off-diagonal only. However, the $l=l_{max}$ harmonics of the gradients require the $l_{max}-1$ as well as the $l_{max}+1$ harmonics. In SpeedyWeather.jl vector quantitie like $u,v$ use therefore one more meridional mode than scalar quantities such as vorticity $\zeta$ or stream function $\Psi$. The meridional derivative in SpeedyWeather.jl also omits the $1/R$-scaling as explained for the Zonal derivative and in Radius scaling.

        Divergence and curl in spherical harmonics

        The meridional gradient as described above can be applied to scalars, such as $\Psi$ and $\Phi$ in the conversion to velocities $(u,v) = \nabla^\bot\Psi + \nabla\Phi$, however, the operators curl $\nabla \times$ and divergence $\nabla \cdot$ in spherical coordinates involve a $\cos\theta$ scaling before the meridional gradient is applied. How to translate this to spectral coefficients has to be derived separately[10],[11].

        The spectral transform of vorticity $\zeta$ is

        \[\zeta_{l,m} = \frac{1}{2\pi}\int_{-\tfrac{\pi}{2}}^\tfrac{\pi}{2}\int_0^{2\pi} \zeta(\lambda,\theta) P_{l,m}(\sin\theta) e^{im\lambda} d\lambda \cos\theta d\theta\]

        Given that $R\zeta = \cos^{-1}\partial_\lambda v - \cos^{-1}\partial_\theta (u \cos\theta)$, we therefore have to evaluate a meridional integral of the form

        \[\int P_{l,m} \frac{1}{\cos \theta} \partial_\theta(u \cos\theta)) \cos \theta d\theta\]

        which can be solved through integration by parts. As $u\cos\theta = 0$ at $\theta = \pm \tfrac{\pi}{2}$ only the integral

        \[= -\int \partial_\theta P_{l,m} (u \cos\theta) d\theta = -\int \cos\theta \partial_\theta P_{l,m} (\frac{u}{\cos\theta}) \cos\theta d\theta\]

        remains. Inserting the recurrence relation from the Meridional derivative turns this into

        \[= -\int \left(-l \epsilon_{l+1,m}P_{l+1,m} + (l+1)\epsilon_{l,m} P_{l-1,m} \right) (\frac{u}{\cos\theta}) \cos \theta d\theta\]

        Now we expand $(\tfrac{u}{\cos\theta})$ but only the $l,m$ harmonic will project onto$P_{l,m}$. Let $u^* = u\cos^{-1}\theta, v^* = v\cos^{-1}\theta$ we then have in total

        \[\begin{aligned} +R\zeta_{l,m} &= imv^*_{l,m} + (l+1)\epsilon_{l,m}u^*_{l-1,m} - l\epsilon_{l+1,m}u^*_{l+1,m} \\ +RD_{l,m} &= imu^*_{l,m} - (l+1)\epsilon_{l,m}v^*_{l-1,m} + l\epsilon_{l+1,m}v^*_{l+1,m} \\ +\end{aligned}\]

        And the divergence $D$ is similar, but $(u,v) \to (-v,u)$. We have moved the scaling with the radius $R$ directly into $\zeta,D$ as further described in Radius scaling.

        Laplacian

        The spectral Laplacian is easily applied to the coefficients $\Psi_{lm}$ of a spectral field as the spherical harmonics are eigenfunctions of the Laplace operator $\nabla^2$ in spherical coordinates with eigenvalues $-l(l+1)$ divided by the radius squared $R^2$, i.e. $\nabla^2 \Psi$ becomes $\tfrac{-l(l+1)}{R^2}\Psi_{lm}$ in spectral space. For example, vorticity $\zeta$ and streamfunction $\Psi$ are related by $\zeta = \nabla^2\Psi$ in the barotropic vorticity model. Hence, in spectral space this is equivalent for every spectral mode of degree $l$ and order $m$ to

        \[\zeta_{l,m} = \frac{-l(l+1)}{R^2}\Psi_{l,m}\]

        This can be easily inverted to obtain the stream function $\Psi$ from vorticity $\zeta$ instead. In order to avoid division by zero, we set $\Psi_{0,0}$ here, given that the stream function is only defined up to a constant anyway.

        \[\begin{aligned} +\Psi_{l,m} &= \frac{R^2}{-l(l+1)}\zeta_{l,m} \quad \forall~l,m > 0,\\ +\Psi_{0,0} &= 0. +\end{aligned}\]

        See also Horizontal diffusion and Normalization of diffusion.

        U,V from vorticity and divergence

        After having discussed the zonal and meridional derivatives with spherical harmonics as well as the Laplace operator, we can derive the conversion from vorticity $\zeta$ and divergence $D$ (which are prognostic variables) to $U=u\cos\theta, V=v\cos\theta$. Both are linear operations that act either solely on a given harmonic (the zonal gradient and the Laplace operator) or are linear combinations between one lower and one higher degree $l$ (the meridional gradient). It is therefore computationally more efficient to compute $U,V$ directly from $\zeta,D$ instead of calculating stream function and velocity potential first. In total we have

        \[\begin{aligned} +U_{l,m} &= -\frac{im}{l(l+1)}(RD)_{l,m} + \frac{\epsilon_{l+1,m}}{l+1}(R\zeta)_{l+1,m} - \frac{\epsilon_{l,m}}{l}(R\zeta)_{l-1,m} \\ +V_{l,m} &= -\frac{im}{l(l+1)}(R\zeta)_{l,m} - \frac{\epsilon_{l+1,m}}{l+1}(RD)_{l+1,m} + \frac{\epsilon_{l,m}}{l}(RD)_{l-1,m} \\ +\end{aligned}\]

        We have moved the scaling with the radius $R$ directly into $\zeta,D$ as further described in Radius scaling.

        References

        diff --git a/previews/PR341/speedytransforms/index.html b/previews/PR341/speedytransforms/index.html new file mode 100644 index 000000000..9b22b5d9f --- /dev/null +++ b/previews/PR341/speedytransforms/index.html @@ -0,0 +1,2 @@ + +Submodule: SpeedyTransforms · SpeedyWeather.jl

        SpeedyTransforms

        SpeedyTransforms is a submodule that has been developed for SpeedyWeather.jl which is technically independent (SpeedyWeather.jl however imports it) and can also be used without running simulations. It is just not put into its own respective repository.

        Functions

        diff --git a/previews/PR341/time_integration/index.html b/previews/PR341/time_integration/index.html new file mode 100644 index 000000000..98552061b --- /dev/null +++ b/previews/PR341/time_integration/index.html @@ -0,0 +1,2 @@ + +Time integration · SpeedyWeather.jl
        diff --git a/previews/PR345/assets/documenter.js b/previews/PR345/assets/documenter.js new file mode 100644 index 000000000..6adfbbbf4 --- /dev/null +++ b/previews/PR345/assets/documenter.js @@ -0,0 +1,331 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'highlight-julia': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia.min', + 'headroom': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/headroom.min', + 'jqueryui': 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min', + 'katex-auto-render': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/contrib/auto-render.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + 'headroom-jquery': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/jQuery.headroom.min', + 'katex': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/katex.min', + 'highlight': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/highlight.min', + 'highlight-julia-repl': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia-repl.min', + }, + shim: { + "highlight-julia": { + "deps": [ + "highlight" + ] + }, + "katex-auto-render": { + "deps": [ + "katex" + ] + }, + "headroom-jquery": { + "deps": [ + "jquery", + "headroom" + ] + }, + "highlight-julia-repl": { + "deps": [ + "highlight" + ] + } +} +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'katex', 'katex-auto-render'], function($, katex, renderMathInElement) { +$(document).ready(function() { + renderMathInElement( + document.body, + { + "delimiters": [ + { + "left": "$", + "right": "$", + "display": false + }, + { + "left": "$$", + "right": "$$", + "display": true + }, + { + "left": "\\[", + "right": "\\]", + "display": true + } + ] +} + + ); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'highlight', 'highlight-julia', 'highlight-julia-repl'], function($) { +$(document).ready(function() { + hljs.highlightAll(); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require([], function() { +function addCopyButtonCallbacks() { + for (const el of document.getElementsByTagName("pre")) { + const button = document.createElement("button"); + button.classList.add("copy-button", "fas", "fa-copy"); + el.appendChild(button); + + const success = function () { + button.classList.add("success", "fa-check"); + button.classList.remove("fa-copy"); + }; + + const failure = function () { + button.classList.add("error", "fa-times"); + button.classList.remove("fa-copy"); + }; + + button.addEventListener("click", function () { + copyToClipboard(el.innerText).then(success, failure); + + setTimeout(function () { + button.classList.add("fa-copy"); + button.classList.remove("success", "fa-check", "fa-times"); + }, 5000); + }); + } +} + +function copyToClipboard(text) { + // clipboard API is only available in secure contexts + if (window.navigator && window.navigator.clipboard) { + return window.navigator.clipboard.writeText(text); + } else { + return new Promise(function (resolve, reject) { + try { + const el = document.createElement("textarea"); + el.textContent = text; + el.style.position = "fixed"; + el.style.opacity = 0; + document.body.appendChild(el); + el.select(); + document.execCommand("copy"); + + resolve(); + } catch (err) { + reject(err); + } finally { + document.body.removeChild(el); + } + }); + } +} + +if (document.readyState === "loading") { + document.addEventListener("DOMContentLoaded", addCopyButtonCallbacks); +} else { + addCopyButtonCallbacks(); +} + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'headroom', 'headroom-jquery'], function($, Headroom) { + +// Manages the top navigation bar (hides it when the user starts scrolling down on the +// mobile). +window.Headroom = Headroom; // work around buggy module loading? +$(document).ready(function() { + $('#documenter .docs-navbar').headroom({ + "tolerance": {"up": 10, "down": 10}, + }); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Modal settings dialog +$(document).ready(function() { + var settings = $('#documenter-settings'); + $('#documenter-settings-button').click(function(){ + settings.toggleClass('is-active'); + }); + // Close the dialog if X is clicked + $('#documenter-settings button.delete').click(function(){ + settings.removeClass('is-active'); + }); + // Close dialog if ESC is pressed + $(document).keyup(function(e) { + if (e.keyCode == 27) settings.removeClass('is-active'); + }); +}); + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Manages the showing and hiding of the sidebar. +$(document).ready(function() { + var sidebar = $("#documenter > .docs-sidebar"); + var sidebar_button = $("#documenter-sidebar-button") + sidebar_button.click(function(ev) { + ev.preventDefault(); + sidebar.toggleClass('visible'); + if (sidebar.hasClass('visible')) { + // Makes sure that the current menu item is visible in the sidebar. + $("#documenter .docs-menu a.is-active").focus(); + } + }); + $("#documenter > .docs-main").bind('click', function(ev) { + if ($(ev.target).is(sidebar_button)) { + return; + } + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + }); +}) + +// Resizes the package name / sitename in the sidebar if it is too wide. +// Inspired by: https://github.com/davatron5000/FitText.js +$(document).ready(function() { + e = $("#documenter .docs-autofit"); + function resize() { + var L = parseInt(e.css('max-width'), 10); + var L0 = e.width(); + if(L0 > L) { + var h0 = parseInt(e.css('font-size'), 10); + e.css('font-size', L * h0 / L0); + // TODO: make sure it survives resizes? + } + } + // call once and then register events + resize(); + $(window).resize(resize); + $(window).on('orientationchange', resize); +}); + +// Scroll the navigation bar to the currently selected menu item +$(document).ready(function() { + var sidebar = $("#documenter .docs-menu").get(0); + var active = $("#documenter .docs-menu .is-active").get(0); + if(typeof active !== 'undefined') { + sidebar.scrollTop = active.offsetTop - sidebar.offsetTop - 15; + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +function set_theme(theme) { + var active = null; + var disabled = []; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + var themename = ss.ownerNode.getAttribute("data-theme-name"); + if(themename === null) continue; // ignore non-theme stylesheets + // Find the active theme + if(themename === theme) active = ss; + else disabled.push(ss); + } + if(active !== null) { + active.disabled = false; + if(active.ownerNode.getAttribute("data-theme-primary") === null) { + document.getElementsByTagName('html')[0].className = "theme--" + theme; + } else { + document.getElementsByTagName('html')[0].className = ""; + } + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + + // Store the theme in localStorage + if(typeof(window.localStorage) !== "undefined") { + window.localStorage.setItem("documenter-theme", theme); + } else { + console.error("Browser does not support window.localStorage"); + } +} + +// Theme picker setup +$(document).ready(function() { + // onchange callback + $('#documenter-themepicker').change(function themepick_callback(ev){ + var themename = $('#documenter-themepicker option:selected').attr('value'); + set_theme(themename); + }); + + // Make sure that the themepicker displays the correct theme when the theme is retrieved + // from localStorage + if(typeof(window.localStorage) !== "undefined") { + var theme = window.localStorage.getItem("documenter-theme"); + if(theme !== null) { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = (e.value === theme); + }) + } else { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = $("html").hasClass(`theme--${e.value}`); + }) + } + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// update the version selector with info from the siteinfo.js and ../versions.js files +$(document).ready(function() { + // If the version selector is disabled with DOCUMENTER_VERSION_SELECTOR_DISABLED in the + // siteinfo.js file, we just return immediately and not display the version selector. + if (typeof DOCUMENTER_VERSION_SELECTOR_DISABLED === 'boolean' && DOCUMENTER_VERSION_SELECTOR_DISABLED) { + return; + } + + var version_selector = $("#documenter .docs-version-selector"); + var version_selector_select = $("#documenter .docs-version-selector select"); + + version_selector_select.change(function(x) { + target_href = version_selector_select.children("option:selected").get(0).value; + window.location.href = target_href; + }); + + // add the current version to the selector based on siteinfo.js, but only if the selector is empty + if (typeof DOCUMENTER_CURRENT_VERSION !== 'undefined' && $('#version-selector > option').length == 0) { + var option = $(""); + version_selector_select.append(option); + } + + if (typeof DOC_VERSIONS !== 'undefined') { + var existing_versions = version_selector_select.children("option"); + var existing_versions_texts = existing_versions.map(function(i,x){return x.text}); + DOC_VERSIONS.forEach(function(each) { + var version_url = documenterBaseURL + "/../" + each; + var existing_id = $.inArray(each, existing_versions_texts); + // if not already in the version selector, add it as a new option, + // otherwise update the old option with the URL and enable it + if (existing_id == -1) { + var option = $(""); + version_selector_select.append(option); + } else { + var option = existing_versions[existing_id]; + option.value = version_url; + option.disabled = false; + } + }); + } + + // only show the version selector if the selector has been populated + if (version_selector_select.children("option").length > 0) { + version_selector.toggleClass("visible"); + } +}) + +}) diff --git a/previews/PR345/assets/search.js b/previews/PR345/assets/search.js new file mode 100644 index 000000000..c133f7410 --- /dev/null +++ b/previews/PR345/assets/search.js @@ -0,0 +1,267 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'lunr': 'https://cdnjs.cloudflare.com/ajax/libs/lunr.js/2.3.9/lunr.min', + 'lodash': 'https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + } +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'lunr', 'lodash'], function($, lunr, _) { + +$(document).ready(function() { + // parseUri 1.2.2 + // (c) Steven Levithan + // MIT License + function parseUri (str) { + var o = parseUri.options, + m = o.parser[o.strictMode ? "strict" : "loose"].exec(str), + uri = {}, + i = 14; + + while (i--) uri[o.key[i]] = m[i] || ""; + + uri[o.q.name] = {}; + uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) { + if ($1) uri[o.q.name][$1] = $2; + }); + + return uri; + }; + parseUri.options = { + strictMode: false, + key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"], + q: { + name: "queryKey", + parser: /(?:^|&)([^&=]*)=?([^&]*)/g + }, + parser: { + strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, + loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ + } + }; + + $("#search-form").submit(function(e) { + e.preventDefault() + }) + + // list below is the lunr 2.1.3 list minus the intersect with names(Base) + // (all, any, get, in, is, only, which) and (do, else, for, let, where, while, with) + // ideally we'd just filter the original list but it's not available as a variable + lunr.stopWordFilter = lunr.generateStopWordFilter([ + 'a', + 'able', + 'about', + 'across', + 'after', + 'almost', + 'also', + 'am', + 'among', + 'an', + 'and', + 'are', + 'as', + 'at', + 'be', + 'because', + 'been', + 'but', + 'by', + 'can', + 'cannot', + 'could', + 'dear', + 'did', + 'does', + 'either', + 'ever', + 'every', + 'from', + 'got', + 'had', + 'has', + 'have', + 'he', + 'her', + 'hers', + 'him', + 'his', + 'how', + 'however', + 'i', + 'if', + 'into', + 'it', + 'its', + 'just', + 'least', + 'like', + 'likely', + 'may', + 'me', + 'might', + 'most', + 'must', + 'my', + 'neither', + 'no', + 'nor', + 'not', + 'of', + 'off', + 'often', + 'on', + 'or', + 'other', + 'our', + 'own', + 'rather', + 'said', + 'say', + 'says', + 'she', + 'should', + 'since', + 'so', + 'some', + 'than', + 'that', + 'the', + 'their', + 'them', + 'then', + 'there', + 'these', + 'they', + 'this', + 'tis', + 'to', + 'too', + 'twas', + 'us', + 'wants', + 'was', + 'we', + 'were', + 'what', + 'when', + 'who', + 'whom', + 'why', + 'will', + 'would', + 'yet', + 'you', + 'your' + ]) + + // add . as a separator, because otherwise "title": "Documenter.Anchors.add!" + // would not find anything if searching for "add!", only for the entire qualification + lunr.tokenizer.separator = /[\s\-\.]+/ + + // custom trimmer that doesn't strip @ and !, which are used in julia macro and function names + lunr.trimmer = function (token) { + return token.update(function (s) { + return s.replace(/^[^a-zA-Z0-9@!]+/, '').replace(/[^a-zA-Z0-9@!]+$/, '') + }) + } + + lunr.Pipeline.registerFunction(lunr.stopWordFilter, 'juliaStopWordFilter') + lunr.Pipeline.registerFunction(lunr.trimmer, 'juliaTrimmer') + + var index = lunr(function () { + this.ref('location') + this.field('title',{boost: 100}) + this.field('text') + documenterSearchIndex['docs'].forEach(function(e) { + this.add(e) + }, this) + }) + var store = {} + + documenterSearchIndex['docs'].forEach(function(e) { + store[e.location] = {title: e.title, category: e.category, page: e.page} + }) + + $(function(){ + searchresults = $('#documenter-search-results'); + searchinfo = $('#documenter-search-info'); + searchbox = $('#documenter-search-query'); + searchform = $('.docs-search'); + sidebar = $('.docs-sidebar'); + function update_search(querystring) { + tokens = lunr.tokenizer(querystring) + results = index.query(function (q) { + tokens.forEach(function (t) { + q.term(t.toString(), { + fields: ["title"], + boost: 100, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["title"], + boost: 10, + usePipeline: true, + editDistance: 2, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["text"], + boost: 1, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + }) + }) + searchinfo.text("Number of results: " + results.length) + searchresults.empty() + results.forEach(function(result) { + data = store[result.ref] + link = $(''+data.title+'') + link.attr('href', documenterBaseURL+'/'+result.ref) + if (data.category != "page"){ + cat = $('('+data.category+', '+data.page+')') + } else { + cat = $('('+data.category+')') + } + li = $('
      • ').append(link).append(" ").append(cat) + searchresults.append(li) + }) + } + + function update_search_box() { + querystring = searchbox.val() + update_search(querystring) + } + + searchbox.keyup(_.debounce(update_search_box, 250)) + searchbox.change(update_search_box) + + // Disable enter-key form submission for the searchbox on the search page + // and just re-run search rather than refresh the whole page. + searchform.keypress( + function(event){ + if (event.which == '13') { + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + update_search_box(); + event.preventDefault(); + } + } + ); + + search_query_uri = parseUri(window.location).queryKey["q"] + if(search_query_uri !== undefined) { + search_query = decodeURIComponent(search_query_uri.replace(/\+/g, '%20')) + searchbox.val(search_query) + } + update_search_box(); + }) +}) + +}) diff --git a/previews/PR345/assets/themes/documenter-dark.css b/previews/PR345/assets/themes/documenter-dark.css new file mode 100644 index 000000000..0bf1af7d5 --- /dev/null +++ b/previews/PR345/assets/themes/documenter-dark.css @@ -0,0 +1,7702 @@ +@charset "UTF-8"; +/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */ +@keyframes spinAround { + from { + transform: rotate(0deg); } + to { + transform: rotate(359deg); } } + +html.theme--documenter-dark .tabs, html.theme--documenter-dark .pagination-previous, +html.theme--documenter-dark .pagination-next, +html.theme--documenter-dark .pagination-link, +html.theme--documenter-dark .pagination-ellipsis, html.theme--documenter-dark .breadcrumb, html.theme--documenter-dark .file, html.theme--documenter-dark .button, .is-unselectable, html.theme--documenter-dark .modal-close, html.theme--documenter-dark .delete { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after, html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after { + border: 3px solid transparent; + border-radius: 2px; + border-right: 0; + border-top: 0; + content: " "; + display: block; + height: 0.625em; + margin-top: -0.4375em; + pointer-events: none; + position: absolute; + top: 50%; + transform: rotate(-45deg); + transform-origin: center; + width: 0.625em; } + +html.theme--documenter-dark .admonition:not(:last-child), html.theme--documenter-dark .tabs:not(:last-child), html.theme--documenter-dark .message:not(:last-child), html.theme--documenter-dark .list:not(:last-child), html.theme--documenter-dark .level:not(:last-child), html.theme--documenter-dark .breadcrumb:not(:last-child), html.theme--documenter-dark .highlight:not(:last-child), html.theme--documenter-dark .block:not(:last-child), html.theme--documenter-dark .title:not(:last-child), +html.theme--documenter-dark .subtitle:not(:last-child), html.theme--documenter-dark .table-container:not(:last-child), html.theme--documenter-dark .table:not(:last-child), html.theme--documenter-dark .progress:not(:last-child), html.theme--documenter-dark .notification:not(:last-child), html.theme--documenter-dark .content:not(:last-child), html.theme--documenter-dark .box:not(:last-child) { + margin-bottom: 1.5rem; } + +html.theme--documenter-dark .modal-close, html.theme--documenter-dark .delete { + -moz-appearance: none; + -webkit-appearance: none; + background-color: rgba(10, 10, 10, 0.2); + border: none; + border-radius: 290486px; + cursor: pointer; + pointer-events: auto; + display: inline-block; + flex-grow: 0; + flex-shrink: 0; + font-size: 0; + height: 20px; + max-height: 20px; + max-width: 20px; + min-height: 20px; + min-width: 20px; + outline: none; + position: relative; + vertical-align: top; + width: 20px; } + html.theme--documenter-dark .modal-close::before, html.theme--documenter-dark .delete::before, html.theme--documenter-dark .modal-close::after, html.theme--documenter-dark .delete::after { + background-color: white; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + html.theme--documenter-dark .modal-close::before, html.theme--documenter-dark .delete::before { + height: 2px; + width: 50%; } + html.theme--documenter-dark .modal-close::after, html.theme--documenter-dark .delete::after { + height: 50%; + width: 2px; } + html.theme--documenter-dark .modal-close:hover, html.theme--documenter-dark .delete:hover, html.theme--documenter-dark .modal-close:focus, html.theme--documenter-dark .delete:focus { + background-color: rgba(10, 10, 10, 0.3); } + html.theme--documenter-dark .modal-close:active, html.theme--documenter-dark .delete:active { + background-color: rgba(10, 10, 10, 0.4); } + html.theme--documenter-dark .is-small.modal-close, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.modal-close, html.theme--documenter-dark .is-small.delete, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.delete { + height: 16px; + max-height: 16px; + max-width: 16px; + min-height: 16px; + min-width: 16px; + width: 16px; } + html.theme--documenter-dark .is-medium.modal-close, html.theme--documenter-dark .is-medium.delete { + height: 24px; + max-height: 24px; + max-width: 24px; + min-height: 24px; + min-width: 24px; + width: 24px; } + html.theme--documenter-dark .is-large.modal-close, html.theme--documenter-dark .is-large.delete { + height: 32px; + max-height: 32px; + max-width: 32px; + min-height: 32px; + min-width: 32px; + width: 32px; } + +html.theme--documenter-dark .control.is-loading::after, html.theme--documenter-dark .select.is-loading::after, html.theme--documenter-dark .loader, html.theme--documenter-dark .button.is-loading::after { + animation: spinAround 500ms infinite linear; + border: 2px solid #dbdee0; + border-radius: 290486px; + border-right-color: transparent; + border-top-color: transparent; + content: ""; + display: block; + height: 1em; + position: relative; + width: 1em; } + +html.theme--documenter-dark .hero-video, html.theme--documenter-dark .modal-background, html.theme--documenter-dark .modal, html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img, +html.theme--documenter-dark .image.is-square .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img, +html.theme--documenter-dark .image.is-1by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img, +html.theme--documenter-dark .image.is-5by4 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img, +html.theme--documenter-dark .image.is-4by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img, +html.theme--documenter-dark .image.is-3by2 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img, +html.theme--documenter-dark .image.is-5by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img, +html.theme--documenter-dark .image.is-16by9 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img, +html.theme--documenter-dark .image.is-2by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img, +html.theme--documenter-dark .image.is-3by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img, +html.theme--documenter-dark .image.is-4by5 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img, +html.theme--documenter-dark .image.is-3by4 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img, +html.theme--documenter-dark .image.is-2by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img, +html.theme--documenter-dark .image.is-3by5 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img, +html.theme--documenter-dark .image.is-9by16 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img, +html.theme--documenter-dark .image.is-1by2 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img, +html.theme--documenter-dark .image.is-1by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, .is-overlay { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; } + +html.theme--documenter-dark .pagination-previous, +html.theme--documenter-dark .pagination-next, +html.theme--documenter-dark .pagination-link, +html.theme--documenter-dark .pagination-ellipsis, html.theme--documenter-dark .file-cta, +html.theme--documenter-dark .file-name, html.theme--documenter-dark .select select, html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark .button { + -moz-appearance: none; + -webkit-appearance: none; + align-items: center; + border: 1px solid transparent; + border-radius: 0.4em; + box-shadow: none; + display: inline-flex; + font-size: 15px; + height: 2.25em; + justify-content: flex-start; + line-height: 1.5; + padding-bottom: calc(0.375em - 1px); + padding-left: calc(0.625em - 1px); + padding-right: calc(0.625em - 1px); + padding-top: calc(0.375em - 1px); + position: relative; + vertical-align: top; } + html.theme--documenter-dark .pagination-previous:focus, + html.theme--documenter-dark .pagination-next:focus, + html.theme--documenter-dark .pagination-link:focus, + html.theme--documenter-dark .pagination-ellipsis:focus, html.theme--documenter-dark .file-cta:focus, + html.theme--documenter-dark .file-name:focus, html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .button:focus, html.theme--documenter-dark .is-focused.pagination-previous, + html.theme--documenter-dark .is-focused.pagination-next, + html.theme--documenter-dark .is-focused.pagination-link, + html.theme--documenter-dark .is-focused.pagination-ellipsis, html.theme--documenter-dark .is-focused.file-cta, + html.theme--documenter-dark .is-focused.file-name, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-focused.button, html.theme--documenter-dark .pagination-previous:active, + html.theme--documenter-dark .pagination-next:active, + html.theme--documenter-dark .pagination-link:active, + html.theme--documenter-dark .pagination-ellipsis:active, html.theme--documenter-dark .file-cta:active, + html.theme--documenter-dark .file-name:active, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .button:active, html.theme--documenter-dark .is-active.pagination-previous, + html.theme--documenter-dark .is-active.pagination-next, + html.theme--documenter-dark .is-active.pagination-link, + html.theme--documenter-dark .is-active.pagination-ellipsis, html.theme--documenter-dark .is-active.file-cta, + html.theme--documenter-dark .is-active.file-name, html.theme--documenter-dark .select select.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .is-active.button { + outline: none; } + html.theme--documenter-dark .pagination-previous[disabled], + html.theme--documenter-dark .pagination-next[disabled], + html.theme--documenter-dark .pagination-link[disabled], + html.theme--documenter-dark .pagination-ellipsis[disabled], html.theme--documenter-dark .file-cta[disabled], + html.theme--documenter-dark .file-name[disabled], html.theme--documenter-dark .select select[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], html.theme--documenter-dark .button[disabled], fieldset[disabled] html.theme--documenter-dark .pagination-previous, html.theme--documenter-dark fieldset[disabled] .pagination-previous, + fieldset[disabled] html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark fieldset[disabled] .pagination-next, + fieldset[disabled] html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark fieldset[disabled] .pagination-link, + fieldset[disabled] html.theme--documenter-dark .pagination-ellipsis, + html.theme--documenter-dark fieldset[disabled] .pagination-ellipsis, fieldset[disabled] html.theme--documenter-dark .file-cta, html.theme--documenter-dark fieldset[disabled] .file-cta, + fieldset[disabled] html.theme--documenter-dark .file-name, + html.theme--documenter-dark fieldset[disabled] .file-name, fieldset[disabled] html.theme--documenter-dark .select select, fieldset[disabled] html.theme--documenter-dark .textarea, fieldset[disabled] html.theme--documenter-dark .input, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark fieldset[disabled] .select select, html.theme--documenter-dark .select fieldset[disabled] select, html.theme--documenter-dark fieldset[disabled] .textarea, html.theme--documenter-dark fieldset[disabled] .input, html.theme--documenter-dark fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, fieldset[disabled] html.theme--documenter-dark .button, html.theme--documenter-dark fieldset[disabled] .button { + cursor: not-allowed; } + +/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */ +html, +body, +p, +ol, +ul, +li, +dl, +dt, +dd, +blockquote, +figure, +fieldset, +legend, +textarea, +pre, +iframe, +hr, +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + padding: 0; } + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: 100%; + font-weight: normal; } + +ul { + list-style: none; } + +button, +input, +select, +textarea { + margin: 0; } + +html { + box-sizing: border-box; } + +*, *::before, *::after { + box-sizing: inherit; } + +img, +embed, +iframe, +object, +video { + height: auto; + max-width: 100%; } + +audio { + max-width: 100%; } + +iframe { + border: 0; } + +table { + border-collapse: collapse; + border-spacing: 0; } + +td, +th { + padding: 0; } + td:not([align]), + th:not([align]) { + text-align: left; } + +.is-clearfix::after { + clear: both; + content: " "; + display: table; } + +.is-pulled-left { + float: left !important; } + +.is-pulled-right { + float: right !important; } + +.is-clipped { + overflow: hidden !important; } + +.is-size-1 { + font-size: 3rem !important; } + +.is-size-2 { + font-size: 2.5rem !important; } + +.is-size-3 { + font-size: 2rem !important; } + +.is-size-4 { + font-size: 1.5rem !important; } + +.is-size-5 { + font-size: 1.25rem !important; } + +.is-size-6 { + font-size: 15px !important; } + +.is-size-7, html.theme--documenter-dark .docstring > section > a.docs-sourcelink { + font-size: 0.85em !important; } + +@media screen and (max-width: 768px) { + .is-size-1-mobile { + font-size: 3rem !important; } + .is-size-2-mobile { + font-size: 2.5rem !important; } + .is-size-3-mobile { + font-size: 2rem !important; } + .is-size-4-mobile { + font-size: 1.5rem !important; } + .is-size-5-mobile { + font-size: 1.25rem !important; } + .is-size-6-mobile { + font-size: 15px !important; } + .is-size-7-mobile { + font-size: 0.85em !important; } } + +@media screen and (min-width: 769px), print { + .is-size-1-tablet { + font-size: 3rem !important; } + .is-size-2-tablet { + font-size: 2.5rem !important; } + .is-size-3-tablet { + font-size: 2rem !important; } + .is-size-4-tablet { + font-size: 1.5rem !important; } + .is-size-5-tablet { + font-size: 1.25rem !important; } + .is-size-6-tablet { + font-size: 15px !important; } + .is-size-7-tablet { + font-size: 0.85em !important; } } + +@media screen and (max-width: 1055px) { + .is-size-1-touch { + font-size: 3rem !important; } + .is-size-2-touch { + font-size: 2.5rem !important; } + .is-size-3-touch { + font-size: 2rem !important; } + .is-size-4-touch { + font-size: 1.5rem !important; } + .is-size-5-touch { + font-size: 1.25rem !important; } + .is-size-6-touch { + font-size: 15px !important; } + .is-size-7-touch { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1056px) { + .is-size-1-desktop { + font-size: 3rem !important; } + .is-size-2-desktop { + font-size: 2.5rem !important; } + .is-size-3-desktop { + font-size: 2rem !important; } + .is-size-4-desktop { + font-size: 1.5rem !important; } + .is-size-5-desktop { + font-size: 1.25rem !important; } + .is-size-6-desktop { + font-size: 15px !important; } + .is-size-7-desktop { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1216px) { + .is-size-1-widescreen { + font-size: 3rem !important; } + .is-size-2-widescreen { + font-size: 2.5rem !important; } + .is-size-3-widescreen { + font-size: 2rem !important; } + .is-size-4-widescreen { + font-size: 1.5rem !important; } + .is-size-5-widescreen { + font-size: 1.25rem !important; } + .is-size-6-widescreen { + font-size: 15px !important; } + .is-size-7-widescreen { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1408px) { + .is-size-1-fullhd { + font-size: 3rem !important; } + .is-size-2-fullhd { + font-size: 2.5rem !important; } + .is-size-3-fullhd { + font-size: 2rem !important; } + .is-size-4-fullhd { + font-size: 1.5rem !important; } + .is-size-5-fullhd { + font-size: 1.25rem !important; } + .is-size-6-fullhd { + font-size: 15px !important; } + .is-size-7-fullhd { + font-size: 0.85em !important; } } + +.has-text-centered { + text-align: center !important; } + +.has-text-justified { + text-align: justify !important; } + +.has-text-left { + text-align: left !important; } + +.has-text-right { + text-align: right !important; } + +@media screen and (max-width: 768px) { + .has-text-centered-mobile { + text-align: center !important; } } + +@media screen and (min-width: 769px), print { + .has-text-centered-tablet { + text-align: center !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-centered-tablet-only { + text-align: center !important; } } + +@media screen and (max-width: 1055px) { + .has-text-centered-touch { + text-align: center !important; } } + +@media screen and (min-width: 1056px) { + .has-text-centered-desktop { + text-align: center !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-centered-desktop-only { + text-align: center !important; } } + +@media screen and (min-width: 1216px) { + .has-text-centered-widescreen { + text-align: center !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-centered-widescreen-only { + text-align: center !important; } } + +@media screen and (min-width: 1408px) { + .has-text-centered-fullhd { + text-align: center !important; } } + +@media screen and (max-width: 768px) { + .has-text-justified-mobile { + text-align: justify !important; } } + +@media screen and (min-width: 769px), print { + .has-text-justified-tablet { + text-align: justify !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-justified-tablet-only { + text-align: justify !important; } } + +@media screen and (max-width: 1055px) { + .has-text-justified-touch { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) { + .has-text-justified-desktop { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-justified-desktop-only { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) { + .has-text-justified-widescreen { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-justified-widescreen-only { + text-align: justify !important; } } + +@media screen and (min-width: 1408px) { + .has-text-justified-fullhd { + text-align: justify !important; } } + +@media screen and (max-width: 768px) { + .has-text-left-mobile { + text-align: left !important; } } + +@media screen and (min-width: 769px), print { + .has-text-left-tablet { + text-align: left !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-left-tablet-only { + text-align: left !important; } } + +@media screen and (max-width: 1055px) { + .has-text-left-touch { + text-align: left !important; } } + +@media screen and (min-width: 1056px) { + .has-text-left-desktop { + text-align: left !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-left-desktop-only { + text-align: left !important; } } + +@media screen and (min-width: 1216px) { + .has-text-left-widescreen { + text-align: left !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-left-widescreen-only { + text-align: left !important; } } + +@media screen and (min-width: 1408px) { + .has-text-left-fullhd { + text-align: left !important; } } + +@media screen and (max-width: 768px) { + .has-text-right-mobile { + text-align: right !important; } } + +@media screen and (min-width: 769px), print { + .has-text-right-tablet { + text-align: right !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-right-tablet-only { + text-align: right !important; } } + +@media screen and (max-width: 1055px) { + .has-text-right-touch { + text-align: right !important; } } + +@media screen and (min-width: 1056px) { + .has-text-right-desktop { + text-align: right !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-right-desktop-only { + text-align: right !important; } } + +@media screen and (min-width: 1216px) { + .has-text-right-widescreen { + text-align: right !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-right-widescreen-only { + text-align: right !important; } } + +@media screen and (min-width: 1408px) { + .has-text-right-fullhd { + text-align: right !important; } } + +.is-capitalized { + text-transform: capitalize !important; } + +.is-lowercase { + text-transform: lowercase !important; } + +.is-uppercase { + text-transform: uppercase !important; } + +.is-italic { + font-style: italic !important; } + +.has-text-white { + color: white !important; } + +a.has-text-white:hover, a.has-text-white:focus { + color: #e6e6e6 !important; } + +.has-background-white { + background-color: white !important; } + +.has-text-black { + color: #0a0a0a !important; } + +a.has-text-black:hover, a.has-text-black:focus { + color: black !important; } + +.has-background-black { + background-color: #0a0a0a !important; } + +.has-text-light { + color: #ecf0f1 !important; } + +a.has-text-light:hover, a.has-text-light:focus { + color: #cfd9db !important; } + +.has-background-light { + background-color: #ecf0f1 !important; } + +.has-text-dark { + color: #282f2f !important; } + +a.has-text-dark:hover, a.has-text-dark:focus { + color: #111414 !important; } + +.has-background-dark { + background-color: #282f2f !important; } + +.has-text-primary { + color: #375a7f !important; } + +a.has-text-primary:hover, a.has-text-primary:focus { + color: #28415b !important; } + +.has-background-primary { + background-color: #375a7f !important; } + +.has-text-link { + color: #1abc9c !important; } + +a.has-text-link:hover, a.has-text-link:focus { + color: #148f77 !important; } + +.has-background-link { + background-color: #1abc9c !important; } + +.has-text-info { + color: #024c7d !important; } + +a.has-text-info:hover, a.has-text-info:focus { + color: #012d4b !important; } + +.has-background-info { + background-color: #024c7d !important; } + +.has-text-success { + color: #008438 !important; } + +a.has-text-success:hover, a.has-text-success:focus { + color: #005122 !important; } + +.has-background-success { + background-color: #008438 !important; } + +.has-text-warning { + color: #ad8100 !important; } + +a.has-text-warning:hover, a.has-text-warning:focus { + color: #7a5b00 !important; } + +.has-background-warning { + background-color: #ad8100 !important; } + +.has-text-danger { + color: #9e1b0d !important; } + +a.has-text-danger:hover, a.has-text-danger:focus { + color: #6f1309 !important; } + +.has-background-danger { + background-color: #9e1b0d !important; } + +.has-text-black-bis { + color: #121212 !important; } + +.has-background-black-bis { + background-color: #121212 !important; } + +.has-text-black-ter { + color: #242424 !important; } + +.has-background-black-ter { + background-color: #242424 !important; } + +.has-text-grey-darker { + color: #282f2f !important; } + +.has-background-grey-darker { + background-color: #282f2f !important; } + +.has-text-grey-dark { + color: #343c3d !important; } + +.has-background-grey-dark { + background-color: #343c3d !important; } + +.has-text-grey { + color: #5e6d6f !important; } + +.has-background-grey { + background-color: #5e6d6f !important; } + +.has-text-grey-light { + color: #8c9b9d !important; } + +.has-background-grey-light { + background-color: #8c9b9d !important; } + +.has-text-grey-lighter { + color: #dbdee0 !important; } + +.has-background-grey-lighter { + background-color: #dbdee0 !important; } + +.has-text-white-ter { + color: #ecf0f1 !important; } + +.has-background-white-ter { + background-color: #ecf0f1 !important; } + +.has-text-white-bis { + color: #fafafa !important; } + +.has-background-white-bis { + background-color: #fafafa !important; } + +.has-text-weight-light { + font-weight: 300 !important; } + +.has-text-weight-normal { + font-weight: 400 !important; } + +.has-text-weight-medium { + font-weight: 500 !important; } + +.has-text-weight-semibold { + font-weight: 600 !important; } + +.has-text-weight-bold { + font-weight: 700 !important; } + +.is-family-primary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-secondary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-sans-serif { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-monospace { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-family-code { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-block { + display: block !important; } + +@media screen and (max-width: 768px) { + .is-block-mobile { + display: block !important; } } + +@media screen and (min-width: 769px), print { + .is-block-tablet { + display: block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-block-tablet-only { + display: block !important; } } + +@media screen and (max-width: 1055px) { + .is-block-touch { + display: block !important; } } + +@media screen and (min-width: 1056px) { + .is-block-desktop { + display: block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-block-desktop-only { + display: block !important; } } + +@media screen and (min-width: 1216px) { + .is-block-widescreen { + display: block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-block-widescreen-only { + display: block !important; } } + +@media screen and (min-width: 1408px) { + .is-block-fullhd { + display: block !important; } } + +.is-flex { + display: flex !important; } + +@media screen and (max-width: 768px) { + .is-flex-mobile { + display: flex !important; } } + +@media screen and (min-width: 769px), print { + .is-flex-tablet { + display: flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-flex-tablet-only { + display: flex !important; } } + +@media screen and (max-width: 1055px) { + .is-flex-touch { + display: flex !important; } } + +@media screen and (min-width: 1056px) { + .is-flex-desktop { + display: flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-flex-desktop-only { + display: flex !important; } } + +@media screen and (min-width: 1216px) { + .is-flex-widescreen { + display: flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-flex-widescreen-only { + display: flex !important; } } + +@media screen and (min-width: 1408px) { + .is-flex-fullhd { + display: flex !important; } } + +.is-inline { + display: inline !important; } + +@media screen and (max-width: 768px) { + .is-inline-mobile { + display: inline !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-tablet { + display: inline !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-tablet-only { + display: inline !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-touch { + display: inline !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-desktop { + display: inline !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-desktop-only { + display: inline !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-widescreen { + display: inline !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-widescreen-only { + display: inline !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-fullhd { + display: inline !important; } } + +.is-inline-block { + display: inline-block !important; } + +@media screen and (max-width: 768px) { + .is-inline-block-mobile { + display: inline-block !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-block-tablet { + display: inline-block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-block-tablet-only { + display: inline-block !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-block-touch { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-block-desktop { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-block-desktop-only { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-block-widescreen { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-block-widescreen-only { + display: inline-block !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-block-fullhd { + display: inline-block !important; } } + +.is-inline-flex { + display: inline-flex !important; } + +@media screen and (max-width: 768px) { + .is-inline-flex-mobile { + display: inline-flex !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-flex-tablet { + display: inline-flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-flex-tablet-only { + display: inline-flex !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-flex-touch { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-flex-desktop { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-flex-desktop-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-flex-widescreen { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-flex-widescreen-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-flex-fullhd { + display: inline-flex !important; } } + +.is-hidden { + display: none !important; } + +.is-sr-only { + border: none !important; + clip: rect(0, 0, 0, 0) !important; + height: 0.01em !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + white-space: nowrap !important; + width: 0.01em !important; } + +@media screen and (max-width: 768px) { + .is-hidden-mobile { + display: none !important; } } + +@media screen and (min-width: 769px), print { + .is-hidden-tablet { + display: none !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-hidden-tablet-only { + display: none !important; } } + +@media screen and (max-width: 1055px) { + .is-hidden-touch { + display: none !important; } } + +@media screen and (min-width: 1056px) { + .is-hidden-desktop { + display: none !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-hidden-desktop-only { + display: none !important; } } + +@media screen and (min-width: 1216px) { + .is-hidden-widescreen { + display: none !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-hidden-widescreen-only { + display: none !important; } } + +@media screen and (min-width: 1408px) { + .is-hidden-fullhd { + display: none !important; } } + +.is-invisible { + visibility: hidden !important; } + +@media screen and (max-width: 768px) { + .is-invisible-mobile { + visibility: hidden !important; } } + +@media screen and (min-width: 769px), print { + .is-invisible-tablet { + visibility: hidden !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-invisible-tablet-only { + visibility: hidden !important; } } + +@media screen and (max-width: 1055px) { + .is-invisible-touch { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) { + .is-invisible-desktop { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-invisible-desktop-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) { + .is-invisible-widescreen { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-invisible-widescreen-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1408px) { + .is-invisible-fullhd { + visibility: hidden !important; } } + +.is-marginless { + margin: 0 !important; } + +.is-paddingless { + padding: 0 !important; } + +.is-radiusless { + border-radius: 0 !important; } + +.is-shadowless { + box-shadow: none !important; } + +.is-relative { + position: relative !important; } + +html.theme--documenter-dark { + /* This file contain the overall layout. + * + * The main container is
        that is identified by id #documenter. + */ + /*! + 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 +*/ + /* Comment */ + /* Red */ + /* Orange */ + /* Yellow */ + /* Green */ + /* Blue */ + /* Purple */ } + html.theme--documenter-dark html { + background-color: #1f2424; + font-size: 16px; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + html.theme--documenter-dark article, + html.theme--documenter-dark aside, + html.theme--documenter-dark figure, + html.theme--documenter-dark footer, + html.theme--documenter-dark header, + html.theme--documenter-dark hgroup, + html.theme--documenter-dark section { + display: block; } + html.theme--documenter-dark body, + html.theme--documenter-dark button, + html.theme--documenter-dark input, + html.theme--documenter-dark select, + html.theme--documenter-dark textarea { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; } + html.theme--documenter-dark code, + html.theme--documenter-dark pre { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; } + html.theme--documenter-dark body { + color: #fff; + font-size: 1em; + font-weight: 400; + line-height: 1.5; } + html.theme--documenter-dark a { + color: #1abc9c; + cursor: pointer; + text-decoration: none; } + html.theme--documenter-dark a strong { + color: currentColor; } + html.theme--documenter-dark a:hover { + color: #1dd2af; } + html.theme--documenter-dark code { + background-color: rgba(255, 255, 255, 0.05); + color: #ececec; + font-size: 0.875em; + font-weight: normal; + padding: 0.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: 0.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: 0.875em; + overflow-x: auto; + padding: 1.25rem 1.5rem; + white-space: pre; + word-wrap: normal; } + html.theme--documenter-dark pre code { + background-color: transparent; + color: currentColor; + font-size: 1em; + padding: 0; } + html.theme--documenter-dark table td, + html.theme--documenter-dark table th { + vertical-align: top; } + html.theme--documenter-dark table td:not([align]), + html.theme--documenter-dark table th:not([align]) { + text-align: left; } + html.theme--documenter-dark table th { + color: #f2f2f2; } + html.theme--documenter-dark .box { + background-color: #343c3d; + border-radius: 8px; + box-shadow: none; + color: #fff; + display: block; + padding: 1.25rem; } + html.theme--documenter-dark a.box:hover, html.theme--documenter-dark a.box:focus { + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #1abc9c; } + html.theme--documenter-dark a.box:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #1abc9c; } + html.theme--documenter-dark .button { + background-color: #282f2f; + border-color: #4c5759; + border-width: 1px; + color: #375a7f; + cursor: pointer; + justify-content: center; + padding-bottom: calc(0.375em - 1px); + padding-left: 0.75em; + padding-right: 0.75em; + padding-top: calc(0.375em - 1px); + text-align: center; + white-space: nowrap; } + html.theme--documenter-dark .button strong { + color: inherit; } + html.theme--documenter-dark .button .icon, html.theme--documenter-dark .button .icon.is-small, html.theme--documenter-dark .button #documenter .docs-sidebar form.docs-search > input.icon, html.theme--documenter-dark #documenter .docs-sidebar .button form.docs-search > input.icon, html.theme--documenter-dark .button .icon.is-medium, html.theme--documenter-dark .button .icon.is-large { + height: 1.5em; + width: 1.5em; } + html.theme--documenter-dark .button .icon:first-child:not(:last-child) { + margin-left: calc(-0.375em - 1px); + margin-right: 0.1875em; } + html.theme--documenter-dark .button .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: calc(-0.375em - 1px); } + html.theme--documenter-dark .button .icon:first-child:last-child { + margin-left: calc(-0.375em - 1px); + margin-right: calc(-0.375em - 1px); } + html.theme--documenter-dark .button:hover, html.theme--documenter-dark .button.is-hovered { + border-color: #8c9b9d; + color: #f2f2f2; } + html.theme--documenter-dark .button:focus, html.theme--documenter-dark .button.is-focused { + border-color: #8c9b9d; + color: #17a689; } + html.theme--documenter-dark .button:focus:not(:active), html.theme--documenter-dark .button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .button:active, html.theme--documenter-dark .button.is-active { + border-color: #343c3d; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text { + background-color: transparent; + border-color: transparent; + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .button.is-text:hover, html.theme--documenter-dark .button.is-text.is-hovered, html.theme--documenter-dark .button.is-text:focus, html.theme--documenter-dark .button.is-text.is-focused { + background-color: #282f2f; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text:active, html.theme--documenter-dark .button.is-text.is-active { + background-color: #1d2122; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-text { + background-color: transparent; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-white { + background-color: white; + 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: white; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-white.is-inverted { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .button.is-white.is-inverted:hover, html.theme--documenter-dark .button.is-white.is-inverted.is-hovered { + background-color: black; } + 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: white; } + 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: white; + color: white; } + 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: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white.is-outlined.is-loading::after { + border-color: transparent transparent white white !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: white; + box-shadow: none; + color: white; } + 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: white; } + 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 white white !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: white; } + html.theme--documenter-dark .button.is-black:hover, html.theme--documenter-dark .button.is-black.is-hovered { + background-color: #040404; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black:focus, html.theme--documenter-dark .button.is-black.is-focused { + border-color: transparent; + color: white; } + 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: black; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-black.is-inverted { + background-color: white; + 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: white; + border-color: transparent; + box-shadow: none; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-loading::after { + border-color: transparent transparent white white !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: white; } + 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 white white !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: white; + color: white; } + 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: white; + 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: white; + box-shadow: none; + color: white; } + html.theme--documenter-dark .button.is-light { + background-color: #ecf0f1; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:hover, html.theme--documenter-dark .button.is-light.is-hovered { + background-color: #e5eaec; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:focus, html.theme--documenter-dark .button.is-light.is-focused { + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:focus:not(:active), html.theme--documenter-dark .button.is-light.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } + html.theme--documenter-dark .button.is-light:active, html.theme--documenter-dark .button.is-light.is-active { + background-color: #dde4e6; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light { + background-color: #ecf0f1; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-light.is-inverted { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-hovered { + background-color: #1d2122; } + html.theme--documenter-dark .button.is-light.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted { + background-color: #282f2f; + border-color: transparent; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-loading::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-light.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-outlined.is-focused { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-light.is-outlined.is-loading::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-light.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-light.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #282f2f; + color: #282f2f; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-focused { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #282f2f; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark, html.theme--documenter-dark .content kbd.button { + background-color: #282f2f; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:hover, html.theme--documenter-dark .content kbd.button:hover, html.theme--documenter-dark .button.is-dark.is-hovered, html.theme--documenter-dark .content kbd.button.is-hovered { + background-color: #232829; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:focus, html.theme--documenter-dark .content kbd.button:focus, html.theme--documenter-dark .button.is-dark.is-focused, html.theme--documenter-dark .content kbd.button.is-focused { + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:focus:not(:active), html.theme--documenter-dark .content kbd.button:focus:not(:active), html.theme--documenter-dark .button.is-dark.is-focused:not(:active), html.theme--documenter-dark .content kbd.button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } + html.theme--documenter-dark .button.is-dark:active, html.theme--documenter-dark .content kbd.button:active, html.theme--documenter-dark .button.is-dark.is-active, html.theme--documenter-dark .content kbd.button.is-active { + background-color: #1d2122; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark[disabled], html.theme--documenter-dark .content kbd.button[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark, fieldset[disabled] html.theme--documenter-dark .content kbd.button { + background-color: #282f2f; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-dark.is-inverted, html.theme--documenter-dark .content kbd.button.is-inverted { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted:hover, html.theme--documenter-dark .content kbd.button.is-inverted:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-hovered { + background-color: #dde4e6; } + html.theme--documenter-dark .button.is-dark.is-inverted[disabled], html.theme--documenter-dark .content kbd.button.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted { + background-color: #ecf0f1; + border-color: transparent; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-loading::after, html.theme--documenter-dark .content kbd.button.is-loading::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-dark.is-outlined, html.theme--documenter-dark .content kbd.button.is-outlined { + background-color: transparent; + border-color: #282f2f; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-outlined.is-focused { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark.is-outlined.is-loading::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-dark.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-outlined, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-outlined { + background-color: transparent; + border-color: #282f2f; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-focused { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-primary, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink { + background-color: #375a7f; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:hover, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-hovered.docs-sourcelink { + background-color: #335476; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:focus, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:focus:not(:active), html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus:not(:active), html.theme--documenter-dark .button.is-primary.is-focused:not(:active), html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) { + box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } + html.theme--documenter-dark .button.is-primary:active, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:active, html.theme--documenter-dark .button.is-primary.is-active, html.theme--documenter-dark .docstring > section > a.button.is-active.docs-sourcelink { + background-color: #2f4d6d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary[disabled], html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink { + background-color: #375a7f; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-primary.is-inverted, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-primary.is-inverted[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-loading.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-primary.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #375a7f; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink { + background-color: #375a7f; + border-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .button.is-primary.is-outlined.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after { + border-color: transparent transparent #375a7f #375a7f !important; } + html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-primary.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-outlined, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #375a7f; + box-shadow: none; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink { + background-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #375a7f #375a7f !important; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-link { + background-color: #1abc9c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:hover, html.theme--documenter-dark .button.is-link.is-hovered { + background-color: #18b193; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:focus, html.theme--documenter-dark .button.is-link.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:focus:not(:active), html.theme--documenter-dark .button.is-link.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .button.is-link:active, html.theme--documenter-dark .button.is-link.is-active { + background-color: #17a689; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link { + background-color: #1abc9c; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-link.is-inverted { + background-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-link.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-link.is-outlined { + background-color: transparent; + border-color: #1abc9c; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-outlined.is-focused { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .button.is-link.is-outlined.is-loading::after { + border-color: transparent transparent #1abc9c #1abc9c !important; } + html.theme--documenter-dark .button.is-link.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-link.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-outlined { + background-color: transparent; + border-color: #1abc9c; + box-shadow: none; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #1abc9c #1abc9c !important; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-info { + background-color: #024c7d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:hover, html.theme--documenter-dark .button.is-info.is-hovered { + background-color: #024470; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:focus, html.theme--documenter-dark .button.is-info.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:focus:not(:active), html.theme--documenter-dark .button.is-info.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } + html.theme--documenter-dark .button.is-info:active, html.theme--documenter-dark .button.is-info.is-active { + background-color: #023d64; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info { + background-color: #024c7d; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-info.is-inverted { + background-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-info.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-info.is-outlined { + background-color: transparent; + border-color: #024c7d; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-outlined.is-focused { + background-color: #024c7d; + border-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .button.is-info.is-outlined.is-loading::after { + border-color: transparent transparent #024c7d #024c7d !important; } + html.theme--documenter-dark .button.is-info.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-info.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-outlined { + background-color: transparent; + border-color: #024c7d; + box-shadow: none; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #024c7d #024c7d !important; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-success { + background-color: #008438; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:hover, html.theme--documenter-dark .button.is-success.is-hovered { + background-color: #007733; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:focus, html.theme--documenter-dark .button.is-success.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:focus:not(:active), html.theme--documenter-dark .button.is-success.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } + html.theme--documenter-dark .button.is-success:active, html.theme--documenter-dark .button.is-success.is-active { + background-color: #006b2d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success { + background-color: #008438; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-success.is-inverted { + background-color: #fff; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-success.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-success.is-outlined { + background-color: transparent; + border-color: #008438; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-outlined.is-focused { + background-color: #008438; + border-color: #008438; + color: #fff; } + html.theme--documenter-dark .button.is-success.is-outlined.is-loading::after { + border-color: transparent transparent #008438 #008438 !important; } + html.theme--documenter-dark .button.is-success.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-success.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-outlined { + background-color: transparent; + border-color: #008438; + box-shadow: none; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #008438 #008438 !important; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-warning { + background-color: #ad8100; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:hover, html.theme--documenter-dark .button.is-warning.is-hovered { + background-color: #a07700; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:focus, html.theme--documenter-dark .button.is-warning.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:focus:not(:active), html.theme--documenter-dark .button.is-warning.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } + html.theme--documenter-dark .button.is-warning:active, html.theme--documenter-dark .button.is-warning.is-active { + background-color: #946e00; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning { + background-color: #ad8100; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-warning.is-inverted { + background-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-warning.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ad8100; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-outlined.is-focused { + background-color: #ad8100; + border-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .button.is-warning.is-outlined.is-loading::after { + border-color: transparent transparent #ad8100 #ad8100 !important; } + html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-warning.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ad8100; + box-shadow: none; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ad8100 #ad8100 !important; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-danger { + background-color: #9e1b0d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:hover, html.theme--documenter-dark .button.is-danger.is-hovered { + background-color: #92190c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:focus, html.theme--documenter-dark .button.is-danger.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:focus:not(:active), html.theme--documenter-dark .button.is-danger.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } + html.theme--documenter-dark .button.is-danger:active, html.theme--documenter-dark .button.is-danger.is-active { + background-color: #86170b; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger { + background-color: #9e1b0d; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-danger.is-inverted { + background-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-danger.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-danger.is-outlined { + background-color: transparent; + border-color: #9e1b0d; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-outlined.is-focused { + background-color: #9e1b0d; + border-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .button.is-danger.is-outlined.is-loading::after { + border-color: transparent transparent #9e1b0d #9e1b0d !important; } + html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-danger.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-outlined { + background-color: transparent; + border-color: #9e1b0d; + box-shadow: none; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #9e1b0d #9e1b0d !important; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .button.is-normal { + font-size: 15px; } + html.theme--documenter-dark .button.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .button.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .button[disabled], fieldset[disabled] html.theme--documenter-dark .button { + background-color: #8c9b9d; + border-color: #dbdee0; + box-shadow: none; + opacity: 0.5; } + html.theme--documenter-dark .button.is-fullwidth { + display: flex; + width: 100%; } + html.theme--documenter-dark .button.is-loading { + color: transparent !important; + pointer-events: none; } + html.theme--documenter-dark .button.is-loading::after { + position: absolute; + left: calc(50% - (1em / 2)); + top: calc(50% - (1em / 2)); + position: absolute !important; } + html.theme--documenter-dark .button.is-static { + background-color: #282f2f; + border-color: #5e6d6f; + color: #dbdee0; + box-shadow: none; + pointer-events: none; } + html.theme--documenter-dark .button.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .buttons { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .buttons .button { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .buttons .button:not(:last-child):not(.is-fullwidth) { + margin-right: 0.5rem; } + html.theme--documenter-dark .buttons:last-child { + margin-bottom: -0.5rem; } + html.theme--documenter-dark .buttons:not(:last-child) { + margin-bottom: 1rem; } + html.theme--documenter-dark .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) { + font-size: 1.25rem; } + html.theme--documenter-dark .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) { + font-size: 1.5rem; } + html.theme--documenter-dark .buttons.has-addons .button:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .buttons.has-addons .button:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + margin-right: -1px; } + html.theme--documenter-dark .buttons.has-addons .button:last-child { + margin-right: 0; } + html.theme--documenter-dark .buttons.has-addons .button:hover, html.theme--documenter-dark .buttons.has-addons .button.is-hovered { + z-index: 2; } + html.theme--documenter-dark .buttons.has-addons .button:focus, html.theme--documenter-dark .buttons.has-addons .button.is-focused, html.theme--documenter-dark .buttons.has-addons .button:active, html.theme--documenter-dark .buttons.has-addons .button.is-active, html.theme--documenter-dark .buttons.has-addons .button.is-selected { + z-index: 3; } + html.theme--documenter-dark .buttons.has-addons .button:focus:hover, html.theme--documenter-dark .buttons.has-addons .button.is-focused:hover, html.theme--documenter-dark .buttons.has-addons .button:active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-selected:hover { + z-index: 4; } + html.theme--documenter-dark .buttons.has-addons .button.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .buttons.is-centered { + justify-content: center; } + html.theme--documenter-dark .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + html.theme--documenter-dark .buttons.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + html.theme--documenter-dark .container { + flex-grow: 1; + margin: 0 auto; + position: relative; + width: auto; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .container { + max-width: 992px; } + html.theme--documenter-dark .container.is-fluid { + margin-left: 32px; + margin-right: 32px; + max-width: none; } } + @media screen and (max-width: 1215px) { + html.theme--documenter-dark .container.is-widescreen { + max-width: 1152px; } } + @media screen and (max-width: 1407px) { + html.theme--documenter-dark .container.is-fullhd { + max-width: 1344px; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .container { + max-width: 1152px; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .container { + max-width: 1344px; } } + html.theme--documenter-dark .content li + li { + margin-top: 0.25em; } + html.theme--documenter-dark .content p:not(:last-child), + html.theme--documenter-dark .content dl:not(:last-child), + html.theme--documenter-dark .content ol:not(:last-child), + html.theme--documenter-dark .content ul:not(:last-child), + html.theme--documenter-dark .content blockquote:not(:last-child), + html.theme--documenter-dark .content pre:not(:last-child), + html.theme--documenter-dark .content table:not(:last-child) { + margin-bottom: 1em; } + html.theme--documenter-dark .content h1, + html.theme--documenter-dark .content h2, + html.theme--documenter-dark .content h3, + html.theme--documenter-dark .content h4, + html.theme--documenter-dark .content h5, + html.theme--documenter-dark .content h6 { + color: #f2f2f2; + font-weight: 600; + line-height: 1.125; } + html.theme--documenter-dark .content h1 { + font-size: 2em; + margin-bottom: 0.5em; } + html.theme--documenter-dark .content h1:not(:first-child) { + margin-top: 1em; } + html.theme--documenter-dark .content h2 { + font-size: 1.75em; + margin-bottom: 0.5714em; } + html.theme--documenter-dark .content h2:not(:first-child) { + margin-top: 1.1428em; } + html.theme--documenter-dark .content h3 { + font-size: 1.5em; + margin-bottom: 0.6666em; } + html.theme--documenter-dark .content h3:not(:first-child) { + margin-top: 1.3333em; } + html.theme--documenter-dark .content h4 { + font-size: 1.25em; + margin-bottom: 0.8em; } + html.theme--documenter-dark .content h5 { + font-size: 1.125em; + margin-bottom: 0.8888em; } + html.theme--documenter-dark .content h6 { + font-size: 1em; + margin-bottom: 1em; } + html.theme--documenter-dark .content blockquote { + background-color: #282f2f; + border-left: 5px solid #5e6d6f; + padding: 1.25em 1.5em; } + html.theme--documenter-dark .content ol { + list-style-position: outside; + margin-left: 2em; + margin-top: 1em; } + html.theme--documenter-dark .content ol:not([type]) { + list-style-type: decimal; } + html.theme--documenter-dark .content ol.is-lower-alpha:not([type]) { + list-style-type: lower-alpha; } + html.theme--documenter-dark .content ol.is-lower-roman:not([type]) { + list-style-type: lower-roman; } + html.theme--documenter-dark .content ol.is-upper-alpha:not([type]) { + list-style-type: upper-alpha; } + html.theme--documenter-dark .content ol.is-upper-roman:not([type]) { + list-style-type: upper-roman; } + html.theme--documenter-dark .content ul { + list-style: disc outside; + margin-left: 2em; + margin-top: 1em; } + html.theme--documenter-dark .content ul ul { + list-style-type: circle; + margin-top: 0.5em; } + html.theme--documenter-dark .content ul ul ul { + list-style-type: square; } + html.theme--documenter-dark .content dd { + margin-left: 2em; } + html.theme--documenter-dark .content figure { + margin-left: 2em; + margin-right: 2em; + text-align: center; } + html.theme--documenter-dark .content figure:not(:first-child) { + margin-top: 2em; } + html.theme--documenter-dark .content figure:not(:last-child) { + margin-bottom: 2em; } + html.theme--documenter-dark .content figure img { + display: inline-block; } + html.theme--documenter-dark .content figure figcaption { + font-style: italic; } + html.theme--documenter-dark .content pre { + -webkit-overflow-scrolling: touch; + overflow-x: auto; + padding: 0; + white-space: pre; + word-wrap: normal; } + html.theme--documenter-dark .content sup, + html.theme--documenter-dark .content sub { + font-size: 75%; } + html.theme--documenter-dark .content table { + width: 100%; } + html.theme--documenter-dark .content table td, + html.theme--documenter-dark .content table th { + border: 1px solid #5e6d6f; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + html.theme--documenter-dark .content table th { + color: #f2f2f2; } + html.theme--documenter-dark .content table th:not([align]) { + text-align: left; } + html.theme--documenter-dark .content table thead td, + html.theme--documenter-dark .content table thead th { + border-width: 0 0 2px; + color: #f2f2f2; } + html.theme--documenter-dark .content table tfoot td, + html.theme--documenter-dark .content table tfoot th { + border-width: 2px 0 0; + color: #f2f2f2; } + html.theme--documenter-dark .content table tbody tr:last-child td, + html.theme--documenter-dark .content table tbody tr:last-child th { + border-bottom-width: 0; } + html.theme--documenter-dark .content .tabs li + li { + margin-top: 0; } + html.theme--documenter-dark .content.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.content { + font-size: 0.85em; } + html.theme--documenter-dark .content.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .content.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .icon { + align-items: center; + display: inline-flex; + justify-content: center; + height: 1.5rem; + width: 1.5rem; } + html.theme--documenter-dark .icon.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.icon { + height: 1rem; + width: 1rem; } + html.theme--documenter-dark .icon.is-medium { + height: 2rem; + width: 2rem; } + html.theme--documenter-dark .icon.is-large { + height: 3rem; + width: 3rem; } + html.theme--documenter-dark .image, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img { + display: block; + position: relative; } + html.theme--documenter-dark .image img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img { + display: block; + height: auto; + width: 100%; } + html.theme--documenter-dark .image img.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img.is-rounded { + border-radius: 290486px; } + html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img, + html.theme--documenter-dark .image.is-square .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img, + html.theme--documenter-dark .image.is-1by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img, + html.theme--documenter-dark .image.is-5by4 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img, + html.theme--documenter-dark .image.is-4by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img, + html.theme--documenter-dark .image.is-3by2 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img, + html.theme--documenter-dark .image.is-5by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img, + html.theme--documenter-dark .image.is-16by9 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img, + html.theme--documenter-dark .image.is-2by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img, + html.theme--documenter-dark .image.is-3by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img, + html.theme--documenter-dark .image.is-4by5 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img, + html.theme--documenter-dark .image.is-3by4 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img, + html.theme--documenter-dark .image.is-2by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img, + html.theme--documenter-dark .image.is-3by5 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img, + html.theme--documenter-dark .image.is-9by16 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img, + html.theme--documenter-dark .image.is-1by2 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img, + html.theme--documenter-dark .image.is-1by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio { + height: 100%; + width: 100%; } + html.theme--documenter-dark .image.is-square, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square, html.theme--documenter-dark .image.is-1by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 { + padding-top: 100%; } + html.theme--documenter-dark .image.is-5by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 { + padding-top: 80%; } + html.theme--documenter-dark .image.is-4by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 { + padding-top: 75%; } + html.theme--documenter-dark .image.is-3by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 { + padding-top: 66.6666%; } + html.theme--documenter-dark .image.is-5by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 { + padding-top: 60%; } + html.theme--documenter-dark .image.is-16by9, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 { + padding-top: 56.25%; } + html.theme--documenter-dark .image.is-2by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 { + padding-top: 50%; } + html.theme--documenter-dark .image.is-3by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 { + padding-top: 33.3333%; } + html.theme--documenter-dark .image.is-4by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 { + padding-top: 125%; } + html.theme--documenter-dark .image.is-3by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 { + padding-top: 133.3333%; } + html.theme--documenter-dark .image.is-2by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 { + padding-top: 150%; } + html.theme--documenter-dark .image.is-3by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 { + padding-top: 166.6666%; } + html.theme--documenter-dark .image.is-9by16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 { + padding-top: 177.7777%; } + html.theme--documenter-dark .image.is-1by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 { + padding-top: 200%; } + html.theme--documenter-dark .image.is-1by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 { + padding-top: 300%; } + html.theme--documenter-dark .image.is-16x16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16x16 { + height: 16px; + width: 16px; } + html.theme--documenter-dark .image.is-24x24, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-24x24 { + height: 24px; + width: 24px; } + html.theme--documenter-dark .image.is-32x32, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-32x32 { + height: 32px; + width: 32px; } + html.theme--documenter-dark .image.is-48x48, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-48x48 { + height: 48px; + width: 48px; } + html.theme--documenter-dark .image.is-64x64, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-64x64 { + height: 64px; + width: 64px; } + html.theme--documenter-dark .image.is-96x96, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-96x96 { + height: 96px; + width: 96px; } + html.theme--documenter-dark .image.is-128x128, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-128x128 { + height: 128px; + width: 128px; } + html.theme--documenter-dark .notification { + background-color: #282f2f; + border-radius: 0.4em; + padding: 1.25rem 2.5rem 1.25rem 1.5rem; + position: relative; } + html.theme--documenter-dark .notification a:not(.button):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + html.theme--documenter-dark .notification strong { + color: currentColor; } + html.theme--documenter-dark .notification code, + html.theme--documenter-dark .notification pre { + background: white; } + html.theme--documenter-dark .notification pre code { + background: transparent; } + html.theme--documenter-dark .notification > .delete { + position: absolute; + right: 0.5rem; + top: 0.5rem; } + html.theme--documenter-dark .notification .title, + html.theme--documenter-dark .notification .subtitle, + html.theme--documenter-dark .notification .content { + color: currentColor; } + html.theme--documenter-dark .notification.is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .notification.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .notification.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .notification.is-dark, html.theme--documenter-dark .content kbd.notification { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .notification.is-primary, html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .notification.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .notification.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .notification.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .notification.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .notification.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .progress { + -moz-appearance: none; + -webkit-appearance: none; + border: none; + border-radius: 290486px; + display: block; + height: 15px; + overflow: hidden; + padding: 0; + width: 100%; } + html.theme--documenter-dark .progress::-webkit-progress-bar { + background-color: #5e6d6f; } + html.theme--documenter-dark .progress::-webkit-progress-value { + background-color: #dbdee0; } + html.theme--documenter-dark .progress::-moz-progress-bar { + background-color: #dbdee0; } + html.theme--documenter-dark .progress::-ms-fill { + background-color: #dbdee0; + border: none; } + html.theme--documenter-dark .progress.is-white::-webkit-progress-value { + background-color: white; } + html.theme--documenter-dark .progress.is-white::-moz-progress-bar { + background-color: white; } + html.theme--documenter-dark .progress.is-white::-ms-fill { + background-color: white; } + html.theme--documenter-dark .progress.is-white:indeterminate { + background-image: linear-gradient(to right, white 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-black::-webkit-progress-value { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black::-moz-progress-bar { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black::-ms-fill { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black:indeterminate { + background-image: linear-gradient(to right, #0a0a0a 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-light::-webkit-progress-value { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light::-moz-progress-bar { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light::-ms-fill { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light:indeterminate { + background-image: linear-gradient(to right, #ecf0f1 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-dark::-webkit-progress-value, html.theme--documenter-dark .content kbd.progress::-webkit-progress-value { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark::-moz-progress-bar, html.theme--documenter-dark .content kbd.progress::-moz-progress-bar { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark::-ms-fill, html.theme--documenter-dark .content kbd.progress::-ms-fill { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark:indeterminate, html.theme--documenter-dark .content kbd.progress:indeterminate { + background-image: linear-gradient(to right, #282f2f 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-primary::-webkit-progress-value, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary::-moz-progress-bar, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary::-ms-fill, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-ms-fill { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary:indeterminate, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink:indeterminate { + background-image: linear-gradient(to right, #375a7f 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-link::-webkit-progress-value { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link::-moz-progress-bar { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link::-ms-fill { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link:indeterminate { + background-image: linear-gradient(to right, #1abc9c 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-info::-webkit-progress-value { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info::-moz-progress-bar { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info::-ms-fill { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info:indeterminate { + background-image: linear-gradient(to right, #024c7d 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-success::-webkit-progress-value { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success::-moz-progress-bar { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success::-ms-fill { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success:indeterminate { + background-image: linear-gradient(to right, #008438 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-warning::-webkit-progress-value { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning::-moz-progress-bar { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning::-ms-fill { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning:indeterminate { + background-image: linear-gradient(to right, #ad8100 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-danger::-webkit-progress-value { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger::-moz-progress-bar { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger::-ms-fill { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger:indeterminate { + background-image: linear-gradient(to right, #9e1b0d 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress:indeterminate { + animation-duration: 1.5s; + animation-iteration-count: infinite; + animation-name: moveIndeterminate; + animation-timing-function: linear; + background-color: #5e6d6f; + background-image: linear-gradient(to right, #fff 30%, #5e6d6f 30%); + background-position: top left; + background-repeat: no-repeat; + background-size: 150% 150%; } + html.theme--documenter-dark .progress:indeterminate::-webkit-progress-bar { + background-color: transparent; } + html.theme--documenter-dark .progress:indeterminate::-moz-progress-bar { + background-color: transparent; } + html.theme--documenter-dark .progress.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.progress { + height: 0.85em; } + html.theme--documenter-dark .progress.is-medium { + height: 1.25rem; } + html.theme--documenter-dark .progress.is-large { + height: 1.5rem; } + +@keyframes moveIndeterminate { + from { + background-position: 200% 0; } + to { + background-position: -200% 0; } } + html.theme--documenter-dark .table { + background-color: #343c3d; + color: #fff; } + html.theme--documenter-dark .table td, + html.theme--documenter-dark .table th { + border: 1px solid #5e6d6f; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + html.theme--documenter-dark .table td.is-white, + html.theme--documenter-dark .table th.is-white { + background-color: white; + border-color: white; + 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: white; } + html.theme--documenter-dark .table td.is-light, + html.theme--documenter-dark .table th.is-light { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .table td.is-dark, + html.theme--documenter-dark .table th.is-dark { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .table td.is-primary, + html.theme--documenter-dark .table th.is-primary { + background-color: #375a7f; + border-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table td.is-link, + html.theme--documenter-dark .table th.is-link { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .table td.is-info, + html.theme--documenter-dark .table th.is-info { + background-color: #024c7d; + border-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .table td.is-success, + html.theme--documenter-dark .table th.is-success { + background-color: #008438; + border-color: #008438; + color: #fff; } + html.theme--documenter-dark .table td.is-warning, + html.theme--documenter-dark .table th.is-warning { + background-color: #ad8100; + border-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .table td.is-danger, + html.theme--documenter-dark .table th.is-danger { + background-color: #9e1b0d; + border-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .table td.is-narrow, + html.theme--documenter-dark .table th.is-narrow { + white-space: nowrap; + width: 1%; } + html.theme--documenter-dark .table td.is-selected, + html.theme--documenter-dark .table th.is-selected { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table td.is-selected a, + html.theme--documenter-dark .table td.is-selected strong, + html.theme--documenter-dark .table th.is-selected a, + html.theme--documenter-dark .table th.is-selected strong { + color: currentColor; } + html.theme--documenter-dark .table th { + color: #f2f2f2; } + html.theme--documenter-dark .table th:not([align]) { + text-align: left; } + html.theme--documenter-dark .table tr.is-selected { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table tr.is-selected a, + html.theme--documenter-dark .table tr.is-selected strong { + color: currentColor; } + html.theme--documenter-dark .table tr.is-selected td, + html.theme--documenter-dark .table tr.is-selected th { + border-color: #fff; + color: currentColor; } + html.theme--documenter-dark .table thead { + background-color: transparent; } + 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: transparent; } + 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: transparent; } + html.theme--documenter-dark .table tbody tr:last-child td, + html.theme--documenter-dark .table tbody tr:last-child th { + border-bottom-width: 0; } + html.theme--documenter-dark .table.is-bordered td, + html.theme--documenter-dark .table.is-bordered th { + border-width: 1px; } + html.theme--documenter-dark .table.is-bordered tr:last-child td, + html.theme--documenter-dark .table.is-bordered tr:last-child th { + border-bottom-width: 1px; } + html.theme--documenter-dark .table.is-fullwidth { + width: 100%; } + html.theme--documenter-dark .table.is-hoverable tbody tr:not(.is-selected):hover { + background-color: #282f2f; } + html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover { + background-color: #282f2f; } + html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) { + background-color: #2d3435; } + html.theme--documenter-dark .table.is-narrow td, + html.theme--documenter-dark .table.is-narrow th { + padding: 0.25em 0.5em; } + html.theme--documenter-dark .table.is-striped tbody tr:not(.is-selected):nth-child(even) { + background-color: #282f2f; } + html.theme--documenter-dark .table-container { + -webkit-overflow-scrolling: touch; + overflow: auto; + overflow-y: hidden; + max-width: 100%; } + html.theme--documenter-dark .tags { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .tags .tag, html.theme--documenter-dark .tags .content kbd, html.theme--documenter-dark .content .tags kbd, html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .tags .tag:not(:last-child), html.theme--documenter-dark .tags .content kbd:not(:last-child), html.theme--documenter-dark .content .tags kbd:not(:last-child), html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0.5rem; } + html.theme--documenter-dark .tags:last-child { + margin-bottom: -0.5rem; } + html.theme--documenter-dark .tags:not(:last-child) { + margin-bottom: 1rem; } + html.theme--documenter-dark .tags.are-medium .tag:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .content kbd:not(.is-normal):not(.is-large), html.theme--documenter-dark .content .tags.are-medium kbd:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large) { + font-size: 15px; } + html.theme--documenter-dark .tags.are-large .tag:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .content kbd:not(.is-normal):not(.is-medium), html.theme--documenter-dark .content .tags.are-large kbd:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium) { + font-size: 1.25rem; } + html.theme--documenter-dark .tags.is-centered { + justify-content: center; } + html.theme--documenter-dark .tags.is-centered .tag, html.theme--documenter-dark .tags.is-centered .content kbd, html.theme--documenter-dark .content .tags.is-centered kbd, html.theme--documenter-dark .tags.is-centered .docstring > section > a.docs-sourcelink { + margin-right: 0.25rem; + margin-left: 0.25rem; } + html.theme--documenter-dark .tags.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .tags.is-right .tag:not(:first-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:first-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0.5rem; } + html.theme--documenter-dark .tags.is-right .tag:not(:last-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:last-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0; } + html.theme--documenter-dark .tags.has-addons .tag, html.theme--documenter-dark .tags.has-addons .content kbd, html.theme--documenter-dark .content .tags.has-addons kbd, html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink { + margin-right: 0; } + html.theme--documenter-dark .tags.has-addons .tag:not(:first-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:first-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0; + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .tags.has-addons .tag:not(:last-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:last-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .tag:not(body), html.theme--documenter-dark .content kbd:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) { + align-items: center; + background-color: #282f2f; + border-radius: 0.4em; + color: #fff; + display: inline-flex; + font-size: 0.85em; + height: 2em; + justify-content: center; + line-height: 1.5; + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + html.theme--documenter-dark .tag:not(body) .delete, html.theme--documenter-dark .content kbd:not(body) .delete, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .delete { + margin-left: 0.25rem; + margin-right: -0.375rem; } + html.theme--documenter-dark .tag.is-white:not(body), html.theme--documenter-dark .content kbd.is-white:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-white:not(body) { + background-color: white; + 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: white; } + html.theme--documenter-dark .tag.is-light:not(body), html.theme--documenter-dark .content kbd.is-light:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-light:not(body) { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .tag.is-dark:not(body), html.theme--documenter-dark .content kbd:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-dark:not(body), html.theme--documenter-dark .content .docstring > section > kbd:not(body) { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .tag.is-primary:not(body), html.theme--documenter-dark .content kbd.is-primary:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .tag.is-link:not(body), html.theme--documenter-dark .content kbd.is-link:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-link:not(body) { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .tag.is-info:not(body), html.theme--documenter-dark .content kbd.is-info:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-info:not(body) { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .tag.is-success:not(body), html.theme--documenter-dark .content kbd.is-success:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-success:not(body) { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .tag.is-warning:not(body), html.theme--documenter-dark .content kbd.is-warning:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-warning:not(body) { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .tag.is-danger:not(body), html.theme--documenter-dark .content kbd.is-danger:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-danger:not(body) { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .tag.is-normal:not(body), html.theme--documenter-dark .content kbd.is-normal:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-normal:not(body) { + font-size: 0.85em; } + html.theme--documenter-dark .tag.is-medium:not(body), html.theme--documenter-dark .content kbd.is-medium:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-medium:not(body) { + font-size: 15px; } + html.theme--documenter-dark .tag.is-large:not(body), html.theme--documenter-dark .content kbd.is-large:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-large:not(body) { + font-size: 1.25rem; } + html.theme--documenter-dark .tag:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .content kbd:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child) { + margin-left: -0.375em; + margin-right: 0.1875em; } + html.theme--documenter-dark .tag:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .content kbd:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: -0.375em; } + html.theme--documenter-dark .tag:not(body) .icon:first-child:last-child, html.theme--documenter-dark .content kbd:not(body) .icon:first-child:last-child, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child { + margin-left: -0.375em; + margin-right: -0.375em; } + html.theme--documenter-dark .tag.is-delete:not(body), html.theme--documenter-dark .content kbd.is-delete:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body) { + margin-left: 1px; + padding: 0; + position: relative; + width: 2em; } + html.theme--documenter-dark .tag.is-delete:not(body)::before, html.theme--documenter-dark .content kbd.is-delete:not(body)::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::before, html.theme--documenter-dark .tag.is-delete:not(body)::after, html.theme--documenter-dark .content kbd.is-delete:not(body)::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + background-color: currentColor; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + html.theme--documenter-dark .tag.is-delete:not(body)::before, html.theme--documenter-dark .content kbd.is-delete:not(body)::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::before { + height: 1px; + width: 50%; } + html.theme--documenter-dark .tag.is-delete:not(body)::after, html.theme--documenter-dark .content kbd.is-delete:not(body)::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + height: 50%; + width: 1px; } + html.theme--documenter-dark .tag.is-delete:not(body):hover, html.theme--documenter-dark .content kbd.is-delete:not(body):hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):hover, html.theme--documenter-dark .tag.is-delete:not(body):focus, html.theme--documenter-dark .content kbd.is-delete:not(body):focus, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):focus { + background-color: #1d2122; } + html.theme--documenter-dark .tag.is-delete:not(body):active, html.theme--documenter-dark .content kbd.is-delete:not(body):active, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):active { + background-color: #111414; } + html.theme--documenter-dark .tag.is-rounded:not(body), html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:not(body), html.theme--documenter-dark .content kbd.is-rounded:not(body), html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-rounded:not(body) { + border-radius: 290486px; } + html.theme--documenter-dark a.tag:hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:hover { + text-decoration: underline; } + html.theme--documenter-dark .title, + html.theme--documenter-dark .subtitle { + word-break: break-word; } + html.theme--documenter-dark .title em, + html.theme--documenter-dark .title span, + html.theme--documenter-dark .subtitle em, + html.theme--documenter-dark .subtitle span { + font-weight: inherit; } + html.theme--documenter-dark .title sub, + html.theme--documenter-dark .subtitle sub { + font-size: 0.75em; } + html.theme--documenter-dark .title sup, + html.theme--documenter-dark .subtitle sup { + font-size: 0.75em; } + html.theme--documenter-dark .title .tag, html.theme--documenter-dark .title .content kbd, html.theme--documenter-dark .content .title kbd, html.theme--documenter-dark .title .docstring > section > a.docs-sourcelink, + html.theme--documenter-dark .subtitle .tag, + html.theme--documenter-dark .subtitle .content kbd, + html.theme--documenter-dark .content .subtitle kbd, + html.theme--documenter-dark .subtitle .docstring > section > a.docs-sourcelink { + vertical-align: middle; } + html.theme--documenter-dark .title { + color: #fff; + font-size: 2rem; + font-weight: 500; + line-height: 1.125; } + html.theme--documenter-dark .title strong { + color: inherit; + font-weight: inherit; } + html.theme--documenter-dark .title + .highlight { + margin-top: -0.75rem; } + html.theme--documenter-dark .title:not(.is-spaced) + .subtitle { + margin-top: -1.25rem; } + html.theme--documenter-dark .title.is-1 { + font-size: 3rem; } + html.theme--documenter-dark .title.is-2 { + font-size: 2.5rem; } + html.theme--documenter-dark .title.is-3 { + font-size: 2rem; } + html.theme--documenter-dark .title.is-4 { + font-size: 1.5rem; } + html.theme--documenter-dark .title.is-5 { + font-size: 1.25rem; } + html.theme--documenter-dark .title.is-6 { + font-size: 15px; } + html.theme--documenter-dark .title.is-7 { + font-size: 0.85em; } + html.theme--documenter-dark .subtitle { + color: #8c9b9d; + font-size: 1.25rem; + font-weight: 400; + line-height: 1.25; } + html.theme--documenter-dark .subtitle strong { + color: #8c9b9d; + font-weight: 600; } + html.theme--documenter-dark .subtitle:not(.is-spaced) + .title { + margin-top: -1.25rem; } + html.theme--documenter-dark .subtitle.is-1 { + font-size: 3rem; } + html.theme--documenter-dark .subtitle.is-2 { + font-size: 2.5rem; } + html.theme--documenter-dark .subtitle.is-3 { + font-size: 2rem; } + html.theme--documenter-dark .subtitle.is-4 { + font-size: 1.5rem; } + html.theme--documenter-dark .subtitle.is-5 { + font-size: 1.25rem; } + html.theme--documenter-dark .subtitle.is-6 { + font-size: 15px; } + html.theme--documenter-dark .subtitle.is-7 { + font-size: 0.85em; } + html.theme--documenter-dark .heading { + display: block; + font-size: 11px; + letter-spacing: 1px; + margin-bottom: 5px; + text-transform: uppercase; } + html.theme--documenter-dark .highlight { + font-weight: 400; + max-width: 100%; + overflow: hidden; + padding: 0; } + html.theme--documenter-dark .highlight pre { + overflow: auto; + max-width: 100%; } + html.theme--documenter-dark .number { + align-items: center; + background-color: #282f2f; + border-radius: 290486px; + display: inline-flex; + font-size: 1.25rem; + height: 2em; + justify-content: center; + margin-right: 1.5rem; + min-width: 2.5em; + padding: 0.25rem 0.5rem; + text-align: center; + vertical-align: top; } + html.theme--documenter-dark .select select, html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + background-color: #1f2424; + border-color: #5e6d6f; + border-radius: 0.4em; + color: #dbdee0; } + html.theme--documenter-dark .select select::-moz-placeholder, html.theme--documenter-dark .textarea::-moz-placeholder, html.theme--documenter-dark .input::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select::-webkit-input-placeholder, html.theme--documenter-dark .textarea::-webkit-input-placeholder, html.theme--documenter-dark .input::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select:-moz-placeholder, html.theme--documenter-dark .textarea:-moz-placeholder, html.theme--documenter-dark .input:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select:-ms-input-placeholder, html.theme--documenter-dark .textarea:-ms-input-placeholder, html.theme--documenter-dark .input:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select:hover, html.theme--documenter-dark .textarea:hover, html.theme--documenter-dark .input:hover, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:hover, html.theme--documenter-dark .select select.is-hovered, html.theme--documenter-dark .is-hovered.textarea, html.theme--documenter-dark .is-hovered.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-hovered { + border-color: #8c9b9d; } + html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .select select.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + border-color: #1abc9c; + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .select select[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], fieldset[disabled] html.theme--documenter-dark .select select, fieldset[disabled] html.theme--documenter-dark .textarea, fieldset[disabled] html.theme--documenter-dark .input, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + background-color: #8c9b9d; + border-color: #282f2f; + box-shadow: none; + color: white; } + html.theme--documenter-dark .select select[disabled]::-moz-placeholder, html.theme--documenter-dark .textarea[disabled]::-moz-placeholder, html.theme--documenter-dark .input[disabled]::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .select select::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .input::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .select select[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .textarea[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .input[disabled]::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .select select::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .input::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .select select[disabled]:-moz-placeholder, html.theme--documenter-dark .textarea[disabled]:-moz-placeholder, html.theme--documenter-dark .input[disabled]:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .select select:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .input:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .select select[disabled]:-ms-input-placeholder, html.theme--documenter-dark .textarea[disabled]:-ms-input-placeholder, html.theme--documenter-dark .input[disabled]:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .select select:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .input:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1); + max-width: 100%; + width: 100%; } + html.theme--documenter-dark .textarea[readonly], html.theme--documenter-dark .input[readonly], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[readonly] { + box-shadow: none; } + html.theme--documenter-dark .is-white.textarea, html.theme--documenter-dark .is-white.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white { + border-color: white; } + 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: 0.85em; } + html.theme--documenter-dark .is-medium.textarea, html.theme--documenter-dark .is-medium.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .is-large.textarea, html.theme--documenter-dark .is-large.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .is-fullwidth.textarea, html.theme--documenter-dark .is-fullwidth.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-fullwidth { + display: block; + width: 100%; } + html.theme--documenter-dark .is-inline.textarea, html.theme--documenter-dark .is-inline.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-inline { + display: inline; + width: auto; } + html.theme--documenter-dark .input.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .input.is-static, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-static { + background-color: transparent; + border-color: transparent; + box-shadow: none; + padding-left: 0; + padding-right: 0; } + html.theme--documenter-dark .textarea { + display: block; + max-width: 100%; + min-width: 100%; + padding: 0.625em; + resize: vertical; } + html.theme--documenter-dark .textarea:not([rows]) { + max-height: 600px; + min-height: 120px; } + html.theme--documenter-dark .textarea[rows] { + height: initial; } + html.theme--documenter-dark .textarea.has-fixed-size { + resize: none; } + html.theme--documenter-dark .radio, html.theme--documenter-dark .checkbox { + cursor: pointer; + display: inline-block; + line-height: 1.25; + position: relative; } + html.theme--documenter-dark .radio input, html.theme--documenter-dark .checkbox input { + cursor: pointer; } + html.theme--documenter-dark .radio:hover, html.theme--documenter-dark .checkbox:hover { + color: #8c9b9d; } + html.theme--documenter-dark .radio[disabled], html.theme--documenter-dark .checkbox[disabled], fieldset[disabled] html.theme--documenter-dark .radio, fieldset[disabled] html.theme--documenter-dark .checkbox { + color: white; + cursor: not-allowed; } + html.theme--documenter-dark .radio + .radio { + margin-left: 0.5em; } + html.theme--documenter-dark .select { + display: inline-block; + max-width: 100%; + position: relative; + vertical-align: top; } + html.theme--documenter-dark .select:not(.is-multiple) { + height: 2.25em; } + html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after { + border-color: #1abc9c; + right: 1.125em; + z-index: 4; } + html.theme--documenter-dark .select.is-rounded select, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select select { + border-radius: 290486px; + padding-left: 1em; } + html.theme--documenter-dark .select select { + cursor: pointer; + display: block; + font-size: 1em; + max-width: 100%; + outline: none; } + html.theme--documenter-dark .select select::-ms-expand { + display: none; } + html.theme--documenter-dark .select select[disabled]:hover, fieldset[disabled] html.theme--documenter-dark .select select:hover { + border-color: #282f2f; } + html.theme--documenter-dark .select select:not([multiple]) { + padding-right: 2.5em; } + html.theme--documenter-dark .select select[multiple] { + height: auto; + padding: 0; } + html.theme--documenter-dark .select select[multiple] option { + padding: 0.5em 1em; } + html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading):hover::after { + border-color: #8c9b9d; } + html.theme--documenter-dark .select.is-white:not(:hover)::after { + border-color: white; } + html.theme--documenter-dark .select.is-white select { + border-color: white; } + 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: black; } + 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: 0.85em; } + html.theme--documenter-dark .select.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .select.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .select.is-disabled::after { + border-color: white; } + html.theme--documenter-dark .select.is-fullwidth { + width: 100%; } + html.theme--documenter-dark .select.is-fullwidth select { + width: 100%; } + html.theme--documenter-dark .select.is-loading::after { + margin-top: 0; + position: absolute; + right: 0.625em; + top: 0.625em; + transform: none; } + html.theme--documenter-dark .select.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.85em; } + html.theme--documenter-dark .select.is-loading.is-medium:after { + font-size: 1.25rem; } + html.theme--documenter-dark .select.is-loading.is-large:after { + font-size: 1.5rem; } + html.theme--documenter-dark .file { + align-items: stretch; + display: flex; + justify-content: flex-start; + position: relative; } + html.theme--documenter-dark .file.is-white .file-cta { + background-color: white; + 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: white; } + 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: white; } + 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: white; } + html.theme--documenter-dark .file.is-black:active .file-cta, html.theme--documenter-dark .file.is-black.is-active .file-cta { + background-color: black; + border-color: transparent; + color: white; } + html.theme--documenter-dark .file.is-light .file-cta { + background-color: #ecf0f1; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-light:hover .file-cta, html.theme--documenter-dark .file.is-light.is-hovered .file-cta { + background-color: #e5eaec; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-light:focus .file-cta, html.theme--documenter-dark .file.is-light.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(236, 240, 241, 0.25); + color: #282f2f; } + html.theme--documenter-dark .file.is-light:active .file-cta, html.theme--documenter-dark .file.is-light.is-active .file-cta { + background-color: #dde4e6; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-dark .file-cta, html.theme--documenter-dark .content kbd.file .file-cta { + background-color: #282f2f; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:hover .file-cta, html.theme--documenter-dark .content kbd.file:hover .file-cta, html.theme--documenter-dark .file.is-dark.is-hovered .file-cta, html.theme--documenter-dark .content kbd.file.is-hovered .file-cta { + background-color: #232829; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:focus .file-cta, html.theme--documenter-dark .content kbd.file:focus .file-cta, html.theme--documenter-dark .file.is-dark.is-focused .file-cta, html.theme--documenter-dark .content kbd.file.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(40, 47, 47, 0.25); + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:active .file-cta, html.theme--documenter-dark .content kbd.file:active .file-cta, html.theme--documenter-dark .file.is-dark.is-active .file-cta, html.theme--documenter-dark .content kbd.file.is-active .file-cta { + background-color: #1d2122; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-primary .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink .file-cta { + background-color: #375a7f; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-primary:hover .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:hover .file-cta, html.theme--documenter-dark .file.is-primary.is-hovered .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-hovered.docs-sourcelink .file-cta { + background-color: #335476; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-primary:focus .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:focus .file-cta, html.theme--documenter-dark .file.is-primary.is-focused .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-focused.docs-sourcelink .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(55, 90, 127, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-primary:active .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:active .file-cta, html.theme--documenter-dark .file.is-primary.is-active .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-active.docs-sourcelink .file-cta { + background-color: #2f4d6d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link .file-cta { + background-color: #1abc9c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link:hover .file-cta, html.theme--documenter-dark .file.is-link.is-hovered .file-cta { + background-color: #18b193; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link:focus .file-cta, html.theme--documenter-dark .file.is-link.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(26, 188, 156, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-link:active .file-cta, html.theme--documenter-dark .file.is-link.is-active .file-cta { + background-color: #17a689; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info .file-cta { + background-color: #024c7d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info:hover .file-cta, html.theme--documenter-dark .file.is-info.is-hovered .file-cta { + background-color: #024470; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info:focus .file-cta, html.theme--documenter-dark .file.is-info.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(2, 76, 125, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-info:active .file-cta, html.theme--documenter-dark .file.is-info.is-active .file-cta { + background-color: #023d64; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success .file-cta { + background-color: #008438; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success:hover .file-cta, html.theme--documenter-dark .file.is-success.is-hovered .file-cta { + background-color: #007733; + 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: 0.85em; } + html.theme--documenter-dark .file.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .file.is-medium .file-icon .fa { + font-size: 21px; } + html.theme--documenter-dark .file.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .file.is-large .file-icon .fa { + font-size: 28px; } + html.theme--documenter-dark .file.has-name .file-cta { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .file.has-name .file-name { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .file.has-name.is-empty .file-cta { + border-radius: 0.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: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .file.is-boxed.has-name .file-name { + border-radius: 0 0 0.4em 0.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 0.4em 0.4em 0; } + html.theme--documenter-dark .file.is-right .file-name { + border-radius: 0.4em 0 0 0.4em; + border-width: 1px 0 1px 1px; + order: -1; } + html.theme--documenter-dark .file-label { + align-items: stretch; + display: flex; + cursor: pointer; + justify-content: flex-start; + overflow: hidden; + position: relative; } + html.theme--documenter-dark .file-label:hover .file-cta { + background-color: #e5eaec; + color: #282f2f; } + html.theme--documenter-dark .file-label:hover .file-name { + border-color: #596668; } + html.theme--documenter-dark .file-label:active .file-cta { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .file-label:active .file-name { + border-color: #535f61; } + html.theme--documenter-dark .file-input { + height: 100%; + left: 0; + opacity: 0; + outline: none; + position: absolute; + top: 0; + width: 100%; } + html.theme--documenter-dark .file-cta, + html.theme--documenter-dark .file-name { + border-color: #5e6d6f; + border-radius: 0.4em; + font-size: 1em; + padding-left: 1em; + padding-right: 1em; + white-space: nowrap; } + html.theme--documenter-dark .file-cta { + background-color: #ecf0f1; + color: #343c3d; } + html.theme--documenter-dark .file-name { + border-color: #5e6d6f; + border-style: solid; + border-width: 1px 1px 1px 0; + display: block; + max-width: 16em; + overflow: hidden; + text-align: left; + text-overflow: ellipsis; } + html.theme--documenter-dark .file-icon { + align-items: center; + display: flex; + height: 1em; + justify-content: center; + margin-right: 0.5em; + width: 1em; } + html.theme--documenter-dark .file-icon .fa { + font-size: 14px; } + html.theme--documenter-dark .label { + color: #282f2f; + display: block; + font-size: 15px; + font-weight: 700; } + html.theme--documenter-dark .label:not(:last-child) { + margin-bottom: 0.5em; } + html.theme--documenter-dark .label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.label { + font-size: 0.85em; } + html.theme--documenter-dark .label.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .label.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .help { + display: block; + font-size: 0.85em; + margin-top: 0.25rem; } + html.theme--documenter-dark .help.is-white { + color: white; } + html.theme--documenter-dark .help.is-black { + color: #0a0a0a; } + html.theme--documenter-dark .help.is-light { + color: #ecf0f1; } + html.theme--documenter-dark .help.is-dark, html.theme--documenter-dark .content kbd.help { + color: #282f2f; } + html.theme--documenter-dark .help.is-primary, html.theme--documenter-dark .docstring > section > a.help.docs-sourcelink { + color: #375a7f; } + html.theme--documenter-dark .help.is-link { + color: #1abc9c; } + html.theme--documenter-dark .help.is-info { + color: #024c7d; } + html.theme--documenter-dark .help.is-success { + color: #008438; } + html.theme--documenter-dark .help.is-warning { + color: #ad8100; } + html.theme--documenter-dark .help.is-danger { + color: #9e1b0d; } + html.theme--documenter-dark .field:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .field.has-addons { + display: flex; + justify-content: flex-start; } + html.theme--documenter-dark .field.has-addons .control:not(:last-child) { + margin-right: -1px; } + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .button, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .input, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .select select { + border-radius: 0; } + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .button, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .input, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .select select { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .button, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .input, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .select select { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):hover, html.theme--documenter-dark .field.has-addons .control .button.is-hovered:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input.is-hovered:not([disabled]), + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-hovered:not([disabled]), + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-hovered:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select.is-hovered:not([disabled]) { + z-index: 2; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus, html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]), html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active, html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]), + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]), + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]), + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]), + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]) { + z-index: 3; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus:hover, html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]):hover, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active:hover, html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]):hover { + z-index: 4; } + html.theme--documenter-dark .field.has-addons .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .field.has-addons.has-addons-centered { + justify-content: center; } + html.theme--documenter-dark .field.has-addons.has-addons-right { + justify-content: flex-end; } + html.theme--documenter-dark .field.has-addons.has-addons-fullwidth .control { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .field.is-grouped { + display: flex; + justify-content: flex-start; } + html.theme--documenter-dark .field.is-grouped > .control { + flex-shrink: 0; } + html.theme--documenter-dark .field.is-grouped > .control:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + html.theme--documenter-dark .field.is-grouped > .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .field.is-grouped.is-grouped-centered { + justify-content: center; } + html.theme--documenter-dark .field.is-grouped.is-grouped-right { + justify-content: flex-end; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline { + flex-wrap: wrap; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:last-child, html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:not(:last-child) { + margin-bottom: 0; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field.is-horizontal { + display: flex; } } + html.theme--documenter-dark .field-label .label { + font-size: inherit; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .field-label { + margin-bottom: 0.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field-label { + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + margin-right: 1.5rem; + text-align: right; } + html.theme--documenter-dark .field-label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.field-label { + font-size: 0.85em; + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-normal { + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-medium { + font-size: 1.25rem; + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-large { + font-size: 1.5rem; + padding-top: 0.375em; } } + html.theme--documenter-dark .field-body .field .field { + margin-bottom: 0; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field-body { + display: flex; + flex-basis: 0; + flex-grow: 5; + flex-shrink: 1; } + html.theme--documenter-dark .field-body .field { + margin-bottom: 0; } + html.theme--documenter-dark .field-body > .field { + flex-shrink: 1; } + html.theme--documenter-dark .field-body > .field:not(.is-narrow) { + flex-grow: 1; } + html.theme--documenter-dark .field-body > .field:not(:last-child) { + margin-right: 0.75rem; } } + html.theme--documenter-dark .control { + box-sizing: border-box; + clear: both; + font-size: 15px; + position: relative; + text-align: left; } + html.theme--documenter-dark .control.has-icons-left .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select:focus ~ .icon { + color: #5e6d6f; } + html.theme--documenter-dark .control.has-icons-left .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-small ~ .icon { + font-size: 0.85em; } + html.theme--documenter-dark .control.has-icons-left .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-medium ~ .icon { + font-size: 1.25rem; } + html.theme--documenter-dark .control.has-icons-left .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-large ~ .icon { + font-size: 1.5rem; } + html.theme--documenter-dark .control.has-icons-left .icon, html.theme--documenter-dark .control.has-icons-right .icon { + color: #dbdee0; + height: 2.25em; + pointer-events: none; + position: absolute; + top: 0; + width: 2.25em; + z-index: 4; } + html.theme--documenter-dark .control.has-icons-left .input, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input, + html.theme--documenter-dark .control.has-icons-left .select select { + padding-left: 2.25em; } + html.theme--documenter-dark .control.has-icons-left .icon.is-left { + left: 0; } + html.theme--documenter-dark .control.has-icons-right .input, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input, + html.theme--documenter-dark .control.has-icons-right .select select { + padding-right: 2.25em; } + html.theme--documenter-dark .control.has-icons-right .icon.is-right { + right: 0; } + html.theme--documenter-dark .control.is-loading::after { + position: absolute !important; + right: 0.625em; + top: 0.625em; + z-index: 4; } + html.theme--documenter-dark .control.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.85em; } + html.theme--documenter-dark .control.is-loading.is-medium:after { + font-size: 1.25rem; } + html.theme--documenter-dark .control.is-loading.is-large:after { + font-size: 1.5rem; } + html.theme--documenter-dark .breadcrumb { + font-size: 15px; + white-space: nowrap; } + html.theme--documenter-dark .breadcrumb a { + align-items: center; + color: #1abc9c; + display: flex; + justify-content: center; + padding: 0 0.75em; } + html.theme--documenter-dark .breadcrumb a:hover { + color: #1dd2af; } + html.theme--documenter-dark .breadcrumb li { + align-items: center; + display: flex; } + html.theme--documenter-dark .breadcrumb li:first-child a { + padding-left: 0; } + html.theme--documenter-dark .breadcrumb li.is-active a { + color: #f2f2f2; + cursor: default; + pointer-events: none; } + html.theme--documenter-dark .breadcrumb li + li::before { + color: #8c9b9d; + content: "\0002f"; } + html.theme--documenter-dark .breadcrumb ul, + html.theme--documenter-dark .breadcrumb ol { + align-items: flex-start; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .breadcrumb .icon:first-child { + margin-right: 0.5em; } + html.theme--documenter-dark .breadcrumb .icon:last-child { + margin-left: 0.5em; } + html.theme--documenter-dark .breadcrumb.is-centered ol, + html.theme--documenter-dark .breadcrumb.is-centered ul { + justify-content: center; } + html.theme--documenter-dark .breadcrumb.is-right ol, + html.theme--documenter-dark .breadcrumb.is-right ul { + justify-content: flex-end; } + html.theme--documenter-dark .breadcrumb.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.breadcrumb { + font-size: 0.85em; } + html.theme--documenter-dark .breadcrumb.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .breadcrumb.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .breadcrumb.has-arrow-separator li + li::before { + content: "\02192"; } + html.theme--documenter-dark .breadcrumb.has-bullet-separator li + li::before { + content: "\02022"; } + html.theme--documenter-dark .breadcrumb.has-dot-separator li + li::before { + content: "\000b7"; } + html.theme--documenter-dark .breadcrumb.has-succeeds-separator li + li::before { + content: "\0227B"; } + html.theme--documenter-dark .card { + background-color: white; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #fff; + max-width: 100%; + position: relative; } + html.theme--documenter-dark .card-header { + background-color: transparent; + align-items: stretch; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + display: flex; } + html.theme--documenter-dark .card-header-title { + align-items: center; + color: #f2f2f2; + display: flex; + flex-grow: 1; + font-weight: 700; + padding: 0.75rem; } + html.theme--documenter-dark .card-header-title.is-centered { + justify-content: center; } + html.theme--documenter-dark .card-header-icon { + align-items: center; + cursor: pointer; + display: flex; + justify-content: center; + padding: 0.75rem; } + html.theme--documenter-dark .card-image { + display: block; + position: relative; } + html.theme--documenter-dark .card-content { + background-color: transparent; + padding: 1.5rem; } + html.theme--documenter-dark .card-footer { + background-color: transparent; + border-top: 1px solid #5e6d6f; + align-items: stretch; + display: flex; } + html.theme--documenter-dark .card-footer-item { + align-items: center; + display: flex; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + justify-content: center; + padding: 0.75rem; } + html.theme--documenter-dark .card-footer-item:not(:last-child) { + border-right: 1px solid #5e6d6f; } + html.theme--documenter-dark .card .media:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .dropdown { + display: inline-flex; + position: relative; + vertical-align: top; } + html.theme--documenter-dark .dropdown.is-active .dropdown-menu, html.theme--documenter-dark .dropdown.is-hoverable:hover .dropdown-menu { + display: block; } + html.theme--documenter-dark .dropdown.is-right .dropdown-menu { + left: auto; + right: 0; } + html.theme--documenter-dark .dropdown.is-up .dropdown-menu { + bottom: 100%; + padding-bottom: 4px; + padding-top: initial; + top: auto; } + html.theme--documenter-dark .dropdown-menu { + display: none; + left: 0; + min-width: 12rem; + padding-top: 4px; + position: absolute; + top: 100%; + z-index: 20; } + html.theme--documenter-dark .dropdown-content { + background-color: #282f2f; + border-radius: 0.4em; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + html.theme--documenter-dark .dropdown-item { + color: #fff; + display: block; + font-size: 0.875rem; + line-height: 1.5; + padding: 0.375rem 1rem; + position: relative; } + html.theme--documenter-dark a.dropdown-item, + html.theme--documenter-dark button.dropdown-item { + padding-right: 3rem; + text-align: left; + white-space: nowrap; + width: 100%; } + html.theme--documenter-dark a.dropdown-item:hover, + html.theme--documenter-dark button.dropdown-item:hover { + background-color: #282f2f; + color: #0a0a0a; } + html.theme--documenter-dark a.dropdown-item.is-active, + html.theme--documenter-dark button.dropdown-item.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .dropdown-divider { + background-color: #5e6d6f; + border: none; + display: block; + height: 1px; + margin: 0.5rem 0; } + html.theme--documenter-dark .level { + align-items: center; + justify-content: space-between; } + html.theme--documenter-dark .level code { + border-radius: 0.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: 0.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: 0.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: 0.75rem; } } + html.theme--documenter-dark .level-left { + align-items: center; + justify-content: flex-start; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .level-left + .level-right { + margin-top: 1.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-left { + display: flex; } } + html.theme--documenter-dark .level-right { + align-items: center; + justify-content: flex-end; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-right { + display: flex; } } + html.theme--documenter-dark .list { + background-color: white; + border-radius: 0.4em; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .list-item { + display: block; + padding: 0.5em 1em; } + html.theme--documenter-dark .list-item:not(a) { + color: #fff; } + html.theme--documenter-dark .list-item:first-child { + border-top-left-radius: 0.4em; + border-top-right-radius: 0.4em; } + html.theme--documenter-dark .list-item:last-child { + border-bottom-left-radius: 0.4em; + border-bottom-right-radius: 0.4em; } + html.theme--documenter-dark .list-item:not(:last-child) { + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .list-item.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark a.list-item { + background-color: #282f2f; + cursor: pointer; } + html.theme--documenter-dark .media { + align-items: flex-start; + display: flex; + text-align: left; } + html.theme--documenter-dark .media .content:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .media .media { + border-top: 1px solid rgba(94, 109, 111, 0.5); + display: flex; + padding-top: 0.75rem; } + html.theme--documenter-dark .media .media .content:not(:last-child), + html.theme--documenter-dark .media .media .control:not(:last-child) { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .media .media .media { + padding-top: 0.5rem; } + html.theme--documenter-dark .media .media .media + .media { + margin-top: 0.5rem; } + html.theme--documenter-dark .media + .media { + border-top: 1px solid rgba(94, 109, 111, 0.5); + margin-top: 1rem; + padding-top: 1rem; } + html.theme--documenter-dark .media.is-large + .media { + margin-top: 1.5rem; + padding-top: 1.5rem; } + html.theme--documenter-dark .media-left, + html.theme--documenter-dark .media-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .media-left { + margin-right: 1rem; } + html.theme--documenter-dark .media-right { + margin-left: 1rem; } + html.theme--documenter-dark .media-content { + flex-basis: auto; + flex-grow: 1; + flex-shrink: 1; + text-align: left; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .media-content { + overflow-x: auto; } } + html.theme--documenter-dark .menu { + font-size: 15px; } + html.theme--documenter-dark .menu.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.menu { + font-size: 0.85em; } + html.theme--documenter-dark .menu.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .menu.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .menu-list { + line-height: 1.25; } + html.theme--documenter-dark .menu-list a { + border-radius: 3px; + color: #fff; + display: block; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .menu-list a:hover { + background-color: #282f2f; + color: #f2f2f2; } + html.theme--documenter-dark .menu-list a.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .menu-list li ul { + border-left: 1px solid #5e6d6f; + margin: 0.75em; + padding-left: 0.75em; } + html.theme--documenter-dark .menu-label { + color: white; + font-size: 0.75em; + letter-spacing: 0.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: 0.4em; + font-size: 15px; } + html.theme--documenter-dark .message strong { + color: currentColor; } + html.theme--documenter-dark .message a:not(.button):not(.tag):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + html.theme--documenter-dark .message.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.message { + font-size: 0.85em; } + html.theme--documenter-dark .message.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .message.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .message.is-white { + background-color: white; } + html.theme--documenter-dark .message.is-white .message-header { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .message.is-white .message-body { + border-color: white; + color: #4d4d4d; } + html.theme--documenter-dark .message.is-black { + background-color: #fafafa; } + html.theme--documenter-dark .message.is-black .message-header { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .message.is-black .message-body { + border-color: #0a0a0a; + color: #090909; } + html.theme--documenter-dark .message.is-light { + background-color: #f9fafb; } + html.theme--documenter-dark .message.is-light .message-header { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .message.is-light .message-body { + border-color: #ecf0f1; + color: #505050; } + html.theme--documenter-dark .message.is-dark, html.theme--documenter-dark .content kbd.message { + background-color: #f9fafa; } + html.theme--documenter-dark .message.is-dark .message-header, html.theme--documenter-dark .content kbd.message .message-header { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .message.is-dark .message-body, html.theme--documenter-dark .content kbd.message .message-body { + border-color: #282f2f; + color: #212526; } + html.theme--documenter-dark .message.is-primary, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink { + background-color: #f8fafc; } + html.theme--documenter-dark .message.is-primary .message-header, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-header { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .message.is-primary .message-body, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-body { + border-color: #375a7f; + color: #2b4159; } + html.theme--documenter-dark .message.is-link { + background-color: #f6fefc; } + html.theme--documenter-dark .message.is-link .message-header { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .message.is-link .message-body { + border-color: #1abc9c; + color: #0b2f28; } + html.theme--documenter-dark .message.is-info { + background-color: #f5fbff; } + html.theme--documenter-dark .message.is-info .message-header { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .message.is-info .message-body { + border-color: #024c7d; + color: #033659; } + html.theme--documenter-dark .message.is-success { + background-color: #f5fff9; } + html.theme--documenter-dark .message.is-success .message-header { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .message.is-success .message-body { + border-color: #008438; + color: #023518; } + html.theme--documenter-dark .message.is-warning { + background-color: #fffcf5; } + html.theme--documenter-dark .message.is-warning .message-header { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .message.is-warning .message-body { + border-color: #ad8100; + color: #3d2e03; } + html.theme--documenter-dark .message.is-danger { + background-color: #fef6f6; } + html.theme--documenter-dark .message.is-danger .message-header { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .message.is-danger .message-body { + border-color: #9e1b0d; + color: #7a170c; } + html.theme--documenter-dark .message-header { + align-items: center; + background-color: #fff; + border-radius: 0.4em 0.4em 0 0; + color: rgba(0, 0, 0, 0.7); + display: flex; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em 1em; + position: relative; } + html.theme--documenter-dark .message-header .delete { + flex-grow: 0; + flex-shrink: 0; + margin-left: 0.75em; } + html.theme--documenter-dark .message-header + .message-body { + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .message-body { + border-color: #5e6d6f; + border-radius: 0.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: white; } + html.theme--documenter-dark .message-body pre code { + background-color: transparent; } + html.theme--documenter-dark .modal { + align-items: center; + display: none; + flex-direction: column; + justify-content: center; + overflow: hidden; + position: fixed; + z-index: 40; } + html.theme--documenter-dark .modal.is-active { + display: flex; } + html.theme--documenter-dark .modal-background { + background-color: rgba(10, 10, 10, 0.86); } + html.theme--documenter-dark .modal-content, + html.theme--documenter-dark .modal-card { + margin: 0 20px; + max-height: calc(100vh - 160px); + overflow: auto; + position: relative; + width: 100%; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .modal-content, + html.theme--documenter-dark .modal-card { + margin: 0 auto; + max-height: calc(100vh - 40px); + width: 640px; } } + html.theme--documenter-dark .modal-close { + background: none; + height: 40px; + position: fixed; + right: 20px; + top: 20px; + width: 40px; } + html.theme--documenter-dark .modal-card { + display: flex; + flex-direction: column; + max-height: calc(100vh - 40px); + overflow: hidden; + -ms-overflow-y: visible; } + html.theme--documenter-dark .modal-card-head, + html.theme--documenter-dark .modal-card-foot { + align-items: center; + background-color: #282f2f; + display: flex; + flex-shrink: 0; + justify-content: flex-start; + padding: 20px; + position: relative; } + html.theme--documenter-dark .modal-card-head { + border-bottom: 1px solid #5e6d6f; + border-top-left-radius: 8px; + border-top-right-radius: 8px; } + html.theme--documenter-dark .modal-card-title { + color: #f2f2f2; + flex-grow: 1; + flex-shrink: 0; + font-size: 1.5rem; + line-height: 1; } + html.theme--documenter-dark .modal-card-foot { + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark .modal-card-foot .button:not(:last-child) { + margin-right: 0.5em; } + html.theme--documenter-dark .modal-card-body { + -webkit-overflow-scrolling: touch; + background-color: white; + 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: white; + 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: white; + color: #0a0a0a; } } + html.theme--documenter-dark .navbar.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link { + color: white; } + 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: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link::after { + border-color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-burger { + color: white; } + @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: white; } + 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: black; + color: white; } + 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: white; } + 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: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-dropdown a.navbar-item.is-active { + background-color: #0a0a0a; + color: white; } } + html.theme--documenter-dark .navbar.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link { + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link::after { + border-color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-burger { + color: #282f2f; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-light .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link { + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link::after { + border-color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-dropdown a.navbar-item.is-active { + background-color: #ecf0f1; + color: #282f2f; } } + html.theme--documenter-dark .navbar.is-dark, html.theme--documenter-dark .content kbd.navbar { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link { + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-burger, html.theme--documenter-dark .content kbd.navbar .navbar-burger { + color: #ecf0f1; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-dark .navbar-start > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-end > .navbar-item, + html.theme--documenter-dark .content kbd.navbar .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link { + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link::after, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-dropdown a.navbar-item.is-active { + background-color: #282f2f; + color: #ecf0f1; } } + html.theme--documenter-dark .navbar.is-primary, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-burger, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-primary .navbar-start > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-end > .navbar-item, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link::after, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { + background-color: #375a7f; + color: #fff; } } + html.theme--documenter-dark .navbar.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-link .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-dropdown a.navbar-item.is-active { + background-color: #1abc9c; + color: #fff; } } + html.theme--documenter-dark .navbar.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-info .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-dropdown a.navbar-item.is-active { + background-color: #024c7d; + color: #fff; } } + html.theme--documenter-dark .navbar.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-success .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-dropdown a.navbar-item.is-active { + background-color: #008438; + color: #fff; } } + html.theme--documenter-dark .navbar.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-warning .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-dropdown a.navbar-item.is-active { + background-color: #ad8100; + color: #fff; } } + html.theme--documenter-dark .navbar.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-danger .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-dropdown a.navbar-item.is-active { + background-color: #9e1b0d; + color: #fff; } } + html.theme--documenter-dark .navbar > .container { + align-items: stretch; + display: flex; + min-height: 4rem; + width: 100%; } + html.theme--documenter-dark .navbar.has-shadow { + box-shadow: 0 2px 0 0 #282f2f; } + html.theme--documenter-dark .navbar.is-fixed-bottom, html.theme--documenter-dark .navbar.is-fixed-top { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + html.theme--documenter-dark .navbar.is-fixed-bottom { + bottom: 0; } + html.theme--documenter-dark .navbar.is-fixed-bottom.has-shadow { + box-shadow: 0 -2px 0 0 #282f2f; } + html.theme--documenter-dark .navbar.is-fixed-top { + top: 0; } + html.theme--documenter-dark html.has-navbar-fixed-top, + html.theme--documenter-dark body.has-navbar-fixed-top { + padding-top: 4rem; } + html.theme--documenter-dark html.has-navbar-fixed-bottom, + html.theme--documenter-dark body.has-navbar-fixed-bottom { + padding-bottom: 4rem; } + html.theme--documenter-dark .navbar-brand, + html.theme--documenter-dark .navbar-tabs { + align-items: stretch; + display: flex; + flex-shrink: 0; + min-height: 4rem; } + html.theme--documenter-dark .navbar-brand a.navbar-item:focus, html.theme--documenter-dark .navbar-brand a.navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .navbar-tabs { + -webkit-overflow-scrolling: touch; + max-width: 100vw; + overflow-x: auto; + overflow-y: hidden; } + html.theme--documenter-dark .navbar-burger { + color: #fff; + cursor: pointer; + display: block; + height: 4rem; + position: relative; + width: 4rem; + margin-left: auto; } + html.theme--documenter-dark .navbar-burger span { + background-color: currentColor; + display: block; + height: 1px; + left: calc(50% - 8px); + position: absolute; + transform-origin: center; + transition-duration: 86ms; + transition-property: background-color, opacity, transform; + transition-timing-function: ease-out; + width: 16px; } + html.theme--documenter-dark .navbar-burger span:nth-child(1) { + top: calc(50% - 6px); } + html.theme--documenter-dark .navbar-burger span:nth-child(2) { + top: calc(50% - 1px); } + html.theme--documenter-dark .navbar-burger span:nth-child(3) { + top: calc(50% + 4px); } + html.theme--documenter-dark .navbar-burger:hover { + background-color: rgba(0, 0, 0, 0.05); } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(1) { + transform: translateY(5px) rotate(45deg); } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(2) { + opacity: 0; } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(3) { + transform: translateY(-5px) rotate(-45deg); } + html.theme--documenter-dark .navbar-menu { + display: none; } + html.theme--documenter-dark .navbar-item, + html.theme--documenter-dark .navbar-link { + color: #fff; + display: block; + line-height: 1.5; + padding: 0.5rem 0.75rem; + position: relative; } + html.theme--documenter-dark .navbar-item .icon:only-child, + html.theme--documenter-dark .navbar-link .icon:only-child { + margin-left: -0.25rem; + margin-right: -0.25rem; } + html.theme--documenter-dark a.navbar-item, + html.theme--documenter-dark .navbar-link { + cursor: pointer; } + html.theme--documenter-dark a.navbar-item:focus, html.theme--documenter-dark a.navbar-item:focus-within, html.theme--documenter-dark a.navbar-item:hover, html.theme--documenter-dark a.navbar-item.is-active, + html.theme--documenter-dark .navbar-link:focus, + html.theme--documenter-dark .navbar-link:focus-within, + html.theme--documenter-dark .navbar-link:hover, + html.theme--documenter-dark .navbar-link.is-active { + background-color: transparent; + color: #1abc9c; } + html.theme--documenter-dark .navbar-item { + display: block; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .navbar-item img { + max-height: 1.75rem; } + html.theme--documenter-dark .navbar-item.has-dropdown { + padding: 0; } + html.theme--documenter-dark .navbar-item.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .navbar-item.is-tab { + border-bottom: 1px solid transparent; + min-height: 4rem; + padding-bottom: calc(0.5rem - 1px); } + html.theme--documenter-dark .navbar-item.is-tab:focus, html.theme--documenter-dark .navbar-item.is-tab:hover { + background-color: transparent; + border-bottom-color: #1abc9c; } + html.theme--documenter-dark .navbar-item.is-tab.is-active { + background-color: transparent; + 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: 0.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: transparent; + color: #dbdee0; } + html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active { + background-color: transparent; + color: #1abc9c; } + html.theme--documenter-dark .navbar-burger { + display: none; } + html.theme--documenter-dark .navbar-item, + html.theme--documenter-dark .navbar-link { + align-items: center; + display: flex; } + html.theme--documenter-dark .navbar-item { + display: flex; } + html.theme--documenter-dark .navbar-item.has-dropdown { + align-items: stretch; } + html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-link::after { + transform: rotate(135deg) translate(0.25em, -0.25em); } + html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-dropdown { + border-bottom: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 8px 8px 0 0; + border-top: none; + bottom: 100%; + box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1); + top: auto; } + html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown { + display: block; } + .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed { + opacity: 1; + pointer-events: auto; + transform: translateY(0); } + html.theme--documenter-dark .navbar-menu { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .navbar-start { + justify-content: flex-start; + margin-right: auto; } + html.theme--documenter-dark .navbar-end { + justify-content: flex-end; + margin-left: auto; } + html.theme--documenter-dark .navbar-dropdown { + background-color: #375a7f; + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + border-top: 1px solid rgba(0, 0, 0, 0.2); + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1); + display: none; + font-size: 0.875rem; + left: 0; + min-width: 100%; + position: absolute; + top: 100%; + z-index: 20; } + html.theme--documenter-dark .navbar-dropdown .navbar-item { + padding: 0.375rem 1rem; + white-space: nowrap; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item { + padding-right: 3rem; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item:focus, html.theme--documenter-dark .navbar-dropdown a.navbar-item:hover { + background-color: transparent; + color: #dbdee0; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item.is-active { + background-color: transparent; + 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: transparent; } + 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: transparent; } } + html.theme--documenter-dark .hero.is-fullheight-with-navbar { + min-height: calc(100vh - 4rem); } + html.theme--documenter-dark .pagination { + font-size: 15px; + margin: -0.25rem; } + html.theme--documenter-dark .pagination.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination { + font-size: 0.85em; } + html.theme--documenter-dark .pagination.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .pagination.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .pagination.is-rounded .pagination-previous, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous, + html.theme--documenter-dark .pagination.is-rounded .pagination-next, + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next { + padding-left: 1em; + padding-right: 1em; + border-radius: 290486px; } + html.theme--documenter-dark .pagination.is-rounded .pagination-link, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link { + border-radius: 290486px; } + html.theme--documenter-dark .pagination, + html.theme--documenter-dark .pagination-list { + align-items: center; + display: flex; + justify-content: center; + text-align: center; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark .pagination-ellipsis { + font-size: 1em; + justify-content: center; + margin: 0.25rem; + padding-left: 0.5em; + padding-right: 0.5em; + text-align: center; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-link { + border-color: #5e6d6f; + color: #1abc9c; + min-width: 2.25em; } + html.theme--documenter-dark .pagination-previous:hover, + html.theme--documenter-dark .pagination-next:hover, + html.theme--documenter-dark .pagination-link:hover { + border-color: #8c9b9d; + color: #1dd2af; } + html.theme--documenter-dark .pagination-previous:focus, + html.theme--documenter-dark .pagination-next:focus, + html.theme--documenter-dark .pagination-link:focus { + border-color: #8c9b9d; } + html.theme--documenter-dark .pagination-previous:active, + html.theme--documenter-dark .pagination-next:active, + html.theme--documenter-dark .pagination-link:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); } + html.theme--documenter-dark .pagination-previous[disabled], + html.theme--documenter-dark .pagination-next[disabled], + html.theme--documenter-dark .pagination-link[disabled] { + background-color: #dbdee0; + border-color: #dbdee0; + box-shadow: none; + color: #5e6d6f; + opacity: 0.5; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next { + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + html.theme--documenter-dark .pagination-link.is-current { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .pagination-ellipsis { + color: #8c9b9d; + pointer-events: none; } + html.theme--documenter-dark .pagination-list { + flex-wrap: wrap; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .pagination { + flex-wrap: wrap; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .pagination-list li { + flex-grow: 1; + flex-shrink: 1; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .pagination-list { + flex-grow: 1; + flex-shrink: 1; + justify-content: flex-start; + order: 1; } + html.theme--documenter-dark .pagination-previous { + order: 2; } + html.theme--documenter-dark .pagination-next { + order: 3; } + html.theme--documenter-dark .pagination { + justify-content: space-between; } + html.theme--documenter-dark .pagination.is-centered .pagination-previous { + order: 1; } + html.theme--documenter-dark .pagination.is-centered .pagination-list { + justify-content: center; + order: 2; } + html.theme--documenter-dark .pagination.is-centered .pagination-next { + order: 3; } + html.theme--documenter-dark .pagination.is-right .pagination-previous { + order: 1; } + html.theme--documenter-dark .pagination.is-right .pagination-next { + order: 2; } + html.theme--documenter-dark .pagination.is-right .pagination-list { + justify-content: flex-end; + order: 3; } } + html.theme--documenter-dark .panel { + font-size: 15px; } + html.theme--documenter-dark .panel:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .panel-heading, + html.theme--documenter-dark .panel-tabs, + html.theme--documenter-dark .panel-block { + border-bottom: 1px solid #5e6d6f; + border-left: 1px solid #5e6d6f; + border-right: 1px solid #5e6d6f; } + html.theme--documenter-dark .panel-heading:first-child, + html.theme--documenter-dark .panel-tabs:first-child, + html.theme--documenter-dark .panel-block:first-child { + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark .panel-heading { + background-color: #282f2f; + border-radius: 0.4em 0.4em 0 0; + color: #f2f2f2; + font-size: 1.25em; + font-weight: 300; + line-height: 1.25; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .panel-tabs { + align-items: flex-end; + display: flex; + font-size: 0.875em; + justify-content: center; } + html.theme--documenter-dark .panel-tabs a { + border-bottom: 1px solid #5e6d6f; + margin-bottom: -1px; + padding: 0.5em; } + html.theme--documenter-dark .panel-tabs a.is-active { + border-bottom-color: #343c3d; + color: #17a689; } + html.theme--documenter-dark .panel-list a { + color: #fff; } + html.theme--documenter-dark .panel-list a:hover { + color: #1abc9c; } + html.theme--documenter-dark .panel-block { + align-items: center; + color: #f2f2f2; + display: flex; + justify-content: flex-start; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .panel-block input[type="checkbox"] { + margin-right: 0.75em; } + html.theme--documenter-dark .panel-block > .control { + flex-grow: 1; + flex-shrink: 1; + width: 100%; } + html.theme--documenter-dark .panel-block.is-wrapped { + flex-wrap: wrap; } + html.theme--documenter-dark .panel-block.is-active { + border-left-color: #1abc9c; + color: #17a689; } + html.theme--documenter-dark .panel-block.is-active .panel-icon { + color: #1abc9c; } + html.theme--documenter-dark a.panel-block, + html.theme--documenter-dark label.panel-block { + cursor: pointer; } + html.theme--documenter-dark a.panel-block:hover, + html.theme--documenter-dark label.panel-block:hover { + background-color: #282f2f; } + html.theme--documenter-dark .panel-icon { + display: inline-block; + font-size: 14px; + height: 1em; + line-height: 1em; + text-align: center; + vertical-align: top; + width: 1em; + color: white; + margin-right: 0.75em; } + html.theme--documenter-dark .panel-icon .fa { + font-size: inherit; + line-height: inherit; } + html.theme--documenter-dark .tabs { + -webkit-overflow-scrolling: touch; + align-items: stretch; + display: flex; + font-size: 15px; + justify-content: space-between; + overflow: hidden; + overflow-x: auto; + white-space: nowrap; } + html.theme--documenter-dark .tabs a { + align-items: center; + border-bottom-color: #5e6d6f; + border-bottom-style: solid; + border-bottom-width: 1px; + color: #fff; + display: flex; + justify-content: center; + margin-bottom: -1px; + padding: 0.5em 1em; + vertical-align: top; } + html.theme--documenter-dark .tabs a:hover { + border-bottom-color: #f2f2f2; + color: #f2f2f2; } + html.theme--documenter-dark .tabs li { + display: block; } + html.theme--documenter-dark .tabs li.is-active a { + border-bottom-color: #1abc9c; + color: #1abc9c; } + html.theme--documenter-dark .tabs ul { + align-items: center; + border-bottom-color: #5e6d6f; + border-bottom-style: solid; + border-bottom-width: 1px; + display: flex; + flex-grow: 1; + flex-shrink: 0; + justify-content: flex-start; } + html.theme--documenter-dark .tabs ul.is-left { + padding-right: 0.75em; } + html.theme--documenter-dark .tabs ul.is-center { + flex: none; + justify-content: center; + padding-left: 0.75em; + padding-right: 0.75em; } + html.theme--documenter-dark .tabs ul.is-right { + justify-content: flex-end; + padding-left: 0.75em; } + html.theme--documenter-dark .tabs .icon:first-child { + margin-right: 0.5em; } + html.theme--documenter-dark .tabs .icon:last-child { + margin-left: 0.5em; } + html.theme--documenter-dark .tabs.is-centered ul { + justify-content: center; } + html.theme--documenter-dark .tabs.is-right ul { + justify-content: flex-end; } + html.theme--documenter-dark .tabs.is-boxed a { + border: 1px solid transparent; + border-radius: 0.4em 0.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: white; + border-color: #5e6d6f; + border-bottom-color: transparent !important; } + html.theme--documenter-dark .tabs.is-fullwidth li { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .tabs.is-toggle a { + border-color: #5e6d6f; + border-style: solid; + border-width: 1px; + margin-bottom: 0; + position: relative; } + html.theme--documenter-dark .tabs.is-toggle a:hover { + background-color: #282f2f; + border-color: #8c9b9d; + z-index: 2; } + html.theme--documenter-dark .tabs.is-toggle li + li { + margin-left: -1px; } + html.theme--documenter-dark .tabs.is-toggle li:first-child a { + border-radius: 0.4em 0 0 0.4em; } + html.theme--documenter-dark .tabs.is-toggle li:last-child a { + border-radius: 0 0.4em 0.4em 0; } + html.theme--documenter-dark .tabs.is-toggle li.is-active a { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; + z-index: 1; } + html.theme--documenter-dark .tabs.is-toggle ul { + border-bottom: none; } + html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:first-child a { + border-bottom-left-radius: 290486px; + border-top-left-radius: 290486px; + padding-left: 1.25em; } + html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:last-child a { + border-bottom-right-radius: 290486px; + border-top-right-radius: 290486px; + padding-right: 1.25em; } + html.theme--documenter-dark .tabs.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.tabs { + font-size: 0.85em; } + html.theme--documenter-dark .tabs.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .tabs.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .column { + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + padding: 0.75rem; } + .columns.is-mobile > html.theme--documenter-dark .column.is-narrow { + flex: none; } + .columns.is-mobile > html.theme--documenter-dark .column.is-full { + flex: none; + width: 100%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-three-quarters { + flex: none; + width: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-two-thirds { + flex: none; + width: 66.6666%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-half { + flex: none; + width: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-third { + flex: none; + width: 33.3333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-quarter { + flex: none; + width: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-fifth { + flex: none; + width: 20%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-two-fifths { + flex: none; + width: 40%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-three-fifths { + flex: none; + width: 60%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-four-fifths { + flex: none; + width: 80%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-quarters { + margin-left: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-thirds { + margin-left: 66.6666%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-half { + margin-left: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-third { + margin-left: 33.3333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-quarter { + margin-left: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-fifth { + margin-left: 20%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-fifths { + margin-left: 40%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-fifths { + margin-left: 60%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-four-fifths { + margin-left: 80%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-0 { + flex: none; + width: 0%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-0 { + margin-left: 0%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-1 { + flex: none; + width: 8.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-1 { + margin-left: 8.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-2 { + flex: none; + width: 16.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-2 { + margin-left: 16.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-3 { + flex: none; + width: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-3 { + margin-left: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-4 { + flex: none; + width: 33.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-4 { + margin-left: 33.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-5 { + flex: none; + width: 41.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-5 { + margin-left: 41.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-6 { + flex: none; + width: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-6 { + margin-left: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-7 { + flex: none; + width: 58.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-7 { + margin-left: 58.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-8 { + flex: none; + width: 66.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-8 { + margin-left: 66.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-9 { + flex: none; + width: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-9 { + margin-left: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-10 { + flex: none; + width: 83.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-10 { + margin-left: 83.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-11 { + flex: none; + width: 91.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-11 { + margin-left: 91.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-12 { + flex: none; + width: 100%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-12 { + margin-left: 100%; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .column.is-narrow-mobile { + flex: none; } + html.theme--documenter-dark .column.is-full-mobile { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-mobile { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-mobile { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-mobile { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-mobile { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-mobile { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-mobile { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-mobile { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-mobile { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-mobile { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-mobile { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-mobile { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-mobile { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-mobile { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-mobile { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-mobile { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-mobile { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-mobile { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-mobile { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-mobile { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-mobile { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-mobile { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-mobile { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-mobile { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-mobile { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-mobile { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-mobile { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-mobile { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-mobile { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-mobile { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-mobile { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-mobile { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-mobile { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-mobile { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-mobile { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-mobile { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-mobile { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-mobile { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-mobile { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-mobile { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-mobile { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-mobile { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-mobile { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-mobile { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-mobile { + margin-left: 100%; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .column.is-narrow, html.theme--documenter-dark .column.is-narrow-tablet { + flex: none; } + html.theme--documenter-dark .column.is-full, html.theme--documenter-dark .column.is-full-tablet { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters, html.theme--documenter-dark .column.is-three-quarters-tablet { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds, html.theme--documenter-dark .column.is-two-thirds-tablet { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half, html.theme--documenter-dark .column.is-half-tablet { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third, html.theme--documenter-dark .column.is-one-third-tablet { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter, html.theme--documenter-dark .column.is-one-quarter-tablet { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth, html.theme--documenter-dark .column.is-one-fifth-tablet { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths, html.theme--documenter-dark .column.is-two-fifths-tablet { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths, html.theme--documenter-dark .column.is-three-fifths-tablet { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths, html.theme--documenter-dark .column.is-four-fifths-tablet { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters, html.theme--documenter-dark .column.is-offset-three-quarters-tablet { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds, html.theme--documenter-dark .column.is-offset-two-thirds-tablet { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half, html.theme--documenter-dark .column.is-offset-half-tablet { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third, html.theme--documenter-dark .column.is-offset-one-third-tablet { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter, html.theme--documenter-dark .column.is-offset-one-quarter-tablet { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth, html.theme--documenter-dark .column.is-offset-one-fifth-tablet { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths, html.theme--documenter-dark .column.is-offset-two-fifths-tablet { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths, html.theme--documenter-dark .column.is-offset-three-fifths-tablet { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths, html.theme--documenter-dark .column.is-offset-four-fifths-tablet { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0, html.theme--documenter-dark .column.is-0-tablet { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0, html.theme--documenter-dark .column.is-offset-0-tablet { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1, html.theme--documenter-dark .column.is-1-tablet { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1, html.theme--documenter-dark .column.is-offset-1-tablet { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2, html.theme--documenter-dark .column.is-2-tablet { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2, html.theme--documenter-dark .column.is-offset-2-tablet { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3, html.theme--documenter-dark .column.is-3-tablet { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3, html.theme--documenter-dark .column.is-offset-3-tablet { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4, html.theme--documenter-dark .column.is-4-tablet { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4, html.theme--documenter-dark .column.is-offset-4-tablet { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5, html.theme--documenter-dark .column.is-5-tablet { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5, html.theme--documenter-dark .column.is-offset-5-tablet { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6, html.theme--documenter-dark .column.is-6-tablet { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6, html.theme--documenter-dark .column.is-offset-6-tablet { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7, html.theme--documenter-dark .column.is-7-tablet { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7, html.theme--documenter-dark .column.is-offset-7-tablet { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8, html.theme--documenter-dark .column.is-8-tablet { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8, html.theme--documenter-dark .column.is-offset-8-tablet { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9, html.theme--documenter-dark .column.is-9-tablet { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9, html.theme--documenter-dark .column.is-offset-9-tablet { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10, html.theme--documenter-dark .column.is-10-tablet { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10, html.theme--documenter-dark .column.is-offset-10-tablet { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11, html.theme--documenter-dark .column.is-11-tablet { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11, html.theme--documenter-dark .column.is-offset-11-tablet { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12, html.theme--documenter-dark .column.is-12-tablet { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12, html.theme--documenter-dark .column.is-offset-12-tablet { + margin-left: 100%; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .column.is-narrow-touch { + flex: none; } + html.theme--documenter-dark .column.is-full-touch { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-touch { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-touch { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-touch { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-touch { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-touch { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-touch { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-touch { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-touch { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-touch { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-touch { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-touch { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-touch { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-touch { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-touch { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-touch { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-touch { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-touch { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-touch { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-touch { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-touch { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-touch { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-touch { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-touch { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-touch { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-touch { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-touch { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-touch { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-touch { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-touch { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-touch { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-touch { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-touch { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-touch { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-touch { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-touch { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-touch { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-touch { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-touch { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-touch { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-touch { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-touch { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-touch { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-touch { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-touch { + margin-left: 100%; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .column.is-narrow-desktop { + flex: none; } + html.theme--documenter-dark .column.is-full-desktop { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-desktop { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-desktop { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-desktop { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-desktop { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-desktop { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-desktop { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-desktop { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-desktop { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-desktop { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-desktop { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-desktop { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-desktop { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-desktop { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-desktop { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-desktop { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-desktop { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-desktop { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-desktop { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-desktop { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-desktop { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-desktop { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-desktop { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-desktop { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-desktop { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-desktop { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-desktop { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-desktop { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-desktop { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-desktop { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-desktop { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-desktop { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-desktop { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-desktop { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-desktop { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-desktop { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-desktop { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-desktop { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-desktop { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-desktop { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-desktop { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-desktop { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-desktop { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-desktop { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-desktop { + margin-left: 100%; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .column.is-narrow-widescreen { + flex: none; } + html.theme--documenter-dark .column.is-full-widescreen { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-widescreen { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-widescreen { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-widescreen { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-widescreen { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-widescreen { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-widescreen { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-widescreen { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-widescreen { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-widescreen { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-widescreen { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-widescreen { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-widescreen { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-widescreen { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-widescreen { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-widescreen { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-widescreen { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-widescreen { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-widescreen { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-widescreen { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-widescreen { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-widescreen { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-widescreen { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-widescreen { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-widescreen { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-widescreen { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-widescreen { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-widescreen { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-widescreen { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-widescreen { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-widescreen { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-widescreen { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-widescreen { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-widescreen { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-widescreen { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-widescreen { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-widescreen { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-widescreen { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-widescreen { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-widescreen { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-widescreen { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-widescreen { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-widescreen { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-widescreen { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-widescreen { + margin-left: 100%; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .column.is-narrow-fullhd { + flex: none; } + html.theme--documenter-dark .column.is-full-fullhd { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-fullhd { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-fullhd { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-fullhd { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-fullhd { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-fullhd { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-fullhd { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-fullhd { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-fullhd { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-fullhd { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-fullhd { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-fullhd { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-fullhd { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-fullhd { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-fullhd { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-fullhd { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-fullhd { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-fullhd { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-fullhd { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-fullhd { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-fullhd { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-fullhd { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-fullhd { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-fullhd { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-fullhd { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-fullhd { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-fullhd { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-fullhd { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-fullhd { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-fullhd { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-fullhd { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-fullhd { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-fullhd { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-fullhd { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-fullhd { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-fullhd { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-fullhd { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-fullhd { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-fullhd { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-fullhd { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-fullhd { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-fullhd { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-fullhd { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-fullhd { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-fullhd { + margin-left: 100%; } } + html.theme--documenter-dark .columns { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + html.theme--documenter-dark .columns:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .columns:not(:last-child) { + margin-bottom: calc(1.5rem - 0.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: 0.25rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-1-mobile { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-1-tablet { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-1-tablet-only { + --columnGap: 0.25rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-1-touch { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-1-desktop { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-1-desktop-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-1-widescreen { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-1-widescreen-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-1-fullhd { + --columnGap: 0.25rem; } } + html.theme--documenter-dark .columns.is-variable.is-2 { + --columnGap: 0.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-2-mobile { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-2-tablet { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-2-tablet-only { + --columnGap: 0.5rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-2-touch { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-2-desktop { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-2-desktop-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-2-widescreen { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-2-widescreen-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-2-fullhd { + --columnGap: 0.5rem; } } + html.theme--documenter-dark .columns.is-variable.is-3 { + --columnGap: 0.75rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-3-mobile { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-3-tablet { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-3-tablet-only { + --columnGap: 0.75rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-3-touch { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-3-desktop { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-3-desktop-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-3-widescreen { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-3-widescreen-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-3-fullhd { + --columnGap: 0.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: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + html.theme--documenter-dark .tile.is-ancestor:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .tile.is-ancestor:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .tile.is-child { + margin: 0 !important; } + html.theme--documenter-dark .tile.is-parent { + padding: 0.75rem; } + html.theme--documenter-dark .tile.is-vertical { + flex-direction: column; } + html.theme--documenter-dark .tile.is-vertical > .tile.is-child:not(:last-child) { + margin-bottom: 1.5rem !important; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .tile:not(.is-child) { + display: flex; } + html.theme--documenter-dark .tile.is-1 { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .tile.is-2 { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .tile.is-3 { + flex: none; + width: 25%; } + html.theme--documenter-dark .tile.is-4 { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .tile.is-5 { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .tile.is-6 { + flex: none; + width: 50%; } + html.theme--documenter-dark .tile.is-7 { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .tile.is-8 { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .tile.is-9 { + flex: none; + width: 75%; } + html.theme--documenter-dark .tile.is-10 { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .tile.is-11 { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .tile.is-12 { + flex: none; + width: 100%; } } + html.theme--documenter-dark .hero { + align-items: stretch; + display: flex; + flex-direction: column; + justify-content: space-between; } + html.theme--documenter-dark .hero .navbar { + background: none; } + html.theme--documenter-dark .hero .tabs ul { + border-bottom: none; } + html.theme--documenter-dark .hero.is-white { + background-color: white; + 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: white; } } + html.theme--documenter-dark .hero.is-white .navbar-item, + html.theme--documenter-dark .hero.is-white .navbar-link { + color: rgba(10, 10, 10, 0.7); } + html.theme--documenter-dark .hero.is-white a.navbar-item:hover, html.theme--documenter-dark .hero.is-white a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-white .navbar-link:hover, + html.theme--documenter-dark .hero.is-white .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .tabs a { + color: #0a0a0a; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-white .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-white .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a { + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a:hover { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .hero.is-white.is-bold { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 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%, white 71%, white 100%); } } + html.theme--documenter-dark .hero.is-black { + background-color: #0a0a0a; + color: white; } + 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: white; } + 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: white; } + @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: black; + color: white; } + html.theme--documenter-dark .hero.is-black .tabs a { + color: white; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-black .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-black .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-black .tabs.is-boxed a, html.theme--documenter-dark .hero.is-black .tabs.is-toggle a { + color: white; } + 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: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-black.is-bold { + background-image: linear-gradient(141deg, black 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, black 0%, #0a0a0a 71%, #181616 100%); } } + html.theme--documenter-dark .hero.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-light strong { + color: inherit; } + html.theme--documenter-dark .hero.is-light .title { + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .subtitle { + color: rgba(40, 47, 47, 0.9); } + html.theme--documenter-dark .hero.is-light .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-light .subtitle strong { + color: #282f2f; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-light .navbar-menu { + background-color: #ecf0f1; } } + html.theme--documenter-dark .hero.is-light .navbar-item, + html.theme--documenter-dark .hero.is-light .navbar-link { + color: rgba(40, 47, 47, 0.7); } + html.theme--documenter-dark .hero.is-light a.navbar-item:hover, html.theme--documenter-dark .hero.is-light a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-light .navbar-link:hover, + html.theme--documenter-dark .hero.is-light .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .tabs a { + color: #282f2f; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-light .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-light .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a { + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a:hover { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-light.is-bold { + background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-light.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); } } + html.theme--documenter-dark .hero.is-dark, html.theme--documenter-dark .content kbd.hero { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-dark strong, + html.theme--documenter-dark .content kbd.hero strong { + color: inherit; } + html.theme--documenter-dark .hero.is-dark .title, html.theme--documenter-dark .content kbd.hero .title { + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .subtitle, html.theme--documenter-dark .content kbd.hero .subtitle { + color: rgba(236, 240, 241, 0.9); } + html.theme--documenter-dark .hero.is-dark .subtitle a:not(.button), html.theme--documenter-dark .content kbd.hero .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-dark .subtitle strong, + html.theme--documenter-dark .content kbd.hero .subtitle strong { + color: #ecf0f1; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-dark .navbar-menu, html.theme--documenter-dark .content kbd.hero .navbar-menu { + background-color: #282f2f; } } + html.theme--documenter-dark .hero.is-dark .navbar-item, html.theme--documenter-dark .content kbd.hero .navbar-item, + html.theme--documenter-dark .hero.is-dark .navbar-link, + html.theme--documenter-dark .content kbd.hero .navbar-link { + color: rgba(236, 240, 241, 0.7); } + html.theme--documenter-dark .hero.is-dark a.navbar-item:hover, html.theme--documenter-dark .content kbd.hero a.navbar-item:hover, html.theme--documenter-dark .hero.is-dark a.navbar-item.is-active, html.theme--documenter-dark .content kbd.hero a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-dark .navbar-link:hover, + html.theme--documenter-dark .content kbd.hero .navbar-link:hover, + html.theme--documenter-dark .hero.is-dark .navbar-link.is-active, + html.theme--documenter-dark .content kbd.hero .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .tabs a, html.theme--documenter-dark .content kbd.hero .tabs a { + color: #ecf0f1; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-dark .tabs a:hover, html.theme--documenter-dark .content kbd.hero .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-dark .tabs li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a { + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a:hover { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .hero.is-dark.is-bold, html.theme--documenter-dark .content kbd.hero.is-bold { + background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-dark.is-bold .navbar-menu, html.theme--documenter-dark .content kbd.hero.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); } } + html.theme--documenter-dark .hero.is-primary, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-primary strong, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink strong { + color: inherit; } + html.theme--documenter-dark .hero.is-primary .title, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .title { + color: #fff; } + html.theme--documenter-dark .hero.is-primary .subtitle, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-primary .subtitle a:not(.button), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-primary .subtitle strong, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-primary .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-menu { + background-color: #375a7f; } } + html.theme--documenter-dark .hero.is-primary .navbar-item, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-item, + html.theme--documenter-dark .hero.is-primary .navbar-link, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-primary a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, html.theme--documenter-dark .hero.is-primary a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-primary .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link:hover, + html.theme--documenter-dark .hero.is-primary .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .hero.is-primary .tabs a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-primary .tabs a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-primary .tabs li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .hero.is-primary.is-bold, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink { + background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-primary.is-bold .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu { + background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); } } + html.theme--documenter-dark .hero.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-link strong { + color: inherit; } + html.theme--documenter-dark .hero.is-link .title { + color: #fff; } + html.theme--documenter-dark .hero.is-link .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-link .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-link .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-link .navbar-menu { + background-color: #1abc9c; } } + html.theme--documenter-dark .hero.is-link .navbar-item, + html.theme--documenter-dark .hero.is-link .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-link a.navbar-item:hover, html.theme--documenter-dark .hero.is-link a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-link .navbar-link:hover, + html.theme--documenter-dark .hero.is-link .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .hero.is-link .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-link .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-link .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .hero.is-link.is-bold { + background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-link.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); } } + html.theme--documenter-dark .hero.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-info strong { + color: inherit; } + html.theme--documenter-dark .hero.is-info .title { + color: #fff; } + html.theme--documenter-dark .hero.is-info .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-info .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-info .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-info .navbar-menu { + background-color: #024c7d; } } + html.theme--documenter-dark .hero.is-info .navbar-item, + html.theme--documenter-dark .hero.is-info .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-info a.navbar-item:hover, html.theme--documenter-dark .hero.is-info a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-info .navbar-link:hover, + html.theme--documenter-dark .hero.is-info .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .hero.is-info .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-info .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-info .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .hero.is-info.is-bold { + background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-info.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); } } + html.theme--documenter-dark .hero.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-success strong { + color: inherit; } + html.theme--documenter-dark .hero.is-success .title { + color: #fff; } + html.theme--documenter-dark .hero.is-success .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-success .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-success .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-success .navbar-menu { + background-color: #008438; } } + html.theme--documenter-dark .hero.is-success .navbar-item, + html.theme--documenter-dark .hero.is-success .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-success a.navbar-item:hover, html.theme--documenter-dark .hero.is-success a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-success .navbar-link:hover, + html.theme--documenter-dark .hero.is-success .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .hero.is-success .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-success .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-success .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #008438; } + html.theme--documenter-dark .hero.is-success.is-bold { + background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-success.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); } } + html.theme--documenter-dark .hero.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-warning strong { + color: inherit; } + html.theme--documenter-dark .hero.is-warning .title { + color: #fff; } + html.theme--documenter-dark .hero.is-warning .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-warning .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-warning .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-warning .navbar-menu { + background-color: #ad8100; } } + html.theme--documenter-dark .hero.is-warning .navbar-item, + html.theme--documenter-dark .hero.is-warning .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-warning a.navbar-item:hover, html.theme--documenter-dark .hero.is-warning a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-warning .navbar-link:hover, + html.theme--documenter-dark .hero.is-warning .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .hero.is-warning .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-warning .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-warning .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .hero.is-warning.is-bold { + background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-warning.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); } } + html.theme--documenter-dark .hero.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-danger strong { + color: inherit; } + html.theme--documenter-dark .hero.is-danger .title { + color: #fff; } + html.theme--documenter-dark .hero.is-danger .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-danger .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-danger .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-danger .navbar-menu { + background-color: #9e1b0d; } } + html.theme--documenter-dark .hero.is-danger .navbar-item, + html.theme--documenter-dark .hero.is-danger .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-danger a.navbar-item:hover, html.theme--documenter-dark .hero.is-danger a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-danger .navbar-link:hover, + html.theme--documenter-dark .hero.is-danger .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .hero.is-danger .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-danger .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-danger .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .hero.is-danger.is-bold { + background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-danger.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); } } + html.theme--documenter-dark .hero.is-small .hero-body, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.hero .hero-body { + padding-bottom: 1.5rem; + padding-top: 1.5rem; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero.is-medium .hero-body { + padding-bottom: 9rem; + padding-top: 9rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero.is-large .hero-body { + padding-bottom: 18rem; + padding-top: 18rem; } } + html.theme--documenter-dark .hero.is-halfheight .hero-body, html.theme--documenter-dark .hero.is-fullheight .hero-body, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body { + align-items: center; + display: flex; } + html.theme--documenter-dark .hero.is-halfheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body > .container { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .hero.is-halfheight { + min-height: 50vh; } + html.theme--documenter-dark .hero.is-fullheight { + min-height: 100vh; } + html.theme--documenter-dark .hero-video { + overflow: hidden; } + html.theme--documenter-dark .hero-video video { + left: 50%; + min-height: 100%; + min-width: 100%; + position: absolute; + top: 50%; + transform: translate3d(-50%, -50%, 0); } + html.theme--documenter-dark .hero-video.is-transparent { + opacity: 0.3; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero-video { + display: none; } } + html.theme--documenter-dark .hero-buttons { + margin-top: 1.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero-buttons .button { + display: flex; } + html.theme--documenter-dark .hero-buttons .button:not(:last-child) { + margin-bottom: 0.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero-buttons { + display: flex; + justify-content: center; } + html.theme--documenter-dark .hero-buttons .button:not(:last-child) { + margin-right: 1.5rem; } } + html.theme--documenter-dark .hero-head, + html.theme--documenter-dark .hero-foot { + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .hero-body { + flex-grow: 1; + flex-shrink: 0; + padding: 3rem 1.5rem; } + html.theme--documenter-dark .section { + padding: 3rem 1.5rem; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .section.is-medium { + padding: 9rem 1.5rem; } + html.theme--documenter-dark .section.is-large { + padding: 18rem 1.5rem; } } + html.theme--documenter-dark .footer { + background-color: #282f2f; + padding: 3rem 1.5rem 6rem; } + html.theme--documenter-dark hr { + height: 1px; } + html.theme--documenter-dark h6 { + text-transform: uppercase; + letter-spacing: 0.5px; } + html.theme--documenter-dark .hero { + background-color: #343c3d; } + html.theme--documenter-dark a { + transition: all 200ms ease; } + html.theme--documenter-dark .button { + transition: all 200ms ease; + border-width: 1px; + color: white; } + 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: white; } + 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: white; + 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: white; } + 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: 0.4em; } + html.theme--documenter-dark .card .card-image img { + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .card .card-header { + box-shadow: none; + background-color: rgba(18, 18, 18, 0.2); + border-radius: 0.4em 0.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: white; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-light a:not(.button) { + color: #282f2f; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-dark a:not(.button), html.theme--documenter-dark .content kbd.notification a:not(.button) { + color: #ecf0f1; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-primary a:not(.button), html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-link a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-info a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-success a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-warning a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-danger a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .tag, html.theme--documenter-dark .content kbd, html.theme--documenter-dark .docstring > section > a.docs-sourcelink { + border-radius: 0.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: white; } + html.theme--documenter-dark .message-body { + border-width: 1px; + border-color: #343c3d; } + html.theme--documenter-dark .navbar { + border-radius: 0.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 0.4em 0.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: transparent; } + html.theme--documenter-dark .hero.is-black .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-light .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + 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: transparent; } + 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: transparent; } + html.theme--documenter-dark .hero.is-link .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-info .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-success .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-warning .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-danger .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark h1 .docs-heading-anchor, html.theme--documenter-dark h1 .docs-heading-anchor:hover, html.theme--documenter-dark h1 .docs-heading-anchor:visited, html.theme--documenter-dark h2 .docs-heading-anchor, html.theme--documenter-dark h2 .docs-heading-anchor:hover, html.theme--documenter-dark h2 .docs-heading-anchor:visited, html.theme--documenter-dark h3 .docs-heading-anchor, html.theme--documenter-dark h3 .docs-heading-anchor:hover, html.theme--documenter-dark h3 .docs-heading-anchor:visited, html.theme--documenter-dark h4 .docs-heading-anchor, html.theme--documenter-dark h4 .docs-heading-anchor:hover, html.theme--documenter-dark h4 .docs-heading-anchor:visited, html.theme--documenter-dark h5 .docs-heading-anchor, html.theme--documenter-dark h5 .docs-heading-anchor:hover, html.theme--documenter-dark h5 .docs-heading-anchor:visited, html.theme--documenter-dark h6 .docs-heading-anchor, html.theme--documenter-dark h6 .docs-heading-anchor:hover, html.theme--documenter-dark h6 .docs-heading-anchor:visited { + color: #f2f2f2; } + html.theme--documenter-dark h1 .docs-heading-anchor-permalink, html.theme--documenter-dark h2 .docs-heading-anchor-permalink, html.theme--documenter-dark h3 .docs-heading-anchor-permalink, html.theme--documenter-dark h4 .docs-heading-anchor-permalink, html.theme--documenter-dark h5 .docs-heading-anchor-permalink, html.theme--documenter-dark h6 .docs-heading-anchor-permalink { + visibility: hidden; + vertical-align: middle; + margin-left: 0.5em; + font-size: 0.7rem; } + html.theme--documenter-dark h1 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h2 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h3 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h4 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h5 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h6 .docs-heading-anchor-permalink::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f0c1"; } + html.theme--documenter-dark h1:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h2:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h3:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h4:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h5:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h6:hover .docs-heading-anchor-permalink { + visibility: visible; } + html.theme--documenter-dark .docs-light-only { + display: none !important; } + html.theme--documenter-dark pre { + position: relative; + overflow: hidden; } + html.theme--documenter-dark pre code, html.theme--documenter-dark pre code.hljs { + padding: 0 0.75rem !important; + overflow: auto; + display: block; } + html.theme--documenter-dark pre code:first-of-type, html.theme--documenter-dark pre code.hljs:first-of-type { + padding-top: 0.5rem !important; } + html.theme--documenter-dark pre code:last-of-type, html.theme--documenter-dark pre code.hljs:last-of-type { + padding-bottom: 0.5rem !important; } + html.theme--documenter-dark pre .copy-button { + opacity: 0.2; + transition: opacity 0.2s; + position: absolute; + right: 0em; + top: 0em; + padding: 0.5em; + width: 2.5em; + height: 2.5em; + background: transparent; + border: none; + font-family: "Font Awesome 5 Free"; + color: #fff; + cursor: pointer; + text-align: center; } + html.theme--documenter-dark pre .copy-button:focus, html.theme--documenter-dark pre .copy-button:hover { + opacity: 1; + background: rgba(255, 255, 255, 0.1); + color: #1abc9c; } + html.theme--documenter-dark pre .copy-button.success { + color: #259a12; + opacity: 1; } + html.theme--documenter-dark pre .copy-button.error { + color: #cb3c33; + opacity: 1; } + html.theme--documenter-dark pre:hover .copy-button { + opacity: 1; } + html.theme--documenter-dark .admonition { + background-color: #282f2f; + border-style: solid; + border-width: 1px; + border-color: #5e6d6f; + border-radius: 0.4em; + font-size: 15px; } + html.theme--documenter-dark .admonition strong { + color: currentColor; } + html.theme--documenter-dark .admonition.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.admonition { + font-size: 0.85em; } + html.theme--documenter-dark .admonition.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .admonition.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .admonition.is-default { + background-color: #282f2f; + border-color: #5e6d6f; } + html.theme--documenter-dark .admonition.is-default > .admonition-header { + background-color: #5e6d6f; } + 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; } + 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; } + 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; } + 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; } + 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; } + html.theme--documenter-dark .admonition-header { + background-color: #5e6d6f; + align-items: center; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.5rem 0.75rem; + position: relative; } + html.theme--documenter-dark .admonition-header:before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + margin-right: 0.75rem; + content: "\f06a"; } + html.theme--documenter-dark .admonition-body { + color: #fff; + padding: 0.5rem 0.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: transparent; + border: 1px solid #5e6d6f; + box-shadow: none; + max-width: 100%; } + html.theme--documenter-dark .docstring > header { + display: flex; + flex-grow: 1; + align-items: stretch; + padding: 0.5rem 0.75rem; + background-color: #282f2f; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + box-shadow: none; + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .docstring > header code { + background-color: transparent; } + html.theme--documenter-dark .docstring > header .docstring-binding { + margin-right: 0.3em; } + html.theme--documenter-dark .docstring > header .docstring-category { + margin-left: 0.3em; } + html.theme--documenter-dark .docstring > section { + position: relative; + padding: 0.75rem 0.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: 0.375rem; + bottom: 0.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; + border-bottom: 3px solid #9e1b0d; + padding: 10px 35px; + text-align: center; + font-size: 15px; } + html.theme--documenter-dark .outdated-warning-overlay .outdated-warning-closer { + position: absolute; + top: calc(50% - 10px); + right: 18px; + cursor: pointer; + width: 12px; } + html.theme--documenter-dark .outdated-warning-overlay a { + color: #1abc9c; } + html.theme--documenter-dark .outdated-warning-overlay a:hover { + color: #1dd2af; } + html.theme--documenter-dark .content pre { + border: 1px solid #5e6d6f; } + html.theme--documenter-dark .content code { + font-weight: inherit; } + html.theme--documenter-dark .content a code { + color: #1abc9c; } + html.theme--documenter-dark .content h1 code, html.theme--documenter-dark .content h2 code, html.theme--documenter-dark .content h3 code, html.theme--documenter-dark .content h4 code, html.theme--documenter-dark .content h5 code, html.theme--documenter-dark .content h6 code { + color: #f2f2f2; } + html.theme--documenter-dark .content table { + display: block; + width: initial; + max-width: 100%; + overflow-x: auto; } + html.theme--documenter-dark .content blockquote > ul:first-child, html.theme--documenter-dark .content blockquote > ol:first-child, html.theme--documenter-dark .content .admonition-body > ul:first-child, html.theme--documenter-dark .content .admonition-body > ol:first-child { + margin-top: 0; } + html.theme--documenter-dark pre, html.theme--documenter-dark code { + font-variant-ligatures: no-contextual; } + html.theme--documenter-dark .breadcrumb a.is-disabled { + cursor: default; + pointer-events: none; } + html.theme--documenter-dark .breadcrumb a.is-disabled, html.theme--documenter-dark .breadcrumb a.is-disabled:hover { + color: #f2f2f2; } + html.theme--documenter-dark .hljs { + background: initial !important; } + html.theme--documenter-dark .katex .katex-mathml { + top: 0; + right: 0; } + html.theme--documenter-dark .katex-display, html.theme--documenter-dark mjx-container, html.theme--documenter-dark .MathJax_Display { + margin: 0.5em 0 !important; } + html.theme--documenter-dark html { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; } + html.theme--documenter-dark li.no-marker { + list-style: none; } + html.theme--documenter-dark #documenter .docs-main > article { + overflow-wrap: break-word; } + html.theme--documenter-dark #documenter .docs-main > article .math-container { + overflow-x: auto; + overflow-y: hidden; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-main { + max-width: 52rem; + margin-left: 20rem; + padding-right: 1rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main { + width: 100%; } + html.theme--documenter-dark #documenter .docs-main > article { + max-width: 52rem; + margin-left: auto; + margin-right: auto; + margin-bottom: 1rem; + padding: 0 1rem; } + html.theme--documenter-dark #documenter .docs-main > header, html.theme--documenter-dark #documenter .docs-main > nav { + max-width: 100%; + width: 100%; + margin: 0; } } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar { + background-color: #1f2424; + border-bottom: 1px solid #5e6d6f; + z-index: 2; + min-height: 4rem; + margin-bottom: 1rem; + display: flex; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .breadcrumb { + flex-grow: 1; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right { + display: flex; + white-space: nowrap; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-icon, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + display: inline-block; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label { + padding: 0; + margin-left: 0.3em; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button { + margin: auto 0 auto 1rem; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + font-size: 1.5rem; + margin: auto 0 auto 1rem; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar > * { + margin: auto 0; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main header.docs-navbar { + position: sticky; + top: 0; + padding: 0 1rem; + /* For Headroom.js */ + transition-property: top, box-shadow; + -webkit-transition-property: top, box-shadow; + /* Safari */ + transition-duration: 0.3s; + -webkit-transition-duration: 0.3s; + /* Safari */ } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--not-top { + box-shadow: 0.2rem 0rem 0.4rem #171717; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } + 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; + /* Safari */ } } + html.theme--documenter-dark #documenter .docs-main section.footnotes { + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-main section.footnotes li .tag:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .docstring > section > a.docs-sourcelink:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .content kbd:first-child, html.theme--documenter-dark .content #documenter .docs-main section.footnotes li kbd:first-child { + margin-right: 1em; + margin-bottom: 0.4em; } + html.theme--documenter-dark #documenter .docs-main .docs-footer { + display: flex; + flex-wrap: wrap; + margin-left: 0; + margin-right: 0; + border-top: 1px solid #5e6d6f; + padding-top: 1rem; + padding-bottom: 1rem; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main .docs-footer { + padding-left: 1rem; + padding-right: 1rem; } } + html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage, html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-prevpage { + flex-grow: 1; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage { + text-align: right; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .flexbox-break { + flex-basis: 100%; + height: 0; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .footer-message { + font-size: 0.8em; + margin: 0.5em auto 0 auto; + text-align: center; } + html.theme--documenter-dark #documenter .docs-sidebar { + display: flex; + flex-direction: column; + color: #fff; + background-color: #282f2f; + border-right: 1px solid #5e6d6f; + padding: 0; + flex: 0 0 18rem; + z-index: 5; + font-size: 15px; + position: fixed; + left: -18rem; + width: 18rem; + height: 100%; + transition: left 0.3s; + /* Setting up a nicer theme style for the scrollbar */ } + html.theme--documenter-dark #documenter .docs-sidebar.visible { + left: 0; + box-shadow: 0.4rem 0rem 0.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; + /* Managing collapsible submenus */ } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li > .tocitem { + font-weight: bold; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li li { + font-size: 14.25px; + margin-left: 1em; + border-left: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input.collapse-toggle { + display: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.collapsed { + display: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ ul.collapsed { + display: block; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem { + display: flex; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label { + flex-grow: 2; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron { + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; + font-size: 11.25px; + margin-left: 1rem; + margin-top: auto; + margin-bottom: auto; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f054"; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before { + content: "\f078"; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem { + display: block; + padding: 0.5rem 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem:hover { + color: #fff; + background: #282f2f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu a.tocitem:hover, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem:hover { + color: #fff; + background-color: #32393a; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active { + border-top: 1px solid #5e6d6f; + border-bottom: 1px solid #5e6d6f; + background-color: #1f2424; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover { + background-color: #1f2424; + color: #fff; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover { + background-color: #32393a; + color: #fff; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li.is-active:first-child { + border-top: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal { + margin: 0 0.5rem 0.5rem; + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal li { + font-size: 12.75px; + border-left: none; + margin-left: 0; + margin-top: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem { + width: 100%; + padding: 0; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before { + content: "⚬"; + margin-right: 0.4em; } + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search { + margin: auto; + margin-top: 0.5rem; + margin-bottom: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + width: 14.4rem; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar { + width: .3rem; + background: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #3b4445; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover { + background: #4e5a5c; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-sidebar { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar { + width: .3rem; + background: none; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #3b4445; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover { + background: #4e5a5c; } } + html.theme--documenter-dark #documenter .docs-main #documenter-search-info { + margin-bottom: 1rem; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results { + list-style-type: circle; + list-style-position: outside; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results li { + margin-left: 2rem; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results .docs-highlight { + background-color: yellow; } + html.theme--documenter-dark { + background-color: #1f2424; + font-size: 16px; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + html.theme--documenter-dark .ansi span.sgr1 { + font-weight: bolder; } + html.theme--documenter-dark .ansi span.sgr2 { + font-weight: lighter; } + html.theme--documenter-dark .ansi span.sgr3 { + font-style: italic; } + html.theme--documenter-dark .ansi span.sgr4 { + text-decoration: underline; } + html.theme--documenter-dark .ansi span.sgr7 { + color: #1f2424; + background-color: #fff; } + html.theme--documenter-dark .ansi span.sgr8 { + color: transparent; } + html.theme--documenter-dark .ansi span.sgr8 span { + color: transparent; } + html.theme--documenter-dark .ansi span.sgr9 { + text-decoration: line-through; } + html.theme--documenter-dark .ansi span.sgr30 { + color: #242424; } + html.theme--documenter-dark .ansi span.sgr31 { + color: #f6705f; } + html.theme--documenter-dark .ansi span.sgr32 { + color: #4fb43a; } + html.theme--documenter-dark .ansi span.sgr33 { + color: #f4c72f; } + html.theme--documenter-dark .ansi span.sgr34 { + color: #7587f0; } + html.theme--documenter-dark .ansi span.sgr35 { + color: #bc89d3; } + html.theme--documenter-dark .ansi span.sgr36 { + color: #49b6ca; } + html.theme--documenter-dark .ansi span.sgr37 { + color: #b3bdbe; } + html.theme--documenter-dark .ansi span.sgr40 { + background-color: #242424; } + html.theme--documenter-dark .ansi span.sgr41 { + background-color: #f6705f; } + html.theme--documenter-dark .ansi span.sgr42 { + background-color: #4fb43a; } + html.theme--documenter-dark .ansi span.sgr43 { + background-color: #f4c72f; } + html.theme--documenter-dark .ansi span.sgr44 { + background-color: #7587f0; } + html.theme--documenter-dark .ansi span.sgr45 { + background-color: #bc89d3; } + html.theme--documenter-dark .ansi span.sgr46 { + background-color: #49b6ca; } + html.theme--documenter-dark .ansi span.sgr47 { + background-color: #b3bdbe; } + html.theme--documenter-dark .ansi span.sgr90 { + color: #92a0a2; } + html.theme--documenter-dark .ansi span.sgr91 { + color: #ff8674; } + html.theme--documenter-dark .ansi span.sgr92 { + color: #79d462; } + html.theme--documenter-dark .ansi span.sgr93 { + color: #ffe76b; } + html.theme--documenter-dark .ansi span.sgr94 { + color: #8a98ff; } + html.theme--documenter-dark .ansi span.sgr95 { + color: #d2a4e6; } + html.theme--documenter-dark .ansi span.sgr96 { + color: #6bc8db; } + html.theme--documenter-dark .ansi span.sgr97 { + color: #ecf0f1; } + html.theme--documenter-dark .ansi span.sgr100 { + background-color: #92a0a2; } + html.theme--documenter-dark .ansi span.sgr101 { + background-color: #ff8674; } + html.theme--documenter-dark .ansi span.sgr102 { + background-color: #79d462; } + html.theme--documenter-dark .ansi span.sgr103 { + background-color: #ffe76b; } + html.theme--documenter-dark .ansi span.sgr104 { + background-color: #8a98ff; } + html.theme--documenter-dark .ansi span.sgr105 { + background-color: #d2a4e6; } + html.theme--documenter-dark .ansi span.sgr106 { + background-color: #6bc8db; } + html.theme--documenter-dark .ansi span.sgr107 { + background-color: #ecf0f1; } + html.theme--documenter-dark code.language-julia-repl > span.hljs-meta { + color: #4fb43a; + font-weight: bolder; } + html.theme--documenter-dark .hljs { + background: #2b2b2b; + color: #f8f8f2; } + html.theme--documenter-dark .hljs-comment, + html.theme--documenter-dark .hljs-quote { + color: #d4d0ab; } + html.theme--documenter-dark .hljs-variable, + html.theme--documenter-dark .hljs-template-variable, + html.theme--documenter-dark .hljs-tag, + html.theme--documenter-dark .hljs-name, + html.theme--documenter-dark .hljs-selector-id, + html.theme--documenter-dark .hljs-selector-class, + html.theme--documenter-dark .hljs-regexp, + html.theme--documenter-dark .hljs-deletion { + color: #ffa07a; } + html.theme--documenter-dark .hljs-number, + html.theme--documenter-dark .hljs-built_in, + html.theme--documenter-dark .hljs-literal, + html.theme--documenter-dark .hljs-type, + html.theme--documenter-dark .hljs-params, + html.theme--documenter-dark .hljs-meta, + html.theme--documenter-dark .hljs-link { + color: #f5ab35; } + html.theme--documenter-dark .hljs-attribute { + color: #ffd700; } + html.theme--documenter-dark .hljs-string, + html.theme--documenter-dark .hljs-symbol, + html.theme--documenter-dark .hljs-bullet, + html.theme--documenter-dark .hljs-addition { + color: #abe338; } + html.theme--documenter-dark .hljs-title, + html.theme--documenter-dark .hljs-section { + color: #00e0e0; } + html.theme--documenter-dark .hljs-keyword, + html.theme--documenter-dark .hljs-selector-tag { + color: #dcc6e0; } + html.theme--documenter-dark .hljs-emphasis { + font-style: italic; } + html.theme--documenter-dark .hljs-strong { + font-weight: bold; } + @media screen and (-ms-high-contrast: active) { + html.theme--documenter-dark .hljs-addition, + html.theme--documenter-dark .hljs-attribute, + html.theme--documenter-dark .hljs-built_in, + html.theme--documenter-dark .hljs-bullet, + html.theme--documenter-dark .hljs-comment, + html.theme--documenter-dark .hljs-link, + html.theme--documenter-dark .hljs-literal, + html.theme--documenter-dark .hljs-meta, + html.theme--documenter-dark .hljs-number, + html.theme--documenter-dark .hljs-params, + html.theme--documenter-dark .hljs-string, + html.theme--documenter-dark .hljs-symbol, + html.theme--documenter-dark .hljs-type, + html.theme--documenter-dark .hljs-quote { + color: highlight; } + html.theme--documenter-dark .hljs-keyword, + html.theme--documenter-dark .hljs-selector-tag { + font-weight: bold; } } + html.theme--documenter-dark .hljs-subst { + color: #f8f8f2; } diff --git a/previews/PR345/assets/themes/documenter-light.css b/previews/PR345/assets/themes/documenter-light.css new file mode 100644 index 000000000..9595d5b8e --- /dev/null +++ b/previews/PR345/assets/themes/documenter-light.css @@ -0,0 +1,7738 @@ +@charset "UTF-8"; +/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */ +@keyframes spinAround { + from { + transform: rotate(0deg); } + to { + transform: rotate(359deg); } } + +.tabs, .pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis, .breadcrumb, .file, .button, .is-unselectable, .modal-close, .delete { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +.navbar-link:not(.is-arrowless)::after, .select:not(.is-multiple):not(.is-loading)::after { + border: 3px solid transparent; + border-radius: 2px; + border-right: 0; + border-top: 0; + content: " "; + display: block; + height: 0.625em; + margin-top: -0.4375em; + pointer-events: none; + position: absolute; + top: 50%; + transform: rotate(-45deg); + transform-origin: center; + width: 0.625em; } + +.admonition:not(:last-child), .tabs:not(:last-child), .message:not(:last-child), .list:not(:last-child), .level:not(:last-child), .breadcrumb:not(:last-child), .highlight:not(:last-child), .block:not(:last-child), .title:not(:last-child), +.subtitle:not(:last-child), .table-container:not(:last-child), .table:not(:last-child), .progress:not(:last-child), .notification:not(:last-child), .content:not(:last-child), .box:not(:last-child) { + margin-bottom: 1.5rem; } + +.modal-close, .delete { + -moz-appearance: none; + -webkit-appearance: none; + background-color: rgba(10, 10, 10, 0.2); + border: none; + border-radius: 290486px; + cursor: pointer; + pointer-events: auto; + display: inline-block; + flex-grow: 0; + flex-shrink: 0; + font-size: 0; + height: 20px; + max-height: 20px; + max-width: 20px; + min-height: 20px; + min-width: 20px; + outline: none; + position: relative; + vertical-align: top; + width: 20px; } + .modal-close::before, .delete::before, .modal-close::after, .delete::after { + background-color: white; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + .modal-close::before, .delete::before { + height: 2px; + width: 50%; } + .modal-close::after, .delete::after { + height: 50%; + width: 2px; } + .modal-close:hover, .delete:hover, .modal-close:focus, .delete:focus { + background-color: rgba(10, 10, 10, 0.3); } + .modal-close:active, .delete:active { + background-color: rgba(10, 10, 10, 0.4); } + .is-small.modal-close, #documenter .docs-sidebar form.docs-search > input.modal-close, .is-small.delete, #documenter .docs-sidebar form.docs-search > input.delete { + height: 16px; + max-height: 16px; + max-width: 16px; + min-height: 16px; + min-width: 16px; + width: 16px; } + .is-medium.modal-close, .is-medium.delete { + height: 24px; + max-height: 24px; + max-width: 24px; + min-height: 24px; + min-width: 24px; + width: 24px; } + .is-large.modal-close, .is-large.delete { + height: 32px; + max-height: 32px; + max-width: 32px; + min-height: 32px; + min-width: 32px; + width: 32px; } + +.control.is-loading::after, .select.is-loading::after, .loader, .button.is-loading::after { + animation: spinAround 500ms infinite linear; + border: 2px solid #dbdbdb; + border-radius: 290486px; + border-right-color: transparent; + border-top-color: transparent; + content: ""; + display: block; + height: 1em; + position: relative; + width: 1em; } + +.hero-video, .modal-background, .modal, .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img, +.image.is-square .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img, +.image.is-1by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img, +.image.is-5by4 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img, +.image.is-4by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img, +.image.is-3by2 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img, +.image.is-5by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img, +.image.is-16by9 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img, +.image.is-2by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img, +.image.is-3by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img, +.image.is-4by5 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img, +.image.is-3by4 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img, +.image.is-2by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img, +.image.is-3by5 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img, +.image.is-9by16 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img, +.image.is-1by2 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img, +.image.is-1by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, .is-overlay { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; } + +.pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis, .file-cta, +.file-name, .select select, .textarea, .input, #documenter .docs-sidebar form.docs-search > input, .button { + -moz-appearance: none; + -webkit-appearance: none; + align-items: center; + border: 1px solid transparent; + border-radius: 4px; + box-shadow: none; + display: inline-flex; + font-size: 1rem; + height: 2.25em; + justify-content: flex-start; + line-height: 1.5; + padding-bottom: calc(0.375em - 1px); + padding-left: calc(0.625em - 1px); + padding-right: calc(0.625em - 1px); + padding-top: calc(0.375em - 1px); + position: relative; + vertical-align: top; } + .pagination-previous:focus, + .pagination-next:focus, + .pagination-link:focus, + .pagination-ellipsis:focus, .file-cta:focus, + .file-name:focus, .select select:focus, .textarea:focus, .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .button:focus, .is-focused.pagination-previous, + .is-focused.pagination-next, + .is-focused.pagination-link, + .is-focused.pagination-ellipsis, .is-focused.file-cta, + .is-focused.file-name, .select select.is-focused, .is-focused.textarea, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-focused.button, .pagination-previous:active, + .pagination-next:active, + .pagination-link:active, + .pagination-ellipsis:active, .file-cta:active, + .file-name:active, .select select:active, .textarea:active, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .button:active, .is-active.pagination-previous, + .is-active.pagination-next, + .is-active.pagination-link, + .is-active.pagination-ellipsis, .is-active.file-cta, + .is-active.file-name, .select select.is-active, .is-active.textarea, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .is-active.button { + outline: none; } + .pagination-previous[disabled], + .pagination-next[disabled], + .pagination-link[disabled], + .pagination-ellipsis[disabled], .file-cta[disabled], + .file-name[disabled], .select select[disabled], .textarea[disabled], .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], .button[disabled], fieldset[disabled] .pagination-previous, + fieldset[disabled] .pagination-next, + fieldset[disabled] .pagination-link, + fieldset[disabled] .pagination-ellipsis, fieldset[disabled] .file-cta, + fieldset[disabled] .file-name, fieldset[disabled] .select select, .select fieldset[disabled] select, fieldset[disabled] .textarea, fieldset[disabled] .input, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, fieldset[disabled] .button { + cursor: not-allowed; } + +/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */ +html, +body, +p, +ol, +ul, +li, +dl, +dt, +dd, +blockquote, +figure, +fieldset, +legend, +textarea, +pre, +iframe, +hr, +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + padding: 0; } + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: 100%; + font-weight: normal; } + +ul { + list-style: none; } + +button, +input, +select, +textarea { + margin: 0; } + +html { + box-sizing: border-box; } + +*, *::before, *::after { + box-sizing: inherit; } + +img, +embed, +iframe, +object, +video { + height: auto; + max-width: 100%; } + +audio { + max-width: 100%; } + +iframe { + border: 0; } + +table { + border-collapse: collapse; + border-spacing: 0; } + +td, +th { + padding: 0; } + td:not([align]), + th:not([align]) { + text-align: left; } + +html { + background-color: white; + font-size: 16px; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + +article, +aside, +figure, +footer, +header, +hgroup, +section { + display: block; } + +body, +button, +input, +select, +textarea { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; } + +code, +pre { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; } + +body { + color: #222222; + 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: #000000; + font-size: 0.875em; + font-weight: normal; + padding: 0.1em; } + +hr { + background-color: whitesmoke; + 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: 0.875em; } + +span { + font-style: inherit; + font-weight: inherit; } + +strong { + color: #222222; + font-weight: 700; } + +fieldset { + border: none; } + +pre { + -webkit-overflow-scrolling: touch; + background-color: whitesmoke; + color: #222222; + font-size: 0.875em; + overflow-x: auto; + padding: 1.25rem 1.5rem; + white-space: pre; + word-wrap: normal; } + pre code { + background-color: transparent; + color: currentColor; + font-size: 1em; + padding: 0; } + +table td, +table th { + vertical-align: top; } + table td:not([align]), + table th:not([align]) { + text-align: left; } + +table th { + color: #222222; } + +.is-clearfix::after { + clear: both; + content: " "; + display: table; } + +.is-pulled-left { + float: left !important; } + +.is-pulled-right { + float: right !important; } + +.is-clipped { + overflow: hidden !important; } + +.is-size-1 { + font-size: 3rem !important; } + +.is-size-2 { + font-size: 2.5rem !important; } + +.is-size-3 { + font-size: 2rem !important; } + +.is-size-4 { + font-size: 1.5rem !important; } + +.is-size-5 { + font-size: 1.25rem !important; } + +.is-size-6 { + font-size: 1rem !important; } + +.is-size-7, .docstring > section > a.docs-sourcelink { + font-size: 0.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: 0.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: 0.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: 0.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: 0.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: 0.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: 0.75rem !important; } } + +.has-text-centered { + text-align: center !important; } + +.has-text-justified { + text-align: justify !important; } + +.has-text-left { + text-align: left !important; } + +.has-text-right { + text-align: right !important; } + +@media screen and (max-width: 768px) { + .has-text-centered-mobile { + text-align: center !important; } } + +@media screen and (min-width: 769px), print { + .has-text-centered-tablet { + text-align: center !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-centered-tablet-only { + text-align: center !important; } } + +@media screen and (max-width: 1055px) { + .has-text-centered-touch { + text-align: center !important; } } + +@media screen and (min-width: 1056px) { + .has-text-centered-desktop { + text-align: center !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-centered-desktop-only { + text-align: center !important; } } + +@media screen and (min-width: 1216px) { + .has-text-centered-widescreen { + text-align: center !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-centered-widescreen-only { + text-align: center !important; } } + +@media screen and (min-width: 1408px) { + .has-text-centered-fullhd { + text-align: center !important; } } + +@media screen and (max-width: 768px) { + .has-text-justified-mobile { + text-align: justify !important; } } + +@media screen and (min-width: 769px), print { + .has-text-justified-tablet { + text-align: justify !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-justified-tablet-only { + text-align: justify !important; } } + +@media screen and (max-width: 1055px) { + .has-text-justified-touch { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) { + .has-text-justified-desktop { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-justified-desktop-only { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) { + .has-text-justified-widescreen { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-justified-widescreen-only { + text-align: justify !important; } } + +@media screen and (min-width: 1408px) { + .has-text-justified-fullhd { + text-align: justify !important; } } + +@media screen and (max-width: 768px) { + .has-text-left-mobile { + text-align: left !important; } } + +@media screen and (min-width: 769px), print { + .has-text-left-tablet { + text-align: left !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-left-tablet-only { + text-align: left !important; } } + +@media screen and (max-width: 1055px) { + .has-text-left-touch { + text-align: left !important; } } + +@media screen and (min-width: 1056px) { + .has-text-left-desktop { + text-align: left !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-left-desktop-only { + text-align: left !important; } } + +@media screen and (min-width: 1216px) { + .has-text-left-widescreen { + text-align: left !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-left-widescreen-only { + text-align: left !important; } } + +@media screen and (min-width: 1408px) { + .has-text-left-fullhd { + text-align: left !important; } } + +@media screen and (max-width: 768px) { + .has-text-right-mobile { + text-align: right !important; } } + +@media screen and (min-width: 769px), print { + .has-text-right-tablet { + text-align: right !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-right-tablet-only { + text-align: right !important; } } + +@media screen and (max-width: 1055px) { + .has-text-right-touch { + text-align: right !important; } } + +@media screen and (min-width: 1056px) { + .has-text-right-desktop { + text-align: right !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-right-desktop-only { + text-align: right !important; } } + +@media screen and (min-width: 1216px) { + .has-text-right-widescreen { + text-align: right !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-right-widescreen-only { + text-align: right !important; } } + +@media screen and (min-width: 1408px) { + .has-text-right-fullhd { + text-align: right !important; } } + +.is-capitalized { + text-transform: capitalize !important; } + +.is-lowercase { + text-transform: lowercase !important; } + +.is-uppercase { + text-transform: uppercase !important; } + +.is-italic { + font-style: italic !important; } + +.has-text-white { + color: white !important; } + +a.has-text-white:hover, a.has-text-white:focus { + color: #e6e6e6 !important; } + +.has-background-white { + background-color: white !important; } + +.has-text-black { + color: #0a0a0a !important; } + +a.has-text-black:hover, a.has-text-black:focus { + color: black !important; } + +.has-background-black { + background-color: #0a0a0a !important; } + +.has-text-light { + color: whitesmoke !important; } + +a.has-text-light:hover, a.has-text-light:focus { + color: #dbdbdb !important; } + +.has-background-light { + background-color: whitesmoke !important; } + +.has-text-dark { + color: #363636 !important; } + +a.has-text-dark:hover, a.has-text-dark:focus { + color: #1c1c1c !important; } + +.has-background-dark { + background-color: #363636 !important; } + +.has-text-primary { + color: #4eb5de !important; } + +a.has-text-primary:hover, a.has-text-primary:focus { + color: #27a1d2 !important; } + +.has-background-primary { + background-color: #4eb5de !important; } + +.has-text-link { + color: #2e63b8 !important; } + +a.has-text-link:hover, a.has-text-link:focus { + color: #244d8f !important; } + +.has-background-link { + background-color: #2e63b8 !important; } + +.has-text-info { + color: #209cee !important; } + +a.has-text-info:hover, a.has-text-info:focus { + color: #1081cb !important; } + +.has-background-info { + background-color: #209cee !important; } + +.has-text-success { + color: #22c35b !important; } + +a.has-text-success:hover, a.has-text-success:focus { + color: #1a9847 !important; } + +.has-background-success { + background-color: #22c35b !important; } + +.has-text-warning { + color: #ffdd57 !important; } + +a.has-text-warning:hover, a.has-text-warning:focus { + color: #ffd324 !important; } + +.has-background-warning { + background-color: #ffdd57 !important; } + +.has-text-danger { + color: #da0b00 !important; } + +a.has-text-danger:hover, a.has-text-danger:focus { + color: #a70800 !important; } + +.has-background-danger { + background-color: #da0b00 !important; } + +.has-text-black-bis { + color: #121212 !important; } + +.has-background-black-bis { + background-color: #121212 !important; } + +.has-text-black-ter { + color: #242424 !important; } + +.has-background-black-ter { + background-color: #242424 !important; } + +.has-text-grey-darker { + color: #363636 !important; } + +.has-background-grey-darker { + background-color: #363636 !important; } + +.has-text-grey-dark { + color: #4a4a4a !important; } + +.has-background-grey-dark { + background-color: #4a4a4a !important; } + +.has-text-grey { + color: #6b6b6b !important; } + +.has-background-grey { + background-color: #6b6b6b !important; } + +.has-text-grey-light { + color: #b5b5b5 !important; } + +.has-background-grey-light { + background-color: #b5b5b5 !important; } + +.has-text-grey-lighter { + color: #dbdbdb !important; } + +.has-background-grey-lighter { + background-color: #dbdbdb !important; } + +.has-text-white-ter { + color: whitesmoke !important; } + +.has-background-white-ter { + background-color: whitesmoke !important; } + +.has-text-white-bis { + color: #fafafa !important; } + +.has-background-white-bis { + background-color: #fafafa !important; } + +.has-text-weight-light { + font-weight: 300 !important; } + +.has-text-weight-normal { + font-weight: 400 !important; } + +.has-text-weight-medium { + font-weight: 500 !important; } + +.has-text-weight-semibold { + font-weight: 600 !important; } + +.has-text-weight-bold { + font-weight: 700 !important; } + +.is-family-primary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-secondary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-sans-serif { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-monospace { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-family-code { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-block { + display: block !important; } + +@media screen and (max-width: 768px) { + .is-block-mobile { + display: block !important; } } + +@media screen and (min-width: 769px), print { + .is-block-tablet { + display: block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-block-tablet-only { + display: block !important; } } + +@media screen and (max-width: 1055px) { + .is-block-touch { + display: block !important; } } + +@media screen and (min-width: 1056px) { + .is-block-desktop { + display: block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-block-desktop-only { + display: block !important; } } + +@media screen and (min-width: 1216px) { + .is-block-widescreen { + display: block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-block-widescreen-only { + display: block !important; } } + +@media screen and (min-width: 1408px) { + .is-block-fullhd { + display: block !important; } } + +.is-flex { + display: flex !important; } + +@media screen and (max-width: 768px) { + .is-flex-mobile { + display: flex !important; } } + +@media screen and (min-width: 769px), print { + .is-flex-tablet { + display: flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-flex-tablet-only { + display: flex !important; } } + +@media screen and (max-width: 1055px) { + .is-flex-touch { + display: flex !important; } } + +@media screen and (min-width: 1056px) { + .is-flex-desktop { + display: flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-flex-desktop-only { + display: flex !important; } } + +@media screen and (min-width: 1216px) { + .is-flex-widescreen { + display: flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-flex-widescreen-only { + display: flex !important; } } + +@media screen and (min-width: 1408px) { + .is-flex-fullhd { + display: flex !important; } } + +.is-inline { + display: inline !important; } + +@media screen and (max-width: 768px) { + .is-inline-mobile { + display: inline !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-tablet { + display: inline !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-tablet-only { + display: inline !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-touch { + display: inline !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-desktop { + display: inline !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-desktop-only { + display: inline !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-widescreen { + display: inline !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-widescreen-only { + display: inline !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-fullhd { + display: inline !important; } } + +.is-inline-block { + display: inline-block !important; } + +@media screen and (max-width: 768px) { + .is-inline-block-mobile { + display: inline-block !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-block-tablet { + display: inline-block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-block-tablet-only { + display: inline-block !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-block-touch { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-block-desktop { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-block-desktop-only { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-block-widescreen { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-block-widescreen-only { + display: inline-block !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-block-fullhd { + display: inline-block !important; } } + +.is-inline-flex { + display: inline-flex !important; } + +@media screen and (max-width: 768px) { + .is-inline-flex-mobile { + display: inline-flex !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-flex-tablet { + display: inline-flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-flex-tablet-only { + display: inline-flex !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-flex-touch { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-flex-desktop { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-flex-desktop-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-flex-widescreen { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-flex-widescreen-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-flex-fullhd { + display: inline-flex !important; } } + +.is-hidden { + display: none !important; } + +.is-sr-only { + border: none !important; + clip: rect(0, 0, 0, 0) !important; + height: 0.01em !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + white-space: nowrap !important; + width: 0.01em !important; } + +@media screen and (max-width: 768px) { + .is-hidden-mobile { + display: none !important; } } + +@media screen and (min-width: 769px), print { + .is-hidden-tablet { + display: none !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-hidden-tablet-only { + display: none !important; } } + +@media screen and (max-width: 1055px) { + .is-hidden-touch { + display: none !important; } } + +@media screen and (min-width: 1056px) { + .is-hidden-desktop { + display: none !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-hidden-desktop-only { + display: none !important; } } + +@media screen and (min-width: 1216px) { + .is-hidden-widescreen { + display: none !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-hidden-widescreen-only { + display: none !important; } } + +@media screen and (min-width: 1408px) { + .is-hidden-fullhd { + display: none !important; } } + +.is-invisible { + visibility: hidden !important; } + +@media screen and (max-width: 768px) { + .is-invisible-mobile { + visibility: hidden !important; } } + +@media screen and (min-width: 769px), print { + .is-invisible-tablet { + visibility: hidden !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-invisible-tablet-only { + visibility: hidden !important; } } + +@media screen and (max-width: 1055px) { + .is-invisible-touch { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) { + .is-invisible-desktop { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-invisible-desktop-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) { + .is-invisible-widescreen { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-invisible-widescreen-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1408px) { + .is-invisible-fullhd { + visibility: hidden !important; } } + +.is-marginless { + margin: 0 !important; } + +.is-paddingless { + padding: 0 !important; } + +.is-radiusless { + border-radius: 0 !important; } + +.is-shadowless { + box-shadow: none !important; } + +.is-relative { + position: relative !important; } + +.box { + background-color: white; + border-radius: 6px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #222222; + display: block; + padding: 1.25rem; } + +a.box:hover, a.box:focus { + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #2e63b8; } + +a.box:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #2e63b8; } + +.button { + background-color: white; + border-color: #dbdbdb; + border-width: 1px; + color: #363636; + cursor: pointer; + justify-content: center; + padding-bottom: calc(0.375em - 1px); + padding-left: 0.75em; + padding-right: 0.75em; + padding-top: calc(0.375em - 1px); + text-align: center; + white-space: nowrap; } + .button strong { + color: inherit; } + .button .icon, .button .icon.is-small, .button #documenter .docs-sidebar form.docs-search > input.icon, #documenter .docs-sidebar .button form.docs-search > input.icon, .button .icon.is-medium, .button .icon.is-large { + height: 1.5em; + width: 1.5em; } + .button .icon:first-child:not(:last-child) { + margin-left: calc(-0.375em - 1px); + margin-right: 0.1875em; } + .button .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: calc(-0.375em - 1px); } + .button .icon:first-child:last-child { + margin-left: calc(-0.375em - 1px); + margin-right: calc(-0.375em - 1px); } + .button:hover, .button.is-hovered { + border-color: #b5b5b5; + color: #363636; } + .button:focus, .button.is-focused { + border-color: #3c5dcd; + color: #363636; } + .button:focus:not(:active), .button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .button:active, .button.is-active { + border-color: #4a4a4a; + color: #363636; } + .button.is-text { + background-color: transparent; + border-color: transparent; + color: #222222; + text-decoration: underline; } + .button.is-text:hover, .button.is-text.is-hovered, .button.is-text:focus, .button.is-text.is-focused { + background-color: whitesmoke; + color: #222222; } + .button.is-text:active, .button.is-text.is-active { + background-color: #e8e8e8; + color: #222222; } + .button.is-text[disabled], fieldset[disabled] .button.is-text { + background-color: transparent; + border-color: transparent; + box-shadow: none; } + .button.is-white { + background-color: white; + 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: white; + border-color: transparent; + box-shadow: none; } + .button.is-white.is-inverted { + background-color: #0a0a0a; + color: white; } + .button.is-white.is-inverted:hover, .button.is-white.is-inverted.is-hovered { + background-color: black; } + .button.is-white.is-inverted[disabled], fieldset[disabled] .button.is-white.is-inverted { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; + color: white; } + .button.is-white.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + .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: white; + border-color: white; + color: #0a0a0a; } + .button.is-white.is-outlined.is-loading::after { + border-color: transparent transparent white white !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: white; + box-shadow: none; + color: white; } + .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: white; } + .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 white white !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: white; } + .button.is-black:hover, .button.is-black.is-hovered { + background-color: #040404; + border-color: transparent; + color: white; } + .button.is-black:focus, .button.is-black.is-focused { + border-color: transparent; + color: white; } + .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: black; + border-color: transparent; + color: white; } + .button.is-black[disabled], fieldset[disabled] .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; } + .button.is-black.is-inverted { + background-color: white; + 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: white; + border-color: transparent; + box-shadow: none; + color: #0a0a0a; } + .button.is-black.is-loading::after { + border-color: transparent transparent white white !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: white; } + .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 white white !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: white; + color: white; } + .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: white; + 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: white; + box-shadow: none; + color: white; } + .button.is-light { + background-color: whitesmoke; + border-color: transparent; + color: #363636; } + .button.is-light:hover, .button.is-light.is-hovered { + background-color: #eeeeee; + border-color: transparent; + color: #363636; } + .button.is-light:focus, .button.is-light.is-focused { + border-color: transparent; + color: #363636; } + .button.is-light:focus:not(:active), .button.is-light.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } + .button.is-light:active, .button.is-light.is-active { + background-color: #e8e8e8; + border-color: transparent; + color: #363636; } + .button.is-light[disabled], fieldset[disabled] .button.is-light { + background-color: whitesmoke; + border-color: transparent; + box-shadow: none; } + .button.is-light.is-inverted { + background-color: #363636; + color: whitesmoke; } + .button.is-light.is-inverted:hover, .button.is-light.is-inverted.is-hovered { + background-color: #292929; } + .button.is-light.is-inverted[disabled], fieldset[disabled] .button.is-light.is-inverted { + background-color: #363636; + border-color: transparent; + box-shadow: none; + color: whitesmoke; } + .button.is-light.is-loading::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-light.is-outlined { + background-color: transparent; + border-color: whitesmoke; + color: whitesmoke; } + .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: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .button.is-light.is-outlined.is-loading::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-light.is-outlined.is-loading:hover::after, .button.is-light.is-outlined.is-loading.is-hovered::after, .button.is-light.is-outlined.is-loading:focus::after, .button.is-light.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-light.is-outlined[disabled], fieldset[disabled] .button.is-light.is-outlined { + background-color: transparent; + border-color: whitesmoke; + box-shadow: none; + color: whitesmoke; } + .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #363636; + color: #363636; } + .button.is-light.is-inverted.is-outlined:hover, .button.is-light.is-inverted.is-outlined.is-hovered, .button.is-light.is-inverted.is-outlined:focus, .button.is-light.is-inverted.is-outlined.is-focused { + background-color: #363636; + color: whitesmoke; } + .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 whitesmoke whitesmoke !important; } + .button.is-light.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #363636; + box-shadow: none; + color: #363636; } + .button.is-dark, .content kbd.button { + background-color: #363636; + border-color: transparent; + color: whitesmoke; } + .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: whitesmoke; } + .button.is-dark:focus, .content kbd.button:focus, .button.is-dark.is-focused, .content kbd.button.is-focused { + border-color: transparent; + color: whitesmoke; } + .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: whitesmoke; } + .button.is-dark[disabled], .content kbd.button[disabled], fieldset[disabled] .button.is-dark, fieldset[disabled] .content kbd.button, .content fieldset[disabled] kbd.button { + background-color: #363636; + border-color: transparent; + box-shadow: none; } + .button.is-dark.is-inverted, .content kbd.button.is-inverted { + background-color: whitesmoke; + color: #363636; } + .button.is-dark.is-inverted:hover, .content kbd.button.is-inverted:hover, .button.is-dark.is-inverted.is-hovered, .content kbd.button.is-inverted.is-hovered { + background-color: #e8e8e8; } + .button.is-dark.is-inverted[disabled], .content kbd.button.is-inverted[disabled], fieldset[disabled] .button.is-dark.is-inverted, fieldset[disabled] .content kbd.button.is-inverted, .content fieldset[disabled] kbd.button.is-inverted { + background-color: whitesmoke; + border-color: transparent; + box-shadow: none; + color: #363636; } + .button.is-dark.is-loading::after, .content kbd.button.is-loading::after { + border-color: transparent transparent whitesmoke whitesmoke !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: whitesmoke; } + .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 whitesmoke whitesmoke !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: whitesmoke; + color: whitesmoke; } + .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: whitesmoke; + 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: whitesmoke; + box-shadow: none; + color: whitesmoke; } + .button.is-primary, .docstring > section > a.button.docs-sourcelink { + background-color: #4eb5de; + border-color: transparent; + color: #fff; } + .button.is-primary:hover, .docstring > section > a.button.docs-sourcelink:hover, .button.is-primary.is-hovered, .docstring > section > a.button.is-hovered.docs-sourcelink { + background-color: #43b1dc; + border-color: transparent; + color: #fff; } + .button.is-primary:focus, .docstring > section > a.button.docs-sourcelink:focus, .button.is-primary.is-focused, .docstring > section > a.button.is-focused.docs-sourcelink { + border-color: transparent; + color: #fff; } + .button.is-primary:focus:not(:active), .docstring > section > a.button.docs-sourcelink:focus:not(:active), .button.is-primary.is-focused:not(:active), .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) { + box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } + .button.is-primary:active, .docstring > section > a.button.docs-sourcelink:active, .button.is-primary.is-active, .docstring > section > a.button.is-active.docs-sourcelink { + background-color: #39acda; + border-color: transparent; + color: #fff; } + .button.is-primary[disabled], .docstring > section > a.button.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary, fieldset[disabled] .docstring > section > a.button.docs-sourcelink { + background-color: #4eb5de; + border-color: transparent; + box-shadow: none; } + .button.is-primary.is-inverted, .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + color: #4eb5de; } + .button.is-primary.is-inverted:hover, .docstring > section > a.button.is-inverted.docs-sourcelink:hover, .button.is-primary.is-inverted.is-hovered, .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink { + background-color: #f2f2f2; } + .button.is-primary.is-inverted[disabled], .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-inverted, fieldset[disabled] .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #4eb5de; } + .button.is-primary.is-loading::after, .docstring > section > a.button.is-loading.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-primary.is-outlined, .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #4eb5de; + color: #4eb5de; } + .button.is-primary.is-outlined:hover, .docstring > section > a.button.is-outlined.docs-sourcelink:hover, .button.is-primary.is-outlined.is-hovered, .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-outlined:focus, .docstring > section > a.button.is-outlined.docs-sourcelink:focus, .button.is-primary.is-outlined.is-focused, .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink { + background-color: #4eb5de; + border-color: #4eb5de; + color: #fff; } + .button.is-primary.is-outlined.is-loading::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after { + border-color: transparent transparent #4eb5de #4eb5de !important; } + .button.is-primary.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-primary.is-outlined[disabled], .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-outlined, fieldset[disabled] .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #4eb5de; + box-shadow: none; + color: #4eb5de; } + .button.is-primary.is-inverted.is-outlined, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-primary.is-inverted.is-outlined:hover, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, .button.is-primary.is-inverted.is-outlined.is-hovered, .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-inverted.is-outlined:focus, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, .button.is-primary.is-inverted.is-outlined.is-focused, .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink { + background-color: #fff; + color: #4eb5de; } + .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #4eb5de #4eb5de !important; } + .button.is-primary.is-inverted.is-outlined[disabled], .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-inverted.is-outlined, fieldset[disabled] .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-link { + background-color: #2e63b8; + border-color: transparent; + color: #fff; } + .button.is-link:hover, .button.is-link.is-hovered { + background-color: #2b5eae; + border-color: transparent; + color: #fff; } + .button.is-link:focus, .button.is-link.is-focused { + border-color: transparent; + color: #fff; } + .button.is-link:focus:not(:active), .button.is-link.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .button.is-link:active, .button.is-link.is-active { + background-color: #2958a4; + border-color: transparent; + color: #fff; } + .button.is-link[disabled], fieldset[disabled] .button.is-link { + background-color: #2e63b8; + border-color: transparent; + box-shadow: none; } + .button.is-link.is-inverted { + background-color: #fff; + color: #2e63b8; } + .button.is-link.is-inverted:hover, .button.is-link.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-link.is-inverted[disabled], fieldset[disabled] .button.is-link.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #2e63b8; } + .button.is-link.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-link.is-outlined { + background-color: transparent; + border-color: #2e63b8; + color: #2e63b8; } + .button.is-link.is-outlined:hover, .button.is-link.is-outlined.is-hovered, .button.is-link.is-outlined:focus, .button.is-link.is-outlined.is-focused { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + .button.is-link.is-outlined.is-loading::after { + border-color: transparent transparent #2e63b8 #2e63b8 !important; } + .button.is-link.is-outlined.is-loading:hover::after, .button.is-link.is-outlined.is-loading.is-hovered::after, .button.is-link.is-outlined.is-loading:focus::after, .button.is-link.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-link.is-outlined[disabled], fieldset[disabled] .button.is-link.is-outlined { + background-color: transparent; + border-color: #2e63b8; + box-shadow: none; + color: #2e63b8; } + .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-link.is-inverted.is-outlined:hover, .button.is-link.is-inverted.is-outlined.is-hovered, .button.is-link.is-inverted.is-outlined:focus, .button.is-link.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #2e63b8; } + .button.is-link.is-inverted.is-outlined.is-loading:hover::after, .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-link.is-inverted.is-outlined.is-loading:focus::after, .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #2e63b8 #2e63b8 !important; } + .button.is-link.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-info { + background-color: #209cee; + border-color: transparent; + color: #fff; } + .button.is-info:hover, .button.is-info.is-hovered { + background-color: #1497ed; + border-color: transparent; + color: #fff; } + .button.is-info:focus, .button.is-info.is-focused { + border-color: transparent; + color: #fff; } + .button.is-info:focus:not(:active), .button.is-info.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } + .button.is-info:active, .button.is-info.is-active { + background-color: #1190e3; + border-color: transparent; + color: #fff; } + .button.is-info[disabled], fieldset[disabled] .button.is-info { + background-color: #209cee; + border-color: transparent; + box-shadow: none; } + .button.is-info.is-inverted { + background-color: #fff; + color: #209cee; } + .button.is-info.is-inverted:hover, .button.is-info.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-info.is-inverted[disabled], fieldset[disabled] .button.is-info.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #209cee; } + .button.is-info.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-info.is-outlined { + background-color: transparent; + border-color: #209cee; + color: #209cee; } + .button.is-info.is-outlined:hover, .button.is-info.is-outlined.is-hovered, .button.is-info.is-outlined:focus, .button.is-info.is-outlined.is-focused { + background-color: #209cee; + border-color: #209cee; + color: #fff; } + .button.is-info.is-outlined.is-loading::after { + border-color: transparent transparent #209cee #209cee !important; } + .button.is-info.is-outlined.is-loading:hover::after, .button.is-info.is-outlined.is-loading.is-hovered::after, .button.is-info.is-outlined.is-loading:focus::after, .button.is-info.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-info.is-outlined[disabled], fieldset[disabled] .button.is-info.is-outlined { + background-color: transparent; + border-color: #209cee; + box-shadow: none; + color: #209cee; } + .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-info.is-inverted.is-outlined:hover, .button.is-info.is-inverted.is-outlined.is-hovered, .button.is-info.is-inverted.is-outlined:focus, .button.is-info.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #209cee; } + .button.is-info.is-inverted.is-outlined.is-loading:hover::after, .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-info.is-inverted.is-outlined.is-loading:focus::after, .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #209cee #209cee !important; } + .button.is-info.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-success { + background-color: #22c35b; + border-color: transparent; + color: #fff; } + .button.is-success:hover, .button.is-success.is-hovered { + background-color: #20b856; + border-color: transparent; + color: #fff; } + .button.is-success:focus, .button.is-success.is-focused { + border-color: transparent; + color: #fff; } + .button.is-success:focus:not(:active), .button.is-success.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } + .button.is-success:active, .button.is-success.is-active { + background-color: #1ead51; + border-color: transparent; + color: #fff; } + .button.is-success[disabled], fieldset[disabled] .button.is-success { + background-color: #22c35b; + border-color: transparent; + box-shadow: none; } + .button.is-success.is-inverted { + background-color: #fff; + color: #22c35b; } + .button.is-success.is-inverted:hover, .button.is-success.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-success.is-inverted[disabled], fieldset[disabled] .button.is-success.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #22c35b; } + .button.is-success.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-success.is-outlined { + background-color: transparent; + border-color: #22c35b; + color: #22c35b; } + .button.is-success.is-outlined:hover, .button.is-success.is-outlined.is-hovered, .button.is-success.is-outlined:focus, .button.is-success.is-outlined.is-focused { + background-color: #22c35b; + border-color: #22c35b; + color: #fff; } + .button.is-success.is-outlined.is-loading::after { + border-color: transparent transparent #22c35b #22c35b !important; } + .button.is-success.is-outlined.is-loading:hover::after, .button.is-success.is-outlined.is-loading.is-hovered::after, .button.is-success.is-outlined.is-loading:focus::after, .button.is-success.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-success.is-outlined[disabled], fieldset[disabled] .button.is-success.is-outlined { + background-color: transparent; + border-color: #22c35b; + box-shadow: none; + color: #22c35b; } + .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-success.is-inverted.is-outlined:hover, .button.is-success.is-inverted.is-outlined.is-hovered, .button.is-success.is-inverted.is-outlined:focus, .button.is-success.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #22c35b; } + .button.is-success.is-inverted.is-outlined.is-loading:hover::after, .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-success.is-inverted.is-outlined.is-loading:focus::after, .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #22c35b #22c35b !important; } + .button.is-success.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-warning { + background-color: #ffdd57; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:hover, .button.is-warning.is-hovered { + background-color: #ffda4a; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:focus, .button.is-warning.is-focused { + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:focus:not(:active), .button.is-warning.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } + .button.is-warning:active, .button.is-warning.is-active { + background-color: #ffd83e; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning[disabled], fieldset[disabled] .button.is-warning { + background-color: #ffdd57; + border-color: transparent; + box-shadow: none; } + .button.is-warning.is-inverted { + background-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .button.is-warning.is-inverted:hover, .button.is-warning.is-inverted.is-hovered { + background-color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-inverted[disabled], fieldset[disabled] .button.is-warning.is-inverted { + background-color: rgba(0, 0, 0, 0.7); + border-color: transparent; + box-shadow: none; + color: #ffdd57; } + .button.is-warning.is-loading::after { + border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; } + .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ffdd57; + color: #ffdd57; } + .button.is-warning.is-outlined:hover, .button.is-warning.is-outlined.is-hovered, .button.is-warning.is-outlined:focus, .button.is-warning.is-outlined.is-focused { + background-color: #ffdd57; + border-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-outlined.is-loading::after { + border-color: transparent transparent #ffdd57 #ffdd57 !important; } + .button.is-warning.is-outlined.is-loading:hover::after, .button.is-warning.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-outlined.is-loading:focus::after, .button.is-warning.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; } + .button.is-warning.is-outlined[disabled], fieldset[disabled] .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ffdd57; + box-shadow: none; + color: #ffdd57; } + .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-inverted.is-outlined:hover, .button.is-warning.is-inverted.is-outlined.is-hovered, .button.is-warning.is-inverted.is-outlined:focus, .button.is-warning.is-inverted.is-outlined.is-focused { + background-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ffdd57 #ffdd57 !important; } + .button.is-warning.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + box-shadow: none; + color: rgba(0, 0, 0, 0.7); } + .button.is-danger { + background-color: #da0b00; + border-color: transparent; + color: #fff; } + .button.is-danger:hover, .button.is-danger.is-hovered { + background-color: #cd0a00; + border-color: transparent; + color: #fff; } + .button.is-danger:focus, .button.is-danger.is-focused { + border-color: transparent; + color: #fff; } + .button.is-danger:focus:not(:active), .button.is-danger.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } + .button.is-danger:active, .button.is-danger.is-active { + background-color: #c10a00; + border-color: transparent; + color: #fff; } + .button.is-danger[disabled], fieldset[disabled] .button.is-danger { + background-color: #da0b00; + border-color: transparent; + box-shadow: none; } + .button.is-danger.is-inverted { + background-color: #fff; + color: #da0b00; } + .button.is-danger.is-inverted:hover, .button.is-danger.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-danger.is-inverted[disabled], fieldset[disabled] .button.is-danger.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #da0b00; } + .button.is-danger.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-danger.is-outlined { + background-color: transparent; + border-color: #da0b00; + color: #da0b00; } + .button.is-danger.is-outlined:hover, .button.is-danger.is-outlined.is-hovered, .button.is-danger.is-outlined:focus, .button.is-danger.is-outlined.is-focused { + background-color: #da0b00; + border-color: #da0b00; + color: #fff; } + .button.is-danger.is-outlined.is-loading::after { + border-color: transparent transparent #da0b00 #da0b00 !important; } + .button.is-danger.is-outlined.is-loading:hover::after, .button.is-danger.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-outlined.is-loading:focus::after, .button.is-danger.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-danger.is-outlined[disabled], fieldset[disabled] .button.is-danger.is-outlined { + background-color: transparent; + border-color: #da0b00; + box-shadow: none; + color: #da0b00; } + .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-danger.is-inverted.is-outlined:hover, .button.is-danger.is-inverted.is-outlined.is-hovered, .button.is-danger.is-inverted.is-outlined:focus, .button.is-danger.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #da0b00; } + .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #da0b00 #da0b00 !important; } + .button.is-danger.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-small, #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 2px; + font-size: 0.75rem; } + .button.is-normal { + font-size: 1rem; } + .button.is-medium { + font-size: 1.25rem; } + .button.is-large { + font-size: 1.5rem; } + .button[disabled], fieldset[disabled] .button { + background-color: white; + border-color: #dbdbdb; + box-shadow: none; + opacity: 0.5; } + .button.is-fullwidth { + display: flex; + width: 100%; } + .button.is-loading { + color: transparent !important; + pointer-events: none; } + .button.is-loading::after { + position: absolute; + left: calc(50% - (1em / 2)); + top: calc(50% - (1em / 2)); + position: absolute !important; } + .button.is-static { + background-color: whitesmoke; + border-color: #dbdbdb; + color: #6b6b6b; + box-shadow: none; + pointer-events: none; } + .button.is-rounded, #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + +.buttons { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .buttons .button { + margin-bottom: 0.5rem; } + .buttons .button:not(:last-child):not(.is-fullwidth) { + margin-right: 0.5rem; } + .buttons:last-child { + margin-bottom: -0.5rem; } + .buttons:not(:last-child) { + margin-bottom: 1rem; } + .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) { + border-radius: 2px; + font-size: 0.75rem; } + .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) { + font-size: 1.25rem; } + .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) { + font-size: 1.5rem; } + .buttons.has-addons .button:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .buttons.has-addons .button:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + margin-right: -1px; } + .buttons.has-addons .button:last-child { + margin-right: 0; } + .buttons.has-addons .button:hover, .buttons.has-addons .button.is-hovered { + z-index: 2; } + .buttons.has-addons .button:focus, .buttons.has-addons .button.is-focused, .buttons.has-addons .button:active, .buttons.has-addons .button.is-active, .buttons.has-addons .button.is-selected { + z-index: 3; } + .buttons.has-addons .button:focus:hover, .buttons.has-addons .button.is-focused:hover, .buttons.has-addons .button:active:hover, .buttons.has-addons .button.is-active:hover, .buttons.has-addons .button.is-selected:hover { + z-index: 4; } + .buttons.has-addons .button.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .buttons.is-centered { + justify-content: center; } + .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + .buttons.is-right { + justify-content: flex-end; } + .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + +.container { + flex-grow: 1; + margin: 0 auto; + position: relative; + width: auto; } + @media screen and (min-width: 1056px) { + .container { + max-width: 992px; } + .container.is-fluid { + margin-left: 32px; + margin-right: 32px; + max-width: none; } } + @media screen and (max-width: 1215px) { + .container.is-widescreen { + max-width: 1152px; } } + @media screen and (max-width: 1407px) { + .container.is-fullhd { + max-width: 1344px; } } + @media screen and (min-width: 1216px) { + .container { + max-width: 1152px; } } + @media screen and (min-width: 1408px) { + .container { + max-width: 1344px; } } +.content li + li { + margin-top: 0.25em; } + +.content p:not(:last-child), +.content dl:not(:last-child), +.content ol:not(:last-child), +.content ul:not(:last-child), +.content blockquote:not(:last-child), +.content pre:not(:last-child), +.content table:not(:last-child) { + margin-bottom: 1em; } + +.content h1, +.content h2, +.content h3, +.content h4, +.content h5, +.content h6 { + color: #222222; + 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: whitesmoke; + 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: #222222; } + .content table th:not([align]) { + text-align: left; } + .content table thead td, + .content table thead th { + border-width: 0 0 2px; + color: #222222; } + .content table tfoot td, + .content table tfoot th { + border-width: 2px 0 0; + color: #222222; } + .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: 0.75rem; } + +.content.is-medium { + font-size: 1.25rem; } + +.content.is-large { + font-size: 1.5rem; } + +.icon { + align-items: center; + display: inline-flex; + justify-content: center; + height: 1.5rem; + width: 1.5rem; } + .icon.is-small, #documenter .docs-sidebar form.docs-search > input.icon { + height: 1rem; + width: 1rem; } + .icon.is-medium { + height: 2rem; + width: 2rem; } + .icon.is-large { + height: 3rem; + width: 3rem; } + +.image, #documenter .docs-sidebar .docs-logo > img { + display: block; + position: relative; } + .image img, #documenter .docs-sidebar .docs-logo > img img { + display: block; + height: auto; + width: 100%; } + .image img.is-rounded, #documenter .docs-sidebar .docs-logo > img img.is-rounded { + border-radius: 290486px; } + .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img, + .image.is-square .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img, + .image.is-1by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img, + .image.is-5by4 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img, + .image.is-4by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img, + .image.is-3by2 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img, + .image.is-5by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img, + .image.is-16by9 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img, + .image.is-2by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img, + .image.is-3by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img, + .image.is-4by5 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img, + .image.is-3by4 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img, + .image.is-2by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img, + .image.is-3by5 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img, + .image.is-9by16 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img, + .image.is-1by2 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img, + .image.is-1by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio { + height: 100%; + width: 100%; } + .image.is-square, #documenter .docs-sidebar .docs-logo > img.is-square, .image.is-1by1, #documenter .docs-sidebar .docs-logo > img.is-1by1 { + padding-top: 100%; } + .image.is-5by4, #documenter .docs-sidebar .docs-logo > img.is-5by4 { + padding-top: 80%; } + .image.is-4by3, #documenter .docs-sidebar .docs-logo > img.is-4by3 { + padding-top: 75%; } + .image.is-3by2, #documenter .docs-sidebar .docs-logo > img.is-3by2 { + padding-top: 66.6666%; } + .image.is-5by3, #documenter .docs-sidebar .docs-logo > img.is-5by3 { + padding-top: 60%; } + .image.is-16by9, #documenter .docs-sidebar .docs-logo > img.is-16by9 { + padding-top: 56.25%; } + .image.is-2by1, #documenter .docs-sidebar .docs-logo > img.is-2by1 { + padding-top: 50%; } + .image.is-3by1, #documenter .docs-sidebar .docs-logo > img.is-3by1 { + padding-top: 33.3333%; } + .image.is-4by5, #documenter .docs-sidebar .docs-logo > img.is-4by5 { + padding-top: 125%; } + .image.is-3by4, #documenter .docs-sidebar .docs-logo > img.is-3by4 { + padding-top: 133.3333%; } + .image.is-2by3, #documenter .docs-sidebar .docs-logo > img.is-2by3 { + padding-top: 150%; } + .image.is-3by5, #documenter .docs-sidebar .docs-logo > img.is-3by5 { + padding-top: 166.6666%; } + .image.is-9by16, #documenter .docs-sidebar .docs-logo > img.is-9by16 { + padding-top: 177.7777%; } + .image.is-1by2, #documenter .docs-sidebar .docs-logo > img.is-1by2 { + padding-top: 200%; } + .image.is-1by3, #documenter .docs-sidebar .docs-logo > img.is-1by3 { + padding-top: 300%; } + .image.is-16x16, #documenter .docs-sidebar .docs-logo > img.is-16x16 { + height: 16px; + width: 16px; } + .image.is-24x24, #documenter .docs-sidebar .docs-logo > img.is-24x24 { + height: 24px; + width: 24px; } + .image.is-32x32, #documenter .docs-sidebar .docs-logo > img.is-32x32 { + height: 32px; + width: 32px; } + .image.is-48x48, #documenter .docs-sidebar .docs-logo > img.is-48x48 { + height: 48px; + width: 48px; } + .image.is-64x64, #documenter .docs-sidebar .docs-logo > img.is-64x64 { + height: 64px; + width: 64px; } + .image.is-96x96, #documenter .docs-sidebar .docs-logo > img.is-96x96 { + height: 96px; + width: 96px; } + .image.is-128x128, #documenter .docs-sidebar .docs-logo > img.is-128x128 { + height: 128px; + width: 128px; } + +.notification { + background-color: whitesmoke; + border-radius: 4px; + padding: 1.25rem 2.5rem 1.25rem 1.5rem; + position: relative; } + .notification a:not(.button):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + .notification strong { + color: currentColor; } + .notification code, + .notification pre { + background: white; } + .notification pre code { + background: transparent; } + .notification > .delete { + position: absolute; + right: 0.5rem; + top: 0.5rem; } + .notification .title, + .notification .subtitle, + .notification .content { + color: currentColor; } + .notification.is-white { + background-color: white; + color: #0a0a0a; } + .notification.is-black { + background-color: #0a0a0a; + color: white; } + .notification.is-light { + background-color: whitesmoke; + color: #363636; } + .notification.is-dark, .content kbd.notification { + background-color: #363636; + color: whitesmoke; } + .notification.is-primary, .docstring > section > a.notification.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .notification.is-link { + background-color: #2e63b8; + color: #fff; } + .notification.is-info { + background-color: #209cee; + color: #fff; } + .notification.is-success { + background-color: #22c35b; + color: #fff; } + .notification.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .notification.is-danger { + background-color: #da0b00; + color: #fff; } + +.progress { + -moz-appearance: none; + -webkit-appearance: none; + border: none; + border-radius: 290486px; + display: block; + height: 1rem; + overflow: hidden; + padding: 0; + width: 100%; } + .progress::-webkit-progress-bar { + background-color: #dbdbdb; } + .progress::-webkit-progress-value { + background-color: #222222; } + .progress::-moz-progress-bar { + background-color: #222222; } + .progress::-ms-fill { + background-color: #222222; + border: none; } + .progress.is-white::-webkit-progress-value { + background-color: white; } + .progress.is-white::-moz-progress-bar { + background-color: white; } + .progress.is-white::-ms-fill { + background-color: white; } + .progress.is-white:indeterminate { + background-image: linear-gradient(to right, white 30%, #dbdbdb 30%); } + .progress.is-black::-webkit-progress-value { + background-color: #0a0a0a; } + .progress.is-black::-moz-progress-bar { + background-color: #0a0a0a; } + .progress.is-black::-ms-fill { + background-color: #0a0a0a; } + .progress.is-black:indeterminate { + background-image: linear-gradient(to right, #0a0a0a 30%, #dbdbdb 30%); } + .progress.is-light::-webkit-progress-value { + background-color: whitesmoke; } + .progress.is-light::-moz-progress-bar { + background-color: whitesmoke; } + .progress.is-light::-ms-fill { + background-color: whitesmoke; } + .progress.is-light:indeterminate { + background-image: linear-gradient(to right, whitesmoke 30%, #dbdbdb 30%); } + .progress.is-dark::-webkit-progress-value, .content kbd.progress::-webkit-progress-value { + background-color: #363636; } + .progress.is-dark::-moz-progress-bar, .content kbd.progress::-moz-progress-bar { + background-color: #363636; } + .progress.is-dark::-ms-fill, .content kbd.progress::-ms-fill { + background-color: #363636; } + .progress.is-dark:indeterminate, .content kbd.progress:indeterminate { + background-image: linear-gradient(to right, #363636 30%, #dbdbdb 30%); } + .progress.is-primary::-webkit-progress-value, .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value { + background-color: #4eb5de; } + .progress.is-primary::-moz-progress-bar, .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar { + background-color: #4eb5de; } + .progress.is-primary::-ms-fill, .docstring > section > a.progress.docs-sourcelink::-ms-fill { + background-color: #4eb5de; } + .progress.is-primary:indeterminate, .docstring > section > a.progress.docs-sourcelink:indeterminate { + background-image: linear-gradient(to right, #4eb5de 30%, #dbdbdb 30%); } + .progress.is-link::-webkit-progress-value { + background-color: #2e63b8; } + .progress.is-link::-moz-progress-bar { + background-color: #2e63b8; } + .progress.is-link::-ms-fill { + background-color: #2e63b8; } + .progress.is-link:indeterminate { + background-image: linear-gradient(to right, #2e63b8 30%, #dbdbdb 30%); } + .progress.is-info::-webkit-progress-value { + background-color: #209cee; } + .progress.is-info::-moz-progress-bar { + background-color: #209cee; } + .progress.is-info::-ms-fill { + background-color: #209cee; } + .progress.is-info:indeterminate { + background-image: linear-gradient(to right, #209cee 30%, #dbdbdb 30%); } + .progress.is-success::-webkit-progress-value { + background-color: #22c35b; } + .progress.is-success::-moz-progress-bar { + background-color: #22c35b; } + .progress.is-success::-ms-fill { + background-color: #22c35b; } + .progress.is-success:indeterminate { + background-image: linear-gradient(to right, #22c35b 30%, #dbdbdb 30%); } + .progress.is-warning::-webkit-progress-value { + background-color: #ffdd57; } + .progress.is-warning::-moz-progress-bar { + background-color: #ffdd57; } + .progress.is-warning::-ms-fill { + background-color: #ffdd57; } + .progress.is-warning:indeterminate { + background-image: linear-gradient(to right, #ffdd57 30%, #dbdbdb 30%); } + .progress.is-danger::-webkit-progress-value { + background-color: #da0b00; } + .progress.is-danger::-moz-progress-bar { + background-color: #da0b00; } + .progress.is-danger::-ms-fill { + background-color: #da0b00; } + .progress.is-danger:indeterminate { + background-image: linear-gradient(to right, #da0b00 30%, #dbdbdb 30%); } + .progress:indeterminate { + animation-duration: 1.5s; + animation-iteration-count: infinite; + animation-name: moveIndeterminate; + animation-timing-function: linear; + background-color: #dbdbdb; + background-image: linear-gradient(to right, #222222 30%, #dbdbdb 30%); + background-position: top left; + background-repeat: no-repeat; + background-size: 150% 150%; } + .progress:indeterminate::-webkit-progress-bar { + background-color: transparent; } + .progress:indeterminate::-moz-progress-bar { + background-color: transparent; } + .progress.is-small, #documenter .docs-sidebar form.docs-search > input.progress { + height: 0.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: white; + color: #363636; } + .table td, + .table th { + border: 1px solid #dbdbdb; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + .table td.is-white, + .table th.is-white { + background-color: white; + border-color: white; + color: #0a0a0a; } + .table td.is-black, + .table th.is-black { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .table td.is-light, + .table th.is-light { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .table td.is-dark, + .table th.is-dark { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .table td.is-primary, + .table th.is-primary { + background-color: #4eb5de; + border-color: #4eb5de; + color: #fff; } + .table td.is-link, + .table th.is-link { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + .table td.is-info, + .table th.is-info { + background-color: #209cee; + border-color: #209cee; + color: #fff; } + .table td.is-success, + .table th.is-success { + background-color: #22c35b; + border-color: #22c35b; + color: #fff; } + .table td.is-warning, + .table th.is-warning { + background-color: #ffdd57; + border-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .table td.is-danger, + .table th.is-danger { + background-color: #da0b00; + border-color: #da0b00; + color: #fff; } + .table td.is-narrow, + .table th.is-narrow { + white-space: nowrap; + width: 1%; } + .table td.is-selected, + .table th.is-selected { + background-color: #4eb5de; + color: #fff; } + .table td.is-selected a, + .table td.is-selected strong, + .table th.is-selected a, + .table th.is-selected strong { + color: currentColor; } + .table th { + color: #222222; } + .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: transparent; } + .table thead td, + .table thead th { + border-width: 0 0 2px; + color: #222222; } + .table tfoot { + background-color: transparent; } + .table tfoot td, + .table tfoot th { + border-width: 2px 0 0; + color: #222222; } + .table tbody { + background-color: transparent; } + .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: whitesmoke; } + .table.is-narrow td, + .table.is-narrow th { + padding: 0.25em 0.5em; } + .table.is-striped tbody tr:not(.is-selected):nth-child(even) { + background-color: #fafafa; } + +.table-container { + -webkit-overflow-scrolling: touch; + overflow: auto; + overflow-y: hidden; + max-width: 100%; } + +.tags { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .tags .tag, .tags .content kbd, .content .tags kbd, .tags .docstring > section > a.docs-sourcelink { + margin-bottom: 0.5rem; } + .tags .tag:not(:last-child), .tags .content kbd:not(:last-child), .content .tags kbd:not(:last-child), .tags .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0.5rem; } + .tags:last-child { + margin-bottom: -0.5rem; } + .tags:not(:last-child) { + margin-bottom: 1rem; } + .tags.are-medium .tag:not(.is-normal):not(.is-large), .tags.are-medium .content kbd:not(.is-normal):not(.is-large), .content .tags.are-medium kbd:not(.is-normal):not(.is-large), .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large) { + font-size: 1rem; } + .tags.are-large .tag:not(.is-normal):not(.is-medium), .tags.are-large .content kbd:not(.is-normal):not(.is-medium), .content .tags.are-large kbd:not(.is-normal):not(.is-medium), .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium) { + font-size: 1.25rem; } + .tags.is-centered { + justify-content: center; } + .tags.is-centered .tag, .tags.is-centered .content kbd, .content .tags.is-centered kbd, .tags.is-centered .docstring > section > a.docs-sourcelink { + margin-right: 0.25rem; + margin-left: 0.25rem; } + .tags.is-right { + justify-content: flex-end; } + .tags.is-right .tag:not(:first-child), .tags.is-right .content kbd:not(:first-child), .content .tags.is-right kbd:not(:first-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0.5rem; } + .tags.is-right .tag:not(:last-child), .tags.is-right .content kbd:not(:last-child), .content .tags.is-right kbd:not(:last-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0; } + .tags.has-addons .tag, .tags.has-addons .content kbd, .content .tags.has-addons kbd, .tags.has-addons .docstring > section > a.docs-sourcelink { + margin-right: 0; } + .tags.has-addons .tag:not(:first-child), .tags.has-addons .content kbd:not(:first-child), .content .tags.has-addons kbd:not(:first-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0; + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .tags.has-addons .tag:not(:last-child), .tags.has-addons .content kbd:not(:last-child), .content .tags.has-addons kbd:not(:last-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + +.tag:not(body), .content kbd:not(body), .docstring > section > a.docs-sourcelink:not(body) { + align-items: center; + background-color: whitesmoke; + border-radius: 4px; + color: #222222; + display: inline-flex; + font-size: 0.75rem; + height: 2em; + justify-content: center; + line-height: 1.5; + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + .tag:not(body) .delete, .content kbd:not(body) .delete, .docstring > section > a.docs-sourcelink:not(body) .delete { + margin-left: 0.25rem; + margin-right: -0.375rem; } + .tag.is-white:not(body), .content kbd.is-white:not(body), .docstring > section > a.docs-sourcelink.is-white:not(body) { + background-color: white; + 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: white; } + .tag.is-light:not(body), .content kbd.is-light:not(body), .docstring > section > a.docs-sourcelink.is-light:not(body) { + background-color: whitesmoke; + color: #363636; } + .tag.is-dark:not(body), .content kbd:not(body), .docstring > section > a.docs-sourcelink.is-dark:not(body), .content .docstring > section > kbd:not(body) { + background-color: #363636; + color: whitesmoke; } + .tag.is-primary:not(body), .content kbd.is-primary:not(body), .docstring > section > a.docs-sourcelink:not(body) { + background-color: #4eb5de; + color: #fff; } + .tag.is-link:not(body), .content kbd.is-link:not(body), .docstring > section > a.docs-sourcelink.is-link:not(body) { + background-color: #2e63b8; + color: #fff; } + .tag.is-info:not(body), .content kbd.is-info:not(body), .docstring > section > a.docs-sourcelink.is-info:not(body) { + background-color: #209cee; + color: #fff; } + .tag.is-success:not(body), .content kbd.is-success:not(body), .docstring > section > a.docs-sourcelink.is-success:not(body) { + background-color: #22c35b; + color: #fff; } + .tag.is-warning:not(body), .content kbd.is-warning:not(body), .docstring > section > a.docs-sourcelink.is-warning:not(body) { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .tag.is-danger:not(body), .content kbd.is-danger:not(body), .docstring > section > a.docs-sourcelink.is-danger:not(body) { + background-color: #da0b00; + color: #fff; } + .tag.is-normal:not(body), .content kbd.is-normal:not(body), .docstring > section > a.docs-sourcelink.is-normal:not(body) { + font-size: 0.75rem; } + .tag.is-medium:not(body), .content kbd.is-medium:not(body), .docstring > section > a.docs-sourcelink.is-medium:not(body) { + font-size: 1rem; } + .tag.is-large:not(body), .content kbd.is-large:not(body), .docstring > section > a.docs-sourcelink.is-large:not(body) { + font-size: 1.25rem; } + .tag:not(body) .icon:first-child:not(:last-child), .content kbd:not(body) .icon:first-child:not(:last-child), .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child) { + margin-left: -0.375em; + margin-right: 0.1875em; } + .tag:not(body) .icon:last-child:not(:first-child), .content kbd:not(body) .icon:last-child:not(:first-child), .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: -0.375em; } + .tag:not(body) .icon:first-child:last-child, .content kbd:not(body) .icon:first-child:last-child, .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child { + margin-left: -0.375em; + margin-right: -0.375em; } + .tag.is-delete:not(body), .content kbd.is-delete:not(body), .docstring > section > a.docs-sourcelink.is-delete:not(body) { + margin-left: 1px; + padding: 0; + position: relative; + width: 2em; } + .tag.is-delete:not(body)::before, .content kbd.is-delete:not(body)::before, .docstring > section > a.docs-sourcelink.is-delete:not(body)::before, .tag.is-delete:not(body)::after, .content kbd.is-delete:not(body)::after, .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + background-color: currentColor; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + .tag.is-delete:not(body)::before, .content kbd.is-delete:not(body)::before, .docstring > section > a.docs-sourcelink.is-delete:not(body)::before { + height: 1px; + width: 50%; } + .tag.is-delete:not(body)::after, .content kbd.is-delete:not(body)::after, .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + height: 50%; + width: 1px; } + .tag.is-delete:not(body):hover, .content kbd.is-delete:not(body):hover, .docstring > section > a.docs-sourcelink.is-delete:not(body):hover, .tag.is-delete:not(body):focus, .content kbd.is-delete:not(body):focus, .docstring > section > a.docs-sourcelink.is-delete:not(body):focus { + background-color: #e8e8e8; } + .tag.is-delete:not(body):active, .content kbd.is-delete:not(body):active, .docstring > section > a.docs-sourcelink.is-delete:not(body):active { + background-color: #dbdbdb; } + .tag.is-rounded:not(body), #documenter .docs-sidebar form.docs-search > input:not(body), .content kbd.is-rounded:not(body), #documenter .docs-sidebar .content form.docs-search > input:not(body), .docstring > section > a.docs-sourcelink.is-rounded:not(body) { + border-radius: 290486px; } + +a.tag:hover, .docstring > section > a.docs-sourcelink:hover { + text-decoration: underline; } + +.title, +.subtitle { + word-break: break-word; } + .title em, + .title span, + .subtitle em, + .subtitle span { + font-weight: inherit; } + .title sub, + .subtitle sub { + font-size: 0.75em; } + .title sup, + .subtitle sup { + font-size: 0.75em; } + .title .tag, .title .content kbd, .content .title kbd, .title .docstring > section > a.docs-sourcelink, + .subtitle .tag, + .subtitle .content kbd, + .content .subtitle kbd, + .subtitle .docstring > section > a.docs-sourcelink { + vertical-align: middle; } + +.title { + color: #363636; + font-size: 2rem; + font-weight: 600; + line-height: 1.125; } + .title strong { + color: inherit; + font-weight: inherit; } + .title + .highlight { + margin-top: -0.75rem; } + .title:not(.is-spaced) + .subtitle { + margin-top: -1.25rem; } + .title.is-1 { + font-size: 3rem; } + .title.is-2 { + font-size: 2.5rem; } + .title.is-3 { + font-size: 2rem; } + .title.is-4 { + font-size: 1.5rem; } + .title.is-5 { + font-size: 1.25rem; } + .title.is-6 { + font-size: 1rem; } + .title.is-7 { + font-size: 0.75rem; } + +.subtitle { + color: #4a4a4a; + font-size: 1.25rem; + font-weight: 400; + line-height: 1.25; } + .subtitle strong { + color: #363636; + font-weight: 600; } + .subtitle:not(.is-spaced) + .title { + margin-top: -1.25rem; } + .subtitle.is-1 { + font-size: 3rem; } + .subtitle.is-2 { + font-size: 2.5rem; } + .subtitle.is-3 { + font-size: 2rem; } + .subtitle.is-4 { + font-size: 1.5rem; } + .subtitle.is-5 { + font-size: 1.25rem; } + .subtitle.is-6 { + font-size: 1rem; } + .subtitle.is-7 { + font-size: 0.75rem; } + +.heading { + display: block; + font-size: 11px; + letter-spacing: 1px; + margin-bottom: 5px; + text-transform: uppercase; } + +.highlight { + font-weight: 400; + max-width: 100%; + overflow: hidden; + padding: 0; } + .highlight pre { + overflow: auto; + max-width: 100%; } + +.number { + align-items: center; + background-color: whitesmoke; + border-radius: 290486px; + display: inline-flex; + font-size: 1.25rem; + height: 2em; + justify-content: center; + margin-right: 1.5rem; + min-width: 2.5em; + padding: 0.25rem 0.5rem; + text-align: center; + vertical-align: top; } + +.select select, .textarea, .input, #documenter .docs-sidebar form.docs-search > input { + background-color: white; + border-color: #dbdbdb; + border-radius: 4px; + color: #363636; } + .select select::-moz-placeholder, .textarea::-moz-placeholder, .input::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input::-moz-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select::-webkit-input-placeholder, .textarea::-webkit-input-placeholder, .input::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select:-moz-placeholder, .textarea:-moz-placeholder, .input:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input:-moz-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select:-ms-input-placeholder, .textarea:-ms-input-placeholder, .input:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select:hover, .textarea:hover, .input:hover, #documenter .docs-sidebar form.docs-search > input:hover, .select select.is-hovered, .is-hovered.textarea, .is-hovered.input, #documenter .docs-sidebar form.docs-search > input.is-hovered { + border-color: #b5b5b5; } + .select select:focus, .textarea:focus, .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .select select.is-focused, .is-focused.textarea, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .select select:active, .textarea:active, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .select select.is-active, .is-active.textarea, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + border-color: #2e63b8; + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .select select[disabled], .textarea[disabled], .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], fieldset[disabled] .select select, .select fieldset[disabled] select, fieldset[disabled] .textarea, fieldset[disabled] .input, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input { + background-color: whitesmoke; + border-color: whitesmoke; + box-shadow: none; + color: #6b6b6b; } + .select select[disabled]::-moz-placeholder, .textarea[disabled]::-moz-placeholder, .input[disabled]::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, fieldset[disabled] .select select::-moz-placeholder, .select fieldset[disabled] select::-moz-placeholder, fieldset[disabled] .textarea::-moz-placeholder, fieldset[disabled] .input::-moz-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-moz-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-moz-placeholder { + color: rgba(107, 107, 107, 0.3); } + .select select[disabled]::-webkit-input-placeholder, .textarea[disabled]::-webkit-input-placeholder, .input[disabled]::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, fieldset[disabled] .select select::-webkit-input-placeholder, .select fieldset[disabled] select::-webkit-input-placeholder, fieldset[disabled] .textarea::-webkit-input-placeholder, fieldset[disabled] .input::-webkit-input-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-webkit-input-placeholder { + color: rgba(107, 107, 107, 0.3); } + .select select[disabled]:-moz-placeholder, .textarea[disabled]:-moz-placeholder, .input[disabled]:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, fieldset[disabled] .select select:-moz-placeholder, .select fieldset[disabled] select:-moz-placeholder, fieldset[disabled] .textarea:-moz-placeholder, fieldset[disabled] .input:-moz-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-moz-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-moz-placeholder { + color: rgba(107, 107, 107, 0.3); } + .select select[disabled]:-ms-input-placeholder, .textarea[disabled]:-ms-input-placeholder, .input[disabled]:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, fieldset[disabled] .select select:-ms-input-placeholder, .select fieldset[disabled] select:-ms-input-placeholder, fieldset[disabled] .textarea:-ms-input-placeholder, fieldset[disabled] .input:-ms-input-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-ms-input-placeholder { + color: rgba(107, 107, 107, 0.3); } + +.textarea, .input, #documenter .docs-sidebar form.docs-search > input { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1); + max-width: 100%; + width: 100%; } + .textarea[readonly], .input[readonly], #documenter .docs-sidebar form.docs-search > input[readonly] { + box-shadow: none; } + .is-white.textarea, .is-white.input, #documenter .docs-sidebar form.docs-search > input.is-white { + border-color: white; } + .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: whitesmoke; } + .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: 0.75rem; } + .is-medium.textarea, .is-medium.input, #documenter .docs-sidebar form.docs-search > input.is-medium { + font-size: 1.25rem; } + .is-large.textarea, .is-large.input, #documenter .docs-sidebar form.docs-search > input.is-large { + font-size: 1.5rem; } + .is-fullwidth.textarea, .is-fullwidth.input, #documenter .docs-sidebar form.docs-search > input.is-fullwidth { + display: block; + width: 100%; } + .is-inline.textarea, .is-inline.input, #documenter .docs-sidebar form.docs-search > input.is-inline { + display: inline; + width: auto; } + +.input.is-rounded, #documenter .docs-sidebar form.docs-search > input { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + +.input.is-static, #documenter .docs-sidebar form.docs-search > input.is-static { + background-color: transparent; + border-color: transparent; + box-shadow: none; + padding-left: 0; + padding-right: 0; } + +.textarea { + display: block; + max-width: 100%; + min-width: 100%; + padding: 0.625em; + resize: vertical; } + .textarea:not([rows]) { + max-height: 600px; + min-height: 120px; } + .textarea[rows] { + height: initial; } + .textarea.has-fixed-size { + resize: none; } + +.radio, .checkbox { + cursor: pointer; + display: inline-block; + line-height: 1.25; + position: relative; } + .radio input, .checkbox input { + cursor: pointer; } + .radio:hover, .checkbox:hover { + color: #363636; } + .radio[disabled], .checkbox[disabled], fieldset[disabled] .radio, fieldset[disabled] .checkbox { + color: #6b6b6b; + cursor: not-allowed; } + +.radio + .radio { + margin-left: 0.5em; } + +.select { + display: inline-block; + max-width: 100%; + position: relative; + vertical-align: top; } + .select:not(.is-multiple) { + height: 2.25em; } + .select:not(.is-multiple):not(.is-loading)::after { + border-color: #2e63b8; + right: 1.125em; + z-index: 4; } + .select.is-rounded select, #documenter .docs-sidebar form.docs-search > input.select select { + border-radius: 290486px; + padding-left: 1em; } + .select select { + cursor: pointer; + display: block; + font-size: 1em; + max-width: 100%; + outline: none; } + .select select::-ms-expand { + display: none; } + .select select[disabled]:hover, fieldset[disabled] .select select:hover { + border-color: whitesmoke; } + .select select:not([multiple]) { + padding-right: 2.5em; } + .select select[multiple] { + height: auto; + padding: 0; } + .select select[multiple] option { + padding: 0.5em 1em; } + .select:not(.is-multiple):not(.is-loading):hover::after { + border-color: #363636; } + .select.is-white:not(:hover)::after { + border-color: white; } + .select.is-white select { + border-color: white; } + .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: black; } + .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: whitesmoke; } + .select.is-light select { + border-color: whitesmoke; } + .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: 0.75rem; } + .select.is-medium { + font-size: 1.25rem; } + .select.is-large { + font-size: 1.5rem; } + .select.is-disabled::after { + border-color: #6b6b6b; } + .select.is-fullwidth { + width: 100%; } + .select.is-fullwidth select { + width: 100%; } + .select.is-loading::after { + margin-top: 0; + position: absolute; + right: 0.625em; + top: 0.625em; + transform: none; } + .select.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.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: white; + 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: white; } + .file.is-black:hover .file-cta, .file.is-black.is-hovered .file-cta { + background-color: #040404; + border-color: transparent; + color: white; } + .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: white; } + .file.is-black:active .file-cta, .file.is-black.is-active .file-cta { + background-color: black; + border-color: transparent; + color: white; } + .file.is-light .file-cta { + background-color: whitesmoke; + border-color: transparent; + color: #363636; } + .file.is-light:hover .file-cta, .file.is-light.is-hovered .file-cta { + background-color: #eeeeee; + border-color: transparent; + color: #363636; } + .file.is-light:focus .file-cta, .file.is-light.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(245, 245, 245, 0.25); + color: #363636; } + .file.is-light:active .file-cta, .file.is-light.is-active .file-cta { + background-color: #e8e8e8; + border-color: transparent; + color: #363636; } + .file.is-dark .file-cta, .content kbd.file .file-cta { + background-color: #363636; + border-color: transparent; + color: whitesmoke; } + .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: whitesmoke; } + .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: whitesmoke; } + .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: whitesmoke; } + .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: 0.75rem; } + .file.is-medium { + font-size: 1.25rem; } + .file.is-medium .file-icon .fa { + font-size: 21px; } + .file.is-large { + font-size: 1.5rem; } + .file.is-large .file-icon .fa { + font-size: 28px; } + .file.has-name .file-cta { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + .file.has-name .file-name { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .file.has-name.is-empty .file-cta { + border-radius: 4px; } + .file.has-name.is-empty .file-name { + display: none; } + .file.is-boxed .file-label { + flex-direction: column; } + .file.is-boxed .file-cta { + flex-direction: column; + height: auto; + padding: 1em 3em; } + .file.is-boxed .file-name { + border-width: 0 1px 1px; } + .file.is-boxed .file-icon { + height: 1.5em; + width: 1.5em; } + .file.is-boxed .file-icon .fa { + font-size: 21px; } + .file.is-boxed.is-small .file-icon .fa, #documenter .docs-sidebar form.docs-search > input.is-boxed .file-icon .fa { + font-size: 14px; } + .file.is-boxed.is-medium .file-icon .fa { + font-size: 28px; } + .file.is-boxed.is-large .file-icon .fa { + font-size: 35px; } + .file.is-boxed.has-name .file-cta { + border-radius: 4px 4px 0 0; } + .file.is-boxed.has-name .file-name { + border-radius: 0 0 4px 4px; + border-width: 0 1px 1px; } + .file.is-centered { + justify-content: center; } + .file.is-fullwidth .file-label { + width: 100%; } + .file.is-fullwidth .file-name { + flex-grow: 1; + max-width: none; } + .file.is-right { + justify-content: flex-end; } + .file.is-right .file-cta { + border-radius: 0 4px 4px 0; } + .file.is-right .file-name { + border-radius: 4px 0 0 4px; + border-width: 1px 0 1px 1px; + order: -1; } + +.file-label { + align-items: stretch; + display: flex; + cursor: pointer; + justify-content: flex-start; + overflow: hidden; + position: relative; } + .file-label:hover .file-cta { + background-color: #eeeeee; + color: #363636; } + .file-label:hover .file-name { + border-color: #d5d5d5; } + .file-label:active .file-cta { + background-color: #e8e8e8; + color: #363636; } + .file-label:active .file-name { + border-color: #cfcfcf; } + +.file-input { + height: 100%; + left: 0; + opacity: 0; + outline: none; + position: absolute; + top: 0; + width: 100%; } + +.file-cta, +.file-name { + border-color: #dbdbdb; + border-radius: 4px; + font-size: 1em; + padding-left: 1em; + padding-right: 1em; + white-space: nowrap; } + +.file-cta { + background-color: whitesmoke; + color: #4a4a4a; } + +.file-name { + border-color: #dbdbdb; + border-style: solid; + border-width: 1px 1px 1px 0; + display: block; + max-width: 16em; + overflow: hidden; + text-align: left; + text-overflow: ellipsis; } + +.file-icon { + align-items: center; + display: flex; + height: 1em; + justify-content: center; + margin-right: 0.5em; + width: 1em; } + .file-icon .fa { + font-size: 14px; } + +.label { + color: #363636; + display: block; + font-size: 1rem; + font-weight: 700; } + .label:not(:last-child) { + margin-bottom: 0.5em; } + .label.is-small, #documenter .docs-sidebar form.docs-search > input.label { + font-size: 0.75rem; } + .label.is-medium { + font-size: 1.25rem; } + .label.is-large { + font-size: 1.5rem; } + +.help { + display: block; + font-size: 0.75rem; + margin-top: 0.25rem; } + .help.is-white { + color: white; } + .help.is-black { + color: #0a0a0a; } + .help.is-light { + color: whitesmoke; } + .help.is-dark, .content kbd.help { + color: #363636; } + .help.is-primary, .docstring > section > a.help.docs-sourcelink { + color: #4eb5de; } + .help.is-link { + color: #2e63b8; } + .help.is-info { + color: #209cee; } + .help.is-success { + color: #22c35b; } + .help.is-warning { + color: #ffdd57; } + .help.is-danger { + color: #da0b00; } + +.field:not(:last-child) { + margin-bottom: 0.75rem; } + +.field.has-addons { + display: flex; + justify-content: flex-start; } + .field.has-addons .control:not(:last-child) { + margin-right: -1px; } + .field.has-addons .control:not(:first-child):not(:last-child) .button, + .field.has-addons .control:not(:first-child):not(:last-child) .input, + .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input, + .field.has-addons .control:not(:first-child):not(:last-child) .select select { + border-radius: 0; } + .field.has-addons .control:first-child:not(:only-child) .button, + .field.has-addons .control:first-child:not(:only-child) .input, + .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input, + .field.has-addons .control:first-child:not(:only-child) .select select { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + .field.has-addons .control:last-child:not(:only-child) .button, + .field.has-addons .control:last-child:not(:only-child) .input, + .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input, + .field.has-addons .control:last-child:not(:only-child) .select select { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .field.has-addons .control .button:not([disabled]):hover, .field.has-addons .control .button.is-hovered:not([disabled]), + .field.has-addons .control .input:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover, + .field.has-addons .control .input.is-hovered:not([disabled]), + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-hovered:not([disabled]), + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-hovered:not([disabled]), + .field.has-addons .control .select select:not([disabled]):hover, + .field.has-addons .control .select select.is-hovered:not([disabled]) { + z-index: 2; } + .field.has-addons .control .button:not([disabled]):focus, .field.has-addons .control .button.is-focused:not([disabled]), .field.has-addons .control .button:not([disabled]):active, .field.has-addons .control .button.is-active:not([disabled]), + .field.has-addons .control .input:not([disabled]):focus, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus, + .field.has-addons .control .input.is-focused:not([disabled]), + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]), + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]), + .field.has-addons .control .input:not([disabled]):active, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active, + .field.has-addons .control .input.is-active:not([disabled]), + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]), + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]), + .field.has-addons .control .select select:not([disabled]):focus, + .field.has-addons .control .select select.is-focused:not([disabled]), + .field.has-addons .control .select select:not([disabled]):active, + .field.has-addons .control .select select.is-active:not([disabled]) { + z-index: 3; } + .field.has-addons .control .button:not([disabled]):focus:hover, .field.has-addons .control .button.is-focused:not([disabled]):hover, .field.has-addons .control .button:not([disabled]):active:hover, .field.has-addons .control .button.is-active:not([disabled]):hover, + .field.has-addons .control .input:not([disabled]):focus:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover, + .field.has-addons .control .input.is-focused:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]):hover, + .field.has-addons .control .input:not([disabled]):active:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover, + .field.has-addons .control .input.is-active:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]):hover, + .field.has-addons .control .select select:not([disabled]):focus:hover, + .field.has-addons .control .select select.is-focused:not([disabled]):hover, + .field.has-addons .control .select select:not([disabled]):active:hover, + .field.has-addons .control .select select.is-active:not([disabled]):hover { + z-index: 4; } + .field.has-addons .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .field.has-addons.has-addons-centered { + justify-content: center; } + .field.has-addons.has-addons-right { + justify-content: flex-end; } + .field.has-addons.has-addons-fullwidth .control { + flex-grow: 1; + flex-shrink: 0; } + +.field.is-grouped { + display: flex; + justify-content: flex-start; } + .field.is-grouped > .control { + flex-shrink: 0; } + .field.is-grouped > .control:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + .field.is-grouped > .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .field.is-grouped.is-grouped-centered { + justify-content: center; } + .field.is-grouped.is-grouped-right { + justify-content: flex-end; } + .field.is-grouped.is-grouped-multiline { + flex-wrap: wrap; } + .field.is-grouped.is-grouped-multiline > .control:last-child, .field.is-grouped.is-grouped-multiline > .control:not(:last-child) { + margin-bottom: 0.75rem; } + .field.is-grouped.is-grouped-multiline:last-child { + margin-bottom: -0.75rem; } + .field.is-grouped.is-grouped-multiline:not(:last-child) { + margin-bottom: 0; } + +@media screen and (min-width: 769px), print { + .field.is-horizontal { + display: flex; } } + +.field-label .label { + font-size: inherit; } + +@media screen and (max-width: 768px) { + .field-label { + margin-bottom: 0.5rem; } } + +@media screen and (min-width: 769px), print { + .field-label { + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + margin-right: 1.5rem; + text-align: right; } + .field-label.is-small, #documenter .docs-sidebar form.docs-search > input.field-label { + font-size: 0.75rem; + padding-top: 0.375em; } + .field-label.is-normal { + padding-top: 0.375em; } + .field-label.is-medium { + font-size: 1.25rem; + padding-top: 0.375em; } + .field-label.is-large { + font-size: 1.5rem; + padding-top: 0.375em; } } + +.field-body .field .field { + margin-bottom: 0; } + +@media screen and (min-width: 769px), print { + .field-body { + display: flex; + flex-basis: 0; + flex-grow: 5; + flex-shrink: 1; } + .field-body .field { + margin-bottom: 0; } + .field-body > .field { + flex-shrink: 1; } + .field-body > .field:not(.is-narrow) { + flex-grow: 1; } + .field-body > .field:not(:last-child) { + margin-right: 0.75rem; } } + +.control { + box-sizing: border-box; + clear: both; + font-size: 1rem; + position: relative; + text-align: left; } + .control.has-icons-left .input:focus ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon, + .control.has-icons-left .select:focus ~ .icon, .control.has-icons-right .input:focus ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon, + .control.has-icons-right .select:focus ~ .icon { + color: #6b6b6b; } + .control.has-icons-left .input.is-small ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon, + .control.has-icons-left .select.is-small ~ .icon, .control.has-icons-right .input.is-small ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon, + .control.has-icons-right .select.is-small ~ .icon { + font-size: 0.75rem; } + .control.has-icons-left .input.is-medium ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon, + .control.has-icons-left .select.is-medium ~ .icon, .control.has-icons-right .input.is-medium ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon, + .control.has-icons-right .select.is-medium ~ .icon { + font-size: 1.25rem; } + .control.has-icons-left .input.is-large ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon, + .control.has-icons-left .select.is-large ~ .icon, .control.has-icons-right .input.is-large ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon, + .control.has-icons-right .select.is-large ~ .icon { + font-size: 1.5rem; } + .control.has-icons-left .icon, .control.has-icons-right .icon { + color: #dbdbdb; + height: 2.25em; + pointer-events: none; + position: absolute; + top: 0; + width: 2.25em; + z-index: 4; } + .control.has-icons-left .input, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input, + .control.has-icons-left .select select { + padding-left: 2.25em; } + .control.has-icons-left .icon.is-left { + left: 0; } + .control.has-icons-right .input, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input, + .control.has-icons-right .select select { + padding-right: 2.25em; } + .control.has-icons-right .icon.is-right { + right: 0; } + .control.is-loading::after { + position: absolute !important; + right: 0.625em; + top: 0.625em; + z-index: 4; } + .control.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.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 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: #222222; + cursor: default; + pointer-events: none; } + .breadcrumb li + li::before { + color: #b5b5b5; + content: "\0002f"; } + .breadcrumb ul, + .breadcrumb ol { + align-items: flex-start; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .breadcrumb .icon:first-child { + margin-right: 0.5em; } + .breadcrumb .icon:last-child { + margin-left: 0.5em; } + .breadcrumb.is-centered ol, + .breadcrumb.is-centered ul { + justify-content: center; } + .breadcrumb.is-right ol, + .breadcrumb.is-right ul { + justify-content: flex-end; } + .breadcrumb.is-small, #documenter .docs-sidebar form.docs-search > input.breadcrumb { + font-size: 0.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: white; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #222222; + max-width: 100%; + position: relative; } + +.card-header { + background-color: transparent; + align-items: stretch; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + display: flex; } + +.card-header-title { + align-items: center; + color: #222222; + display: flex; + flex-grow: 1; + font-weight: 700; + padding: 0.75rem; } + .card-header-title.is-centered { + justify-content: center; } + +.card-header-icon { + align-items: center; + cursor: pointer; + display: flex; + justify-content: center; + padding: 0.75rem; } + +.card-image { + display: block; + position: relative; } + +.card-content { + background-color: transparent; + padding: 1.5rem; } + +.card-footer { + background-color: transparent; + border-top: 1px solid #dbdbdb; + align-items: stretch; + display: flex; } + +.card-footer-item { + align-items: center; + display: flex; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + justify-content: center; + padding: 0.75rem; } + .card-footer-item:not(:last-child) { + border-right: 1px solid #dbdbdb; } + +.card .media:not(:last-child) { + margin-bottom: 1.5rem; } + +.dropdown { + display: inline-flex; + position: relative; + vertical-align: top; } + .dropdown.is-active .dropdown-menu, .dropdown.is-hoverable:hover .dropdown-menu { + display: block; } + .dropdown.is-right .dropdown-menu { + left: auto; + right: 0; } + .dropdown.is-up .dropdown-menu { + bottom: 100%; + padding-bottom: 4px; + padding-top: initial; + top: auto; } + +.dropdown-menu { + display: none; + left: 0; + min-width: 12rem; + padding-top: 4px; + position: absolute; + top: 100%; + z-index: 20; } + +.dropdown-content { + background-color: white; + border-radius: 4px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + +.dropdown-item { + color: #4a4a4a; + display: block; + font-size: 0.875rem; + line-height: 1.5; + padding: 0.375rem 1rem; + position: relative; } + +a.dropdown-item, +button.dropdown-item { + padding-right: 3rem; + text-align: left; + white-space: nowrap; + width: 100%; } + a.dropdown-item:hover, + button.dropdown-item:hover { + background-color: whitesmoke; + color: #0a0a0a; } + a.dropdown-item.is-active, + button.dropdown-item.is-active { + background-color: #2e63b8; + color: #fff; } + +.dropdown-divider { + background-color: #dbdbdb; + border: none; + display: block; + height: 1px; + margin: 0.5rem 0; } + +.level { + align-items: center; + justify-content: space-between; } + .level code { + border-radius: 4px; } + .level img { + display: inline-block; + vertical-align: top; } + .level.is-mobile { + display: flex; } + .level.is-mobile .level-left, + .level.is-mobile .level-right { + display: flex; } + .level.is-mobile .level-left + .level-right { + margin-top: 0; } + .level.is-mobile .level-item:not(:last-child) { + margin-bottom: 0; + margin-right: 0.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: 0.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: 0.75rem; } } +.level-left { + align-items: center; + justify-content: flex-start; } + @media screen and (max-width: 768px) { + .level-left + .level-right { + margin-top: 1.5rem; } } + @media screen and (min-width: 769px), print { + .level-left { + display: flex; } } +.level-right { + align-items: center; + justify-content: flex-end; } + @media screen and (min-width: 769px), print { + .level-right { + display: flex; } } +.list { + background-color: white; + border-radius: 4px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); } + +.list-item { + display: block; + padding: 0.5em 1em; } + .list-item:not(a) { + color: #222222; } + .list-item:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; } + .list-item:last-child { + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; } + .list-item:not(:last-child) { + border-bottom: 1px solid #dbdbdb; } + .list-item.is-active { + background-color: #2e63b8; + color: #fff; } + +a.list-item { + background-color: whitesmoke; + cursor: pointer; } + +.media { + align-items: flex-start; + display: flex; + text-align: left; } + .media .content:not(:last-child) { + margin-bottom: 0.75rem; } + .media .media { + border-top: 1px solid rgba(219, 219, 219, 0.5); + display: flex; + padding-top: 0.75rem; } + .media .media .content:not(:last-child), + .media .media .control:not(:last-child) { + margin-bottom: 0.5rem; } + .media .media .media { + padding-top: 0.5rem; } + .media .media .media + .media { + margin-top: 0.5rem; } + .media + .media { + border-top: 1px solid rgba(219, 219, 219, 0.5); + margin-top: 1rem; + padding-top: 1rem; } + .media.is-large + .media { + margin-top: 1.5rem; + padding-top: 1.5rem; } + +.media-left, +.media-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + +.media-left { + margin-right: 1rem; } + +.media-right { + margin-left: 1rem; } + +.media-content { + flex-basis: auto; + flex-grow: 1; + flex-shrink: 1; + text-align: left; } + +@media screen and (max-width: 768px) { + .media-content { + overflow-x: auto; } } + +.menu { + font-size: 1rem; } + .menu.is-small, #documenter .docs-sidebar form.docs-search > input.menu { + font-size: 0.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: #222222; + display: block; + padding: 0.5em 0.75em; } + .menu-list a:hover { + background-color: whitesmoke; + color: #222222; } + .menu-list a.is-active { + background-color: #2e63b8; + color: #fff; } + .menu-list li ul { + border-left: 1px solid #dbdbdb; + margin: 0.75em; + padding-left: 0.75em; } + +.menu-label { + color: #6b6b6b; + font-size: 0.75em; + letter-spacing: 0.1em; + text-transform: uppercase; } + .menu-label:not(:first-child) { + margin-top: 1em; } + .menu-label:not(:last-child) { + margin-bottom: 1em; } + +.message { + background-color: whitesmoke; + 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: 0.75rem; } + .message.is-medium { + font-size: 1.25rem; } + .message.is-large { + font-size: 1.5rem; } + .message.is-white { + background-color: white; } + .message.is-white .message-header { + background-color: white; + color: #0a0a0a; } + .message.is-white .message-body { + border-color: white; + color: #4d4d4d; } + .message.is-black { + background-color: #fafafa; } + .message.is-black .message-header { + background-color: #0a0a0a; + color: white; } + .message.is-black .message-body { + border-color: #0a0a0a; + color: #090909; } + .message.is-light { + background-color: #fafafa; } + .message.is-light .message-header { + background-color: whitesmoke; + color: #363636; } + .message.is-light .message-body { + border-color: whitesmoke; + color: #505050; } + .message.is-dark, .content kbd.message { + background-color: #fafafa; } + .message.is-dark .message-header, .content kbd.message .message-header { + background-color: #363636; + color: whitesmoke; } + .message.is-dark .message-body, .content kbd.message .message-body { + border-color: #363636; + color: #2a2a2a; } + .message.is-primary, .docstring > section > a.message.docs-sourcelink { + background-color: #f6fbfd; } + .message.is-primary .message-header, .docstring > section > a.message.docs-sourcelink .message-header { + background-color: #4eb5de; + color: #fff; } + .message.is-primary .message-body, .docstring > section > a.message.docs-sourcelink .message-body { + border-color: #4eb5de; + color: #1f556a; } + .message.is-link { + background-color: #f7f9fd; } + .message.is-link .message-header { + background-color: #2e63b8; + color: #fff; } + .message.is-link .message-body { + border-color: #2e63b8; + color: #264981; } + .message.is-info { + background-color: #f6fbfe; } + .message.is-info .message-header { + background-color: #209cee; + color: #fff; } + .message.is-info .message-body { + border-color: #209cee; + color: #12537d; } + .message.is-success { + background-color: #f6fdf9; } + .message.is-success .message-header { + background-color: #22c35b; + color: #fff; } + .message.is-success .message-body { + border-color: #22c35b; + color: #0f361d; } + .message.is-warning { + background-color: #fffdf5; } + .message.is-warning .message-header { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .message.is-warning .message-body { + border-color: #ffdd57; + color: #3c3108; } + .message.is-danger { + background-color: #fff5f5; } + .message.is-danger .message-header { + background-color: #da0b00; + color: #fff; } + .message.is-danger .message-body { + border-color: #da0b00; + color: #9b0c04; } + +.message-header { + align-items: center; + background-color: #222222; + border-radius: 4px 4px 0 0; + color: #fff; + display: flex; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em 1em; + position: relative; } + .message-header .delete { + flex-grow: 0; + flex-shrink: 0; + margin-left: 0.75em; } + .message-header + .message-body { + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; } + +.message-body { + border-color: #dbdbdb; + border-radius: 4px; + border-style: solid; + border-width: 0 0 0 4px; + color: #222222; + padding: 1.25em 1.5em; } + .message-body code, + .message-body pre { + background-color: white; } + .message-body pre code { + background-color: transparent; } + +.modal { + align-items: center; + display: none; + flex-direction: column; + justify-content: center; + overflow: hidden; + position: fixed; + z-index: 40; } + .modal.is-active { + display: flex; } + +.modal-background { + background-color: rgba(10, 10, 10, 0.86); } + +.modal-content, +.modal-card { + margin: 0 20px; + max-height: calc(100vh - 160px); + overflow: auto; + position: relative; + width: 100%; } + @media screen and (min-width: 769px), print { + .modal-content, + .modal-card { + margin: 0 auto; + max-height: calc(100vh - 40px); + width: 640px; } } +.modal-close { + background: none; + height: 40px; + position: fixed; + right: 20px; + top: 20px; + width: 40px; } + +.modal-card { + display: flex; + flex-direction: column; + max-height: calc(100vh - 40px); + overflow: hidden; + -ms-overflow-y: visible; } + +.modal-card-head, +.modal-card-foot { + align-items: center; + background-color: whitesmoke; + 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: #222222; + flex-grow: 1; + flex-shrink: 0; + font-size: 1.5rem; + line-height: 1; } + +.modal-card-foot { + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + border-top: 1px solid #dbdbdb; } + .modal-card-foot .button:not(:last-child) { + margin-right: 0.5em; } + +.modal-card-body { + -webkit-overflow-scrolling: touch; + background-color: white; + flex-grow: 1; + flex-shrink: 1; + overflow: auto; + padding: 20px; } + +.navbar { + background-color: white; + min-height: 3.25rem; + position: relative; + z-index: 30; } + .navbar.is-white { + background-color: white; + 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: white; + color: #0a0a0a; } } + .navbar.is-black { + background-color: #0a0a0a; + color: white; } + .navbar.is-black .navbar-brand > .navbar-item, + .navbar.is-black .navbar-brand .navbar-link { + color: white; } + .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: black; + color: white; } + .navbar.is-black .navbar-brand .navbar-link::after { + border-color: white; } + .navbar.is-black .navbar-burger { + color: white; } + @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: white; } + .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: black; + color: white; } + .navbar.is-black .navbar-start .navbar-link::after, + .navbar.is-black .navbar-end .navbar-link::after { + border-color: white; } + .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: black; + color: white; } + .navbar.is-black .navbar-dropdown a.navbar-item.is-active { + background-color: #0a0a0a; + color: white; } } + .navbar.is-light { + background-color: whitesmoke; + color: #363636; } + .navbar.is-light .navbar-brand > .navbar-item, + .navbar.is-light .navbar-brand .navbar-link { + color: #363636; } + .navbar.is-light .navbar-brand > a.navbar-item:focus, .navbar.is-light .navbar-brand > a.navbar-item:hover, .navbar.is-light .navbar-brand > a.navbar-item.is-active, + .navbar.is-light .navbar-brand .navbar-link:focus, + .navbar.is-light .navbar-brand .navbar-link:hover, + .navbar.is-light .navbar-brand .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-brand .navbar-link::after { + border-color: #363636; } + .navbar.is-light .navbar-burger { + color: #363636; } + @media screen and (min-width: 1056px) { + .navbar.is-light .navbar-start > .navbar-item, + .navbar.is-light .navbar-start .navbar-link, + .navbar.is-light .navbar-end > .navbar-item, + .navbar.is-light .navbar-end .navbar-link { + color: #363636; } + .navbar.is-light .navbar-start > a.navbar-item:focus, .navbar.is-light .navbar-start > a.navbar-item:hover, .navbar.is-light .navbar-start > a.navbar-item.is-active, + .navbar.is-light .navbar-start .navbar-link:focus, + .navbar.is-light .navbar-start .navbar-link:hover, + .navbar.is-light .navbar-start .navbar-link.is-active, + .navbar.is-light .navbar-end > a.navbar-item:focus, + .navbar.is-light .navbar-end > a.navbar-item:hover, + .navbar.is-light .navbar-end > a.navbar-item.is-active, + .navbar.is-light .navbar-end .navbar-link:focus, + .navbar.is-light .navbar-end .navbar-link:hover, + .navbar.is-light .navbar-end .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-start .navbar-link::after, + .navbar.is-light .navbar-end .navbar-link::after { + border-color: #363636; } + .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #363636; } } + .navbar.is-dark, .content kbd.navbar { + background-color: #363636; + color: whitesmoke; } + .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: whitesmoke; } + .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: whitesmoke; } + .navbar.is-dark .navbar-brand .navbar-link::after, .content kbd.navbar .navbar-brand .navbar-link::after { + border-color: whitesmoke; } + .navbar.is-dark .navbar-burger, .content kbd.navbar .navbar-burger { + color: whitesmoke; } + @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: whitesmoke; } + .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: whitesmoke; } + .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: whitesmoke; } + .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: whitesmoke; } + .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, .content kbd.navbar .navbar-dropdown a.navbar-item.is-active { + background-color: #363636; + color: whitesmoke; } } + .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 whitesmoke; } + .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 whitesmoke; } + .navbar.is-fixed-top { + top: 0; } + +html.has-navbar-fixed-top, +body.has-navbar-fixed-top { + padding-top: 3.25rem; } + +html.has-navbar-fixed-bottom, +body.has-navbar-fixed-bottom { + padding-bottom: 3.25rem; } + +.navbar-brand, +.navbar-tabs { + align-items: stretch; + display: flex; + flex-shrink: 0; + min-height: 3.25rem; } + +.navbar-brand a.navbar-item:focus, .navbar-brand a.navbar-item:hover { + background-color: transparent; } + +.navbar-tabs { + -webkit-overflow-scrolling: touch; + max-width: 100vw; + overflow-x: auto; + overflow-y: hidden; } + +.navbar-burger { + color: #4a4a4a; + cursor: pointer; + display: block; + height: 3.25rem; + position: relative; + width: 3.25rem; + margin-left: auto; } + .navbar-burger span { + background-color: currentColor; + display: block; + height: 1px; + left: calc(50% - 8px); + position: absolute; + transform-origin: center; + transition-duration: 86ms; + transition-property: background-color, opacity, transform; + transition-timing-function: ease-out; + width: 16px; } + .navbar-burger span:nth-child(1) { + top: calc(50% - 6px); } + .navbar-burger span:nth-child(2) { + top: calc(50% - 1px); } + .navbar-burger span:nth-child(3) { + top: calc(50% + 4px); } + .navbar-burger:hover { + background-color: rgba(0, 0, 0, 0.05); } + .navbar-burger.is-active span:nth-child(1) { + transform: translateY(5px) rotate(45deg); } + .navbar-burger.is-active span:nth-child(2) { + opacity: 0; } + .navbar-burger.is-active span:nth-child(3) { + transform: translateY(-5px) rotate(-45deg); } + +.navbar-menu { + display: none; } + +.navbar-item, +.navbar-link { + color: #4a4a4a; + display: block; + line-height: 1.5; + padding: 0.5rem 0.75rem; + position: relative; } + .navbar-item .icon:only-child, + .navbar-link .icon:only-child { + margin-left: -0.25rem; + margin-right: -0.25rem; } + +a.navbar-item, +.navbar-link { + cursor: pointer; } + a.navbar-item:focus, a.navbar-item:focus-within, a.navbar-item:hover, a.navbar-item.is-active, + .navbar-link:focus, + .navbar-link:focus-within, + .navbar-link:hover, + .navbar-link.is-active { + background-color: #fafafa; + color: #2e63b8; } + +.navbar-item { + display: block; + flex-grow: 0; + flex-shrink: 0; } + .navbar-item img { + max-height: 1.75rem; } + .navbar-item.has-dropdown { + padding: 0; } + .navbar-item.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .navbar-item.is-tab { + border-bottom: 1px solid transparent; + min-height: 3.25rem; + padding-bottom: calc(0.5rem - 1px); } + .navbar-item.is-tab:focus, .navbar-item.is-tab:hover { + background-color: transparent; + border-bottom-color: #2e63b8; } + .navbar-item.is-tab.is-active { + background-color: transparent; + 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: whitesmoke; + 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: white; + 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: whitesmoke; + color: #0a0a0a; } + .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #2e63b8; } + .navbar-burger { + display: none; } + .navbar-item, + .navbar-link { + align-items: center; + display: flex; } + .navbar-item { + display: flex; } + .navbar-item.has-dropdown { + align-items: stretch; } + .navbar-item.has-dropdown-up .navbar-link::after { + transform: rotate(135deg) translate(0.25em, -0.25em); } + .navbar-item.has-dropdown-up .navbar-dropdown { + border-bottom: 2px solid #dbdbdb; + border-radius: 6px 6px 0 0; + border-top: none; + bottom: 100%; + box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1); + top: auto; } + .navbar-item.is-active .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown { + display: block; } + .navbar.is-spaced .navbar-item.is-active .navbar-dropdown, .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed { + opacity: 1; + pointer-events: auto; + transform: translateY(0); } + .navbar-menu { + flex-grow: 1; + flex-shrink: 0; } + .navbar-start { + justify-content: flex-start; + margin-right: auto; } + .navbar-end { + justify-content: flex-end; + margin-left: auto; } + .navbar-dropdown { + background-color: white; + 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: whitesmoke; + color: #0a0a0a; } + .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + 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: transparent; } + .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: -0.25rem; } + .pagination.is-small, #documenter .docs-sidebar form.docs-search > input.pagination { + font-size: 0.75rem; } + .pagination.is-medium { + font-size: 1.25rem; } + .pagination.is-large { + font-size: 1.5rem; } + .pagination.is-rounded .pagination-previous, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous, + .pagination.is-rounded .pagination-next, + #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next { + padding-left: 1em; + padding-right: 1em; + border-radius: 290486px; } + .pagination.is-rounded .pagination-link, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link { + border-radius: 290486px; } + +.pagination, +.pagination-list { + align-items: center; + display: flex; + justify-content: center; + text-align: center; } + +.pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis { + font-size: 1em; + justify-content: center; + margin: 0.25rem; + padding-left: 0.5em; + padding-right: 0.5em; + text-align: center; } + +.pagination-previous, +.pagination-next, +.pagination-link { + border-color: #dbdbdb; + color: #363636; + min-width: 2.25em; } + .pagination-previous:hover, + .pagination-next:hover, + .pagination-link:hover { + border-color: #b5b5b5; + color: #363636; } + .pagination-previous:focus, + .pagination-next:focus, + .pagination-link:focus { + border-color: #3c5dcd; } + .pagination-previous:active, + .pagination-next:active, + .pagination-link:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); } + .pagination-previous[disabled], + .pagination-next[disabled], + .pagination-link[disabled] { + background-color: #dbdbdb; + border-color: #dbdbdb; + box-shadow: none; + color: #6b6b6b; + opacity: 0.5; } + +.pagination-previous, +.pagination-next { + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + +.pagination-link.is-current { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + +.pagination-ellipsis { + color: #b5b5b5; + pointer-events: none; } + +.pagination-list { + flex-wrap: wrap; } + +@media screen and (max-width: 768px) { + .pagination { + flex-wrap: wrap; } + .pagination-previous, + .pagination-next { + flex-grow: 1; + flex-shrink: 1; } + .pagination-list li { + flex-grow: 1; + flex-shrink: 1; } } + +@media screen and (min-width: 769px), print { + .pagination-list { + flex-grow: 1; + flex-shrink: 1; + justify-content: flex-start; + order: 1; } + .pagination-previous { + order: 2; } + .pagination-next { + order: 3; } + .pagination { + justify-content: space-between; } + .pagination.is-centered .pagination-previous { + order: 1; } + .pagination.is-centered .pagination-list { + justify-content: center; + order: 2; } + .pagination.is-centered .pagination-next { + order: 3; } + .pagination.is-right .pagination-previous { + order: 1; } + .pagination.is-right .pagination-next { + order: 2; } + .pagination.is-right .pagination-list { + justify-content: flex-end; + order: 3; } } + +.panel { + font-size: 1rem; } + .panel:not(:last-child) { + margin-bottom: 1.5rem; } + +.panel-heading, +.panel-tabs, +.panel-block { + border-bottom: 1px solid #dbdbdb; + border-left: 1px solid #dbdbdb; + border-right: 1px solid #dbdbdb; } + .panel-heading:first-child, + .panel-tabs:first-child, + .panel-block:first-child { + border-top: 1px solid #dbdbdb; } + +.panel-heading { + background-color: whitesmoke; + border-radius: 4px 4px 0 0; + color: #222222; + font-size: 1.25em; + font-weight: 300; + line-height: 1.25; + padding: 0.5em 0.75em; } + +.panel-tabs { + align-items: flex-end; + display: flex; + font-size: 0.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: #222222; } + .panel-list a:hover { + color: #2e63b8; } + +.panel-block { + align-items: center; + color: #222222; + display: flex; + justify-content: flex-start; + padding: 0.5em 0.75em; } + .panel-block input[type="checkbox"] { + margin-right: 0.75em; } + .panel-block > .control { + flex-grow: 1; + flex-shrink: 1; + width: 100%; } + .panel-block.is-wrapped { + flex-wrap: wrap; } + .panel-block.is-active { + border-left-color: #2e63b8; + color: #363636; } + .panel-block.is-active .panel-icon { + color: #2e63b8; } + +a.panel-block, +label.panel-block { + cursor: pointer; } + a.panel-block:hover, + label.panel-block:hover { + background-color: whitesmoke; } + +.panel-icon { + display: inline-block; + font-size: 14px; + height: 1em; + line-height: 1em; + text-align: center; + vertical-align: top; + width: 1em; + color: #6b6b6b; + margin-right: 0.75em; } + .panel-icon .fa { + font-size: inherit; + line-height: inherit; } + +.tabs { + -webkit-overflow-scrolling: touch; + align-items: stretch; + display: flex; + font-size: 1rem; + justify-content: space-between; + overflow: hidden; + overflow-x: auto; + white-space: nowrap; } + .tabs a { + align-items: center; + border-bottom-color: #dbdbdb; + border-bottom-style: solid; + border-bottom-width: 1px; + color: #222222; + display: flex; + justify-content: center; + margin-bottom: -1px; + padding: 0.5em 1em; + vertical-align: top; } + .tabs a:hover { + border-bottom-color: #222222; + color: #222222; } + .tabs li { + display: block; } + .tabs li.is-active a { + border-bottom-color: #2e63b8; + color: #2e63b8; } + .tabs ul { + align-items: center; + border-bottom-color: #dbdbdb; + border-bottom-style: solid; + border-bottom-width: 1px; + display: flex; + flex-grow: 1; + flex-shrink: 0; + justify-content: flex-start; } + .tabs ul.is-left { + padding-right: 0.75em; } + .tabs ul.is-center { + flex: none; + justify-content: center; + padding-left: 0.75em; + padding-right: 0.75em; } + .tabs ul.is-right { + justify-content: flex-end; + padding-left: 0.75em; } + .tabs .icon:first-child { + margin-right: 0.5em; } + .tabs .icon:last-child { + margin-left: 0.5em; } + .tabs.is-centered ul { + justify-content: center; } + .tabs.is-right ul { + justify-content: flex-end; } + .tabs.is-boxed a { + border: 1px solid transparent; + border-radius: 4px 4px 0 0; } + .tabs.is-boxed a:hover { + background-color: whitesmoke; + border-bottom-color: #dbdbdb; } + .tabs.is-boxed li.is-active a { + background-color: white; + border-color: #dbdbdb; + border-bottom-color: transparent !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: whitesmoke; + border-color: #b5b5b5; + z-index: 2; } + .tabs.is-toggle li + li { + margin-left: -1px; } + .tabs.is-toggle li:first-child a { + border-radius: 4px 0 0 4px; } + .tabs.is-toggle li:last-child a { + border-radius: 0 4px 4px 0; } + .tabs.is-toggle li.is-active a { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; + z-index: 1; } + .tabs.is-toggle ul { + border-bottom: none; } + .tabs.is-toggle.is-toggle-rounded li:first-child a { + border-bottom-left-radius: 290486px; + border-top-left-radius: 290486px; + padding-left: 1.25em; } + .tabs.is-toggle.is-toggle-rounded li:last-child a { + border-bottom-right-radius: 290486px; + border-top-right-radius: 290486px; + padding-right: 1.25em; } + .tabs.is-small, #documenter .docs-sidebar form.docs-search > input.tabs { + font-size: 0.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: 0.75rem; } + .columns.is-mobile > .column.is-narrow { + flex: none; } + .columns.is-mobile > .column.is-full { + flex: none; + width: 100%; } + .columns.is-mobile > .column.is-three-quarters { + flex: none; + width: 75%; } + .columns.is-mobile > .column.is-two-thirds { + flex: none; + width: 66.6666%; } + .columns.is-mobile > .column.is-half { + flex: none; + width: 50%; } + .columns.is-mobile > .column.is-one-third { + flex: none; + width: 33.3333%; } + .columns.is-mobile > .column.is-one-quarter { + flex: none; + width: 25%; } + .columns.is-mobile > .column.is-one-fifth { + flex: none; + width: 20%; } + .columns.is-mobile > .column.is-two-fifths { + flex: none; + width: 40%; } + .columns.is-mobile > .column.is-three-fifths { + flex: none; + width: 60%; } + .columns.is-mobile > .column.is-four-fifths { + flex: none; + width: 80%; } + .columns.is-mobile > .column.is-offset-three-quarters { + margin-left: 75%; } + .columns.is-mobile > .column.is-offset-two-thirds { + margin-left: 66.6666%; } + .columns.is-mobile > .column.is-offset-half { + margin-left: 50%; } + .columns.is-mobile > .column.is-offset-one-third { + margin-left: 33.3333%; } + .columns.is-mobile > .column.is-offset-one-quarter { + margin-left: 25%; } + .columns.is-mobile > .column.is-offset-one-fifth { + margin-left: 20%; } + .columns.is-mobile > .column.is-offset-two-fifths { + margin-left: 40%; } + .columns.is-mobile > .column.is-offset-three-fifths { + margin-left: 60%; } + .columns.is-mobile > .column.is-offset-four-fifths { + margin-left: 80%; } + .columns.is-mobile > .column.is-0 { + flex: none; + width: 0%; } + .columns.is-mobile > .column.is-offset-0 { + margin-left: 0%; } + .columns.is-mobile > .column.is-1 { + flex: none; + width: 8.3333333333%; } + .columns.is-mobile > .column.is-offset-1 { + margin-left: 8.3333333333%; } + .columns.is-mobile > .column.is-2 { + flex: none; + width: 16.6666666667%; } + .columns.is-mobile > .column.is-offset-2 { + margin-left: 16.6666666667%; } + .columns.is-mobile > .column.is-3 { + flex: none; + width: 25%; } + .columns.is-mobile > .column.is-offset-3 { + margin-left: 25%; } + .columns.is-mobile > .column.is-4 { + flex: none; + width: 33.3333333333%; } + .columns.is-mobile > .column.is-offset-4 { + margin-left: 33.3333333333%; } + .columns.is-mobile > .column.is-5 { + flex: none; + width: 41.6666666667%; } + .columns.is-mobile > .column.is-offset-5 { + margin-left: 41.6666666667%; } + .columns.is-mobile > .column.is-6 { + flex: none; + width: 50%; } + .columns.is-mobile > .column.is-offset-6 { + margin-left: 50%; } + .columns.is-mobile > .column.is-7 { + flex: none; + width: 58.3333333333%; } + .columns.is-mobile > .column.is-offset-7 { + margin-left: 58.3333333333%; } + .columns.is-mobile > .column.is-8 { + flex: none; + width: 66.6666666667%; } + .columns.is-mobile > .column.is-offset-8 { + margin-left: 66.6666666667%; } + .columns.is-mobile > .column.is-9 { + flex: none; + width: 75%; } + .columns.is-mobile > .column.is-offset-9 { + margin-left: 75%; } + .columns.is-mobile > .column.is-10 { + flex: none; + width: 83.3333333333%; } + .columns.is-mobile > .column.is-offset-10 { + margin-left: 83.3333333333%; } + .columns.is-mobile > .column.is-11 { + flex: none; + width: 91.6666666667%; } + .columns.is-mobile > .column.is-offset-11 { + margin-left: 91.6666666667%; } + .columns.is-mobile > .column.is-12 { + flex: none; + width: 100%; } + .columns.is-mobile > .column.is-offset-12 { + margin-left: 100%; } + @media screen and (max-width: 768px) { + .column.is-narrow-mobile { + flex: none; } + .column.is-full-mobile { + flex: none; + width: 100%; } + .column.is-three-quarters-mobile { + flex: none; + width: 75%; } + .column.is-two-thirds-mobile { + flex: none; + width: 66.6666%; } + .column.is-half-mobile { + flex: none; + width: 50%; } + .column.is-one-third-mobile { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-mobile { + flex: none; + width: 25%; } + .column.is-one-fifth-mobile { + flex: none; + width: 20%; } + .column.is-two-fifths-mobile { + flex: none; + width: 40%; } + .column.is-three-fifths-mobile { + flex: none; + width: 60%; } + .column.is-four-fifths-mobile { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-mobile { + margin-left: 75%; } + .column.is-offset-two-thirds-mobile { + margin-left: 66.6666%; } + .column.is-offset-half-mobile { + margin-left: 50%; } + .column.is-offset-one-third-mobile { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-mobile { + margin-left: 25%; } + .column.is-offset-one-fifth-mobile { + margin-left: 20%; } + .column.is-offset-two-fifths-mobile { + margin-left: 40%; } + .column.is-offset-three-fifths-mobile { + margin-left: 60%; } + .column.is-offset-four-fifths-mobile { + margin-left: 80%; } + .column.is-0-mobile { + flex: none; + width: 0%; } + .column.is-offset-0-mobile { + margin-left: 0%; } + .column.is-1-mobile { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-mobile { + margin-left: 8.3333333333%; } + .column.is-2-mobile { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-mobile { + margin-left: 16.6666666667%; } + .column.is-3-mobile { + flex: none; + width: 25%; } + .column.is-offset-3-mobile { + margin-left: 25%; } + .column.is-4-mobile { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-mobile { + margin-left: 33.3333333333%; } + .column.is-5-mobile { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-mobile { + margin-left: 41.6666666667%; } + .column.is-6-mobile { + flex: none; + width: 50%; } + .column.is-offset-6-mobile { + margin-left: 50%; } + .column.is-7-mobile { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-mobile { + margin-left: 58.3333333333%; } + .column.is-8-mobile { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-mobile { + margin-left: 66.6666666667%; } + .column.is-9-mobile { + flex: none; + width: 75%; } + .column.is-offset-9-mobile { + margin-left: 75%; } + .column.is-10-mobile { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-mobile { + margin-left: 83.3333333333%; } + .column.is-11-mobile { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-mobile { + margin-left: 91.6666666667%; } + .column.is-12-mobile { + flex: none; + width: 100%; } + .column.is-offset-12-mobile { + margin-left: 100%; } } + @media screen and (min-width: 769px), print { + .column.is-narrow, .column.is-narrow-tablet { + flex: none; } + .column.is-full, .column.is-full-tablet { + flex: none; + width: 100%; } + .column.is-three-quarters, .column.is-three-quarters-tablet { + flex: none; + width: 75%; } + .column.is-two-thirds, .column.is-two-thirds-tablet { + flex: none; + width: 66.6666%; } + .column.is-half, .column.is-half-tablet { + flex: none; + width: 50%; } + .column.is-one-third, .column.is-one-third-tablet { + flex: none; + width: 33.3333%; } + .column.is-one-quarter, .column.is-one-quarter-tablet { + flex: none; + width: 25%; } + .column.is-one-fifth, .column.is-one-fifth-tablet { + flex: none; + width: 20%; } + .column.is-two-fifths, .column.is-two-fifths-tablet { + flex: none; + width: 40%; } + .column.is-three-fifths, .column.is-three-fifths-tablet { + flex: none; + width: 60%; } + .column.is-four-fifths, .column.is-four-fifths-tablet { + flex: none; + width: 80%; } + .column.is-offset-three-quarters, .column.is-offset-three-quarters-tablet { + margin-left: 75%; } + .column.is-offset-two-thirds, .column.is-offset-two-thirds-tablet { + margin-left: 66.6666%; } + .column.is-offset-half, .column.is-offset-half-tablet { + margin-left: 50%; } + .column.is-offset-one-third, .column.is-offset-one-third-tablet { + margin-left: 33.3333%; } + .column.is-offset-one-quarter, .column.is-offset-one-quarter-tablet { + margin-left: 25%; } + .column.is-offset-one-fifth, .column.is-offset-one-fifth-tablet { + margin-left: 20%; } + .column.is-offset-two-fifths, .column.is-offset-two-fifths-tablet { + margin-left: 40%; } + .column.is-offset-three-fifths, .column.is-offset-three-fifths-tablet { + margin-left: 60%; } + .column.is-offset-four-fifths, .column.is-offset-four-fifths-tablet { + margin-left: 80%; } + .column.is-0, .column.is-0-tablet { + flex: none; + width: 0%; } + .column.is-offset-0, .column.is-offset-0-tablet { + margin-left: 0%; } + .column.is-1, .column.is-1-tablet { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1, .column.is-offset-1-tablet { + margin-left: 8.3333333333%; } + .column.is-2, .column.is-2-tablet { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2, .column.is-offset-2-tablet { + margin-left: 16.6666666667%; } + .column.is-3, .column.is-3-tablet { + flex: none; + width: 25%; } + .column.is-offset-3, .column.is-offset-3-tablet { + margin-left: 25%; } + .column.is-4, .column.is-4-tablet { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4, .column.is-offset-4-tablet { + margin-left: 33.3333333333%; } + .column.is-5, .column.is-5-tablet { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5, .column.is-offset-5-tablet { + margin-left: 41.6666666667%; } + .column.is-6, .column.is-6-tablet { + flex: none; + width: 50%; } + .column.is-offset-6, .column.is-offset-6-tablet { + margin-left: 50%; } + .column.is-7, .column.is-7-tablet { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7, .column.is-offset-7-tablet { + margin-left: 58.3333333333%; } + .column.is-8, .column.is-8-tablet { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8, .column.is-offset-8-tablet { + margin-left: 66.6666666667%; } + .column.is-9, .column.is-9-tablet { + flex: none; + width: 75%; } + .column.is-offset-9, .column.is-offset-9-tablet { + margin-left: 75%; } + .column.is-10, .column.is-10-tablet { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10, .column.is-offset-10-tablet { + margin-left: 83.3333333333%; } + .column.is-11, .column.is-11-tablet { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11, .column.is-offset-11-tablet { + margin-left: 91.6666666667%; } + .column.is-12, .column.is-12-tablet { + flex: none; + width: 100%; } + .column.is-offset-12, .column.is-offset-12-tablet { + margin-left: 100%; } } + @media screen and (max-width: 1055px) { + .column.is-narrow-touch { + flex: none; } + .column.is-full-touch { + flex: none; + width: 100%; } + .column.is-three-quarters-touch { + flex: none; + width: 75%; } + .column.is-two-thirds-touch { + flex: none; + width: 66.6666%; } + .column.is-half-touch { + flex: none; + width: 50%; } + .column.is-one-third-touch { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-touch { + flex: none; + width: 25%; } + .column.is-one-fifth-touch { + flex: none; + width: 20%; } + .column.is-two-fifths-touch { + flex: none; + width: 40%; } + .column.is-three-fifths-touch { + flex: none; + width: 60%; } + .column.is-four-fifths-touch { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-touch { + margin-left: 75%; } + .column.is-offset-two-thirds-touch { + margin-left: 66.6666%; } + .column.is-offset-half-touch { + margin-left: 50%; } + .column.is-offset-one-third-touch { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-touch { + margin-left: 25%; } + .column.is-offset-one-fifth-touch { + margin-left: 20%; } + .column.is-offset-two-fifths-touch { + margin-left: 40%; } + .column.is-offset-three-fifths-touch { + margin-left: 60%; } + .column.is-offset-four-fifths-touch { + margin-left: 80%; } + .column.is-0-touch { + flex: none; + width: 0%; } + .column.is-offset-0-touch { + margin-left: 0%; } + .column.is-1-touch { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-touch { + margin-left: 8.3333333333%; } + .column.is-2-touch { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-touch { + margin-left: 16.6666666667%; } + .column.is-3-touch { + flex: none; + width: 25%; } + .column.is-offset-3-touch { + margin-left: 25%; } + .column.is-4-touch { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-touch { + margin-left: 33.3333333333%; } + .column.is-5-touch { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-touch { + margin-left: 41.6666666667%; } + .column.is-6-touch { + flex: none; + width: 50%; } + .column.is-offset-6-touch { + margin-left: 50%; } + .column.is-7-touch { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-touch { + margin-left: 58.3333333333%; } + .column.is-8-touch { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-touch { + margin-left: 66.6666666667%; } + .column.is-9-touch { + flex: none; + width: 75%; } + .column.is-offset-9-touch { + margin-left: 75%; } + .column.is-10-touch { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-touch { + margin-left: 83.3333333333%; } + .column.is-11-touch { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-touch { + margin-left: 91.6666666667%; } + .column.is-12-touch { + flex: none; + width: 100%; } + .column.is-offset-12-touch { + margin-left: 100%; } } + @media screen and (min-width: 1056px) { + .column.is-narrow-desktop { + flex: none; } + .column.is-full-desktop { + flex: none; + width: 100%; } + .column.is-three-quarters-desktop { + flex: none; + width: 75%; } + .column.is-two-thirds-desktop { + flex: none; + width: 66.6666%; } + .column.is-half-desktop { + flex: none; + width: 50%; } + .column.is-one-third-desktop { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-desktop { + flex: none; + width: 25%; } + .column.is-one-fifth-desktop { + flex: none; + width: 20%; } + .column.is-two-fifths-desktop { + flex: none; + width: 40%; } + .column.is-three-fifths-desktop { + flex: none; + width: 60%; } + .column.is-four-fifths-desktop { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-desktop { + margin-left: 75%; } + .column.is-offset-two-thirds-desktop { + margin-left: 66.6666%; } + .column.is-offset-half-desktop { + margin-left: 50%; } + .column.is-offset-one-third-desktop { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-desktop { + margin-left: 25%; } + .column.is-offset-one-fifth-desktop { + margin-left: 20%; } + .column.is-offset-two-fifths-desktop { + margin-left: 40%; } + .column.is-offset-three-fifths-desktop { + margin-left: 60%; } + .column.is-offset-four-fifths-desktop { + margin-left: 80%; } + .column.is-0-desktop { + flex: none; + width: 0%; } + .column.is-offset-0-desktop { + margin-left: 0%; } + .column.is-1-desktop { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-desktop { + margin-left: 8.3333333333%; } + .column.is-2-desktop { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-desktop { + margin-left: 16.6666666667%; } + .column.is-3-desktop { + flex: none; + width: 25%; } + .column.is-offset-3-desktop { + margin-left: 25%; } + .column.is-4-desktop { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-desktop { + margin-left: 33.3333333333%; } + .column.is-5-desktop { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-desktop { + margin-left: 41.6666666667%; } + .column.is-6-desktop { + flex: none; + width: 50%; } + .column.is-offset-6-desktop { + margin-left: 50%; } + .column.is-7-desktop { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-desktop { + margin-left: 58.3333333333%; } + .column.is-8-desktop { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-desktop { + margin-left: 66.6666666667%; } + .column.is-9-desktop { + flex: none; + width: 75%; } + .column.is-offset-9-desktop { + margin-left: 75%; } + .column.is-10-desktop { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-desktop { + margin-left: 83.3333333333%; } + .column.is-11-desktop { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-desktop { + margin-left: 91.6666666667%; } + .column.is-12-desktop { + flex: none; + width: 100%; } + .column.is-offset-12-desktop { + margin-left: 100%; } } + @media screen and (min-width: 1216px) { + .column.is-narrow-widescreen { + flex: none; } + .column.is-full-widescreen { + flex: none; + width: 100%; } + .column.is-three-quarters-widescreen { + flex: none; + width: 75%; } + .column.is-two-thirds-widescreen { + flex: none; + width: 66.6666%; } + .column.is-half-widescreen { + flex: none; + width: 50%; } + .column.is-one-third-widescreen { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-widescreen { + flex: none; + width: 25%; } + .column.is-one-fifth-widescreen { + flex: none; + width: 20%; } + .column.is-two-fifths-widescreen { + flex: none; + width: 40%; } + .column.is-three-fifths-widescreen { + flex: none; + width: 60%; } + .column.is-four-fifths-widescreen { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-widescreen { + margin-left: 75%; } + .column.is-offset-two-thirds-widescreen { + margin-left: 66.6666%; } + .column.is-offset-half-widescreen { + margin-left: 50%; } + .column.is-offset-one-third-widescreen { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-widescreen { + margin-left: 25%; } + .column.is-offset-one-fifth-widescreen { + margin-left: 20%; } + .column.is-offset-two-fifths-widescreen { + margin-left: 40%; } + .column.is-offset-three-fifths-widescreen { + margin-left: 60%; } + .column.is-offset-four-fifths-widescreen { + margin-left: 80%; } + .column.is-0-widescreen { + flex: none; + width: 0%; } + .column.is-offset-0-widescreen { + margin-left: 0%; } + .column.is-1-widescreen { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-widescreen { + margin-left: 8.3333333333%; } + .column.is-2-widescreen { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-widescreen { + margin-left: 16.6666666667%; } + .column.is-3-widescreen { + flex: none; + width: 25%; } + .column.is-offset-3-widescreen { + margin-left: 25%; } + .column.is-4-widescreen { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-widescreen { + margin-left: 33.3333333333%; } + .column.is-5-widescreen { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-widescreen { + margin-left: 41.6666666667%; } + .column.is-6-widescreen { + flex: none; + width: 50%; } + .column.is-offset-6-widescreen { + margin-left: 50%; } + .column.is-7-widescreen { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-widescreen { + margin-left: 58.3333333333%; } + .column.is-8-widescreen { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-widescreen { + margin-left: 66.6666666667%; } + .column.is-9-widescreen { + flex: none; + width: 75%; } + .column.is-offset-9-widescreen { + margin-left: 75%; } + .column.is-10-widescreen { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-widescreen { + margin-left: 83.3333333333%; } + .column.is-11-widescreen { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-widescreen { + margin-left: 91.6666666667%; } + .column.is-12-widescreen { + flex: none; + width: 100%; } + .column.is-offset-12-widescreen { + margin-left: 100%; } } + @media screen and (min-width: 1408px) { + .column.is-narrow-fullhd { + flex: none; } + .column.is-full-fullhd { + flex: none; + width: 100%; } + .column.is-three-quarters-fullhd { + flex: none; + width: 75%; } + .column.is-two-thirds-fullhd { + flex: none; + width: 66.6666%; } + .column.is-half-fullhd { + flex: none; + width: 50%; } + .column.is-one-third-fullhd { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-fullhd { + flex: none; + width: 25%; } + .column.is-one-fifth-fullhd { + flex: none; + width: 20%; } + .column.is-two-fifths-fullhd { + flex: none; + width: 40%; } + .column.is-three-fifths-fullhd { + flex: none; + width: 60%; } + .column.is-four-fifths-fullhd { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-fullhd { + margin-left: 75%; } + .column.is-offset-two-thirds-fullhd { + margin-left: 66.6666%; } + .column.is-offset-half-fullhd { + margin-left: 50%; } + .column.is-offset-one-third-fullhd { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-fullhd { + margin-left: 25%; } + .column.is-offset-one-fifth-fullhd { + margin-left: 20%; } + .column.is-offset-two-fifths-fullhd { + margin-left: 40%; } + .column.is-offset-three-fifths-fullhd { + margin-left: 60%; } + .column.is-offset-four-fifths-fullhd { + margin-left: 80%; } + .column.is-0-fullhd { + flex: none; + width: 0%; } + .column.is-offset-0-fullhd { + margin-left: 0%; } + .column.is-1-fullhd { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-fullhd { + margin-left: 8.3333333333%; } + .column.is-2-fullhd { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-fullhd { + margin-left: 16.6666666667%; } + .column.is-3-fullhd { + flex: none; + width: 25%; } + .column.is-offset-3-fullhd { + margin-left: 25%; } + .column.is-4-fullhd { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-fullhd { + margin-left: 33.3333333333%; } + .column.is-5-fullhd { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-fullhd { + margin-left: 41.6666666667%; } + .column.is-6-fullhd { + flex: none; + width: 50%; } + .column.is-offset-6-fullhd { + margin-left: 50%; } + .column.is-7-fullhd { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-fullhd { + margin-left: 58.3333333333%; } + .column.is-8-fullhd { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-fullhd { + margin-left: 66.6666666667%; } + .column.is-9-fullhd { + flex: none; + width: 75%; } + .column.is-offset-9-fullhd { + margin-left: 75%; } + .column.is-10-fullhd { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-fullhd { + margin-left: 83.3333333333%; } + .column.is-11-fullhd { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-fullhd { + margin-left: 91.6666666667%; } + .column.is-12-fullhd { + flex: none; + width: 100%; } + .column.is-offset-12-fullhd { + margin-left: 100%; } } +.columns { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + .columns:last-child { + margin-bottom: -0.75rem; } + .columns:not(:last-child) { + margin-bottom: calc(1.5rem - 0.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: 0.25rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-1-mobile { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-1-tablet { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-1-tablet-only { + --columnGap: 0.25rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-1-touch { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-1-desktop { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-1-desktop-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-1-widescreen { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-1-widescreen-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-1-fullhd { + --columnGap: 0.25rem; } } + .columns.is-variable.is-2 { + --columnGap: 0.5rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-2-mobile { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-2-tablet { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-2-tablet-only { + --columnGap: 0.5rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-2-touch { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-2-desktop { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-2-desktop-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-2-widescreen { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-2-widescreen-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-2-fullhd { + --columnGap: 0.5rem; } } + .columns.is-variable.is-3 { + --columnGap: 0.75rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-3-mobile { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-3-tablet { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-3-tablet-only { + --columnGap: 0.75rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-3-touch { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-3-desktop { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-3-desktop-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-3-widescreen { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-3-widescreen-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-3-fullhd { + --columnGap: 0.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: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + .tile.is-ancestor:last-child { + margin-bottom: -0.75rem; } + .tile.is-ancestor:not(:last-child) { + margin-bottom: 0.75rem; } + .tile.is-child { + margin: 0 !important; } + .tile.is-parent { + padding: 0.75rem; } + .tile.is-vertical { + flex-direction: column; } + .tile.is-vertical > .tile.is-child:not(:last-child) { + margin-bottom: 1.5rem !important; } + @media screen and (min-width: 769px), print { + .tile:not(.is-child) { + display: flex; } + .tile.is-1 { + flex: none; + width: 8.3333333333%; } + .tile.is-2 { + flex: none; + width: 16.6666666667%; } + .tile.is-3 { + flex: none; + width: 25%; } + .tile.is-4 { + flex: none; + width: 33.3333333333%; } + .tile.is-5 { + flex: none; + width: 41.6666666667%; } + .tile.is-6 { + flex: none; + width: 50%; } + .tile.is-7 { + flex: none; + width: 58.3333333333%; } + .tile.is-8 { + flex: none; + width: 66.6666666667%; } + .tile.is-9 { + flex: none; + width: 75%; } + .tile.is-10 { + flex: none; + width: 83.3333333333%; } + .tile.is-11 { + flex: none; + width: 91.6666666667%; } + .tile.is-12 { + flex: none; + width: 100%; } } +.hero { + align-items: stretch; + display: flex; + flex-direction: column; + justify-content: space-between; } + .hero .navbar { + background: none; } + .hero .tabs ul { + border-bottom: none; } + .hero.is-white { + background-color: white; + 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: white; } } + .hero.is-white .navbar-item, + .hero.is-white .navbar-link { + color: rgba(10, 10, 10, 0.7); } + .hero.is-white a.navbar-item:hover, .hero.is-white a.navbar-item.is-active, + .hero.is-white .navbar-link:hover, + .hero.is-white .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + .hero.is-white .tabs a { + color: #0a0a0a; + opacity: 0.9; } + .hero.is-white .tabs a:hover { + opacity: 1; } + .hero.is-white .tabs li.is-active a { + opacity: 1; } + .hero.is-white .tabs.is-boxed a, .hero.is-white .tabs.is-toggle a { + color: #0a0a0a; } + .hero.is-white .tabs.is-boxed a:hover, .hero.is-white .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-white .tabs.is-boxed li.is-active a, .hero.is-white .tabs.is-boxed li.is-active a:hover, .hero.is-white .tabs.is-toggle li.is-active a, .hero.is-white .tabs.is-toggle li.is-active a:hover { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .hero.is-white.is-bold { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } + @media screen and (max-width: 768px) { + .hero.is-white.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } } + .hero.is-black { + background-color: #0a0a0a; + color: white; } + .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: white; } + .hero.is-black .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-black .subtitle a:not(.button), + .hero.is-black .subtitle strong { + color: white; } + @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: black; + color: white; } + .hero.is-black .tabs a { + color: white; + opacity: 0.9; } + .hero.is-black .tabs a:hover { + opacity: 1; } + .hero.is-black .tabs li.is-active a { + opacity: 1; } + .hero.is-black .tabs.is-boxed a, .hero.is-black .tabs.is-toggle a { + color: white; } + .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: white; + border-color: white; + color: #0a0a0a; } + .hero.is-black.is-bold { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } + @media screen and (max-width: 768px) { + .hero.is-black.is-bold .navbar-menu { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } } + .hero.is-light { + background-color: whitesmoke; + color: #363636; } + .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-light strong { + color: inherit; } + .hero.is-light .title { + color: #363636; } + .hero.is-light .subtitle { + color: rgba(54, 54, 54, 0.9); } + .hero.is-light .subtitle a:not(.button), + .hero.is-light .subtitle strong { + color: #363636; } + @media screen and (max-width: 1055px) { + .hero.is-light .navbar-menu { + background-color: whitesmoke; } } + .hero.is-light .navbar-item, + .hero.is-light .navbar-link { + color: rgba(54, 54, 54, 0.7); } + .hero.is-light a.navbar-item:hover, .hero.is-light a.navbar-item.is-active, + .hero.is-light .navbar-link:hover, + .hero.is-light .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .hero.is-light .tabs a { + color: #363636; + opacity: 0.9; } + .hero.is-light .tabs a:hover { + opacity: 1; } + .hero.is-light .tabs li.is-active a { + opacity: 1; } + .hero.is-light .tabs.is-boxed a, .hero.is-light .tabs.is-toggle a { + color: #363636; } + .hero.is-light .tabs.is-boxed a:hover, .hero.is-light .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-light .tabs.is-boxed li.is-active a, .hero.is-light .tabs.is-boxed li.is-active a:hover, .hero.is-light .tabs.is-toggle li.is-active a, .hero.is-light .tabs.is-toggle li.is-active a:hover { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .hero.is-light.is-bold { + background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } + @media screen and (max-width: 768px) { + .hero.is-light.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } } + .hero.is-dark, .content kbd.hero { + background-color: #363636; + color: whitesmoke; } + .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: whitesmoke; } + .hero.is-dark .subtitle, .content kbd.hero .subtitle { + color: rgba(245, 245, 245, 0.9); } + .hero.is-dark .subtitle a:not(.button), .content kbd.hero .subtitle a:not(.button), + .hero.is-dark .subtitle strong, + .content kbd.hero .subtitle strong { + color: whitesmoke; } + @media screen and (max-width: 1055px) { + .hero.is-dark .navbar-menu, .content kbd.hero .navbar-menu { + background-color: #363636; } } + .hero.is-dark .navbar-item, .content kbd.hero .navbar-item, + .hero.is-dark .navbar-link, + .content kbd.hero .navbar-link { + color: rgba(245, 245, 245, 0.7); } + .hero.is-dark a.navbar-item:hover, .content kbd.hero a.navbar-item:hover, .hero.is-dark a.navbar-item.is-active, .content kbd.hero a.navbar-item.is-active, + .hero.is-dark .navbar-link:hover, + .content kbd.hero .navbar-link:hover, + .hero.is-dark .navbar-link.is-active, + .content kbd.hero .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; } + .hero.is-dark .tabs a, .content kbd.hero .tabs a { + color: whitesmoke; + opacity: 0.9; } + .hero.is-dark .tabs a:hover, .content kbd.hero .tabs a:hover { + opacity: 1; } + .hero.is-dark .tabs li.is-active a, .content kbd.hero .tabs li.is-active a { + opacity: 1; } + .hero.is-dark .tabs.is-boxed a, .content kbd.hero .tabs.is-boxed a, .hero.is-dark .tabs.is-toggle a, .content kbd.hero .tabs.is-toggle a { + color: whitesmoke; } + .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: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .hero.is-dark.is-bold, .content kbd.hero.is-bold { + background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); } + @media screen and (max-width: 768px) { + .hero.is-dark.is-bold .navbar-menu, .content kbd.hero.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); } } + .hero.is-primary, .docstring > section > a.hero.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-primary strong, + .docstring > section > a.hero.docs-sourcelink strong { + color: inherit; } + .hero.is-primary .title, .docstring > section > a.hero.docs-sourcelink .title { + color: #fff; } + .hero.is-primary .subtitle, .docstring > section > a.hero.docs-sourcelink .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-primary .subtitle a:not(.button), .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button), + .hero.is-primary .subtitle strong, + .docstring > section > a.hero.docs-sourcelink .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-primary .navbar-menu, .docstring > section > a.hero.docs-sourcelink .navbar-menu { + background-color: #4eb5de; } } + .hero.is-primary .navbar-item, .docstring > section > a.hero.docs-sourcelink .navbar-item, + .hero.is-primary .navbar-link, + .docstring > section > a.hero.docs-sourcelink .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-primary a.navbar-item:hover, .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, .hero.is-primary a.navbar-item.is-active, .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active, + .hero.is-primary .navbar-link:hover, + .docstring > section > a.hero.docs-sourcelink .navbar-link:hover, + .hero.is-primary .navbar-link.is-active, + .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active { + background-color: #39acda; + color: #fff; } + .hero.is-primary .tabs a, .docstring > section > a.hero.docs-sourcelink .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-primary .tabs a:hover, .docstring > section > a.hero.docs-sourcelink .tabs a:hover { + opacity: 1; } + .hero.is-primary .tabs li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a { + opacity: 1; } + .hero.is-primary .tabs.is-boxed a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, .hero.is-primary .tabs.is-toggle a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a { + color: #fff; } + .hero.is-primary .tabs.is-boxed a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, .hero.is-primary .tabs.is-toggle a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-primary .tabs.is-boxed li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, .hero.is-primary .tabs.is-boxed li.is-active a:hover, .hero.is-primary .tabs.is-toggle li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, .hero.is-primary .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #4eb5de; } + .hero.is-primary.is-bold, .docstring > section > a.hero.is-bold.docs-sourcelink { + background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); } + @media screen and (max-width: 768px) { + .hero.is-primary.is-bold .navbar-menu, .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu { + background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); } } + .hero.is-link { + background-color: #2e63b8; + color: #fff; } + .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-link strong { + color: inherit; } + .hero.is-link .title { + color: #fff; } + .hero.is-link .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-link .subtitle a:not(.button), + .hero.is-link .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-link .navbar-menu { + background-color: #2e63b8; } } + .hero.is-link .navbar-item, + .hero.is-link .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-link a.navbar-item:hover, .hero.is-link a.navbar-item.is-active, + .hero.is-link .navbar-link:hover, + .hero.is-link .navbar-link.is-active { + background-color: #2958a4; + color: #fff; } + .hero.is-link .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-link .tabs a:hover { + opacity: 1; } + .hero.is-link .tabs li.is-active a { + opacity: 1; } + .hero.is-link .tabs.is-boxed a, .hero.is-link .tabs.is-toggle a { + color: #fff; } + .hero.is-link .tabs.is-boxed a:hover, .hero.is-link .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-link .tabs.is-boxed li.is-active a, .hero.is-link .tabs.is-boxed li.is-active a:hover, .hero.is-link .tabs.is-toggle li.is-active a, .hero.is-link .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #2e63b8; } + .hero.is-link.is-bold { + background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); } + @media screen and (max-width: 768px) { + .hero.is-link.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); } } + .hero.is-info { + background-color: #209cee; + color: #fff; } + .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-info strong { + color: inherit; } + .hero.is-info .title { + color: #fff; } + .hero.is-info .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-info .subtitle a:not(.button), + .hero.is-info .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-info .navbar-menu { + background-color: #209cee; } } + .hero.is-info .navbar-item, + .hero.is-info .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-info a.navbar-item:hover, .hero.is-info a.navbar-item.is-active, + .hero.is-info .navbar-link:hover, + .hero.is-info .navbar-link.is-active { + background-color: #1190e3; + color: #fff; } + .hero.is-info .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-info .tabs a:hover { + opacity: 1; } + .hero.is-info .tabs li.is-active a { + opacity: 1; } + .hero.is-info .tabs.is-boxed a, .hero.is-info .tabs.is-toggle a { + color: #fff; } + .hero.is-info .tabs.is-boxed a:hover, .hero.is-info .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-info .tabs.is-boxed li.is-active a, .hero.is-info .tabs.is-boxed li.is-active a:hover, .hero.is-info .tabs.is-toggle li.is-active a, .hero.is-info .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #209cee; } + .hero.is-info.is-bold { + background-image: linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%); } + @media screen and (max-width: 768px) { + .hero.is-info.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%); } } + .hero.is-success { + background-color: #22c35b; + color: #fff; } + .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-success strong { + color: inherit; } + .hero.is-success .title { + color: #fff; } + .hero.is-success .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-success .subtitle a:not(.button), + .hero.is-success .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-success .navbar-menu { + background-color: #22c35b; } } + .hero.is-success .navbar-item, + .hero.is-success .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-success a.navbar-item:hover, .hero.is-success a.navbar-item.is-active, + .hero.is-success .navbar-link:hover, + .hero.is-success .navbar-link.is-active { + background-color: #1ead51; + color: #fff; } + .hero.is-success .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-success .tabs a:hover { + opacity: 1; } + .hero.is-success .tabs li.is-active a { + opacity: 1; } + .hero.is-success .tabs.is-boxed a, .hero.is-success .tabs.is-toggle a { + color: #fff; } + .hero.is-success .tabs.is-boxed a:hover, .hero.is-success .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-success .tabs.is-boxed li.is-active a, .hero.is-success .tabs.is-boxed li.is-active a:hover, .hero.is-success .tabs.is-toggle li.is-active a, .hero.is-success .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #22c35b; } + .hero.is-success.is-bold { + background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); } + @media screen and (max-width: 768px) { + .hero.is-success.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); } } + .hero.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-warning strong { + color: inherit; } + .hero.is-warning .title { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .subtitle { + color: rgba(0, 0, 0, 0.9); } + .hero.is-warning .subtitle a:not(.button), + .hero.is-warning .subtitle strong { + color: rgba(0, 0, 0, 0.7); } + @media screen and (max-width: 1055px) { + .hero.is-warning .navbar-menu { + background-color: #ffdd57; } } + .hero.is-warning .navbar-item, + .hero.is-warning .navbar-link { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning a.navbar-item:hover, .hero.is-warning a.navbar-item.is-active, + .hero.is-warning .navbar-link:hover, + .hero.is-warning .navbar-link.is-active { + background-color: #ffd83e; + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .tabs a { + color: rgba(0, 0, 0, 0.7); + opacity: 0.9; } + .hero.is-warning .tabs a:hover { + opacity: 1; } + .hero.is-warning .tabs li.is-active a { + opacity: 1; } + .hero.is-warning .tabs.is-boxed a, .hero.is-warning .tabs.is-toggle a { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .tabs.is-boxed a:hover, .hero.is-warning .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-warning .tabs.is-boxed li.is-active a, .hero.is-warning .tabs.is-boxed li.is-active a:hover, .hero.is-warning .tabs.is-toggle li.is-active a, .hero.is-warning .tabs.is-toggle li.is-active a:hover { + background-color: rgba(0, 0, 0, 0.7); + border-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .hero.is-warning.is-bold { + background-image: linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%); } + @media screen and (max-width: 768px) { + .hero.is-warning.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%); } } + .hero.is-danger { + background-color: #da0b00; + color: #fff; } + .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-danger strong { + color: inherit; } + .hero.is-danger .title { + color: #fff; } + .hero.is-danger .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-danger .subtitle a:not(.button), + .hero.is-danger .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-danger .navbar-menu { + background-color: #da0b00; } } + .hero.is-danger .navbar-item, + .hero.is-danger .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-danger a.navbar-item:hover, .hero.is-danger a.navbar-item.is-active, + .hero.is-danger .navbar-link:hover, + .hero.is-danger .navbar-link.is-active { + background-color: #c10a00; + color: #fff; } + .hero.is-danger .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-danger .tabs a:hover { + opacity: 1; } + .hero.is-danger .tabs li.is-active a { + opacity: 1; } + .hero.is-danger .tabs.is-boxed a, .hero.is-danger .tabs.is-toggle a { + color: #fff; } + .hero.is-danger .tabs.is-boxed a:hover, .hero.is-danger .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-danger .tabs.is-boxed li.is-active a, .hero.is-danger .tabs.is-boxed li.is-active a:hover, .hero.is-danger .tabs.is-toggle li.is-active a, .hero.is-danger .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #da0b00; } + .hero.is-danger.is-bold { + background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); } + @media screen and (max-width: 768px) { + .hero.is-danger.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); } } + .hero.is-small .hero-body, #documenter .docs-sidebar form.docs-search > input.hero .hero-body { + padding-bottom: 1.5rem; + padding-top: 1.5rem; } + @media screen and (min-width: 769px), print { + .hero.is-medium .hero-body { + padding-bottom: 9rem; + padding-top: 9rem; } } + @media screen and (min-width: 769px), print { + .hero.is-large .hero-body { + padding-bottom: 18rem; + padding-top: 18rem; } } + .hero.is-halfheight .hero-body, .hero.is-fullheight .hero-body, .hero.is-fullheight-with-navbar .hero-body { + align-items: center; + display: flex; } + .hero.is-halfheight .hero-body > .container, .hero.is-fullheight .hero-body > .container, .hero.is-fullheight-with-navbar .hero-body > .container { + flex-grow: 1; + flex-shrink: 1; } + .hero.is-halfheight { + min-height: 50vh; } + .hero.is-fullheight { + min-height: 100vh; } + +.hero-video { + overflow: hidden; } + .hero-video video { + left: 50%; + min-height: 100%; + min-width: 100%; + position: absolute; + top: 50%; + transform: translate3d(-50%, -50%, 0); } + .hero-video.is-transparent { + opacity: 0.3; } + @media screen and (max-width: 768px) { + .hero-video { + display: none; } } +.hero-buttons { + margin-top: 1.5rem; } + @media screen and (max-width: 768px) { + .hero-buttons .button { + display: flex; } + .hero-buttons .button:not(:last-child) { + margin-bottom: 0.75rem; } } + @media screen and (min-width: 769px), print { + .hero-buttons { + display: flex; + justify-content: center; } + .hero-buttons .button:not(:last-child) { + margin-right: 1.5rem; } } +.hero-head, +.hero-foot { + flex-grow: 0; + flex-shrink: 0; } + +.hero-body { + flex-grow: 1; + flex-shrink: 0; + padding: 3rem 1.5rem; } + +.section { + padding: 3rem 1.5rem; } + @media screen and (min-width: 1056px) { + .section.is-medium { + padding: 9rem 1.5rem; } + .section.is-large { + padding: 18rem 1.5rem; } } +.footer { + background-color: #fafafa; + padding: 3rem 1.5rem 6rem; } + +h1 .docs-heading-anchor, h1 .docs-heading-anchor:hover, h1 .docs-heading-anchor:visited, h2 .docs-heading-anchor, h2 .docs-heading-anchor:hover, h2 .docs-heading-anchor:visited, h3 .docs-heading-anchor, h3 .docs-heading-anchor:hover, h3 .docs-heading-anchor:visited, h4 .docs-heading-anchor, h4 .docs-heading-anchor:hover, h4 .docs-heading-anchor:visited, h5 .docs-heading-anchor, h5 .docs-heading-anchor:hover, h5 .docs-heading-anchor:visited, h6 .docs-heading-anchor, h6 .docs-heading-anchor:hover, h6 .docs-heading-anchor:visited { + color: #222222; } + +h1 .docs-heading-anchor-permalink, h2 .docs-heading-anchor-permalink, h3 .docs-heading-anchor-permalink, h4 .docs-heading-anchor-permalink, h5 .docs-heading-anchor-permalink, h6 .docs-heading-anchor-permalink { + visibility: hidden; + vertical-align: middle; + margin-left: 0.5em; + font-size: 0.7rem; } + h1 .docs-heading-anchor-permalink::before, h2 .docs-heading-anchor-permalink::before, h3 .docs-heading-anchor-permalink::before, h4 .docs-heading-anchor-permalink::before, h5 .docs-heading-anchor-permalink::before, h6 .docs-heading-anchor-permalink::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f0c1"; } + +h1:hover .docs-heading-anchor-permalink, h2:hover .docs-heading-anchor-permalink, h3:hover .docs-heading-anchor-permalink, h4:hover .docs-heading-anchor-permalink, h5:hover .docs-heading-anchor-permalink, h6:hover .docs-heading-anchor-permalink { + visibility: visible; } + +.docs-dark-only { + display: none !important; } + +pre { + position: relative; + overflow: hidden; } + pre code, pre code.hljs { + padding: 0 0.75rem !important; + overflow: auto; + display: block; } + pre code:first-of-type, pre code.hljs:first-of-type { + padding-top: 0.5rem !important; } + pre code:last-of-type, pre code.hljs:last-of-type { + padding-bottom: 0.5rem !important; } + pre .copy-button { + opacity: 0.2; + transition: opacity 0.2s; + position: absolute; + right: 0em; + top: 0em; + padding: 0.5em; + width: 2.5em; + height: 2.5em; + background: transparent; + border: none; + font-family: "Font Awesome 5 Free"; + color: #222222; + 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: 0.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 0.75rem; + position: relative; } + .admonition-header:before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + margin-right: 0.75rem; + content: "\f06a"; } + +.admonition-body { + color: #222222; + padding: 0.5rem 0.75rem; } + .admonition-body pre { + background-color: whitesmoke; } + .admonition-body code { + background-color: rgba(0, 0, 0, 0.05); } + +.docstring { + margin-bottom: 1em; + background-color: transparent; + border: 1px solid #dbdbdb; + box-shadow: 2px 2px 3px rgba(10, 10, 10, 0.1); + max-width: 100%; } + .docstring > header { + display: flex; + flex-grow: 1; + align-items: stretch; + padding: 0.5rem 0.75rem; + background-color: whitesmoke; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + box-shadow: none; + border-bottom: 1px solid #dbdbdb; } + .docstring > header code { + background-color: transparent; } + .docstring > header .docstring-binding { + margin-right: 0.3em; } + .docstring > header .docstring-category { + margin-left: 0.3em; } + .docstring > section { + position: relative; + padding: 0.75rem 0.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: 0.375rem; + bottom: 0.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: white; } + +.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: #222222; } + +.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: #222222; } + +.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; } + +/* This file contain the overall layout. + * + * The main container is
        that is identified by id #documenter. + */ +#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: white; + border-bottom: 1px solid #dbdbdb; + z-index: 2; + min-height: 4rem; + margin-bottom: 1rem; + display: flex; } + #documenter .docs-main header.docs-navbar .breadcrumb { + flex-grow: 1; } + #documenter .docs-main header.docs-navbar .docs-right { + display: flex; + white-space: nowrap; } + #documenter .docs-main header.docs-navbar .docs-right .docs-icon, #documenter .docs-main header.docs-navbar .docs-right .docs-label, #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + display: inline-block; } + #documenter .docs-main header.docs-navbar .docs-right .docs-label { + padding: 0; + margin-left: 0.3em; } + #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button { + margin: auto 0 auto 1rem; } + #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + font-size: 1.5rem; + margin: auto 0 auto 1rem; } + #documenter .docs-main header.docs-navbar > * { + margin: auto 0; } + @media screen and (max-width: 1055px) { + #documenter .docs-main header.docs-navbar { + position: sticky; + top: 0; + padding: 0 1rem; + /* For Headroom.js */ + transition-property: top, box-shadow; + -webkit-transition-property: top, box-shadow; + /* Safari */ + transition-duration: 0.3s; + -webkit-transition-duration: 0.3s; + /* Safari */ } + #documenter .docs-main header.docs-navbar.headroom--not-top { + box-shadow: 0.2rem 0rem 0.4rem #bbb; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } + #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; + /* Safari */ } } +#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: whitesmoke; + 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; + /* Setting up a nicer theme style for the scrollbar */ } + #documenter .docs-sidebar.visible { + left: 0; + box-shadow: 0.4rem 0rem 0.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; + /* Managing collapsible submenus */ } + #documenter .docs-sidebar ul.docs-menu > li > .tocitem { + font-weight: bold; } + #documenter .docs-sidebar ul.docs-menu > li li { + font-size: 0.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: 0.75rem; + margin-left: 1rem; + margin-top: auto; + margin-bottom: auto; } + #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f054"; } + #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before { + content: "\f078"; } + #documenter .docs-sidebar ul.docs-menu .tocitem { + display: block; + padding: 0.5rem 0.5rem; } + #documenter .docs-sidebar ul.docs-menu .tocitem, #documenter .docs-sidebar ul.docs-menu .tocitem:hover { + color: #0a0a0a; + background: whitesmoke; } + #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: white; } + #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover { + background-color: white; + 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: 0.85rem; + border-left: none; + margin-left: 0; + margin-top: 0.5rem; } + #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem { + width: 100%; + padding: 0; } + #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before { + content: "⚬"; + margin-right: 0.4em; } + #documenter .docs-sidebar form.docs-search { + margin: auto; + margin-top: 0.5rem; + margin-bottom: 0.5rem; } + #documenter .docs-sidebar form.docs-search > input { + width: 14.4rem; } + @media screen and (min-width: 1056px) { + #documenter .docs-sidebar ul.docs-menu { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar { + width: .3rem; + background: none; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #e0e0e0; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover { + background: #cccccc; } } + @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: #cccccc; } } +#documenter .docs-main #documenter-search-info { + margin-bottom: 1rem; } + +#documenter .docs-main #documenter-search-results { + list-style-type: circle; + list-style-position: outside; } + #documenter .docs-main #documenter-search-results li { + margin-left: 2rem; } + #documenter .docs-main #documenter-search-results .docs-highlight { + background-color: yellow; } + +.ansi span.sgr1 { + font-weight: bolder; } + +.ansi span.sgr2 { + font-weight: lighter; } + +.ansi span.sgr3 { + font-style: italic; } + +.ansi span.sgr4 { + text-decoration: underline; } + +.ansi span.sgr7 { + color: white; + background-color: #222222; } + +.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: whitesmoke; } + +.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: whitesmoke; } + +code.language-julia-repl > span.hljs-meta { + color: #066f00; + font-weight: bolder; } + +/*! + Theme: Default + Description: Original highlight.js style + Author: (c) Ivan Sagalaev + Maintainer: @highlightjs/core-team + Website: https://highlightjs.org/ + License: see project LICENSE + Touched: 2021 +*/ +/* +This is left on purpose making default.css the single file that can be lifted +as-is from the repository directly without the need for a build step + +Typically this "required" baseline CSS is added by `makestuff.js` during build. +*/ +pre code.hljs { + display: block; + overflow-x: auto; } + +code.hljs { + padding: 3px 5px; } + +/* end baseline CSS */ +.hljs { + background: #F0F0F0; + color: #444; } + +/* Base color: saturation 0; */ +.hljs-subst { + /* default */ } + +/* purposely ignored */ +.hljs-comment { + color: #888888; } + +.hljs-tag, +.hljs-punctuation { + color: #444a; } + +.hljs-tag .hljs-name, +.hljs-tag .hljs-attr { + color: #444; } + +.hljs-keyword, +.hljs-attribute, +.hljs-selector-tag, +.hljs-meta .hljs-keyword, +.hljs-doctag, +.hljs-name { + font-weight: bold; } + +/* User color: hue: 0 */ +.hljs-type, +.hljs-string, +.hljs-number, +.hljs-selector-id, +.hljs-selector-class, +.hljs-quote, +.hljs-template-tag, +.hljs-deletion { + color: #880000; } + +.hljs-title, +.hljs-section { + color: #880000; + font-weight: bold; } + +.hljs-regexp, +.hljs-symbol, +.hljs-variable, +.hljs-template-variable, +.hljs-link, +.hljs-selector-attr, +.hljs-operator, +.hljs-selector-pseudo { + color: #BC6060; } + +/* Language color: hue: 90; */ +.hljs-literal { + color: #78A960; } + +.hljs-built_in, +.hljs-bullet, +.hljs-code, +.hljs-addition { + color: #397300; } + +/* Meta color: hue: 200 */ +.hljs-meta { + color: #1f7199; } + +.hljs-meta .hljs-string { + color: #4d99bf; } + +/* Misc effects */ +.hljs-emphasis { + font-style: italic; } + +.hljs-strong { + font-weight: bold; } diff --git a/previews/PR345/assets/themeswap.js b/previews/PR345/assets/themeswap.js new file mode 100644 index 000000000..c58e993e3 --- /dev/null +++ b/previews/PR345/assets/themeswap.js @@ -0,0 +1,66 @@ +// Small function to quickly swap out themes. Gets put into the tag.. +function set_theme_from_local_storage() { + // Intialize the theme to null, which means default + var theme = null; + // If the browser supports the localstorage and is not disabled then try to get the + // documenter theme + if(window.localStorage != null) { + // Get the user-picked theme from localStorage. May be `null`, which means the default + // theme. + theme = window.localStorage.getItem("documenter-theme"); + } + // Check if the browser supports user color preference + var darkPreference = false; + // Check if the users preference is for dark color scheme + if(window.matchMedia('(prefers-color-scheme: dark)').matches === true) { + darkPreference = true; + } + // Initialize a few variables for the loop: + // + // - active: will contain the index of the theme that should be active. Note that there + // is no guarantee that localStorage contains sane values. If `active` stays `null` + // we either could not find the theme or it is the default (primary) theme anyway. + // Either way, we then need to stick to the primary theme. + // + // - disabled: style sheets that should be disabled (i.e. all the theme style sheets + // that are not the currently active theme) + var active = null; var disabled = []; var darkTheme = null; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + // The tag of each style sheet is expected to have a data-theme-name attribute + // which must contain the name of the theme. The names in localStorage much match this. + var themename = ss.ownerNode.getAttribute("data-theme-name"); + // attribute not set => non-theme stylesheet => ignore + if(themename === null) continue; + // To distinguish the default (primary) theme, it needs to have the data-theme-primary + // attribute set. + var isprimary = (ss.ownerNode.getAttribute("data-theme-primary") !== null); + // Check if the theme is primary dark theme + var isDarkTheme = (ss.ownerNode.getAttribute("data-theme-primary-dark") !== null); + // If ss is for dark theme then set the value of darkTheme to the name of the theme + if(isDarkTheme) darkTheme = themename; + // If we find a matching theme (and it's not the default), we'll set active to non-null + if(themename === theme) active = i; + // Store the style sheets of inactive themes so that we could disable them + if(themename !== theme) disabled.push(ss); + } + if(active !== null) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + theme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + else if(darkTheme !== null && darkPreference === true) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + darkTheme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + if (ss.ownerNode.getAttribute("data-theme-name") !== darkTheme) { + ss.disabled = true; + } + }); + } +} +set_theme_from_local_storage(); diff --git a/previews/PR345/assets/warner.js b/previews/PR345/assets/warner.js new file mode 100644 index 000000000..5531c8851 --- /dev/null +++ b/previews/PR345/assets/warner.js @@ -0,0 +1,49 @@ +function maybeAddWarning () { + // DOCUMENTER_NEWEST is defined in versions.js, DOCUMENTER_CURRENT_VERSION and DOCUMENTER_STABLE + // in siteinfo.js. + // If either of these are undefined something went horribly wrong, so we abort. + if ( + window.DOCUMENTER_NEWEST === undefined || + window.DOCUMENTER_CURRENT_VERSION === undefined || + window.DOCUMENTER_STABLE === undefined + ) { + return + }; + + // Current version is not a version number, so we can't tell if it's the newest version. Abort. + if (!/v(\d+\.)*\d+/.test(window.DOCUMENTER_CURRENT_VERSION)) { + return + }; + + // Current version is newest version, so no need to add a warning. + if (window.DOCUMENTER_NEWEST === window.DOCUMENTER_CURRENT_VERSION) { + return + }; + + // Add a noindex meta tag (unless one exists) so that search engines don't index this version of the docs. + if (document.body.querySelector('meta[name="robots"]') === null) { + const meta = document.createElement('meta'); + meta.name = 'robots'; + meta.content = 'noindex'; + + document.getElementsByTagName('head')[0].appendChild(meta); + }; + + const div = document.createElement('div'); + div.classList.add('outdated-warning-overlay'); + const closer = document.createElement('button'); + closer.classList.add('outdated-warning-closer', 'delete'); + closer.addEventListener('click', function () { + document.body.removeChild(div); + }); + const href = window.documenterBaseURL + '/../' + window.DOCUMENTER_STABLE; + div.innerHTML = 'This documentation is not for the latest stable release, but for either the development version or an older release.
        Click here to go to the documentation for the latest stable release.'; + div.appendChild(closer); + document.body.appendChild(div); +}; + +if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', maybeAddWarning); +} else { + maybeAddWarning(); +}; diff --git a/previews/PR345/boundary_conditions/index.html b/previews/PR345/boundary_conditions/index.html new file mode 100644 index 000000000..5636cf73f --- /dev/null +++ b/previews/PR345/boundary_conditions/index.html @@ -0,0 +1,2 @@ + +Boundary conditions · SpeedyWeather.jl diff --git a/previews/PR345/conventions/index.html b/previews/PR345/conventions/index.html new file mode 100644 index 000000000..974885931 --- /dev/null +++ b/previews/PR345/conventions/index.html @@ -0,0 +1,12 @@ + +Style and convention guide · SpeedyWeather.jl

        Style and convention guide

        In SpeedyWeather.jl we've been following the several conventions that are documented here.

        Variable naming

        The prognostic variables in spectral space are called

            vor         # Vorticity of horizontal wind field
        +    div         # Divergence of horizontal wind field
        +    temp        # Absolute temperature [K]
        +    pres_surf   # Logarithm of surface pressure [log(Pa)]
        +    humid       # Specific humidity [g/kg]

        their transforms into grid-point space get a _grid suffix, their tendencies a _tend suffix. Further derived diagnostic dynamic variables are

            u
        +    v
        +    geopot
        +    ...

        Preallocation

        All arrays representing variables are preallocated and grouped into two structs

            Prog::PrognosticVariables
        +    Diag::DiagnosticVariables

        The Diag struct contains further structs which represent the grid-point transformations of the prognostic variables and their tendencies.

            gridvars::GridVariables
        +    tendencies::Tendencies
        +    ...

        Constant arrays are grouped into several structs

        Boundaries

        Julian conventions

        We follow Julia's style guide and highlight here some important aspects of it.

        • Bang (!) convention. A function func does not change its input arguments, however, func! does.

        Hence, func! is often the in-place version of func, avoiding as much memory allocation as possible and often changing its first argument, e.g. func!(out,in) so that argument in is used to calculate out which has been preallocated before function call.

        • Number format flexibility. Numeric literals such as 2.0 or 1/3 are only used in the model setup

        but avoided throughout the code to obtain a fully number format-flexible package using the number format NF as a compile-time variable throughout the code. This often leads to overly specific code whereas a Real would generally suffice. However, this is done to avoid any implicit type conversions.

        diff --git a/previews/PR345/development/index.html b/previews/PR345/development/index.html new file mode 100644 index 000000000..f365bd2e7 --- /dev/null +++ b/previews/PR345/development/index.html @@ -0,0 +1,3 @@ + +Development notes · SpeedyWeather.jl

        Development notes

        To run tests, from the path of your local clone of the repository do:

        julia --project=. -e 'import Pkg; Pkg.test()'

        To install dependencies:

        julia --project -e 'import Pkg; Pkg.instantiate()`

        then opening:

        julia --project

        you are able to using SpeedyWeather.

        To generate the docs:

        julia --project=docs -e 'import Pkg; Pkg.develop(path="."); Pkg.instantiate()'
        +julia --project=docs docs/make.jl

        If the docs are generated successfully, you view them by opening docs/build/index.html in your favorite browser.

        diff --git a/previews/PR345/dynamical_core/index.html b/previews/PR345/dynamical_core/index.html new file mode 100644 index 000000000..3e5b2e298 --- /dev/null +++ b/previews/PR345/dynamical_core/index.html @@ -0,0 +1,21 @@ + +Dynamical core · SpeedyWeather.jl

        Dynamical core

        A mathematical and implementation-specific description of the dynamical core used in SpeedyWeather.jl. We start by describing the barotropic vorticity equations which is one set of equations that SpeedyWeather.jl can solve (see How to run SpeedyWeather.jl) as many details therein also apply to the Shallow water equations and Primitive equations explained thereafter.

        The dynamical core presented here largely follows the idealized models with spectral dynamics developed at the Geophysical Fluid Dynamics Laboratory[1]: A barotropic vorticity model[2], a shallow water model [3] and a primitive equation model[4].

        Barotropic vorticity equation

        The barotropic vorticity equation is the prognostic equation that describes the time evolution of relative vorticity $\zeta$ with advection, Coriolis force and diffusion in a single global layer on the sphere.

        \[\frac{\partial \zeta}{\partial t} + \nabla \cdot (\mathbf{u}(\zeta + f)) = +\nabla \times \mathbf{F} + (-1)^{n+1}\nu\nabla^{2n}\zeta\]

        with time $t$, velocity vector $\mathbf{u} = (u, v)$, Coriolis parameter $f$, and hyperdiffusion $(-1)^{n+1} \nu \nabla^{2n} \zeta$ ($n$ is the hyperdiffusion order; see Horizontal diffusion). We also include a forcing vector $\mathbf{F} = (F_u,F_v)$ which acts on the zonal velocity $u$ and the meridional velocity $v$ and hence its curl $\nabla \times \mathbf{F}$ is a tendency for relative vorticity $\zeta$.

        Starting with some relative vorticity $\zeta$, the Laplacian is inverted to obtain the stream function $\Psi$

        \[\Psi = \nabla^{-2}\zeta\]

        The zonal velocity $u$ and meridional velocity $v$ are then the (negative) meridional gradient and zonal gradient of $\Psi$

        \[\begin{aligned} +u &= -\frac{1}{R} \frac{\partial \Psi}{\partial \theta} \\ +v &= \frac{1}{R\cos(\theta)} \frac{\partial \Psi}{\partial \phi} \\ +\end{aligned}\]

        which is described in Derivatives in spherical coordinates.

        Algorithm

        We briefly outline the algorithm that SpeedyWeather.jl uses in order to integrate the barotropic vorticity equation. As an intial step

        0. Start with initial conditions of $\zeta_{lm}$ in spectral space and transform this model state to grid-point space:

        • Invert the Laplacian to obtain the stream function $\Psi_{lm}$ in spectral space
        • obtain zonal velocity $(\cos(\theta)u)_{lm}$ through a Meridional derivative
        • obtain meridional velocity $(\cos(\theta)v)_{lm}$ through a Zonal derivative
        • Transform zonal and meridional velocity $(\cos(\theta)u)_{lm}$, $(\cos(\theta)v)_{lm}$ to grid-point space
        • Unscale the $\cos(\theta)$ factor to obtain $u,v$
        • Transform $\zeta_{lm}$ to $\zeta$ in grid-point space

        Now loop over

        1. Compute the forcing vector $\mathbf{F} = (F_u,F_v)$ for $u$ and $v$
        2. Multiply $u,v$ with $\zeta+f$ in grid-point space
        3. Add $A = F_u + v(\zeta + f)$ and $B = F_v - u(\zeta + f)$
        4. Transform these vector components to spectral space $A_{lm}$, $B_{lm}$
        5. Compute the curl of $(A,B)_{lm}$ in spectral space which is the tendency of $\zeta_{lm}$
        6. Compute the Horizontal diffusion based on that tendency
        7. Compute a leapfrog time step as described in Time integration
        8. Transform the spectral state of $\zeta_{lm}$ to grid-point $u,v,\zeta$ as described in 0.
        9. Possibly do some output
        10. Repeat from 1.

        Shallow water equations

        \[\begin{aligned} +\frac{\partial \zeta}{\partial t} + \nabla \cdot (\mathbf{u}(\zeta + f)) &= (-1)^{n+1}\nu\nabla^{2n}\zeta, \\ +\frac{\partial \mathcal{D}}{\partial t} - \nabla \times (\mathbf{u}(\zeta + f)) &= -\nabla^2(\tfrac{1}{2}(u^2 + v^2) + g\eta) + (-1)^{n+1}\nu\nabla^{2n}\mathcal{D}, \\ +\frac{\partial \eta}{\partial t} + \nabla \cdot (\mathbf{u}h) &= 0, +\end{aligned}\]

        where $\zeta = \hat{\mathbf{z}} \cdot (\nabla \times \mathbf{u})$ is the relative vorticity, $\mathcal{D} = \nabla \cdot \mathbf{u}$ the divergence, and $\eta$ the deviation from the fluid's rest height.

        Note: more to come...

        Primitive equations

        The primitive equations solved by SpeedyWeather.jl are

        \[\begin{aligned} +\partial_t u &= ... \\ +\partial_t v &= ... \\ +\partial_t T &= ... \\ +\partial_t Q &= ... +\end{aligned}\]

        Note: more to come...

        Horizontal diffusion

        In SpeedyWeather.jl we use hyerdiffusion through an $n$-th power Laplacian $(-1)^{n+1}\nabla^{2n}$ (hyper when $n>1$) which can be implemented as a multiplication of the spectral coefficients $\Psi_{lm}$ with $(-l(l+1))^nR^{-2n}$ (see spectral Laplacian) It is therefore computationally not more expensive to apply hyperdiffusion over diffusion as the $(-l(l+1))^nR^{-2n}$ can be precomputed. Note the sign change $(-1)^{n+1}$ here is such that the dissipative nature of the diffusion operator is retained for $n$ odd and even.

        In SpeedyWeather.jl the diffusion is applied implicitly. For that, consider a leapfrog scheme with time step $\Delta t$ of variable $\zeta$ to obtain from time steps $i-1$ and $i$, the next time step $i+1$

        \[\zeta_{i+1} = \zeta_{i-1} + 2\Delta t d\zeta,\]

        with $d\zeta$ being some tendency evaluated from $\zeta_i$. Now we want to add a diffusion term $(-1)^{n+1}\nu \nabla^{2n}\zeta$ with viscosity $\nu$, wich however, is implicitly calculated from $\zeta_{i+1}$, then

        \[\zeta_{i+1} = \zeta_{i-1} + 2\Delta t (d\zeta + (-1)^{n+1} \nu\nabla^{2n}\zeta_{i+1})\]

        As the application of $(-1)^{n+1}\nu\nabla^{2n}$ is, for every spectral mode, equivalent to a multiplication of a constant, we can rewrite this to

        \[\zeta_{i+1} = \frac{\zeta_{i-1} + 2\Delta t d\zeta}{1 - 2\Delta (-1)^{n+1}\nu\nabla^{2n}},\]

        and expand the numerator to

        \[\zeta_{i+1} = \zeta_{i-1} + 2\Delta t \frac{d\zeta + (-1)^{n+1} \nu\nabla^{2n}\zeta_{i-1}}{1 - 2\Delta t (-1)^{n+1}\nu \nabla^{2n}},\]

        Hence the diffusion can be applied implicitly by updating the tendency $d\zeta$ as

        \[d\zeta \to \frac{d\zeta + (-1)^{n+1}\nu\nabla^{2n}\zeta_{i-1}}{1 - 2\Delta t \nu \nabla^{2n}}\]

        which only depends on $\zeta_{i-1}$. Now let $D_\text{explicit} = (-1)^{n+1}\nu\nabla^{2n}$ be the explicit part and $D_\text{implicit} = 1 - (-1)^{n+1} 2\Delta t \nu\nabla^{2n}$ the implicit part. Both parts can be precomputed and are $D_\text{implicit} = 1 - 2\Delta t \nu\nabla^{2n}$ the implicit part. Both parts can be precomputed and are only an element-wise multiplication in spectral space. For every spectral harmonic $l,m$ we do

        \[d\zeta \to D_\text{implicit}^{-1}(d\zeta + D_\text{explicit}\zeta_{i-1}).\]

        Hence 2 multiplications and 1 subtraction with precomputed constants. However, we will normalize the (hyper-)Laplacians as described in the following. This also will take care of the alternating sign such that the diffusion operation is dissipative regardless the power $n$.

        Normalization of diffusion

        In physics, the Laplace operator $\nabla^2$ is often used to represent diffusion due to viscosity in a fluid. In that case, the viscosity coefficient is $\nu$ of units $\text{m}^2\text{s}^{-1}$ and the full operator reads as $\nu \nabla^2$ with units $(\text{m}^2\text{s}^{-1})(\text{m}^{-2}) = \text{s}^{-1}$. This motivates us to normalize the Laplace operator by a constant of units $\text{m}^{-2}$ and the viscosity coefficient by its inverse such that the viscosity coefficient becomes a damping timescale of unit $\text{s}^{-1}$. Given the application in spectral space we decide to normalize by the largest eigenvalue $-l_\text{max}(l_\text{max}+1)$ such that all entries in the discrete spectral Laplace operator are in $[0,1]$. This also has the effect that the alternating sign drops out, such that higher wavenumbers are always dampened and not amplified. The normalized viscosity coefficient $\nu^* = l_\text{max}(l_\text{max}+1)\nu$ (always positive) is therefore reinterpreted as the (inverse) time scale at which the highest wavenumber is dampened to zero due to diffusion. Together we have

        \[D^\text{explicit}_{l,m} = -\nu^* \frac{l(l+1)}{l_\text{max}(l_\text{max}+1)}\]

        and the hyper-Laplacian of power $n$ follows as

        \[D^\text{explicit,n}_{l,m} = -\nu^* \left(\frac{l(l+1)}{l_\text{max}(l_\text{max}+1)}\right)^n\]

        and the implicit part is accordingly $D^\text{implicit,n}_{l,m} = 1 - 2\Delta t D^\text{explicit,n}_{l,m}$.

        Radius scaling

        SpeedyWeather.jl uses a scaling for vorticity $\zeta$ and stream function $\Psi$ that is

        \[\tilde{\zeta} = \zeta R, \tilde{\Psi} = \Psi R^{-1}.\]

        In the barotropic voriticity equation model the inversion of the Laplcians in order to obtain $\Psi$ from $\zeta$ therefore becomes

        \[\tilde{\zeta} = \tilde{\nabla}^2 \tilde{\Psi}\]

        where the dimensionless gradients simply omit the scaling with $1/R$, $\tilde{\nabla} = R\nabla$. The Barotropic vorticity equation scaled with $R^2$ is

        \[\partial_{\tilde{t}}\tilde{\zeta} + \tilde{\nabla} \cdot (\mathbf{u}(\tilde{\zeta} + \tilde{f})) = \tilde{\nu}\tilde{\nabla}^{2n}\tilde{\zeta}\]

        with

        • $\tilde{t} = tR^{-1}$, the scaled time $t$
        • $\mathbf{u} = (u,v)$, the velocity vector (no scaling applied)
        • $\tilde{f} = fR$, the scaled Coriolis parameter $f$
        • $\tilde{\nu} = \nu^* R$, the scaled viscosity $\nu^*$, which itself is normalized to a damping time scale, see Normalization of diffusion.

        Scaled shallow water equations

        Similar to the scaled barotropic vorticity equations, the scaled shallow water equations scale the vorticity and the divergence equation with $R^2$, but the continuity equation with $R$

        \[\begin{aligned} +\frac{\partial \tilde{\zeta}}{\partial \tilde{t}} + \tilde{\nabla} \cdot (\mathbf{u}(\tilde{\zeta} + \tilde{f})) &= +\tilde{\nu}\tilde{\nabla}^{2n}\tilde{\zeta} \\ +\frac{\partial \tilde{\mathcal{D}}}{\partial \tilde{t}} - \tilde{\nabla} \times (\mathbf{u}(\tilde{\zeta} + \tilde{f})) &= +-\tilde{\nabla}^2\left(\tfrac{1}{2}(u^2 + v^2) + g\eta \right) + \tilde{\nu}\tilde{\nabla}^{2n}\tilde{\mathcal{D}} \\ +\frac{\partial \eta}{\partial \tilde{t}} + \tilde{\nabla} \cdot (\mathbf{u}h) &= 0. +\end{aligned}\]

        Time integration

        SpeedyWeather.jl uses a leapfrog time scheme with a Robert's and William's filter to dampen the computational mode and achieve 3rd order accuracy.

        Oscillation equation

        \[\frac{dF}{dt} = i\omega F\]

        References

        diff --git a/previews/PR345/extending/index.html b/previews/PR345/extending/index.html new file mode 100644 index 000000000..bc881d76c --- /dev/null +++ b/previews/PR345/extending/index.html @@ -0,0 +1,2 @@ + +Extending SpeedyWeather · SpeedyWeather.jl diff --git a/previews/PR345/functions/index.html b/previews/PR345/functions/index.html new file mode 100644 index 000000000..94d822eed --- /dev/null +++ b/previews/PR345/functions/index.html @@ -0,0 +1,180 @@ + +Function and type index · SpeedyWeather.jl

        Function and type index

        Parameters and constants

        Missing docstring.

        Missing docstring for SpeedyWeather.Parameters. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for SpeedyWeather.Constants. Check Documenter's build log for details.

        Boundaries and boundary conditions

        Missing docstring.

        Missing docstring for SpeedyWeather.Boundaries. Check Documenter's build log for details.

        Spherical harmonic transform

        Missing docstring.

        Missing docstring for SpeedyWeather.GeoSpectral. Check Documenter's build log for details.

        SpeedyWeather.SpeedyTransforms.spectralFunction
        alms = spectral(    map::AbstractMatrix;
        +                    Grid::Type{<:AbstractGrid}=DEFAULT_GRID,
        +                    kwargs...)

        Converts map to grid(map) to execute spectral(map::AbstractGrid;kwargs...).

        source
        alms = spectral(    map::AbstractGrid;
        +                    Grid::Type{<:AbstractGrid}=DEFAULT_GRID,
        +                    kwargs...)

        Converts map to Grid(map) to execute spectral(map::AbstractGrid;kwargs...).

        source
        alms = spectral(    map::AbstractMatrix;
        +                    Grid::Type{<:AbstractGrid}=DEFAULT_GRID,
        +                    kwargs...)

        Spectral transform (grid to spectral) map to grid(map) to execute spectral(map::AbstractGrid;kwargs...).

        source
        SpeedyWeather.SpeedyTransforms.spectral!Function
        spectral!(  alms::LowerTriangularMatrix,
        +            map::AbstractGrid,
        +            S::SpectralTransform)

        Spectral transform (grid to spectral space) from the gridded field map on a grid<:AbstractGrid to a LowerTriangularMatrix of spherical harmonic coefficients alms. Uses FFT in the zonal direction, and a Legendre Transform in the meridional direction exploiting symmetries. The spectral transform is number format-flexible as long as the parametric types of map, alms, S are identical. The spectral transform is grid-flexible as long as the typeof(map)<:AbstractGrid. Uses the precalculated arrays, FFT plans and other constants in the SpectralTransform struct S.

        source
        SpeedyWeather.SpeedyTransforms.griddedFunction
        map = gridded(  alms::AbstractMatrix;
        +                recompute_legendre::Bool=true,
        +                grid::Type{<:AbstractGrid}=DEFAULT_GRID)

        Spectral transform (spectral to grid space) from spherical coefficients alms to a newly allocated gridded field map. Based on the size of alms the grid type grid, the spatial resolution is retrieved based on the truncation defined for grid. SpectralTransform struct S is allocated to execute gridded(alms,S).

        source
        map = gridded(  alms::AbstractMatrix,
        +                S::SpectralTransform)

        Spectral transform (spectral to grid space) from spherical coefficients alms to a newly allocated gridded field map with precalculated properties based on the SpectralTransform struct S. alms is converted to a LowerTriangularMatrix to execute the in-place gridded!.

        source
        SpeedyWeather.SpeedyTransforms.gridded!Function
        gridded!(
        +    diagn::DiagnosticVariables,
        +    progn::PrognosticVariables,
        +    lf::Int64,
        +    model::SpeedyWeather.ModelSetup
        +)
        +

        Propagate the spectral state of progn to diagn using time step/leapfrog index lf. Function barrier that calls gridded! for the respective model.

        source
        gridded!(
        +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
        +    progn::SpeedyWeather.PrognosticLayerTimesteps,
        +    lf::Int64,
        +    model::Barotropic
        +)
        +

        Propagate the spectral state of the prognostic variables progn to the diagnostic variables in diagn for the barotropic vorticity model. Updates grid vorticity, spectral stream function and spectral and grid velocities u,v.

        source
        gridded!(
        +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
        +    progn::SpeedyWeather.PrognosticLayerTimesteps,
        +    lf::Int64,
        +    model::ShallowWater
        +)
        +

        Propagate the spectral state of the prognostic variables progn to the diagnostic variables in diagn for the shallow water model. Updates grid vorticity, grid divergence, grid interface displacement (pres_grid) and the velocities u,v.

        source
        gridded!(
        +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
        +    progn::SpeedyWeather.PrognosticLayerTimesteps,
        +    lf::Int64,
        +    model::PrimitiveEquation
        +)
        +

        Propagate the spectral state of the prognostic variables progn to the diagnostic variables in diagn for primitive equation models. Updates grid vorticity, grid divergence, grid temperature, pressure (pres_grid) and the velocities u,v.

        source
        gridded!(   map::AbstractGrid,
        +            alms::LowerTriangularMatrix,
        +            S::SpectralTransform)

        Spectral transform (spectral to grid) of the spherical harmonic coefficients alms to a gridded field map. The spectral transform is number format-flexible as long as the parametric types of map, alms, S are identical. The spectral transform is grid-flexible as long as the typeof(map)<:AbstractGrid. Uses the precalculated arrays, FFT plans and other constants in the SpectralTransform struct S.

        source
        Missing docstring.

        Missing docstring for SpeedyWeather.triangular_truncation. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for SpeedyWeather.roundup_fft. Check Documenter's build log for details.

        SpeedyWeather.SpeedyTransforms.spectral_truncationFunction
        alms_trunc = spectral_truncation(alms,trunc)

        Returns a spectral coefficient matrix alms_trunc that is truncated from alms to the size (trunc+1)². alms_trunc only contains those coefficient of alms for which m,l ≤ trunc, and l ≥ m are zero anyway. If trunc is larger than the implicit truncation in alms obtained from its size than spectral_interpolation is automatically called instead, returning alms_interp, a coefficient matrix that is larger than alms with padded zero coefficients.

        source
        SpeedyWeather.SpeedyTransforms.spectral_truncation!Function
        spectral_truncation!(alms::AbstractMatrix,ltrunc::Integer,mtrunc::Integer)

        Truncate spectral coefficients alms in-place by setting (a) the upper right triangle to zero and (b) all coefficients for which the degree l is larger than the truncation ltrunc or order m larger than the truncaction mtrunc.

        source
        spectral_truncation!(alms::LowerTriangularMatrix,ltrunc::Integer,mtrunc::Integer)

        Truncate spectral coefficients alms in-place by setting all coefficients for which the degree l is larger than the truncation ltrunc or order m larger than the truncaction mtrunc. Similar to spectral_truncation!(::AbstractMatrix, ...) but skips the upper triangle which is zero by design for LowerTriangularMatrix.

        source
        spectral_truncation!(alms,trunc)

        Truncate spectral coefficients alms in-place by setting (a) the upper right triangle to zero and (b) all coefficients for which the degree l is larger than the truncation trunc.

        source
        spectral_truncation!(alms)

        Truncate spectral coefficients alms in-place by setting the upper right triangle to zero. This is to enforce that all coefficients for which the degree l is larger than order m are zero.

        source
        Missing docstring.

        Missing docstring for SpeedyWeather.spectral_interpolation!. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for SpeedyWeather.get_legendre_polynomials!. Check Documenter's build log for details.

        SpeedyWeather.SpeedyTransforms.∇²!Function
        ∇²!(    ∇²alms::LowerTriangularMatrix,
        +        alms::LowerTriangularMatrix,
        +        S::SpectralTransform;
        +        add::Bool=false,
        +        flipsign::Bool=false,
        +        inverse::Bool=false)

        Laplace operator ∇² applied to the spectral coefficients alms in spherical coordinates. The radius R is omitted in the eigenvalues which are precomputed in S. ∇²! is the in-place version which directly stores the output in the first argument ∇²alms.

        Keyword arguments

        • add=true adds the ∇²(alms) to the output
        • flipsign=true computes -∇²(alms) instead
        • inverse=true computes ∇⁻²(alms) instead

        Default is add=false, flipsign=false, inverse=false. These options can be combined.

        source
        Missing docstring.

        Missing docstring for SpeedyWeather.∇². Check Documenter's build log for details.

        SpeedyWeather.SpeedyTransforms.∇⁻²!Function
        ∇⁻²!(   ∇⁻²alms::LowerTriangularMatrix,
        +        alms::LowerTriangularMatrix,
        +        S::SpectralTransform;
        +        add::Bool=false,
        +        flipsign::Bool=false)

        Calls ∇²!(∇⁻²alms, alms, S; add, flipsign, inverse=true).

        source
        Missing docstring.

        Missing docstring for SpeedyWeather.∇⁻². Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for SpeedyWeather.gradient_latitude!. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for SpeedyWeather.gradient_latitude. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for SpeedyWeather.gradient_longitude!. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for SpeedyWeather.gradient_longitude. Check Documenter's build log for details.

        SpeedyWeather.SpeedyTransforms.divergence!Function
        divergence!(div::LowerTriangularMatrix,
        +            u::LowerTriangularMatrix,
        +            v::LowerTriangularMatrix,
        +            S::SpectralTransform{NF};
        +            flipsign::Bool=false,
        +            add::Bool=false,
        +            )

        Divergence of a vector u,v written into div, div = ∇⋅(u,v). u,v are expected to have a 1/coslat-scaling included, then div is not scaled. flipsign option calculates -∇⋅(u,v) instead. add option calculates div += ∇⋅(u,v) instead. flipsign and add can be combined. This functions only creates the kernel and calls the generic divergence function _divergence! subsequently.

        source
        SpeedyWeather.SpeedyTransforms.curl!Function
        curl!(  curl::LowerTriangularMatrix,
        +        u::LowerTriangularMatrix,
        +        v::LowerTriangularMatrix,
        +        S::SpectralTransform;
        +        flipsign::Bool=false,
        +        add::Bool=false,
        +        )

        Curl of a vector u,v written into curl, curl = ∇×(u,v). u,v are expected to have a 1/coslat-scaling included, then curl is not scaled. flipsign option calculates -∇×(u,v) instead. add option calculates curl += ∇×(u,v) instead. flipsign and add can be combined. This functions only creates the kernel and calls the generic divergence function _divergence! subsequently with flipped u,v -> v,u for the curl.

        source
        Missing docstring.

        Missing docstring for SpeedyWeather._divergence!. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for SpeedyWeather.curl_div!. Check Documenter's build log for details.

        SpeedyWeather.SpeedyTransforms.UV_from_vordiv!Function
        UV_from_vordiv!(U::LowerTriangularMatrix,
        +                V::LowerTriangularMatrix,
        +                vor::LowerTriangularMatrix,
        +                div::LowerTriangularMatrix,
        +                S::SpectralTransform)

        Get U,V (=(u,v)*coslat) from vorticity ζ and divergence D in spectral space. Two operations are combined into a single linear operation. First, invert the spherical Laplace ∇² operator to get stream function from vorticity and velocity potential from divergence. Then compute zonal and meridional gradients to get U,V.

        source
        SpeedyWeather.SpeedyTransforms.UV_from_vor!Function
        UV_from_vor!(   U::LowerTriangularMatrix,
        +                V::LowerTriangularMatrix,
        +                vor::LowerTriangularMatrix,
        +                S::SpectralTransform)

        Get U,V (=(u,v)*coslat) from vorticity ζ spectral space (divergence D=0) Two operations are combined into a single linear operation. First, invert the spherical Laplace ∇² operator to get stream function from vorticity. Then compute zonal and meridional gradients to get U,V.

        source
        Missing docstring.

        Missing docstring for SpeedyWeather.ϵlm. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for SpeedyWeather.get_recursion_factors. Check Documenter's build log for details.

        Dynamics

        SpeedyWeather.bernoulli_potential!Function
        bernoulli_potential!(
        +    diagn::SpeedyWeather.DiagnosticVariablesLayer{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF},
        +    S::SpectralTransform
        +) -> LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat
        +

        Computes the Laplace operator ∇² of the Bernoulli potential B in spectral space.

        1. computes the kinetic energy KE = ½(u²+v²) on the grid
        2. transforms KE to spectral space
        3. adds geopotential for the Bernoulli potential in spectral space
        4. takes the Laplace operator.

        This version is used for both ShallowWater and PrimitiveEquation, only the geopotential calculation in geopotential! differs.

        source
        SpeedyWeather.volume_flux_divergence!Function
        volume_flux_divergence!(
        +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
        +    surface::SpeedyWeather.SurfaceVariables,
        +    orog::SpeedyWeather.AbstractOrography,
        +    constants::DynamicsConstants,
        +    G::Geometry,
        +    S::SpectralTransform
        +)
        +

        Computes the (negative) divergence of the volume fluxes uh,vh for the continuity equation, -∇⋅(uh,vh).

        source
        Missing docstring.

        Missing docstring for SpeedyWeather.vorticity_fluxes!. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for SpeedyWeather.vorticity_flux_curl!. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for SpeedyWeather.vorticity_flux_divergence!. Check Documenter's build log for details.

        Geometry

        SpeedyWeather.GeometryType

        Construct Geometry struct containing parameters and arrays describing an iso-latitude grid <:AbstractGrid and the vertical levels. Pass on SpectralGrid to calculate the following fields

        • spectral_grid::SpectralGrid: SpectralGrid that defines spectral and grid resolution

        • Grid::Type{<:SpeedyWeather.RingGrids.AbstractGrid}: grid of the dynamical core

        • nlat_half::Int64: resolution parameter nlat_half of Grid, # of latitudes on one hemisphere (incl Equator)

        • nlon_max::Int64: maximum number of longitudes (at/around Equator)

        • nlon::Int64: =nlon_max, same (used for compatibility), TODO: still needed?

        • nlat::Int64: number of latitude rings

        • nlev::Int64: number of vertical levels

        • npoints::Int64: total number of grid points

        • radius::AbstractFloat: Planet's radius [m]

        • latd::Vector{Float64}: array of latitudes in degrees (90˚...-90˚)

        • lond::Vector{Float64}: array of longitudes in degrees (0...360˚), empty for non-full grids

        • londs::Vector{NF} where NF<:AbstractFloat: longitude (-180˚...180˚) for each grid point in ring order

        • latds::Vector{NF} where NF<:AbstractFloat: latitude (-90˚...˚90) for each grid point in ring order

        • sinlat::Vector{NF} where NF<:AbstractFloat: sin of latitudes

        • coslat::Vector{NF} where NF<:AbstractFloat: cos of latitudes

        • coslat⁻¹::Vector{NF} where NF<:AbstractFloat: = 1/cos(lat)

        • coslat²::Vector{NF} where NF<:AbstractFloat: = cos²(lat)

        • coslat⁻²::Vector{NF} where NF<:AbstractFloat: # = 1/cos²(lat)

        • σ_levels_half::Vector{NF} where NF<:AbstractFloat: σ at half levels, σ_k+1/2

        • σ_levels_full::Vector{NF} where NF<:AbstractFloat: σ at full levels, σₖ

        • σ_levels_thick::Vector{NF} where NF<:AbstractFloat: σ level thicknesses, σₖ₊₁ - σₖ

        • ln_σ_levels_full::Vector{NF} where NF<:AbstractFloat: log of σ at full levels, include surface (σ=1) as last element

        source
        Missing docstring.

        Missing docstring for SpeedyWeather.vertical_coordinates. Check Documenter's build log for details.

        Time stepping

        SpeedyWeather.time_stepping!Function
        time_stepping!(
        +    progn::PrognosticVariables,
        +    diagn::DiagnosticVariables,
        +    model::SpeedyWeather.ModelSetup
        +) -> PrognosticVariables
        +

        Main time loop that that initializes output and feedback, loops over all time steps and calls the output and feedback functions.

        source
        SpeedyWeather.timestep!Function
        timestep!(
        +    progn::PrognosticVariables,
        +    diagn::DiagnosticVariables,
        +    time::Dates.DateTime,
        +    dt::Real,
        +    i::Integer,
        +    model::Barotropic
        +)
        +timestep!(
        +    progn::PrognosticVariables,
        +    diagn::DiagnosticVariables,
        +    time::Dates.DateTime,
        +    dt::Real,
        +    i::Integer,
        +    model::Barotropic,
        +    lf1::Int64
        +)
        +timestep!(
        +    progn::PrognosticVariables,
        +    diagn::DiagnosticVariables,
        +    time::Dates.DateTime,
        +    dt::Real,
        +    i::Integer,
        +    model::Barotropic,
        +    lf1::Int64,
        +    lf2::Int64
        +)
        +

        Calculate a single time step for the model <: Barotropic.

        source
        timestep!(
        +    progn::PrognosticVariables{NF<:AbstractFloat},
        +    diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},
        +    time::Dates.DateTime,
        +    dt::Real,
        +    i::Integer,
        +    model::ShallowWater
        +) -> SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat
        +timestep!(
        +    progn::PrognosticVariables{NF<:AbstractFloat},
        +    diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},
        +    time::Dates.DateTime,
        +    dt::Real,
        +    i::Integer,
        +    model::ShallowWater,
        +    lf1::Int64
        +) -> SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat
        +timestep!(
        +    progn::PrognosticVariables{NF<:AbstractFloat},
        +    diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},
        +    time::Dates.DateTime,
        +    dt::Real,
        +    i::Integer,
        +    model::ShallowWater,
        +    lf1::Int64,
        +    lf2::Int64
        +) -> SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat
        +

        Calculate a single time step for the model <: ShallowWater.

        source
        timestep!(
        +    progn::PrognosticVariables{NF<:AbstractFloat},
        +    diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},
        +    time::Dates.DateTime,
        +    dt::Real,
        +    i::Integer,
        +    model::PrimitiveEquation
        +) -> Any
        +timestep!(
        +    progn::PrognosticVariables{NF<:AbstractFloat},
        +    diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},
        +    time::Dates.DateTime,
        +    dt::Real,
        +    i::Integer,
        +    model::PrimitiveEquation,
        +    lf1::Int64
        +) -> Any
        +timestep!(
        +    progn::PrognosticVariables{NF<:AbstractFloat},
        +    diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},
        +    time::Dates.DateTime,
        +    dt::Real,
        +    i::Integer,
        +    model::PrimitiveEquation,
        +    lf1::Int64,
        +    lf2::Int64
        +) -> Any
        +

        Calculate a single time step for the model<:PrimitiveEquation

        source
        SpeedyWeather.first_timesteps!Function
        first_timesteps!(
        +    progn::PrognosticVariables,
        +    diagn::DiagnosticVariables,
        +    clock::SpeedyWeather.Clock,
        +    model::SpeedyWeather.ModelSetup,
        +    output::SpeedyWeather.AbstractOutputWriter
        +) -> typeof(time)
        +

        Performs the first two initial time steps (Euler forward, unfiltered leapfrog) to populate the prognostic variables with two time steps (t=0,Δt) that can then be used in the normal leap frogging.

        source
        SpeedyWeather.leapfrog!Function
        leapfrog!(
        +    A_old::LowerTriangularMatrix{Complex{NF<:AbstractFloat}},
        +    A_new::LowerTriangularMatrix{Complex{NF<:AbstractFloat}},
        +    tendency::LowerTriangularMatrix{Complex{NF<:AbstractFloat}},
        +    dt::Real,
        +    lf::Int64,
        +    L::Leapfrog{NF<:AbstractFloat}
        +)
        +

        Performs one leapfrog time step with (lf=2) or without (lf=1) Robert+William's filter (see William (2009), Montly Weather Review, Eq. 7-9).

        source

        Longwave radiation

        Missing docstring.

        Missing docstring for SpeedyWeather.radset!. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for SpeedyWeather.radlw_down!. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for SpeedyWeather.compute_bbe!. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for SpeedyWeather.radlw_up!. Check Documenter's build log for details.

        Shortwave radiation

        Missing docstring.

        Missing docstring for SpeedyWeather.shortwave_radiation!. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for SpeedyWeather.solar!. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for SpeedyWeather.sol_oz!. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for SpeedyWeather.cloud!. Check Documenter's build log for details.

        Missing docstring.

        Missing docstring for SpeedyWeather.radsw!. Check Documenter's build log for details.

        diff --git a/previews/PR345/grids/index.html b/previews/PR345/grids/index.html new file mode 100644 index 000000000..889427397 --- /dev/null +++ b/previews/PR345/grids/index.html @@ -0,0 +1,7 @@ + +Grids · SpeedyWeather.jl

        Grids

        The spectral transform (the Spherical Harmonic Transform) in SpeedyWeather.jl supports any ring-based equi-longitude grid. Several grids are already implemented but other can be added. The following pages will describe an overview of these grids and but let's start but how they can be used

        julia> spectral_grid = SpectralGrid(Grid = FullGaussianGrid)
        +SpectralGrid:
        + Spectral:   T31 LowerTriangularMatrix{Complex{Float32}}, radius = 6.371e6 m
        + Grid:       4608-element, 48-ring FullGaussianGrid{Float32} (quadratic)
        + Resolution: 333km (average)
        + Vertical:   8-level SigmaCoordinates

        The life of every SpeedyWeather.jl simulation starts with a SpectralGrid object which defines the resolution in spectral and in grid-point space. The generator SpectralGrid() can take as a keyword argument Grid which can be any of the grids described below. The resolution of the grid, however, is not directly chosen, but determined from the spectral resolution trunc and the dealiasing factor. More in Matching spectral and grid resolution.

        RingGrids is a module too!

        While RingGrids is the underlying module that SpeedyWeather.jl uses for data structs on the sphere, the module can also be used independently of SpeedyWeather, for example to interpolate between data on different grids. See RingGrids

        Ring-based equi-longitude grids

        SpeedyWeather.jl's spectral transform supports all ring-based equi-longitude grids. These grids have their grid points located on rings with constant latitude and on these rings the points are equi-spaced in longitude. There is technically no constrain on the spacing of the latitude rings, but the Legendre transform requires a quadrature to map those to spectral space and back. Common choices for latitudes are the Gaussian latitudes which use the Gaussian quadrature, or equi-angle latitudes (i.e. just regular latitudes but excluding the poles) that use the Clenshaw-Curtis quadrature. The longitudes have to be equi-spaced on every ring, which is necessary for the fast Fourier transform, as one would otherwise need to use a non-uniform Fourier transform. In SpeedyWeather.jl the first grid point on any ring can have a longitudinal offset though, for example by spacing 4 points around the globe at 45˚E, 135˚E, 225˚E, and 315˚E. In this case the offset is 45˚E as the first point is not at 0˚E.

        Implemented grids

        All grids in SpeedyWeather.jl are a subtype of AbstractGrid, i.e. <: AbstractGrid. We further distinguish between full, and reduced grids. Full grids have the same number of longitude points on every latitude ring (i.e. points converge towards the poles) and reduced grids reduce the number of points towards the poles to have them more evenly spread out across the globe. More evenly does not necessarily mean that a grid is equal-area, meaning that every grid cell covers exactly the same area (although the shape changes).

        Currently the following full grids <: AbstractFullGrid are implemented

        • FullGaussianGrid, a full grid with Gaussian latitudes
        • FullClenshawGrid, a full grid with equi-angle latitudes

        and additionally we have FullHEALPixGrid and FullOctaHEALPixGrid which are the full grid equivalents to the HEALPix grid and the OctaHEALPix grid discussed below. Full grid equivalent means that they have the same latitude rings, but no reduction in the number of points per ring towards the poles and no longitude offset. Other implemented reduced grids are

        • OctahedralGaussianGrid, a reduced grid with Gaussian latitudes based on an octahedron
        • OctahedralClenshawGrid, similar but based on equi-angle latitudes
        • HEALPixGrid, an equal-area grid based on a dodecahedron with 12 faces
        • OctaHEALPixGrid, an equal-area grid from the class of HEALPix grids but based on an octahedron.

        An overview of these grids is visualised here

        Overview of implemented grids in SpeedyWeather.jl

        Visualised are each grid's grid points (white dots) and grid faces (white lines). All grids shown have 16 latitude rings on one hemisphere, Equator included. The total number of grid points is denoted in the top left of every subplot. The sphere is shaded with grey, orange and turquoise regions to denote the hemispheres in a and b, the 8 octahedral faces c, d,f and the 12 dodecahedral faces (or base pixels) in e. Coastlines are added for orientation.

        Grid resolution

        All grids use the same resolution parameter nlat_half, i.e. the number of rings on one hemisphere, Equator included. The Gaussian grids (full and reduced) do not have a ring on the equator, so their total number of rings nlat is always even and twice nlat_half. Clenshaw-Curtis grids and the HEALPix grids have a ring on the equator such their total number of rings is always odd and one less than the Gaussian grids at the same nlat_half.

        HEALPix grids do not use Nside as resolution parameter

        The original formulation for HEALPix grids use $N_{side}$, the number of grid points along the edges of each basepixel (8 in the figure above), SpeedyWeather.jl uses nlat_half, the number of rings on one hemisphere, Equator included, for all grids. This is done for consistency across grids. We may use $N_{side}$ for the documentation or within functions though.

        Matching spectral and grid resolution

        A given spectral resolution can be matched to a variety of grid resolutions. A cubic grid, for example, combines a spectral truncation T with a grid resolution N (=nlat_half) such that T + 1 = N. Using T31 and an O32 is therefore often abbreviated as Tco31 meaning that the spherical harmonics are truncated at $l_{max}=31$ in combination with N=32, i.e. 64 latitude rings in total on an octahedral Gaussian grid.

        Let J be the total number of rings. Then we have

        • $T \approx J$ for linear truncation
        • $\frac{3}{2}T \approx J$ for quadratic truncation
        • $2T \approx J$ for cubic truncation

        and in general $\frac{m+1}{2}T \approx J$ for m-th order truncation. So the higher the truncaction order the more grid points are used in combination with the same spectral resolution. A higher truncation order therefore makes all grid-point calculations more expensive, but can represent products of terms on the grid (which will have higher wavenumber components) to a higher accuracy as more grid points are available within a given wavelength. Using a sufficiently high truncation is therefore one way to avoid aliasing. In SpeedyWeather.jl the parameter dealiasing controls this option, = 1 would be linear, = 2 quadratic, = 3 cubic etc.

        For now just a quick overview of how the grid resolution changes when dealiasing is passed onto SpectralGrid on the FullGaussianGrid

        truncdealiasingFullGaussianGrid size
        31164x32
        31296x48
        313128x64
        42196x48
        422128x64
        423192x96
        .........

        You will obtain this information every time you create a SpectralGrid(;Grid,trunc,dealiasing).

        Full Gaussian grid

        ...

        Full Clenshaw-Curtis grid

        ...

        Octahedral Gaussian grid

        ...

        The HEALPix grid

        Technically, HEALPix grids are a class of grids that tessalate the sphere into faces that are often called basepixels. For each member of this class there are $N_\varphi$ basepixels in zonal direction and $N_\theta$ basepixels in meridional direction. For $N_\varphi = 4$ and $N_\theta = 3$ we obtain the classical HEALPix grid with $N_\varphi N_\theta = 12$ basepixels shown above in Implemented Grids. Each basepixel has a quadratic number of grid points in them. There's an equatorial zone where the number of zonal grid points is constant (always $2N$, so 32 at $N=16$) and there are polar caps above and below the equatorial zone with the border at $\cos(\theta) = 2/3$ ($\theta$ in colatitudes).

        Following Górski, 2004[1], the $z=cos(\theta)$ colatitude of the $j$-th ring in the north polar cap, $j=1,...,N_{side}$ with $2N_{side} = N$ is

        \[z = 1 - \frac{j^2}{3N_{side}^2}\]

        and on that ring, the longitude $\phi$ of the $i$-th point ($i$ is the in-ring-index) is at

        \[\phi = \frac{\pi}{2j}(i-\tfrac{1}{2})\]

        The in-ring index $i$ goes from $i=1,...,4$ for the first (i.e. northern-most) ring, $i=1,...,8$ for the second ring and $i = 1,...,4j$ for the $j$-th ring in the northern polar cap.

        In the north equatorial belt $j=N_{side},...,2N_{side}$ this changes to

        \[z = \frac{4}{3} - \frac{2j}{3N_{side}}\]

        and the longitudes change to ($i$ is always $i = 1,...,4N_{side}$ in the equatorial belt meaning the number of longitude points is constant here)

        \[\phi = \frac{\pi}{2N_{side}}(i - \frac{s}{2}), \quad s = (j - N_{side} + 1) \mod 2\]

        The modulo function comes in as there is an alternating longitudinal offset from the prime meridian (see Implemented grids). For the southern hemisphere the grid point locations can be obtained by mirror symmetry.

        Grid cell boundaries

        The cell boundaries are obtained by setting $i = k + 1/2$ or $i = k + 1/2 + j$ (half indices) into the equations above, such that $z(\phi,k)$, a function for the cosine of colatitude $z$ of index $k$ and the longitude $\phi$ is obtained. These are then (northern polar cap)

        \[z = 1 - \frac{k^2}{3N_{side}^2}\left(\frac{\pi}{2\phi_t}\right)^2, \quad z = 1 - \frac{k^2}{3N_{side}^2}\left(\frac{\pi}{2\phi_t - \pi}\right)^2\]

        with $\phi_t = \phi \mod \tfrac{\pi}{2}$ and in the equatorial belt

        \[z = \frac{2}{3}-\frac{4k}{3N_{side}} \pm \frac{8\phi}{3\pi}\]

        OctaHEALPix grid

        While the classic HEALPix grid is based on a dodecahedron, other choices for $N_\varphi$ and $N_\theta$ in the class of HEALPix grids will change the number of faces there are in zonal/meridional direction. With $N_\varphi = 4$ and $N_\theta = 1$ we obtain a HEALPix grid that is based on an octahedron, which has the convenient property that there are twice as many longitude points around the equator than there are latitude rings between the poles. This is a desirable for truncation as this matches the distances too, $2\pi$ around the Equator versus $\pi$ between the poles. $N_\varphi = 6, N_\theta = 2$ or $N_\varphi = 8, N_\theta = 3$ are other possible choices for this, but also more complicated. See Górski, 2004[1] for further examples and visulations of these grids.

        We call the $N_\varphi = 4, N_\theta = 1$ HEALPix grid the OctaHEALPix grid, which combines the equal-area property of the HEALPix grids with the octahedron that's also used in the OctahedralGaussianGrid or the OctahedralClenshawGrid. As $N_\theta = 1$ there is no equatorial belt which simplifies the grid. The latitude of the $j$-th isolatitude ring on the OctaHEALPixGrid is defined by

        \[z = 1 - \frac{j^2}{N^2},\]

        with $j=1,...,N$, and similarly for the southern hemisphere by symmetry. On this grid $N_{side} = N$ where $N$= nlat_half, the number of latitude rings on one hemisphere, Equator included, because each of the 4 basepixels spans from pole to pole and covers a quarter of the sphere. The longitudes with in-ring- index $i = 1,...,4j$ are

        \[\phi = \frac{\pi}{2j}(i - \tfrac{1}{2})\]

        and again, the southern hemisphere grid points are obtained by symmetry.

        Grid cell boundaries

        Similar to the grid cell boundaries for the HEALPix grid, the OctaHEALPix grid's boundaries are

        \[z = 1 - \frac{k^2}{N^2}\left(\frac{\pi}{2\phi_t}\right)^2, \quad z = 1 - \frac{k^2}{N^2}\left(\frac{\pi}{2\phi_t - \pi}\right)^2\]

        The $3N_{side}^2$ in the denominator of the HEALPix grid came simply $N^2$ for the OctaHEALPix grid and there's no separate equation for the equatorial belt (which doesn't exist in the OctaHEALPix grid).

        References

        [1] Górski, Hivon, Banday, Wandelt, Hansen, Reinecke, Bartelmann, 2004. HEALPix: A FRAMEWORK FOR HIGH-RESOLUTION DISCRETIZATION AND FAST ANALYSIS OF DATA DISTRIBUTED ON THE SPHERE, The Astrophysical Journal. doi:10.1086/427976

        diff --git a/previews/PR345/how_to_run_speedy/index.html b/previews/PR345/how_to_run_speedy/index.html new file mode 100644 index 000000000..abab0becb --- /dev/null +++ b/previews/PR345/how_to_run_speedy/index.html @@ -0,0 +1,293 @@ + +How to run SpeedyWeather.jl · SpeedyWeather.jl

        How to run SpeedyWeather.jl

        Creating a SpeedyWeather.jl simulation and running it consists conceptually of 4 steps

        1. Create a SpectralGrid which defines the grid and spectral resolution
        2. Create a model
        3. Initialize a model to obtain a Simulation.
        4. Run the simulation.

        In the following we will describe these steps in more detail, but let's start with some examples first.

        Example 1: 2D turbulence on a non-rotating sphere

        We want to use the barotropic model to simulate some free-decaying 2D turbulence on the sphere without rotation. We start by defining the SpectralGrid object. To have a resolution of about 100km, we choose a spectral resolution of T127 (see Available resolutions) and nlev=1 vertical levels. The SpectralGrid object will provide us with some more information

        using SpeedyWeather
        +
        +spectral_grid = SpectralGrid(trunc=127,nlev=1)
        SpectralGrid:
        + Spectral:   T127 LowerTriangularMatrix{Complex{Float32}}, radius = 6.371e6 m
        + Grid:       40320-element, 192-ring OctahedralGaussianGrid{Float32} (quadratic)
        + Resolution: 112km (average)
        + Vertical:   1-level SigmaCoordinates

        We could have specified further options, but let's ignore that for now. Next step we create a planet that's like Earth but not rotating

        still_earth = Earth(rotation=0)
        Earth:
        + rotation::Float64 = 0.0
        + gravity::Float64 = 9.81
        + daily_cycle::Bool = true
        + length_of_day::Float64 = 24.0
        + seasonal_cycle::Bool = true
        + length_of_year::Float64 = 365.25
        + equinox::Dates.DateTime = 2000-03-20T00:00:00
        + axial_tilt::Float64 = 23.4

        There are other options to create a planet but they are irrelevant for the barotropic vorticity equations. We also want to specify the initial conditions, randomly distributed vorticity is already defined

        initial_conditions = StartWithRandomVorticity()
        StartWithRandomVorticity <: InitialConditions:
        + power::Float64 = -3.0
        + amplitude::Float64 = 1.0e-5

        By default, the power of vorticity is spectrally distributed with $k^{-3}$, $k$ being the horizontal wavenumber, and the amplitude is $10^{-5}\text{s}^{-1}$.

        Now we want to construct a BarotropicModel with these

        model = BarotropicModel(;spectral_grid, initial_conditions, planet=still_earth)
        BarotropicModel{Float32, SpeedyWeather.CPUDevice}(SpectralGrid:
        + Spectral:   T127 LowerTriangularMatrix{Complex{Float32}}, radius = 6.371e6 m
        + Grid:       40320-element, 192-ring OctahedralGaussianGrid{Float32} (quadratic)
        + Resolution: 112km (average)
        + Vertical:   1-level SigmaCoordinates, Earth:
        + rotation::Float64 = 0.0
        + gravity::Float64 = 9.81
        + daily_cycle::Bool = true
        + length_of_day::Float64 = 24.0
        + seasonal_cycle::Bool = true
        + length_of_year::Float64 = 365.25
        + equinox::Dates.DateTime = 2000-03-20T00:00:00
        + axial_tilt::Float64 = 23.4, EarthAtmosphere:
        + mol_mass_dry_air::Float64 = 28.9649
        + mol_mass_vapour::Float64 = 18.0153
        + cₚ::Float64 = 1004.0
        + R_gas::Float64 = 8.3145
        + R_dry::Float64 = 287.05433127682124
        + R_vapour::Float64 = 461.52437095135804
        + water_density::Float64 = 1000.0
        + latent_heat_condensation::Float64 = 2501.0
        + latent_heat_sublimation::Float64 = 2801.0
        + stefan_boltzmann::Float64 = 5.67e-8
        + lapse_rate::Float64 = 5.0
        + temp_ref::Float64 = 288.0
        + temp_top::Float64 = 216.0
        + ΔT_stratosphere::Float64 = 480000.0
        + σ_tropopause::Float64 = 0.2
        + σ_boundary_layer::Float64 = 0.95
        + scale_height::Float64 = 7.5
        + pres_ref::Float64 = 1000.0
        + scale_height_humid::Float64 = 2.5
        + relhumid_ref::Float64 = 0.7
        + water_pres_ref::Float64 = 17.0
        + layer_thickness::Float64 = 8.5, SpeedyWeather.NoForcing{Float32}(), StartWithRandomVorticity <: InitialConditions:
        + power::Float64 = -3.0
        + amplitude::Float64 = 1.0e-5, Leapfrog{Float32}:
        + trunc::Int64 = 127
        + Δt_at_T31::Float64 = 30.0
        + radius::Float32 = 6.371e6
        + robert_filter::Float32 = 0.05
        + william_filter::Float32 = 0.53
        + Δt_sec::Int64 = 450
        + Δt::Float32 = 7.063255e-5
        + Δt_hrs::Float64 = 0.125, SpectralTransform{Float32}(
        +  Spectral: T127 LowerTriangularMatrix{Complex{Float32}}
        +  Grid:     192-ring OctahedralGaussianGrid{Float32}
        +  Legendre: recompute polynomials false), HyperDiffusion{Float32}:
        + trunc::Int64 = 127
        + nlev::Int64 = 1
        + power::Float64 = 4.0
        + time_scale::Float64 = 2.4
        + resolution_scaling::Float64 = 0.5
        + power_stratosphere::Float64 = 2.0
        + tapering_σ::Float64 = 0.2
        + adaptive::Bool = true
        + vor_max::Float64 = 0.0001
        + adaptive_strength::Float64 = 2.0, SpeedyWeather.NoImplicit{Float32}(), SpeedyWeather.Clock(Dates.DateTime("2000-01-01T00:00:00"), 0.0, 0), Geometry{Float32} for SpectralGrid:
        + Spectral:   T127 LowerTriangularMatrix{Complex{Float32}}, radius = 6.371e6 m
        + Grid:       40320-element, 192-ring OctahedralGaussianGrid{Float32} (quadratic)
        + Resolution: 112km (average)
        + Vertical:   1-level SigmaCoordinates, DynamicsConstants{Float32}(6.371f6, 0.0f0, 9.81f0, 8500.0f0, 287.05432f0, 461.52438f0, 0.60779446f0, 1004.0f0, 0.2859107f0, 1000.0f0, Float32[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0  …  -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0, -0.0], Float32[0.0], Float32[-0.6931472], Float32[0.0], Float32[198.9709], Float32[260.2254]), SpeedyWeather.DeviceSetup{SpeedyWeather.CPUDevice, DataType}(SpeedyWeather.CPUDevice(), KernelAbstractions.CPU, 4), OutputWriter{Float32, Barotropic}:
        + output::Bool = false
        + path::String = /home/runner/work/SpeedyWeather.jl/SpeedyWeather.jl/docs/build
        + id::String = 0001
        + run_path::String = 
        + filename::String = output.nc
        + write_restart::Bool = true
        + output_dt::Float64 = 6.0
        + output_dt_sec::Int64 = 0
        + output_vars::Vector{Symbol} = [:vor, :u]
        + missing_value::Float32 = NaN
        + compression_level::Int64 = 3
        + keepbits::SpeedyWeather.Keepbits = SpeedyWeather.Keepbits(u=7, v=7, vor=5, div=5, temp=10, pres=12, humid=7, precip_cond=7, precip_conv=7, 
        + output_every_n_steps::Int64 = 0
        + timestep_counter::Int64 = 0
        + output_counter::Int64 = 0
        + input_Grid::UnionAll = OctahedralGaussianGrid
        + as_matrix::Bool = false
        + quadrant_rotation::NTuple{4, Int64} = (0, 1, 2, 3)
        + matrix_quadrant::NTuple{4, Tuple{Int64, Int64}} = ((2, 2), (1, 2), (1, 1), (2, 1))
        + output_Grid::UnionAll = FullGaussianGrid
        + nlat_half::Int64 = 96
        + nlon::Int64 = 384
        + nlat::Int64 = 192
        + npoints::Int64 = 73728
        + nlev::Int64 = 1, Feedback(true, true, false, "", "", ProgressMeter.Progress(1, ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.InvasiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (8, 140362880057344, 0)), 0.1, 0, 1.685984949815649e9, 1.685984949815649e9, 1.685984949815649e9, false, "Weather is speedy: ", nothing, ProgressMeter.BarGlyphs('|', '█', ['▏', '▎', '▍', '▌', '▋', '▊', '▉'], ' ', '|'), :green, IOContext(Base.PipeEndpoint(RawFD(4294967295) closed, 0 bytes waiting)), 0, 0, 0, true, true, 1, 1, Int64[]), nothing, false))

        The model contains all the parameters, but isn't initialized yet, which we can do with and then run it. The run! command will always return the prognostic variables, which, by default, are plotted for surface relative vorticity with a unicode plot. The resolution of the plot is not necessarily representative but it lets us have a quick look at the result

        simulation = initialize!(model);
        +
        +run!(simulation,n_days=30)
                                 Surface relative vorticity                          
        +       ┌────────────────────────────────────────────────────────────┐4.0f-6  
        +    90 ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ┌──┐   
        +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄   
        +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄   
        +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄   
        +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄   
        +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄   
        +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄   
        +    ˚N ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄   
        +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄   
        +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄   
        +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄   
        +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄   
        +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄   
        +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄   
        +   -90 ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ └──┘   
        +       └────────────────────────────────────────────────────────────┘-2.0f-6 
        +        0                           ˚E                           360         

        Woohoo! I can see turbulence! You could pick up where this simulation stopped by simply doing run!(simulation,n_days=50) again. We didn't store any output, which you can do by run!(simulation,output=true), which will switch on NetCDF output with default settings. More options on output in NetCDF output.

        Example 2: Shallow water with mountains

        As a second example, let's investigate the Galewsky et al.[1] test case for the shallow water equations with and without mountains. As the shallow water system has also only one level, we can reuse the SpectralGrid from Example 1.

        spectral_grid = SpectralGrid(trunc=127,nlev=1)
        SpectralGrid:
        + Spectral:   T127 LowerTriangularMatrix{Complex{Float32}}, radius = 6.371e6 m
        + Grid:       40320-element, 192-ring OctahedralGaussianGrid{Float32} (quadratic)
        + Resolution: 112km (average)
        + Vertical:   1-level SigmaCoordinates

        Now as a first simulation, we want to disable any orography, so we create a NoOrography

        orography = NoOrography(spectral_grid)
        NoOrography{Float32, OctahedralGaussianGrid{Float32}}

        Although the orography is zero, you have to pass on spectral_grid so that it can still initialize zero-arrays of the right size and element type. Awesome. This time the initial conditions should be set the the Galewsky et al.[1] zonal jet, which is already defined as

        initial_conditions = ZonalJet()
        ZonalJet <: InitialConditions:
        + latitude::Float64 = 45.0
        + width::Float64 = 19.28571428571429
        + umax::Float64 = 80.0
        + perturb_lat::Float64 = 45.0
        + perturb_lon::Float64 = 270.0
        + perturb_xwidth::Float64 = 19.098593171027442
        + perturb_ywidth::Float64 = 3.819718634205488
        + perturb_height::Float64 = 120.0

        The jet sits at 45˚N with a maximum velocity of 80m/s and a perturbation as described in their paper. Now we construct a model, but this time a ShallowWaterModel

        model = ShallowWaterModel(;spectral_grid, orography, initial_conditions);
        +
        +simulation = initialize!(model);
        SpeedyWeather.Simulation{ShallowWaterModel{Float32, SpeedyWeather.CPUDevice}}(                         Surface relative vorticity                          
        +       ┌────────────────────────────────────────────────────────────┐0.0001  
        +    90 ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ┌──┐   
        +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄   
        +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄   
        +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄   
        +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄   
        +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄   
        +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄   
        +    ˚N ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄   
        +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄   
        +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄   
        +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄   
        +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄   
        +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄   
        +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄   
        +   -90 ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ └──┘   
        +       └────────────────────────────────────────────────────────────┘-0.0001 
        +        0                           ˚E                           360         , DiagnosticVariables{Float32, OctahedralGaussianGrid{Float32}, PrimitiveDry}(SpeedyWeather.DiagnosticVariablesLayer{Float32, OctahedralGaussianGrid{Float32}}[SpeedyWeather.DiagnosticVariablesLayer{Float32, OctahedralGaussianGrid{Float32}}(SpeedyWeather.Tendencies{Float32, OctahedralGaussianGrid{Float32}}(ComplexF32[0.0f0 + 0.0f0im 0.0f0 + 0.0f0im … 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im; 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im … 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im; … ; 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im … 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im; 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im … 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im], ComplexF32[0.0f0 + 0.0f0im 0.0f0 + 0.0f0im … 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im; 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im … 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im; … ; 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im … 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im; 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im … 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im], ComplexF32[0.0f0 + 0.0f0im 0.0f0 + 0.0f0im … 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im; 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im … 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im; … ; 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im … 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im; 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im … 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im], ComplexF32[0.0f0 + 0.0f0im 0.0f0 + 0.0f0im … 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im; 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im … 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im; … ; 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im … 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im; 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im … 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im], ComplexF32[0.0f0 + 0.0f0im 0.0f0 + 0.0f0im … 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im; 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im … 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im; … ; 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im … 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im; 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im … 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im], ComplexF32[0.0f0 + 0.0f0im 0.0f0 + 0.0f0im … 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im; 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im … 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im; … ; 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im … 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im; 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im … 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im], Float32[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0  …  0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], Float32[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0  …  0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], Float32[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0  …  0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], Float32[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0  …  0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), SpeedyWeather.GridVariables{Float32, OctahedralGaussianGrid{Float32}}(Float32[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0  …  0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], Float32[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0  …  0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], Float32[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0  …  0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], Float32[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0  …  0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], Float32[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0  …  0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], Float32[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0  …  0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], Float32[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0  …  0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], Float32[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0  …  0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), SpeedyWeather.DynamicsVariables{Float32, OctahedralGaussianGrid{Float32}}(ComplexF32[0.0f0 + 0.0f0im 0.0f0 + 0.0f0im … 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im; 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im … 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im; … ; 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im … 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im; 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im … 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im], ComplexF32[0.0f0 + 0.0f0im 0.0f0 + 0.0f0im … 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im; 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im … 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im; … ; 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im … 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im; 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im … 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im], Float32[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0  …  0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], Float32[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0  …  0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], Float32[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0  …  0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], Float32[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0  …  0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], Float32[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0  …  0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], ComplexF32[0.0f0 + 0.0f0im 0.0f0 + 0.0f0im … 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im; 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im … 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im; … ; 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im … 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im; 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im … 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im], ComplexF32[0.0f0 + 0.0f0im 0.0f0 + 0.0f0im … 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im; 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im … 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im; … ; 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im … 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im; 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im … 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im], Float32[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0  …  0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]), 40320, 1, Base.RefValue{Float32}(0.0f0))], SpeedyWeather.SurfaceVariables{Float32, OctahedralGaussianGrid{Float32}}(Float32[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0  …  0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], ComplexF32[0.0f0 + 0.0f0im 0.0f0 + 0.0f0im … 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im; 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im … 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im; … ; 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im … 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im; 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im … 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im], Float32[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0  …  0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], Float32[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0  …  0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], Float32[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0  …  0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], Float32[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0  …  0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], Float32[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0  …  0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], Float32[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0  …  0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], ComplexF32[0.0f0 + 0.0f0im 0.0f0 + 0.0f0im … 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im; 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im … 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im; … ; 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im … 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im; 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im … 0.0f0 + 0.0f0im 0.0f0 + 0.0f0im], Float32[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0  …  0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], Float32[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0  …  0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 40320), ColumnVariables{Float32}[ColumnVariables{Float32}(1, 0, 0, 0, 0.0f0, 0.0f0, Float32[0.0], Float32[0.0], Float32[0.0], Float32[0.0], Float32[0.0, 0.0], Float32[0.0, 0.0], Float32[0.0], Float32[0.0], Float32[0.0], Float32[0.0], Float32[0.0], Float32[0.0, 0.0], Float32[0.0, 0.0], Float32[0.0, 0.0], Float32[0.0, 0.0], Float32[0.0, 0.0], Float32[0.0, 0.0], Float32[0.0, 0.0], Float32[0.0, 0.0], Float32[0.0], Float32[0.0], Float32[0.0], Float32[0.0], Float32[0.0], Float32[0.0], Float32[0.0], Float32[0.0], Float32[0.0], false, false, 2, 0.0f0, 0.0f0, 0.0f0, Float32[0.0], Float32[0.0], Float32[0.0], 0.0f0, Float32[NaN NaN], Matrix{Float32}(undef, 1, 0), Float32[NaN], NaN32, Float32[NaN NaN], Float32[], NaN32, NaN32, NaN32, NaN32, Float32[], NaN32, NaN32, NaN32, NaN32, NaN32, NaN32, NaN32, NaN32, NaN32, NaN32, NaN32, NaN32, Float32[NaN], NaN32, 9223372036854775807, NaN32, NaN32, NaN32, NaN32, Float32[NaN], NaN32)], 96, 1, 40320, Base.RefValue{Float32}(6.371f6)), ShallowWaterModel{Float32, SpeedyWeather.CPUDevice}(SpectralGrid:
        + Spectral:   T127 LowerTriangularMatrix{Complex{Float32}}, radius = 6.371e6 m
        + Grid:       40320-element, 192-ring OctahedralGaussianGrid{Float32} (quadratic)
        + Resolution: 112km (average)
        + Vertical:   1-level SigmaCoordinates, Earth:
        + rotation::Float64 = 7.29e-5
        + gravity::Float64 = 9.81
        + daily_cycle::Bool = true
        + length_of_day::Float64 = 24.0
        + seasonal_cycle::Bool = true
        + length_of_year::Float64 = 365.25
        + equinox::Dates.DateTime = 2000-03-20T00:00:00
        + axial_tilt::Float64 = 23.4, EarthAtmosphere:
        + mol_mass_dry_air::Float64 = 28.9649
        + mol_mass_vapour::Float64 = 18.0153
        + cₚ::Float64 = 1004.0
        + R_gas::Float64 = 8.3145
        + R_dry::Float64 = 287.05433127682124
        + R_vapour::Float64 = 461.52437095135804
        + water_density::Float64 = 1000.0
        + latent_heat_condensation::Float64 = 2501.0
        + latent_heat_sublimation::Float64 = 2801.0
        + stefan_boltzmann::Float64 = 5.67e-8
        + lapse_rate::Float64 = 5.0
        + temp_ref::Float64 = 288.0
        + temp_top::Float64 = 216.0
        + ΔT_stratosphere::Float64 = 480000.0
        + σ_tropopause::Float64 = 0.2
        + σ_boundary_layer::Float64 = 0.95
        + scale_height::Float64 = 7.5
        + pres_ref::Float64 = 1000.0
        + scale_height_humid::Float64 = 2.5
        + relhumid_ref::Float64 = 0.7
        + water_pres_ref::Float64 = 17.0
        + layer_thickness::Float64 = 8.5, SpeedyWeather.NoForcing{Float32}(), ZonalJet <: InitialConditions:
        + latitude::Float64 = 45.0
        + width::Float64 = 19.28571428571429
        + umax::Float64 = 80.0
        + perturb_lat::Float64 = 45.0
        + perturb_lon::Float64 = 270.0
        + perturb_xwidth::Float64 = 19.098593171027442
        + perturb_ywidth::Float64 = 3.819718634205488
        + perturb_height::Float64 = 120.0, NoOrography{Float32, OctahedralGaussianGrid{Float32}}, Leapfrog{Float32}:
        + trunc::Int64 = 127
        + Δt_at_T31::Float64 = 30.0
        + radius::Float32 = 6.371e6
        + robert_filter::Float32 = 0.05
        + william_filter::Float32 = 0.53
        + Δt_sec::Int64 = 450
        + Δt::Float32 = 7.063255e-5
        + Δt_hrs::Float64 = 0.125, SpectralTransform{Float32}(
        +  Spectral: T127 LowerTriangularMatrix{Complex{Float32}}
        +  Grid:     192-ring OctahedralGaussianGrid{Float32}
        +  Legendre: recompute polynomials false), HyperDiffusion{Float32}:
        + trunc::Int64 = 127
        + nlev::Int64 = 1
        + power::Float64 = 4.0
        + time_scale::Float64 = 2.4
        + resolution_scaling::Float64 = 0.5
        + power_stratosphere::Float64 = 2.0
        + tapering_σ::Float64 = 0.2
        + adaptive::Bool = true
        + vor_max::Float64 = 0.0001
        + adaptive_strength::Float64 = 2.0, SpeedyWeather.ImplicitShallowWater{Float32}:
        + trunc::Int64 = 127
        + α::Float64 = 1.0, SpeedyWeather.Clock(Dates.DateTime("2000-01-01T00:00:00"), 0.0, 0), Geometry{Float32} for SpectralGrid:
        + Spectral:   T127 LowerTriangularMatrix{Complex{Float32}}, radius = 6.371e6 m
        + Grid:       40320-element, 192-ring OctahedralGaussianGrid{Float32} (quadratic)
        + Resolution: 112km (average)
        + Vertical:   1-level SigmaCoordinates, DynamicsConstants{Float32}(6.371f6, 7.29f-5, 9.81f0, 8500.0f0, 287.05432f0, 461.52438f0, 0.60779446f0, 1004.0f0, 0.2859107f0, 1000.0f0, Float32[928.81934, 928.50995, 927.95337, 927.1497, 926.09906, 924.8018, 923.2583, 921.4688, 919.4339, 917.1542  …  -917.1542, -919.4339, -921.4688, -923.2583, -924.8018, -926.09906, -927.1497, -927.95337, -928.50995, -928.81934], Float32[0.0], Float32[-0.6931472], Float32[0.0], Float32[198.9709], Float32[260.2254]), SpeedyWeather.DeviceSetup{SpeedyWeather.CPUDevice, DataType}(SpeedyWeather.CPUDevice(), KernelAbstractions.CPU, 4), OutputWriter{Float32, ShallowWater}:
        + output::Bool = false
        + path::String = /home/runner/work/SpeedyWeather.jl/SpeedyWeather.jl/docs/build
        + id::String = 0001
        + run_path::String = 
        + filename::String = output.nc
        + write_restart::Bool = true
        + output_dt::Float64 = 6.0
        + output_dt_sec::Int64 = 0
        + output_vars::Vector{Symbol} = [:vor, :u]
        + missing_value::Float32 = NaN
        + compression_level::Int64 = 3
        + keepbits::SpeedyWeather.Keepbits = SpeedyWeather.Keepbits(u=7, v=7, vor=5, div=5, temp=10, pres=12, humid=7, precip_cond=7, precip_conv=7, 
        + output_every_n_steps::Int64 = 0
        + timestep_counter::Int64 = 0
        + output_counter::Int64 = 0
        + input_Grid::UnionAll = OctahedralGaussianGrid
        + as_matrix::Bool = false
        + quadrant_rotation::NTuple{4, Int64} = (0, 1, 2, 3)
        + matrix_quadrant::NTuple{4, Tuple{Int64, Int64}} = ((2, 2), (1, 2), (1, 1), (2, 1))
        + output_Grid::UnionAll = FullGaussianGrid
        + nlat_half::Int64 = 96
        + nlon::Int64 = 384
        + nlat::Int64 = 192
        + npoints::Int64 = 73728
        + nlev::Int64 = 1, Feedback(true, true, false, "", "", ProgressMeter.Progress(1, ReentrantLock(nothing, 0x00000000, 0x00, Base.GenericCondition{Base.Threads.SpinLock}(Base.InvasiveLinkedList{Task}(nothing, nothing), Base.Threads.SpinLock(0)), (140362880099248, 140362880070544, 0)), 0.1, 0, 1.685985013271972e9, 1.685985013271972e9, 1.685985013271972e9, false, "Weather is speedy: ", nothing, ProgressMeter.BarGlyphs('|', '█', ['▏', '▎', '▍', '▌', '▋', '▊', '▉'], ' ', '|'), :green, IOContext(Base.PipeEndpoint(RawFD(4294967295) closed, 0 bytes waiting)), 0, 0, 0, true, true, 1, 1, Int64[]), nothing, false)))

        Oh yeah. That looks like the wobbly jet in their paper. Let's run it again for another 6 days but this time also store NetCDF output.

        run!(simulation,n_days=6,output=true)
                                 Surface relative vorticity                          
        +       ┌────────────────────────────────────────────────────────────┐0.0002  
        +    90 ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ┌──┐   
        +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄   
        +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄   
        +       ▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄   
        +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄   
        +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄   
        +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄   
        +    ˚N ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄   
        +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄   
        +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄   
        +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄   
        +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄   
        +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄   
        +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄   
        +   -90 ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ └──┘   
        +       └────────────────────────────────────────────────────────────┘-0.0001 
        +        0                           ˚E                           360         

        The progress bar tells us that the simulation run got the identification "0002", meaning that data is stored in the folder /run_0002, so let's plot that data properly (and not just using UnicodePlots).

        julia> using PyPlot, NCDatasets
        +julia> ds = NCDataset("run_0002/output.nc");
        +julia> ds["vor"]
        +vor (384 × 192 × 1 × 25)
        +  Datatype:    Float32
        +  Dimensions:  lon × lat × lev × time
        +  Attributes:
        +   units                = 1/s
        +   missing_value        = NaN
        +   long_name            = relative vorticity
        +   _FillValue           = NaN

        Vorticity vor is stored as a 384x192x1x25 array, we may want to look at the first time step, which is the end of the previous simulation (time=6days) which we didn't store output for.

        julia> vor = ds["vor"][:,:,1,1];
        +julia> lat = ds["lat"][:];
        +julia> lon = ds["lon"][:];
        +julia> pcolormesh(lon,lat,vor')

        Which looks like

        Galewsky jet pyplot

        You see that the unicode plot heavily coarse-grains the simulation, well it's unicode after all! And now the last time step, that means time=12days is

        julia> vor = ds["vor"][:,:,1,25];
        +julia> pcolormesh(lon,lat,vor')

        Galewsky jet pyplot

        The jet broke up into many small eddies, but the turbulence is still confined to the northern hemisphere, cool! How this may change when we add mountains (we had NoOrography above!), say Earth's orography, you may ask? Let's try it out! We create an EarthOrography struct like so

        julia> orography = EarthOrography(spectral_grid)
        +EarthOrography{Float32, OctahedralGaussianGrid{Float32}}:
        + path::String = SpeedyWeather.jl/input_data
        + file::String = orography_F512.nc
        + scale::Float64 = 1.0
        + smoothing::Bool = true
        + smoothing_power::Float64 = 1.0
        + smoothing_strength::Float64 = 0.1
        + smoothing_truncation::Int64 = 85

        It will read the orography from file as shown, and there are some smoothing options too, but let's not change them. Same as before, create a model, intialize into a simulation, run. This time directly for 12 days so that we can compare with the last plot

        julia> model = ShallowWaterModel(;spectral_grid, orography, initial_conditions);
        +julia> simulation = initialize!(model);
        +julia> run!(simulation,n_days=12,output=true)
        +Weather is speedy: run 0003 100%|███████████████████████| Time: 0:00:35 (79.16 years/day)

        This time the run got the id "0003", but otherwise we do as before.

        Galewsky jet pyplot

        Interesting! The initial conditions have zero velocity in the southern hemisphere, but still, one can see some imprint of the orography on vorticity. You can spot the coastline of Antarctica; the Andes and Greenland are somewhat visible too. Mountains also completely changed the flow after 12 days, probably not surprising!

        SpectralGrid

        The life of every SpeedyWeather.jl simulation starts with a SpectralGrid object. We have seen some examples above, now let's look into the details

        SpeedyWeather.SpectralGridType

        Defines the horizontal spectral resolution and corresponding grid and the vertical coordinate for SpeedyWeather.jl. Options are

        • NF::Type{<:AbstractFloat}: number format used throughout the model

        • trunc::Int64: horizontal resolution as the maximum degree of spherical harmonics

        • Grid::Type{<:SpeedyWeather.RingGrids.AbstractGrid}: horizontal grid used for calculations in grid-point space

        • dealiasing::Float64: how to match spectral with grid resolution: dealiasing factor, 1=linear, 2=quadratic, 3=cubic grid

        • radius::Float64: radius of the sphere [m]

        • nlat_half::Int64: number of latitude rings on one hemisphere (Equator incl)

        • npoints::Int64: total number of grid points in the horizontal

        • nlev::Int64: number of vertical levels

        • vertical_coordinates::SpeedyWeather.VerticalCoordinates: coordinates used to discretize the vertical

        nlat_half and npoints should not be chosen but are derived from trunc, Grid and dealiasing.

        source

        References

        [1] Galewsky, Scott, Polvani, 2004. An initial-value problem for testing numerical models of the global shallow-water equations, Tellus A. DOI: 10.3402/tellusa.v56i5.14436

        diff --git a/previews/PR345/index.html b/previews/PR345/index.html new file mode 100644 index 000000000..340a1e601 --- /dev/null +++ b/previews/PR345/index.html @@ -0,0 +1,2 @@ + +Home · SpeedyWeather.jl

        SpeedyWeather.jl documentation

        Welcome to the documentation for SpeedyWeather.jl a global atmospheric circulation model with simple parametrizations to represent physical processes such as clouds, precipitation and radiation.

        Overview

        SpeedyWeather.jl is a global spectral model that uses a spherical harmonic transform to perform some calculations in spectral space (time integration, gradients, linear terms) and some in grid-point space (advection, non-linear terms, parameterizations). The prognostic variables used are vorticity, divergence, absolute temperature, logarithm of surface pressure and specific humidity. The time stepping uses a leapfrog scheme with additional filters and a semi-implicit formulation for gravity waves. The default resolution is T31 (96x48 grid points on a regular Gaussian grid, about 400km at the Equator) and 8 vertical levels.

        Simple parameterizations are used to represent the physical processes convection, large-scale condensation, clouds, short-wave radiation, long-waves radiation, surface fluxes of momentum and energy, and vertical diffusion.

        Manual outline

        See the following pages of the documentation for more details

        and the submodules

        and the original documentation by Molteni and Kucharski.

        Developers

        The development of SpeedyWeather.jl is lead by Milan Klöwer and current and past contributors include

        Any contributions are always welcome!

        Funding

        MK received funding by the European Research Council under Horizon 2020 within the ITHACA project, grant agreement number 741112 from 2021-2022. Since 2023 this project is also funded by the National Science Foundation NSF.

        diff --git a/previews/PR345/installation/index.html b/previews/PR345/installation/index.html new file mode 100644 index 000000000..841d5e8ae --- /dev/null +++ b/previews/PR345/installation/index.html @@ -0,0 +1,3 @@ + +Installation · SpeedyWeather.jl

        Installation

        SpeedyWeather.jl is registered in the Julia Registry. In most cases just open the Julia REPL and type

        julia> using Pkg
        +julia> Pkg.add("SpeedyWeather")

        which will automatically install the latest release and all necessary dependencies. If you run into any troubles please raise an issue

        However, you may want to make use of the latest features, then install directly from the main branch with

        julia> Pkg.add(url="https://github.com/SpeedyWeather/SpeedyWeather.jl",rev="main")

        other branches than main can be similarly installed.

        Compatibility with Julia versions

        SpeedyWeather.jl usually lives on the latest minor release and/or its predecessor. At the moment (May 2023) this means

        • Julia v1.8
        • Julia v1.9

        are supported, but we dropped the support of earlier versions.

        diff --git a/previews/PR345/lowertriangularmatrices/index.html b/previews/PR345/lowertriangularmatrices/index.html new file mode 100644 index 000000000..b3f448ca2 --- /dev/null +++ b/previews/PR345/lowertriangularmatrices/index.html @@ -0,0 +1,60 @@ + +Submodule: LowerTriangularMatrices · SpeedyWeather.jl

        LowerTriangularMatrices

        LowerTriangularMatrices is a submodule that has been developed for SpeedyWeather.jl which is technically independent (SpeedyWeather.jl however imports it and so does SpeedyTransforms) and can also be used without running simulations. It is just not put into its own respective repository.

        This module defines LowerTriangularMatrix, a lower triangular matrix, which in contrast to LinearAlgebra.LowerTriangular does not store the entries above the diagonal. SpeedyWeather.jl uses LowerTriangularMatrix which is defined as a subtype of AbstractMatrix to store the spherical harmonic coefficients (see Spectral packing).

        Creation of LowerTriangularMatrix

        A LowerTriangularMatrix can be created using zeros,ones,rand, or randn

        julia> using SpeedyWeather.LowerTriangularMatrices
        +
        +julia> L = rand(LowerTriangularMatrix{Float32},5,5)
        +5×5 LowerTriangularMatrix{Float32}:
        + 0.912744   0.0        0.0       0.0       0.0
        + 0.0737592  0.230592   0.0       0.0       0.0
        + 0.799679   0.0765255  0.888098  0.0       0.0
        + 0.670835   0.997938   0.505276  0.492966  0.0
        + 0.949321   0.193692   0.793623  0.152817  0.357968

        or the undef initializor LowerTriangularMatrix{Float32}(undef,3,3). The element type is arbitrary though, you can use any type T too.

        Alternatively, it can be created through conversion from Matrix, which drops the upper triangle entries and sets them to zero

        julia> M = rand(Float16,3,3)
        +3×3 Matrix{Float16}:
        + 0.2222  0.694    0.3452
        + 0.2158  0.04443  0.274
        + 0.9746  0.793    0.6294
        +
        +julia> LowerTriangularMatrix(M)
        +3×3 LowerTriangularMatrix{Float16}:
        + 0.2222  0.0      0.0
        + 0.2158  0.04443  0.0
        + 0.9746  0.793    0.6294

        Indexing LowerTriangularMatrix

        LowerTriangularMatrix supports two types of indexing: 1) by denoting two indices, column and row [l,m] or 2) by denoting a single index [lm]. The double index works as expected

        julia> L
        +3×3 LowerTriangularMatrix{Float16}:
        + 0.1499  0.0    0.0
        + 0.1177  0.478  0.0
        + 0.1709  0.756  0.3223
        +
        +julia> L[2,2]
        +Float16(0.478)

        But the single index skips the zero entries in the upper triangle, i.e.

        julia> L[4]
        +Float16(0.478)

        which, important, is different from single indices of an AbstractMatrix

        julia> Matrix(L)[4]
        +Float16(0.0)

        In performance-critical code a single index should be used, as this directly maps to the index of the underlying data vector. The double index is somewhat slower as it first has to be converted to the corresponding single index.

        Consequently, many loops in SpeedyWeather.jl are build with the following structure

        n,m = size(L)
        +ij = 0
        +for j in 1:m
        +    for i in j:n
        +        ij += 1
        +        L[ij] = i+j
        +    end
        +end

        which loops over all lower triangle entries of L::LowerTriangularMatrix and the single index ij is simply counted up. However, one could also use [i,j] as indices in the loop body or to perform any calculation (i+j here). An iterator over all entries in the lower triangle can be created by

        for ij in eachindex(L)
        +    # do something
        +end

        The setindex! functionality of matrixes will throw a BoundsError when trying to write into the upper triangle of a LowerTriangularMatrix, for example

        julia> L[2,1] = 0    # valid index
        +0
        +
        +julia> L[1,2] = 0    # invalid index in the upper triangle
        +ERROR: BoundsError: attempt to access 3×3 LowerTriangularMatrix{Float32} at index [1, 2]

        Linear algebra with LowerTriangularMatrix

        The LowerTriangularMatrices module's main purpose is not linear algebra, and it's implementation may not be efficient, however, many operations work as expected

        julia> L = rand(LowerTriangularMatrix{Float32},3,3)
        +3×3 LowerTriangularMatrix{Float32}:
        + 0.57649   0.0       0.0
        + 0.348685  0.875371  0.0
        + 0.881923  0.850552  0.998306
        +
        +julia> L + L
        +3×3 LowerTriangularMatrix{Float32}:
        + 1.15298   0.0      0.0
        + 0.697371  1.75074  0.0
        + 1.76385   1.7011   1.99661
        +
        +julia> L * L
        +3×3 Matrix{Float32}:
        + 0.332341  0.0       0.0
        + 0.506243  0.766275  0.0
        + 1.68542   1.59366   0.996616

        Note, however, that the latter includes a conversion to Matrix, which is true for many operations, including inv or \. Hence when trying to do more sophisticated linear algebra with LowerTriangularMatrix we quickly leave lower triangular-land and go back to normal matrix-land.

        Function index

        SpeedyWeather.LowerTriangularMatrices.LowerTriangularMatrixType
        L = LowerTriangularMatrix{T}(v::Vector{T},m::Int,n::Int)

        A lower triangular matrix implementation that only stores the non-zero entries explicitly. L<:AbstractMatrix although in general we have L[i] != Matrix(L)[i], the former skips zero entries, tha latter includes them.

        source
        SpeedyWeather.LowerTriangularMatrices.ij2kFunction
        k = ij2k(   i::Integer,     # row index of matrix
        +            j::Integer,     # column index of matrix
        +            m::Integer)     # number of rows in matrix

        Converts the index pair i,j of an mxn LowerTriangularMatrix L to a single index k that indexes the same element in the corresponding vector that stores only the lower triangle (the non-zero entries) of L.

        source
        Base.fill!Method
        fill!(L::LowerTriangularMatrix,x)

        Fills the elements of L with x. Faster than fill!(::AbstractArray,x) as only the non-zero elements in L are assigned with x.

        source
        SpeedyWeather.LowerTriangularMatrices.eachharmonicFunction
        unit_range = eachharmonic(L::LowerTriangular)

        creates unit_range::UnitRange to loop over all non-zeros in a LowerTriangularMatrix L. Like eachindex but skips the upper triangle with zeros in L.

        source
        unit_range = eachharmonic(Ls::LowerTriangularMatrix...)

        creates unit_range::UnitRange to loop over all non-zeros in the LowerTriangularMatrices provided as arguments. Checks bounds first. All LowerTriangularMatrix's need to be of the same size. Like eachindex but skips the upper triangle with zeros in L.

        source
        diff --git a/previews/PR345/output/index.html b/previews/PR345/output/index.html new file mode 100644 index 000000000..68e29557a --- /dev/null +++ b/previews/PR345/output/index.html @@ -0,0 +1,31 @@ + +NetCDF output · SpeedyWeather.jl

        NetCDF output

        SpeedyWeather.jl uses NetCDF to output the data of a simulation. The following describes the details of this and how to change the way in which the NetCDF output is written. There are many options to this available.

        Accessing the NetCDF output writer

        The output writer is a component of every Model, i.e. BarotropicModel, ShallowWaterModel, PrimitiveDryModel and PrimitiveWetModel, hence a non-default output writer can be passed on as a keyword argument to the model constructor

        julia> spectral_grid = SpectralGrid()
        +julia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry)
        +julia> model = PrimitiveDryModel(;spectral_grid, output=my_output_writer)

        So after we have defined the grid through the SpectralGrid object we can use and change the implemented OutputWriter by passing on the following arguments

        julia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry, kwargs...)

        the spectral_grid has to be the first argument then the model type (Barotropic, ShallowWater, PrimitiveDry, PrimitiveWet) which helps the output writer to make default choices on which variables to output. However, we can also pass on further keyword arguments. So let's start with an example.

        Example 1: NetCDF output every hour

        If we want to increase the frequency of the output we can choose output_dt (default =6 in hours) like so

        julia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry, output_dt=1)
        +julia> model = PrimitiveDryModel(;spectral_grid, output=my_output_writer)

        which will now output every hour. It is important to pass on the new output writer my_output_writer to the model constructor, otherwise it will not be part of your model and the default is used instead. Note that output_dt has to be understood as the minimum frequency or maximum output time step. Example, we run the model at a resolution of T85 and the time step is going to be 670s

        julia> spectral_grid = SpectralGrid(trunc=85)
        +julia> time_stepper = Leapfrog(spectral_grid)
        +Leapfrog{Float32}:
        +...
        + Δt_sec::Int64 = 670
        +...

        This means that after 32 time steps 5h 57min and 20s will have passed where output will happen as the next time step would be >6h. The time axis of the NetCDF output will look like

        julia> using NCDatasets
        +julia> ds = NCDataset("run_0001/output.nc");
        +julia> ds["time"][:]
        +5-element Vector{Dates.DateTime}:
        + 2000-01-01T00:00:00
        + 2000-01-01T05:57:20
        + 2000-01-01T11:54:40
        + 2000-01-01T17:52:00
        + 2000-01-01T23:49:20
        +
        +julia> diff(ds["time"][:])
        +4-element Vector{Dates.Millisecond}:
        + 21440000 milliseconds
        + 21440000 milliseconds
        + 21440000 milliseconds
        + 21440000 milliseconds

        This is so that we don't interpolate in time during output to hit exactly every 6 hours, but at the same time have a constant spacing in time between output time steps.

        Example 2: Output onto a higher/lower resolution grid

        Say we want to run the model at a given horizontal resolution but want to output on another resolution, the OutputWriter takes as argument output_Grid<:AbstractFullGrid and nlat_half::Int. So for example output_Grid=FullClenshawGrid and nlat_half=48 will always interpolate onto a regular 192x95 longitude-latitude grid of 1.875˚ resolution, regardless the grid and resolution used for the model integration.

        julia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry, output_Grid=FullClenshawGrid, nlat_half=48)

        Note that by default the output is on the corresponding full of the grid used in the dynamical core so that interpolation only happens at most in the zonal direction as they share the location of the latitude rings. You can check this by

        julia> RingGrids.full_grid(OctahedralGaussianGrid)
        +FullGaussianGrid

        So the corresponding full grid of an OctahedralGaussianGrid is the FullGaussiangrid and the same resolution nlat_half is chosen by default in the output writer (which you can change though as shown above). Overview of the corresponding full grids

        GridCorresponding full grid
        FullGaussianGridFullGaussianGrid
        FullClenshawGridFullClenshawGrid
        OctahadralGaussianGridFullGaussianGrid
        OctahedralClensawhGridFullClenshawGrid
        HEALPixGridFullHEALPixGrid
        OctaHEALPixGridFullOctaHEALPixGrid

        The grids FullHEALPixGrid, FullOctaHEALPixGrid share the same latitude rings as their reduced grids, but have always as many longitude points as they are at most around the equator. These grids are not tested in the dynamical core (but you may use them experimentally) and mostly designed for output purposes.

        Example 3: Changing the output path or identification

        That's easy by passing on path="/my/favourite/path/" and the folder run_* with * the identification of the run (that's the id keyword, which can be manually set but is also automatically determined as a number counting up depending on which folders already exist) will be created within.

        julia> path = pwd()
        +"/Users/milan"
        +julia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry, path=path)

        This folder must already exist. If you want to give your run a name/identification you can pass on id

        julia> my_output_writer = OutputWriter(spectral_grid,PrimitiveDry,id="diffusion_test");

        which will be used instead of a 4 digit number like 0001, 0002 which is automatically determined if id is not provided. You will see the id of the run in the progress bar

        Weather is speedy: run diffusion_test 100%|███████████████████████| Time: 0:00:12 (19.20 years/day)

        and the run folder, here run_diffusion_test, is also named accordingly

        shell> ls
        +...
        +run_diffusion_test
        +...

        Further options

        Further options are described in the OutputWriter docstring, (also accessible via julia>?OutputWriter for example). Note that some fields are actual options, but others are derived from the options you provided or are arrays/objects the output writer needs, but shouldn't be passed on by the user. The actual options are declared as [OPTION] in the following

        SpeedyWeather.OutputWriterType

        NetCDF output writer. Contains all output options and auxiliary fields for output interpolation. To be initialised with OutputWriter(::SpectralGrid,::Type{<:ModelSetup},kwargs...) to pass on the resolution information and the model type which chooses which variables to output. Options include

        • spectral_grid::SpectralGrid

        • output::Bool

        • path::String: [OPTION] path to output folder, run_???? will be created within

        • id::String: [OPTION] run identification number/string

        • run_path::String

        • filename::String: [OPTION] name of the output netcdf file

        • write_restart::Bool: [OPTION] also write restart file if output==true?

        • pkg_version::VersionNumber

        • startdate::Dates.DateTime

        • output_dt::Float64: [OPTION] output frequency, time step [hrs]

        • output_dt_sec::Int64: actual output time step [sec]

        • output_vars::Vector{Symbol}: [OPTION] which variables to output, u, v, vor, div, pres, temp, humid

        • missing_value::Union{Float32, Float64}: [OPTION] missing value to be used in netcdf output

        • compression_level::Int64: [OPTION] lossless compression level; 1=low but fast, 9=high but slow

        • keepbits::SpeedyWeather.Keepbits: [OPTION] mantissa bits to keep for every variable

        • output_every_n_steps::Int64

        • timestep_counter::Int64

        • output_counter::Int64

        • netcdf_file::Union{Nothing, NetCDF.NcFile}

        • input_Grid::Type{<:SpeedyWeather.RingGrids.AbstractGrid}

        • as_matrix::Bool: [OPTION] sort grid points into a matrix (interpolation-free), for OctahedralClenshawGrid, OctaHEALPixGrid only

        • quadrant_rotation::NTuple{4, Int64}

        • matrix_quadrant::NTuple{4, Tuple{Int64, Int64}}

        • output_Grid::Type{<:SpeedyWeather.RingGrids.AbstractFullGrid}: [OPTION] the grid used for output, full grids only

        • nlat_half::Int64: [OPTION] the resolution of the output grid, default: same nlat_half as in the dynamical core

        • nlon::Int64

        • nlat::Int64

        • npoints::Int64

        • nlev::Int64

        • interpolator::SpeedyWeather.RingGrids.AbstractInterpolator

        • u::Matrix{NF} where NF<:Union{Float32, Float64}

        • v::Matrix{NF} where NF<:Union{Float32, Float64}

        • vor::Matrix{NF} where NF<:Union{Float32, Float64}

        • div::Matrix{NF} where NF<:Union{Float32, Float64}

        • temp::Matrix{NF} where NF<:Union{Float32, Float64}

        • pres::Matrix{NF} where NF<:Union{Float32, Float64}

        • humid::Matrix{NF} where NF<:Union{Float32, Float64}

        • precip_cond::Matrix{NF} where NF<:Union{Float32, Float64}

        • precip_conv::Matrix{NF} where NF<:Union{Float32, Float64}

        source
        diff --git a/previews/PR345/parametrizations/index.html b/previews/PR345/parametrizations/index.html new file mode 100644 index 000000000..e4abf550b --- /dev/null +++ b/previews/PR345/parametrizations/index.html @@ -0,0 +1,2 @@ + +Parameterizations · SpeedyWeather.jl
        diff --git a/previews/PR345/ringgrids/index.html b/previews/PR345/ringgrids/index.html new file mode 100644 index 000000000..af568c7b6 --- /dev/null +++ b/previews/PR345/ringgrids/index.html @@ -0,0 +1,298 @@ + +Submodule: RingGrids · SpeedyWeather.jl

        RingGrids

        RingGrids is a submodule that has been developed for SpeedyWeather.jl which is technically independent (SpeedyWeather.jl however imports it and so does SpeedyTransforms) and can also be used without running simulations. It is just not put into its own respective repository.

        RingGrids defines several iso-latitude grids, which are mathematically described in the section on Grids. In brief, they include the regular latitude-longitude grids (here called FullClenshawGrid) as well as grids which latitudes are shifted to the Gaussian latitudes and reduced grids, meaning that they have a decreasing number of longitudinal points towards the poles to be more equal-area than full grids.

        RingGrids defines and exports the following grids:

        • full grids: FullClenshawGrid, FullGaussianGrid, FullHEALPix, and FullOctaHEALPix
        • reduced grids: OctahedralGaussianGrid, OctahedralClenshawGrid, OctaHEALPixGrid and HEALPixGrid

        The following explanation of how to use these can be mostly applied to any of them, however, there are certain functions that are not defined, e.g. the full grids can be trivially converted to a Matrix but not the OctahedralGaussianGrid.

        What is a ring?

        We use the term ring, short for iso-latitude ring, to refer to a sequence of grid points that all share the same latitude. A latitude-longitude grid is a ring grid, as it organises its grid-points into rings. However, other grids, like the cubed-sphere are not based on iso-latitude rings. SpeedyWeather.jl only works with ring grids because its a requirement for the Spherical Harmonic Transform to be efficient. See Grids.

        Creating data on a RingGrid

        Every grid in RingGrids has a grid.data field, which is a vector containing the data on the grid. The grid points are unravelled west to east then north to south, meaning that it starts at 90˚N and 0˚E then walks eastward for 360˚ before jumping on the next latitude ring further south, this way circling around the sphere till reaching the south pole. This may also be called ring order.

        Data in a Matrix which follows this ring order can be put on a FullGaussianGrid like so

        using SpeedyWeather.RingGrids
        +map = randn(Float32,8,4)
        8×4 Matrix{Float32}:
        + -1.45584   -0.87637     0.483682   -0.32943
        +  1.04579   -0.446398   -1.85678     0.15581
        + -0.463623   1.00337     2.22749    -0.00237068
        +  0.346504  -0.0948097   0.698287    3.02788
        +  0.113442   1.36116     0.789319   -0.69284
        +  0.657802   0.716771    0.42062     0.466992
        + -1.14133   -0.214929   -0.0806216   1.09139
        +  0.172234   0.35121    -0.220773    0.79166
        grid = FullGaussianGrid(map)
        32-element, 4-ring FullGaussianGrid{Float32}:
        + -1.4558407
        +  1.0457866
        + -0.4636226
        +  0.34650445
        +  0.113441736
        +  0.6578017
        + -1.1413342
        +  0.17223364
        + -0.8763701
        + -0.44639763
        +  ⋮
        + -0.22077347
        + -0.32942954
        +  0.15580992
        + -0.0023706798
        +  3.0278828
        + -0.69284
        +  0.46699166
        +  1.0913888
        +  0.7916604

        A full Gaussian grid has always $2N$ x $N$ grid points, but a FullClenshawGrid has $2N$ x $N-1$, if those dimensions don't match, the creation will throw an error. To reobtain the data from a grid, you can access its data field which returns a normal Vector

        grid.data
        32-element Vector{Float32}:
        + -1.4558407
        +  1.0457866
        + -0.4636226
        +  0.34650445
        +  0.113441736
        +  0.6578017
        + -1.1413342
        +  0.17223364
        + -0.8763701
        + -0.44639763
        +  ⋮
        + -0.22077347
        + -0.32942954
        +  0.15580992
        + -0.0023706798
        +  3.0278828
        + -0.69284
        +  0.46699166
        +  1.0913888
        +  0.7916604

        Which can be reshaped to reobtain map from above. Alternatively you can Matrix(grid) to do this in one step

        map == Matrix(FullGaussianGrid(map))
        true

        You can also use zeros,ones,rand,randn to create a grid, whereby nlat_half, i.e. the number of latitude rings on one hemisphere, Equator included, is used as a resolution parameter and here as a second argument.

        nlat_half = 4
        +grid = randn(OctahedralGaussianGrid{Float16},nlat_half)
        208-element, 8-ring OctahedralGaussianGrid{Float16}:
        + -2.414
        + -0.2122
        +  1.102
        +  1.035
        + -1.638
        +  1.378
        +  0.1737
        + -0.822
        + -1.241
        + -0.03836
        +  ⋮
        +  1.239
        + -0.9683
        +  0.6616
        + -0.857
        +  1.128
        +  2.266
        +  0.873
        +  1.656
        +  0.8667

        and any element type T can be used for OctahedralGaussianGrid{T} and similar for other grid types.

        Visualising RingGrid data

        As only the full grids can be reshaped into a matrix, the underyling data structure of any AbstractGrid is a vector. As shown in the examples above, one can therefore inspect the data as if it was a vector. But as that data has, through its <:AbstractGrid type, all the geometric information available to plot it on a map, RingGrids also exports plot function, based on UnicodePlots' heatmap.

        nlat_half = 24
        +grid = randn(OctahedralGaussianGrid,nlat_half)
        +plot(grid)
                           48-ring OctahedralGaussianGrid{Float64}                
        +       ┌────────────────────────────────────────────────────────────┐  3  
        +    90 ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ┌──┐
        +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄
        +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄
        +       ▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄
        +       ▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄
        +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄
        +       ▄▄▄▄▄▄▄▄▄ ▄▄
        +    ˚N ▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄
        +       ▄▄▄▄▄▄▄▄ ▄▄
        +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄
        +       ▄▄ ▄▄
        +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄
        +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄
        +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄
        +   -90 ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ └──┘
        +       └────────────────────────────────────────────────────────────┘ -3  
        +        0                           ˚E                           360      

        Indexing RingGrids

        All RingGrids have a single index ij which follows the ring order. While this is obviously not super exciting here are some examples how to make better use of the information that the data sits on a grid.

        We obtain the latitudes of the rings of a grid by calling get_latd (get_lond is only defined for full grids, or use get_latdlonds for latitudes, longitudes per grid point not per ring)

        grid = randn(OctahedralClenshawGrid,5)
        +latd = get_latd(grid)
        9-element Vector{Float64}:
        +  72.0
        +  54.0
        +  36.0
        +  18.0
        +   0.0
        + -18.0
        + -36.0
        + -54.0
        + -72.0

        Now we could calculate Coriolis and add it on the grid as follows

        rotation = 7.29e-5                  # angular frequency of Earth's rotation [rad/s]
        +coriolis = 2rotation*sind.(latd)    # vector of coriolis parameters per latitude ring
        +
        +rings = eachring(grid)
        +for (j,ring) in enumerate(rings)
        +    f = coriolis[j]
        +    for ij in ring
        +        grid[ij] += f
        +    end
        +end

        eachring creates a vector of UnitRange indices, such that we can loop over the ring index j (j=1 being closest to the North pole) pull the coriolis parameter at that latitude and then loop over all in-ring indices i (changing longitudes) to do something on the grid. Something similar can be done to scale/unscale with the cosine of latitude for example. We can always loop over all grid-points like so

        for ij in eachgridpoint(grid)
        +    grid[ij]
        +end

        or use eachindex instead.

        Interpolation on RingGrids

        In most cases we will want to use RingGrids so that our data directly comes with the geometric information of where the grid-point is one the sphere. We have seen how to use get_latd, get_lond, ... for that above. This information generally can also be used to interpolate our data from grid to another or to request an interpolated value on some coordinates. Using our data on grid which is an OctahedralGaussianGrid from above we can use the interpolate function to get it onto a FullGaussianGrid (or any other grid for purpose)

        grid = randn(OctahedralGaussianGrid{Float32},4)
        208-element, 8-ring OctahedralGaussianGrid{Float32}:
        +  0.9347028
        +  0.66607314
        + -0.82336354
        +  0.75881076
        +  1.3542228
        +  0.011149826
        + -1.7422377
        +  0.34815848
        + -0.3609308
        + -0.5151496
        +  ⋮
        + -0.5949575
        +  0.37947777
        +  0.047257155
        +  0.052014906
        +  0.7216493
        +  1.4980699
        + -1.9188861
        +  2.053336
        + -1.6803162
        interpolate(FullGaussianGrid,grid)
        128-element, 8-ring FullGaussianGrid{Float64}:
        +  0.9347028136253357
        +  0.2937139868736267
        + -0.03227639198303223
        +  1.205369770526886
        +  0.01114982645958662
        + -1.2196386456489563
        + -0.006386160850524902
        + -0.4765948951244354
        +  0.6247425675392151
        +  1.2248631864786148
        +  ⋮
        + -0.044034749269485474
        + -0.6250801086425781
        + -0.3513486683368683
        +  0.21336746215820312
        +  0.05082546826452016
        +  0.7216492891311646
        +  0.6438308954238892
        +  0.06722486019134521
        + -0.7469031810760498

        By default this will linearly interpolate (it's an Anvil interpolator, see below) onto a grid with the same nlat_half, but we can also coarse-grain or fine-grain by specifying nlat_half directly as 2nd argument

        interpolate(FullGaussianGrid,6,grid)
        288-element, 12-ring FullGaussianGrid{Float64}:
        +  0.6517236742930131
        +  0.49945279081793087
        + -0.2064229232417754
        + -0.006026951071195892
        +  0.6670819150121898
        +  0.7848237556480935
        +  0.023512073317508205
        + -0.9703836280542504
        + -0.2212213624730603
        +  0.011583888561613728
        +  ⋮
        +  0.1283508716567905
        +  0.01643944707126483
        +  0.09451249802604765
        +  0.4740901467246468
        +  0.9141988272781321
        + -0.5472818447443941
        +  0.028942955459070864
        +  0.5333610179197369
        + -0.9695971845957787

        So we got from an 8-ring OctahedralGaussianGrid{Float16} to a 12-ring FullGaussianGrid{Float64}, so it did a conversion from Float16 to Float64 on the fly too, because the default precision is Float64 unless specified. interpolate(FullGaussianGrid{Float16},6,grid) would have interpolated onto a grid with element type Float16.

        One can also interpolate onto a give cordinate ˚N, ˚E like so

        interpolate(30.0,10.0,grid)
        0.71075565f0

        we interpolated the data from grid onto 30˚N, 10˚E. To do this simultaneously for many coordinates they can be packed into a vector too

        interpolate([30.0,40.0,50.0],[10.0,10.0,10.0],grid)
        3-element Vector{Float32}:
        + 0.71075565
        + 0.5374769
        + 0.43823114

        which returns the data on grid at 30˚N, 40˚N, 50˚N, and 10˚E respectively. Note how the interpolation here retains the element type of grid.

        Performance for RingGrid interpolation

        Every time an interpolation like interpolate(30.0,10.0,grid) is called, several things happen, which are important to understand to know how to get the fastest interpolation out of this module in a given situation. Under the hood an interpolation takes three arguments

        • output vector
        • input grid
        • interpolator

        The output vector is just an array into which the interpolated data is written, providing this prevents unnecessary allocation of memory in case the destination array of the interpolation already exists. The input grid contains the data which is subject to interpolation, it must come on a ring grid, however, its coordinate information is actually already in the interpolator. The interpolator knows about the geometry of the grid the data is coming on and the coordinates it is supposed to interpolate onto. It has therefore precalculated the indices that are needed to access the right data on the input grid and the weights it needs to apply in the actual interplation operation. The only thing it does not know is the actual data values of that grid. So in the case you want to interpolate from grid A to grid B many times, you can just reuse the same interpolator. If you want to change the coordinates of the output grid but its total number of points remain constants then you can update the locator inside the interpolator and only else you will need to create a new interpolator. Let's look at this in practice. Say we have two grids an want to interpolate between them

        grid_in = rand(HEALPixGrid,4)
        +grid_out = zeros(FullClenshawGrid,6)
        +interp = RingGrids.interpolator(grid_out,grid_in)
        SpeedyWeather.RingGrids.AnvilInterpolator{Float64, HEALPixGrid{Float64}}(SpeedyWeather.RingGrids.GridGeometry{HEALPixGrid{Float64}}(4, 7, 48, [90.0, 66.44353569089876, 41.8103148957786, 19.471220634490685, 0.0, -19.47122063449071, -41.81031489577862, -66.44353569089876, -90.00000000000001], [45.0, 135.0, 225.0, 315.0, 22.5, 67.5, 112.5, 157.5, 202.5, 247.49999999999997  …  112.5, 157.5, 202.5, 247.49999999999997, 292.5, 337.5, 45.0, 135.0, 225.0, 315.0], UnitRange{Int64}[1:4, 5:12, 13:20, 21:28, 29:36, 37:44, 45:48], [4, 8, 8, 8, 8, 8, 4], [45.0, 22.5, 0.0, 22.5, 0.0, 22.5, 45.0]), SpeedyWeather.RingGrids.AnvilLocator{Float64}(264, [0, 0, 0, 0, 0, 0, 0, 0, 0, 0  …  7, 7, 7, 7, 7, 7, 7, 7, 7, 7], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0  …  46, 46, 47, 47, 47, 47, 47, 48, 48, 48], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0  …  47, 47, 48, 48, 48, 48, 48, 45, 45, 45], [4, 4, 4, 1, 1, 1, 1, 1, 1, 2  …  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1], [1, 1, 1, 2, 2, 2, 2, 2, 2, 3  …  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1], [0.6367678868600251, 0.6367678868600251, 0.6367678868600251, 0.6367678868600251, 0.6367678868600251, 0.6367678868600251, 0.6367678868600251, 0.6367678868600251, 0.6367678868600251, 0.6367678868600251  …  0.3632321131399741, 0.3632321131399741, 0.3632321131399741, 0.3632321131399741, 0.3632321131399741, 0.3632321131399741, 0.3632321131399741, 0.3632321131399741, 0.3632321131399741, 0.3632321131399741], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0  …  0.8333333333333333, 0.9999999999999998, 0.16666666666666652, 0.33333333333333304, 0.5, 0.6666666666666665, 0.8333333333333326, 0.0, 0.16666666666666652, 0.3333333333333326], [0.5, 0.6666666666666667, 0.8333333333333333, 0.0, 0.16666666666666657, 0.33333333333333315, 0.5, 0.6666666666666666, 0.8333333333333331, 0.0  …  0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]))

        Now we have created an interpolator interp which knows about the geometry where to interpolate from and the coordinates there to interpolate to. It is also initialized, meaning it has precomputed the indices to of grid_in that are supposed to be used. It just does not know about the data of grid_in (and neither of grid_out which will be overwritten anyway). We can now do

        interpolate!(grid_out,grid_in,interp)
        +grid_out
        264-element, 11-ring FullClenshawGrid{Float64}:
        + 0.7128113543905762
        + 0.7311957129830826
        + 0.749580071575589
        + 0.7679644301680955
        + 0.7278410401158308
        + 0.6877176500635662
        + 0.6475942600113015
        + 0.6074708699590369
        + 0.5673474799067724
        + 0.5272240898545076
        + ⋮
        + 0.48619775744872246
        + 0.42789365075262964
        + 0.3695895440565369
        + 0.3112854373604439
        + 0.25298133066435113
        + 0.1946772239682585
        + 0.1363731172721654
        + 0.1551344623618907
        + 0.17389580745161598

        which is identical to interpolate(grid_out,grid_in) but you can reuse interp for other data. The interpolation can also handle various element types (the interpolator interp does not have to be updated for this either)

        grid_out = zeros(FullClenshawGrid{Float16},6);
        +interpolate!(grid_out,grid_in,interp)
        +grid_out
        264-element, 11-ring FullClenshawGrid{Float16}:
        + 0.713
        + 0.731
        + 0.7495
        + 0.768
        + 0.728
        + 0.6875
        + 0.6475
        + 0.6074
        + 0.5674
        + 0.5273
        + ⋮
        + 0.486
        + 0.428
        + 0.3696
        + 0.3113
        + 0.253
        + 0.1947
        + 0.1364
        + 0.1552
        + 0.174

        and we have converted data from a HEALPixGrid{Float64} (Float64 is always default if not specified) to a FullClenshawGrid{Float16} including the type conversion Float64-Float16 on the fly. Technically there are three data types and their combinations possible: The input data will come with a type, the output array has an element type and the interpolator has precomputed weights with a given type. Say we want to go from Float16 data on an OctahedralGaussianGrid to Float16 on a FullClenshawGrid but using Float32 precision for the interpolation itself, we would do this by

        grid_in = randn(OctahedralGaussianGrid{Float16},24)
        +grid_out = zeros(FullClenshawGrid{Float16},24)
        +interp = RingGrids.interpolator(Float32,grid_out,grid_in)
        +interpolate!(grid_out,grid_in,interp)
        +grid_out
        4512-element, 47-ring FullClenshawGrid{Float16}:
        +  0.443
        +  0.402
        +  0.361
        +  0.3203
        +  0.2793
        +  0.2228
        +  0.3252
        +  0.4277
        +  0.5303
        +  0.6587
        +  ⋮
        +  0.1974
        +  0.03336
        + -0.0624
        + -0.1582
        + -0.254
        + -0.2065
        + -0.1865
        + -0.1666
        + -0.1466

        As a last example we want to illustrate a situation where we would always want to interplate onto 10 coordinates, but their locations may change. In order to avoid recreating an interpolator object we would do (AnvilInterpolator is described in Anvil interpolator)

        npoints = 10    # number of coordinates to interpolate onto
        +interp = AnvilInterpolator(Float32,HEALPixGrid,24,npoints)
        SpeedyWeather.RingGrids.AnvilInterpolator{Float32, HEALPixGrid}(SpeedyWeather.RingGrids.GridGeometry{HEALPixGrid}(24, 47, 1728, [90.0, 86.10076357950555, 82.19700324028634, 78.28414760510762, 74.35752898700072, 70.41233167174659, 66.44353569089876, 62.445854167002665, 58.41366190347208, 54.34091230386124  …  -54.340912303861266, -58.41366190347208, -62.445854167002665, -66.44353569089876, -70.41233167174661, -74.35752898700072, -78.28414760510763, -82.19700324028634, -86.10076357950557, -90.00000000000001], [45.0, 135.0, 225.0, 315.0, 22.5, 67.5, 112.5, 157.5, 202.5, 247.49999999999997  …  112.5, 157.5, 202.5, 247.49999999999997, 292.5, 337.5, 45.0, 135.0, 225.0, 315.0], UnitRange{Int64}[1:4, 5:12, 13:24, 25:40, 41:60, 61:84, 85:112, 113:144, 145:180, 181:220  …  1509:1548, 1549:1584, 1585:1616, 1617:1644, 1645:1668, 1669:1688, 1689:1704, 1705:1716, 1717:1724, 1725:1728], [4, 8, 12, 16, 20, 24, 28, 32, 36, 40  …  40, 36, 32, 28, 24, 20, 16, 12, 8, 4], [45.0, 22.5, 14.999999999999998, 11.25, 9.0, 7.499999999999999, 6.428571428571429, 5.625, 5.0, 4.5  …  4.5, 5.0, 5.625, 6.428571428571429, 7.499999999999999, 9.0, 11.25, 14.999999999999998, 22.5, 45.0]), SpeedyWeather.RingGrids.AnvilLocator{Float32}(10, [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], Float32[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], Float32[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], Float32[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]))

        with the first argument being the number format used during interpolation, then the input grid type, its resolution in terms of nlat_half and then the number of points to interpolate onto. However, interp is not yet initialized as it does not know about the destination coordinates yet. Let's define them, but note that we already decided there's only 10 of them above.

        latds = collect(0.0:5.0:45.0)
        +londs = collect(-10.0:2.0:8.0)

        now we can update the locator inside our interpolator as follows

        RingGrids.update_locator!(interp,latds,londs)

        With data matching the input from above, a nlat_half=24 HEALPixGrid, and allocate 10-element output vector

        output_vec = zeros(10)
        +grid_input = rand(HEALPixGrid,24)

        we can use the interpolator as follows

        interpolate!(output_vec,grid_input,interp)
        10-element Vector{Float64}:
        + 0.12032982875379031
        + 0.670365733212303
        + 0.3179754619792321
        + 0.09292063394494698
        + 0.33171144071501524
        + 0.5866063817323297
        + 0.2845825780949626
        + 0.5289179078040476
        + 0.6316451896831239
        + 0.4768835509125239

        which is the approximately the same as doing it directly without creating an interpolator first and updating its locator

        interpolate(latds,londs,grid_input)
        10-element Vector{Float64}:
        + 0.12032982547290684
        + 0.6703657319219383
        + 0.31797546085617434
        + 0.0929206298667398
        + 0.33171144145535714
        + 0.5866063767614985
        + 0.28458257673026577
        + 0.5289179140744887
        + 0.6316451804787512
        + 0.4768835518327924

        but allows for a reuse of the interpolator. Note that the two output arrays are not exactly identical because we manually set our interpolator interp to use Float32 for the interplation whereas the default is Float64.

        Anvil interpolator

        Currently the only interpolator implemented is a 4-point bilinear interpolator, which schematically works as follows. Anvil interpolation is the bilinear average of a,b,c,d which are values at grid points in an anvil-shaped configuration at location x, which is denoted by Δab,Δcd,Δy, the fraction of distances between a-b,c-d, and ab-cd, respectively. Note that a,c and b,d do not necessarily share the same longitude/x-coordinate.

                0..............1    # fraction of distance Δab between a,b
        +        |<  Δab   >|
        +
        +0^      a -------- o - b    # anvil-shaped average of a,b,c,d at location x
        +.Δy                |
        +.                  |
        +.v                 x 
        +.                  |
        +1         c ------ o ---- d
        +
        +          |<  Δcd >|
        +          0...............1 # fraction of distance Δcd between c,d
        +
        +^ fraction of distance Δy between a-b and c-d.

        This interpolation is chosen as by definiton of the ring grids, a and b share the same latitude, so do c and d, but the longitudes can be different for all four, a,b,c,d.

        Function index

        SpeedyWeather.RingGrids.eachringFunction
        eachring(grid::SpeedyWeather.RingGrids.AbstractGrid) -> Any
        +

        Vector{UnitRange} rings to loop over every ring of grid grid and then each grid point per ring. To be used like

        rings = eachring(grid)
        +for ring in rings
        +    for ij in ring
        +        grid[ij]
        source
        eachring(
        +    grid1::SpeedyWeather.RingGrids.AbstractGrid,
        +    grids::Grid<:SpeedyWeather.RingGrids.AbstractGrid...
        +) -> Any
        +

        Same as eachring(grid) but performs a bounds check to assess that all grids in grids are of same size.

        source
        SpeedyWeather.RingGrids.whichringFunction
        whichring(
        +    ij::Integer,
        +    rings::Vector{UnitRange{Int64}}
        +) -> Int64
        +

        Obtain ring index j from gridpoint ij and Vector{UnitRange} describing rind indices as obtained from eachring(::Grid)

        source
        SpeedyWeather.RingGrids.get_nlonsFunction
        get_nlons(
        +    Grid::Type{<:SpeedyWeather.RingGrids.AbstractGrid},
        +    nlat_half::Integer;
        +    both_hemispheres
        +) -> Any
        +

        Returns a vector nlons for the number of longitude points per latitude ring, north to south. Provide grid Grid and its resolution parameter nlat_half. For both_hemisphere==false only the northern hemisphere (incl Equator) is returned.

        source
        diff --git a/previews/PR345/run_0001/output.nc b/previews/PR345/run_0001/output.nc new file mode 100644 index 0000000000000000000000000000000000000000..33de05ffc25cc06414a2b8f54deb1feb44e1e6b7 GIT binary patch literal 1663322 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

        4{uGgI%dPXY= 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

        S_b>k?{#-FcCg6Z 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 B(>4kL;t5rJh(I$H^G1!R5<@ff>))Z`la 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 z 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

        HqF)$o22S0ld(kfBg;Uq1(66Zr=f}{yl6AZvAoR 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�_W5(BJ_FghjI!e~nshbgJ-|M(C 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 z

          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%0AG~;%`xUbU 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

          ^_o!l{e+Z^yyCKJ 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 I5#%QRU!P?VQ2+n{ literal 0 HcmV?d00001 diff --git a/previews/PR345/search/index.html b/previews/PR345/search/index.html new file mode 100644 index 000000000..9e3ee1634 --- /dev/null +++ b/previews/PR345/search/index.html @@ -0,0 +1,2 @@ + +Search · SpeedyWeather.jl

          diff --git a/previews/PR345/search_index.js b/previews/PR345/search_index.js new file mode 100644 index 000000000..83f634f78 --- /dev/null +++ b/previews/PR345/search_index.js @@ -0,0 +1,3 @@ +var documenterSearchIndex = {"docs": +[{"location":"development/#Development-notes","page":"Development notes","title":"Development notes","text":"","category":"section"},{"location":"development/","page":"Development notes","title":"Development notes","text":"To run tests, from the path of your local clone of the repository do:","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"julia --project=. -e 'import Pkg; Pkg.test()'","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"To install dependencies:","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"julia --project -e 'import Pkg; Pkg.instantiate()`","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"then opening:","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"julia --project","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"you are able to using SpeedyWeather.","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"To generate the docs:","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"julia --project=docs -e 'import Pkg; Pkg.develop(path=\".\"); Pkg.instantiate()'\njulia --project=docs docs/make.jl","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"If the docs are generated successfully, you view them by opening docs/build/index.html in your favorite browser.","category":"page"},{"location":"installation/#Installation","page":"Installation","title":"Installation","text":"","category":"section"},{"location":"installation/","page":"Installation","title":"Installation","text":"SpeedyWeather.jl is registered in the Julia Registry. In most cases just open the Julia REPL and type","category":"page"},{"location":"installation/","page":"Installation","title":"Installation","text":"julia> using Pkg\njulia> Pkg.add(\"SpeedyWeather\")","category":"page"},{"location":"installation/","page":"Installation","title":"Installation","text":"which will automatically install the latest release and all necessary dependencies. If you run into any troubles please raise an issue","category":"page"},{"location":"installation/","page":"Installation","title":"Installation","text":"However, you may want to make use of the latest features, then install directly from the main branch with","category":"page"},{"location":"installation/","page":"Installation","title":"Installation","text":"julia> Pkg.add(url=\"https://github.com/SpeedyWeather/SpeedyWeather.jl\",rev=\"main\")","category":"page"},{"location":"installation/","page":"Installation","title":"Installation","text":"other branches than main can be similarly installed.","category":"page"},{"location":"installation/#Compatibility-with-Julia-versions","page":"Installation","title":"Compatibility with Julia versions","text":"","category":"section"},{"location":"installation/","page":"Installation","title":"Installation","text":"SpeedyWeather.jl usually lives on the latest minor release and/or its predecessor. At the moment (May 2023) this means ","category":"page"},{"location":"installation/","page":"Installation","title":"Installation","text":"Julia v1.8\nJulia v1.9","category":"page"},{"location":"installation/","page":"Installation","title":"Installation","text":"are supported, but we dropped the support of earlier versions.","category":"page"},{"location":"output/#NetCDF-output","page":"NetCDF output","title":"NetCDF output","text":"","category":"section"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"SpeedyWeather.jl uses NetCDF to output the data of a simulation. The following describes the details of this and how to change the way in which the NetCDF output is written. There are many options to this available.","category":"page"},{"location":"output/#Accessing-the-NetCDF-output-writer","page":"NetCDF output","title":"Accessing the NetCDF output writer","text":"","category":"section"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"The output writer is a component of every Model, i.e. BarotropicModel, ShallowWaterModel, PrimitiveDryModel and PrimitiveWetModel, hence a non-default output writer can be passed on as a keyword argument to the model constructor","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"julia> spectral_grid = SpectralGrid()\njulia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry)\njulia> model = PrimitiveDryModel(;spectral_grid, output=my_output_writer)","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"So after we have defined the grid through the SpectralGrid object we can use and change the implemented OutputWriter by passing on the following arguments","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"julia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry, kwargs...)","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"the spectral_grid has to be the first argument then the model type (Barotropic, ShallowWater, PrimitiveDry, PrimitiveWet) which helps the output writer to make default choices on which variables to output. However, we can also pass on further keyword arguments. So let's start with an example.","category":"page"},{"location":"output/#Example-1:-NetCDF-output-every-hour","page":"NetCDF output","title":"Example 1: NetCDF output every hour","text":"","category":"section"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"If we want to increase the frequency of the output we can choose output_dt (default =6 in hours) like so","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"julia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry, output_dt=1)\njulia> model = PrimitiveDryModel(;spectral_grid, output=my_output_writer)","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"which will now output every hour. It is important to pass on the new output writer my_output_writer to the model constructor, otherwise it will not be part of your model and the default is used instead. Note that output_dt has to be understood as the minimum frequency or maximum output time step. Example, we run the model at a resolution of T85 and the time step is going to be 670s","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"julia> spectral_grid = SpectralGrid(trunc=85)\njulia> time_stepper = Leapfrog(spectral_grid)\nLeapfrog{Float32}:\n...\n Δt_sec::Int64 = 670\n...","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"This means that after 32 time steps 5h 57min and 20s will have passed where output will happen as the next time step would be >6h. The time axis of the NetCDF output will look like","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"julia> using NCDatasets\njulia> ds = NCDataset(\"run_0001/output.nc\");\njulia> ds[\"time\"][:]\n5-element Vector{Dates.DateTime}:\n 2000-01-01T00:00:00\n 2000-01-01T05:57:20\n 2000-01-01T11:54:40\n 2000-01-01T17:52:00\n 2000-01-01T23:49:20\n\njulia> diff(ds[\"time\"][:])\n4-element Vector{Dates.Millisecond}:\n 21440000 milliseconds\n 21440000 milliseconds\n 21440000 milliseconds\n 21440000 milliseconds","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"This is so that we don't interpolate in time during output to hit exactly every 6 hours, but at the same time have a constant spacing in time between output time steps.","category":"page"},{"location":"output/#Example-2:-Output-onto-a-higher/lower-resolution-grid","page":"NetCDF output","title":"Example 2: Output onto a higher/lower resolution grid","text":"","category":"section"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"Say we want to run the model at a given horizontal resolution but want to output on another resolution, the OutputWriter takes as argument output_Grid<:AbstractFullGrid and nlat_half::Int. So for example output_Grid=FullClenshawGrid and nlat_half=48 will always interpolate onto a regular 192x95 longitude-latitude grid of 1.875˚ resolution, regardless the grid and resolution used for the model integration.","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"julia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry, output_Grid=FullClenshawGrid, nlat_half=48)","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"Note that by default the output is on the corresponding full of the grid used in the dynamical core so that interpolation only happens at most in the zonal direction as they share the location of the latitude rings. You can check this by","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"julia> RingGrids.full_grid(OctahedralGaussianGrid)\nFullGaussianGrid","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"So the corresponding full grid of an OctahedralGaussianGrid is the FullGaussiangrid and the same resolution nlat_half is chosen by default in the output writer (which you can change though as shown above). Overview of the corresponding full grids","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"Grid Corresponding full grid\nFullGaussianGrid FullGaussianGrid\nFullClenshawGrid FullClenshawGrid\nOctahadralGaussianGrid FullGaussianGrid\nOctahedralClensawhGrid FullClenshawGrid\nHEALPixGrid FullHEALPixGrid\nOctaHEALPixGrid FullOctaHEALPixGrid","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"The grids FullHEALPixGrid, FullOctaHEALPixGrid share the same latitude rings as their reduced grids, but have always as many longitude points as they are at most around the equator. These grids are not tested in the dynamical core (but you may use them experimentally) and mostly designed for output purposes.","category":"page"},{"location":"output/#Example-3:-Changing-the-output-path-or-identification","page":"NetCDF output","title":"Example 3: Changing the output path or identification","text":"","category":"section"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"That's easy by passing on path=\"/my/favourite/path/\" and the folder run_* with * the identification of the run (that's the id keyword, which can be manually set but is also automatically determined as a number counting up depending on which folders already exist) will be created within.","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"julia> path = pwd()\n\"/Users/milan\"\njulia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry, path=path)","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"This folder must already exist. If you want to give your run a name/identification you can pass on id","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"julia> my_output_writer = OutputWriter(spectral_grid,PrimitiveDry,id=\"diffusion_test\");","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"which will be used instead of a 4 digit number like 0001, 0002 which is automatically determined if id is not provided. You will see the id of the run in the progress bar","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"Weather is speedy: run diffusion_test 100%|███████████████████████| Time: 0:00:12 (19.20 years/day)","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"and the run folder, here run_diffusion_test, is also named accordingly","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"shell> ls\n...\nrun_diffusion_test\n...","category":"page"},{"location":"output/#Further-options","page":"NetCDF output","title":"Further options","text":"","category":"section"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"Further options are described in the OutputWriter docstring, (also accessible via julia>?OutputWriter for example). Note that some fields are actual options, but others are derived from the options you provided or are arrays/objects the output writer needs, but shouldn't be passed on by the user. The actual options are declared as [OPTION] in the following","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"OutputWriter","category":"page"},{"location":"output/#SpeedyWeather.OutputWriter","page":"NetCDF output","title":"SpeedyWeather.OutputWriter","text":"NetCDF output writer. Contains all output options and auxiliary fields for output interpolation. To be initialised with OutputWriter(::SpectralGrid,::Type{<:ModelSetup},kwargs...) to pass on the resolution information and the model type which chooses which variables to output. Options include\n\nspectral_grid::SpectralGrid\noutput::Bool\npath::String: [OPTION] path to output folder, run_???? will be created within\nid::String: [OPTION] run identification number/string\nrun_path::String\nfilename::String: [OPTION] name of the output netcdf file\nwrite_restart::Bool: [OPTION] also write restart file if output==true?\npkg_version::VersionNumber\nstartdate::Dates.DateTime\noutput_dt::Float64: [OPTION] output frequency, time step [hrs]\noutput_dt_sec::Int64: actual output time step [sec]\noutput_vars::Vector{Symbol}: [OPTION] which variables to output, u, v, vor, div, pres, temp, humid\nmissing_value::Union{Float32, Float64}: [OPTION] missing value to be used in netcdf output\ncompression_level::Int64: [OPTION] lossless compression level; 1=low but fast, 9=high but slow\nkeepbits::SpeedyWeather.Keepbits: [OPTION] mantissa bits to keep for every variable\noutput_every_n_steps::Int64\ntimestep_counter::Int64\noutput_counter::Int64\nnetcdf_file::Union{Nothing, NetCDF.NcFile}\ninput_Grid::Type{<:SpeedyWeather.RingGrids.AbstractGrid}\nas_matrix::Bool: [OPTION] sort grid points into a matrix (interpolation-free), for OctahedralClenshawGrid, OctaHEALPixGrid only\nquadrant_rotation::NTuple{4, Int64}\nmatrix_quadrant::NTuple{4, Tuple{Int64, Int64}}\noutput_Grid::Type{<:SpeedyWeather.RingGrids.AbstractFullGrid}: [OPTION] the grid used for output, full grids only\nnlat_half::Int64: [OPTION] the resolution of the output grid, default: same nlat_half as in the dynamical core\nnlon::Int64\nnlat::Int64\nnpoints::Int64\nnlev::Int64\ninterpolator::SpeedyWeather.RingGrids.AbstractInterpolator\nu::Matrix{NF} where NF<:Union{Float32, Float64}\nv::Matrix{NF} where NF<:Union{Float32, Float64}\nvor::Matrix{NF} where NF<:Union{Float32, Float64}\ndiv::Matrix{NF} where NF<:Union{Float32, Float64}\ntemp::Matrix{NF} where NF<:Union{Float32, Float64}\npres::Matrix{NF} where NF<:Union{Float32, Float64}\nhumid::Matrix{NF} where NF<:Union{Float32, Float64}\nprecip_cond::Matrix{NF} where NF<:Union{Float32, Float64}\nprecip_conv::Matrix{NF} where NF<:Union{Float32, Float64}\n\n\n\n\n\n","category":"type"},{"location":"functions/#Function-and-type-index","page":"Function and type index","title":"Function and type index","text":"","category":"section"},{"location":"functions/#Parameters-and-constants","page":"Function and type index","title":"Parameters and constants","text":"","category":"section"},{"location":"functions/","page":"Function and type index","title":"Function and type index","text":"SpeedyWeather.Parameters\nSpeedyWeather.Constants","category":"page"},{"location":"functions/#Boundaries-and-boundary-conditions","page":"Function and type index","title":"Boundaries and boundary conditions","text":"","category":"section"},{"location":"functions/","page":"Function and type index","title":"Function and type index","text":"SpeedyWeather.Boundaries","category":"page"},{"location":"functions/#Spherical-harmonic-transform","page":"Function and type index","title":"Spherical harmonic transform","text":"","category":"section"},{"location":"functions/","page":"Function and type index","title":"Function and type index","text":"SpeedyWeather.GeoSpectral\nSpeedyWeather.SpectralTransform\nSpeedyWeather.spectral\nSpeedyWeather.spectral!\nSpeedyWeather.gridded\nSpeedyWeather.gridded!\nSpeedyWeather.triangular_truncation\nSpeedyWeather.roundup_fft\nSpeedyWeather.spectral_truncation\nSpeedyWeather.spectral_truncation!\nSpeedyWeather.spectral_interpolation!\nSpeedyWeather.get_legendre_polynomials!\nSpeedyWeather.∇²!\nSpeedyWeather.∇²\nSpeedyWeather.∇⁻²!\nSpeedyWeather.∇⁻²\nSpeedyWeather.gradient_latitude!\nSpeedyWeather.gradient_latitude\nSpeedyWeather.gradient_longitude!\nSpeedyWeather.gradient_longitude\nSpeedyWeather.divergence!\nSpeedyWeather.curl!\nSpeedyWeather._divergence!\nSpeedyWeather.curl_div!\nSpeedyWeather.UV_from_vordiv!\nSpeedyWeather.UV_from_vor!\nSpeedyWeather.ϵlm\nSpeedyWeather.get_recursion_factors","category":"page"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.SpectralTransform","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.SpectralTransform","text":"S = SpectralTransform{NF<:AbstractFloat}(...)\n\nSpectralTransform struct that contains all parameters and preallocated arrays for the spectral transform.\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.spectral","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.spectral","text":"alms = spectral( map::AbstractMatrix;\n Grid::Type{<:AbstractGrid}=DEFAULT_GRID,\n kwargs...)\n\nConverts map to grid(map) to execute spectral(map::AbstractGrid;kwargs...).\n\n\n\n\n\nalms = spectral( map::AbstractGrid;\n Grid::Type{<:AbstractGrid}=DEFAULT_GRID,\n kwargs...)\n\nConverts map to Grid(map) to execute spectral(map::AbstractGrid;kwargs...).\n\n\n\n\n\nalms = spectral( map::AbstractMatrix;\n Grid::Type{<:AbstractGrid}=DEFAULT_GRID,\n kwargs...)\n\nSpectral transform (grid to spectral) map to grid(map) to execute spectral(map::AbstractGrid;kwargs...).\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.spectral!","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.spectral!","text":"spectral!( alms::LowerTriangularMatrix,\n map::AbstractGrid,\n S::SpectralTransform)\n\nSpectral transform (grid to spectral space) from the gridded field map on a grid<:AbstractGrid to a LowerTriangularMatrix of spherical harmonic coefficients alms. Uses FFT in the zonal direction, and a Legendre Transform in the meridional direction exploiting symmetries. The spectral transform is number format-flexible as long as the parametric types of map, alms, S are identical. The spectral transform is grid-flexible as long as the typeof(map)<:AbstractGrid. Uses the precalculated arrays, FFT plans and other constants in the SpectralTransform struct S.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.gridded","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.gridded","text":"map = gridded( alms::AbstractMatrix;\n recompute_legendre::Bool=true,\n grid::Type{<:AbstractGrid}=DEFAULT_GRID)\n\nSpectral transform (spectral to grid space) from spherical coefficients alms to a newly allocated gridded field map. Based on the size of alms the grid type grid, the spatial resolution is retrieved based on the truncation defined for grid. SpectralTransform struct S is allocated to execute gridded(alms,S).\n\n\n\n\n\nmap = gridded( alms::AbstractMatrix,\n S::SpectralTransform)\n\nSpectral transform (spectral to grid space) from spherical coefficients alms to a newly allocated gridded field map with precalculated properties based on the SpectralTransform struct S. alms is converted to a LowerTriangularMatrix to execute the in-place gridded!.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.gridded!","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.gridded!","text":"gridded!(\n diagn::DiagnosticVariables,\n progn::PrognosticVariables,\n lf::Int64,\n model::SpeedyWeather.ModelSetup\n)\n\n\nPropagate the spectral state of progn to diagn using time step/leapfrog index lf. Function barrier that calls gridded! for the respective model.\n\n\n\n\n\ngridded!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n progn::SpeedyWeather.PrognosticLayerTimesteps,\n lf::Int64,\n model::Barotropic\n)\n\n\nPropagate the spectral state of the prognostic variables progn to the diagnostic variables in diagn for the barotropic vorticity model. Updates grid vorticity, spectral stream function and spectral and grid velocities u,v.\n\n\n\n\n\ngridded!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n progn::SpeedyWeather.PrognosticLayerTimesteps,\n lf::Int64,\n model::ShallowWater\n)\n\n\nPropagate the spectral state of the prognostic variables progn to the diagnostic variables in diagn for the shallow water model. Updates grid vorticity, grid divergence, grid interface displacement (pres_grid) and the velocities u,v.\n\n\n\n\n\ngridded!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n progn::SpeedyWeather.PrognosticLayerTimesteps,\n lf::Int64,\n model::PrimitiveEquation\n)\n\n\nPropagate the spectral state of the prognostic variables progn to the diagnostic variables in diagn for primitive equation models. Updates grid vorticity, grid divergence, grid temperature, pressure (pres_grid) and the velocities u,v.\n\n\n\n\n\ngridded!( map::AbstractGrid,\n alms::LowerTriangularMatrix,\n S::SpectralTransform)\n\nSpectral transform (spectral to grid) of the spherical harmonic coefficients alms to a gridded field map. The spectral transform is number format-flexible as long as the parametric types of map, alms, S are identical. The spectral transform is grid-flexible as long as the typeof(map)<:AbstractGrid. Uses the precalculated arrays, FFT plans and other constants in the SpectralTransform struct S.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.spectral_truncation","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.spectral_truncation","text":"alms_trunc = spectral_truncation(alms,trunc)\n\nReturns a spectral coefficient matrix alms_trunc that is truncated from alms to the size (trunc+1)². alms_trunc only contains those coefficient of alms for which m,l ≤ trunc, and l ≥ m are zero anyway. If trunc is larger than the implicit truncation in alms obtained from its size than spectral_interpolation is automatically called instead, returning alms_interp, a coefficient matrix that is larger than alms with padded zero coefficients.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.spectral_truncation!","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.spectral_truncation!","text":"spectral_truncation!(alms::AbstractMatrix,ltrunc::Integer,mtrunc::Integer)\n\nTruncate spectral coefficients alms in-place by setting (a) the upper right triangle to zero and (b) all coefficients for which the degree l is larger than the truncation ltrunc or order m larger than the truncaction mtrunc.\n\n\n\n\n\nspectral_truncation!(alms::LowerTriangularMatrix,ltrunc::Integer,mtrunc::Integer)\n\nTruncate spectral coefficients alms in-place by setting all coefficients for which the degree l is larger than the truncation ltrunc or order m larger than the truncaction mtrunc. Similar to spectral_truncation!(::AbstractMatrix, ...) but skips the upper triangle which is zero by design for LowerTriangularMatrix.\n\n\n\n\n\nspectral_truncation!(alms,trunc)\n\nTruncate spectral coefficients alms in-place by setting (a) the upper right triangle to zero and (b) all coefficients for which the degree l is larger than the truncation trunc.\n\n\n\n\n\nspectral_truncation!(alms)\n\nTruncate spectral coefficients alms in-place by setting the upper right triangle to zero. This is to enforce that all coefficients for which the degree l is larger than order m are zero.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.∇²!","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.∇²!","text":"∇²!( ∇²alms::LowerTriangularMatrix,\n alms::LowerTriangularMatrix,\n S::SpectralTransform;\n add::Bool=false,\n flipsign::Bool=false,\n inverse::Bool=false)\n\nLaplace operator ∇² applied to the spectral coefficients alms in spherical coordinates. The radius R is omitted in the eigenvalues which are precomputed in S. ∇²! is the in-place version which directly stores the output in the first argument ∇²alms.\n\nKeyword arguments\n\nadd=true adds the ∇²(alms) to the output\nflipsign=true computes -∇²(alms) instead\ninverse=true computes ∇⁻²(alms) instead\n\nDefault is add=false, flipsign=false, inverse=false. These options can be combined.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.∇⁻²!","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.∇⁻²!","text":"∇⁻²!( ∇⁻²alms::LowerTriangularMatrix,\n alms::LowerTriangularMatrix,\n S::SpectralTransform;\n add::Bool=false,\n flipsign::Bool=false)\n\nCalls ∇²!(∇⁻²alms, alms, S; add, flipsign, inverse=true).\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.divergence!","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.divergence!","text":"divergence!(div::LowerTriangularMatrix,\n u::LowerTriangularMatrix,\n v::LowerTriangularMatrix,\n S::SpectralTransform{NF};\n flipsign::Bool=false,\n add::Bool=false,\n )\n\nDivergence of a vector u,v written into div, div = ∇⋅(u,v). u,v are expected to have a 1/coslat-scaling included, then div is not scaled. flipsign option calculates -∇⋅(u,v) instead. add option calculates div += ∇⋅(u,v) instead. flipsign and add can be combined. This functions only creates the kernel and calls the generic divergence function _divergence! subsequently.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.curl!","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.curl!","text":"curl!( curl::LowerTriangularMatrix,\n u::LowerTriangularMatrix,\n v::LowerTriangularMatrix,\n S::SpectralTransform;\n flipsign::Bool=false,\n add::Bool=false,\n )\n\nCurl of a vector u,v written into curl, curl = ∇×(u,v). u,v are expected to have a 1/coslat-scaling included, then curl is not scaled. flipsign option calculates -∇×(u,v) instead. add option calculates curl += ∇×(u,v) instead. flipsign and add can be combined. This functions only creates the kernel and calls the generic divergence function _divergence! subsequently with flipped u,v -> v,u for the curl.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.UV_from_vordiv!","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.UV_from_vordiv!","text":"UV_from_vordiv!(U::LowerTriangularMatrix,\n V::LowerTriangularMatrix,\n vor::LowerTriangularMatrix,\n div::LowerTriangularMatrix,\n S::SpectralTransform)\n\nGet U,V (=(u,v)*coslat) from vorticity ζ and divergence D in spectral space. Two operations are combined into a single linear operation. First, invert the spherical Laplace ∇² operator to get stream function from vorticity and velocity potential from divergence. Then compute zonal and meridional gradients to get U,V.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.UV_from_vor!","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.UV_from_vor!","text":"UV_from_vor!( U::LowerTriangularMatrix,\n V::LowerTriangularMatrix,\n vor::LowerTriangularMatrix,\n S::SpectralTransform)\n\nGet U,V (=(u,v)*coslat) from vorticity ζ spectral space (divergence D=0) Two operations are combined into a single linear operation. First, invert the spherical Laplace ∇² operator to get stream function from vorticity. Then compute zonal and meridional gradients to get U,V.\n\n\n\n\n\n","category":"function"},{"location":"functions/#Dynamics","page":"Function and type index","title":"Dynamics","text":"","category":"section"},{"location":"functions/","page":"Function and type index","title":"Function and type index","text":"SpeedyWeather.bernoulli_potential!\nSpeedyWeather.volume_flux_divergence!\nSpeedyWeather.vorticity_fluxes!\nSpeedyWeather.vorticity_flux_curl!\nSpeedyWeather.vorticity_flux_divergence!","category":"page"},{"location":"functions/#SpeedyWeather.bernoulli_potential!","page":"Function and type index","title":"SpeedyWeather.bernoulli_potential!","text":"bernoulli_potential!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF},\n S::SpectralTransform\n) -> LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat\n\n\nComputes the Laplace operator ∇² of the Bernoulli potential B in spectral space.\n\ncomputes the kinetic energy KE = ½(u²+v²) on the grid\ntransforms KE to spectral space\nadds geopotential for the Bernoulli potential in spectral space\ntakes the Laplace operator.\n\nThis version is used for both ShallowWater and PrimitiveEquation, only the geopotential calculation in geopotential! differs.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.volume_flux_divergence!","page":"Function and type index","title":"SpeedyWeather.volume_flux_divergence!","text":"volume_flux_divergence!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n surface::SpeedyWeather.SurfaceVariables,\n orog::SpeedyWeather.AbstractOrography,\n constants::DynamicsConstants,\n G::Geometry,\n S::SpectralTransform\n)\n\n\nComputes the (negative) divergence of the volume fluxes uh,vh for the continuity equation, -∇⋅(uh,vh).\n\n\n\n\n\n","category":"function"},{"location":"functions/#Geometry","page":"Function and type index","title":"Geometry","text":"","category":"section"},{"location":"functions/","page":"Function and type index","title":"Function and type index","text":"SpeedyWeather.Geometry\nSpeedyWeather.vertical_coordinates\nSpeedyWeather.GenLogisticCoefs\nSpeedyWeather.generalised_logistic","category":"page"},{"location":"functions/#SpeedyWeather.Geometry","page":"Function and type index","title":"SpeedyWeather.Geometry","text":"Construct Geometry struct containing parameters and arrays describing an iso-latitude grid <:AbstractGrid and the vertical levels. Pass on SpectralGrid to calculate the following fields\n\nspectral_grid::SpectralGrid: SpectralGrid that defines spectral and grid resolution\nGrid::Type{<:SpeedyWeather.RingGrids.AbstractGrid}: grid of the dynamical core\nnlat_half::Int64: resolution parameter nlat_half of Grid, # of latitudes on one hemisphere (incl Equator)\nnlon_max::Int64: maximum number of longitudes (at/around Equator)\nnlon::Int64: =nlon_max, same (used for compatibility), TODO: still needed?\nnlat::Int64: number of latitude rings\nnlev::Int64: number of vertical levels\nnpoints::Int64: total number of grid points\nradius::AbstractFloat: Planet's radius [m]\nlatd::Vector{Float64}: array of latitudes in degrees (90˚...-90˚)\nlond::Vector{Float64}: array of longitudes in degrees (0...360˚), empty for non-full grids\nlonds::Vector{NF} where NF<:AbstractFloat: longitude (-180˚...180˚) for each grid point in ring order\nlatds::Vector{NF} where NF<:AbstractFloat: latitude (-90˚...˚90) for each grid point in ring order\nsinlat::Vector{NF} where NF<:AbstractFloat: sin of latitudes\ncoslat::Vector{NF} where NF<:AbstractFloat: cos of latitudes\ncoslat⁻¹::Vector{NF} where NF<:AbstractFloat: = 1/cos(lat)\ncoslat²::Vector{NF} where NF<:AbstractFloat: = cos²(lat)\ncoslat⁻²::Vector{NF} where NF<:AbstractFloat: # = 1/cos²(lat)\nσ_levels_half::Vector{NF} where NF<:AbstractFloat: σ at half levels, σ_k+1/2\nσ_levels_full::Vector{NF} where NF<:AbstractFloat: σ at full levels, σₖ\nσ_levels_thick::Vector{NF} where NF<:AbstractFloat: σ level thicknesses, σₖ₊₁ - σₖ\nln_σ_levels_full::Vector{NF} where NF<:AbstractFloat: log of σ at full levels, include surface (σ=1) as last element\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.GenLogisticCoefs","page":"Function and type index","title":"SpeedyWeather.GenLogisticCoefs","text":"Coefficients of the generalised logistic function to describe the vertical coordinate. Default coefficients A,K,C,Q,B,M,ν are fitted to the old L31 configuration at ECMWF.\n\nFollowing the notation of https://en.wikipedia.org/wiki/Generalisedlogisticfunction (Dec 15 2021).\n\nChange default parameters for more/fewer levels in the stratosphere vs troposphere vs boundary layer.\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.generalised_logistic","page":"Function and type index","title":"SpeedyWeather.generalised_logistic","text":"Generalised logistic function based on the coefficients in coefs.\n\n\n\n\n\n","category":"function"},{"location":"functions/#Time-stepping","page":"Function and type index","title":"Time stepping","text":"","category":"section"},{"location":"functions/","page":"Function and type index","title":"Function and type index","text":"SpeedyWeather.time_stepping!\nSpeedyWeather.timestep!\nSpeedyWeather.first_timesteps!\nSpeedyWeather.leapfrog!","category":"page"},{"location":"functions/#SpeedyWeather.time_stepping!","page":"Function and type index","title":"SpeedyWeather.time_stepping!","text":"time_stepping!(\n progn::PrognosticVariables,\n diagn::DiagnosticVariables,\n model::SpeedyWeather.ModelSetup\n) -> PrognosticVariables\n\n\nMain time loop that that initializes output and feedback, loops over all time steps and calls the output and feedback functions.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.timestep!","page":"Function and type index","title":"SpeedyWeather.timestep!","text":"timestep!(\n progn::PrognosticVariables,\n diagn::DiagnosticVariables,\n time::Dates.DateTime,\n dt::Real,\n i::Integer,\n model::Barotropic\n)\ntimestep!(\n progn::PrognosticVariables,\n diagn::DiagnosticVariables,\n time::Dates.DateTime,\n dt::Real,\n i::Integer,\n model::Barotropic,\n lf1::Int64\n)\ntimestep!(\n progn::PrognosticVariables,\n diagn::DiagnosticVariables,\n time::Dates.DateTime,\n dt::Real,\n i::Integer,\n model::Barotropic,\n lf1::Int64,\n lf2::Int64\n)\n\n\nCalculate a single time step for the model <: Barotropic.\n\n\n\n\n\ntimestep!(\n progn::PrognosticVariables{NF<:AbstractFloat},\n diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},\n time::Dates.DateTime,\n dt::Real,\n i::Integer,\n model::ShallowWater\n) -> SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat\ntimestep!(\n progn::PrognosticVariables{NF<:AbstractFloat},\n diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},\n time::Dates.DateTime,\n dt::Real,\n i::Integer,\n model::ShallowWater,\n lf1::Int64\n) -> SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat\ntimestep!(\n progn::PrognosticVariables{NF<:AbstractFloat},\n diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},\n time::Dates.DateTime,\n dt::Real,\n i::Integer,\n model::ShallowWater,\n lf1::Int64,\n lf2::Int64\n) -> SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat\n\n\nCalculate a single time step for the model <: ShallowWater.\n\n\n\n\n\ntimestep!(\n progn::PrognosticVariables{NF<:AbstractFloat},\n diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},\n time::Dates.DateTime,\n dt::Real,\n i::Integer,\n model::PrimitiveEquation\n) -> Any\ntimestep!(\n progn::PrognosticVariables{NF<:AbstractFloat},\n diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},\n time::Dates.DateTime,\n dt::Real,\n i::Integer,\n model::PrimitiveEquation,\n lf1::Int64\n) -> Any\ntimestep!(\n progn::PrognosticVariables{NF<:AbstractFloat},\n diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},\n time::Dates.DateTime,\n dt::Real,\n i::Integer,\n model::PrimitiveEquation,\n lf1::Int64,\n lf2::Int64\n) -> Any\n\n\nCalculate a single time step for the model<:PrimitiveEquation\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.first_timesteps!","page":"Function and type index","title":"SpeedyWeather.first_timesteps!","text":"first_timesteps!(\n progn::PrognosticVariables,\n diagn::DiagnosticVariables,\n clock::SpeedyWeather.Clock,\n model::SpeedyWeather.ModelSetup,\n output::SpeedyWeather.AbstractOutputWriter\n) -> typeof(time)\n\n\nPerforms the first two initial time steps (Euler forward, unfiltered leapfrog) to populate the prognostic variables with two time steps (t=0,Δt) that can then be used in the normal leap frogging.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.leapfrog!","page":"Function and type index","title":"SpeedyWeather.leapfrog!","text":"leapfrog!(\n A_old::LowerTriangularMatrix{Complex{NF<:AbstractFloat}},\n A_new::LowerTriangularMatrix{Complex{NF<:AbstractFloat}},\n tendency::LowerTriangularMatrix{Complex{NF<:AbstractFloat}},\n dt::Real,\n lf::Int64,\n L::Leapfrog{NF<:AbstractFloat}\n)\n\n\nPerforms one leapfrog time step with (lf=2) or without (lf=1) Robert+William's filter (see William (2009), Montly Weather Review, Eq. 7-9).\n\n\n\n\n\n","category":"function"},{"location":"functions/#Longwave-radiation","page":"Function and type index","title":"Longwave radiation","text":"","category":"section"},{"location":"functions/","page":"Function and type index","title":"Function and type index","text":"SpeedyWeather.radset!\nSpeedyWeather.radlw_down!\nSpeedyWeather.compute_bbe!\nSpeedyWeather.radlw_up!","category":"page"},{"location":"functions/#Shortwave-radiation","page":"Function and type index","title":"Shortwave radiation","text":"","category":"section"},{"location":"functions/","page":"Function and type index","title":"Function and type index","text":"SpeedyWeather.shortwave_radiation!\nSpeedyWeather.solar!\nSpeedyWeather.sol_oz!\nSpeedyWeather.cloud!\nSpeedyWeather.radsw!","category":"page"},{"location":"parametrizations/#Parameterizations","page":"Parameterizations","title":"Parameterizations","text":"","category":"section"},{"location":"parametrizations/","page":"Parameterizations","title":"Parameterizations","text":"This page describes the mathematical formulation of the parameterizations used in SpeedyWeather.jl to represent physical processes in the atmopshere. Every section is followed by a brief description of implementation details.","category":"page"},{"location":"parametrizations/#Convection","page":"Parameterizations","title":"Convection","text":"","category":"section"},{"location":"parametrizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"parametrizations/#Large-scale-condensation","page":"Parameterizations","title":"Large-scale condensation","text":"","category":"section"},{"location":"parametrizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"parametrizations/#Clouds","page":"Parameterizations","title":"Clouds","text":"","category":"section"},{"location":"parametrizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"parametrizations/#Short-wave-radiation","page":"Parameterizations","title":"Short-wave radiation","text":"","category":"section"},{"location":"parametrizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"parametrizations/#Long-wave-radiation","page":"Parameterizations","title":"Long-wave radiation","text":"","category":"section"},{"location":"parametrizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"parametrizations/#Surface-fluxes-of-momentum-and-energy","page":"Parameterizations","title":"Surface fluxes of momentum and energy","text":"","category":"section"},{"location":"parametrizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"parametrizations/#Vertical-diffusion","page":"Parameterizations","title":"Vertical diffusion","text":"","category":"section"},{"location":"parametrizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"how_to_run_speedy/#How-to-run-SpeedyWeather.jl","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"","category":"section"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"Creating a SpeedyWeather.jl simulation and running it consists conceptually of 4 steps","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"Create a SpectralGrid which defines the grid and spectral resolution\nCreate a model\nInitialize a model to obtain a Simulation.\nRun the simulation.","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"In the following we will describe these steps in more detail, but let's start with some examples first.","category":"page"},{"location":"how_to_run_speedy/#Example-1:-2D-turbulence-on-a-non-rotating-sphere","page":"How to run SpeedyWeather.jl","title":"Example 1: 2D turbulence on a non-rotating sphere","text":"","category":"section"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"We want to use the barotropic model to simulate some free-decaying 2D turbulence on the sphere without rotation. We start by defining the SpectralGrid object. To have a resolution of about 100km, we choose a spectral resolution of T127 (see Available resolutions) and nlev=1 vertical levels. The SpectralGrid object will provide us with some more information","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"using SpeedyWeather\n\nspectral_grid = SpectralGrid(trunc=127,nlev=1)","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"We could have specified further options, but let's ignore that for now. Next step we create a planet that's like Earth but not rotating","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"still_earth = Earth(rotation=0)","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"There are other options to create a planet but they are irrelevant for the barotropic vorticity equations. We also want to specify the initial conditions, randomly distributed vorticity is already defined","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"initial_conditions = StartWithRandomVorticity()","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"By default, the power of vorticity is spectrally distributed with k^-3, k being the horizontal wavenumber, and the amplitude is 10^-5texts^-1.","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"Now we want to construct a BarotropicModel with these","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"model = BarotropicModel(;spectral_grid, initial_conditions, planet=still_earth)","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"The model contains all the parameters, but isn't initialized yet, which we can do with and then run it. The run! command will always return the prognostic variables, which, by default, are plotted for surface relative vorticity with a unicode plot. The resolution of the plot is not necessarily representative but it lets us have a quick look at the result","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"simulation = initialize!(model);\n\nrun!(simulation,n_days=30)","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"Woohoo! I can see turbulence! You could pick up where this simulation stopped by simply doing run!(simulation,n_days=50) again. We didn't store any output, which you can do by run!(simulation,output=true), which will switch on NetCDF output with default settings. More options on output in NetCDF output.","category":"page"},{"location":"how_to_run_speedy/#Example-2:-Shallow-water-with-mountains","page":"How to run SpeedyWeather.jl","title":"Example 2: Shallow water with mountains","text":"","category":"section"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"As a second example, let's investigate the Galewsky et al.[1] test case for the shallow water equations with and without mountains. As the shallow water system has also only one level, we can reuse the SpectralGrid from Example 1.","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"spectral_grid = SpectralGrid(trunc=127,nlev=1)","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"Now as a first simulation, we want to disable any orography, so we create a NoOrography","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"orography = NoOrography(spectral_grid)","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"Although the orography is zero, you have to pass on spectral_grid so that it can still initialize zero-arrays of the right size and element type. Awesome. This time the initial conditions should be set the the Galewsky et al.[1] zonal jet, which is already defined as","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"initial_conditions = ZonalJet()","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"The jet sits at 45˚N with a maximum velocity of 80m/s and a perturbation as described in their paper. Now we construct a model, but this time a ShallowWaterModel","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"model = ShallowWaterModel(;spectral_grid, orography, initial_conditions);\n\nsimulation = initialize!(model);","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"Oh yeah. That looks like the wobbly jet in their paper. Let's run it again for another 6 days but this time also store NetCDF output.","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"run!(simulation,n_days=6,output=true)","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"The progress bar tells us that the simulation run got the identification \"0002\", meaning that data is stored in the folder /run_0002, so let's plot that data properly (and not just using UnicodePlots).","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> using PyPlot, NCDatasets\njulia> ds = NCDataset(\"run_0002/output.nc\");\njulia> ds[\"vor\"]\nvor (384 × 192 × 1 × 25)\n Datatype: Float32\n Dimensions: lon × lat × lev × time\n Attributes:\n units = 1/s\n missing_value = NaN\n long_name = relative vorticity\n _FillValue = NaN","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"Vorticity vor is stored as a 384x192x1x25 array, we may want to look at the first time step, which is the end of the previous simulation (time=6days) which we didn't store output for.","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> vor = ds[\"vor\"][:,:,1,1];\njulia> lat = ds[\"lat\"][:];\njulia> lon = ds[\"lon\"][:];\njulia> pcolormesh(lon,lat,vor')","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"Which looks like","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"(Image: Galewsky jet pyplot)","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"You see that the unicode plot heavily coarse-grains the simulation, well it's unicode after all! And now the last time step, that means time=12days is","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> vor = ds[\"vor\"][:,:,1,25];\njulia> pcolormesh(lon,lat,vor')","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"(Image: Galewsky jet pyplot)","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"The jet broke up into many small eddies, but the turbulence is still confined to the northern hemisphere, cool! How this may change when we add mountains (we had NoOrography above!), say Earth's orography, you may ask? Let's try it out! We create an EarthOrography struct like so","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> orography = EarthOrography(spectral_grid)\nEarthOrography{Float32, OctahedralGaussianGrid{Float32}}:\n path::String = SpeedyWeather.jl/input_data\n file::String = orography_F512.nc\n scale::Float64 = 1.0\n smoothing::Bool = true\n smoothing_power::Float64 = 1.0\n smoothing_strength::Float64 = 0.1\n smoothing_truncation::Int64 = 85","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"It will read the orography from file as shown, and there are some smoothing options too, but let's not change them. Same as before, create a model, intialize into a simulation, run. This time directly for 12 days so that we can compare with the last plot","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> model = ShallowWaterModel(;spectral_grid, orography, initial_conditions);\njulia> simulation = initialize!(model);\njulia> run!(simulation,n_days=12,output=true)\nWeather is speedy: run 0003 100%|███████████████████████| Time: 0:00:35 (79.16 years/day)","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"This time the run got the id \"0003\", but otherwise we do as before.","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"(Image: Galewsky jet pyplot)","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"Interesting! The initial conditions have zero velocity in the southern hemisphere, but still, one can see some imprint of the orography on vorticity. You can spot the coastline of Antarctica; the Andes and Greenland are somewhat visible too. Mountains also completely changed the flow after 12 days, probably not surprising!","category":"page"},{"location":"how_to_run_speedy/#SpectralGrid","page":"How to run SpeedyWeather.jl","title":"SpectralGrid","text":"","category":"section"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"The life of every SpeedyWeather.jl simulation starts with a SpectralGrid object. We have seen some examples above, now let's look into the details","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"SpectralGrid","category":"page"},{"location":"how_to_run_speedy/#SpeedyWeather.SpectralGrid","page":"How to run SpeedyWeather.jl","title":"SpeedyWeather.SpectralGrid","text":"Defines the horizontal spectral resolution and corresponding grid and the vertical coordinate for SpeedyWeather.jl. Options are\n\nNF::Type{<:AbstractFloat}: number format used throughout the model\ntrunc::Int64: horizontal resolution as the maximum degree of spherical harmonics\nGrid::Type{<:SpeedyWeather.RingGrids.AbstractGrid}: horizontal grid used for calculations in grid-point space\ndealiasing::Float64: how to match spectral with grid resolution: dealiasing factor, 1=linear, 2=quadratic, 3=cubic grid\nradius::Float64: radius of the sphere [m]\nnlat_half::Int64: number of latitude rings on one hemisphere (Equator incl)\nnpoints::Int64: total number of grid points in the horizontal\nnlev::Int64: number of vertical levels\nvertical_coordinates::SpeedyWeather.VerticalCoordinates: coordinates used to discretize the vertical\n\nnlat_half and npoints should not be chosen but are derived from trunc, Grid and dealiasing.\n\n\n\n\n\n","category":"type"},{"location":"how_to_run_speedy/#References","page":"How to run SpeedyWeather.jl","title":"References","text":"","category":"section"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"[1] Galewsky, Scott, Polvani, 2004. An initial-value problem for testing numerical models of the global shallow-water equations, Tellus A. DOI: 10.3402/tellusa.v56i5.14436","category":"page"},{"location":"speedytransforms/#SpeedyTransforms","page":"Submodule: SpeedyTransforms","title":"SpeedyTransforms","text":"","category":"section"},{"location":"speedytransforms/","page":"Submodule: SpeedyTransforms","title":"Submodule: SpeedyTransforms","text":"SpeedyTransforms is a submodule that has been developed for SpeedyWeather.jl which is technically independent (SpeedyWeather.jl however imports it) and can also be used without running simulations. It is just not put into its own respective repository.","category":"page"},{"location":"speedytransforms/#Functions","page":"Submodule: SpeedyTransforms","title":"Functions","text":"","category":"section"},{"location":"grids/#Grids","page":"Grids","title":"Grids","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"The spectral transform (the Spherical Harmonic Transform) in SpeedyWeather.jl supports any ring-based equi-longitude grid. Several grids are already implemented but other can be added. The following pages will describe an overview of these grids and but let's start but how they can be used","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"julia> spectral_grid = SpectralGrid(Grid = FullGaussianGrid)\nSpectralGrid:\n Spectral: T31 LowerTriangularMatrix{Complex{Float32}}, radius = 6.371e6 m\n Grid: 4608-element, 48-ring FullGaussianGrid{Float32} (quadratic)\n Resolution: 333km (average)\n Vertical: 8-level SigmaCoordinates","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"The life of every SpeedyWeather.jl simulation starts with a SpectralGrid object which defines the resolution in spectral and in grid-point space. The generator SpectralGrid() can take as a keyword argument Grid which can be any of the grids described below. The resolution of the grid, however, is not directly chosen, but determined from the spectral resolution trunc and the dealiasing factor. More in Matching spectral and grid resolution.","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"info: RingGrids is a module too!\nWhile RingGrids is the underlying module that SpeedyWeather.jl uses for data structs on the sphere, the module can also be used independently of SpeedyWeather, for example to interpolate between data on different grids. See RingGrids","category":"page"},{"location":"grids/#Ring-based-equi-longitude-grids","page":"Grids","title":"Ring-based equi-longitude grids","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"SpeedyWeather.jl's spectral transform supports all ring-based equi-longitude grids. These grids have their grid points located on rings with constant latitude and on these rings the points are equi-spaced in longitude. There is technically no constrain on the spacing of the latitude rings, but the Legendre transform requires a quadrature to map those to spectral space and back. Common choices for latitudes are the Gaussian latitudes which use the Gaussian quadrature, or equi-angle latitudes (i.e. just regular latitudes but excluding the poles) that use the Clenshaw-Curtis quadrature. The longitudes have to be equi-spaced on every ring, which is necessary for the fast Fourier transform, as one would otherwise need to use a non-uniform Fourier transform. In SpeedyWeather.jl the first grid point on any ring can have a longitudinal offset though, for example by spacing 4 points around the globe at 45˚E, 135˚E, 225˚E, and 315˚E. In this case the offset is 45˚E as the first point is not at 0˚E.","category":"page"},{"location":"grids/#Implemented-grids","page":"Grids","title":"Implemented grids","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"All grids in SpeedyWeather.jl are a subtype of AbstractGrid, i.e. <: AbstractGrid. We further distinguish between full, and reduced grids. Full grids have the same number of longitude points on every latitude ring (i.e. points converge towards the poles) and reduced grids reduce the number of points towards the poles to have them more evenly spread out across the globe. More evenly does not necessarily mean that a grid is equal-area, meaning that every grid cell covers exactly the same area (although the shape changes).","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"Currently the following full grids <: AbstractFullGrid are implemented","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"FullGaussianGrid, a full grid with Gaussian latitudes\nFullClenshawGrid, a full grid with equi-angle latitudes","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"and additionally we have FullHEALPixGrid and FullOctaHEALPixGrid which are the full grid equivalents to the HEALPix grid and the OctaHEALPix grid discussed below. Full grid equivalent means that they have the same latitude rings, but no reduction in the number of points per ring towards the poles and no longitude offset. Other implemented reduced grids are","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"OctahedralGaussianGrid, a reduced grid with Gaussian latitudes based on an octahedron\nOctahedralClenshawGrid, similar but based on equi-angle latitudes\nHEALPixGrid, an equal-area grid based on a dodecahedron with 12 faces\nOctaHEALPixGrid, an equal-area grid from the class of HEALPix grids but based on an octahedron.","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"An overview of these grids is visualised here","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"(Image: Overview of implemented grids in SpeedyWeather.jl)","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"Visualised are each grid's grid points (white dots) and grid faces (white lines). All grids shown have 16 latitude rings on one hemisphere, Equator included. The total number of grid points is denoted in the top left of every subplot. The sphere is shaded with grey, orange and turquoise regions to denote the hemispheres in a and b, the 8 octahedral faces c, d,f and the 12 dodecahedral faces (or base pixels) in e. Coastlines are added for orientation.","category":"page"},{"location":"grids/#Grid-resolution","page":"Grids","title":"Grid resolution","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"All grids use the same resolution parameter nlat_half, i.e. the number of rings on one hemisphere, Equator included. The Gaussian grids (full and reduced) do not have a ring on the equator, so their total number of rings nlat is always even and twice nlat_half. Clenshaw-Curtis grids and the HEALPix grids have a ring on the equator such their total number of rings is always odd and one less than the Gaussian grids at the same nlat_half. ","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"info: HEALPix grids do not use Nside as resolution parameter\nThe original formulation for HEALPix grids use N_side, the number of grid points along the edges of each basepixel (8 in the figure above), SpeedyWeather.jl uses nlat_half, the number of rings on one hemisphere, Equator included, for all grids. This is done for consistency across grids. We may use N_side for the documentation or within functions though.","category":"page"},{"location":"grids/#Matching-spectral-and-grid-resolution","page":"Grids","title":"Matching spectral and grid resolution","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"A given spectral resolution can be matched to a variety of grid resolutions. A cubic grid, for example, combines a spectral truncation T with a grid resolution N (=nlat_half) such that T + 1 = N. Using T31 and an O32 is therefore often abbreviated as Tco31 meaning that the spherical harmonics are truncated at l_max=31 in combination with N=32, i.e. 64 latitude rings in total on an octahedral Gaussian grid.","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"Let J be the total number of rings. Then we have","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"T approx J for linear truncation\nfrac32T approx J for quadratic truncation\n2T approx J for cubic truncation","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"and in general fracm+12T approx J for m-th order truncation. So the higher the truncaction order the more grid points are used in combination with the same spectral resolution. A higher truncation order therefore makes all grid-point calculations more expensive, but can represent products of terms on the grid (which will have higher wavenumber components) to a higher accuracy as more grid points are available within a given wavelength. Using a sufficiently high truncation is therefore one way to avoid aliasing. In SpeedyWeather.jl the parameter dealiasing controls this option, = 1 would be linear, = 2 quadratic, = 3 cubic etc.","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"For now just a quick overview of how the grid resolution changes when dealiasing is passed onto SpectralGrid on the FullGaussianGrid","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"trunc dealiasing FullGaussianGrid size\n31 1 64x32\n31 2 96x48\n31 3 128x64\n42 1 96x48\n42 2 128x64\n42 3 192x96\n... ... ...","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"You will obtain this information every time you create a SpectralGrid(;Grid,trunc,dealiasing).","category":"page"},{"location":"grids/#Full-Gaussian-grid","page":"Grids","title":"Full Gaussian grid","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"...","category":"page"},{"location":"grids/#Full-Clenshaw-Curtis-grid","page":"Grids","title":"Full Clenshaw-Curtis grid","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"...","category":"page"},{"location":"grids/#Octahedral-Gaussian-grid","page":"Grids","title":"Octahedral Gaussian grid","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"...","category":"page"},{"location":"grids/#The-HEALPix-grid","page":"Grids","title":"The HEALPix grid","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"Technically, HEALPix grids are a class of grids that tessalate the sphere into faces that are often called basepixels. For each member of this class there are N_varphi basepixels in zonal direction and N_theta basepixels in meridional direction. For N_varphi = 4 and N_theta = 3 we obtain the classical HEALPix grid with N_varphi N_theta = 12 basepixels shown above in Implemented Grids. Each basepixel has a quadratic number of grid points in them. There's an equatorial zone where the number of zonal grid points is constant (always 2N, so 32 at N=16) and there are polar caps above and below the equatorial zone with the border at cos(theta) = 23 (theta in colatitudes).","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"Following Górski, 2004[1], the z=cos(theta) colatitude of the j-th ring in the north polar cap, j=1N_side with 2N_side = N is ","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"z = 1 - fracj^23N_side^2","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"and on that ring, the longitude phi of the i-th point (i is the in-ring-index) is at","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"phi = fracpi2j(i-tfrac12)","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"The in-ring index i goes from i=14 for the first (i.e. northern-most) ring, i=18 for the second ring and i = 14j for the j-th ring in the northern polar cap.","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"In the north equatorial belt j=N_side2N_side this changes to","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"z = frac43 - frac2j3N_side","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"and the longitudes change to (i is always i = 14N_side in the equatorial belt meaning the number of longitude points is constant here)","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"phi = fracpi2N_side(i - fracs2) quad s = (j - N_side + 1) mod 2","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"The modulo function comes in as there is an alternating longitudinal offset from the prime meridian (see Implemented grids). For the southern hemisphere the grid point locations can be obtained by mirror symmetry.","category":"page"},{"location":"grids/#Grid-cell-boundaries","page":"Grids","title":"Grid cell boundaries","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"The cell boundaries are obtained by setting i = k + 12 or i = k + 12 + j (half indices) into the equations above, such that z(phik), a function for the cosine of colatitude z of index k and the longitude phi is obtained. These are then (northern polar cap)","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"z = 1 - frack^23N_side^2left(fracpi2phi_tright)^2 quad z = 1 - frack^23N_side^2left(fracpi2phi_t - piright)^2","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"with phi_t = phi mod tfracpi2 and in the equatorial belt","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"z = frac23-frac4k3N_side pm frac8phi3pi","category":"page"},{"location":"grids/#OctaHEALPix-grid","page":"Grids","title":"OctaHEALPix grid","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"While the classic HEALPix grid is based on a dodecahedron, other choices for N_varphi and N_theta in the class of HEALPix grids will change the number of faces there are in zonal/meridional direction. With N_varphi = 4 and N_theta = 1 we obtain a HEALPix grid that is based on an octahedron, which has the convenient property that there are twice as many longitude points around the equator than there are latitude rings between the poles. This is a desirable for truncation as this matches the distances too, 2pi around the Equator versus pi between the poles. N_varphi = 6 N_theta = 2 or N_varphi = 8 N_theta = 3 are other possible choices for this, but also more complicated. See Górski, 2004[1] for further examples and visulations of these grids.","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"We call the N_varphi = 4 N_theta = 1 HEALPix grid the OctaHEALPix grid, which combines the equal-area property of the HEALPix grids with the octahedron that's also used in the OctahedralGaussianGrid or the OctahedralClenshawGrid. As N_theta = 1 there is no equatorial belt which simplifies the grid. The latitude of the j-th isolatitude ring on the OctaHEALPixGrid is defined by","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"z = 1 - fracj^2N^2","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"with j=1N, and similarly for the southern hemisphere by symmetry. On this grid N_side = N where N= nlat_half, the number of latitude rings on one hemisphere, Equator included, because each of the 4 basepixels spans from pole to pole and covers a quarter of the sphere. The longitudes with in-ring- index i = 14j are","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"phi = fracpi2j(i - tfrac12)","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"and again, the southern hemisphere grid points are obtained by symmetry.","category":"page"},{"location":"grids/#Grid-cell-boundaries-2","page":"Grids","title":"Grid cell boundaries","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"Similar to the grid cell boundaries for the HEALPix grid, the OctaHEALPix grid's boundaries are","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"z = 1 - frack^2N^2left(fracpi2phi_tright)^2 quad z = 1 - frack^2N^2left(fracpi2phi_t - piright)^2","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"The 3N_side^2 in the denominator of the HEALPix grid came simply N^2 for the OctaHEALPix grid and there's no separate equation for the equatorial belt (which doesn't exist in the OctaHEALPix grid).","category":"page"},{"location":"grids/#References","page":"Grids","title":"References","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"[1] Górski, Hivon, Banday, Wandelt, Hansen, Reinecke, Bartelmann, 2004. HEALPix: A FRAMEWORK FOR HIGH-RESOLUTION DISCRETIZATION AND FAST ANALYSIS OF DATA DISTRIBUTED ON THE SPHERE, The Astrophysical Journal. doi:10.1086/427976","category":"page"},{"location":"boundary_conditions/#Boundary-conditions","page":"Boundary conditions","title":"Boundary conditions","text":"","category":"section"},{"location":"boundary_conditions/","page":"Boundary conditions","title":"Boundary conditions","text":"This page describes the formulation of boundary conditions and their implementation.","category":"page"},{"location":"lowertriangularmatrices/#LowerTriangularMatrices","page":"Submodule: LowerTriangularMatrices","title":"LowerTriangularMatrices","text":"","category":"section"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"LowerTriangularMatrices is a submodule that has been developed for SpeedyWeather.jl which is technically independent (SpeedyWeather.jl however imports it and so does SpeedyTransforms) and can also be used without running simulations. It is just not put into its own respective repository.","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"This module defines LowerTriangularMatrix, a lower triangular matrix, which in contrast to LinearAlgebra.LowerTriangular does not store the entries above the diagonal. SpeedyWeather.jl uses LowerTriangularMatrix which is defined as a subtype of AbstractMatrix to store the spherical harmonic coefficients (see Spectral packing). ","category":"page"},{"location":"lowertriangularmatrices/#Creation-of-LowerTriangularMatrix","page":"Submodule: LowerTriangularMatrices","title":"Creation of LowerTriangularMatrix","text":"","category":"section"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"A LowerTriangularMatrix can be created using zeros,ones,rand, or randn","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"julia> using SpeedyWeather.LowerTriangularMatrices\n\njulia> L = rand(LowerTriangularMatrix{Float32},5,5)\n5×5 LowerTriangularMatrix{Float32}:\n 0.912744 0.0 0.0 0.0 0.0\n 0.0737592 0.230592 0.0 0.0 0.0\n 0.799679 0.0765255 0.888098 0.0 0.0\n 0.670835 0.997938 0.505276 0.492966 0.0\n 0.949321 0.193692 0.793623 0.152817 0.357968","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"or the undef initializor LowerTriangularMatrix{Float32}(undef,3,3). The element type is arbitrary though, you can use any type T too.","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"Alternatively, it can be created through conversion from Matrix, which drops the upper triangle entries and sets them to zero","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"julia> M = rand(Float16,3,3)\n3×3 Matrix{Float16}:\n 0.2222 0.694 0.3452\n 0.2158 0.04443 0.274\n 0.9746 0.793 0.6294\n\njulia> LowerTriangularMatrix(M)\n3×3 LowerTriangularMatrix{Float16}:\n 0.2222 0.0 0.0\n 0.2158 0.04443 0.0\n 0.9746 0.793 0.6294","category":"page"},{"location":"lowertriangularmatrices/#Indexing-LowerTriangularMatrix","page":"Submodule: LowerTriangularMatrices","title":"Indexing LowerTriangularMatrix","text":"","category":"section"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"LowerTriangularMatrix supports two types of indexing: 1) by denoting two indices, column and row [l,m] or 2) by denoting a single index [lm]. The double index works as expected","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"julia> L\n3×3 LowerTriangularMatrix{Float16}:\n 0.1499 0.0 0.0\n 0.1177 0.478 0.0\n 0.1709 0.756 0.3223\n\njulia> L[2,2]\nFloat16(0.478)","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"But the single index skips the zero entries in the upper triangle, i.e.","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"julia> L[4]\nFloat16(0.478)","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"which, important, is different from single indices of an AbstractMatrix","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"julia> Matrix(L)[4]\nFloat16(0.0)","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"In performance-critical code a single index should be used, as this directly maps to the index of the underlying data vector. The double index is somewhat slower as it first has to be converted to the corresponding single index.","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"Consequently, many loops in SpeedyWeather.jl are build with the following structure","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"n,m = size(L)\nij = 0\nfor j in 1:m\n for i in j:n\n ij += 1\n L[ij] = i+j\n end\nend","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"which loops over all lower triangle entries of L::LowerTriangularMatrix and the single index ij is simply counted up. However, one could also use [i,j] as indices in the loop body or to perform any calculation (i+j here). An iterator over all entries in the lower triangle can be created by","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"for ij in eachindex(L)\n # do something\nend","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"The setindex! functionality of matrixes will throw a BoundsError when trying to write into the upper triangle of a LowerTriangularMatrix, for example","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"julia> L[2,1] = 0 # valid index\n0\n\njulia> L[1,2] = 0 # invalid index in the upper triangle\nERROR: BoundsError: attempt to access 3×3 LowerTriangularMatrix{Float32} at index [1, 2]","category":"page"},{"location":"lowertriangularmatrices/#Linear-algebra-with-LowerTriangularMatrix","page":"Submodule: LowerTriangularMatrices","title":"Linear algebra with LowerTriangularMatrix","text":"","category":"section"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"The LowerTriangularMatrices module's main purpose is not linear algebra, and it's implementation may not be efficient, however, many operations work as expected","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"julia> L = rand(LowerTriangularMatrix{Float32},3,3)\n3×3 LowerTriangularMatrix{Float32}:\n 0.57649 0.0 0.0\n 0.348685 0.875371 0.0\n 0.881923 0.850552 0.998306\n\njulia> L + L\n3×3 LowerTriangularMatrix{Float32}:\n 1.15298 0.0 0.0\n 0.697371 1.75074 0.0\n 1.76385 1.7011 1.99661\n\njulia> L * L\n3×3 Matrix{Float32}:\n 0.332341 0.0 0.0\n 0.506243 0.766275 0.0\n 1.68542 1.59366 0.996616","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"Note, however, that the latter includes a conversion to Matrix, which is true for many operations, including inv or \\. Hence when trying to do more sophisticated linear algebra with LowerTriangularMatrix we quickly leave lower triangular-land and go back to normal matrix-land.","category":"page"},{"location":"lowertriangularmatrices/#Function-index","page":"Submodule: LowerTriangularMatrices","title":"Function index","text":"","category":"section"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"LowerTriangularMatrix\nLowerTriangularMatrices.ij2k\nBase.fill!(L::LowerTriangularMatrix{T}, x) where T\nLowerTriangularMatrices.eachharmonic","category":"page"},{"location":"lowertriangularmatrices/#SpeedyWeather.LowerTriangularMatrices.LowerTriangularMatrix","page":"Submodule: LowerTriangularMatrices","title":"SpeedyWeather.LowerTriangularMatrices.LowerTriangularMatrix","text":"L = LowerTriangularMatrix{T}(v::Vector{T},m::Int,n::Int)\n\nA lower triangular matrix implementation that only stores the non-zero entries explicitly. L<:AbstractMatrix although in general we have L[i] != Matrix(L)[i], the former skips zero entries, tha latter includes them.\n\n\n\n\n\n","category":"type"},{"location":"lowertriangularmatrices/#SpeedyWeather.LowerTriangularMatrices.ij2k","page":"Submodule: LowerTriangularMatrices","title":"SpeedyWeather.LowerTriangularMatrices.ij2k","text":"k = ij2k( i::Integer, # row index of matrix\n j::Integer, # column index of matrix\n m::Integer) # number of rows in matrix\n\nConverts the index pair i,j of an mxn LowerTriangularMatrix L to a single index k that indexes the same element in the corresponding vector that stores only the lower triangle (the non-zero entries) of L.\n\n\n\n\n\n","category":"function"},{"location":"lowertriangularmatrices/#Base.fill!-Union{Tuple{T}, Tuple{LowerTriangularMatrix{T}, Any}} where T","page":"Submodule: LowerTriangularMatrices","title":"Base.fill!","text":"fill!(L::LowerTriangularMatrix,x)\n\nFills the elements of L with x. Faster than fill!(::AbstractArray,x) as only the non-zero elements in L are assigned with x.\n\n\n\n\n\n","category":"method"},{"location":"lowertriangularmatrices/#SpeedyWeather.LowerTriangularMatrices.eachharmonic","page":"Submodule: LowerTriangularMatrices","title":"SpeedyWeather.LowerTriangularMatrices.eachharmonic","text":"unit_range = eachharmonic(L::LowerTriangular)\n\ncreates unit_range::UnitRange to loop over all non-zeros in a LowerTriangularMatrix L. Like eachindex but skips the upper triangle with zeros in L.\n\n\n\n\n\nunit_range = eachharmonic(Ls::LowerTriangularMatrix...)\n\ncreates unit_range::UnitRange to loop over all non-zeros in the LowerTriangularMatrices provided as arguments. Checks bounds first. All LowerTriangularMatrix's need to be of the same size. Like eachindex but skips the upper triangle with zeros in L.\n\n\n\n\n\n","category":"function"},{"location":"conventions/#Style-and-convention-guide","page":"Style and convention guide","title":"Style and convention guide","text":"","category":"section"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"In SpeedyWeather.jl we've been following the several conventions that are documented here.","category":"page"},{"location":"conventions/#Variable-naming","page":"Style and convention guide","title":"Variable naming","text":"","category":"section"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"The prognostic variables in spectral space are called","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":" vor # Vorticity of horizontal wind field\n div # Divergence of horizontal wind field\n temp # Absolute temperature [K]\n pres_surf # Logarithm of surface pressure [log(Pa)]\n humid # Specific humidity [g/kg]","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"their transforms into grid-point space get a _grid suffix, their tendencies a _tend suffix. Further derived diagnostic dynamic variables are","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":" u\n v\n geopot\n ...","category":"page"},{"location":"conventions/#Preallocation","page":"Style and convention guide","title":"Preallocation","text":"","category":"section"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"All arrays representing variables are preallocated and grouped into two structs","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":" Prog::PrognosticVariables\n Diag::DiagnosticVariables","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"The Diag struct contains further structs which represent the grid-point transformations of the prognostic variables and their tendencies.","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":" gridvars::GridVariables\n tendencies::Tendencies\n ...","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"Constant arrays are grouped into several structs","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"Boundaries","category":"page"},{"location":"conventions/#Julian-conventions","page":"Style and convention guide","title":"Julian conventions","text":"","category":"section"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"We follow Julia's style guide and highlight here some important aspects of it.","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"Bang (!) convention. A function func does not change its input arguments, however, func! does.","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"Hence, func! is often the in-place version of func, avoiding as much memory allocation as possible and often changing its first argument, e.g. func!(out,in) so that argument in is used to calculate out which has been preallocated before function call.","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"Number format flexibility. Numeric literals such as 2.0 or 1/3 are only used in the model setup","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"but avoided throughout the code to obtain a fully number format-flexible package using the number format NF as a compile-time variable throughout the code. This often leads to overly specific code whereas a Real would generally suffice. However, this is done to avoid any implicit type conversions.","category":"page"},{"location":"extending/#New-model-setups","page":"Extending SpeedyWeather","title":"New model setups","text":"","category":"section"},{"location":"extending/","page":"Extending SpeedyWeather","title":"Extending SpeedyWeather","text":"more to come...","category":"page"},{"location":"dynamical_core/#Dynamical-core","page":"Dynamical core","title":"Dynamical core","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"A mathematical and implementation-specific description of the dynamical core used in SpeedyWeather.jl. We start by describing the barotropic vorticity equations which is one set of equations that SpeedyWeather.jl can solve (see How to run SpeedyWeather.jl) as many details therein also apply to the Shallow water equations and Primitive equations explained thereafter.","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"The dynamical core presented here largely follows the idealized models with spectral dynamics developed at the Geophysical Fluid Dynamics Laboratory[1]: A barotropic vorticity model[2], a shallow water model [3] and a primitive equation model[4]. ","category":"page"},{"location":"dynamical_core/#Barotropic-vorticity-equation","page":"Dynamical core","title":"Barotropic vorticity equation","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"The barotropic vorticity equation is the prognostic equation that describes the time evolution of relative vorticity zeta with advection, Coriolis force and diffusion in a single global layer on the sphere.","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"fracpartial zetapartial t + nabla cdot (mathbfu(zeta + f)) =\nnabla times mathbfF + (-1)^n+1nunabla^2nzeta","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"with time t, velocity vector mathbfu = (u v), Coriolis parameter f, and hyperdiffusion (-1)^n+1 nu nabla^2n zeta (n is the hyperdiffusion order; see Horizontal diffusion). We also include a forcing vector mathbfF = (F_uF_v) which acts on the zonal velocity u and the meridional velocity v and hence its curl nabla times mathbfF is a tendency for relative vorticity zeta.","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"Starting with some relative vorticity zeta, the Laplacian is inverted to obtain the stream function Psi","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"Psi = nabla^-2zeta","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"The zonal velocity u and meridional velocity v are then the (negative) meridional gradient and zonal gradient of Psi","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"beginaligned\nu = -frac1R fracpartial Psipartial theta \nv = frac1Rcos(theta) fracpartial Psipartial phi \nendaligned","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"which is described in Derivatives in spherical coordinates.","category":"page"},{"location":"dynamical_core/#Algorithm","page":"Dynamical core","title":"Algorithm","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"We briefly outline the algorithm that SpeedyWeather.jl uses in order to integrate the barotropic vorticity equation. As an intial step","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"0. Start with initial conditions of zeta_lm in spectral space and transform this model state to grid-point space:","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"Invert the Laplacian to obtain the stream function Psi_lm in spectral space\nobtain zonal velocity (cos(theta)u)_lm through a Meridional derivative\nobtain meridional velocity (cos(theta)v)_lm through a Zonal derivative\nTransform zonal and meridional velocity (cos(theta)u)_lm, (cos(theta)v)_lm to grid-point space\nUnscale the cos(theta) factor to obtain uv\nTransform zeta_lm to zeta in grid-point space","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"Now loop over","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"Compute the forcing vector mathbfF = (F_uF_v) for u and v\nMultiply uv with zeta+f in grid-point space\nAdd A = F_u + v(zeta + f) and B = F_v - u(zeta + f)\nTransform these vector components to spectral space A_lm, B_lm\nCompute the curl of (AB)_lm in spectral space which is the tendency of zeta_lm\nCompute the Horizontal diffusion based on that tendency\nCompute a leapfrog time step as described in Time integration\nTransform the spectral state of zeta_lm to grid-point uvzeta as described in 0.\nPossibly do some output\nRepeat from 1.","category":"page"},{"location":"dynamical_core/#Shallow-water-equations","page":"Dynamical core","title":"Shallow water equations","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"beginaligned\nfracpartial zetapartial t + nabla cdot (mathbfu(zeta + f)) = (-1)^n+1nunabla^2nzeta \nfracpartial mathcalDpartial t - nabla times (mathbfu(zeta + f)) = -nabla^2(tfrac12(u^2 + v^2) + geta) + (-1)^n+1nunabla^2nmathcalD \nfracpartial etapartial t + nabla cdot (mathbfuh) = 0\nendaligned","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"where zeta = hatmathbfz cdot (nabla times mathbfu) is the relative vorticity, mathcalD = nabla cdot mathbfu the divergence, and eta the deviation from the fluid's rest height.","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"Note: more to come...","category":"page"},{"location":"dynamical_core/#Primitive-equations","page":"Dynamical core","title":"Primitive equations","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"The primitive equations solved by SpeedyWeather.jl are","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"beginaligned\npartial_t u = \npartial_t v = \npartial_t T = \npartial_t Q = \nendaligned","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"Note: more to come...","category":"page"},{"location":"dynamical_core/#Horizontal-diffusion","page":"Dynamical core","title":"Horizontal diffusion","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"In SpeedyWeather.jl we use hyerdiffusion through an n-th power Laplacian (-1)^n+1nabla^2n (hyper when n1) which can be implemented as a multiplication of the spectral coefficients Psi_lm with (-l(l+1))^nR^-2n (see spectral Laplacian) It is therefore computationally not more expensive to apply hyperdiffusion over diffusion as the (-l(l+1))^nR^-2n can be precomputed. Note the sign change (-1)^n+1 here is such that the dissipative nature of the diffusion operator is retained for n odd and even.","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"In SpeedyWeather.jl the diffusion is applied implicitly. For that, consider a leapfrog scheme with time step Delta t of variable zeta to obtain from time steps i-1 and i, the next time step i+1","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"zeta_i+1 = zeta_i-1 + 2Delta t dzeta","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"with dzeta being some tendency evaluated from zeta_i. Now we want to add a diffusion term (-1)^n+1nu nabla^2nzeta with viscosity nu, wich however, is implicitly calculated from zeta_i+1, then","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"zeta_i+1 = zeta_i-1 + 2Delta t (dzeta + (-1)^n+1 nunabla^2nzeta_i+1)","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"As the application of (-1)^n+1nunabla^2n is, for every spectral mode, equivalent to a multiplication of a constant, we can rewrite this to","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"zeta_i+1 = fraczeta_i-1 + 2Delta t dzeta1 - 2Delta (-1)^n+1nunabla^2n","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"and expand the numerator to","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"zeta_i+1 = zeta_i-1 + 2Delta t fracdzeta + (-1)^n+1 nunabla^2nzeta_i-11 - 2Delta t (-1)^n+1nu nabla^2n","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"Hence the diffusion can be applied implicitly by updating the tendency dzeta as","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"dzeta to fracdzeta + (-1)^n+1nunabla^2nzeta_i-11 - 2Delta t nu nabla^2n","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"which only depends on zeta_i-1. Now let D_textexplicit = (-1)^n+1nunabla^2n be the explicit part and D_textimplicit = 1 - (-1)^n+1 2Delta t nunabla^2n the implicit part. Both parts can be precomputed and are D_textimplicit = 1 - 2Delta t nunabla^2n the implicit part. Both parts can be precomputed and are only an element-wise multiplication in spectral space. For every spectral harmonic lm we do","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"dzeta to D_textimplicit^-1(dzeta + D_textexplicitzeta_i-1)","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"Hence 2 multiplications and 1 subtraction with precomputed constants. However, we will normalize the (hyper-)Laplacians as described in the following. This also will take care of the alternating sign such that the diffusion operation is dissipative regardless the power n.","category":"page"},{"location":"dynamical_core/#Normalization-of-diffusion","page":"Dynamical core","title":"Normalization of diffusion","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"In physics, the Laplace operator nabla^2 is often used to represent diffusion due to viscosity in a fluid. In that case, the viscosity coefficient is nu of units textm^2texts^-1 and the full operator reads as nu nabla^2 with units (textm^2texts^-1)(textm^-2) = texts^-1. This motivates us to normalize the Laplace operator by a constant of units textm^-2 and the viscosity coefficient by its inverse such that the viscosity coefficient becomes a damping timescale of unit texts^-1. Given the application in spectral space we decide to normalize by the largest eigenvalue -l_textmax(l_textmax+1) such that all entries in the discrete spectral Laplace operator are in 01. This also has the effect that the alternating sign drops out, such that higher wavenumbers are always dampened and not amplified. The normalized viscosity coefficient nu^* = l_textmax(l_textmax+1)nu (always positive) is therefore reinterpreted as the (inverse) time scale at which the highest wavenumber is dampened to zero due to diffusion. Together we have ","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"D^textexplicit_lm = -nu^* fracl(l+1)l_textmax(l_textmax+1)","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"and the hyper-Laplacian of power n follows as","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"D^textexplicitn_lm = -nu^* left(fracl(l+1)l_textmax(l_textmax+1)right)^n","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"and the implicit part is accordingly D^textimplicitn_lm = 1 - 2Delta t D^textexplicitn_lm.","category":"page"},{"location":"dynamical_core/#Radius-scaling","page":"Dynamical core","title":"Radius scaling","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"SpeedyWeather.jl uses a scaling for vorticity zeta and stream function Psi that is","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"tildezeta = zeta R tildePsi = Psi R^-1","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"In the barotropic voriticity equation model the inversion of the Laplcians in order to obtain Psi from zeta therefore becomes","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"tildezeta = tildenabla^2 tildePsi","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"where the dimensionless gradients simply omit the scaling with 1R, tildenabla = Rnabla. The Barotropic vorticity equation scaled with R^2 is","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"partial_tildettildezeta + tildenabla cdot (mathbfu(tildezeta + tildef)) = tildenutildenabla^2ntildezeta","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"with","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"tildet = tR^-1, the scaled time t\nmathbfu = (uv), the velocity vector (no scaling applied)\ntildef = fR, the scaled Coriolis parameter f\ntildenu = nu^* R, the scaled viscosity nu^*, which itself is normalized to a damping time scale, see Normalization of diffusion.","category":"page"},{"location":"dynamical_core/#Scaled-shallow-water-equations","page":"Dynamical core","title":"Scaled shallow water equations","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"Similar to the scaled barotropic vorticity equations, the scaled shallow water equations scale the vorticity and the divergence equation with R^2, but the continuity equation with R","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"beginaligned\nfracpartial tildezetapartial tildet + tildenabla cdot (mathbfu(tildezeta + tildef)) =\ntildenutildenabla^2ntildezeta \nfracpartial tildemathcalDpartial tildet - tildenabla times (mathbfu(tildezeta + tildef)) =\n-tildenabla^2left(tfrac12(u^2 + v^2) + geta right) + tildenutildenabla^2ntildemathcalD \nfracpartial etapartial tildet + tildenabla cdot (mathbfuh) = 0\nendaligned","category":"page"},{"location":"dynamical_core/#Time-integration","page":"Dynamical core","title":"Time integration","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"SpeedyWeather.jl uses a leapfrog time scheme with a Robert's and William's filter to dampen the computational mode and achieve 3rd order accuracy.","category":"page"},{"location":"dynamical_core/#Oscillation-equation","page":"Dynamical core","title":"Oscillation equation","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"fracdFdt = iomega F","category":"page"},{"location":"dynamical_core/#References","page":"Dynamical core","title":"References","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"[1]: Geophysical Fluid Dynamics Laboratory, Idealized models with spectral dynamics","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"[2]: Geophysical Fluid Dynamics Laboratory, The barotropic vorticity equation.","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"[3]: Geophysical Fluid Dynamics Laboratory, The Shallow Water Equations.","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"[4]: Geophysical Fluid Dynamics Laboratory, The Spectral Dynamical Core","category":"page"},{"location":"spectral_transform/#Spherical-Harmonic-Transform","page":"Spherical harmonic transform","title":"Spherical Harmonic Transform","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The following sections outline the implementation of the spherical harmonic transform (in short spectral transform) between the coefficients of the spherical harmonics (the spectral space) and the grid space on a longitude-latitude regular Gaussian grid.","category":"page"},{"location":"spectral_transform/#Inspiration","page":"Spherical harmonic transform","title":"Inspiration","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The spectral transform implemented by SpeedyWeather.jl follows largely Justin Willmert's CMB.jl package and makes use of AssociatedLegendrePolynomials.jl and FFTW.jl (for Float32/64) or GenericFFT.jl (for generic) for the Fourier transform. Justin described his work in a Blog series [1][2][3][4][5][6][7][8].","category":"page"},{"location":"spectral_transform/#Spherical-harmonics","page":"Spherical harmonic transform","title":"Spherical harmonics","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The spherical harmonics Y_lm of degree l and order m over the longitude phi = (02pi) and colatitudes theta = (-pi2pi2), are","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Y_lm(phi theta) = lambda_l^m(sintheta) e^imphi","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"with lambda_l^m being the pre-normalized associated Legendre polynomials, and e^imphi are the complex exponentials (the Fourier modes). Together they form a set of orthogonal basis functions on the sphere. For an interactive visualisation of the spherical harmonics, see here.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"info: Latitudes versus colatitudes\nThe implementations of the spherical transforms in SpeedyWeather.jl use colatitudes theta = (0pi) (0 at the north pole) but the dynamical core uses latitudes theta = (-pi2pi2) (pi2 at the north pole). However, all arrays are always sorted north to south such that [i,1] will access the northern-most grid points. Note: We may also use latitudes in the spherical harmonic transform in the future for consistency. ","category":"page"},{"location":"spectral_transform/#Synthesis-(spectral-to-grid)","page":"Spherical harmonic transform","title":"Synthesis (spectral to grid)","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The synthesis (or inverse transform) takes the spectral coefficients a_lm and transforms them to grid-point values f(phitheta) (for the sake of simplicity first regarded as continuous). The synthesis is a linear combination of the spherical harmonics Y_lm with non-zero coefficients.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"f(phitheta) = sum_l=0^infty sum_m=-l^l a_lm Y_lm(phitheta)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"We obtain an approximation with a finite set of a_lm by truncating the series after l = l_max.","category":"page"},{"location":"spectral_transform/#Analysis-(grid-to-spectral)","page":"Spherical harmonic transform","title":"Analysis (grid to spectral)","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Starting in grid-point space we can transform a field f(lambdatheta) into the spectral space of the spherical harmonics by","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"a_lm = int_0^2pi int_-tfracpi2^tfracpi2 f(lambdatheta) Y_lm(lambdatheta) cos theta dtheta dlambda","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"This integral has to be discretized to when grid-point values f(lambda_itheta_i) are used. For more details, see [7],[8].","category":"page"},{"location":"spectral_transform/#Spectral-packing","page":"Spherical harmonic transform","title":"Spectral packing","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Spectral packing is the way how the coefficients a_lm of the spherical harmonics of a given spectral field are stored in an array. SpeedyWeather.jl uses the conventional spectral packing of degree l and order m as illustrated in the following image (Cyp, CC BY-SA 3.0, via Wikimedia Commons)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Every row represents an order l geq 0, starting from l=0 at the top. Every column represents an order m geq 0, starting from m=0 on the left. The coefficients of these spherical harmonics are directly mapped into a matrix a_lm as ","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":" m \nl a_00 \n a_10 a_11 \n a_20 a_12 a_22 \n a_30 a_13 a_23 a_33","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"which is consistently extended for higher degrees and orders. Consequently, all spectral fields are lower-triangular matrices with complex entries. The upper triangle excluding the diagonal explicitly stores zeros. Note that internally vector fields include an additional degree, such that l_max = m_max + 1 (see Gradients in spherical coordinates for more information). The harmonics with a_l0 (the first column) are also called zonal harmonics as they are constant with longitude phi. The harmonics with a_ll (the main diagonal) are also called sectoral harmonics as they essentially split the sphere into 2l sectors in longitude phi without a zero-crossing in latitude.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"info: Array indices\nFor a spectral field alms note that due to Julia's 1-based indexing the coefficient a_lm is obtained via alms[l+1,m+1].","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Fortran speedy does not use the same spectral packing as SpeedyWeather.jl. The alternative packing lm therein uses l=m and m=l-m as summarized in the following table.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"degree l order m l=m m=l-m\n0 0 0 0\n1 0 0 1\n1 1 1 0\n2 0 0 2\n2 1 1 1\n2 2 2 0\n3 0 0 3\n... ... ... ...","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"This alternative packing uses the top-left triangle of a coefficient matrix, and the degrees and orders from above are stored at the following indices","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":" m \nl a_00 a_10 a_20 a_30\n a_11 a_21 a_31 \n a_22 a_32 \n a_33 ","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"This spectral packing is not used in SpeedyWeather.jl but illustrated here for completeness and comparison with Fortran-speedy.","category":"page"},{"location":"spectral_transform/#Example-transforms","page":"Spherical harmonic transform","title":"Example transforms","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"julia> using SpeedyWeather\njulia> alms = zeros(ComplexF64,3,3) # spectral coefficients\njulia> alms[2,2] = 1 # only l=1,m=1 harmonic\njulia> map = gridded(alms) # convert to grid space\n8×4 Matrix{Float64}:\n -0.324541 -0.600363 -0.600363 -0.324541\n -0.134429 -0.248678 -0.248678 -0.134429\n 0.134429 0.248678 0.248678 0.134429\n 0.324541 0.600363 0.600363 0.324541\n 0.324541 0.600363 0.600363 0.324541\n 0.134429 0.248678 0.248678 0.134429\n -0.134429 -0.248678 -0.248678 -0.134429\n -0.324541 -0.600363 -0.600363 -0.324541\n \njulia> spectral(map) # back to spectral space\n3×3 Matrix{ComplexF64}:\n 0.0+0.0im 0.0+0.0im 0.0+0.0im\n 0.0+0.0im 1.0+3.60727e-17im 0.0+0.0im\n 0.0+0.0im 0.0+0.0im 0.0+0.0im","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"and we have successfully reobtained the l=m=1 spherical harmonic.","category":"page"},{"location":"spectral_transform/#Available-horizontal-resolutions","page":"Spherical harmonic transform","title":"Available horizontal resolutions","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"SpeedyWeather.jl uses triangular truncation such that only spherical harmonics with l leq l_max and m leq m_max are explicitly represented. This is usually described as Tm_max, with l_max = m_max (although in vector quantities require one more degree l in the recursion relation of meridional gradients). For example, T31 is the spectral resolution with l_max = m_max = 31. Note that the degree l and order m are mathematically 0-based, such that the corresponding coefficient matrix is of size 32x32.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Using triangular truncation[9], there are constraints on the corresponding grid resolution. Let nlon, nlat be the number of longitudes, latitudes on a regular Gaussian grid. Then spectral and grid resolution have to be chosen such that","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"nlon geq 3l_max+1\nnlat geq (3l_max+1)2","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"In general, we choose nlon = 2nlat, and ideally nlon is easily Fourier-transformable, e.g. nlon = 2^i3^j5^k with some integers ijk geq 0. SpeedyWeather.jl is tested at the following horizontal resolutions, with Delta x = tfrac2pi Rnlon as the approximate grid spacing at the Equator","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"l_max nlon nlat Delta x\n31 (default) 96 48 400 km\n42 128 64 300 km\n85 256 128 160 km\n170 512 256 80 km\n341 1024 512 40 km\n682 2048 1024 20 km","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Choosing trunc as argument in run_speedy will automatically choose nlon,nlat as presented in the table. Other common choices are T63 (192x96), T127 (384x192), T255 (768x384), T511 (1536x768), among others.","category":"page"},{"location":"spectral_transform/#Derivatives-in-spherical-coordinates","page":"Spherical harmonic transform","title":"Derivatives in spherical coordinates","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Horizontal gradients in spherical coordinates are defined for a scalar field A and the latitudes theta and longitudes lambda as","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"nabla A = left(frac1Rcosthetafracpartial Apartial lambda frac1Rfracpartial Apartial theta right)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"However, the divergence of a vector field mathbfu = (uv) includes additional cos(theta) scalings","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"nabla cdot mathbfu = frac1Rcosthetafracpartial upartial lambda +\nfrac1Rcosthetafracpartial (v costheta)partial theta","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"and similar for the curl","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"nabla times mathbfu = frac1Rcosthetafracpartial vpartial lambda -\nfrac1Rcosthetafracpartial (u costheta)partial theta","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The radius of the sphere (i.e. Earth) is R. The zonal gradient scales with 1cos(theta) as the longitudes converge towards the poles (note that theta describes latitudes here, defintions using colatitudes replace the cos with a sin.)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Starting with a spectral field of vorticity zeta and divergence mathcalD one can obtain stream function Psi and velocity potential Phi by inverting the Laplace operator nabla^2:","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Psi = nabla^-2zeta quad Phi = nabla^-2mathcalD","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The velocities uv are then obtained from (uv) = nabla^botPsi + nablaPhi following the defintion from above and nabla^bot = (-R^-1partial_theta (Rcostheta)^-1partial_lambda)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"beginaligned\nu = -frac1Rpartial_thetaPsi + frac1Rcosthetapartial_lambdaPhi \nv = +frac1Rpartial_thetaPhi + frac1Rcosthetapartial_lambdaPsi\nendaligned","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Alternatively, we can use the velocities U = ucostheta V = vcostheta, which we do as the meridional gradient for spherical harmonics is easier implemented with a costheta-scaling included, and because the divergence and curl in spherical coordinates evaluates the meridional gradient with UV and not uv. From uv we can return to zeta mathcalD via","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"beginaligned\nzeta = frac1Rcosthetapartial_lambda v - frac1Rcosthetapartial_theta (u costheta) \nmathcalD = frac1Rcosthetapartial_lambda u + frac1Rcosthetapartial_theta (v costheta)\nendaligned","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Equivalently, we have","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"beginaligned\nU = -fraccosthetaRpartial_thetaPsi + frac1Rpartial_lambdaPhi \nV = +fraccosthetaRpartial_thetaPhi + frac1Rpartial_lambdaPsi \nzeta = frac1Rpartial_lambda left( fracVcos^2theta right) -\nfraccosthetaRpartial_theta left( fracUcos^2theta right) \nmathcalD = frac1Rpartial_lambda left( fracUcos^2theta right) +\nfraccosthetaRpartial_theta left( fracVcos^2theta right)\nendaligned","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"which is a more convenient formulation as required costheta scalings are reduced to a minimum. The remaining (UV)*cos^-2theta are done in grid-point space and usually in combination with other operations like the computation of the vorticity flux. But also note that SpeedyWeather.jl scales the equations with the radius R (see Radius scaling) such that the divisions by R drop out too. As described in Meridional derivative, it is more convenient to implement costheta partial_theta via a recursion relation for the Legendre polynomials than partial_theta directly. How the operators nabla nabla times nabla cdot can be implemented with spherical harmonics is presented in the following sections.","category":"page"},{"location":"spectral_transform/#Zonal-derivative","page":"Spherical harmonic transform","title":"Zonal derivative","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The zonal derivative of a scalar field Psi in spectral space is the zonal derivative of all its respective spherical harmonics Psi_lm(phitheta) (now we use phi for longitudes to avoid confusion with the Legendre polynomials lambda_lm)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"v_lm = frac1R cos(theta) fracpartialpartial phi left( lambda_l^m(costheta) e^imphi right) =\nfracimR cos(theta) lambda_l^m(costheta) e^imphi = fracimR cos(theta) Psi_lm","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"So for every spectral harmonic, cos(theta)v_lm is obtained from Psi_lm via a multiplication with imR. Unscaling the cos(theta)-factor is done after transforming the spectral coefficients v_lm into grid-point space. As discussed in Radius scaling, SpeedyWeather.jl scales the stream function as tildePsi = R^-1Psi such that the division by radius R in the gradients can be omitted. The zonal derivative becomes therefore effectively for each spherical harmonic a scaling with its (imaginary) order im. The spherical harmonics are essentially just a Fourier transform in zonal direction and the derivative a multiplication with the respective wave number m times imaginary i.","category":"page"},{"location":"spectral_transform/#Meridional-derivative","page":"Spherical harmonic transform","title":"Meridional derivative","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The meridioinal derivative of the spherical harmonics is a derivative of the Legendre polynomials for which the following recursion relation applies[10],[11]","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"costheta fracdP_lmdtheta = -lepsilon_l+1mP_l+1m + (l+1)epsilon_lmP_l-1m","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"with recursion factors","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"epsilon_lm = sqrtfracl^2-m^24l^2-1","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"In the following we use the example of obtaining the zonal velocity u from the stream function Psi, which is through the negative meridional gradient. For the meridional derivative itself the leading minus sign has to be omitted. Starting with the spectral expansion","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Psi(lambdatheta) = sum_lmPsi_lmP_lm(sintheta)e^imlambda","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"we multiply with -R^-1costhetapartial_theta to obtain","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"costhetaleft(-frac1Rpartial_thetaPsi right) = -frac1Rsum_lmPsi_lme^imlambdacosthetapartial_theta P_lm","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"at which point the recursion from above can be applied. Collecting terms proportional to P_lm then yields","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"(cos(theta)u)_lm = -frac1R(-(l-1)epsilon_lmPsi_l-1m + (l+2)epsilon_l+1mPsi_l+1m)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"To obtain the coefficient of each spherical harmonic lm of the meridional gradient of a spectral field, two coefficients at l-1m and l+1m have to be combined. This means that the coefficient of a gradient ((costheta) u)_lm is a linear combination of the coefficients of one higher and one lower degree Psi_l+1mPsi_l-1m. As the coefficient Psi_lm with ml are zero, the sectoral harmonics (l=m) of the gradients are obtained from the first off-diagonal only. However, the l=l_max harmonics of the gradients require the l_max-1 as well as the l_max+1 harmonics. In SpeedyWeather.jl vector quantitie like uv use therefore one more meridional mode than scalar quantities such as vorticity zeta or stream function Psi. The meridional derivative in SpeedyWeather.jl also omits the 1R-scaling as explained for the Zonal derivative and in Radius scaling.","category":"page"},{"location":"spectral_transform/#Divergence-and-curl-in-spherical-harmonics","page":"Spherical harmonic transform","title":"Divergence and curl in spherical harmonics","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The meridional gradient as described above can be applied to scalars, such as Psi and Phi in the conversion to velocities (uv) = nabla^botPsi + nablaPhi, however, the operators curl nabla times and divergence nabla cdot in spherical coordinates involve a costheta scaling before the meridional gradient is applied. How to translate this to spectral coefficients has to be derived separately[10],[11].","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The spectral transform of vorticity zeta is","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"zeta_lm = frac12piint_-tfracpi2^tfracpi2int_0^2pi zeta(lambdatheta) P_lm(sintheta) e^imlambda dlambda costheta dtheta","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Given that Rzeta = cos^-1partial_lambda v - cos^-1partial_theta (u costheta), we therefore have to evaluate a meridional integral of the form","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"int P_lm frac1cos theta partial_theta(u costheta)) cos theta dtheta","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"which can be solved through integration by parts. As ucostheta = 0 at theta = pm tfracpi2 only the integral","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"= -int partial_theta P_lm (u costheta) dtheta = -int costheta partial_theta P_lm (fracucostheta) costheta dtheta","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"remains. Inserting the recurrence relation from the Meridional derivative turns this into","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"= -int left(-l epsilon_l+1mP_l+1m + (l+1)epsilon_lm P_l-1m right) (fracucostheta) cos theta dtheta","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Now we expand (tfracucostheta) but only the lm harmonic will project ontoP_lm. Let u^* = ucos^-1theta v^* = vcos^-1theta we then have in total","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"beginaligned\nRzeta_lm = imv^*_lm + (l+1)epsilon_lmu^*_l-1m - lepsilon_l+1mu^*_l+1m \nRD_lm = imu^*_lm - (l+1)epsilon_lmv^*_l-1m + lepsilon_l+1mv^*_l+1m \nendaligned","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"And the divergence D is similar, but (uv) to (-vu). We have moved the scaling with the radius R directly into zetaD as further described in Radius scaling.","category":"page"},{"location":"spectral_transform/#Laplacian","page":"Spherical harmonic transform","title":"Laplacian","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The spectral Laplacian is easily applied to the coefficients Psi_lm of a spectral field as the spherical harmonics are eigenfunctions of the Laplace operator nabla^2 in spherical coordinates with eigenvalues -l(l+1) divided by the radius squared R^2, i.e. nabla^2 Psi becomes tfrac-l(l+1)R^2Psi_lm in spectral space. For example, vorticity zeta and streamfunction Psi are related by zeta = nabla^2Psi in the barotropic vorticity model. Hence, in spectral space this is equivalent for every spectral mode of degree l and order m to","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"zeta_lm = frac-l(l+1)R^2Psi_lm","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"This can be easily inverted to obtain the stream function Psi from vorticity zeta instead. In order to avoid division by zero, we set Psi_00 here, given that the stream function is only defined up to a constant anyway.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"beginaligned\nPsi_lm = fracR^2-l(l+1)zeta_lm quad foralllm 0\nPsi_00 = 0\nendaligned","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"See also Horizontal diffusion and Normalization of diffusion.","category":"page"},{"location":"spectral_transform/#U,V-from-vorticity-and-divergence","page":"Spherical harmonic transform","title":"U,V from vorticity and divergence","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"After having discussed the zonal and meridional derivatives with spherical harmonics as well as the Laplace operator, we can derive the conversion from vorticity zeta and divergence D (which are prognostic variables) to U=ucostheta V=vcostheta. Both are linear operations that act either solely on a given harmonic (the zonal gradient and the Laplace operator) or are linear combinations between one lower and one higher degree l (the meridional gradient). It is therefore computationally more efficient to compute UV directly from zetaD instead of calculating stream function and velocity potential first. In total we have","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"beginaligned\nU_lm = -fraciml(l+1)(RD)_lm + fracepsilon_l+1ml+1(Rzeta)_l+1m - fracepsilon_lml(Rzeta)_l-1m \nV_lm = -fraciml(l+1)(Rzeta)_lm - fracepsilon_l+1ml+1(RD)_l+1m + fracepsilon_lml(RD)_l-1m \nendaligned","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"We have moved the scaling with the radius R directly into zetaD as further described in Radius scaling.","category":"page"},{"location":"spectral_transform/#References","page":"Spherical harmonic transform","title":"References","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[1]: Justin Willmert, 2020. Introduction to Associated Legendre Polynomials (Legendre.jl Series, Part I)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[2]: Justin Willmert, 2020. Calculating Legendre Polynomials (Legendre.jl Series, Part II)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[3]: Justin Willmert, 2020. Pre-normalizing Legendre Polynomials (Legendre.jl Series, Part III)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[4]: Justin Willmert, 2020. Maintaining numerical accuracy in the Legendre recurrences (Legendre.jl Series, Part IV)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[5]: Justin Willmert, 2020. Introducing Legendre.jl (Legendre.jl Series, Part V)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[6]: Justin Willmert, 2020. Numerical Accuracy of the Spherical Harmonic Recurrence Coefficient (Legendre.jl Series Addendum)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[7]: Justin Willmert, 2020. Notes on Calculating the Spherical Harmonics","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[8]: Justin Willmert, 2022. More Notes on Calculating the Spherical Harmonics: Analysis of maps to harmonic coefficients","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[9]: David Randall, 2021. An Introduction to Numerical Modeling of the Atmosphere, Chapter 22.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[10]: Dale Durran, 2010. Numerical Methods for Fluid Dynamics, Springer. In particular section 6.2, 6.4.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[11]: Geophysical Fluid Dynamics Laboratory, The barotropic vorticity equation.","category":"page"},{"location":"ringgrids/#RingGrids","page":"Submodule: RingGrids","title":"RingGrids","text":"","category":"section"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"RingGrids is a submodule that has been developed for SpeedyWeather.jl which is technically independent (SpeedyWeather.jl however imports it and so does SpeedyTransforms) and can also be used without running simulations. It is just not put into its own respective repository.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"RingGrids defines several iso-latitude grids, which are mathematically described in the section on Grids. In brief, they include the regular latitude-longitude grids (here called FullClenshawGrid) as well as grids which latitudes are shifted to the Gaussian latitudes and reduced grids, meaning that they have a decreasing number of longitudinal points towards the poles to be more equal-area than full grids.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"RingGrids defines and exports the following grids:","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"full grids: FullClenshawGrid, FullGaussianGrid, FullHEALPix, and FullOctaHEALPix\nreduced grids: OctahedralGaussianGrid, OctahedralClenshawGrid, OctaHEALPixGrid and HEALPixGrid","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"The following explanation of how to use these can be mostly applied to any of them, however, there are certain functions that are not defined, e.g. the full grids can be trivially converted to a Matrix but not the OctahedralGaussianGrid.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"note: What is a ring?\nWe use the term ring, short for iso-latitude ring, to refer to a sequence of grid points that all share the same latitude. A latitude-longitude grid is a ring grid, as it organises its grid-points into rings. However, other grids, like the cubed-sphere are not based on iso-latitude rings. SpeedyWeather.jl only works with ring grids because its a requirement for the Spherical Harmonic Transform to be efficient. See Grids.","category":"page"},{"location":"ringgrids/#Creating-data-on-a-RingGrid","page":"Submodule: RingGrids","title":"Creating data on a RingGrid","text":"","category":"section"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"Every grid in RingGrids has a grid.data field, which is a vector containing the data on the grid. The grid points are unravelled west to east then north to south, meaning that it starts at 90˚N and 0˚E then walks eastward for 360˚ before jumping on the next latitude ring further south, this way circling around the sphere till reaching the south pole. This may also be called ring order.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"Data in a Matrix which follows this ring order can be put on a FullGaussianGrid like so","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"using SpeedyWeather.RingGrids\nmap = randn(Float32,8,4)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"grid = FullGaussianGrid(map)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"A full Gaussian grid has always 2N x N grid points, but a FullClenshawGrid has 2N x N-1, if those dimensions don't match, the creation will throw an error. To reobtain the data from a grid, you can access its data field which returns a normal Vector","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"grid.data","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"Which can be reshaped to reobtain map from above. Alternatively you can Matrix(grid) to do this in one step","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"map == Matrix(FullGaussianGrid(map))","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"You can also use zeros,ones,rand,randn to create a grid, whereby nlat_half, i.e. the number of latitude rings on one hemisphere, Equator included, is used as a resolution parameter and here as a second argument.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"nlat_half = 4\ngrid = randn(OctahedralGaussianGrid{Float16},nlat_half)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"and any element type T can be used for OctahedralGaussianGrid{T} and similar for other grid types.","category":"page"},{"location":"ringgrids/#Visualising-RingGrid-data","page":"Submodule: RingGrids","title":"Visualising RingGrid data","text":"","category":"section"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"As only the full grids can be reshaped into a matrix, the underyling data structure of any AbstractGrid is a vector. As shown in the examples above, one can therefore inspect the data as if it was a vector. But as that data has, through its <:AbstractGrid type, all the geometric information available to plot it on a map, RingGrids also exports plot function, based on UnicodePlots' heatmap.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"nlat_half = 24\ngrid = randn(OctahedralGaussianGrid,nlat_half)\nplot(grid)","category":"page"},{"location":"ringgrids/#Indexing-RingGrids","page":"Submodule: RingGrids","title":"Indexing RingGrids","text":"","category":"section"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"All RingGrids have a single index ij which follows the ring order. While this is obviously not super exciting here are some examples how to make better use of the information that the data sits on a grid.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"We obtain the latitudes of the rings of a grid by calling get_latd (get_lond is only defined for full grids, or use get_latdlonds for latitudes, longitudes per grid point not per ring)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"grid = randn(OctahedralClenshawGrid,5)\nlatd = get_latd(grid)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"Now we could calculate Coriolis and add it on the grid as follows","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"rotation = 7.29e-5 # angular frequency of Earth's rotation [rad/s]\ncoriolis = 2rotation*sind.(latd) # vector of coriolis parameters per latitude ring\n\nrings = eachring(grid)\nfor (j,ring) in enumerate(rings)\n f = coriolis[j]\n for ij in ring\n grid[ij] += f\n end\nend","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"eachring creates a vector of UnitRange indices, such that we can loop over the ring index j (j=1 being closest to the North pole) pull the coriolis parameter at that latitude and then loop over all in-ring indices i (changing longitudes) to do something on the grid. Something similar can be done to scale/unscale with the cosine of latitude for example. We can always loop over all grid-points like so","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"for ij in eachgridpoint(grid)\n grid[ij]\nend","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"or use eachindex instead.","category":"page"},{"location":"ringgrids/#Interpolation-on-RingGrids","page":"Submodule: RingGrids","title":"Interpolation on RingGrids","text":"","category":"section"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"In most cases we will want to use RingGrids so that our data directly comes with the geometric information of where the grid-point is one the sphere. We have seen how to use get_latd, get_lond, ... for that above. This information generally can also be used to interpolate our data from grid to another or to request an interpolated value on some coordinates. Using our data on grid which is an OctahedralGaussianGrid from above we can use the interpolate function to get it onto a FullGaussianGrid (or any other grid for purpose)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"grid = randn(OctahedralGaussianGrid{Float32},4)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"interpolate(FullGaussianGrid,grid)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"By default this will linearly interpolate (it's an Anvil interpolator, see below) onto a grid with the same nlat_half, but we can also coarse-grain or fine-grain by specifying nlat_half directly as 2nd argument","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"interpolate(FullGaussianGrid,6,grid)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"So we got from an 8-ring OctahedralGaussianGrid{Float16} to a 12-ring FullGaussianGrid{Float64}, so it did a conversion from Float16 to Float64 on the fly too, because the default precision is Float64 unless specified. interpolate(FullGaussianGrid{Float16},6,grid) would have interpolated onto a grid with element type Float16.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"One can also interpolate onto a give cordinate ˚N, ˚E like so","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"interpolate(30.0,10.0,grid)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"we interpolated the data from grid onto 30˚N, 10˚E. To do this simultaneously for many coordinates they can be packed into a vector too","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"interpolate([30.0,40.0,50.0],[10.0,10.0,10.0],grid)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"which returns the data on grid at 30˚N, 40˚N, 50˚N, and 10˚E respectively. Note how the interpolation here retains the element type of grid.","category":"page"},{"location":"ringgrids/#Performance-for-RingGrid-interpolation","page":"Submodule: RingGrids","title":"Performance for RingGrid interpolation","text":"","category":"section"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"Every time an interpolation like interpolate(30.0,10.0,grid) is called, several things happen, which are important to understand to know how to get the fastest interpolation out of this module in a given situation. Under the hood an interpolation takes three arguments","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"output vector\ninput grid\ninterpolator","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"The output vector is just an array into which the interpolated data is written, providing this prevents unnecessary allocation of memory in case the destination array of the interpolation already exists. The input grid contains the data which is subject to interpolation, it must come on a ring grid, however, its coordinate information is actually already in the interpolator. The interpolator knows about the geometry of the grid the data is coming on and the coordinates it is supposed to interpolate onto. It has therefore precalculated the indices that are needed to access the right data on the input grid and the weights it needs to apply in the actual interplation operation. The only thing it does not know is the actual data values of that grid. So in the case you want to interpolate from grid A to grid B many times, you can just reuse the same interpolator. If you want to change the coordinates of the output grid but its total number of points remain constants then you can update the locator inside the interpolator and only else you will need to create a new interpolator. Let's look at this in practice. Say we have two grids an want to interpolate between them","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"grid_in = rand(HEALPixGrid,4)\ngrid_out = zeros(FullClenshawGrid,6)\ninterp = RingGrids.interpolator(grid_out,grid_in)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"Now we have created an interpolator interp which knows about the geometry where to interpolate from and the coordinates there to interpolate to. It is also initialized, meaning it has precomputed the indices to of grid_in that are supposed to be used. It just does not know about the data of grid_in (and neither of grid_out which will be overwritten anyway). We can now do","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"interpolate!(grid_out,grid_in,interp)\ngrid_out","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"which is identical to interpolate(grid_out,grid_in) but you can reuse interp for other data. The interpolation can also handle various element types (the interpolator interp does not have to be updated for this either)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"grid_out = zeros(FullClenshawGrid{Float16},6);\ninterpolate!(grid_out,grid_in,interp)\ngrid_out","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"and we have converted data from a HEALPixGrid{Float64} (Float64 is always default if not specified) to a FullClenshawGrid{Float16} including the type conversion Float64-Float16 on the fly. Technically there are three data types and their combinations possible: The input data will come with a type, the output array has an element type and the interpolator has precomputed weights with a given type. Say we want to go from Float16 data on an OctahedralGaussianGrid to Float16 on a FullClenshawGrid but using Float32 precision for the interpolation itself, we would do this by","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"grid_in = randn(OctahedralGaussianGrid{Float16},24)\ngrid_out = zeros(FullClenshawGrid{Float16},24)\ninterp = RingGrids.interpolator(Float32,grid_out,grid_in)\ninterpolate!(grid_out,grid_in,interp)\ngrid_out","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"As a last example we want to illustrate a situation where we would always want to interplate onto 10 coordinates, but their locations may change. In order to avoid recreating an interpolator object we would do (AnvilInterpolator is described in Anvil interpolator)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"npoints = 10 # number of coordinates to interpolate onto\ninterp = AnvilInterpolator(Float32,HEALPixGrid,24,npoints)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"with the first argument being the number format used during interpolation, then the input grid type, its resolution in terms of nlat_half and then the number of points to interpolate onto. However, interp is not yet initialized as it does not know about the destination coordinates yet. Let's define them, but note that we already decided there's only 10 of them above.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"latds = collect(0.0:5.0:45.0)\nlonds = collect(-10.0:2.0:8.0)\nnothing # hide","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"now we can update the locator inside our interpolator as follows","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"RingGrids.update_locator!(interp,latds,londs)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"With data matching the input from above, a nlat_half=24 HEALPixGrid, and allocate 10-element output vector","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"output_vec = zeros(10)\ngrid_input = rand(HEALPixGrid,24)\nnothing # hide","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"we can use the interpolator as follows","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"interpolate!(output_vec,grid_input,interp)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"which is the approximately the same as doing it directly without creating an interpolator first and updating its locator","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"interpolate(latds,londs,grid_input)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"but allows for a reuse of the interpolator. Note that the two output arrays are not exactly identical because we manually set our interpolator interp to use Float32 for the interplation whereas the default is Float64.","category":"page"},{"location":"ringgrids/#Anvil-interpolator","page":"Submodule: RingGrids","title":"Anvil interpolator","text":"","category":"section"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"Currently the only interpolator implemented is a 4-point bilinear interpolator, which schematically works as follows. Anvil interpolation is the bilinear average of a,b,c,d which are values at grid points in an anvil-shaped configuration at location x, which is denoted by Δab,Δcd,Δy, the fraction of distances between a-b,c-d, and ab-cd, respectively. Note that a,c and b,d do not necessarily share the same longitude/x-coordinate.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":" 0..............1 # fraction of distance Δab between a,b\n |< Δab >|\n\n0^ a -------- o - b # anvil-shaped average of a,b,c,d at location x\n.Δy |\n. |\n.v x \n. |\n1 c ------ o ---- d\n\n |< Δcd >|\n 0...............1 # fraction of distance Δcd between c,d\n\n^ fraction of distance Δy between a-b and c-d.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"This interpolation is chosen as by definiton of the ring grids, a and b share the same latitude, so do c and d, but the longitudes can be different for all four, a,b,c,d.","category":"page"},{"location":"ringgrids/#Function-index","page":"Submodule: RingGrids","title":"Function index","text":"","category":"section"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"RingGrids.each_index_in_ring\nRingGrids.eachgridpoint\nRingGrids.eachring\nRingGrids.whichring\nRingGrids.get_nlons","category":"page"},{"location":"ringgrids/#SpeedyWeather.RingGrids.each_index_in_ring","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.each_index_in_ring","text":"i = each_index_in_ring(grid,j)\n\nUnitRange i to access data on grid grid on ring j.\n\n\n\n\n\n","category":"function"},{"location":"ringgrids/#SpeedyWeather.RingGrids.eachgridpoint","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.eachgridpoint","text":"ijs = eachgridpoint(grid)\n\nUnitRange ijs to access each grid point on grid grid.\n\n\n\n\n\n","category":"function"},{"location":"ringgrids/#SpeedyWeather.RingGrids.eachring","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.eachring","text":"eachring(grid::SpeedyWeather.RingGrids.AbstractGrid) -> Any\n\n\nVector{UnitRange} rings to loop over every ring of grid grid and then each grid point per ring. To be used like\n\nrings = eachring(grid)\nfor ring in rings\n for ij in ring\n grid[ij]\n\n\n\n\n\neachring(\n grid1::SpeedyWeather.RingGrids.AbstractGrid,\n grids::Grid<:SpeedyWeather.RingGrids.AbstractGrid...\n) -> Any\n\n\nSame as eachring(grid) but performs a bounds check to assess that all grids in grids are of same size.\n\n\n\n\n\n","category":"function"},{"location":"ringgrids/#SpeedyWeather.RingGrids.whichring","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.whichring","text":"whichring(\n ij::Integer,\n rings::Vector{UnitRange{Int64}}\n) -> Int64\n\n\nObtain ring index j from gridpoint ij and Vector{UnitRange} describing rind indices as obtained from eachring(::Grid)\n\n\n\n\n\n","category":"function"},{"location":"ringgrids/#SpeedyWeather.RingGrids.get_nlons","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.get_nlons","text":"get_nlons(\n Grid::Type{<:SpeedyWeather.RingGrids.AbstractGrid},\n nlat_half::Integer;\n both_hemispheres\n) -> Any\n\n\nReturns a vector nlons for the number of longitude points per latitude ring, north to south. Provide grid Grid and its resolution parameter nlat_half. For both_hemisphere==false only the northern hemisphere (incl Equator) is returned.\n\n\n\n\n\n","category":"function"},{"location":"#SpeedyWeather.jl-documentation","page":"Home","title":"SpeedyWeather.jl documentation","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Welcome to the documentation for SpeedyWeather.jl a global atmospheric circulation model with simple parametrizations to represent physical processes such as clouds, precipitation and radiation.","category":"page"},{"location":"#Overview","page":"Home","title":"Overview","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"SpeedyWeather.jl is a global spectral model that uses a spherical harmonic transform to perform some calculations in spectral space (time integration, gradients, linear terms) and some in grid-point space (advection, non-linear terms, parameterizations). The prognostic variables used are vorticity, divergence, absolute temperature, logarithm of surface pressure and specific humidity. The time stepping uses a leapfrog scheme with additional filters and a semi-implicit formulation for gravity waves. The default resolution is T31 (96x48 grid points on a regular Gaussian grid, about 400km at the Equator) and 8 vertical levels.","category":"page"},{"location":"","page":"Home","title":"Home","text":"Simple parameterizations are used to represent the physical processes convection, large-scale condensation, clouds, short-wave radiation, long-waves radiation, surface fluxes of momentum and energy, and vertical diffusion.","category":"page"},{"location":"#Manual-outline","page":"Home","title":"Manual outline","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"See the following pages of the documentation for more details","category":"page"},{"location":"","page":"Home","title":"Home","text":"Installation\nHow to run SpeedyWeather.jl\nSpherical harmonic transform\nGrids\nDynamical core\nParametrizations\nExtending SpeedyWeather","category":"page"},{"location":"","page":"Home","title":"Home","text":"and the submodules","category":"page"},{"location":"","page":"Home","title":"Home","text":"RingGrids and their interpolation \nLowerTriangularMatrices \nSpeedyTransforms","category":"page"},{"location":"","page":"Home","title":"Home","text":"and the original documentation by Molteni and Kucharski.","category":"page"},{"location":"#Developers","page":"Home","title":"Developers","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"The development of SpeedyWeather.jl is lead by Milan Klöwer and current and past contributors include","category":"page"},{"location":"","page":"Home","title":"Home","text":"Tom Kimpson\nAlistair White\nMaximilian Gelbrecht\nDavid Meyer\nDaisuke Hotta\nNavid Constantinou","category":"page"},{"location":"","page":"Home","title":"Home","text":"Any contributions are always welcome!","category":"page"},{"location":"#Funding","page":"Home","title":"Funding","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"MK received funding by the European Research Council under Horizon 2020 within the ITHACA project, grant agreement number 741112 from 2021-2022. Since 2023 this project is also funded by the National Science Foundation NSF.","category":"page"},{"location":"time_integration/#Time-integration","page":"Time integration","title":"Time integration","text":"","category":"section"},{"location":"time_integration/","page":"Time integration","title":"Time integration","text":"SpeedyWeather.jl uses a leapfrog time scheme with a Robert's and William's filter to dampen the computational mode and achieve 3rd order accuracy.","category":"page"},{"location":"time_integration/#Oscillation-equation","page":"Time integration","title":"Oscillation equation","text":"","category":"section"},{"location":"time_integration/","page":"Time integration","title":"Time integration","text":"fracdFdt = iomega F","category":"page"},{"location":"time_integration/#Implementation-details","page":"Time integration","title":"Implementation details","text":"","category":"section"}] +} diff --git a/previews/PR345/siteinfo.js b/previews/PR345/siteinfo.js new file mode 100644 index 000000000..c3c85eb9c --- /dev/null +++ b/previews/PR345/siteinfo.js @@ -0,0 +1 @@ +var DOCUMENTER_CURRENT_VERSION = "previews/PR345"; diff --git a/previews/PR345/spectral_transform/index.html b/previews/PR345/spectral_transform/index.html new file mode 100644 index 000000000..7b06fea06 --- /dev/null +++ b/previews/PR345/spectral_transform/index.html @@ -0,0 +1,45 @@ + +Spherical harmonic transform · SpeedyWeather.jl

          Spherical Harmonic Transform

          The following sections outline the implementation of the spherical harmonic transform (in short spectral transform) between the coefficients of the spherical harmonics (the spectral space) and the grid space on a longitude-latitude regular Gaussian grid.

          Inspiration

          The spectral transform implemented by SpeedyWeather.jl follows largely Justin Willmert's CMB.jl package and makes use of AssociatedLegendrePolynomials.jl and FFTW.jl (for Float32/64) or GenericFFT.jl (for generic) for the Fourier transform. Justin described his work in a Blog series [1][2][3][4][5][6][7][8].

          Spherical harmonics

          The spherical harmonics $Y_{lm}$ of degree $l$ and order $m$ over the longitude $\phi = (0,2\pi)$ and colatitudes $\theta = (-\pi/2,\pi/2)$, are

          \[Y_{lm}(\phi, \theta) = \lambda_l^m(\sin\theta) e^{im\phi}\]

          with $\lambda_l^m$ being the pre-normalized associated Legendre polynomials, and $e^{im\phi}$ are the complex exponentials (the Fourier modes). Together they form a set of orthogonal basis functions on the sphere. For an interactive visualisation of the spherical harmonics, see here.

          Latitudes versus colatitudes

          The implementations of the spherical transforms in SpeedyWeather.jl use colatitudes $\theta = (0,\pi)$ (0 at the north pole) but the dynamical core uses latitudes $\theta = (-\pi/2,\pi/2)$ ($\pi/2$ at the north pole). However, all arrays are always sorted north to south such that [i,1] will access the northern-most grid points. Note: We may also use latitudes in the spherical harmonic transform in the future for consistency.

          Synthesis (spectral to grid)

          The synthesis (or inverse transform) takes the spectral coefficients $a_{lm}$ and transforms them to grid-point values $f(\phi,\theta)$ (for the sake of simplicity first regarded as continuous). The synthesis is a linear combination of the spherical harmonics $Y_{lm}$ with non-zero coefficients.

          \[f(\phi,\theta) = \sum_{l=0}^{\infty} \sum_{m=-l}^l a_{lm} Y_{lm}(\phi,\theta)\]

          We obtain an approximation with a finite set of $a_{l,m}$ by truncating the series after $l = l_{max}$.

          Analysis (grid to spectral)

          Starting in grid-point space we can transform a field $f(\lambda,\theta)$ into the spectral space of the spherical harmonics by

          \[a_{l,m} = \int_0^{2\pi} \int_{-\tfrac{\pi}{2}}^\tfrac{\pi}{2} f(\lambda,\theta) Y_{l,m}(\lambda,\theta) \cos \theta d\theta d\lambda\]

          This integral has to be discretized to when grid-point values $f(\lambda_i,\theta_i)$ are used. For more details, see [7],[8].

          Spectral packing

          Spectral packing is the way how the coefficients $a_{lm}$ of the spherical harmonics of a given spectral field are stored in an array. SpeedyWeather.jl uses the conventional spectral packing of degree $l$ and order $m$ as illustrated in the following image (Cyp, CC BY-SA 3.0, via Wikimedia Commons)

          Every row represents an order $l \geq 0$, starting from $l=0$ at the top. Every column represents an order $m \geq 0$, starting from $m=0$ on the left. The coefficients of these spherical harmonics are directly mapped into a matrix $a_{lm}$ as

          $m$
          $l$$a_{00}$
          $a_{10}$$a_{11}$
          $a_{20}$$a_{12}$$a_{22}$
          $a_{30}$$a_{13}$$a_{23}$$a_{33}$

          which is consistently extended for higher degrees and orders. Consequently, all spectral fields are lower-triangular matrices with complex entries. The upper triangle excluding the diagonal explicitly stores zeros. Note that internally vector fields include an additional degree, such that $l_{max} = m_{max} + 1$ (see Gradients in spherical coordinates for more information). The harmonics with $a_{l0}$ (the first column) are also called zonal harmonics as they are constant with longitude $\phi$. The harmonics with $a_{ll}$ (the main diagonal) are also called sectoral harmonics as they essentially split the sphere into $2l$ sectors in longitude $\phi$ without a zero-crossing in latitude.

          Array indices

          For a spectral field alms note that due to Julia's 1-based indexing the coefficient $a_{lm}$ is obtained via alms[l+1,m+1].

          Fortran speedy does not use the same spectral packing as SpeedyWeather.jl. The alternative packing $l',m'$ therein uses $l'=m$ and $m'=l-m$ as summarized in the following table.

          degree $l$order $m$$l'=m$$m'=l-m$
          0000
          1001
          1110
          2002
          2111
          2220
          3003
          ............

          This alternative packing uses the top-left triangle of a coefficient matrix, and the degrees and orders from above are stored at the following indices

          $m'$
          $l'$$a_{00}$$a_{10}$$a_{20}$$a_{30}$
          $a_{11}$$a_{21}$$a_{31}$
          $a_{22}$$a_{32}$
          $a_{33}$

          This spectral packing is not used in SpeedyWeather.jl but illustrated here for completeness and comparison with Fortran-speedy.

          Example transforms

          julia> using SpeedyWeather
          +julia> alms = zeros(ComplexF64,3,3)    # spectral coefficients
          +julia> alms[2,2] = 1                   # only l=1,m=1 harmonic
          +julia> map = gridded(alms)             # convert to grid space
          +8×4 Matrix{Float64}:
          + -0.324541  -0.600363  -0.600363  -0.324541
          + -0.134429  -0.248678  -0.248678  -0.134429
          +  0.134429   0.248678   0.248678   0.134429
          +  0.324541   0.600363   0.600363   0.324541
          +  0.324541   0.600363   0.600363   0.324541
          +  0.134429   0.248678   0.248678   0.134429
          + -0.134429  -0.248678  -0.248678  -0.134429
          + -0.324541  -0.600363  -0.600363  -0.324541
          + 
          +julia> spectral(map)                   # back to spectral space
          +3×3 Matrix{ComplexF64}:
          + 0.0+0.0im  0.0+0.0im          0.0+0.0im
          + 0.0+0.0im  1.0+3.60727e-17im  0.0+0.0im
          + 0.0+0.0im  0.0+0.0im          0.0+0.0im

          and we have successfully reobtained the $l=m=1$ spherical harmonic.

          Available horizontal resolutions

          SpeedyWeather.jl uses triangular truncation such that only spherical harmonics with $l \leq l_{max}$ and $|m| \leq m_{max}$ are explicitly represented. This is usually described as $Tm_{max}$, with $l_{max} = m_{max}$ (although in vector quantities require one more degree $l$ in the recursion relation of meridional gradients). For example, T31 is the spectral resolution with $l_{max} = m_{max} = 31$. Note that the degree $l$ and order $m$ are mathematically 0-based, such that the corresponding coefficient matrix is of size 32x32.

          Using triangular truncation[9], there are constraints on the corresponding grid resolution. Let nlon, nlat be the number of longitudes, latitudes on a regular Gaussian grid. Then spectral and grid resolution have to be chosen such that

          • $nlon \geq 3l_{max}+1$
          • $nlat \geq (3l_{max}+1)/2$

          In general, we choose $nlon = 2nlat$, and ideally $nlon$ is easily Fourier-transformable, e.g. $nlon = 2^i3^j5^k$ with some integers $i,j,k \geq 0$. SpeedyWeather.jl is tested at the following horizontal resolutions, with $\Delta x = \tfrac{2\pi R}{nlon}$ as the approximate grid spacing at the Equator

          $l_{max}$nlonnlat$\Delta x$
          31 (default)9648400 km
          4212864300 km
          85256128160 km
          17051225680 km
          341102451240 km
          6822048102420 km

          Choosing trunc as argument in run_speedy will automatically choose nlon,nlat as presented in the table. Other common choices are T63 (192x96), T127 (384x192), T255 (768x384), T511 (1536x768), among others.

          Derivatives in spherical coordinates

          Horizontal gradients in spherical coordinates are defined for a scalar field $A$ and the latitudes $\theta$ and longitudes $\lambda$ as

          \[\nabla A = \left(\frac{1}{R\cos\theta}\frac{\partial A}{\partial \lambda}, \frac{1}{R}\frac{\partial A}{\partial \theta} \right).\]

          However, the divergence of a vector field $\mathbf{u} = (u,v)$ includes additional $\cos(\theta)$ scalings

          \[\nabla \cdot \mathbf{u} = \frac{1}{R\cos\theta}\frac{\partial u}{\partial \lambda} + +\frac{1}{R\cos\theta}\frac{\partial (v \cos\theta)}{\partial \theta},\]

          and similar for the curl

          \[\nabla \times \mathbf{u} = \frac{1}{R\cos\theta}\frac{\partial v}{\partial \lambda} - +\frac{1}{R\cos\theta}\frac{\partial (u \cos\theta)}{\partial \theta}.\]

          The radius of the sphere (i.e. Earth) is $R$. The zonal gradient scales with $1/\cos(\theta)$ as the longitudes converge towards the poles (note that $\theta$ describes latitudes here, defintions using colatitudes replace the $\cos$ with a $\sin$.)

          Starting with a spectral field of vorticity $\zeta$ and divergence $\mathcal{D}$ one can obtain stream function $\Psi$ and velocity potential $\Phi$ by inverting the Laplace operator $\nabla^2$:

          \[\Psi = \nabla^{-2}\zeta, \quad \Phi = \nabla^{-2}\mathcal{D}.\]

          The velocities $u,v$ are then obtained from $(u,v) = \nabla^\bot\Psi + \nabla\Phi$ following the defintion from above and $\nabla^\bot = (-R^{-1}\partial_\theta, (R\cos\theta)^{-1}\partial_\lambda)$

          \[\begin{aligned} +u &= -\frac{1}{R}\partial_\theta\Psi + \frac{1}{R\cos\theta}\partial_\lambda\Phi \\ +v &= +\frac{1}{R}\partial_\theta\Phi + \frac{1}{R\cos\theta}\partial_\lambda\Psi. +\end{aligned}\]

          Alternatively, we can use the velocities $U = u\cos\theta, V = v\cos\theta$, which we do as the meridional gradient for spherical harmonics is easier implemented with a $\cos\theta$-scaling included, and because the divergence and curl in spherical coordinates evaluates the meridional gradient with $U,V$ and not $u,v$. From $u,v$ we can return to $\zeta, \mathcal{D}$ via

          \[\begin{aligned} +\zeta &= \frac{1}{R\cos\theta}\partial_\lambda v - \frac{1}{R\cos\theta}\partial_\theta (u \cos\theta) \\ +\mathcal{D} &= \frac{1}{R\cos\theta}\partial_\lambda u + \frac{1}{R\cos\theta}\partial_\theta (v \cos\theta). +\end{aligned}\]

          Equivalently, we have

          \[\begin{aligned} +U &= -\frac{\cos\theta}{R}\partial_\theta\Psi + \frac{1}{R}\partial_\lambda\Phi \\ +V &= +\frac{\cos\theta}{R}\partial_\theta\Phi + \frac{1}{R}\partial_\lambda\Psi \\ +\zeta &= \frac{1}{R}\partial_\lambda \left( \frac{V}{\cos^2\theta} \right) - +\frac{\cos\theta}{R}\partial_\theta \left( \frac{U}{\cos^2\theta} \right) \\ +\mathcal{D} &= \frac{1}{R}\partial_\lambda \left( \frac{U}{\cos^2\theta} \right) + +\frac{\cos\theta}{R}\partial_\theta \left( \frac{V}{\cos^2\theta} \right). +\end{aligned}\]

          which is a more convenient formulation as required $\cos\theta$ scalings are reduced to a minimum. The remaining $(U,V)*\cos^{-2}\theta$ are done in grid-point space and usually in combination with other operations like the computation of the vorticity flux. But also note that SpeedyWeather.jl scales the equations with the radius R (see Radius scaling) such that the divisions by R drop out too. As described in Meridional derivative, it is more convenient to implement $\cos\theta \partial_\theta$ via a recursion relation for the Legendre polynomials than $\partial_\theta$ directly. How the operators $\nabla, \nabla \times, \nabla \cdot$ can be implemented with spherical harmonics is presented in the following sections.

          Zonal derivative

          The zonal derivative of a scalar field $\Psi$ in spectral space is the zonal derivative of all its respective spherical harmonics $\Psi_{lm}(\phi,\theta)$ (now we use $\phi$ for longitudes to avoid confusion with the Legendre polynomials $\lambda_{lm}$)

          \[v_{lm} = \frac{1}{R \cos(\theta)} \frac{\partial}{\partial \phi} \left( \lambda_l^m(\cos\theta) e^{im\phi} \right) = +\frac{im}{R \cos(\theta)} \lambda_l^m(\cos\theta) e^{im\phi} = \frac{im}{R \cos(\theta)} \Psi_{lm}\]

          So for every spectral harmonic, $\cos(\theta)v_{lm}$ is obtained from $\Psi_{lm}$ via a multiplication with $im/R$. Unscaling the $\cos(\theta)$-factor is done after transforming the spectral coefficients $v_{lm}$ into grid-point space. As discussed in Radius scaling, SpeedyWeather.jl scales the stream function as $\tilde{\Psi} = R^{-1}\Psi$ such that the division by radius $R$ in the gradients can be omitted. The zonal derivative becomes therefore effectively for each spherical harmonic a scaling with its (imaginary) order $im$. The spherical harmonics are essentially just a Fourier transform in zonal direction and the derivative a multiplication with the respective wave number $m$ times imaginary $i$.

          Meridional derivative

          The meridioinal derivative of the spherical harmonics is a derivative of the Legendre polynomials for which the following recursion relation applies[10],[11]

          \[\cos\theta \frac{dP_{l,m}}{d\theta} = -l\epsilon_{l+1,m}P_{l+1,m} + (l+1)\epsilon_{l,m}P_{l-1,m}.\]

          with recursion factors

          \[\epsilon_{l,m} = \sqrt{\frac{l^2-m^2}{4l^2-1}}\]

          In the following we use the example of obtaining the zonal velocity $u$ from the stream function $\Psi$, which is through the negative meridional gradient. For the meridional derivative itself the leading minus sign has to be omitted. Starting with the spectral expansion

          \[\Psi(\lambda,\theta) = \sum_{l,m}\Psi_{l,m}P_{l,m}(\sin\theta)e^{im\lambda}\]

          we multiply with $-R^{-1}\cos\theta\partial_\theta$ to obtain

          \[\cos\theta\left(-\frac{1}{R}\partial_\theta\Psi \right) = -\frac{1}{R}\sum_{l,m}\Psi_{l,m}e^{im\lambda}\cos\theta\partial_\theta P_{l,m}\]

          at which point the recursion from above can be applied. Collecting terms proportional to $P_{l,m}$ then yields

          \[(\cos(\theta)u)_{l,m} = -\frac{1}{R}(-(l-1)\epsilon_{l,m}\Psi_{l-1,m} + (l+2)\epsilon_{l+1,m}\Psi_{l+1,m})\]

          To obtain the coefficient of each spherical harmonic $l,m$ of the meridional gradient of a spectral field, two coefficients at $l-1,m$ and $l+1,m$ have to be combined. This means that the coefficient of a gradient $((\cos\theta) u)_{lm}$ is a linear combination of the coefficients of one higher and one lower degree $\Psi_{l+1,m},\Psi_{l-1,m}$. As the coefficient $\Psi_{lm}$ with $m<l$ are zero, the sectoral harmonics ($l=m$) of the gradients are obtained from the first off-diagonal only. However, the $l=l_{max}$ harmonics of the gradients require the $l_{max}-1$ as well as the $l_{max}+1$ harmonics. In SpeedyWeather.jl vector quantitie like $u,v$ use therefore one more meridional mode than scalar quantities such as vorticity $\zeta$ or stream function $\Psi$. The meridional derivative in SpeedyWeather.jl also omits the $1/R$-scaling as explained for the Zonal derivative and in Radius scaling.

          Divergence and curl in spherical harmonics

          The meridional gradient as described above can be applied to scalars, such as $\Psi$ and $\Phi$ in the conversion to velocities $(u,v) = \nabla^\bot\Psi + \nabla\Phi$, however, the operators curl $\nabla \times$ and divergence $\nabla \cdot$ in spherical coordinates involve a $\cos\theta$ scaling before the meridional gradient is applied. How to translate this to spectral coefficients has to be derived separately[10],[11].

          The spectral transform of vorticity $\zeta$ is

          \[\zeta_{l,m} = \frac{1}{2\pi}\int_{-\tfrac{\pi}{2}}^\tfrac{\pi}{2}\int_0^{2\pi} \zeta(\lambda,\theta) P_{l,m}(\sin\theta) e^{im\lambda} d\lambda \cos\theta d\theta\]

          Given that $R\zeta = \cos^{-1}\partial_\lambda v - \cos^{-1}\partial_\theta (u \cos\theta)$, we therefore have to evaluate a meridional integral of the form

          \[\int P_{l,m} \frac{1}{\cos \theta} \partial_\theta(u \cos\theta)) \cos \theta d\theta\]

          which can be solved through integration by parts. As $u\cos\theta = 0$ at $\theta = \pm \tfrac{\pi}{2}$ only the integral

          \[= -\int \partial_\theta P_{l,m} (u \cos\theta) d\theta = -\int \cos\theta \partial_\theta P_{l,m} (\frac{u}{\cos\theta}) \cos\theta d\theta\]

          remains. Inserting the recurrence relation from the Meridional derivative turns this into

          \[= -\int \left(-l \epsilon_{l+1,m}P_{l+1,m} + (l+1)\epsilon_{l,m} P_{l-1,m} \right) (\frac{u}{\cos\theta}) \cos \theta d\theta\]

          Now we expand $(\tfrac{u}{\cos\theta})$ but only the $l,m$ harmonic will project onto$P_{l,m}$. Let $u^* = u\cos^{-1}\theta, v^* = v\cos^{-1}\theta$ we then have in total

          \[\begin{aligned} +R\zeta_{l,m} &= imv^*_{l,m} + (l+1)\epsilon_{l,m}u^*_{l-1,m} - l\epsilon_{l+1,m}u^*_{l+1,m} \\ +RD_{l,m} &= imu^*_{l,m} - (l+1)\epsilon_{l,m}v^*_{l-1,m} + l\epsilon_{l+1,m}v^*_{l+1,m} \\ +\end{aligned}\]

          And the divergence $D$ is similar, but $(u,v) \to (-v,u)$. We have moved the scaling with the radius $R$ directly into $\zeta,D$ as further described in Radius scaling.

          Laplacian

          The spectral Laplacian is easily applied to the coefficients $\Psi_{lm}$ of a spectral field as the spherical harmonics are eigenfunctions of the Laplace operator $\nabla^2$ in spherical coordinates with eigenvalues $-l(l+1)$ divided by the radius squared $R^2$, i.e. $\nabla^2 \Psi$ becomes $\tfrac{-l(l+1)}{R^2}\Psi_{lm}$ in spectral space. For example, vorticity $\zeta$ and streamfunction $\Psi$ are related by $\zeta = \nabla^2\Psi$ in the barotropic vorticity model. Hence, in spectral space this is equivalent for every spectral mode of degree $l$ and order $m$ to

          \[\zeta_{l,m} = \frac{-l(l+1)}{R^2}\Psi_{l,m}\]

          This can be easily inverted to obtain the stream function $\Psi$ from vorticity $\zeta$ instead. In order to avoid division by zero, we set $\Psi_{0,0}$ here, given that the stream function is only defined up to a constant anyway.

          \[\begin{aligned} +\Psi_{l,m} &= \frac{R^2}{-l(l+1)}\zeta_{l,m} \quad \forall~l,m > 0,\\ +\Psi_{0,0} &= 0. +\end{aligned}\]

          See also Horizontal diffusion and Normalization of diffusion.

          U,V from vorticity and divergence

          After having discussed the zonal and meridional derivatives with spherical harmonics as well as the Laplace operator, we can derive the conversion from vorticity $\zeta$ and divergence $D$ (which are prognostic variables) to $U=u\cos\theta, V=v\cos\theta$. Both are linear operations that act either solely on a given harmonic (the zonal gradient and the Laplace operator) or are linear combinations between one lower and one higher degree $l$ (the meridional gradient). It is therefore computationally more efficient to compute $U,V$ directly from $\zeta,D$ instead of calculating stream function and velocity potential first. In total we have

          \[\begin{aligned} +U_{l,m} &= -\frac{im}{l(l+1)}(RD)_{l,m} + \frac{\epsilon_{l+1,m}}{l+1}(R\zeta)_{l+1,m} - \frac{\epsilon_{l,m}}{l}(R\zeta)_{l-1,m} \\ +V_{l,m} &= -\frac{im}{l(l+1)}(R\zeta)_{l,m} - \frac{\epsilon_{l+1,m}}{l+1}(RD)_{l+1,m} + \frac{\epsilon_{l,m}}{l}(RD)_{l-1,m} \\ +\end{aligned}\]

          We have moved the scaling with the radius $R$ directly into $\zeta,D$ as further described in Radius scaling.

          References

          diff --git a/previews/PR345/speedytransforms/index.html b/previews/PR345/speedytransforms/index.html new file mode 100644 index 000000000..bc0d4c6b6 --- /dev/null +++ b/previews/PR345/speedytransforms/index.html @@ -0,0 +1,2 @@ + +Submodule: SpeedyTransforms · SpeedyWeather.jl

          SpeedyTransforms

          SpeedyTransforms is a submodule that has been developed for SpeedyWeather.jl which is technically independent (SpeedyWeather.jl however imports it) and can also be used without running simulations. It is just not put into its own respective repository.

          Functions

          diff --git a/previews/PR345/time_integration/index.html b/previews/PR345/time_integration/index.html new file mode 100644 index 000000000..11050d05c --- /dev/null +++ b/previews/PR345/time_integration/index.html @@ -0,0 +1,2 @@ + +Time integration · SpeedyWeather.jl
          diff --git a/previews/PR349/assets/documenter.js b/previews/PR349/assets/documenter.js new file mode 100644 index 000000000..6adfbbbf4 --- /dev/null +++ b/previews/PR349/assets/documenter.js @@ -0,0 +1,331 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'highlight-julia': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia.min', + 'headroom': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/headroom.min', + 'jqueryui': 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min', + 'katex-auto-render': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/contrib/auto-render.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + 'headroom-jquery': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/jQuery.headroom.min', + 'katex': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/katex.min', + 'highlight': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/highlight.min', + 'highlight-julia-repl': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia-repl.min', + }, + shim: { + "highlight-julia": { + "deps": [ + "highlight" + ] + }, + "katex-auto-render": { + "deps": [ + "katex" + ] + }, + "headroom-jquery": { + "deps": [ + "jquery", + "headroom" + ] + }, + "highlight-julia-repl": { + "deps": [ + "highlight" + ] + } +} +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'katex', 'katex-auto-render'], function($, katex, renderMathInElement) { +$(document).ready(function() { + renderMathInElement( + document.body, + { + "delimiters": [ + { + "left": "$", + "right": "$", + "display": false + }, + { + "left": "$$", + "right": "$$", + "display": true + }, + { + "left": "\\[", + "right": "\\]", + "display": true + } + ] +} + + ); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'highlight', 'highlight-julia', 'highlight-julia-repl'], function($) { +$(document).ready(function() { + hljs.highlightAll(); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require([], function() { +function addCopyButtonCallbacks() { + for (const el of document.getElementsByTagName("pre")) { + const button = document.createElement("button"); + button.classList.add("copy-button", "fas", "fa-copy"); + el.appendChild(button); + + const success = function () { + button.classList.add("success", "fa-check"); + button.classList.remove("fa-copy"); + }; + + const failure = function () { + button.classList.add("error", "fa-times"); + button.classList.remove("fa-copy"); + }; + + button.addEventListener("click", function () { + copyToClipboard(el.innerText).then(success, failure); + + setTimeout(function () { + button.classList.add("fa-copy"); + button.classList.remove("success", "fa-check", "fa-times"); + }, 5000); + }); + } +} + +function copyToClipboard(text) { + // clipboard API is only available in secure contexts + if (window.navigator && window.navigator.clipboard) { + return window.navigator.clipboard.writeText(text); + } else { + return new Promise(function (resolve, reject) { + try { + const el = document.createElement("textarea"); + el.textContent = text; + el.style.position = "fixed"; + el.style.opacity = 0; + document.body.appendChild(el); + el.select(); + document.execCommand("copy"); + + resolve(); + } catch (err) { + reject(err); + } finally { + document.body.removeChild(el); + } + }); + } +} + +if (document.readyState === "loading") { + document.addEventListener("DOMContentLoaded", addCopyButtonCallbacks); +} else { + addCopyButtonCallbacks(); +} + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'headroom', 'headroom-jquery'], function($, Headroom) { + +// Manages the top navigation bar (hides it when the user starts scrolling down on the +// mobile). +window.Headroom = Headroom; // work around buggy module loading? +$(document).ready(function() { + $('#documenter .docs-navbar').headroom({ + "tolerance": {"up": 10, "down": 10}, + }); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Modal settings dialog +$(document).ready(function() { + var settings = $('#documenter-settings'); + $('#documenter-settings-button').click(function(){ + settings.toggleClass('is-active'); + }); + // Close the dialog if X is clicked + $('#documenter-settings button.delete').click(function(){ + settings.removeClass('is-active'); + }); + // Close dialog if ESC is pressed + $(document).keyup(function(e) { + if (e.keyCode == 27) settings.removeClass('is-active'); + }); +}); + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Manages the showing and hiding of the sidebar. +$(document).ready(function() { + var sidebar = $("#documenter > .docs-sidebar"); + var sidebar_button = $("#documenter-sidebar-button") + sidebar_button.click(function(ev) { + ev.preventDefault(); + sidebar.toggleClass('visible'); + if (sidebar.hasClass('visible')) { + // Makes sure that the current menu item is visible in the sidebar. + $("#documenter .docs-menu a.is-active").focus(); + } + }); + $("#documenter > .docs-main").bind('click', function(ev) { + if ($(ev.target).is(sidebar_button)) { + return; + } + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + }); +}) + +// Resizes the package name / sitename in the sidebar if it is too wide. +// Inspired by: https://github.com/davatron5000/FitText.js +$(document).ready(function() { + e = $("#documenter .docs-autofit"); + function resize() { + var L = parseInt(e.css('max-width'), 10); + var L0 = e.width(); + if(L0 > L) { + var h0 = parseInt(e.css('font-size'), 10); + e.css('font-size', L * h0 / L0); + // TODO: make sure it survives resizes? + } + } + // call once and then register events + resize(); + $(window).resize(resize); + $(window).on('orientationchange', resize); +}); + +// Scroll the navigation bar to the currently selected menu item +$(document).ready(function() { + var sidebar = $("#documenter .docs-menu").get(0); + var active = $("#documenter .docs-menu .is-active").get(0); + if(typeof active !== 'undefined') { + sidebar.scrollTop = active.offsetTop - sidebar.offsetTop - 15; + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +function set_theme(theme) { + var active = null; + var disabled = []; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + var themename = ss.ownerNode.getAttribute("data-theme-name"); + if(themename === null) continue; // ignore non-theme stylesheets + // Find the active theme + if(themename === theme) active = ss; + else disabled.push(ss); + } + if(active !== null) { + active.disabled = false; + if(active.ownerNode.getAttribute("data-theme-primary") === null) { + document.getElementsByTagName('html')[0].className = "theme--" + theme; + } else { + document.getElementsByTagName('html')[0].className = ""; + } + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + + // Store the theme in localStorage + if(typeof(window.localStorage) !== "undefined") { + window.localStorage.setItem("documenter-theme", theme); + } else { + console.error("Browser does not support window.localStorage"); + } +} + +// Theme picker setup +$(document).ready(function() { + // onchange callback + $('#documenter-themepicker').change(function themepick_callback(ev){ + var themename = $('#documenter-themepicker option:selected').attr('value'); + set_theme(themename); + }); + + // Make sure that the themepicker displays the correct theme when the theme is retrieved + // from localStorage + if(typeof(window.localStorage) !== "undefined") { + var theme = window.localStorage.getItem("documenter-theme"); + if(theme !== null) { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = (e.value === theme); + }) + } else { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = $("html").hasClass(`theme--${e.value}`); + }) + } + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// update the version selector with info from the siteinfo.js and ../versions.js files +$(document).ready(function() { + // If the version selector is disabled with DOCUMENTER_VERSION_SELECTOR_DISABLED in the + // siteinfo.js file, we just return immediately and not display the version selector. + if (typeof DOCUMENTER_VERSION_SELECTOR_DISABLED === 'boolean' && DOCUMENTER_VERSION_SELECTOR_DISABLED) { + return; + } + + var version_selector = $("#documenter .docs-version-selector"); + var version_selector_select = $("#documenter .docs-version-selector select"); + + version_selector_select.change(function(x) { + target_href = version_selector_select.children("option:selected").get(0).value; + window.location.href = target_href; + }); + + // add the current version to the selector based on siteinfo.js, but only if the selector is empty + if (typeof DOCUMENTER_CURRENT_VERSION !== 'undefined' && $('#version-selector > option').length == 0) { + var option = $(""); + version_selector_select.append(option); + } + + if (typeof DOC_VERSIONS !== 'undefined') { + var existing_versions = version_selector_select.children("option"); + var existing_versions_texts = existing_versions.map(function(i,x){return x.text}); + DOC_VERSIONS.forEach(function(each) { + var version_url = documenterBaseURL + "/../" + each; + var existing_id = $.inArray(each, existing_versions_texts); + // if not already in the version selector, add it as a new option, + // otherwise update the old option with the URL and enable it + if (existing_id == -1) { + var option = $(""); + version_selector_select.append(option); + } else { + var option = existing_versions[existing_id]; + option.value = version_url; + option.disabled = false; + } + }); + } + + // only show the version selector if the selector has been populated + if (version_selector_select.children("option").length > 0) { + version_selector.toggleClass("visible"); + } +}) + +}) diff --git a/previews/PR349/assets/search.js b/previews/PR349/assets/search.js new file mode 100644 index 000000000..c133f7410 --- /dev/null +++ b/previews/PR349/assets/search.js @@ -0,0 +1,267 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'lunr': 'https://cdnjs.cloudflare.com/ajax/libs/lunr.js/2.3.9/lunr.min', + 'lodash': 'https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + } +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'lunr', 'lodash'], function($, lunr, _) { + +$(document).ready(function() { + // parseUri 1.2.2 + // (c) Steven Levithan + // MIT License + function parseUri (str) { + var o = parseUri.options, + m = o.parser[o.strictMode ? "strict" : "loose"].exec(str), + uri = {}, + i = 14; + + while (i--) uri[o.key[i]] = m[i] || ""; + + uri[o.q.name] = {}; + uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) { + if ($1) uri[o.q.name][$1] = $2; + }); + + return uri; + }; + parseUri.options = { + strictMode: false, + key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"], + q: { + name: "queryKey", + parser: /(?:^|&)([^&=]*)=?([^&]*)/g + }, + parser: { + strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, + loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ + } + }; + + $("#search-form").submit(function(e) { + e.preventDefault() + }) + + // list below is the lunr 2.1.3 list minus the intersect with names(Base) + // (all, any, get, in, is, only, which) and (do, else, for, let, where, while, with) + // ideally we'd just filter the original list but it's not available as a variable + lunr.stopWordFilter = lunr.generateStopWordFilter([ + 'a', + 'able', + 'about', + 'across', + 'after', + 'almost', + 'also', + 'am', + 'among', + 'an', + 'and', + 'are', + 'as', + 'at', + 'be', + 'because', + 'been', + 'but', + 'by', + 'can', + 'cannot', + 'could', + 'dear', + 'did', + 'does', + 'either', + 'ever', + 'every', + 'from', + 'got', + 'had', + 'has', + 'have', + 'he', + 'her', + 'hers', + 'him', + 'his', + 'how', + 'however', + 'i', + 'if', + 'into', + 'it', + 'its', + 'just', + 'least', + 'like', + 'likely', + 'may', + 'me', + 'might', + 'most', + 'must', + 'my', + 'neither', + 'no', + 'nor', + 'not', + 'of', + 'off', + 'often', + 'on', + 'or', + 'other', + 'our', + 'own', + 'rather', + 'said', + 'say', + 'says', + 'she', + 'should', + 'since', + 'so', + 'some', + 'than', + 'that', + 'the', + 'their', + 'them', + 'then', + 'there', + 'these', + 'they', + 'this', + 'tis', + 'to', + 'too', + 'twas', + 'us', + 'wants', + 'was', + 'we', + 'were', + 'what', + 'when', + 'who', + 'whom', + 'why', + 'will', + 'would', + 'yet', + 'you', + 'your' + ]) + + // add . as a separator, because otherwise "title": "Documenter.Anchors.add!" + // would not find anything if searching for "add!", only for the entire qualification + lunr.tokenizer.separator = /[\s\-\.]+/ + + // custom trimmer that doesn't strip @ and !, which are used in julia macro and function names + lunr.trimmer = function (token) { + return token.update(function (s) { + return s.replace(/^[^a-zA-Z0-9@!]+/, '').replace(/[^a-zA-Z0-9@!]+$/, '') + }) + } + + lunr.Pipeline.registerFunction(lunr.stopWordFilter, 'juliaStopWordFilter') + lunr.Pipeline.registerFunction(lunr.trimmer, 'juliaTrimmer') + + var index = lunr(function () { + this.ref('location') + this.field('title',{boost: 100}) + this.field('text') + documenterSearchIndex['docs'].forEach(function(e) { + this.add(e) + }, this) + }) + var store = {} + + documenterSearchIndex['docs'].forEach(function(e) { + store[e.location] = {title: e.title, category: e.category, page: e.page} + }) + + $(function(){ + searchresults = $('#documenter-search-results'); + searchinfo = $('#documenter-search-info'); + searchbox = $('#documenter-search-query'); + searchform = $('.docs-search'); + sidebar = $('.docs-sidebar'); + function update_search(querystring) { + tokens = lunr.tokenizer(querystring) + results = index.query(function (q) { + tokens.forEach(function (t) { + q.term(t.toString(), { + fields: ["title"], + boost: 100, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["title"], + boost: 10, + usePipeline: true, + editDistance: 2, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["text"], + boost: 1, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + }) + }) + searchinfo.text("Number of results: " + results.length) + searchresults.empty() + results.forEach(function(result) { + data = store[result.ref] + link = $(''+data.title+'') + link.attr('href', documenterBaseURL+'/'+result.ref) + if (data.category != "page"){ + cat = $('('+data.category+', '+data.page+')') + } else { + cat = $('('+data.category+')') + } + li = $('
        1. ').append(link).append(" ").append(cat) + searchresults.append(li) + }) + } + + function update_search_box() { + querystring = searchbox.val() + update_search(querystring) + } + + searchbox.keyup(_.debounce(update_search_box, 250)) + searchbox.change(update_search_box) + + // Disable enter-key form submission for the searchbox on the search page + // and just re-run search rather than refresh the whole page. + searchform.keypress( + function(event){ + if (event.which == '13') { + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + update_search_box(); + event.preventDefault(); + } + } + ); + + search_query_uri = parseUri(window.location).queryKey["q"] + if(search_query_uri !== undefined) { + search_query = decodeURIComponent(search_query_uri.replace(/\+/g, '%20')) + searchbox.val(search_query) + } + update_search_box(); + }) +}) + +}) diff --git a/previews/PR349/assets/themes/documenter-dark.css b/previews/PR349/assets/themes/documenter-dark.css new file mode 100644 index 000000000..0bf1af7d5 --- /dev/null +++ b/previews/PR349/assets/themes/documenter-dark.css @@ -0,0 +1,7702 @@ +@charset "UTF-8"; +/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */ +@keyframes spinAround { + from { + transform: rotate(0deg); } + to { + transform: rotate(359deg); } } + +html.theme--documenter-dark .tabs, html.theme--documenter-dark .pagination-previous, +html.theme--documenter-dark .pagination-next, +html.theme--documenter-dark .pagination-link, +html.theme--documenter-dark .pagination-ellipsis, html.theme--documenter-dark .breadcrumb, html.theme--documenter-dark .file, html.theme--documenter-dark .button, .is-unselectable, html.theme--documenter-dark .modal-close, html.theme--documenter-dark .delete { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after, html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after { + border: 3px solid transparent; + border-radius: 2px; + border-right: 0; + border-top: 0; + content: " "; + display: block; + height: 0.625em; + margin-top: -0.4375em; + pointer-events: none; + position: absolute; + top: 50%; + transform: rotate(-45deg); + transform-origin: center; + width: 0.625em; } + +html.theme--documenter-dark .admonition:not(:last-child), html.theme--documenter-dark .tabs:not(:last-child), html.theme--documenter-dark .message:not(:last-child), html.theme--documenter-dark .list:not(:last-child), html.theme--documenter-dark .level:not(:last-child), html.theme--documenter-dark .breadcrumb:not(:last-child), html.theme--documenter-dark .highlight:not(:last-child), html.theme--documenter-dark .block:not(:last-child), html.theme--documenter-dark .title:not(:last-child), +html.theme--documenter-dark .subtitle:not(:last-child), html.theme--documenter-dark .table-container:not(:last-child), html.theme--documenter-dark .table:not(:last-child), html.theme--documenter-dark .progress:not(:last-child), html.theme--documenter-dark .notification:not(:last-child), html.theme--documenter-dark .content:not(:last-child), html.theme--documenter-dark .box:not(:last-child) { + margin-bottom: 1.5rem; } + +html.theme--documenter-dark .modal-close, html.theme--documenter-dark .delete { + -moz-appearance: none; + -webkit-appearance: none; + background-color: rgba(10, 10, 10, 0.2); + border: none; + border-radius: 290486px; + cursor: pointer; + pointer-events: auto; + display: inline-block; + flex-grow: 0; + flex-shrink: 0; + font-size: 0; + height: 20px; + max-height: 20px; + max-width: 20px; + min-height: 20px; + min-width: 20px; + outline: none; + position: relative; + vertical-align: top; + width: 20px; } + html.theme--documenter-dark .modal-close::before, html.theme--documenter-dark .delete::before, html.theme--documenter-dark .modal-close::after, html.theme--documenter-dark .delete::after { + background-color: white; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + html.theme--documenter-dark .modal-close::before, html.theme--documenter-dark .delete::before { + height: 2px; + width: 50%; } + html.theme--documenter-dark .modal-close::after, html.theme--documenter-dark .delete::after { + height: 50%; + width: 2px; } + html.theme--documenter-dark .modal-close:hover, html.theme--documenter-dark .delete:hover, html.theme--documenter-dark .modal-close:focus, html.theme--documenter-dark .delete:focus { + background-color: rgba(10, 10, 10, 0.3); } + html.theme--documenter-dark .modal-close:active, html.theme--documenter-dark .delete:active { + background-color: rgba(10, 10, 10, 0.4); } + html.theme--documenter-dark .is-small.modal-close, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.modal-close, html.theme--documenter-dark .is-small.delete, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.delete { + height: 16px; + max-height: 16px; + max-width: 16px; + min-height: 16px; + min-width: 16px; + width: 16px; } + html.theme--documenter-dark .is-medium.modal-close, html.theme--documenter-dark .is-medium.delete { + height: 24px; + max-height: 24px; + max-width: 24px; + min-height: 24px; + min-width: 24px; + width: 24px; } + html.theme--documenter-dark .is-large.modal-close, html.theme--documenter-dark .is-large.delete { + height: 32px; + max-height: 32px; + max-width: 32px; + min-height: 32px; + min-width: 32px; + width: 32px; } + +html.theme--documenter-dark .control.is-loading::after, html.theme--documenter-dark .select.is-loading::after, html.theme--documenter-dark .loader, html.theme--documenter-dark .button.is-loading::after { + animation: spinAround 500ms infinite linear; + border: 2px solid #dbdee0; + border-radius: 290486px; + border-right-color: transparent; + border-top-color: transparent; + content: ""; + display: block; + height: 1em; + position: relative; + width: 1em; } + +html.theme--documenter-dark .hero-video, html.theme--documenter-dark .modal-background, html.theme--documenter-dark .modal, html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img, +html.theme--documenter-dark .image.is-square .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img, +html.theme--documenter-dark .image.is-1by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img, +html.theme--documenter-dark .image.is-5by4 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img, +html.theme--documenter-dark .image.is-4by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img, +html.theme--documenter-dark .image.is-3by2 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img, +html.theme--documenter-dark .image.is-5by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img, +html.theme--documenter-dark .image.is-16by9 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img, +html.theme--documenter-dark .image.is-2by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img, +html.theme--documenter-dark .image.is-3by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img, +html.theme--documenter-dark .image.is-4by5 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img, +html.theme--documenter-dark .image.is-3by4 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img, +html.theme--documenter-dark .image.is-2by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img, +html.theme--documenter-dark .image.is-3by5 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img, +html.theme--documenter-dark .image.is-9by16 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img, +html.theme--documenter-dark .image.is-1by2 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img, +html.theme--documenter-dark .image.is-1by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, .is-overlay { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; } + +html.theme--documenter-dark .pagination-previous, +html.theme--documenter-dark .pagination-next, +html.theme--documenter-dark .pagination-link, +html.theme--documenter-dark .pagination-ellipsis, html.theme--documenter-dark .file-cta, +html.theme--documenter-dark .file-name, html.theme--documenter-dark .select select, html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark .button { + -moz-appearance: none; + -webkit-appearance: none; + align-items: center; + border: 1px solid transparent; + border-radius: 0.4em; + box-shadow: none; + display: inline-flex; + font-size: 15px; + height: 2.25em; + justify-content: flex-start; + line-height: 1.5; + padding-bottom: calc(0.375em - 1px); + padding-left: calc(0.625em - 1px); + padding-right: calc(0.625em - 1px); + padding-top: calc(0.375em - 1px); + position: relative; + vertical-align: top; } + html.theme--documenter-dark .pagination-previous:focus, + html.theme--documenter-dark .pagination-next:focus, + html.theme--documenter-dark .pagination-link:focus, + html.theme--documenter-dark .pagination-ellipsis:focus, html.theme--documenter-dark .file-cta:focus, + html.theme--documenter-dark .file-name:focus, html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .button:focus, html.theme--documenter-dark .is-focused.pagination-previous, + html.theme--documenter-dark .is-focused.pagination-next, + html.theme--documenter-dark .is-focused.pagination-link, + html.theme--documenter-dark .is-focused.pagination-ellipsis, html.theme--documenter-dark .is-focused.file-cta, + html.theme--documenter-dark .is-focused.file-name, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-focused.button, html.theme--documenter-dark .pagination-previous:active, + html.theme--documenter-dark .pagination-next:active, + html.theme--documenter-dark .pagination-link:active, + html.theme--documenter-dark .pagination-ellipsis:active, html.theme--documenter-dark .file-cta:active, + html.theme--documenter-dark .file-name:active, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .button:active, html.theme--documenter-dark .is-active.pagination-previous, + html.theme--documenter-dark .is-active.pagination-next, + html.theme--documenter-dark .is-active.pagination-link, + html.theme--documenter-dark .is-active.pagination-ellipsis, html.theme--documenter-dark .is-active.file-cta, + html.theme--documenter-dark .is-active.file-name, html.theme--documenter-dark .select select.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .is-active.button { + outline: none; } + html.theme--documenter-dark .pagination-previous[disabled], + html.theme--documenter-dark .pagination-next[disabled], + html.theme--documenter-dark .pagination-link[disabled], + html.theme--documenter-dark .pagination-ellipsis[disabled], html.theme--documenter-dark .file-cta[disabled], + html.theme--documenter-dark .file-name[disabled], html.theme--documenter-dark .select select[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], html.theme--documenter-dark .button[disabled], fieldset[disabled] html.theme--documenter-dark .pagination-previous, html.theme--documenter-dark fieldset[disabled] .pagination-previous, + fieldset[disabled] html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark fieldset[disabled] .pagination-next, + fieldset[disabled] html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark fieldset[disabled] .pagination-link, + fieldset[disabled] html.theme--documenter-dark .pagination-ellipsis, + html.theme--documenter-dark fieldset[disabled] .pagination-ellipsis, fieldset[disabled] html.theme--documenter-dark .file-cta, html.theme--documenter-dark fieldset[disabled] .file-cta, + fieldset[disabled] html.theme--documenter-dark .file-name, + html.theme--documenter-dark fieldset[disabled] .file-name, fieldset[disabled] html.theme--documenter-dark .select select, fieldset[disabled] html.theme--documenter-dark .textarea, fieldset[disabled] html.theme--documenter-dark .input, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark fieldset[disabled] .select select, html.theme--documenter-dark .select fieldset[disabled] select, html.theme--documenter-dark fieldset[disabled] .textarea, html.theme--documenter-dark fieldset[disabled] .input, html.theme--documenter-dark fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, fieldset[disabled] html.theme--documenter-dark .button, html.theme--documenter-dark fieldset[disabled] .button { + cursor: not-allowed; } + +/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */ +html, +body, +p, +ol, +ul, +li, +dl, +dt, +dd, +blockquote, +figure, +fieldset, +legend, +textarea, +pre, +iframe, +hr, +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + padding: 0; } + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: 100%; + font-weight: normal; } + +ul { + list-style: none; } + +button, +input, +select, +textarea { + margin: 0; } + +html { + box-sizing: border-box; } + +*, *::before, *::after { + box-sizing: inherit; } + +img, +embed, +iframe, +object, +video { + height: auto; + max-width: 100%; } + +audio { + max-width: 100%; } + +iframe { + border: 0; } + +table { + border-collapse: collapse; + border-spacing: 0; } + +td, +th { + padding: 0; } + td:not([align]), + th:not([align]) { + text-align: left; } + +.is-clearfix::after { + clear: both; + content: " "; + display: table; } + +.is-pulled-left { + float: left !important; } + +.is-pulled-right { + float: right !important; } + +.is-clipped { + overflow: hidden !important; } + +.is-size-1 { + font-size: 3rem !important; } + +.is-size-2 { + font-size: 2.5rem !important; } + +.is-size-3 { + font-size: 2rem !important; } + +.is-size-4 { + font-size: 1.5rem !important; } + +.is-size-5 { + font-size: 1.25rem !important; } + +.is-size-6 { + font-size: 15px !important; } + +.is-size-7, html.theme--documenter-dark .docstring > section > a.docs-sourcelink { + font-size: 0.85em !important; } + +@media screen and (max-width: 768px) { + .is-size-1-mobile { + font-size: 3rem !important; } + .is-size-2-mobile { + font-size: 2.5rem !important; } + .is-size-3-mobile { + font-size: 2rem !important; } + .is-size-4-mobile { + font-size: 1.5rem !important; } + .is-size-5-mobile { + font-size: 1.25rem !important; } + .is-size-6-mobile { + font-size: 15px !important; } + .is-size-7-mobile { + font-size: 0.85em !important; } } + +@media screen and (min-width: 769px), print { + .is-size-1-tablet { + font-size: 3rem !important; } + .is-size-2-tablet { + font-size: 2.5rem !important; } + .is-size-3-tablet { + font-size: 2rem !important; } + .is-size-4-tablet { + font-size: 1.5rem !important; } + .is-size-5-tablet { + font-size: 1.25rem !important; } + .is-size-6-tablet { + font-size: 15px !important; } + .is-size-7-tablet { + font-size: 0.85em !important; } } + +@media screen and (max-width: 1055px) { + .is-size-1-touch { + font-size: 3rem !important; } + .is-size-2-touch { + font-size: 2.5rem !important; } + .is-size-3-touch { + font-size: 2rem !important; } + .is-size-4-touch { + font-size: 1.5rem !important; } + .is-size-5-touch { + font-size: 1.25rem !important; } + .is-size-6-touch { + font-size: 15px !important; } + .is-size-7-touch { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1056px) { + .is-size-1-desktop { + font-size: 3rem !important; } + .is-size-2-desktop { + font-size: 2.5rem !important; } + .is-size-3-desktop { + font-size: 2rem !important; } + .is-size-4-desktop { + font-size: 1.5rem !important; } + .is-size-5-desktop { + font-size: 1.25rem !important; } + .is-size-6-desktop { + font-size: 15px !important; } + .is-size-7-desktop { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1216px) { + .is-size-1-widescreen { + font-size: 3rem !important; } + .is-size-2-widescreen { + font-size: 2.5rem !important; } + .is-size-3-widescreen { + font-size: 2rem !important; } + .is-size-4-widescreen { + font-size: 1.5rem !important; } + .is-size-5-widescreen { + font-size: 1.25rem !important; } + .is-size-6-widescreen { + font-size: 15px !important; } + .is-size-7-widescreen { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1408px) { + .is-size-1-fullhd { + font-size: 3rem !important; } + .is-size-2-fullhd { + font-size: 2.5rem !important; } + .is-size-3-fullhd { + font-size: 2rem !important; } + .is-size-4-fullhd { + font-size: 1.5rem !important; } + .is-size-5-fullhd { + font-size: 1.25rem !important; } + .is-size-6-fullhd { + font-size: 15px !important; } + .is-size-7-fullhd { + font-size: 0.85em !important; } } + +.has-text-centered { + text-align: center !important; } + +.has-text-justified { + text-align: justify !important; } + +.has-text-left { + text-align: left !important; } + +.has-text-right { + text-align: right !important; } + +@media screen and (max-width: 768px) { + .has-text-centered-mobile { + text-align: center !important; } } + +@media screen and (min-width: 769px), print { + .has-text-centered-tablet { + text-align: center !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-centered-tablet-only { + text-align: center !important; } } + +@media screen and (max-width: 1055px) { + .has-text-centered-touch { + text-align: center !important; } } + +@media screen and (min-width: 1056px) { + .has-text-centered-desktop { + text-align: center !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-centered-desktop-only { + text-align: center !important; } } + +@media screen and (min-width: 1216px) { + .has-text-centered-widescreen { + text-align: center !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-centered-widescreen-only { + text-align: center !important; } } + +@media screen and (min-width: 1408px) { + .has-text-centered-fullhd { + text-align: center !important; } } + +@media screen and (max-width: 768px) { + .has-text-justified-mobile { + text-align: justify !important; } } + +@media screen and (min-width: 769px), print { + .has-text-justified-tablet { + text-align: justify !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-justified-tablet-only { + text-align: justify !important; } } + +@media screen and (max-width: 1055px) { + .has-text-justified-touch { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) { + .has-text-justified-desktop { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-justified-desktop-only { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) { + .has-text-justified-widescreen { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-justified-widescreen-only { + text-align: justify !important; } } + +@media screen and (min-width: 1408px) { + .has-text-justified-fullhd { + text-align: justify !important; } } + +@media screen and (max-width: 768px) { + .has-text-left-mobile { + text-align: left !important; } } + +@media screen and (min-width: 769px), print { + .has-text-left-tablet { + text-align: left !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-left-tablet-only { + text-align: left !important; } } + +@media screen and (max-width: 1055px) { + .has-text-left-touch { + text-align: left !important; } } + +@media screen and (min-width: 1056px) { + .has-text-left-desktop { + text-align: left !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-left-desktop-only { + text-align: left !important; } } + +@media screen and (min-width: 1216px) { + .has-text-left-widescreen { + text-align: left !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-left-widescreen-only { + text-align: left !important; } } + +@media screen and (min-width: 1408px) { + .has-text-left-fullhd { + text-align: left !important; } } + +@media screen and (max-width: 768px) { + .has-text-right-mobile { + text-align: right !important; } } + +@media screen and (min-width: 769px), print { + .has-text-right-tablet { + text-align: right !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-right-tablet-only { + text-align: right !important; } } + +@media screen and (max-width: 1055px) { + .has-text-right-touch { + text-align: right !important; } } + +@media screen and (min-width: 1056px) { + .has-text-right-desktop { + text-align: right !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-right-desktop-only { + text-align: right !important; } } + +@media screen and (min-width: 1216px) { + .has-text-right-widescreen { + text-align: right !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-right-widescreen-only { + text-align: right !important; } } + +@media screen and (min-width: 1408px) { + .has-text-right-fullhd { + text-align: right !important; } } + +.is-capitalized { + text-transform: capitalize !important; } + +.is-lowercase { + text-transform: lowercase !important; } + +.is-uppercase { + text-transform: uppercase !important; } + +.is-italic { + font-style: italic !important; } + +.has-text-white { + color: white !important; } + +a.has-text-white:hover, a.has-text-white:focus { + color: #e6e6e6 !important; } + +.has-background-white { + background-color: white !important; } + +.has-text-black { + color: #0a0a0a !important; } + +a.has-text-black:hover, a.has-text-black:focus { + color: black !important; } + +.has-background-black { + background-color: #0a0a0a !important; } + +.has-text-light { + color: #ecf0f1 !important; } + +a.has-text-light:hover, a.has-text-light:focus { + color: #cfd9db !important; } + +.has-background-light { + background-color: #ecf0f1 !important; } + +.has-text-dark { + color: #282f2f !important; } + +a.has-text-dark:hover, a.has-text-dark:focus { + color: #111414 !important; } + +.has-background-dark { + background-color: #282f2f !important; } + +.has-text-primary { + color: #375a7f !important; } + +a.has-text-primary:hover, a.has-text-primary:focus { + color: #28415b !important; } + +.has-background-primary { + background-color: #375a7f !important; } + +.has-text-link { + color: #1abc9c !important; } + +a.has-text-link:hover, a.has-text-link:focus { + color: #148f77 !important; } + +.has-background-link { + background-color: #1abc9c !important; } + +.has-text-info { + color: #024c7d !important; } + +a.has-text-info:hover, a.has-text-info:focus { + color: #012d4b !important; } + +.has-background-info { + background-color: #024c7d !important; } + +.has-text-success { + color: #008438 !important; } + +a.has-text-success:hover, a.has-text-success:focus { + color: #005122 !important; } + +.has-background-success { + background-color: #008438 !important; } + +.has-text-warning { + color: #ad8100 !important; } + +a.has-text-warning:hover, a.has-text-warning:focus { + color: #7a5b00 !important; } + +.has-background-warning { + background-color: #ad8100 !important; } + +.has-text-danger { + color: #9e1b0d !important; } + +a.has-text-danger:hover, a.has-text-danger:focus { + color: #6f1309 !important; } + +.has-background-danger { + background-color: #9e1b0d !important; } + +.has-text-black-bis { + color: #121212 !important; } + +.has-background-black-bis { + background-color: #121212 !important; } + +.has-text-black-ter { + color: #242424 !important; } + +.has-background-black-ter { + background-color: #242424 !important; } + +.has-text-grey-darker { + color: #282f2f !important; } + +.has-background-grey-darker { + background-color: #282f2f !important; } + +.has-text-grey-dark { + color: #343c3d !important; } + +.has-background-grey-dark { + background-color: #343c3d !important; } + +.has-text-grey { + color: #5e6d6f !important; } + +.has-background-grey { + background-color: #5e6d6f !important; } + +.has-text-grey-light { + color: #8c9b9d !important; } + +.has-background-grey-light { + background-color: #8c9b9d !important; } + +.has-text-grey-lighter { + color: #dbdee0 !important; } + +.has-background-grey-lighter { + background-color: #dbdee0 !important; } + +.has-text-white-ter { + color: #ecf0f1 !important; } + +.has-background-white-ter { + background-color: #ecf0f1 !important; } + +.has-text-white-bis { + color: #fafafa !important; } + +.has-background-white-bis { + background-color: #fafafa !important; } + +.has-text-weight-light { + font-weight: 300 !important; } + +.has-text-weight-normal { + font-weight: 400 !important; } + +.has-text-weight-medium { + font-weight: 500 !important; } + +.has-text-weight-semibold { + font-weight: 600 !important; } + +.has-text-weight-bold { + font-weight: 700 !important; } + +.is-family-primary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-secondary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-sans-serif { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-monospace { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-family-code { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-block { + display: block !important; } + +@media screen and (max-width: 768px) { + .is-block-mobile { + display: block !important; } } + +@media screen and (min-width: 769px), print { + .is-block-tablet { + display: block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-block-tablet-only { + display: block !important; } } + +@media screen and (max-width: 1055px) { + .is-block-touch { + display: block !important; } } + +@media screen and (min-width: 1056px) { + .is-block-desktop { + display: block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-block-desktop-only { + display: block !important; } } + +@media screen and (min-width: 1216px) { + .is-block-widescreen { + display: block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-block-widescreen-only { + display: block !important; } } + +@media screen and (min-width: 1408px) { + .is-block-fullhd { + display: block !important; } } + +.is-flex { + display: flex !important; } + +@media screen and (max-width: 768px) { + .is-flex-mobile { + display: flex !important; } } + +@media screen and (min-width: 769px), print { + .is-flex-tablet { + display: flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-flex-tablet-only { + display: flex !important; } } + +@media screen and (max-width: 1055px) { + .is-flex-touch { + display: flex !important; } } + +@media screen and (min-width: 1056px) { + .is-flex-desktop { + display: flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-flex-desktop-only { + display: flex !important; } } + +@media screen and (min-width: 1216px) { + .is-flex-widescreen { + display: flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-flex-widescreen-only { + display: flex !important; } } + +@media screen and (min-width: 1408px) { + .is-flex-fullhd { + display: flex !important; } } + +.is-inline { + display: inline !important; } + +@media screen and (max-width: 768px) { + .is-inline-mobile { + display: inline !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-tablet { + display: inline !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-tablet-only { + display: inline !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-touch { + display: inline !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-desktop { + display: inline !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-desktop-only { + display: inline !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-widescreen { + display: inline !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-widescreen-only { + display: inline !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-fullhd { + display: inline !important; } } + +.is-inline-block { + display: inline-block !important; } + +@media screen and (max-width: 768px) { + .is-inline-block-mobile { + display: inline-block !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-block-tablet { + display: inline-block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-block-tablet-only { + display: inline-block !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-block-touch { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-block-desktop { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-block-desktop-only { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-block-widescreen { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-block-widescreen-only { + display: inline-block !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-block-fullhd { + display: inline-block !important; } } + +.is-inline-flex { + display: inline-flex !important; } + +@media screen and (max-width: 768px) { + .is-inline-flex-mobile { + display: inline-flex !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-flex-tablet { + display: inline-flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-flex-tablet-only { + display: inline-flex !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-flex-touch { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-flex-desktop { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-flex-desktop-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-flex-widescreen { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-flex-widescreen-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-flex-fullhd { + display: inline-flex !important; } } + +.is-hidden { + display: none !important; } + +.is-sr-only { + border: none !important; + clip: rect(0, 0, 0, 0) !important; + height: 0.01em !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + white-space: nowrap !important; + width: 0.01em !important; } + +@media screen and (max-width: 768px) { + .is-hidden-mobile { + display: none !important; } } + +@media screen and (min-width: 769px), print { + .is-hidden-tablet { + display: none !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-hidden-tablet-only { + display: none !important; } } + +@media screen and (max-width: 1055px) { + .is-hidden-touch { + display: none !important; } } + +@media screen and (min-width: 1056px) { + .is-hidden-desktop { + display: none !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-hidden-desktop-only { + display: none !important; } } + +@media screen and (min-width: 1216px) { + .is-hidden-widescreen { + display: none !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-hidden-widescreen-only { + display: none !important; } } + +@media screen and (min-width: 1408px) { + .is-hidden-fullhd { + display: none !important; } } + +.is-invisible { + visibility: hidden !important; } + +@media screen and (max-width: 768px) { + .is-invisible-mobile { + visibility: hidden !important; } } + +@media screen and (min-width: 769px), print { + .is-invisible-tablet { + visibility: hidden !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-invisible-tablet-only { + visibility: hidden !important; } } + +@media screen and (max-width: 1055px) { + .is-invisible-touch { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) { + .is-invisible-desktop { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-invisible-desktop-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) { + .is-invisible-widescreen { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-invisible-widescreen-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1408px) { + .is-invisible-fullhd { + visibility: hidden !important; } } + +.is-marginless { + margin: 0 !important; } + +.is-paddingless { + padding: 0 !important; } + +.is-radiusless { + border-radius: 0 !important; } + +.is-shadowless { + box-shadow: none !important; } + +.is-relative { + position: relative !important; } + +html.theme--documenter-dark { + /* This file contain the overall layout. + * + * The main container is
          that is identified by id #documenter. + */ + /*! + 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 +*/ + /* Comment */ + /* Red */ + /* Orange */ + /* Yellow */ + /* Green */ + /* Blue */ + /* Purple */ } + html.theme--documenter-dark html { + background-color: #1f2424; + font-size: 16px; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + html.theme--documenter-dark article, + html.theme--documenter-dark aside, + html.theme--documenter-dark figure, + html.theme--documenter-dark footer, + html.theme--documenter-dark header, + html.theme--documenter-dark hgroup, + html.theme--documenter-dark section { + display: block; } + html.theme--documenter-dark body, + html.theme--documenter-dark button, + html.theme--documenter-dark input, + html.theme--documenter-dark select, + html.theme--documenter-dark textarea { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; } + html.theme--documenter-dark code, + html.theme--documenter-dark pre { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; } + html.theme--documenter-dark body { + color: #fff; + font-size: 1em; + font-weight: 400; + line-height: 1.5; } + html.theme--documenter-dark a { + color: #1abc9c; + cursor: pointer; + text-decoration: none; } + html.theme--documenter-dark a strong { + color: currentColor; } + html.theme--documenter-dark a:hover { + color: #1dd2af; } + html.theme--documenter-dark code { + background-color: rgba(255, 255, 255, 0.05); + color: #ececec; + font-size: 0.875em; + font-weight: normal; + padding: 0.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: 0.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: 0.875em; + overflow-x: auto; + padding: 1.25rem 1.5rem; + white-space: pre; + word-wrap: normal; } + html.theme--documenter-dark pre code { + background-color: transparent; + color: currentColor; + font-size: 1em; + padding: 0; } + html.theme--documenter-dark table td, + html.theme--documenter-dark table th { + vertical-align: top; } + html.theme--documenter-dark table td:not([align]), + html.theme--documenter-dark table th:not([align]) { + text-align: left; } + html.theme--documenter-dark table th { + color: #f2f2f2; } + html.theme--documenter-dark .box { + background-color: #343c3d; + border-radius: 8px; + box-shadow: none; + color: #fff; + display: block; + padding: 1.25rem; } + html.theme--documenter-dark a.box:hover, html.theme--documenter-dark a.box:focus { + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #1abc9c; } + html.theme--documenter-dark a.box:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #1abc9c; } + html.theme--documenter-dark .button { + background-color: #282f2f; + border-color: #4c5759; + border-width: 1px; + color: #375a7f; + cursor: pointer; + justify-content: center; + padding-bottom: calc(0.375em - 1px); + padding-left: 0.75em; + padding-right: 0.75em; + padding-top: calc(0.375em - 1px); + text-align: center; + white-space: nowrap; } + html.theme--documenter-dark .button strong { + color: inherit; } + html.theme--documenter-dark .button .icon, html.theme--documenter-dark .button .icon.is-small, html.theme--documenter-dark .button #documenter .docs-sidebar form.docs-search > input.icon, html.theme--documenter-dark #documenter .docs-sidebar .button form.docs-search > input.icon, html.theme--documenter-dark .button .icon.is-medium, html.theme--documenter-dark .button .icon.is-large { + height: 1.5em; + width: 1.5em; } + html.theme--documenter-dark .button .icon:first-child:not(:last-child) { + margin-left: calc(-0.375em - 1px); + margin-right: 0.1875em; } + html.theme--documenter-dark .button .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: calc(-0.375em - 1px); } + html.theme--documenter-dark .button .icon:first-child:last-child { + margin-left: calc(-0.375em - 1px); + margin-right: calc(-0.375em - 1px); } + html.theme--documenter-dark .button:hover, html.theme--documenter-dark .button.is-hovered { + border-color: #8c9b9d; + color: #f2f2f2; } + html.theme--documenter-dark .button:focus, html.theme--documenter-dark .button.is-focused { + border-color: #8c9b9d; + color: #17a689; } + html.theme--documenter-dark .button:focus:not(:active), html.theme--documenter-dark .button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .button:active, html.theme--documenter-dark .button.is-active { + border-color: #343c3d; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text { + background-color: transparent; + border-color: transparent; + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .button.is-text:hover, html.theme--documenter-dark .button.is-text.is-hovered, html.theme--documenter-dark .button.is-text:focus, html.theme--documenter-dark .button.is-text.is-focused { + background-color: #282f2f; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text:active, html.theme--documenter-dark .button.is-text.is-active { + background-color: #1d2122; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-text { + background-color: transparent; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-white { + background-color: white; + 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: white; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-white.is-inverted { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .button.is-white.is-inverted:hover, html.theme--documenter-dark .button.is-white.is-inverted.is-hovered { + background-color: black; } + 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: white; } + 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: white; + color: white; } + 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: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white.is-outlined.is-loading::after { + border-color: transparent transparent white white !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: white; + box-shadow: none; + color: white; } + 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: white; } + 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 white white !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: white; } + html.theme--documenter-dark .button.is-black:hover, html.theme--documenter-dark .button.is-black.is-hovered { + background-color: #040404; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black:focus, html.theme--documenter-dark .button.is-black.is-focused { + border-color: transparent; + color: white; } + 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: black; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-black.is-inverted { + background-color: white; + 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: white; + border-color: transparent; + box-shadow: none; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-loading::after { + border-color: transparent transparent white white !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: white; } + 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 white white !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: white; + color: white; } + 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: white; + 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: white; + box-shadow: none; + color: white; } + html.theme--documenter-dark .button.is-light { + background-color: #ecf0f1; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:hover, html.theme--documenter-dark .button.is-light.is-hovered { + background-color: #e5eaec; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:focus, html.theme--documenter-dark .button.is-light.is-focused { + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:focus:not(:active), html.theme--documenter-dark .button.is-light.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } + html.theme--documenter-dark .button.is-light:active, html.theme--documenter-dark .button.is-light.is-active { + background-color: #dde4e6; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light { + background-color: #ecf0f1; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-light.is-inverted { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-hovered { + background-color: #1d2122; } + html.theme--documenter-dark .button.is-light.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted { + background-color: #282f2f; + border-color: transparent; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-loading::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-light.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-outlined.is-focused { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-light.is-outlined.is-loading::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-light.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-light.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #282f2f; + color: #282f2f; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-focused { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #282f2f; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark, html.theme--documenter-dark .content kbd.button { + background-color: #282f2f; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:hover, html.theme--documenter-dark .content kbd.button:hover, html.theme--documenter-dark .button.is-dark.is-hovered, html.theme--documenter-dark .content kbd.button.is-hovered { + background-color: #232829; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:focus, html.theme--documenter-dark .content kbd.button:focus, html.theme--documenter-dark .button.is-dark.is-focused, html.theme--documenter-dark .content kbd.button.is-focused { + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:focus:not(:active), html.theme--documenter-dark .content kbd.button:focus:not(:active), html.theme--documenter-dark .button.is-dark.is-focused:not(:active), html.theme--documenter-dark .content kbd.button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } + html.theme--documenter-dark .button.is-dark:active, html.theme--documenter-dark .content kbd.button:active, html.theme--documenter-dark .button.is-dark.is-active, html.theme--documenter-dark .content kbd.button.is-active { + background-color: #1d2122; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark[disabled], html.theme--documenter-dark .content kbd.button[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark, fieldset[disabled] html.theme--documenter-dark .content kbd.button { + background-color: #282f2f; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-dark.is-inverted, html.theme--documenter-dark .content kbd.button.is-inverted { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted:hover, html.theme--documenter-dark .content kbd.button.is-inverted:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-hovered { + background-color: #dde4e6; } + html.theme--documenter-dark .button.is-dark.is-inverted[disabled], html.theme--documenter-dark .content kbd.button.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted { + background-color: #ecf0f1; + border-color: transparent; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-loading::after, html.theme--documenter-dark .content kbd.button.is-loading::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-dark.is-outlined, html.theme--documenter-dark .content kbd.button.is-outlined { + background-color: transparent; + border-color: #282f2f; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-outlined.is-focused { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark.is-outlined.is-loading::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-dark.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-outlined, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-outlined { + background-color: transparent; + border-color: #282f2f; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-focused { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-primary, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink { + background-color: #375a7f; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:hover, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-hovered.docs-sourcelink { + background-color: #335476; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:focus, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:focus:not(:active), html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus:not(:active), html.theme--documenter-dark .button.is-primary.is-focused:not(:active), html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) { + box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } + html.theme--documenter-dark .button.is-primary:active, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:active, html.theme--documenter-dark .button.is-primary.is-active, html.theme--documenter-dark .docstring > section > a.button.is-active.docs-sourcelink { + background-color: #2f4d6d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary[disabled], html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink { + background-color: #375a7f; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-primary.is-inverted, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-primary.is-inverted[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-loading.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-primary.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #375a7f; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink { + background-color: #375a7f; + border-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .button.is-primary.is-outlined.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after { + border-color: transparent transparent #375a7f #375a7f !important; } + html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-primary.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-outlined, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #375a7f; + box-shadow: none; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink { + background-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #375a7f #375a7f !important; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-link { + background-color: #1abc9c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:hover, html.theme--documenter-dark .button.is-link.is-hovered { + background-color: #18b193; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:focus, html.theme--documenter-dark .button.is-link.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:focus:not(:active), html.theme--documenter-dark .button.is-link.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .button.is-link:active, html.theme--documenter-dark .button.is-link.is-active { + background-color: #17a689; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link { + background-color: #1abc9c; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-link.is-inverted { + background-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-link.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-link.is-outlined { + background-color: transparent; + border-color: #1abc9c; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-outlined.is-focused { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .button.is-link.is-outlined.is-loading::after { + border-color: transparent transparent #1abc9c #1abc9c !important; } + html.theme--documenter-dark .button.is-link.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-link.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-outlined { + background-color: transparent; + border-color: #1abc9c; + box-shadow: none; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #1abc9c #1abc9c !important; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-info { + background-color: #024c7d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:hover, html.theme--documenter-dark .button.is-info.is-hovered { + background-color: #024470; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:focus, html.theme--documenter-dark .button.is-info.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:focus:not(:active), html.theme--documenter-dark .button.is-info.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } + html.theme--documenter-dark .button.is-info:active, html.theme--documenter-dark .button.is-info.is-active { + background-color: #023d64; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info { + background-color: #024c7d; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-info.is-inverted { + background-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-info.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-info.is-outlined { + background-color: transparent; + border-color: #024c7d; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-outlined.is-focused { + background-color: #024c7d; + border-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .button.is-info.is-outlined.is-loading::after { + border-color: transparent transparent #024c7d #024c7d !important; } + html.theme--documenter-dark .button.is-info.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-info.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-outlined { + background-color: transparent; + border-color: #024c7d; + box-shadow: none; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #024c7d #024c7d !important; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-success { + background-color: #008438; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:hover, html.theme--documenter-dark .button.is-success.is-hovered { + background-color: #007733; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:focus, html.theme--documenter-dark .button.is-success.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:focus:not(:active), html.theme--documenter-dark .button.is-success.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } + html.theme--documenter-dark .button.is-success:active, html.theme--documenter-dark .button.is-success.is-active { + background-color: #006b2d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success { + background-color: #008438; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-success.is-inverted { + background-color: #fff; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-success.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-success.is-outlined { + background-color: transparent; + border-color: #008438; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-outlined.is-focused { + background-color: #008438; + border-color: #008438; + color: #fff; } + html.theme--documenter-dark .button.is-success.is-outlined.is-loading::after { + border-color: transparent transparent #008438 #008438 !important; } + html.theme--documenter-dark .button.is-success.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-success.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-outlined { + background-color: transparent; + border-color: #008438; + box-shadow: none; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #008438 #008438 !important; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-warning { + background-color: #ad8100; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:hover, html.theme--documenter-dark .button.is-warning.is-hovered { + background-color: #a07700; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:focus, html.theme--documenter-dark .button.is-warning.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:focus:not(:active), html.theme--documenter-dark .button.is-warning.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } + html.theme--documenter-dark .button.is-warning:active, html.theme--documenter-dark .button.is-warning.is-active { + background-color: #946e00; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning { + background-color: #ad8100; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-warning.is-inverted { + background-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-warning.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ad8100; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-outlined.is-focused { + background-color: #ad8100; + border-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .button.is-warning.is-outlined.is-loading::after { + border-color: transparent transparent #ad8100 #ad8100 !important; } + html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-warning.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ad8100; + box-shadow: none; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ad8100 #ad8100 !important; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-danger { + background-color: #9e1b0d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:hover, html.theme--documenter-dark .button.is-danger.is-hovered { + background-color: #92190c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:focus, html.theme--documenter-dark .button.is-danger.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:focus:not(:active), html.theme--documenter-dark .button.is-danger.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } + html.theme--documenter-dark .button.is-danger:active, html.theme--documenter-dark .button.is-danger.is-active { + background-color: #86170b; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger { + background-color: #9e1b0d; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-danger.is-inverted { + background-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-danger.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-danger.is-outlined { + background-color: transparent; + border-color: #9e1b0d; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-outlined.is-focused { + background-color: #9e1b0d; + border-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .button.is-danger.is-outlined.is-loading::after { + border-color: transparent transparent #9e1b0d #9e1b0d !important; } + html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-danger.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-outlined { + background-color: transparent; + border-color: #9e1b0d; + box-shadow: none; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #9e1b0d #9e1b0d !important; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .button.is-normal { + font-size: 15px; } + html.theme--documenter-dark .button.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .button.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .button[disabled], fieldset[disabled] html.theme--documenter-dark .button { + background-color: #8c9b9d; + border-color: #dbdee0; + box-shadow: none; + opacity: 0.5; } + html.theme--documenter-dark .button.is-fullwidth { + display: flex; + width: 100%; } + html.theme--documenter-dark .button.is-loading { + color: transparent !important; + pointer-events: none; } + html.theme--documenter-dark .button.is-loading::after { + position: absolute; + left: calc(50% - (1em / 2)); + top: calc(50% - (1em / 2)); + position: absolute !important; } + html.theme--documenter-dark .button.is-static { + background-color: #282f2f; + border-color: #5e6d6f; + color: #dbdee0; + box-shadow: none; + pointer-events: none; } + html.theme--documenter-dark .button.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .buttons { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .buttons .button { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .buttons .button:not(:last-child):not(.is-fullwidth) { + margin-right: 0.5rem; } + html.theme--documenter-dark .buttons:last-child { + margin-bottom: -0.5rem; } + html.theme--documenter-dark .buttons:not(:last-child) { + margin-bottom: 1rem; } + html.theme--documenter-dark .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) { + font-size: 1.25rem; } + html.theme--documenter-dark .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) { + font-size: 1.5rem; } + html.theme--documenter-dark .buttons.has-addons .button:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .buttons.has-addons .button:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + margin-right: -1px; } + html.theme--documenter-dark .buttons.has-addons .button:last-child { + margin-right: 0; } + html.theme--documenter-dark .buttons.has-addons .button:hover, html.theme--documenter-dark .buttons.has-addons .button.is-hovered { + z-index: 2; } + html.theme--documenter-dark .buttons.has-addons .button:focus, html.theme--documenter-dark .buttons.has-addons .button.is-focused, html.theme--documenter-dark .buttons.has-addons .button:active, html.theme--documenter-dark .buttons.has-addons .button.is-active, html.theme--documenter-dark .buttons.has-addons .button.is-selected { + z-index: 3; } + html.theme--documenter-dark .buttons.has-addons .button:focus:hover, html.theme--documenter-dark .buttons.has-addons .button.is-focused:hover, html.theme--documenter-dark .buttons.has-addons .button:active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-selected:hover { + z-index: 4; } + html.theme--documenter-dark .buttons.has-addons .button.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .buttons.is-centered { + justify-content: center; } + html.theme--documenter-dark .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + html.theme--documenter-dark .buttons.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + html.theme--documenter-dark .container { + flex-grow: 1; + margin: 0 auto; + position: relative; + width: auto; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .container { + max-width: 992px; } + html.theme--documenter-dark .container.is-fluid { + margin-left: 32px; + margin-right: 32px; + max-width: none; } } + @media screen and (max-width: 1215px) { + html.theme--documenter-dark .container.is-widescreen { + max-width: 1152px; } } + @media screen and (max-width: 1407px) { + html.theme--documenter-dark .container.is-fullhd { + max-width: 1344px; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .container { + max-width: 1152px; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .container { + max-width: 1344px; } } + html.theme--documenter-dark .content li + li { + margin-top: 0.25em; } + html.theme--documenter-dark .content p:not(:last-child), + html.theme--documenter-dark .content dl:not(:last-child), + html.theme--documenter-dark .content ol:not(:last-child), + html.theme--documenter-dark .content ul:not(:last-child), + html.theme--documenter-dark .content blockquote:not(:last-child), + html.theme--documenter-dark .content pre:not(:last-child), + html.theme--documenter-dark .content table:not(:last-child) { + margin-bottom: 1em; } + html.theme--documenter-dark .content h1, + html.theme--documenter-dark .content h2, + html.theme--documenter-dark .content h3, + html.theme--documenter-dark .content h4, + html.theme--documenter-dark .content h5, + html.theme--documenter-dark .content h6 { + color: #f2f2f2; + font-weight: 600; + line-height: 1.125; } + html.theme--documenter-dark .content h1 { + font-size: 2em; + margin-bottom: 0.5em; } + html.theme--documenter-dark .content h1:not(:first-child) { + margin-top: 1em; } + html.theme--documenter-dark .content h2 { + font-size: 1.75em; + margin-bottom: 0.5714em; } + html.theme--documenter-dark .content h2:not(:first-child) { + margin-top: 1.1428em; } + html.theme--documenter-dark .content h3 { + font-size: 1.5em; + margin-bottom: 0.6666em; } + html.theme--documenter-dark .content h3:not(:first-child) { + margin-top: 1.3333em; } + html.theme--documenter-dark .content h4 { + font-size: 1.25em; + margin-bottom: 0.8em; } + html.theme--documenter-dark .content h5 { + font-size: 1.125em; + margin-bottom: 0.8888em; } + html.theme--documenter-dark .content h6 { + font-size: 1em; + margin-bottom: 1em; } + html.theme--documenter-dark .content blockquote { + background-color: #282f2f; + border-left: 5px solid #5e6d6f; + padding: 1.25em 1.5em; } + html.theme--documenter-dark .content ol { + list-style-position: outside; + margin-left: 2em; + margin-top: 1em; } + html.theme--documenter-dark .content ol:not([type]) { + list-style-type: decimal; } + html.theme--documenter-dark .content ol.is-lower-alpha:not([type]) { + list-style-type: lower-alpha; } + html.theme--documenter-dark .content ol.is-lower-roman:not([type]) { + list-style-type: lower-roman; } + html.theme--documenter-dark .content ol.is-upper-alpha:not([type]) { + list-style-type: upper-alpha; } + html.theme--documenter-dark .content ol.is-upper-roman:not([type]) { + list-style-type: upper-roman; } + html.theme--documenter-dark .content ul { + list-style: disc outside; + margin-left: 2em; + margin-top: 1em; } + html.theme--documenter-dark .content ul ul { + list-style-type: circle; + margin-top: 0.5em; } + html.theme--documenter-dark .content ul ul ul { + list-style-type: square; } + html.theme--documenter-dark .content dd { + margin-left: 2em; } + html.theme--documenter-dark .content figure { + margin-left: 2em; + margin-right: 2em; + text-align: center; } + html.theme--documenter-dark .content figure:not(:first-child) { + margin-top: 2em; } + html.theme--documenter-dark .content figure:not(:last-child) { + margin-bottom: 2em; } + html.theme--documenter-dark .content figure img { + display: inline-block; } + html.theme--documenter-dark .content figure figcaption { + font-style: italic; } + html.theme--documenter-dark .content pre { + -webkit-overflow-scrolling: touch; + overflow-x: auto; + padding: 0; + white-space: pre; + word-wrap: normal; } + html.theme--documenter-dark .content sup, + html.theme--documenter-dark .content sub { + font-size: 75%; } + html.theme--documenter-dark .content table { + width: 100%; } + html.theme--documenter-dark .content table td, + html.theme--documenter-dark .content table th { + border: 1px solid #5e6d6f; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + html.theme--documenter-dark .content table th { + color: #f2f2f2; } + html.theme--documenter-dark .content table th:not([align]) { + text-align: left; } + html.theme--documenter-dark .content table thead td, + html.theme--documenter-dark .content table thead th { + border-width: 0 0 2px; + color: #f2f2f2; } + html.theme--documenter-dark .content table tfoot td, + html.theme--documenter-dark .content table tfoot th { + border-width: 2px 0 0; + color: #f2f2f2; } + html.theme--documenter-dark .content table tbody tr:last-child td, + html.theme--documenter-dark .content table tbody tr:last-child th { + border-bottom-width: 0; } + html.theme--documenter-dark .content .tabs li + li { + margin-top: 0; } + html.theme--documenter-dark .content.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.content { + font-size: 0.85em; } + html.theme--documenter-dark .content.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .content.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .icon { + align-items: center; + display: inline-flex; + justify-content: center; + height: 1.5rem; + width: 1.5rem; } + html.theme--documenter-dark .icon.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.icon { + height: 1rem; + width: 1rem; } + html.theme--documenter-dark .icon.is-medium { + height: 2rem; + width: 2rem; } + html.theme--documenter-dark .icon.is-large { + height: 3rem; + width: 3rem; } + html.theme--documenter-dark .image, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img { + display: block; + position: relative; } + html.theme--documenter-dark .image img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img { + display: block; + height: auto; + width: 100%; } + html.theme--documenter-dark .image img.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img.is-rounded { + border-radius: 290486px; } + html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img, + html.theme--documenter-dark .image.is-square .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img, + html.theme--documenter-dark .image.is-1by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img, + html.theme--documenter-dark .image.is-5by4 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img, + html.theme--documenter-dark .image.is-4by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img, + html.theme--documenter-dark .image.is-3by2 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img, + html.theme--documenter-dark .image.is-5by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img, + html.theme--documenter-dark .image.is-16by9 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img, + html.theme--documenter-dark .image.is-2by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img, + html.theme--documenter-dark .image.is-3by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img, + html.theme--documenter-dark .image.is-4by5 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img, + html.theme--documenter-dark .image.is-3by4 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img, + html.theme--documenter-dark .image.is-2by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img, + html.theme--documenter-dark .image.is-3by5 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img, + html.theme--documenter-dark .image.is-9by16 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img, + html.theme--documenter-dark .image.is-1by2 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img, + html.theme--documenter-dark .image.is-1by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio { + height: 100%; + width: 100%; } + html.theme--documenter-dark .image.is-square, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square, html.theme--documenter-dark .image.is-1by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 { + padding-top: 100%; } + html.theme--documenter-dark .image.is-5by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 { + padding-top: 80%; } + html.theme--documenter-dark .image.is-4by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 { + padding-top: 75%; } + html.theme--documenter-dark .image.is-3by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 { + padding-top: 66.6666%; } + html.theme--documenter-dark .image.is-5by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 { + padding-top: 60%; } + html.theme--documenter-dark .image.is-16by9, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 { + padding-top: 56.25%; } + html.theme--documenter-dark .image.is-2by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 { + padding-top: 50%; } + html.theme--documenter-dark .image.is-3by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 { + padding-top: 33.3333%; } + html.theme--documenter-dark .image.is-4by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 { + padding-top: 125%; } + html.theme--documenter-dark .image.is-3by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 { + padding-top: 133.3333%; } + html.theme--documenter-dark .image.is-2by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 { + padding-top: 150%; } + html.theme--documenter-dark .image.is-3by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 { + padding-top: 166.6666%; } + html.theme--documenter-dark .image.is-9by16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 { + padding-top: 177.7777%; } + html.theme--documenter-dark .image.is-1by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 { + padding-top: 200%; } + html.theme--documenter-dark .image.is-1by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 { + padding-top: 300%; } + html.theme--documenter-dark .image.is-16x16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16x16 { + height: 16px; + width: 16px; } + html.theme--documenter-dark .image.is-24x24, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-24x24 { + height: 24px; + width: 24px; } + html.theme--documenter-dark .image.is-32x32, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-32x32 { + height: 32px; + width: 32px; } + html.theme--documenter-dark .image.is-48x48, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-48x48 { + height: 48px; + width: 48px; } + html.theme--documenter-dark .image.is-64x64, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-64x64 { + height: 64px; + width: 64px; } + html.theme--documenter-dark .image.is-96x96, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-96x96 { + height: 96px; + width: 96px; } + html.theme--documenter-dark .image.is-128x128, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-128x128 { + height: 128px; + width: 128px; } + html.theme--documenter-dark .notification { + background-color: #282f2f; + border-radius: 0.4em; + padding: 1.25rem 2.5rem 1.25rem 1.5rem; + position: relative; } + html.theme--documenter-dark .notification a:not(.button):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + html.theme--documenter-dark .notification strong { + color: currentColor; } + html.theme--documenter-dark .notification code, + html.theme--documenter-dark .notification pre { + background: white; } + html.theme--documenter-dark .notification pre code { + background: transparent; } + html.theme--documenter-dark .notification > .delete { + position: absolute; + right: 0.5rem; + top: 0.5rem; } + html.theme--documenter-dark .notification .title, + html.theme--documenter-dark .notification .subtitle, + html.theme--documenter-dark .notification .content { + color: currentColor; } + html.theme--documenter-dark .notification.is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .notification.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .notification.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .notification.is-dark, html.theme--documenter-dark .content kbd.notification { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .notification.is-primary, html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .notification.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .notification.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .notification.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .notification.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .notification.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .progress { + -moz-appearance: none; + -webkit-appearance: none; + border: none; + border-radius: 290486px; + display: block; + height: 15px; + overflow: hidden; + padding: 0; + width: 100%; } + html.theme--documenter-dark .progress::-webkit-progress-bar { + background-color: #5e6d6f; } + html.theme--documenter-dark .progress::-webkit-progress-value { + background-color: #dbdee0; } + html.theme--documenter-dark .progress::-moz-progress-bar { + background-color: #dbdee0; } + html.theme--documenter-dark .progress::-ms-fill { + background-color: #dbdee0; + border: none; } + html.theme--documenter-dark .progress.is-white::-webkit-progress-value { + background-color: white; } + html.theme--documenter-dark .progress.is-white::-moz-progress-bar { + background-color: white; } + html.theme--documenter-dark .progress.is-white::-ms-fill { + background-color: white; } + html.theme--documenter-dark .progress.is-white:indeterminate { + background-image: linear-gradient(to right, white 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-black::-webkit-progress-value { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black::-moz-progress-bar { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black::-ms-fill { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black:indeterminate { + background-image: linear-gradient(to right, #0a0a0a 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-light::-webkit-progress-value { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light::-moz-progress-bar { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light::-ms-fill { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light:indeterminate { + background-image: linear-gradient(to right, #ecf0f1 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-dark::-webkit-progress-value, html.theme--documenter-dark .content kbd.progress::-webkit-progress-value { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark::-moz-progress-bar, html.theme--documenter-dark .content kbd.progress::-moz-progress-bar { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark::-ms-fill, html.theme--documenter-dark .content kbd.progress::-ms-fill { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark:indeterminate, html.theme--documenter-dark .content kbd.progress:indeterminate { + background-image: linear-gradient(to right, #282f2f 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-primary::-webkit-progress-value, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary::-moz-progress-bar, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary::-ms-fill, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-ms-fill { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary:indeterminate, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink:indeterminate { + background-image: linear-gradient(to right, #375a7f 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-link::-webkit-progress-value { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link::-moz-progress-bar { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link::-ms-fill { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link:indeterminate { + background-image: linear-gradient(to right, #1abc9c 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-info::-webkit-progress-value { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info::-moz-progress-bar { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info::-ms-fill { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info:indeterminate { + background-image: linear-gradient(to right, #024c7d 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-success::-webkit-progress-value { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success::-moz-progress-bar { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success::-ms-fill { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success:indeterminate { + background-image: linear-gradient(to right, #008438 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-warning::-webkit-progress-value { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning::-moz-progress-bar { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning::-ms-fill { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning:indeterminate { + background-image: linear-gradient(to right, #ad8100 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-danger::-webkit-progress-value { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger::-moz-progress-bar { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger::-ms-fill { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger:indeterminate { + background-image: linear-gradient(to right, #9e1b0d 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress:indeterminate { + animation-duration: 1.5s; + animation-iteration-count: infinite; + animation-name: moveIndeterminate; + animation-timing-function: linear; + background-color: #5e6d6f; + background-image: linear-gradient(to right, #fff 30%, #5e6d6f 30%); + background-position: top left; + background-repeat: no-repeat; + background-size: 150% 150%; } + html.theme--documenter-dark .progress:indeterminate::-webkit-progress-bar { + background-color: transparent; } + html.theme--documenter-dark .progress:indeterminate::-moz-progress-bar { + background-color: transparent; } + html.theme--documenter-dark .progress.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.progress { + height: 0.85em; } + html.theme--documenter-dark .progress.is-medium { + height: 1.25rem; } + html.theme--documenter-dark .progress.is-large { + height: 1.5rem; } + +@keyframes moveIndeterminate { + from { + background-position: 200% 0; } + to { + background-position: -200% 0; } } + html.theme--documenter-dark .table { + background-color: #343c3d; + color: #fff; } + html.theme--documenter-dark .table td, + html.theme--documenter-dark .table th { + border: 1px solid #5e6d6f; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + html.theme--documenter-dark .table td.is-white, + html.theme--documenter-dark .table th.is-white { + background-color: white; + border-color: white; + 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: white; } + html.theme--documenter-dark .table td.is-light, + html.theme--documenter-dark .table th.is-light { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .table td.is-dark, + html.theme--documenter-dark .table th.is-dark { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .table td.is-primary, + html.theme--documenter-dark .table th.is-primary { + background-color: #375a7f; + border-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table td.is-link, + html.theme--documenter-dark .table th.is-link { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .table td.is-info, + html.theme--documenter-dark .table th.is-info { + background-color: #024c7d; + border-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .table td.is-success, + html.theme--documenter-dark .table th.is-success { + background-color: #008438; + border-color: #008438; + color: #fff; } + html.theme--documenter-dark .table td.is-warning, + html.theme--documenter-dark .table th.is-warning { + background-color: #ad8100; + border-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .table td.is-danger, + html.theme--documenter-dark .table th.is-danger { + background-color: #9e1b0d; + border-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .table td.is-narrow, + html.theme--documenter-dark .table th.is-narrow { + white-space: nowrap; + width: 1%; } + html.theme--documenter-dark .table td.is-selected, + html.theme--documenter-dark .table th.is-selected { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table td.is-selected a, + html.theme--documenter-dark .table td.is-selected strong, + html.theme--documenter-dark .table th.is-selected a, + html.theme--documenter-dark .table th.is-selected strong { + color: currentColor; } + html.theme--documenter-dark .table th { + color: #f2f2f2; } + html.theme--documenter-dark .table th:not([align]) { + text-align: left; } + html.theme--documenter-dark .table tr.is-selected { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table tr.is-selected a, + html.theme--documenter-dark .table tr.is-selected strong { + color: currentColor; } + html.theme--documenter-dark .table tr.is-selected td, + html.theme--documenter-dark .table tr.is-selected th { + border-color: #fff; + color: currentColor; } + html.theme--documenter-dark .table thead { + background-color: transparent; } + 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: transparent; } + 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: transparent; } + html.theme--documenter-dark .table tbody tr:last-child td, + html.theme--documenter-dark .table tbody tr:last-child th { + border-bottom-width: 0; } + html.theme--documenter-dark .table.is-bordered td, + html.theme--documenter-dark .table.is-bordered th { + border-width: 1px; } + html.theme--documenter-dark .table.is-bordered tr:last-child td, + html.theme--documenter-dark .table.is-bordered tr:last-child th { + border-bottom-width: 1px; } + html.theme--documenter-dark .table.is-fullwidth { + width: 100%; } + html.theme--documenter-dark .table.is-hoverable tbody tr:not(.is-selected):hover { + background-color: #282f2f; } + html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover { + background-color: #282f2f; } + html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) { + background-color: #2d3435; } + html.theme--documenter-dark .table.is-narrow td, + html.theme--documenter-dark .table.is-narrow th { + padding: 0.25em 0.5em; } + html.theme--documenter-dark .table.is-striped tbody tr:not(.is-selected):nth-child(even) { + background-color: #282f2f; } + html.theme--documenter-dark .table-container { + -webkit-overflow-scrolling: touch; + overflow: auto; + overflow-y: hidden; + max-width: 100%; } + html.theme--documenter-dark .tags { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .tags .tag, html.theme--documenter-dark .tags .content kbd, html.theme--documenter-dark .content .tags kbd, html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .tags .tag:not(:last-child), html.theme--documenter-dark .tags .content kbd:not(:last-child), html.theme--documenter-dark .content .tags kbd:not(:last-child), html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0.5rem; } + html.theme--documenter-dark .tags:last-child { + margin-bottom: -0.5rem; } + html.theme--documenter-dark .tags:not(:last-child) { + margin-bottom: 1rem; } + html.theme--documenter-dark .tags.are-medium .tag:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .content kbd:not(.is-normal):not(.is-large), html.theme--documenter-dark .content .tags.are-medium kbd:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large) { + font-size: 15px; } + html.theme--documenter-dark .tags.are-large .tag:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .content kbd:not(.is-normal):not(.is-medium), html.theme--documenter-dark .content .tags.are-large kbd:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium) { + font-size: 1.25rem; } + html.theme--documenter-dark .tags.is-centered { + justify-content: center; } + html.theme--documenter-dark .tags.is-centered .tag, html.theme--documenter-dark .tags.is-centered .content kbd, html.theme--documenter-dark .content .tags.is-centered kbd, html.theme--documenter-dark .tags.is-centered .docstring > section > a.docs-sourcelink { + margin-right: 0.25rem; + margin-left: 0.25rem; } + html.theme--documenter-dark .tags.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .tags.is-right .tag:not(:first-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:first-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0.5rem; } + html.theme--documenter-dark .tags.is-right .tag:not(:last-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:last-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0; } + html.theme--documenter-dark .tags.has-addons .tag, html.theme--documenter-dark .tags.has-addons .content kbd, html.theme--documenter-dark .content .tags.has-addons kbd, html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink { + margin-right: 0; } + html.theme--documenter-dark .tags.has-addons .tag:not(:first-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:first-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0; + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .tags.has-addons .tag:not(:last-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:last-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .tag:not(body), html.theme--documenter-dark .content kbd:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) { + align-items: center; + background-color: #282f2f; + border-radius: 0.4em; + color: #fff; + display: inline-flex; + font-size: 0.85em; + height: 2em; + justify-content: center; + line-height: 1.5; + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + html.theme--documenter-dark .tag:not(body) .delete, html.theme--documenter-dark .content kbd:not(body) .delete, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .delete { + margin-left: 0.25rem; + margin-right: -0.375rem; } + html.theme--documenter-dark .tag.is-white:not(body), html.theme--documenter-dark .content kbd.is-white:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-white:not(body) { + background-color: white; + 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: white; } + html.theme--documenter-dark .tag.is-light:not(body), html.theme--documenter-dark .content kbd.is-light:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-light:not(body) { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .tag.is-dark:not(body), html.theme--documenter-dark .content kbd:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-dark:not(body), html.theme--documenter-dark .content .docstring > section > kbd:not(body) { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .tag.is-primary:not(body), html.theme--documenter-dark .content kbd.is-primary:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .tag.is-link:not(body), html.theme--documenter-dark .content kbd.is-link:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-link:not(body) { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .tag.is-info:not(body), html.theme--documenter-dark .content kbd.is-info:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-info:not(body) { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .tag.is-success:not(body), html.theme--documenter-dark .content kbd.is-success:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-success:not(body) { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .tag.is-warning:not(body), html.theme--documenter-dark .content kbd.is-warning:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-warning:not(body) { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .tag.is-danger:not(body), html.theme--documenter-dark .content kbd.is-danger:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-danger:not(body) { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .tag.is-normal:not(body), html.theme--documenter-dark .content kbd.is-normal:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-normal:not(body) { + font-size: 0.85em; } + html.theme--documenter-dark .tag.is-medium:not(body), html.theme--documenter-dark .content kbd.is-medium:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-medium:not(body) { + font-size: 15px; } + html.theme--documenter-dark .tag.is-large:not(body), html.theme--documenter-dark .content kbd.is-large:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-large:not(body) { + font-size: 1.25rem; } + html.theme--documenter-dark .tag:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .content kbd:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child) { + margin-left: -0.375em; + margin-right: 0.1875em; } + html.theme--documenter-dark .tag:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .content kbd:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: -0.375em; } + html.theme--documenter-dark .tag:not(body) .icon:first-child:last-child, html.theme--documenter-dark .content kbd:not(body) .icon:first-child:last-child, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child { + margin-left: -0.375em; + margin-right: -0.375em; } + html.theme--documenter-dark .tag.is-delete:not(body), html.theme--documenter-dark .content kbd.is-delete:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body) { + margin-left: 1px; + padding: 0; + position: relative; + width: 2em; } + html.theme--documenter-dark .tag.is-delete:not(body)::before, html.theme--documenter-dark .content kbd.is-delete:not(body)::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::before, html.theme--documenter-dark .tag.is-delete:not(body)::after, html.theme--documenter-dark .content kbd.is-delete:not(body)::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + background-color: currentColor; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + html.theme--documenter-dark .tag.is-delete:not(body)::before, html.theme--documenter-dark .content kbd.is-delete:not(body)::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::before { + height: 1px; + width: 50%; } + html.theme--documenter-dark .tag.is-delete:not(body)::after, html.theme--documenter-dark .content kbd.is-delete:not(body)::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + height: 50%; + width: 1px; } + html.theme--documenter-dark .tag.is-delete:not(body):hover, html.theme--documenter-dark .content kbd.is-delete:not(body):hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):hover, html.theme--documenter-dark .tag.is-delete:not(body):focus, html.theme--documenter-dark .content kbd.is-delete:not(body):focus, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):focus { + background-color: #1d2122; } + html.theme--documenter-dark .tag.is-delete:not(body):active, html.theme--documenter-dark .content kbd.is-delete:not(body):active, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):active { + background-color: #111414; } + html.theme--documenter-dark .tag.is-rounded:not(body), html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:not(body), html.theme--documenter-dark .content kbd.is-rounded:not(body), html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-rounded:not(body) { + border-radius: 290486px; } + html.theme--documenter-dark a.tag:hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:hover { + text-decoration: underline; } + html.theme--documenter-dark .title, + html.theme--documenter-dark .subtitle { + word-break: break-word; } + html.theme--documenter-dark .title em, + html.theme--documenter-dark .title span, + html.theme--documenter-dark .subtitle em, + html.theme--documenter-dark .subtitle span { + font-weight: inherit; } + html.theme--documenter-dark .title sub, + html.theme--documenter-dark .subtitle sub { + font-size: 0.75em; } + html.theme--documenter-dark .title sup, + html.theme--documenter-dark .subtitle sup { + font-size: 0.75em; } + html.theme--documenter-dark .title .tag, html.theme--documenter-dark .title .content kbd, html.theme--documenter-dark .content .title kbd, html.theme--documenter-dark .title .docstring > section > a.docs-sourcelink, + html.theme--documenter-dark .subtitle .tag, + html.theme--documenter-dark .subtitle .content kbd, + html.theme--documenter-dark .content .subtitle kbd, + html.theme--documenter-dark .subtitle .docstring > section > a.docs-sourcelink { + vertical-align: middle; } + html.theme--documenter-dark .title { + color: #fff; + font-size: 2rem; + font-weight: 500; + line-height: 1.125; } + html.theme--documenter-dark .title strong { + color: inherit; + font-weight: inherit; } + html.theme--documenter-dark .title + .highlight { + margin-top: -0.75rem; } + html.theme--documenter-dark .title:not(.is-spaced) + .subtitle { + margin-top: -1.25rem; } + html.theme--documenter-dark .title.is-1 { + font-size: 3rem; } + html.theme--documenter-dark .title.is-2 { + font-size: 2.5rem; } + html.theme--documenter-dark .title.is-3 { + font-size: 2rem; } + html.theme--documenter-dark .title.is-4 { + font-size: 1.5rem; } + html.theme--documenter-dark .title.is-5 { + font-size: 1.25rem; } + html.theme--documenter-dark .title.is-6 { + font-size: 15px; } + html.theme--documenter-dark .title.is-7 { + font-size: 0.85em; } + html.theme--documenter-dark .subtitle { + color: #8c9b9d; + font-size: 1.25rem; + font-weight: 400; + line-height: 1.25; } + html.theme--documenter-dark .subtitle strong { + color: #8c9b9d; + font-weight: 600; } + html.theme--documenter-dark .subtitle:not(.is-spaced) + .title { + margin-top: -1.25rem; } + html.theme--documenter-dark .subtitle.is-1 { + font-size: 3rem; } + html.theme--documenter-dark .subtitle.is-2 { + font-size: 2.5rem; } + html.theme--documenter-dark .subtitle.is-3 { + font-size: 2rem; } + html.theme--documenter-dark .subtitle.is-4 { + font-size: 1.5rem; } + html.theme--documenter-dark .subtitle.is-5 { + font-size: 1.25rem; } + html.theme--documenter-dark .subtitle.is-6 { + font-size: 15px; } + html.theme--documenter-dark .subtitle.is-7 { + font-size: 0.85em; } + html.theme--documenter-dark .heading { + display: block; + font-size: 11px; + letter-spacing: 1px; + margin-bottom: 5px; + text-transform: uppercase; } + html.theme--documenter-dark .highlight { + font-weight: 400; + max-width: 100%; + overflow: hidden; + padding: 0; } + html.theme--documenter-dark .highlight pre { + overflow: auto; + max-width: 100%; } + html.theme--documenter-dark .number { + align-items: center; + background-color: #282f2f; + border-radius: 290486px; + display: inline-flex; + font-size: 1.25rem; + height: 2em; + justify-content: center; + margin-right: 1.5rem; + min-width: 2.5em; + padding: 0.25rem 0.5rem; + text-align: center; + vertical-align: top; } + html.theme--documenter-dark .select select, html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + background-color: #1f2424; + border-color: #5e6d6f; + border-radius: 0.4em; + color: #dbdee0; } + html.theme--documenter-dark .select select::-moz-placeholder, html.theme--documenter-dark .textarea::-moz-placeholder, html.theme--documenter-dark .input::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select::-webkit-input-placeholder, html.theme--documenter-dark .textarea::-webkit-input-placeholder, html.theme--documenter-dark .input::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select:-moz-placeholder, html.theme--documenter-dark .textarea:-moz-placeholder, html.theme--documenter-dark .input:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select:-ms-input-placeholder, html.theme--documenter-dark .textarea:-ms-input-placeholder, html.theme--documenter-dark .input:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select:hover, html.theme--documenter-dark .textarea:hover, html.theme--documenter-dark .input:hover, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:hover, html.theme--documenter-dark .select select.is-hovered, html.theme--documenter-dark .is-hovered.textarea, html.theme--documenter-dark .is-hovered.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-hovered { + border-color: #8c9b9d; } + html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .select select.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + border-color: #1abc9c; + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .select select[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], fieldset[disabled] html.theme--documenter-dark .select select, fieldset[disabled] html.theme--documenter-dark .textarea, fieldset[disabled] html.theme--documenter-dark .input, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + background-color: #8c9b9d; + border-color: #282f2f; + box-shadow: none; + color: white; } + html.theme--documenter-dark .select select[disabled]::-moz-placeholder, html.theme--documenter-dark .textarea[disabled]::-moz-placeholder, html.theme--documenter-dark .input[disabled]::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .select select::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .input::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .select select[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .textarea[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .input[disabled]::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .select select::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .input::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .select select[disabled]:-moz-placeholder, html.theme--documenter-dark .textarea[disabled]:-moz-placeholder, html.theme--documenter-dark .input[disabled]:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .select select:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .input:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .select select[disabled]:-ms-input-placeholder, html.theme--documenter-dark .textarea[disabled]:-ms-input-placeholder, html.theme--documenter-dark .input[disabled]:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .select select:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .input:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1); + max-width: 100%; + width: 100%; } + html.theme--documenter-dark .textarea[readonly], html.theme--documenter-dark .input[readonly], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[readonly] { + box-shadow: none; } + html.theme--documenter-dark .is-white.textarea, html.theme--documenter-dark .is-white.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white { + border-color: white; } + 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: 0.85em; } + html.theme--documenter-dark .is-medium.textarea, html.theme--documenter-dark .is-medium.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .is-large.textarea, html.theme--documenter-dark .is-large.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .is-fullwidth.textarea, html.theme--documenter-dark .is-fullwidth.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-fullwidth { + display: block; + width: 100%; } + html.theme--documenter-dark .is-inline.textarea, html.theme--documenter-dark .is-inline.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-inline { + display: inline; + width: auto; } + html.theme--documenter-dark .input.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .input.is-static, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-static { + background-color: transparent; + border-color: transparent; + box-shadow: none; + padding-left: 0; + padding-right: 0; } + html.theme--documenter-dark .textarea { + display: block; + max-width: 100%; + min-width: 100%; + padding: 0.625em; + resize: vertical; } + html.theme--documenter-dark .textarea:not([rows]) { + max-height: 600px; + min-height: 120px; } + html.theme--documenter-dark .textarea[rows] { + height: initial; } + html.theme--documenter-dark .textarea.has-fixed-size { + resize: none; } + html.theme--documenter-dark .radio, html.theme--documenter-dark .checkbox { + cursor: pointer; + display: inline-block; + line-height: 1.25; + position: relative; } + html.theme--documenter-dark .radio input, html.theme--documenter-dark .checkbox input { + cursor: pointer; } + html.theme--documenter-dark .radio:hover, html.theme--documenter-dark .checkbox:hover { + color: #8c9b9d; } + html.theme--documenter-dark .radio[disabled], html.theme--documenter-dark .checkbox[disabled], fieldset[disabled] html.theme--documenter-dark .radio, fieldset[disabled] html.theme--documenter-dark .checkbox { + color: white; + cursor: not-allowed; } + html.theme--documenter-dark .radio + .radio { + margin-left: 0.5em; } + html.theme--documenter-dark .select { + display: inline-block; + max-width: 100%; + position: relative; + vertical-align: top; } + html.theme--documenter-dark .select:not(.is-multiple) { + height: 2.25em; } + html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after { + border-color: #1abc9c; + right: 1.125em; + z-index: 4; } + html.theme--documenter-dark .select.is-rounded select, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select select { + border-radius: 290486px; + padding-left: 1em; } + html.theme--documenter-dark .select select { + cursor: pointer; + display: block; + font-size: 1em; + max-width: 100%; + outline: none; } + html.theme--documenter-dark .select select::-ms-expand { + display: none; } + html.theme--documenter-dark .select select[disabled]:hover, fieldset[disabled] html.theme--documenter-dark .select select:hover { + border-color: #282f2f; } + html.theme--documenter-dark .select select:not([multiple]) { + padding-right: 2.5em; } + html.theme--documenter-dark .select select[multiple] { + height: auto; + padding: 0; } + html.theme--documenter-dark .select select[multiple] option { + padding: 0.5em 1em; } + html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading):hover::after { + border-color: #8c9b9d; } + html.theme--documenter-dark .select.is-white:not(:hover)::after { + border-color: white; } + html.theme--documenter-dark .select.is-white select { + border-color: white; } + 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: black; } + 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: 0.85em; } + html.theme--documenter-dark .select.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .select.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .select.is-disabled::after { + border-color: white; } + html.theme--documenter-dark .select.is-fullwidth { + width: 100%; } + html.theme--documenter-dark .select.is-fullwidth select { + width: 100%; } + html.theme--documenter-dark .select.is-loading::after { + margin-top: 0; + position: absolute; + right: 0.625em; + top: 0.625em; + transform: none; } + html.theme--documenter-dark .select.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.85em; } + html.theme--documenter-dark .select.is-loading.is-medium:after { + font-size: 1.25rem; } + html.theme--documenter-dark .select.is-loading.is-large:after { + font-size: 1.5rem; } + html.theme--documenter-dark .file { + align-items: stretch; + display: flex; + justify-content: flex-start; + position: relative; } + html.theme--documenter-dark .file.is-white .file-cta { + background-color: white; + 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: white; } + 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: white; } + 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: white; } + html.theme--documenter-dark .file.is-black:active .file-cta, html.theme--documenter-dark .file.is-black.is-active .file-cta { + background-color: black; + border-color: transparent; + color: white; } + html.theme--documenter-dark .file.is-light .file-cta { + background-color: #ecf0f1; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-light:hover .file-cta, html.theme--documenter-dark .file.is-light.is-hovered .file-cta { + background-color: #e5eaec; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-light:focus .file-cta, html.theme--documenter-dark .file.is-light.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(236, 240, 241, 0.25); + color: #282f2f; } + html.theme--documenter-dark .file.is-light:active .file-cta, html.theme--documenter-dark .file.is-light.is-active .file-cta { + background-color: #dde4e6; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-dark .file-cta, html.theme--documenter-dark .content kbd.file .file-cta { + background-color: #282f2f; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:hover .file-cta, html.theme--documenter-dark .content kbd.file:hover .file-cta, html.theme--documenter-dark .file.is-dark.is-hovered .file-cta, html.theme--documenter-dark .content kbd.file.is-hovered .file-cta { + background-color: #232829; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:focus .file-cta, html.theme--documenter-dark .content kbd.file:focus .file-cta, html.theme--documenter-dark .file.is-dark.is-focused .file-cta, html.theme--documenter-dark .content kbd.file.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(40, 47, 47, 0.25); + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:active .file-cta, html.theme--documenter-dark .content kbd.file:active .file-cta, html.theme--documenter-dark .file.is-dark.is-active .file-cta, html.theme--documenter-dark .content kbd.file.is-active .file-cta { + background-color: #1d2122; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-primary .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink .file-cta { + background-color: #375a7f; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-primary:hover .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:hover .file-cta, html.theme--documenter-dark .file.is-primary.is-hovered .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-hovered.docs-sourcelink .file-cta { + background-color: #335476; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-primary:focus .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:focus .file-cta, html.theme--documenter-dark .file.is-primary.is-focused .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-focused.docs-sourcelink .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(55, 90, 127, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-primary:active .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:active .file-cta, html.theme--documenter-dark .file.is-primary.is-active .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-active.docs-sourcelink .file-cta { + background-color: #2f4d6d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link .file-cta { + background-color: #1abc9c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link:hover .file-cta, html.theme--documenter-dark .file.is-link.is-hovered .file-cta { + background-color: #18b193; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link:focus .file-cta, html.theme--documenter-dark .file.is-link.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(26, 188, 156, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-link:active .file-cta, html.theme--documenter-dark .file.is-link.is-active .file-cta { + background-color: #17a689; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info .file-cta { + background-color: #024c7d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info:hover .file-cta, html.theme--documenter-dark .file.is-info.is-hovered .file-cta { + background-color: #024470; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info:focus .file-cta, html.theme--documenter-dark .file.is-info.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(2, 76, 125, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-info:active .file-cta, html.theme--documenter-dark .file.is-info.is-active .file-cta { + background-color: #023d64; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success .file-cta { + background-color: #008438; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success:hover .file-cta, html.theme--documenter-dark .file.is-success.is-hovered .file-cta { + background-color: #007733; + 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: 0.85em; } + html.theme--documenter-dark .file.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .file.is-medium .file-icon .fa { + font-size: 21px; } + html.theme--documenter-dark .file.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .file.is-large .file-icon .fa { + font-size: 28px; } + html.theme--documenter-dark .file.has-name .file-cta { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .file.has-name .file-name { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .file.has-name.is-empty .file-cta { + border-radius: 0.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: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .file.is-boxed.has-name .file-name { + border-radius: 0 0 0.4em 0.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 0.4em 0.4em 0; } + html.theme--documenter-dark .file.is-right .file-name { + border-radius: 0.4em 0 0 0.4em; + border-width: 1px 0 1px 1px; + order: -1; } + html.theme--documenter-dark .file-label { + align-items: stretch; + display: flex; + cursor: pointer; + justify-content: flex-start; + overflow: hidden; + position: relative; } + html.theme--documenter-dark .file-label:hover .file-cta { + background-color: #e5eaec; + color: #282f2f; } + html.theme--documenter-dark .file-label:hover .file-name { + border-color: #596668; } + html.theme--documenter-dark .file-label:active .file-cta { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .file-label:active .file-name { + border-color: #535f61; } + html.theme--documenter-dark .file-input { + height: 100%; + left: 0; + opacity: 0; + outline: none; + position: absolute; + top: 0; + width: 100%; } + html.theme--documenter-dark .file-cta, + html.theme--documenter-dark .file-name { + border-color: #5e6d6f; + border-radius: 0.4em; + font-size: 1em; + padding-left: 1em; + padding-right: 1em; + white-space: nowrap; } + html.theme--documenter-dark .file-cta { + background-color: #ecf0f1; + color: #343c3d; } + html.theme--documenter-dark .file-name { + border-color: #5e6d6f; + border-style: solid; + border-width: 1px 1px 1px 0; + display: block; + max-width: 16em; + overflow: hidden; + text-align: left; + text-overflow: ellipsis; } + html.theme--documenter-dark .file-icon { + align-items: center; + display: flex; + height: 1em; + justify-content: center; + margin-right: 0.5em; + width: 1em; } + html.theme--documenter-dark .file-icon .fa { + font-size: 14px; } + html.theme--documenter-dark .label { + color: #282f2f; + display: block; + font-size: 15px; + font-weight: 700; } + html.theme--documenter-dark .label:not(:last-child) { + margin-bottom: 0.5em; } + html.theme--documenter-dark .label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.label { + font-size: 0.85em; } + html.theme--documenter-dark .label.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .label.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .help { + display: block; + font-size: 0.85em; + margin-top: 0.25rem; } + html.theme--documenter-dark .help.is-white { + color: white; } + html.theme--documenter-dark .help.is-black { + color: #0a0a0a; } + html.theme--documenter-dark .help.is-light { + color: #ecf0f1; } + html.theme--documenter-dark .help.is-dark, html.theme--documenter-dark .content kbd.help { + color: #282f2f; } + html.theme--documenter-dark .help.is-primary, html.theme--documenter-dark .docstring > section > a.help.docs-sourcelink { + color: #375a7f; } + html.theme--documenter-dark .help.is-link { + color: #1abc9c; } + html.theme--documenter-dark .help.is-info { + color: #024c7d; } + html.theme--documenter-dark .help.is-success { + color: #008438; } + html.theme--documenter-dark .help.is-warning { + color: #ad8100; } + html.theme--documenter-dark .help.is-danger { + color: #9e1b0d; } + html.theme--documenter-dark .field:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .field.has-addons { + display: flex; + justify-content: flex-start; } + html.theme--documenter-dark .field.has-addons .control:not(:last-child) { + margin-right: -1px; } + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .button, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .input, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .select select { + border-radius: 0; } + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .button, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .input, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .select select { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .button, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .input, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .select select { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):hover, html.theme--documenter-dark .field.has-addons .control .button.is-hovered:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input.is-hovered:not([disabled]), + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-hovered:not([disabled]), + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-hovered:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select.is-hovered:not([disabled]) { + z-index: 2; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus, html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]), html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active, html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]), + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]), + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]), + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]), + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]) { + z-index: 3; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus:hover, html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]):hover, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active:hover, html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]):hover { + z-index: 4; } + html.theme--documenter-dark .field.has-addons .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .field.has-addons.has-addons-centered { + justify-content: center; } + html.theme--documenter-dark .field.has-addons.has-addons-right { + justify-content: flex-end; } + html.theme--documenter-dark .field.has-addons.has-addons-fullwidth .control { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .field.is-grouped { + display: flex; + justify-content: flex-start; } + html.theme--documenter-dark .field.is-grouped > .control { + flex-shrink: 0; } + html.theme--documenter-dark .field.is-grouped > .control:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + html.theme--documenter-dark .field.is-grouped > .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .field.is-grouped.is-grouped-centered { + justify-content: center; } + html.theme--documenter-dark .field.is-grouped.is-grouped-right { + justify-content: flex-end; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline { + flex-wrap: wrap; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:last-child, html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:not(:last-child) { + margin-bottom: 0; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field.is-horizontal { + display: flex; } } + html.theme--documenter-dark .field-label .label { + font-size: inherit; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .field-label { + margin-bottom: 0.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field-label { + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + margin-right: 1.5rem; + text-align: right; } + html.theme--documenter-dark .field-label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.field-label { + font-size: 0.85em; + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-normal { + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-medium { + font-size: 1.25rem; + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-large { + font-size: 1.5rem; + padding-top: 0.375em; } } + html.theme--documenter-dark .field-body .field .field { + margin-bottom: 0; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field-body { + display: flex; + flex-basis: 0; + flex-grow: 5; + flex-shrink: 1; } + html.theme--documenter-dark .field-body .field { + margin-bottom: 0; } + html.theme--documenter-dark .field-body > .field { + flex-shrink: 1; } + html.theme--documenter-dark .field-body > .field:not(.is-narrow) { + flex-grow: 1; } + html.theme--documenter-dark .field-body > .field:not(:last-child) { + margin-right: 0.75rem; } } + html.theme--documenter-dark .control { + box-sizing: border-box; + clear: both; + font-size: 15px; + position: relative; + text-align: left; } + html.theme--documenter-dark .control.has-icons-left .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select:focus ~ .icon { + color: #5e6d6f; } + html.theme--documenter-dark .control.has-icons-left .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-small ~ .icon { + font-size: 0.85em; } + html.theme--documenter-dark .control.has-icons-left .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-medium ~ .icon { + font-size: 1.25rem; } + html.theme--documenter-dark .control.has-icons-left .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-large ~ .icon { + font-size: 1.5rem; } + html.theme--documenter-dark .control.has-icons-left .icon, html.theme--documenter-dark .control.has-icons-right .icon { + color: #dbdee0; + height: 2.25em; + pointer-events: none; + position: absolute; + top: 0; + width: 2.25em; + z-index: 4; } + html.theme--documenter-dark .control.has-icons-left .input, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input, + html.theme--documenter-dark .control.has-icons-left .select select { + padding-left: 2.25em; } + html.theme--documenter-dark .control.has-icons-left .icon.is-left { + left: 0; } + html.theme--documenter-dark .control.has-icons-right .input, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input, + html.theme--documenter-dark .control.has-icons-right .select select { + padding-right: 2.25em; } + html.theme--documenter-dark .control.has-icons-right .icon.is-right { + right: 0; } + html.theme--documenter-dark .control.is-loading::after { + position: absolute !important; + right: 0.625em; + top: 0.625em; + z-index: 4; } + html.theme--documenter-dark .control.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.85em; } + html.theme--documenter-dark .control.is-loading.is-medium:after { + font-size: 1.25rem; } + html.theme--documenter-dark .control.is-loading.is-large:after { + font-size: 1.5rem; } + html.theme--documenter-dark .breadcrumb { + font-size: 15px; + white-space: nowrap; } + html.theme--documenter-dark .breadcrumb a { + align-items: center; + color: #1abc9c; + display: flex; + justify-content: center; + padding: 0 0.75em; } + html.theme--documenter-dark .breadcrumb a:hover { + color: #1dd2af; } + html.theme--documenter-dark .breadcrumb li { + align-items: center; + display: flex; } + html.theme--documenter-dark .breadcrumb li:first-child a { + padding-left: 0; } + html.theme--documenter-dark .breadcrumb li.is-active a { + color: #f2f2f2; + cursor: default; + pointer-events: none; } + html.theme--documenter-dark .breadcrumb li + li::before { + color: #8c9b9d; + content: "\0002f"; } + html.theme--documenter-dark .breadcrumb ul, + html.theme--documenter-dark .breadcrumb ol { + align-items: flex-start; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .breadcrumb .icon:first-child { + margin-right: 0.5em; } + html.theme--documenter-dark .breadcrumb .icon:last-child { + margin-left: 0.5em; } + html.theme--documenter-dark .breadcrumb.is-centered ol, + html.theme--documenter-dark .breadcrumb.is-centered ul { + justify-content: center; } + html.theme--documenter-dark .breadcrumb.is-right ol, + html.theme--documenter-dark .breadcrumb.is-right ul { + justify-content: flex-end; } + html.theme--documenter-dark .breadcrumb.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.breadcrumb { + font-size: 0.85em; } + html.theme--documenter-dark .breadcrumb.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .breadcrumb.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .breadcrumb.has-arrow-separator li + li::before { + content: "\02192"; } + html.theme--documenter-dark .breadcrumb.has-bullet-separator li + li::before { + content: "\02022"; } + html.theme--documenter-dark .breadcrumb.has-dot-separator li + li::before { + content: "\000b7"; } + html.theme--documenter-dark .breadcrumb.has-succeeds-separator li + li::before { + content: "\0227B"; } + html.theme--documenter-dark .card { + background-color: white; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #fff; + max-width: 100%; + position: relative; } + html.theme--documenter-dark .card-header { + background-color: transparent; + align-items: stretch; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + display: flex; } + html.theme--documenter-dark .card-header-title { + align-items: center; + color: #f2f2f2; + display: flex; + flex-grow: 1; + font-weight: 700; + padding: 0.75rem; } + html.theme--documenter-dark .card-header-title.is-centered { + justify-content: center; } + html.theme--documenter-dark .card-header-icon { + align-items: center; + cursor: pointer; + display: flex; + justify-content: center; + padding: 0.75rem; } + html.theme--documenter-dark .card-image { + display: block; + position: relative; } + html.theme--documenter-dark .card-content { + background-color: transparent; + padding: 1.5rem; } + html.theme--documenter-dark .card-footer { + background-color: transparent; + border-top: 1px solid #5e6d6f; + align-items: stretch; + display: flex; } + html.theme--documenter-dark .card-footer-item { + align-items: center; + display: flex; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + justify-content: center; + padding: 0.75rem; } + html.theme--documenter-dark .card-footer-item:not(:last-child) { + border-right: 1px solid #5e6d6f; } + html.theme--documenter-dark .card .media:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .dropdown { + display: inline-flex; + position: relative; + vertical-align: top; } + html.theme--documenter-dark .dropdown.is-active .dropdown-menu, html.theme--documenter-dark .dropdown.is-hoverable:hover .dropdown-menu { + display: block; } + html.theme--documenter-dark .dropdown.is-right .dropdown-menu { + left: auto; + right: 0; } + html.theme--documenter-dark .dropdown.is-up .dropdown-menu { + bottom: 100%; + padding-bottom: 4px; + padding-top: initial; + top: auto; } + html.theme--documenter-dark .dropdown-menu { + display: none; + left: 0; + min-width: 12rem; + padding-top: 4px; + position: absolute; + top: 100%; + z-index: 20; } + html.theme--documenter-dark .dropdown-content { + background-color: #282f2f; + border-radius: 0.4em; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + html.theme--documenter-dark .dropdown-item { + color: #fff; + display: block; + font-size: 0.875rem; + line-height: 1.5; + padding: 0.375rem 1rem; + position: relative; } + html.theme--documenter-dark a.dropdown-item, + html.theme--documenter-dark button.dropdown-item { + padding-right: 3rem; + text-align: left; + white-space: nowrap; + width: 100%; } + html.theme--documenter-dark a.dropdown-item:hover, + html.theme--documenter-dark button.dropdown-item:hover { + background-color: #282f2f; + color: #0a0a0a; } + html.theme--documenter-dark a.dropdown-item.is-active, + html.theme--documenter-dark button.dropdown-item.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .dropdown-divider { + background-color: #5e6d6f; + border: none; + display: block; + height: 1px; + margin: 0.5rem 0; } + html.theme--documenter-dark .level { + align-items: center; + justify-content: space-between; } + html.theme--documenter-dark .level code { + border-radius: 0.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: 0.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: 0.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: 0.75rem; } } + html.theme--documenter-dark .level-left { + align-items: center; + justify-content: flex-start; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .level-left + .level-right { + margin-top: 1.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-left { + display: flex; } } + html.theme--documenter-dark .level-right { + align-items: center; + justify-content: flex-end; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-right { + display: flex; } } + html.theme--documenter-dark .list { + background-color: white; + border-radius: 0.4em; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .list-item { + display: block; + padding: 0.5em 1em; } + html.theme--documenter-dark .list-item:not(a) { + color: #fff; } + html.theme--documenter-dark .list-item:first-child { + border-top-left-radius: 0.4em; + border-top-right-radius: 0.4em; } + html.theme--documenter-dark .list-item:last-child { + border-bottom-left-radius: 0.4em; + border-bottom-right-radius: 0.4em; } + html.theme--documenter-dark .list-item:not(:last-child) { + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .list-item.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark a.list-item { + background-color: #282f2f; + cursor: pointer; } + html.theme--documenter-dark .media { + align-items: flex-start; + display: flex; + text-align: left; } + html.theme--documenter-dark .media .content:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .media .media { + border-top: 1px solid rgba(94, 109, 111, 0.5); + display: flex; + padding-top: 0.75rem; } + html.theme--documenter-dark .media .media .content:not(:last-child), + html.theme--documenter-dark .media .media .control:not(:last-child) { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .media .media .media { + padding-top: 0.5rem; } + html.theme--documenter-dark .media .media .media + .media { + margin-top: 0.5rem; } + html.theme--documenter-dark .media + .media { + border-top: 1px solid rgba(94, 109, 111, 0.5); + margin-top: 1rem; + padding-top: 1rem; } + html.theme--documenter-dark .media.is-large + .media { + margin-top: 1.5rem; + padding-top: 1.5rem; } + html.theme--documenter-dark .media-left, + html.theme--documenter-dark .media-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .media-left { + margin-right: 1rem; } + html.theme--documenter-dark .media-right { + margin-left: 1rem; } + html.theme--documenter-dark .media-content { + flex-basis: auto; + flex-grow: 1; + flex-shrink: 1; + text-align: left; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .media-content { + overflow-x: auto; } } + html.theme--documenter-dark .menu { + font-size: 15px; } + html.theme--documenter-dark .menu.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.menu { + font-size: 0.85em; } + html.theme--documenter-dark .menu.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .menu.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .menu-list { + line-height: 1.25; } + html.theme--documenter-dark .menu-list a { + border-radius: 3px; + color: #fff; + display: block; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .menu-list a:hover { + background-color: #282f2f; + color: #f2f2f2; } + html.theme--documenter-dark .menu-list a.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .menu-list li ul { + border-left: 1px solid #5e6d6f; + margin: 0.75em; + padding-left: 0.75em; } + html.theme--documenter-dark .menu-label { + color: white; + font-size: 0.75em; + letter-spacing: 0.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: 0.4em; + font-size: 15px; } + html.theme--documenter-dark .message strong { + color: currentColor; } + html.theme--documenter-dark .message a:not(.button):not(.tag):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + html.theme--documenter-dark .message.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.message { + font-size: 0.85em; } + html.theme--documenter-dark .message.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .message.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .message.is-white { + background-color: white; } + html.theme--documenter-dark .message.is-white .message-header { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .message.is-white .message-body { + border-color: white; + color: #4d4d4d; } + html.theme--documenter-dark .message.is-black { + background-color: #fafafa; } + html.theme--documenter-dark .message.is-black .message-header { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .message.is-black .message-body { + border-color: #0a0a0a; + color: #090909; } + html.theme--documenter-dark .message.is-light { + background-color: #f9fafb; } + html.theme--documenter-dark .message.is-light .message-header { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .message.is-light .message-body { + border-color: #ecf0f1; + color: #505050; } + html.theme--documenter-dark .message.is-dark, html.theme--documenter-dark .content kbd.message { + background-color: #f9fafa; } + html.theme--documenter-dark .message.is-dark .message-header, html.theme--documenter-dark .content kbd.message .message-header { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .message.is-dark .message-body, html.theme--documenter-dark .content kbd.message .message-body { + border-color: #282f2f; + color: #212526; } + html.theme--documenter-dark .message.is-primary, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink { + background-color: #f8fafc; } + html.theme--documenter-dark .message.is-primary .message-header, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-header { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .message.is-primary .message-body, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-body { + border-color: #375a7f; + color: #2b4159; } + html.theme--documenter-dark .message.is-link { + background-color: #f6fefc; } + html.theme--documenter-dark .message.is-link .message-header { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .message.is-link .message-body { + border-color: #1abc9c; + color: #0b2f28; } + html.theme--documenter-dark .message.is-info { + background-color: #f5fbff; } + html.theme--documenter-dark .message.is-info .message-header { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .message.is-info .message-body { + border-color: #024c7d; + color: #033659; } + html.theme--documenter-dark .message.is-success { + background-color: #f5fff9; } + html.theme--documenter-dark .message.is-success .message-header { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .message.is-success .message-body { + border-color: #008438; + color: #023518; } + html.theme--documenter-dark .message.is-warning { + background-color: #fffcf5; } + html.theme--documenter-dark .message.is-warning .message-header { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .message.is-warning .message-body { + border-color: #ad8100; + color: #3d2e03; } + html.theme--documenter-dark .message.is-danger { + background-color: #fef6f6; } + html.theme--documenter-dark .message.is-danger .message-header { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .message.is-danger .message-body { + border-color: #9e1b0d; + color: #7a170c; } + html.theme--documenter-dark .message-header { + align-items: center; + background-color: #fff; + border-radius: 0.4em 0.4em 0 0; + color: rgba(0, 0, 0, 0.7); + display: flex; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em 1em; + position: relative; } + html.theme--documenter-dark .message-header .delete { + flex-grow: 0; + flex-shrink: 0; + margin-left: 0.75em; } + html.theme--documenter-dark .message-header + .message-body { + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .message-body { + border-color: #5e6d6f; + border-radius: 0.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: white; } + html.theme--documenter-dark .message-body pre code { + background-color: transparent; } + html.theme--documenter-dark .modal { + align-items: center; + display: none; + flex-direction: column; + justify-content: center; + overflow: hidden; + position: fixed; + z-index: 40; } + html.theme--documenter-dark .modal.is-active { + display: flex; } + html.theme--documenter-dark .modal-background { + background-color: rgba(10, 10, 10, 0.86); } + html.theme--documenter-dark .modal-content, + html.theme--documenter-dark .modal-card { + margin: 0 20px; + max-height: calc(100vh - 160px); + overflow: auto; + position: relative; + width: 100%; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .modal-content, + html.theme--documenter-dark .modal-card { + margin: 0 auto; + max-height: calc(100vh - 40px); + width: 640px; } } + html.theme--documenter-dark .modal-close { + background: none; + height: 40px; + position: fixed; + right: 20px; + top: 20px; + width: 40px; } + html.theme--documenter-dark .modal-card { + display: flex; + flex-direction: column; + max-height: calc(100vh - 40px); + overflow: hidden; + -ms-overflow-y: visible; } + html.theme--documenter-dark .modal-card-head, + html.theme--documenter-dark .modal-card-foot { + align-items: center; + background-color: #282f2f; + display: flex; + flex-shrink: 0; + justify-content: flex-start; + padding: 20px; + position: relative; } + html.theme--documenter-dark .modal-card-head { + border-bottom: 1px solid #5e6d6f; + border-top-left-radius: 8px; + border-top-right-radius: 8px; } + html.theme--documenter-dark .modal-card-title { + color: #f2f2f2; + flex-grow: 1; + flex-shrink: 0; + font-size: 1.5rem; + line-height: 1; } + html.theme--documenter-dark .modal-card-foot { + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark .modal-card-foot .button:not(:last-child) { + margin-right: 0.5em; } + html.theme--documenter-dark .modal-card-body { + -webkit-overflow-scrolling: touch; + background-color: white; + 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: white; + 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: white; + color: #0a0a0a; } } + html.theme--documenter-dark .navbar.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link { + color: white; } + 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: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link::after { + border-color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-burger { + color: white; } + @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: white; } + 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: black; + color: white; } + 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: white; } + 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: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-dropdown a.navbar-item.is-active { + background-color: #0a0a0a; + color: white; } } + html.theme--documenter-dark .navbar.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link { + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link::after { + border-color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-burger { + color: #282f2f; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-light .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link { + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link::after { + border-color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-dropdown a.navbar-item.is-active { + background-color: #ecf0f1; + color: #282f2f; } } + html.theme--documenter-dark .navbar.is-dark, html.theme--documenter-dark .content kbd.navbar { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link { + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-burger, html.theme--documenter-dark .content kbd.navbar .navbar-burger { + color: #ecf0f1; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-dark .navbar-start > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-end > .navbar-item, + html.theme--documenter-dark .content kbd.navbar .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link { + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link::after, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-dropdown a.navbar-item.is-active { + background-color: #282f2f; + color: #ecf0f1; } } + html.theme--documenter-dark .navbar.is-primary, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-burger, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-primary .navbar-start > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-end > .navbar-item, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link::after, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { + background-color: #375a7f; + color: #fff; } } + html.theme--documenter-dark .navbar.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-link .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-dropdown a.navbar-item.is-active { + background-color: #1abc9c; + color: #fff; } } + html.theme--documenter-dark .navbar.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-info .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-dropdown a.navbar-item.is-active { + background-color: #024c7d; + color: #fff; } } + html.theme--documenter-dark .navbar.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-success .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-dropdown a.navbar-item.is-active { + background-color: #008438; + color: #fff; } } + html.theme--documenter-dark .navbar.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-warning .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-dropdown a.navbar-item.is-active { + background-color: #ad8100; + color: #fff; } } + html.theme--documenter-dark .navbar.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-danger .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-dropdown a.navbar-item.is-active { + background-color: #9e1b0d; + color: #fff; } } + html.theme--documenter-dark .navbar > .container { + align-items: stretch; + display: flex; + min-height: 4rem; + width: 100%; } + html.theme--documenter-dark .navbar.has-shadow { + box-shadow: 0 2px 0 0 #282f2f; } + html.theme--documenter-dark .navbar.is-fixed-bottom, html.theme--documenter-dark .navbar.is-fixed-top { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + html.theme--documenter-dark .navbar.is-fixed-bottom { + bottom: 0; } + html.theme--documenter-dark .navbar.is-fixed-bottom.has-shadow { + box-shadow: 0 -2px 0 0 #282f2f; } + html.theme--documenter-dark .navbar.is-fixed-top { + top: 0; } + html.theme--documenter-dark html.has-navbar-fixed-top, + html.theme--documenter-dark body.has-navbar-fixed-top { + padding-top: 4rem; } + html.theme--documenter-dark html.has-navbar-fixed-bottom, + html.theme--documenter-dark body.has-navbar-fixed-bottom { + padding-bottom: 4rem; } + html.theme--documenter-dark .navbar-brand, + html.theme--documenter-dark .navbar-tabs { + align-items: stretch; + display: flex; + flex-shrink: 0; + min-height: 4rem; } + html.theme--documenter-dark .navbar-brand a.navbar-item:focus, html.theme--documenter-dark .navbar-brand a.navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .navbar-tabs { + -webkit-overflow-scrolling: touch; + max-width: 100vw; + overflow-x: auto; + overflow-y: hidden; } + html.theme--documenter-dark .navbar-burger { + color: #fff; + cursor: pointer; + display: block; + height: 4rem; + position: relative; + width: 4rem; + margin-left: auto; } + html.theme--documenter-dark .navbar-burger span { + background-color: currentColor; + display: block; + height: 1px; + left: calc(50% - 8px); + position: absolute; + transform-origin: center; + transition-duration: 86ms; + transition-property: background-color, opacity, transform; + transition-timing-function: ease-out; + width: 16px; } + html.theme--documenter-dark .navbar-burger span:nth-child(1) { + top: calc(50% - 6px); } + html.theme--documenter-dark .navbar-burger span:nth-child(2) { + top: calc(50% - 1px); } + html.theme--documenter-dark .navbar-burger span:nth-child(3) { + top: calc(50% + 4px); } + html.theme--documenter-dark .navbar-burger:hover { + background-color: rgba(0, 0, 0, 0.05); } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(1) { + transform: translateY(5px) rotate(45deg); } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(2) { + opacity: 0; } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(3) { + transform: translateY(-5px) rotate(-45deg); } + html.theme--documenter-dark .navbar-menu { + display: none; } + html.theme--documenter-dark .navbar-item, + html.theme--documenter-dark .navbar-link { + color: #fff; + display: block; + line-height: 1.5; + padding: 0.5rem 0.75rem; + position: relative; } + html.theme--documenter-dark .navbar-item .icon:only-child, + html.theme--documenter-dark .navbar-link .icon:only-child { + margin-left: -0.25rem; + margin-right: -0.25rem; } + html.theme--documenter-dark a.navbar-item, + html.theme--documenter-dark .navbar-link { + cursor: pointer; } + html.theme--documenter-dark a.navbar-item:focus, html.theme--documenter-dark a.navbar-item:focus-within, html.theme--documenter-dark a.navbar-item:hover, html.theme--documenter-dark a.navbar-item.is-active, + html.theme--documenter-dark .navbar-link:focus, + html.theme--documenter-dark .navbar-link:focus-within, + html.theme--documenter-dark .navbar-link:hover, + html.theme--documenter-dark .navbar-link.is-active { + background-color: transparent; + color: #1abc9c; } + html.theme--documenter-dark .navbar-item { + display: block; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .navbar-item img { + max-height: 1.75rem; } + html.theme--documenter-dark .navbar-item.has-dropdown { + padding: 0; } + html.theme--documenter-dark .navbar-item.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .navbar-item.is-tab { + border-bottom: 1px solid transparent; + min-height: 4rem; + padding-bottom: calc(0.5rem - 1px); } + html.theme--documenter-dark .navbar-item.is-tab:focus, html.theme--documenter-dark .navbar-item.is-tab:hover { + background-color: transparent; + border-bottom-color: #1abc9c; } + html.theme--documenter-dark .navbar-item.is-tab.is-active { + background-color: transparent; + 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: 0.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: transparent; + color: #dbdee0; } + html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active { + background-color: transparent; + color: #1abc9c; } + html.theme--documenter-dark .navbar-burger { + display: none; } + html.theme--documenter-dark .navbar-item, + html.theme--documenter-dark .navbar-link { + align-items: center; + display: flex; } + html.theme--documenter-dark .navbar-item { + display: flex; } + html.theme--documenter-dark .navbar-item.has-dropdown { + align-items: stretch; } + html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-link::after { + transform: rotate(135deg) translate(0.25em, -0.25em); } + html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-dropdown { + border-bottom: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 8px 8px 0 0; + border-top: none; + bottom: 100%; + box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1); + top: auto; } + html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown { + display: block; } + .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed { + opacity: 1; + pointer-events: auto; + transform: translateY(0); } + html.theme--documenter-dark .navbar-menu { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .navbar-start { + justify-content: flex-start; + margin-right: auto; } + html.theme--documenter-dark .navbar-end { + justify-content: flex-end; + margin-left: auto; } + html.theme--documenter-dark .navbar-dropdown { + background-color: #375a7f; + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + border-top: 1px solid rgba(0, 0, 0, 0.2); + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1); + display: none; + font-size: 0.875rem; + left: 0; + min-width: 100%; + position: absolute; + top: 100%; + z-index: 20; } + html.theme--documenter-dark .navbar-dropdown .navbar-item { + padding: 0.375rem 1rem; + white-space: nowrap; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item { + padding-right: 3rem; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item:focus, html.theme--documenter-dark .navbar-dropdown a.navbar-item:hover { + background-color: transparent; + color: #dbdee0; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item.is-active { + background-color: transparent; + 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: transparent; } + 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: transparent; } } + html.theme--documenter-dark .hero.is-fullheight-with-navbar { + min-height: calc(100vh - 4rem); } + html.theme--documenter-dark .pagination { + font-size: 15px; + margin: -0.25rem; } + html.theme--documenter-dark .pagination.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination { + font-size: 0.85em; } + html.theme--documenter-dark .pagination.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .pagination.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .pagination.is-rounded .pagination-previous, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous, + html.theme--documenter-dark .pagination.is-rounded .pagination-next, + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next { + padding-left: 1em; + padding-right: 1em; + border-radius: 290486px; } + html.theme--documenter-dark .pagination.is-rounded .pagination-link, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link { + border-radius: 290486px; } + html.theme--documenter-dark .pagination, + html.theme--documenter-dark .pagination-list { + align-items: center; + display: flex; + justify-content: center; + text-align: center; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark .pagination-ellipsis { + font-size: 1em; + justify-content: center; + margin: 0.25rem; + padding-left: 0.5em; + padding-right: 0.5em; + text-align: center; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-link { + border-color: #5e6d6f; + color: #1abc9c; + min-width: 2.25em; } + html.theme--documenter-dark .pagination-previous:hover, + html.theme--documenter-dark .pagination-next:hover, + html.theme--documenter-dark .pagination-link:hover { + border-color: #8c9b9d; + color: #1dd2af; } + html.theme--documenter-dark .pagination-previous:focus, + html.theme--documenter-dark .pagination-next:focus, + html.theme--documenter-dark .pagination-link:focus { + border-color: #8c9b9d; } + html.theme--documenter-dark .pagination-previous:active, + html.theme--documenter-dark .pagination-next:active, + html.theme--documenter-dark .pagination-link:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); } + html.theme--documenter-dark .pagination-previous[disabled], + html.theme--documenter-dark .pagination-next[disabled], + html.theme--documenter-dark .pagination-link[disabled] { + background-color: #dbdee0; + border-color: #dbdee0; + box-shadow: none; + color: #5e6d6f; + opacity: 0.5; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next { + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + html.theme--documenter-dark .pagination-link.is-current { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .pagination-ellipsis { + color: #8c9b9d; + pointer-events: none; } + html.theme--documenter-dark .pagination-list { + flex-wrap: wrap; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .pagination { + flex-wrap: wrap; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .pagination-list li { + flex-grow: 1; + flex-shrink: 1; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .pagination-list { + flex-grow: 1; + flex-shrink: 1; + justify-content: flex-start; + order: 1; } + html.theme--documenter-dark .pagination-previous { + order: 2; } + html.theme--documenter-dark .pagination-next { + order: 3; } + html.theme--documenter-dark .pagination { + justify-content: space-between; } + html.theme--documenter-dark .pagination.is-centered .pagination-previous { + order: 1; } + html.theme--documenter-dark .pagination.is-centered .pagination-list { + justify-content: center; + order: 2; } + html.theme--documenter-dark .pagination.is-centered .pagination-next { + order: 3; } + html.theme--documenter-dark .pagination.is-right .pagination-previous { + order: 1; } + html.theme--documenter-dark .pagination.is-right .pagination-next { + order: 2; } + html.theme--documenter-dark .pagination.is-right .pagination-list { + justify-content: flex-end; + order: 3; } } + html.theme--documenter-dark .panel { + font-size: 15px; } + html.theme--documenter-dark .panel:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .panel-heading, + html.theme--documenter-dark .panel-tabs, + html.theme--documenter-dark .panel-block { + border-bottom: 1px solid #5e6d6f; + border-left: 1px solid #5e6d6f; + border-right: 1px solid #5e6d6f; } + html.theme--documenter-dark .panel-heading:first-child, + html.theme--documenter-dark .panel-tabs:first-child, + html.theme--documenter-dark .panel-block:first-child { + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark .panel-heading { + background-color: #282f2f; + border-radius: 0.4em 0.4em 0 0; + color: #f2f2f2; + font-size: 1.25em; + font-weight: 300; + line-height: 1.25; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .panel-tabs { + align-items: flex-end; + display: flex; + font-size: 0.875em; + justify-content: center; } + html.theme--documenter-dark .panel-tabs a { + border-bottom: 1px solid #5e6d6f; + margin-bottom: -1px; + padding: 0.5em; } + html.theme--documenter-dark .panel-tabs a.is-active { + border-bottom-color: #343c3d; + color: #17a689; } + html.theme--documenter-dark .panel-list a { + color: #fff; } + html.theme--documenter-dark .panel-list a:hover { + color: #1abc9c; } + html.theme--documenter-dark .panel-block { + align-items: center; + color: #f2f2f2; + display: flex; + justify-content: flex-start; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .panel-block input[type="checkbox"] { + margin-right: 0.75em; } + html.theme--documenter-dark .panel-block > .control { + flex-grow: 1; + flex-shrink: 1; + width: 100%; } + html.theme--documenter-dark .panel-block.is-wrapped { + flex-wrap: wrap; } + html.theme--documenter-dark .panel-block.is-active { + border-left-color: #1abc9c; + color: #17a689; } + html.theme--documenter-dark .panel-block.is-active .panel-icon { + color: #1abc9c; } + html.theme--documenter-dark a.panel-block, + html.theme--documenter-dark label.panel-block { + cursor: pointer; } + html.theme--documenter-dark a.panel-block:hover, + html.theme--documenter-dark label.panel-block:hover { + background-color: #282f2f; } + html.theme--documenter-dark .panel-icon { + display: inline-block; + font-size: 14px; + height: 1em; + line-height: 1em; + text-align: center; + vertical-align: top; + width: 1em; + color: white; + margin-right: 0.75em; } + html.theme--documenter-dark .panel-icon .fa { + font-size: inherit; + line-height: inherit; } + html.theme--documenter-dark .tabs { + -webkit-overflow-scrolling: touch; + align-items: stretch; + display: flex; + font-size: 15px; + justify-content: space-between; + overflow: hidden; + overflow-x: auto; + white-space: nowrap; } + html.theme--documenter-dark .tabs a { + align-items: center; + border-bottom-color: #5e6d6f; + border-bottom-style: solid; + border-bottom-width: 1px; + color: #fff; + display: flex; + justify-content: center; + margin-bottom: -1px; + padding: 0.5em 1em; + vertical-align: top; } + html.theme--documenter-dark .tabs a:hover { + border-bottom-color: #f2f2f2; + color: #f2f2f2; } + html.theme--documenter-dark .tabs li { + display: block; } + html.theme--documenter-dark .tabs li.is-active a { + border-bottom-color: #1abc9c; + color: #1abc9c; } + html.theme--documenter-dark .tabs ul { + align-items: center; + border-bottom-color: #5e6d6f; + border-bottom-style: solid; + border-bottom-width: 1px; + display: flex; + flex-grow: 1; + flex-shrink: 0; + justify-content: flex-start; } + html.theme--documenter-dark .tabs ul.is-left { + padding-right: 0.75em; } + html.theme--documenter-dark .tabs ul.is-center { + flex: none; + justify-content: center; + padding-left: 0.75em; + padding-right: 0.75em; } + html.theme--documenter-dark .tabs ul.is-right { + justify-content: flex-end; + padding-left: 0.75em; } + html.theme--documenter-dark .tabs .icon:first-child { + margin-right: 0.5em; } + html.theme--documenter-dark .tabs .icon:last-child { + margin-left: 0.5em; } + html.theme--documenter-dark .tabs.is-centered ul { + justify-content: center; } + html.theme--documenter-dark .tabs.is-right ul { + justify-content: flex-end; } + html.theme--documenter-dark .tabs.is-boxed a { + border: 1px solid transparent; + border-radius: 0.4em 0.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: white; + border-color: #5e6d6f; + border-bottom-color: transparent !important; } + html.theme--documenter-dark .tabs.is-fullwidth li { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .tabs.is-toggle a { + border-color: #5e6d6f; + border-style: solid; + border-width: 1px; + margin-bottom: 0; + position: relative; } + html.theme--documenter-dark .tabs.is-toggle a:hover { + background-color: #282f2f; + border-color: #8c9b9d; + z-index: 2; } + html.theme--documenter-dark .tabs.is-toggle li + li { + margin-left: -1px; } + html.theme--documenter-dark .tabs.is-toggle li:first-child a { + border-radius: 0.4em 0 0 0.4em; } + html.theme--documenter-dark .tabs.is-toggle li:last-child a { + border-radius: 0 0.4em 0.4em 0; } + html.theme--documenter-dark .tabs.is-toggle li.is-active a { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; + z-index: 1; } + html.theme--documenter-dark .tabs.is-toggle ul { + border-bottom: none; } + html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:first-child a { + border-bottom-left-radius: 290486px; + border-top-left-radius: 290486px; + padding-left: 1.25em; } + html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:last-child a { + border-bottom-right-radius: 290486px; + border-top-right-radius: 290486px; + padding-right: 1.25em; } + html.theme--documenter-dark .tabs.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.tabs { + font-size: 0.85em; } + html.theme--documenter-dark .tabs.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .tabs.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .column { + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + padding: 0.75rem; } + .columns.is-mobile > html.theme--documenter-dark .column.is-narrow { + flex: none; } + .columns.is-mobile > html.theme--documenter-dark .column.is-full { + flex: none; + width: 100%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-three-quarters { + flex: none; + width: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-two-thirds { + flex: none; + width: 66.6666%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-half { + flex: none; + width: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-third { + flex: none; + width: 33.3333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-quarter { + flex: none; + width: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-fifth { + flex: none; + width: 20%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-two-fifths { + flex: none; + width: 40%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-three-fifths { + flex: none; + width: 60%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-four-fifths { + flex: none; + width: 80%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-quarters { + margin-left: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-thirds { + margin-left: 66.6666%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-half { + margin-left: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-third { + margin-left: 33.3333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-quarter { + margin-left: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-fifth { + margin-left: 20%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-fifths { + margin-left: 40%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-fifths { + margin-left: 60%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-four-fifths { + margin-left: 80%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-0 { + flex: none; + width: 0%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-0 { + margin-left: 0%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-1 { + flex: none; + width: 8.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-1 { + margin-left: 8.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-2 { + flex: none; + width: 16.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-2 { + margin-left: 16.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-3 { + flex: none; + width: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-3 { + margin-left: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-4 { + flex: none; + width: 33.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-4 { + margin-left: 33.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-5 { + flex: none; + width: 41.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-5 { + margin-left: 41.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-6 { + flex: none; + width: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-6 { + margin-left: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-7 { + flex: none; + width: 58.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-7 { + margin-left: 58.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-8 { + flex: none; + width: 66.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-8 { + margin-left: 66.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-9 { + flex: none; + width: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-9 { + margin-left: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-10 { + flex: none; + width: 83.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-10 { + margin-left: 83.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-11 { + flex: none; + width: 91.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-11 { + margin-left: 91.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-12 { + flex: none; + width: 100%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-12 { + margin-left: 100%; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .column.is-narrow-mobile { + flex: none; } + html.theme--documenter-dark .column.is-full-mobile { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-mobile { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-mobile { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-mobile { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-mobile { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-mobile { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-mobile { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-mobile { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-mobile { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-mobile { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-mobile { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-mobile { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-mobile { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-mobile { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-mobile { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-mobile { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-mobile { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-mobile { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-mobile { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-mobile { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-mobile { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-mobile { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-mobile { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-mobile { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-mobile { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-mobile { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-mobile { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-mobile { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-mobile { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-mobile { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-mobile { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-mobile { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-mobile { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-mobile { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-mobile { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-mobile { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-mobile { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-mobile { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-mobile { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-mobile { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-mobile { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-mobile { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-mobile { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-mobile { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-mobile { + margin-left: 100%; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .column.is-narrow, html.theme--documenter-dark .column.is-narrow-tablet { + flex: none; } + html.theme--documenter-dark .column.is-full, html.theme--documenter-dark .column.is-full-tablet { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters, html.theme--documenter-dark .column.is-three-quarters-tablet { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds, html.theme--documenter-dark .column.is-two-thirds-tablet { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half, html.theme--documenter-dark .column.is-half-tablet { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third, html.theme--documenter-dark .column.is-one-third-tablet { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter, html.theme--documenter-dark .column.is-one-quarter-tablet { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth, html.theme--documenter-dark .column.is-one-fifth-tablet { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths, html.theme--documenter-dark .column.is-two-fifths-tablet { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths, html.theme--documenter-dark .column.is-three-fifths-tablet { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths, html.theme--documenter-dark .column.is-four-fifths-tablet { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters, html.theme--documenter-dark .column.is-offset-three-quarters-tablet { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds, html.theme--documenter-dark .column.is-offset-two-thirds-tablet { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half, html.theme--documenter-dark .column.is-offset-half-tablet { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third, html.theme--documenter-dark .column.is-offset-one-third-tablet { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter, html.theme--documenter-dark .column.is-offset-one-quarter-tablet { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth, html.theme--documenter-dark .column.is-offset-one-fifth-tablet { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths, html.theme--documenter-dark .column.is-offset-two-fifths-tablet { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths, html.theme--documenter-dark .column.is-offset-three-fifths-tablet { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths, html.theme--documenter-dark .column.is-offset-four-fifths-tablet { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0, html.theme--documenter-dark .column.is-0-tablet { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0, html.theme--documenter-dark .column.is-offset-0-tablet { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1, html.theme--documenter-dark .column.is-1-tablet { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1, html.theme--documenter-dark .column.is-offset-1-tablet { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2, html.theme--documenter-dark .column.is-2-tablet { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2, html.theme--documenter-dark .column.is-offset-2-tablet { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3, html.theme--documenter-dark .column.is-3-tablet { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3, html.theme--documenter-dark .column.is-offset-3-tablet { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4, html.theme--documenter-dark .column.is-4-tablet { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4, html.theme--documenter-dark .column.is-offset-4-tablet { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5, html.theme--documenter-dark .column.is-5-tablet { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5, html.theme--documenter-dark .column.is-offset-5-tablet { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6, html.theme--documenter-dark .column.is-6-tablet { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6, html.theme--documenter-dark .column.is-offset-6-tablet { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7, html.theme--documenter-dark .column.is-7-tablet { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7, html.theme--documenter-dark .column.is-offset-7-tablet { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8, html.theme--documenter-dark .column.is-8-tablet { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8, html.theme--documenter-dark .column.is-offset-8-tablet { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9, html.theme--documenter-dark .column.is-9-tablet { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9, html.theme--documenter-dark .column.is-offset-9-tablet { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10, html.theme--documenter-dark .column.is-10-tablet { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10, html.theme--documenter-dark .column.is-offset-10-tablet { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11, html.theme--documenter-dark .column.is-11-tablet { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11, html.theme--documenter-dark .column.is-offset-11-tablet { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12, html.theme--documenter-dark .column.is-12-tablet { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12, html.theme--documenter-dark .column.is-offset-12-tablet { + margin-left: 100%; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .column.is-narrow-touch { + flex: none; } + html.theme--documenter-dark .column.is-full-touch { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-touch { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-touch { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-touch { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-touch { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-touch { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-touch { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-touch { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-touch { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-touch { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-touch { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-touch { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-touch { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-touch { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-touch { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-touch { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-touch { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-touch { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-touch { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-touch { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-touch { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-touch { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-touch { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-touch { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-touch { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-touch { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-touch { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-touch { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-touch { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-touch { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-touch { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-touch { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-touch { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-touch { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-touch { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-touch { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-touch { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-touch { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-touch { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-touch { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-touch { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-touch { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-touch { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-touch { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-touch { + margin-left: 100%; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .column.is-narrow-desktop { + flex: none; } + html.theme--documenter-dark .column.is-full-desktop { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-desktop { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-desktop { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-desktop { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-desktop { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-desktop { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-desktop { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-desktop { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-desktop { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-desktop { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-desktop { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-desktop { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-desktop { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-desktop { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-desktop { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-desktop { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-desktop { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-desktop { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-desktop { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-desktop { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-desktop { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-desktop { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-desktop { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-desktop { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-desktop { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-desktop { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-desktop { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-desktop { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-desktop { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-desktop { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-desktop { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-desktop { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-desktop { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-desktop { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-desktop { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-desktop { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-desktop { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-desktop { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-desktop { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-desktop { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-desktop { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-desktop { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-desktop { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-desktop { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-desktop { + margin-left: 100%; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .column.is-narrow-widescreen { + flex: none; } + html.theme--documenter-dark .column.is-full-widescreen { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-widescreen { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-widescreen { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-widescreen { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-widescreen { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-widescreen { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-widescreen { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-widescreen { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-widescreen { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-widescreen { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-widescreen { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-widescreen { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-widescreen { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-widescreen { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-widescreen { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-widescreen { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-widescreen { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-widescreen { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-widescreen { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-widescreen { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-widescreen { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-widescreen { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-widescreen { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-widescreen { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-widescreen { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-widescreen { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-widescreen { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-widescreen { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-widescreen { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-widescreen { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-widescreen { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-widescreen { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-widescreen { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-widescreen { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-widescreen { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-widescreen { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-widescreen { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-widescreen { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-widescreen { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-widescreen { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-widescreen { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-widescreen { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-widescreen { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-widescreen { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-widescreen { + margin-left: 100%; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .column.is-narrow-fullhd { + flex: none; } + html.theme--documenter-dark .column.is-full-fullhd { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-fullhd { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-fullhd { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-fullhd { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-fullhd { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-fullhd { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-fullhd { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-fullhd { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-fullhd { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-fullhd { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-fullhd { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-fullhd { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-fullhd { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-fullhd { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-fullhd { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-fullhd { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-fullhd { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-fullhd { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-fullhd { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-fullhd { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-fullhd { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-fullhd { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-fullhd { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-fullhd { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-fullhd { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-fullhd { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-fullhd { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-fullhd { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-fullhd { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-fullhd { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-fullhd { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-fullhd { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-fullhd { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-fullhd { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-fullhd { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-fullhd { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-fullhd { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-fullhd { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-fullhd { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-fullhd { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-fullhd { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-fullhd { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-fullhd { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-fullhd { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-fullhd { + margin-left: 100%; } } + html.theme--documenter-dark .columns { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + html.theme--documenter-dark .columns:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .columns:not(:last-child) { + margin-bottom: calc(1.5rem - 0.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: 0.25rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-1-mobile { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-1-tablet { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-1-tablet-only { + --columnGap: 0.25rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-1-touch { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-1-desktop { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-1-desktop-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-1-widescreen { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-1-widescreen-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-1-fullhd { + --columnGap: 0.25rem; } } + html.theme--documenter-dark .columns.is-variable.is-2 { + --columnGap: 0.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-2-mobile { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-2-tablet { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-2-tablet-only { + --columnGap: 0.5rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-2-touch { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-2-desktop { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-2-desktop-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-2-widescreen { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-2-widescreen-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-2-fullhd { + --columnGap: 0.5rem; } } + html.theme--documenter-dark .columns.is-variable.is-3 { + --columnGap: 0.75rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-3-mobile { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-3-tablet { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-3-tablet-only { + --columnGap: 0.75rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-3-touch { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-3-desktop { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-3-desktop-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-3-widescreen { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-3-widescreen-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-3-fullhd { + --columnGap: 0.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: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + html.theme--documenter-dark .tile.is-ancestor:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .tile.is-ancestor:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .tile.is-child { + margin: 0 !important; } + html.theme--documenter-dark .tile.is-parent { + padding: 0.75rem; } + html.theme--documenter-dark .tile.is-vertical { + flex-direction: column; } + html.theme--documenter-dark .tile.is-vertical > .tile.is-child:not(:last-child) { + margin-bottom: 1.5rem !important; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .tile:not(.is-child) { + display: flex; } + html.theme--documenter-dark .tile.is-1 { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .tile.is-2 { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .tile.is-3 { + flex: none; + width: 25%; } + html.theme--documenter-dark .tile.is-4 { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .tile.is-5 { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .tile.is-6 { + flex: none; + width: 50%; } + html.theme--documenter-dark .tile.is-7 { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .tile.is-8 { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .tile.is-9 { + flex: none; + width: 75%; } + html.theme--documenter-dark .tile.is-10 { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .tile.is-11 { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .tile.is-12 { + flex: none; + width: 100%; } } + html.theme--documenter-dark .hero { + align-items: stretch; + display: flex; + flex-direction: column; + justify-content: space-between; } + html.theme--documenter-dark .hero .navbar { + background: none; } + html.theme--documenter-dark .hero .tabs ul { + border-bottom: none; } + html.theme--documenter-dark .hero.is-white { + background-color: white; + 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: white; } } + html.theme--documenter-dark .hero.is-white .navbar-item, + html.theme--documenter-dark .hero.is-white .navbar-link { + color: rgba(10, 10, 10, 0.7); } + html.theme--documenter-dark .hero.is-white a.navbar-item:hover, html.theme--documenter-dark .hero.is-white a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-white .navbar-link:hover, + html.theme--documenter-dark .hero.is-white .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .tabs a { + color: #0a0a0a; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-white .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-white .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a { + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a:hover { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .hero.is-white.is-bold { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 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%, white 71%, white 100%); } } + html.theme--documenter-dark .hero.is-black { + background-color: #0a0a0a; + color: white; } + 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: white; } + 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: white; } + @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: black; + color: white; } + html.theme--documenter-dark .hero.is-black .tabs a { + color: white; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-black .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-black .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-black .tabs.is-boxed a, html.theme--documenter-dark .hero.is-black .tabs.is-toggle a { + color: white; } + 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: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-black.is-bold { + background-image: linear-gradient(141deg, black 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, black 0%, #0a0a0a 71%, #181616 100%); } } + html.theme--documenter-dark .hero.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-light strong { + color: inherit; } + html.theme--documenter-dark .hero.is-light .title { + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .subtitle { + color: rgba(40, 47, 47, 0.9); } + html.theme--documenter-dark .hero.is-light .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-light .subtitle strong { + color: #282f2f; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-light .navbar-menu { + background-color: #ecf0f1; } } + html.theme--documenter-dark .hero.is-light .navbar-item, + html.theme--documenter-dark .hero.is-light .navbar-link { + color: rgba(40, 47, 47, 0.7); } + html.theme--documenter-dark .hero.is-light a.navbar-item:hover, html.theme--documenter-dark .hero.is-light a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-light .navbar-link:hover, + html.theme--documenter-dark .hero.is-light .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .tabs a { + color: #282f2f; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-light .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-light .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a { + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a:hover { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-light.is-bold { + background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-light.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); } } + html.theme--documenter-dark .hero.is-dark, html.theme--documenter-dark .content kbd.hero { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-dark strong, + html.theme--documenter-dark .content kbd.hero strong { + color: inherit; } + html.theme--documenter-dark .hero.is-dark .title, html.theme--documenter-dark .content kbd.hero .title { + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .subtitle, html.theme--documenter-dark .content kbd.hero .subtitle { + color: rgba(236, 240, 241, 0.9); } + html.theme--documenter-dark .hero.is-dark .subtitle a:not(.button), html.theme--documenter-dark .content kbd.hero .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-dark .subtitle strong, + html.theme--documenter-dark .content kbd.hero .subtitle strong { + color: #ecf0f1; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-dark .navbar-menu, html.theme--documenter-dark .content kbd.hero .navbar-menu { + background-color: #282f2f; } } + html.theme--documenter-dark .hero.is-dark .navbar-item, html.theme--documenter-dark .content kbd.hero .navbar-item, + html.theme--documenter-dark .hero.is-dark .navbar-link, + html.theme--documenter-dark .content kbd.hero .navbar-link { + color: rgba(236, 240, 241, 0.7); } + html.theme--documenter-dark .hero.is-dark a.navbar-item:hover, html.theme--documenter-dark .content kbd.hero a.navbar-item:hover, html.theme--documenter-dark .hero.is-dark a.navbar-item.is-active, html.theme--documenter-dark .content kbd.hero a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-dark .navbar-link:hover, + html.theme--documenter-dark .content kbd.hero .navbar-link:hover, + html.theme--documenter-dark .hero.is-dark .navbar-link.is-active, + html.theme--documenter-dark .content kbd.hero .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .tabs a, html.theme--documenter-dark .content kbd.hero .tabs a { + color: #ecf0f1; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-dark .tabs a:hover, html.theme--documenter-dark .content kbd.hero .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-dark .tabs li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a { + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a:hover { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .hero.is-dark.is-bold, html.theme--documenter-dark .content kbd.hero.is-bold { + background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-dark.is-bold .navbar-menu, html.theme--documenter-dark .content kbd.hero.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); } } + html.theme--documenter-dark .hero.is-primary, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-primary strong, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink strong { + color: inherit; } + html.theme--documenter-dark .hero.is-primary .title, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .title { + color: #fff; } + html.theme--documenter-dark .hero.is-primary .subtitle, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-primary .subtitle a:not(.button), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-primary .subtitle strong, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-primary .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-menu { + background-color: #375a7f; } } + html.theme--documenter-dark .hero.is-primary .navbar-item, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-item, + html.theme--documenter-dark .hero.is-primary .navbar-link, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-primary a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, html.theme--documenter-dark .hero.is-primary a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-primary .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link:hover, + html.theme--documenter-dark .hero.is-primary .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .hero.is-primary .tabs a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-primary .tabs a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-primary .tabs li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .hero.is-primary.is-bold, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink { + background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-primary.is-bold .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu { + background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); } } + html.theme--documenter-dark .hero.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-link strong { + color: inherit; } + html.theme--documenter-dark .hero.is-link .title { + color: #fff; } + html.theme--documenter-dark .hero.is-link .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-link .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-link .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-link .navbar-menu { + background-color: #1abc9c; } } + html.theme--documenter-dark .hero.is-link .navbar-item, + html.theme--documenter-dark .hero.is-link .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-link a.navbar-item:hover, html.theme--documenter-dark .hero.is-link a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-link .navbar-link:hover, + html.theme--documenter-dark .hero.is-link .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .hero.is-link .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-link .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-link .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .hero.is-link.is-bold { + background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-link.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); } } + html.theme--documenter-dark .hero.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-info strong { + color: inherit; } + html.theme--documenter-dark .hero.is-info .title { + color: #fff; } + html.theme--documenter-dark .hero.is-info .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-info .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-info .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-info .navbar-menu { + background-color: #024c7d; } } + html.theme--documenter-dark .hero.is-info .navbar-item, + html.theme--documenter-dark .hero.is-info .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-info a.navbar-item:hover, html.theme--documenter-dark .hero.is-info a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-info .navbar-link:hover, + html.theme--documenter-dark .hero.is-info .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .hero.is-info .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-info .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-info .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .hero.is-info.is-bold { + background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-info.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); } } + html.theme--documenter-dark .hero.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-success strong { + color: inherit; } + html.theme--documenter-dark .hero.is-success .title { + color: #fff; } + html.theme--documenter-dark .hero.is-success .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-success .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-success .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-success .navbar-menu { + background-color: #008438; } } + html.theme--documenter-dark .hero.is-success .navbar-item, + html.theme--documenter-dark .hero.is-success .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-success a.navbar-item:hover, html.theme--documenter-dark .hero.is-success a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-success .navbar-link:hover, + html.theme--documenter-dark .hero.is-success .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .hero.is-success .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-success .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-success .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #008438; } + html.theme--documenter-dark .hero.is-success.is-bold { + background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-success.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); } } + html.theme--documenter-dark .hero.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-warning strong { + color: inherit; } + html.theme--documenter-dark .hero.is-warning .title { + color: #fff; } + html.theme--documenter-dark .hero.is-warning .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-warning .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-warning .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-warning .navbar-menu { + background-color: #ad8100; } } + html.theme--documenter-dark .hero.is-warning .navbar-item, + html.theme--documenter-dark .hero.is-warning .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-warning a.navbar-item:hover, html.theme--documenter-dark .hero.is-warning a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-warning .navbar-link:hover, + html.theme--documenter-dark .hero.is-warning .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .hero.is-warning .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-warning .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-warning .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .hero.is-warning.is-bold { + background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-warning.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); } } + html.theme--documenter-dark .hero.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-danger strong { + color: inherit; } + html.theme--documenter-dark .hero.is-danger .title { + color: #fff; } + html.theme--documenter-dark .hero.is-danger .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-danger .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-danger .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-danger .navbar-menu { + background-color: #9e1b0d; } } + html.theme--documenter-dark .hero.is-danger .navbar-item, + html.theme--documenter-dark .hero.is-danger .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-danger a.navbar-item:hover, html.theme--documenter-dark .hero.is-danger a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-danger .navbar-link:hover, + html.theme--documenter-dark .hero.is-danger .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .hero.is-danger .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-danger .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-danger .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .hero.is-danger.is-bold { + background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-danger.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); } } + html.theme--documenter-dark .hero.is-small .hero-body, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.hero .hero-body { + padding-bottom: 1.5rem; + padding-top: 1.5rem; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero.is-medium .hero-body { + padding-bottom: 9rem; + padding-top: 9rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero.is-large .hero-body { + padding-bottom: 18rem; + padding-top: 18rem; } } + html.theme--documenter-dark .hero.is-halfheight .hero-body, html.theme--documenter-dark .hero.is-fullheight .hero-body, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body { + align-items: center; + display: flex; } + html.theme--documenter-dark .hero.is-halfheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body > .container { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .hero.is-halfheight { + min-height: 50vh; } + html.theme--documenter-dark .hero.is-fullheight { + min-height: 100vh; } + html.theme--documenter-dark .hero-video { + overflow: hidden; } + html.theme--documenter-dark .hero-video video { + left: 50%; + min-height: 100%; + min-width: 100%; + position: absolute; + top: 50%; + transform: translate3d(-50%, -50%, 0); } + html.theme--documenter-dark .hero-video.is-transparent { + opacity: 0.3; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero-video { + display: none; } } + html.theme--documenter-dark .hero-buttons { + margin-top: 1.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero-buttons .button { + display: flex; } + html.theme--documenter-dark .hero-buttons .button:not(:last-child) { + margin-bottom: 0.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero-buttons { + display: flex; + justify-content: center; } + html.theme--documenter-dark .hero-buttons .button:not(:last-child) { + margin-right: 1.5rem; } } + html.theme--documenter-dark .hero-head, + html.theme--documenter-dark .hero-foot { + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .hero-body { + flex-grow: 1; + flex-shrink: 0; + padding: 3rem 1.5rem; } + html.theme--documenter-dark .section { + padding: 3rem 1.5rem; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .section.is-medium { + padding: 9rem 1.5rem; } + html.theme--documenter-dark .section.is-large { + padding: 18rem 1.5rem; } } + html.theme--documenter-dark .footer { + background-color: #282f2f; + padding: 3rem 1.5rem 6rem; } + html.theme--documenter-dark hr { + height: 1px; } + html.theme--documenter-dark h6 { + text-transform: uppercase; + letter-spacing: 0.5px; } + html.theme--documenter-dark .hero { + background-color: #343c3d; } + html.theme--documenter-dark a { + transition: all 200ms ease; } + html.theme--documenter-dark .button { + transition: all 200ms ease; + border-width: 1px; + color: white; } + 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: white; } + 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: white; + 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: white; } + 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: 0.4em; } + html.theme--documenter-dark .card .card-image img { + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .card .card-header { + box-shadow: none; + background-color: rgba(18, 18, 18, 0.2); + border-radius: 0.4em 0.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: white; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-light a:not(.button) { + color: #282f2f; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-dark a:not(.button), html.theme--documenter-dark .content kbd.notification a:not(.button) { + color: #ecf0f1; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-primary a:not(.button), html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-link a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-info a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-success a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-warning a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-danger a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .tag, html.theme--documenter-dark .content kbd, html.theme--documenter-dark .docstring > section > a.docs-sourcelink { + border-radius: 0.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: white; } + html.theme--documenter-dark .message-body { + border-width: 1px; + border-color: #343c3d; } + html.theme--documenter-dark .navbar { + border-radius: 0.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 0.4em 0.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: transparent; } + html.theme--documenter-dark .hero.is-black .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-light .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + 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: transparent; } + 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: transparent; } + html.theme--documenter-dark .hero.is-link .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-info .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-success .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-warning .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-danger .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark h1 .docs-heading-anchor, html.theme--documenter-dark h1 .docs-heading-anchor:hover, html.theme--documenter-dark h1 .docs-heading-anchor:visited, html.theme--documenter-dark h2 .docs-heading-anchor, html.theme--documenter-dark h2 .docs-heading-anchor:hover, html.theme--documenter-dark h2 .docs-heading-anchor:visited, html.theme--documenter-dark h3 .docs-heading-anchor, html.theme--documenter-dark h3 .docs-heading-anchor:hover, html.theme--documenter-dark h3 .docs-heading-anchor:visited, html.theme--documenter-dark h4 .docs-heading-anchor, html.theme--documenter-dark h4 .docs-heading-anchor:hover, html.theme--documenter-dark h4 .docs-heading-anchor:visited, html.theme--documenter-dark h5 .docs-heading-anchor, html.theme--documenter-dark h5 .docs-heading-anchor:hover, html.theme--documenter-dark h5 .docs-heading-anchor:visited, html.theme--documenter-dark h6 .docs-heading-anchor, html.theme--documenter-dark h6 .docs-heading-anchor:hover, html.theme--documenter-dark h6 .docs-heading-anchor:visited { + color: #f2f2f2; } + html.theme--documenter-dark h1 .docs-heading-anchor-permalink, html.theme--documenter-dark h2 .docs-heading-anchor-permalink, html.theme--documenter-dark h3 .docs-heading-anchor-permalink, html.theme--documenter-dark h4 .docs-heading-anchor-permalink, html.theme--documenter-dark h5 .docs-heading-anchor-permalink, html.theme--documenter-dark h6 .docs-heading-anchor-permalink { + visibility: hidden; + vertical-align: middle; + margin-left: 0.5em; + font-size: 0.7rem; } + html.theme--documenter-dark h1 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h2 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h3 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h4 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h5 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h6 .docs-heading-anchor-permalink::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f0c1"; } + html.theme--documenter-dark h1:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h2:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h3:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h4:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h5:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h6:hover .docs-heading-anchor-permalink { + visibility: visible; } + html.theme--documenter-dark .docs-light-only { + display: none !important; } + html.theme--documenter-dark pre { + position: relative; + overflow: hidden; } + html.theme--documenter-dark pre code, html.theme--documenter-dark pre code.hljs { + padding: 0 0.75rem !important; + overflow: auto; + display: block; } + html.theme--documenter-dark pre code:first-of-type, html.theme--documenter-dark pre code.hljs:first-of-type { + padding-top: 0.5rem !important; } + html.theme--documenter-dark pre code:last-of-type, html.theme--documenter-dark pre code.hljs:last-of-type { + padding-bottom: 0.5rem !important; } + html.theme--documenter-dark pre .copy-button { + opacity: 0.2; + transition: opacity 0.2s; + position: absolute; + right: 0em; + top: 0em; + padding: 0.5em; + width: 2.5em; + height: 2.5em; + background: transparent; + border: none; + font-family: "Font Awesome 5 Free"; + color: #fff; + cursor: pointer; + text-align: center; } + html.theme--documenter-dark pre .copy-button:focus, html.theme--documenter-dark pre .copy-button:hover { + opacity: 1; + background: rgba(255, 255, 255, 0.1); + color: #1abc9c; } + html.theme--documenter-dark pre .copy-button.success { + color: #259a12; + opacity: 1; } + html.theme--documenter-dark pre .copy-button.error { + color: #cb3c33; + opacity: 1; } + html.theme--documenter-dark pre:hover .copy-button { + opacity: 1; } + html.theme--documenter-dark .admonition { + background-color: #282f2f; + border-style: solid; + border-width: 1px; + border-color: #5e6d6f; + border-radius: 0.4em; + font-size: 15px; } + html.theme--documenter-dark .admonition strong { + color: currentColor; } + html.theme--documenter-dark .admonition.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.admonition { + font-size: 0.85em; } + html.theme--documenter-dark .admonition.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .admonition.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .admonition.is-default { + background-color: #282f2f; + border-color: #5e6d6f; } + html.theme--documenter-dark .admonition.is-default > .admonition-header { + background-color: #5e6d6f; } + 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; } + 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; } + 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; } + 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; } + 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; } + html.theme--documenter-dark .admonition-header { + background-color: #5e6d6f; + align-items: center; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.5rem 0.75rem; + position: relative; } + html.theme--documenter-dark .admonition-header:before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + margin-right: 0.75rem; + content: "\f06a"; } + html.theme--documenter-dark .admonition-body { + color: #fff; + padding: 0.5rem 0.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: transparent; + border: 1px solid #5e6d6f; + box-shadow: none; + max-width: 100%; } + html.theme--documenter-dark .docstring > header { + display: flex; + flex-grow: 1; + align-items: stretch; + padding: 0.5rem 0.75rem; + background-color: #282f2f; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + box-shadow: none; + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .docstring > header code { + background-color: transparent; } + html.theme--documenter-dark .docstring > header .docstring-binding { + margin-right: 0.3em; } + html.theme--documenter-dark .docstring > header .docstring-category { + margin-left: 0.3em; } + html.theme--documenter-dark .docstring > section { + position: relative; + padding: 0.75rem 0.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: 0.375rem; + bottom: 0.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; + border-bottom: 3px solid #9e1b0d; + padding: 10px 35px; + text-align: center; + font-size: 15px; } + html.theme--documenter-dark .outdated-warning-overlay .outdated-warning-closer { + position: absolute; + top: calc(50% - 10px); + right: 18px; + cursor: pointer; + width: 12px; } + html.theme--documenter-dark .outdated-warning-overlay a { + color: #1abc9c; } + html.theme--documenter-dark .outdated-warning-overlay a:hover { + color: #1dd2af; } + html.theme--documenter-dark .content pre { + border: 1px solid #5e6d6f; } + html.theme--documenter-dark .content code { + font-weight: inherit; } + html.theme--documenter-dark .content a code { + color: #1abc9c; } + html.theme--documenter-dark .content h1 code, html.theme--documenter-dark .content h2 code, html.theme--documenter-dark .content h3 code, html.theme--documenter-dark .content h4 code, html.theme--documenter-dark .content h5 code, html.theme--documenter-dark .content h6 code { + color: #f2f2f2; } + html.theme--documenter-dark .content table { + display: block; + width: initial; + max-width: 100%; + overflow-x: auto; } + html.theme--documenter-dark .content blockquote > ul:first-child, html.theme--documenter-dark .content blockquote > ol:first-child, html.theme--documenter-dark .content .admonition-body > ul:first-child, html.theme--documenter-dark .content .admonition-body > ol:first-child { + margin-top: 0; } + html.theme--documenter-dark pre, html.theme--documenter-dark code { + font-variant-ligatures: no-contextual; } + html.theme--documenter-dark .breadcrumb a.is-disabled { + cursor: default; + pointer-events: none; } + html.theme--documenter-dark .breadcrumb a.is-disabled, html.theme--documenter-dark .breadcrumb a.is-disabled:hover { + color: #f2f2f2; } + html.theme--documenter-dark .hljs { + background: initial !important; } + html.theme--documenter-dark .katex .katex-mathml { + top: 0; + right: 0; } + html.theme--documenter-dark .katex-display, html.theme--documenter-dark mjx-container, html.theme--documenter-dark .MathJax_Display { + margin: 0.5em 0 !important; } + html.theme--documenter-dark html { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; } + html.theme--documenter-dark li.no-marker { + list-style: none; } + html.theme--documenter-dark #documenter .docs-main > article { + overflow-wrap: break-word; } + html.theme--documenter-dark #documenter .docs-main > article .math-container { + overflow-x: auto; + overflow-y: hidden; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-main { + max-width: 52rem; + margin-left: 20rem; + padding-right: 1rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main { + width: 100%; } + html.theme--documenter-dark #documenter .docs-main > article { + max-width: 52rem; + margin-left: auto; + margin-right: auto; + margin-bottom: 1rem; + padding: 0 1rem; } + html.theme--documenter-dark #documenter .docs-main > header, html.theme--documenter-dark #documenter .docs-main > nav { + max-width: 100%; + width: 100%; + margin: 0; } } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar { + background-color: #1f2424; + border-bottom: 1px solid #5e6d6f; + z-index: 2; + min-height: 4rem; + margin-bottom: 1rem; + display: flex; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .breadcrumb { + flex-grow: 1; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right { + display: flex; + white-space: nowrap; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-icon, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + display: inline-block; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label { + padding: 0; + margin-left: 0.3em; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button { + margin: auto 0 auto 1rem; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + font-size: 1.5rem; + margin: auto 0 auto 1rem; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar > * { + margin: auto 0; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main header.docs-navbar { + position: sticky; + top: 0; + padding: 0 1rem; + /* For Headroom.js */ + transition-property: top, box-shadow; + -webkit-transition-property: top, box-shadow; + /* Safari */ + transition-duration: 0.3s; + -webkit-transition-duration: 0.3s; + /* Safari */ } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--not-top { + box-shadow: 0.2rem 0rem 0.4rem #171717; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } + 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; + /* Safari */ } } + html.theme--documenter-dark #documenter .docs-main section.footnotes { + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-main section.footnotes li .tag:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .docstring > section > a.docs-sourcelink:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .content kbd:first-child, html.theme--documenter-dark .content #documenter .docs-main section.footnotes li kbd:first-child { + margin-right: 1em; + margin-bottom: 0.4em; } + html.theme--documenter-dark #documenter .docs-main .docs-footer { + display: flex; + flex-wrap: wrap; + margin-left: 0; + margin-right: 0; + border-top: 1px solid #5e6d6f; + padding-top: 1rem; + padding-bottom: 1rem; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main .docs-footer { + padding-left: 1rem; + padding-right: 1rem; } } + html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage, html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-prevpage { + flex-grow: 1; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage { + text-align: right; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .flexbox-break { + flex-basis: 100%; + height: 0; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .footer-message { + font-size: 0.8em; + margin: 0.5em auto 0 auto; + text-align: center; } + html.theme--documenter-dark #documenter .docs-sidebar { + display: flex; + flex-direction: column; + color: #fff; + background-color: #282f2f; + border-right: 1px solid #5e6d6f; + padding: 0; + flex: 0 0 18rem; + z-index: 5; + font-size: 15px; + position: fixed; + left: -18rem; + width: 18rem; + height: 100%; + transition: left 0.3s; + /* Setting up a nicer theme style for the scrollbar */ } + html.theme--documenter-dark #documenter .docs-sidebar.visible { + left: 0; + box-shadow: 0.4rem 0rem 0.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; + /* Managing collapsible submenus */ } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li > .tocitem { + font-weight: bold; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li li { + font-size: 14.25px; + margin-left: 1em; + border-left: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input.collapse-toggle { + display: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.collapsed { + display: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ ul.collapsed { + display: block; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem { + display: flex; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label { + flex-grow: 2; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron { + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; + font-size: 11.25px; + margin-left: 1rem; + margin-top: auto; + margin-bottom: auto; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f054"; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before { + content: "\f078"; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem { + display: block; + padding: 0.5rem 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem:hover { + color: #fff; + background: #282f2f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu a.tocitem:hover, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem:hover { + color: #fff; + background-color: #32393a; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active { + border-top: 1px solid #5e6d6f; + border-bottom: 1px solid #5e6d6f; + background-color: #1f2424; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover { + background-color: #1f2424; + color: #fff; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover { + background-color: #32393a; + color: #fff; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li.is-active:first-child { + border-top: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal { + margin: 0 0.5rem 0.5rem; + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal li { + font-size: 12.75px; + border-left: none; + margin-left: 0; + margin-top: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem { + width: 100%; + padding: 0; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before { + content: "⚬"; + margin-right: 0.4em; } + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search { + margin: auto; + margin-top: 0.5rem; + margin-bottom: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + width: 14.4rem; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar { + width: .3rem; + background: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #3b4445; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover { + background: #4e5a5c; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-sidebar { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar { + width: .3rem; + background: none; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #3b4445; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover { + background: #4e5a5c; } } + html.theme--documenter-dark #documenter .docs-main #documenter-search-info { + margin-bottom: 1rem; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results { + list-style-type: circle; + list-style-position: outside; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results li { + margin-left: 2rem; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results .docs-highlight { + background-color: yellow; } + html.theme--documenter-dark { + background-color: #1f2424; + font-size: 16px; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + html.theme--documenter-dark .ansi span.sgr1 { + font-weight: bolder; } + html.theme--documenter-dark .ansi span.sgr2 { + font-weight: lighter; } + html.theme--documenter-dark .ansi span.sgr3 { + font-style: italic; } + html.theme--documenter-dark .ansi span.sgr4 { + text-decoration: underline; } + html.theme--documenter-dark .ansi span.sgr7 { + color: #1f2424; + background-color: #fff; } + html.theme--documenter-dark .ansi span.sgr8 { + color: transparent; } + html.theme--documenter-dark .ansi span.sgr8 span { + color: transparent; } + html.theme--documenter-dark .ansi span.sgr9 { + text-decoration: line-through; } + html.theme--documenter-dark .ansi span.sgr30 { + color: #242424; } + html.theme--documenter-dark .ansi span.sgr31 { + color: #f6705f; } + html.theme--documenter-dark .ansi span.sgr32 { + color: #4fb43a; } + html.theme--documenter-dark .ansi span.sgr33 { + color: #f4c72f; } + html.theme--documenter-dark .ansi span.sgr34 { + color: #7587f0; } + html.theme--documenter-dark .ansi span.sgr35 { + color: #bc89d3; } + html.theme--documenter-dark .ansi span.sgr36 { + color: #49b6ca; } + html.theme--documenter-dark .ansi span.sgr37 { + color: #b3bdbe; } + html.theme--documenter-dark .ansi span.sgr40 { + background-color: #242424; } + html.theme--documenter-dark .ansi span.sgr41 { + background-color: #f6705f; } + html.theme--documenter-dark .ansi span.sgr42 { + background-color: #4fb43a; } + html.theme--documenter-dark .ansi span.sgr43 { + background-color: #f4c72f; } + html.theme--documenter-dark .ansi span.sgr44 { + background-color: #7587f0; } + html.theme--documenter-dark .ansi span.sgr45 { + background-color: #bc89d3; } + html.theme--documenter-dark .ansi span.sgr46 { + background-color: #49b6ca; } + html.theme--documenter-dark .ansi span.sgr47 { + background-color: #b3bdbe; } + html.theme--documenter-dark .ansi span.sgr90 { + color: #92a0a2; } + html.theme--documenter-dark .ansi span.sgr91 { + color: #ff8674; } + html.theme--documenter-dark .ansi span.sgr92 { + color: #79d462; } + html.theme--documenter-dark .ansi span.sgr93 { + color: #ffe76b; } + html.theme--documenter-dark .ansi span.sgr94 { + color: #8a98ff; } + html.theme--documenter-dark .ansi span.sgr95 { + color: #d2a4e6; } + html.theme--documenter-dark .ansi span.sgr96 { + color: #6bc8db; } + html.theme--documenter-dark .ansi span.sgr97 { + color: #ecf0f1; } + html.theme--documenter-dark .ansi span.sgr100 { + background-color: #92a0a2; } + html.theme--documenter-dark .ansi span.sgr101 { + background-color: #ff8674; } + html.theme--documenter-dark .ansi span.sgr102 { + background-color: #79d462; } + html.theme--documenter-dark .ansi span.sgr103 { + background-color: #ffe76b; } + html.theme--documenter-dark .ansi span.sgr104 { + background-color: #8a98ff; } + html.theme--documenter-dark .ansi span.sgr105 { + background-color: #d2a4e6; } + html.theme--documenter-dark .ansi span.sgr106 { + background-color: #6bc8db; } + html.theme--documenter-dark .ansi span.sgr107 { + background-color: #ecf0f1; } + html.theme--documenter-dark code.language-julia-repl > span.hljs-meta { + color: #4fb43a; + font-weight: bolder; } + html.theme--documenter-dark .hljs { + background: #2b2b2b; + color: #f8f8f2; } + html.theme--documenter-dark .hljs-comment, + html.theme--documenter-dark .hljs-quote { + color: #d4d0ab; } + html.theme--documenter-dark .hljs-variable, + html.theme--documenter-dark .hljs-template-variable, + html.theme--documenter-dark .hljs-tag, + html.theme--documenter-dark .hljs-name, + html.theme--documenter-dark .hljs-selector-id, + html.theme--documenter-dark .hljs-selector-class, + html.theme--documenter-dark .hljs-regexp, + html.theme--documenter-dark .hljs-deletion { + color: #ffa07a; } + html.theme--documenter-dark .hljs-number, + html.theme--documenter-dark .hljs-built_in, + html.theme--documenter-dark .hljs-literal, + html.theme--documenter-dark .hljs-type, + html.theme--documenter-dark .hljs-params, + html.theme--documenter-dark .hljs-meta, + html.theme--documenter-dark .hljs-link { + color: #f5ab35; } + html.theme--documenter-dark .hljs-attribute { + color: #ffd700; } + html.theme--documenter-dark .hljs-string, + html.theme--documenter-dark .hljs-symbol, + html.theme--documenter-dark .hljs-bullet, + html.theme--documenter-dark .hljs-addition { + color: #abe338; } + html.theme--documenter-dark .hljs-title, + html.theme--documenter-dark .hljs-section { + color: #00e0e0; } + html.theme--documenter-dark .hljs-keyword, + html.theme--documenter-dark .hljs-selector-tag { + color: #dcc6e0; } + html.theme--documenter-dark .hljs-emphasis { + font-style: italic; } + html.theme--documenter-dark .hljs-strong { + font-weight: bold; } + @media screen and (-ms-high-contrast: active) { + html.theme--documenter-dark .hljs-addition, + html.theme--documenter-dark .hljs-attribute, + html.theme--documenter-dark .hljs-built_in, + html.theme--documenter-dark .hljs-bullet, + html.theme--documenter-dark .hljs-comment, + html.theme--documenter-dark .hljs-link, + html.theme--documenter-dark .hljs-literal, + html.theme--documenter-dark .hljs-meta, + html.theme--documenter-dark .hljs-number, + html.theme--documenter-dark .hljs-params, + html.theme--documenter-dark .hljs-string, + html.theme--documenter-dark .hljs-symbol, + html.theme--documenter-dark .hljs-type, + html.theme--documenter-dark .hljs-quote { + color: highlight; } + html.theme--documenter-dark .hljs-keyword, + html.theme--documenter-dark .hljs-selector-tag { + font-weight: bold; } } + html.theme--documenter-dark .hljs-subst { + color: #f8f8f2; } diff --git a/previews/PR349/assets/themes/documenter-light.css b/previews/PR349/assets/themes/documenter-light.css new file mode 100644 index 000000000..9595d5b8e --- /dev/null +++ b/previews/PR349/assets/themes/documenter-light.css @@ -0,0 +1,7738 @@ +@charset "UTF-8"; +/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */ +@keyframes spinAround { + from { + transform: rotate(0deg); } + to { + transform: rotate(359deg); } } + +.tabs, .pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis, .breadcrumb, .file, .button, .is-unselectable, .modal-close, .delete { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +.navbar-link:not(.is-arrowless)::after, .select:not(.is-multiple):not(.is-loading)::after { + border: 3px solid transparent; + border-radius: 2px; + border-right: 0; + border-top: 0; + content: " "; + display: block; + height: 0.625em; + margin-top: -0.4375em; + pointer-events: none; + position: absolute; + top: 50%; + transform: rotate(-45deg); + transform-origin: center; + width: 0.625em; } + +.admonition:not(:last-child), .tabs:not(:last-child), .message:not(:last-child), .list:not(:last-child), .level:not(:last-child), .breadcrumb:not(:last-child), .highlight:not(:last-child), .block:not(:last-child), .title:not(:last-child), +.subtitle:not(:last-child), .table-container:not(:last-child), .table:not(:last-child), .progress:not(:last-child), .notification:not(:last-child), .content:not(:last-child), .box:not(:last-child) { + margin-bottom: 1.5rem; } + +.modal-close, .delete { + -moz-appearance: none; + -webkit-appearance: none; + background-color: rgba(10, 10, 10, 0.2); + border: none; + border-radius: 290486px; + cursor: pointer; + pointer-events: auto; + display: inline-block; + flex-grow: 0; + flex-shrink: 0; + font-size: 0; + height: 20px; + max-height: 20px; + max-width: 20px; + min-height: 20px; + min-width: 20px; + outline: none; + position: relative; + vertical-align: top; + width: 20px; } + .modal-close::before, .delete::before, .modal-close::after, .delete::after { + background-color: white; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + .modal-close::before, .delete::before { + height: 2px; + width: 50%; } + .modal-close::after, .delete::after { + height: 50%; + width: 2px; } + .modal-close:hover, .delete:hover, .modal-close:focus, .delete:focus { + background-color: rgba(10, 10, 10, 0.3); } + .modal-close:active, .delete:active { + background-color: rgba(10, 10, 10, 0.4); } + .is-small.modal-close, #documenter .docs-sidebar form.docs-search > input.modal-close, .is-small.delete, #documenter .docs-sidebar form.docs-search > input.delete { + height: 16px; + max-height: 16px; + max-width: 16px; + min-height: 16px; + min-width: 16px; + width: 16px; } + .is-medium.modal-close, .is-medium.delete { + height: 24px; + max-height: 24px; + max-width: 24px; + min-height: 24px; + min-width: 24px; + width: 24px; } + .is-large.modal-close, .is-large.delete { + height: 32px; + max-height: 32px; + max-width: 32px; + min-height: 32px; + min-width: 32px; + width: 32px; } + +.control.is-loading::after, .select.is-loading::after, .loader, .button.is-loading::after { + animation: spinAround 500ms infinite linear; + border: 2px solid #dbdbdb; + border-radius: 290486px; + border-right-color: transparent; + border-top-color: transparent; + content: ""; + display: block; + height: 1em; + position: relative; + width: 1em; } + +.hero-video, .modal-background, .modal, .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img, +.image.is-square .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img, +.image.is-1by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img, +.image.is-5by4 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img, +.image.is-4by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img, +.image.is-3by2 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img, +.image.is-5by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img, +.image.is-16by9 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img, +.image.is-2by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img, +.image.is-3by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img, +.image.is-4by5 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img, +.image.is-3by4 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img, +.image.is-2by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img, +.image.is-3by5 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img, +.image.is-9by16 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img, +.image.is-1by2 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img, +.image.is-1by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, .is-overlay { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; } + +.pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis, .file-cta, +.file-name, .select select, .textarea, .input, #documenter .docs-sidebar form.docs-search > input, .button { + -moz-appearance: none; + -webkit-appearance: none; + align-items: center; + border: 1px solid transparent; + border-radius: 4px; + box-shadow: none; + display: inline-flex; + font-size: 1rem; + height: 2.25em; + justify-content: flex-start; + line-height: 1.5; + padding-bottom: calc(0.375em - 1px); + padding-left: calc(0.625em - 1px); + padding-right: calc(0.625em - 1px); + padding-top: calc(0.375em - 1px); + position: relative; + vertical-align: top; } + .pagination-previous:focus, + .pagination-next:focus, + .pagination-link:focus, + .pagination-ellipsis:focus, .file-cta:focus, + .file-name:focus, .select select:focus, .textarea:focus, .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .button:focus, .is-focused.pagination-previous, + .is-focused.pagination-next, + .is-focused.pagination-link, + .is-focused.pagination-ellipsis, .is-focused.file-cta, + .is-focused.file-name, .select select.is-focused, .is-focused.textarea, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-focused.button, .pagination-previous:active, + .pagination-next:active, + .pagination-link:active, + .pagination-ellipsis:active, .file-cta:active, + .file-name:active, .select select:active, .textarea:active, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .button:active, .is-active.pagination-previous, + .is-active.pagination-next, + .is-active.pagination-link, + .is-active.pagination-ellipsis, .is-active.file-cta, + .is-active.file-name, .select select.is-active, .is-active.textarea, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .is-active.button { + outline: none; } + .pagination-previous[disabled], + .pagination-next[disabled], + .pagination-link[disabled], + .pagination-ellipsis[disabled], .file-cta[disabled], + .file-name[disabled], .select select[disabled], .textarea[disabled], .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], .button[disabled], fieldset[disabled] .pagination-previous, + fieldset[disabled] .pagination-next, + fieldset[disabled] .pagination-link, + fieldset[disabled] .pagination-ellipsis, fieldset[disabled] .file-cta, + fieldset[disabled] .file-name, fieldset[disabled] .select select, .select fieldset[disabled] select, fieldset[disabled] .textarea, fieldset[disabled] .input, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, fieldset[disabled] .button { + cursor: not-allowed; } + +/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */ +html, +body, +p, +ol, +ul, +li, +dl, +dt, +dd, +blockquote, +figure, +fieldset, +legend, +textarea, +pre, +iframe, +hr, +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + padding: 0; } + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: 100%; + font-weight: normal; } + +ul { + list-style: none; } + +button, +input, +select, +textarea { + margin: 0; } + +html { + box-sizing: border-box; } + +*, *::before, *::after { + box-sizing: inherit; } + +img, +embed, +iframe, +object, +video { + height: auto; + max-width: 100%; } + +audio { + max-width: 100%; } + +iframe { + border: 0; } + +table { + border-collapse: collapse; + border-spacing: 0; } + +td, +th { + padding: 0; } + td:not([align]), + th:not([align]) { + text-align: left; } + +html { + background-color: white; + font-size: 16px; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + +article, +aside, +figure, +footer, +header, +hgroup, +section { + display: block; } + +body, +button, +input, +select, +textarea { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; } + +code, +pre { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; } + +body { + color: #222222; + 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: #000000; + font-size: 0.875em; + font-weight: normal; + padding: 0.1em; } + +hr { + background-color: whitesmoke; + 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: 0.875em; } + +span { + font-style: inherit; + font-weight: inherit; } + +strong { + color: #222222; + font-weight: 700; } + +fieldset { + border: none; } + +pre { + -webkit-overflow-scrolling: touch; + background-color: whitesmoke; + color: #222222; + font-size: 0.875em; + overflow-x: auto; + padding: 1.25rem 1.5rem; + white-space: pre; + word-wrap: normal; } + pre code { + background-color: transparent; + color: currentColor; + font-size: 1em; + padding: 0; } + +table td, +table th { + vertical-align: top; } + table td:not([align]), + table th:not([align]) { + text-align: left; } + +table th { + color: #222222; } + +.is-clearfix::after { + clear: both; + content: " "; + display: table; } + +.is-pulled-left { + float: left !important; } + +.is-pulled-right { + float: right !important; } + +.is-clipped { + overflow: hidden !important; } + +.is-size-1 { + font-size: 3rem !important; } + +.is-size-2 { + font-size: 2.5rem !important; } + +.is-size-3 { + font-size: 2rem !important; } + +.is-size-4 { + font-size: 1.5rem !important; } + +.is-size-5 { + font-size: 1.25rem !important; } + +.is-size-6 { + font-size: 1rem !important; } + +.is-size-7, .docstring > section > a.docs-sourcelink { + font-size: 0.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: 0.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: 0.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: 0.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: 0.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: 0.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: 0.75rem !important; } } + +.has-text-centered { + text-align: center !important; } + +.has-text-justified { + text-align: justify !important; } + +.has-text-left { + text-align: left !important; } + +.has-text-right { + text-align: right !important; } + +@media screen and (max-width: 768px) { + .has-text-centered-mobile { + text-align: center !important; } } + +@media screen and (min-width: 769px), print { + .has-text-centered-tablet { + text-align: center !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-centered-tablet-only { + text-align: center !important; } } + +@media screen and (max-width: 1055px) { + .has-text-centered-touch { + text-align: center !important; } } + +@media screen and (min-width: 1056px) { + .has-text-centered-desktop { + text-align: center !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-centered-desktop-only { + text-align: center !important; } } + +@media screen and (min-width: 1216px) { + .has-text-centered-widescreen { + text-align: center !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-centered-widescreen-only { + text-align: center !important; } } + +@media screen and (min-width: 1408px) { + .has-text-centered-fullhd { + text-align: center !important; } } + +@media screen and (max-width: 768px) { + .has-text-justified-mobile { + text-align: justify !important; } } + +@media screen and (min-width: 769px), print { + .has-text-justified-tablet { + text-align: justify !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-justified-tablet-only { + text-align: justify !important; } } + +@media screen and (max-width: 1055px) { + .has-text-justified-touch { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) { + .has-text-justified-desktop { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-justified-desktop-only { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) { + .has-text-justified-widescreen { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-justified-widescreen-only { + text-align: justify !important; } } + +@media screen and (min-width: 1408px) { + .has-text-justified-fullhd { + text-align: justify !important; } } + +@media screen and (max-width: 768px) { + .has-text-left-mobile { + text-align: left !important; } } + +@media screen and (min-width: 769px), print { + .has-text-left-tablet { + text-align: left !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-left-tablet-only { + text-align: left !important; } } + +@media screen and (max-width: 1055px) { + .has-text-left-touch { + text-align: left !important; } } + +@media screen and (min-width: 1056px) { + .has-text-left-desktop { + text-align: left !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-left-desktop-only { + text-align: left !important; } } + +@media screen and (min-width: 1216px) { + .has-text-left-widescreen { + text-align: left !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-left-widescreen-only { + text-align: left !important; } } + +@media screen and (min-width: 1408px) { + .has-text-left-fullhd { + text-align: left !important; } } + +@media screen and (max-width: 768px) { + .has-text-right-mobile { + text-align: right !important; } } + +@media screen and (min-width: 769px), print { + .has-text-right-tablet { + text-align: right !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-right-tablet-only { + text-align: right !important; } } + +@media screen and (max-width: 1055px) { + .has-text-right-touch { + text-align: right !important; } } + +@media screen and (min-width: 1056px) { + .has-text-right-desktop { + text-align: right !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-right-desktop-only { + text-align: right !important; } } + +@media screen and (min-width: 1216px) { + .has-text-right-widescreen { + text-align: right !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-right-widescreen-only { + text-align: right !important; } } + +@media screen and (min-width: 1408px) { + .has-text-right-fullhd { + text-align: right !important; } } + +.is-capitalized { + text-transform: capitalize !important; } + +.is-lowercase { + text-transform: lowercase !important; } + +.is-uppercase { + text-transform: uppercase !important; } + +.is-italic { + font-style: italic !important; } + +.has-text-white { + color: white !important; } + +a.has-text-white:hover, a.has-text-white:focus { + color: #e6e6e6 !important; } + +.has-background-white { + background-color: white !important; } + +.has-text-black { + color: #0a0a0a !important; } + +a.has-text-black:hover, a.has-text-black:focus { + color: black !important; } + +.has-background-black { + background-color: #0a0a0a !important; } + +.has-text-light { + color: whitesmoke !important; } + +a.has-text-light:hover, a.has-text-light:focus { + color: #dbdbdb !important; } + +.has-background-light { + background-color: whitesmoke !important; } + +.has-text-dark { + color: #363636 !important; } + +a.has-text-dark:hover, a.has-text-dark:focus { + color: #1c1c1c !important; } + +.has-background-dark { + background-color: #363636 !important; } + +.has-text-primary { + color: #4eb5de !important; } + +a.has-text-primary:hover, a.has-text-primary:focus { + color: #27a1d2 !important; } + +.has-background-primary { + background-color: #4eb5de !important; } + +.has-text-link { + color: #2e63b8 !important; } + +a.has-text-link:hover, a.has-text-link:focus { + color: #244d8f !important; } + +.has-background-link { + background-color: #2e63b8 !important; } + +.has-text-info { + color: #209cee !important; } + +a.has-text-info:hover, a.has-text-info:focus { + color: #1081cb !important; } + +.has-background-info { + background-color: #209cee !important; } + +.has-text-success { + color: #22c35b !important; } + +a.has-text-success:hover, a.has-text-success:focus { + color: #1a9847 !important; } + +.has-background-success { + background-color: #22c35b !important; } + +.has-text-warning { + color: #ffdd57 !important; } + +a.has-text-warning:hover, a.has-text-warning:focus { + color: #ffd324 !important; } + +.has-background-warning { + background-color: #ffdd57 !important; } + +.has-text-danger { + color: #da0b00 !important; } + +a.has-text-danger:hover, a.has-text-danger:focus { + color: #a70800 !important; } + +.has-background-danger { + background-color: #da0b00 !important; } + +.has-text-black-bis { + color: #121212 !important; } + +.has-background-black-bis { + background-color: #121212 !important; } + +.has-text-black-ter { + color: #242424 !important; } + +.has-background-black-ter { + background-color: #242424 !important; } + +.has-text-grey-darker { + color: #363636 !important; } + +.has-background-grey-darker { + background-color: #363636 !important; } + +.has-text-grey-dark { + color: #4a4a4a !important; } + +.has-background-grey-dark { + background-color: #4a4a4a !important; } + +.has-text-grey { + color: #6b6b6b !important; } + +.has-background-grey { + background-color: #6b6b6b !important; } + +.has-text-grey-light { + color: #b5b5b5 !important; } + +.has-background-grey-light { + background-color: #b5b5b5 !important; } + +.has-text-grey-lighter { + color: #dbdbdb !important; } + +.has-background-grey-lighter { + background-color: #dbdbdb !important; } + +.has-text-white-ter { + color: whitesmoke !important; } + +.has-background-white-ter { + background-color: whitesmoke !important; } + +.has-text-white-bis { + color: #fafafa !important; } + +.has-background-white-bis { + background-color: #fafafa !important; } + +.has-text-weight-light { + font-weight: 300 !important; } + +.has-text-weight-normal { + font-weight: 400 !important; } + +.has-text-weight-medium { + font-weight: 500 !important; } + +.has-text-weight-semibold { + font-weight: 600 !important; } + +.has-text-weight-bold { + font-weight: 700 !important; } + +.is-family-primary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-secondary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-sans-serif { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-monospace { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-family-code { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-block { + display: block !important; } + +@media screen and (max-width: 768px) { + .is-block-mobile { + display: block !important; } } + +@media screen and (min-width: 769px), print { + .is-block-tablet { + display: block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-block-tablet-only { + display: block !important; } } + +@media screen and (max-width: 1055px) { + .is-block-touch { + display: block !important; } } + +@media screen and (min-width: 1056px) { + .is-block-desktop { + display: block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-block-desktop-only { + display: block !important; } } + +@media screen and (min-width: 1216px) { + .is-block-widescreen { + display: block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-block-widescreen-only { + display: block !important; } } + +@media screen and (min-width: 1408px) { + .is-block-fullhd { + display: block !important; } } + +.is-flex { + display: flex !important; } + +@media screen and (max-width: 768px) { + .is-flex-mobile { + display: flex !important; } } + +@media screen and (min-width: 769px), print { + .is-flex-tablet { + display: flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-flex-tablet-only { + display: flex !important; } } + +@media screen and (max-width: 1055px) { + .is-flex-touch { + display: flex !important; } } + +@media screen and (min-width: 1056px) { + .is-flex-desktop { + display: flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-flex-desktop-only { + display: flex !important; } } + +@media screen and (min-width: 1216px) { + .is-flex-widescreen { + display: flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-flex-widescreen-only { + display: flex !important; } } + +@media screen and (min-width: 1408px) { + .is-flex-fullhd { + display: flex !important; } } + +.is-inline { + display: inline !important; } + +@media screen and (max-width: 768px) { + .is-inline-mobile { + display: inline !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-tablet { + display: inline !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-tablet-only { + display: inline !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-touch { + display: inline !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-desktop { + display: inline !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-desktop-only { + display: inline !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-widescreen { + display: inline !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-widescreen-only { + display: inline !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-fullhd { + display: inline !important; } } + +.is-inline-block { + display: inline-block !important; } + +@media screen and (max-width: 768px) { + .is-inline-block-mobile { + display: inline-block !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-block-tablet { + display: inline-block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-block-tablet-only { + display: inline-block !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-block-touch { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-block-desktop { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-block-desktop-only { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-block-widescreen { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-block-widescreen-only { + display: inline-block !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-block-fullhd { + display: inline-block !important; } } + +.is-inline-flex { + display: inline-flex !important; } + +@media screen and (max-width: 768px) { + .is-inline-flex-mobile { + display: inline-flex !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-flex-tablet { + display: inline-flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-flex-tablet-only { + display: inline-flex !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-flex-touch { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-flex-desktop { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-flex-desktop-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-flex-widescreen { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-flex-widescreen-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-flex-fullhd { + display: inline-flex !important; } } + +.is-hidden { + display: none !important; } + +.is-sr-only { + border: none !important; + clip: rect(0, 0, 0, 0) !important; + height: 0.01em !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + white-space: nowrap !important; + width: 0.01em !important; } + +@media screen and (max-width: 768px) { + .is-hidden-mobile { + display: none !important; } } + +@media screen and (min-width: 769px), print { + .is-hidden-tablet { + display: none !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-hidden-tablet-only { + display: none !important; } } + +@media screen and (max-width: 1055px) { + .is-hidden-touch { + display: none !important; } } + +@media screen and (min-width: 1056px) { + .is-hidden-desktop { + display: none !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-hidden-desktop-only { + display: none !important; } } + +@media screen and (min-width: 1216px) { + .is-hidden-widescreen { + display: none !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-hidden-widescreen-only { + display: none !important; } } + +@media screen and (min-width: 1408px) { + .is-hidden-fullhd { + display: none !important; } } + +.is-invisible { + visibility: hidden !important; } + +@media screen and (max-width: 768px) { + .is-invisible-mobile { + visibility: hidden !important; } } + +@media screen and (min-width: 769px), print { + .is-invisible-tablet { + visibility: hidden !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-invisible-tablet-only { + visibility: hidden !important; } } + +@media screen and (max-width: 1055px) { + .is-invisible-touch { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) { + .is-invisible-desktop { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-invisible-desktop-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) { + .is-invisible-widescreen { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-invisible-widescreen-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1408px) { + .is-invisible-fullhd { + visibility: hidden !important; } } + +.is-marginless { + margin: 0 !important; } + +.is-paddingless { + padding: 0 !important; } + +.is-radiusless { + border-radius: 0 !important; } + +.is-shadowless { + box-shadow: none !important; } + +.is-relative { + position: relative !important; } + +.box { + background-color: white; + border-radius: 6px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #222222; + display: block; + padding: 1.25rem; } + +a.box:hover, a.box:focus { + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #2e63b8; } + +a.box:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #2e63b8; } + +.button { + background-color: white; + border-color: #dbdbdb; + border-width: 1px; + color: #363636; + cursor: pointer; + justify-content: center; + padding-bottom: calc(0.375em - 1px); + padding-left: 0.75em; + padding-right: 0.75em; + padding-top: calc(0.375em - 1px); + text-align: center; + white-space: nowrap; } + .button strong { + color: inherit; } + .button .icon, .button .icon.is-small, .button #documenter .docs-sidebar form.docs-search > input.icon, #documenter .docs-sidebar .button form.docs-search > input.icon, .button .icon.is-medium, .button .icon.is-large { + height: 1.5em; + width: 1.5em; } + .button .icon:first-child:not(:last-child) { + margin-left: calc(-0.375em - 1px); + margin-right: 0.1875em; } + .button .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: calc(-0.375em - 1px); } + .button .icon:first-child:last-child { + margin-left: calc(-0.375em - 1px); + margin-right: calc(-0.375em - 1px); } + .button:hover, .button.is-hovered { + border-color: #b5b5b5; + color: #363636; } + .button:focus, .button.is-focused { + border-color: #3c5dcd; + color: #363636; } + .button:focus:not(:active), .button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .button:active, .button.is-active { + border-color: #4a4a4a; + color: #363636; } + .button.is-text { + background-color: transparent; + border-color: transparent; + color: #222222; + text-decoration: underline; } + .button.is-text:hover, .button.is-text.is-hovered, .button.is-text:focus, .button.is-text.is-focused { + background-color: whitesmoke; + color: #222222; } + .button.is-text:active, .button.is-text.is-active { + background-color: #e8e8e8; + color: #222222; } + .button.is-text[disabled], fieldset[disabled] .button.is-text { + background-color: transparent; + border-color: transparent; + box-shadow: none; } + .button.is-white { + background-color: white; + 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: white; + border-color: transparent; + box-shadow: none; } + .button.is-white.is-inverted { + background-color: #0a0a0a; + color: white; } + .button.is-white.is-inverted:hover, .button.is-white.is-inverted.is-hovered { + background-color: black; } + .button.is-white.is-inverted[disabled], fieldset[disabled] .button.is-white.is-inverted { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; + color: white; } + .button.is-white.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + .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: white; + border-color: white; + color: #0a0a0a; } + .button.is-white.is-outlined.is-loading::after { + border-color: transparent transparent white white !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: white; + box-shadow: none; + color: white; } + .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: white; } + .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 white white !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: white; } + .button.is-black:hover, .button.is-black.is-hovered { + background-color: #040404; + border-color: transparent; + color: white; } + .button.is-black:focus, .button.is-black.is-focused { + border-color: transparent; + color: white; } + .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: black; + border-color: transparent; + color: white; } + .button.is-black[disabled], fieldset[disabled] .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; } + .button.is-black.is-inverted { + background-color: white; + 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: white; + border-color: transparent; + box-shadow: none; + color: #0a0a0a; } + .button.is-black.is-loading::after { + border-color: transparent transparent white white !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: white; } + .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 white white !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: white; + color: white; } + .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: white; + 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: white; + box-shadow: none; + color: white; } + .button.is-light { + background-color: whitesmoke; + border-color: transparent; + color: #363636; } + .button.is-light:hover, .button.is-light.is-hovered { + background-color: #eeeeee; + border-color: transparent; + color: #363636; } + .button.is-light:focus, .button.is-light.is-focused { + border-color: transparent; + color: #363636; } + .button.is-light:focus:not(:active), .button.is-light.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } + .button.is-light:active, .button.is-light.is-active { + background-color: #e8e8e8; + border-color: transparent; + color: #363636; } + .button.is-light[disabled], fieldset[disabled] .button.is-light { + background-color: whitesmoke; + border-color: transparent; + box-shadow: none; } + .button.is-light.is-inverted { + background-color: #363636; + color: whitesmoke; } + .button.is-light.is-inverted:hover, .button.is-light.is-inverted.is-hovered { + background-color: #292929; } + .button.is-light.is-inverted[disabled], fieldset[disabled] .button.is-light.is-inverted { + background-color: #363636; + border-color: transparent; + box-shadow: none; + color: whitesmoke; } + .button.is-light.is-loading::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-light.is-outlined { + background-color: transparent; + border-color: whitesmoke; + color: whitesmoke; } + .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: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .button.is-light.is-outlined.is-loading::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-light.is-outlined.is-loading:hover::after, .button.is-light.is-outlined.is-loading.is-hovered::after, .button.is-light.is-outlined.is-loading:focus::after, .button.is-light.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-light.is-outlined[disabled], fieldset[disabled] .button.is-light.is-outlined { + background-color: transparent; + border-color: whitesmoke; + box-shadow: none; + color: whitesmoke; } + .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #363636; + color: #363636; } + .button.is-light.is-inverted.is-outlined:hover, .button.is-light.is-inverted.is-outlined.is-hovered, .button.is-light.is-inverted.is-outlined:focus, .button.is-light.is-inverted.is-outlined.is-focused { + background-color: #363636; + color: whitesmoke; } + .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 whitesmoke whitesmoke !important; } + .button.is-light.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #363636; + box-shadow: none; + color: #363636; } + .button.is-dark, .content kbd.button { + background-color: #363636; + border-color: transparent; + color: whitesmoke; } + .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: whitesmoke; } + .button.is-dark:focus, .content kbd.button:focus, .button.is-dark.is-focused, .content kbd.button.is-focused { + border-color: transparent; + color: whitesmoke; } + .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: whitesmoke; } + .button.is-dark[disabled], .content kbd.button[disabled], fieldset[disabled] .button.is-dark, fieldset[disabled] .content kbd.button, .content fieldset[disabled] kbd.button { + background-color: #363636; + border-color: transparent; + box-shadow: none; } + .button.is-dark.is-inverted, .content kbd.button.is-inverted { + background-color: whitesmoke; + color: #363636; } + .button.is-dark.is-inverted:hover, .content kbd.button.is-inverted:hover, .button.is-dark.is-inverted.is-hovered, .content kbd.button.is-inverted.is-hovered { + background-color: #e8e8e8; } + .button.is-dark.is-inverted[disabled], .content kbd.button.is-inverted[disabled], fieldset[disabled] .button.is-dark.is-inverted, fieldset[disabled] .content kbd.button.is-inverted, .content fieldset[disabled] kbd.button.is-inverted { + background-color: whitesmoke; + border-color: transparent; + box-shadow: none; + color: #363636; } + .button.is-dark.is-loading::after, .content kbd.button.is-loading::after { + border-color: transparent transparent whitesmoke whitesmoke !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: whitesmoke; } + .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 whitesmoke whitesmoke !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: whitesmoke; + color: whitesmoke; } + .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: whitesmoke; + 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: whitesmoke; + box-shadow: none; + color: whitesmoke; } + .button.is-primary, .docstring > section > a.button.docs-sourcelink { + background-color: #4eb5de; + border-color: transparent; + color: #fff; } + .button.is-primary:hover, .docstring > section > a.button.docs-sourcelink:hover, .button.is-primary.is-hovered, .docstring > section > a.button.is-hovered.docs-sourcelink { + background-color: #43b1dc; + border-color: transparent; + color: #fff; } + .button.is-primary:focus, .docstring > section > a.button.docs-sourcelink:focus, .button.is-primary.is-focused, .docstring > section > a.button.is-focused.docs-sourcelink { + border-color: transparent; + color: #fff; } + .button.is-primary:focus:not(:active), .docstring > section > a.button.docs-sourcelink:focus:not(:active), .button.is-primary.is-focused:not(:active), .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) { + box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } + .button.is-primary:active, .docstring > section > a.button.docs-sourcelink:active, .button.is-primary.is-active, .docstring > section > a.button.is-active.docs-sourcelink { + background-color: #39acda; + border-color: transparent; + color: #fff; } + .button.is-primary[disabled], .docstring > section > a.button.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary, fieldset[disabled] .docstring > section > a.button.docs-sourcelink { + background-color: #4eb5de; + border-color: transparent; + box-shadow: none; } + .button.is-primary.is-inverted, .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + color: #4eb5de; } + .button.is-primary.is-inverted:hover, .docstring > section > a.button.is-inverted.docs-sourcelink:hover, .button.is-primary.is-inverted.is-hovered, .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink { + background-color: #f2f2f2; } + .button.is-primary.is-inverted[disabled], .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-inverted, fieldset[disabled] .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #4eb5de; } + .button.is-primary.is-loading::after, .docstring > section > a.button.is-loading.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-primary.is-outlined, .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #4eb5de; + color: #4eb5de; } + .button.is-primary.is-outlined:hover, .docstring > section > a.button.is-outlined.docs-sourcelink:hover, .button.is-primary.is-outlined.is-hovered, .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-outlined:focus, .docstring > section > a.button.is-outlined.docs-sourcelink:focus, .button.is-primary.is-outlined.is-focused, .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink { + background-color: #4eb5de; + border-color: #4eb5de; + color: #fff; } + .button.is-primary.is-outlined.is-loading::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after { + border-color: transparent transparent #4eb5de #4eb5de !important; } + .button.is-primary.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-primary.is-outlined[disabled], .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-outlined, fieldset[disabled] .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #4eb5de; + box-shadow: none; + color: #4eb5de; } + .button.is-primary.is-inverted.is-outlined, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-primary.is-inverted.is-outlined:hover, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, .button.is-primary.is-inverted.is-outlined.is-hovered, .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-inverted.is-outlined:focus, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, .button.is-primary.is-inverted.is-outlined.is-focused, .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink { + background-color: #fff; + color: #4eb5de; } + .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #4eb5de #4eb5de !important; } + .button.is-primary.is-inverted.is-outlined[disabled], .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-inverted.is-outlined, fieldset[disabled] .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-link { + background-color: #2e63b8; + border-color: transparent; + color: #fff; } + .button.is-link:hover, .button.is-link.is-hovered { + background-color: #2b5eae; + border-color: transparent; + color: #fff; } + .button.is-link:focus, .button.is-link.is-focused { + border-color: transparent; + color: #fff; } + .button.is-link:focus:not(:active), .button.is-link.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .button.is-link:active, .button.is-link.is-active { + background-color: #2958a4; + border-color: transparent; + color: #fff; } + .button.is-link[disabled], fieldset[disabled] .button.is-link { + background-color: #2e63b8; + border-color: transparent; + box-shadow: none; } + .button.is-link.is-inverted { + background-color: #fff; + color: #2e63b8; } + .button.is-link.is-inverted:hover, .button.is-link.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-link.is-inverted[disabled], fieldset[disabled] .button.is-link.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #2e63b8; } + .button.is-link.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-link.is-outlined { + background-color: transparent; + border-color: #2e63b8; + color: #2e63b8; } + .button.is-link.is-outlined:hover, .button.is-link.is-outlined.is-hovered, .button.is-link.is-outlined:focus, .button.is-link.is-outlined.is-focused { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + .button.is-link.is-outlined.is-loading::after { + border-color: transparent transparent #2e63b8 #2e63b8 !important; } + .button.is-link.is-outlined.is-loading:hover::after, .button.is-link.is-outlined.is-loading.is-hovered::after, .button.is-link.is-outlined.is-loading:focus::after, .button.is-link.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-link.is-outlined[disabled], fieldset[disabled] .button.is-link.is-outlined { + background-color: transparent; + border-color: #2e63b8; + box-shadow: none; + color: #2e63b8; } + .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-link.is-inverted.is-outlined:hover, .button.is-link.is-inverted.is-outlined.is-hovered, .button.is-link.is-inverted.is-outlined:focus, .button.is-link.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #2e63b8; } + .button.is-link.is-inverted.is-outlined.is-loading:hover::after, .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-link.is-inverted.is-outlined.is-loading:focus::after, .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #2e63b8 #2e63b8 !important; } + .button.is-link.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-info { + background-color: #209cee; + border-color: transparent; + color: #fff; } + .button.is-info:hover, .button.is-info.is-hovered { + background-color: #1497ed; + border-color: transparent; + color: #fff; } + .button.is-info:focus, .button.is-info.is-focused { + border-color: transparent; + color: #fff; } + .button.is-info:focus:not(:active), .button.is-info.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } + .button.is-info:active, .button.is-info.is-active { + background-color: #1190e3; + border-color: transparent; + color: #fff; } + .button.is-info[disabled], fieldset[disabled] .button.is-info { + background-color: #209cee; + border-color: transparent; + box-shadow: none; } + .button.is-info.is-inverted { + background-color: #fff; + color: #209cee; } + .button.is-info.is-inverted:hover, .button.is-info.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-info.is-inverted[disabled], fieldset[disabled] .button.is-info.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #209cee; } + .button.is-info.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-info.is-outlined { + background-color: transparent; + border-color: #209cee; + color: #209cee; } + .button.is-info.is-outlined:hover, .button.is-info.is-outlined.is-hovered, .button.is-info.is-outlined:focus, .button.is-info.is-outlined.is-focused { + background-color: #209cee; + border-color: #209cee; + color: #fff; } + .button.is-info.is-outlined.is-loading::after { + border-color: transparent transparent #209cee #209cee !important; } + .button.is-info.is-outlined.is-loading:hover::after, .button.is-info.is-outlined.is-loading.is-hovered::after, .button.is-info.is-outlined.is-loading:focus::after, .button.is-info.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-info.is-outlined[disabled], fieldset[disabled] .button.is-info.is-outlined { + background-color: transparent; + border-color: #209cee; + box-shadow: none; + color: #209cee; } + .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-info.is-inverted.is-outlined:hover, .button.is-info.is-inverted.is-outlined.is-hovered, .button.is-info.is-inverted.is-outlined:focus, .button.is-info.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #209cee; } + .button.is-info.is-inverted.is-outlined.is-loading:hover::after, .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-info.is-inverted.is-outlined.is-loading:focus::after, .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #209cee #209cee !important; } + .button.is-info.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-success { + background-color: #22c35b; + border-color: transparent; + color: #fff; } + .button.is-success:hover, .button.is-success.is-hovered { + background-color: #20b856; + border-color: transparent; + color: #fff; } + .button.is-success:focus, .button.is-success.is-focused { + border-color: transparent; + color: #fff; } + .button.is-success:focus:not(:active), .button.is-success.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } + .button.is-success:active, .button.is-success.is-active { + background-color: #1ead51; + border-color: transparent; + color: #fff; } + .button.is-success[disabled], fieldset[disabled] .button.is-success { + background-color: #22c35b; + border-color: transparent; + box-shadow: none; } + .button.is-success.is-inverted { + background-color: #fff; + color: #22c35b; } + .button.is-success.is-inverted:hover, .button.is-success.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-success.is-inverted[disabled], fieldset[disabled] .button.is-success.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #22c35b; } + .button.is-success.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-success.is-outlined { + background-color: transparent; + border-color: #22c35b; + color: #22c35b; } + .button.is-success.is-outlined:hover, .button.is-success.is-outlined.is-hovered, .button.is-success.is-outlined:focus, .button.is-success.is-outlined.is-focused { + background-color: #22c35b; + border-color: #22c35b; + color: #fff; } + .button.is-success.is-outlined.is-loading::after { + border-color: transparent transparent #22c35b #22c35b !important; } + .button.is-success.is-outlined.is-loading:hover::after, .button.is-success.is-outlined.is-loading.is-hovered::after, .button.is-success.is-outlined.is-loading:focus::after, .button.is-success.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-success.is-outlined[disabled], fieldset[disabled] .button.is-success.is-outlined { + background-color: transparent; + border-color: #22c35b; + box-shadow: none; + color: #22c35b; } + .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-success.is-inverted.is-outlined:hover, .button.is-success.is-inverted.is-outlined.is-hovered, .button.is-success.is-inverted.is-outlined:focus, .button.is-success.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #22c35b; } + .button.is-success.is-inverted.is-outlined.is-loading:hover::after, .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-success.is-inverted.is-outlined.is-loading:focus::after, .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #22c35b #22c35b !important; } + .button.is-success.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-warning { + background-color: #ffdd57; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:hover, .button.is-warning.is-hovered { + background-color: #ffda4a; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:focus, .button.is-warning.is-focused { + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:focus:not(:active), .button.is-warning.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } + .button.is-warning:active, .button.is-warning.is-active { + background-color: #ffd83e; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning[disabled], fieldset[disabled] .button.is-warning { + background-color: #ffdd57; + border-color: transparent; + box-shadow: none; } + .button.is-warning.is-inverted { + background-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .button.is-warning.is-inverted:hover, .button.is-warning.is-inverted.is-hovered { + background-color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-inverted[disabled], fieldset[disabled] .button.is-warning.is-inverted { + background-color: rgba(0, 0, 0, 0.7); + border-color: transparent; + box-shadow: none; + color: #ffdd57; } + .button.is-warning.is-loading::after { + border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; } + .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ffdd57; + color: #ffdd57; } + .button.is-warning.is-outlined:hover, .button.is-warning.is-outlined.is-hovered, .button.is-warning.is-outlined:focus, .button.is-warning.is-outlined.is-focused { + background-color: #ffdd57; + border-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-outlined.is-loading::after { + border-color: transparent transparent #ffdd57 #ffdd57 !important; } + .button.is-warning.is-outlined.is-loading:hover::after, .button.is-warning.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-outlined.is-loading:focus::after, .button.is-warning.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; } + .button.is-warning.is-outlined[disabled], fieldset[disabled] .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ffdd57; + box-shadow: none; + color: #ffdd57; } + .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-inverted.is-outlined:hover, .button.is-warning.is-inverted.is-outlined.is-hovered, .button.is-warning.is-inverted.is-outlined:focus, .button.is-warning.is-inverted.is-outlined.is-focused { + background-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ffdd57 #ffdd57 !important; } + .button.is-warning.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + box-shadow: none; + color: rgba(0, 0, 0, 0.7); } + .button.is-danger { + background-color: #da0b00; + border-color: transparent; + color: #fff; } + .button.is-danger:hover, .button.is-danger.is-hovered { + background-color: #cd0a00; + border-color: transparent; + color: #fff; } + .button.is-danger:focus, .button.is-danger.is-focused { + border-color: transparent; + color: #fff; } + .button.is-danger:focus:not(:active), .button.is-danger.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } + .button.is-danger:active, .button.is-danger.is-active { + background-color: #c10a00; + border-color: transparent; + color: #fff; } + .button.is-danger[disabled], fieldset[disabled] .button.is-danger { + background-color: #da0b00; + border-color: transparent; + box-shadow: none; } + .button.is-danger.is-inverted { + background-color: #fff; + color: #da0b00; } + .button.is-danger.is-inverted:hover, .button.is-danger.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-danger.is-inverted[disabled], fieldset[disabled] .button.is-danger.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #da0b00; } + .button.is-danger.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-danger.is-outlined { + background-color: transparent; + border-color: #da0b00; + color: #da0b00; } + .button.is-danger.is-outlined:hover, .button.is-danger.is-outlined.is-hovered, .button.is-danger.is-outlined:focus, .button.is-danger.is-outlined.is-focused { + background-color: #da0b00; + border-color: #da0b00; + color: #fff; } + .button.is-danger.is-outlined.is-loading::after { + border-color: transparent transparent #da0b00 #da0b00 !important; } + .button.is-danger.is-outlined.is-loading:hover::after, .button.is-danger.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-outlined.is-loading:focus::after, .button.is-danger.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-danger.is-outlined[disabled], fieldset[disabled] .button.is-danger.is-outlined { + background-color: transparent; + border-color: #da0b00; + box-shadow: none; + color: #da0b00; } + .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-danger.is-inverted.is-outlined:hover, .button.is-danger.is-inverted.is-outlined.is-hovered, .button.is-danger.is-inverted.is-outlined:focus, .button.is-danger.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #da0b00; } + .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #da0b00 #da0b00 !important; } + .button.is-danger.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-small, #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 2px; + font-size: 0.75rem; } + .button.is-normal { + font-size: 1rem; } + .button.is-medium { + font-size: 1.25rem; } + .button.is-large { + font-size: 1.5rem; } + .button[disabled], fieldset[disabled] .button { + background-color: white; + border-color: #dbdbdb; + box-shadow: none; + opacity: 0.5; } + .button.is-fullwidth { + display: flex; + width: 100%; } + .button.is-loading { + color: transparent !important; + pointer-events: none; } + .button.is-loading::after { + position: absolute; + left: calc(50% - (1em / 2)); + top: calc(50% - (1em / 2)); + position: absolute !important; } + .button.is-static { + background-color: whitesmoke; + border-color: #dbdbdb; + color: #6b6b6b; + box-shadow: none; + pointer-events: none; } + .button.is-rounded, #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + +.buttons { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .buttons .button { + margin-bottom: 0.5rem; } + .buttons .button:not(:last-child):not(.is-fullwidth) { + margin-right: 0.5rem; } + .buttons:last-child { + margin-bottom: -0.5rem; } + .buttons:not(:last-child) { + margin-bottom: 1rem; } + .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) { + border-radius: 2px; + font-size: 0.75rem; } + .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) { + font-size: 1.25rem; } + .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) { + font-size: 1.5rem; } + .buttons.has-addons .button:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .buttons.has-addons .button:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + margin-right: -1px; } + .buttons.has-addons .button:last-child { + margin-right: 0; } + .buttons.has-addons .button:hover, .buttons.has-addons .button.is-hovered { + z-index: 2; } + .buttons.has-addons .button:focus, .buttons.has-addons .button.is-focused, .buttons.has-addons .button:active, .buttons.has-addons .button.is-active, .buttons.has-addons .button.is-selected { + z-index: 3; } + .buttons.has-addons .button:focus:hover, .buttons.has-addons .button.is-focused:hover, .buttons.has-addons .button:active:hover, .buttons.has-addons .button.is-active:hover, .buttons.has-addons .button.is-selected:hover { + z-index: 4; } + .buttons.has-addons .button.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .buttons.is-centered { + justify-content: center; } + .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + .buttons.is-right { + justify-content: flex-end; } + .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + +.container { + flex-grow: 1; + margin: 0 auto; + position: relative; + width: auto; } + @media screen and (min-width: 1056px) { + .container { + max-width: 992px; } + .container.is-fluid { + margin-left: 32px; + margin-right: 32px; + max-width: none; } } + @media screen and (max-width: 1215px) { + .container.is-widescreen { + max-width: 1152px; } } + @media screen and (max-width: 1407px) { + .container.is-fullhd { + max-width: 1344px; } } + @media screen and (min-width: 1216px) { + .container { + max-width: 1152px; } } + @media screen and (min-width: 1408px) { + .container { + max-width: 1344px; } } +.content li + li { + margin-top: 0.25em; } + +.content p:not(:last-child), +.content dl:not(:last-child), +.content ol:not(:last-child), +.content ul:not(:last-child), +.content blockquote:not(:last-child), +.content pre:not(:last-child), +.content table:not(:last-child) { + margin-bottom: 1em; } + +.content h1, +.content h2, +.content h3, +.content h4, +.content h5, +.content h6 { + color: #222222; + 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: whitesmoke; + 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: #222222; } + .content table th:not([align]) { + text-align: left; } + .content table thead td, + .content table thead th { + border-width: 0 0 2px; + color: #222222; } + .content table tfoot td, + .content table tfoot th { + border-width: 2px 0 0; + color: #222222; } + .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: 0.75rem; } + +.content.is-medium { + font-size: 1.25rem; } + +.content.is-large { + font-size: 1.5rem; } + +.icon { + align-items: center; + display: inline-flex; + justify-content: center; + height: 1.5rem; + width: 1.5rem; } + .icon.is-small, #documenter .docs-sidebar form.docs-search > input.icon { + height: 1rem; + width: 1rem; } + .icon.is-medium { + height: 2rem; + width: 2rem; } + .icon.is-large { + height: 3rem; + width: 3rem; } + +.image, #documenter .docs-sidebar .docs-logo > img { + display: block; + position: relative; } + .image img, #documenter .docs-sidebar .docs-logo > img img { + display: block; + height: auto; + width: 100%; } + .image img.is-rounded, #documenter .docs-sidebar .docs-logo > img img.is-rounded { + border-radius: 290486px; } + .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img, + .image.is-square .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img, + .image.is-1by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img, + .image.is-5by4 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img, + .image.is-4by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img, + .image.is-3by2 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img, + .image.is-5by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img, + .image.is-16by9 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img, + .image.is-2by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img, + .image.is-3by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img, + .image.is-4by5 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img, + .image.is-3by4 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img, + .image.is-2by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img, + .image.is-3by5 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img, + .image.is-9by16 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img, + .image.is-1by2 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img, + .image.is-1by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio { + height: 100%; + width: 100%; } + .image.is-square, #documenter .docs-sidebar .docs-logo > img.is-square, .image.is-1by1, #documenter .docs-sidebar .docs-logo > img.is-1by1 { + padding-top: 100%; } + .image.is-5by4, #documenter .docs-sidebar .docs-logo > img.is-5by4 { + padding-top: 80%; } + .image.is-4by3, #documenter .docs-sidebar .docs-logo > img.is-4by3 { + padding-top: 75%; } + .image.is-3by2, #documenter .docs-sidebar .docs-logo > img.is-3by2 { + padding-top: 66.6666%; } + .image.is-5by3, #documenter .docs-sidebar .docs-logo > img.is-5by3 { + padding-top: 60%; } + .image.is-16by9, #documenter .docs-sidebar .docs-logo > img.is-16by9 { + padding-top: 56.25%; } + .image.is-2by1, #documenter .docs-sidebar .docs-logo > img.is-2by1 { + padding-top: 50%; } + .image.is-3by1, #documenter .docs-sidebar .docs-logo > img.is-3by1 { + padding-top: 33.3333%; } + .image.is-4by5, #documenter .docs-sidebar .docs-logo > img.is-4by5 { + padding-top: 125%; } + .image.is-3by4, #documenter .docs-sidebar .docs-logo > img.is-3by4 { + padding-top: 133.3333%; } + .image.is-2by3, #documenter .docs-sidebar .docs-logo > img.is-2by3 { + padding-top: 150%; } + .image.is-3by5, #documenter .docs-sidebar .docs-logo > img.is-3by5 { + padding-top: 166.6666%; } + .image.is-9by16, #documenter .docs-sidebar .docs-logo > img.is-9by16 { + padding-top: 177.7777%; } + .image.is-1by2, #documenter .docs-sidebar .docs-logo > img.is-1by2 { + padding-top: 200%; } + .image.is-1by3, #documenter .docs-sidebar .docs-logo > img.is-1by3 { + padding-top: 300%; } + .image.is-16x16, #documenter .docs-sidebar .docs-logo > img.is-16x16 { + height: 16px; + width: 16px; } + .image.is-24x24, #documenter .docs-sidebar .docs-logo > img.is-24x24 { + height: 24px; + width: 24px; } + .image.is-32x32, #documenter .docs-sidebar .docs-logo > img.is-32x32 { + height: 32px; + width: 32px; } + .image.is-48x48, #documenter .docs-sidebar .docs-logo > img.is-48x48 { + height: 48px; + width: 48px; } + .image.is-64x64, #documenter .docs-sidebar .docs-logo > img.is-64x64 { + height: 64px; + width: 64px; } + .image.is-96x96, #documenter .docs-sidebar .docs-logo > img.is-96x96 { + height: 96px; + width: 96px; } + .image.is-128x128, #documenter .docs-sidebar .docs-logo > img.is-128x128 { + height: 128px; + width: 128px; } + +.notification { + background-color: whitesmoke; + border-radius: 4px; + padding: 1.25rem 2.5rem 1.25rem 1.5rem; + position: relative; } + .notification a:not(.button):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + .notification strong { + color: currentColor; } + .notification code, + .notification pre { + background: white; } + .notification pre code { + background: transparent; } + .notification > .delete { + position: absolute; + right: 0.5rem; + top: 0.5rem; } + .notification .title, + .notification .subtitle, + .notification .content { + color: currentColor; } + .notification.is-white { + background-color: white; + color: #0a0a0a; } + .notification.is-black { + background-color: #0a0a0a; + color: white; } + .notification.is-light { + background-color: whitesmoke; + color: #363636; } + .notification.is-dark, .content kbd.notification { + background-color: #363636; + color: whitesmoke; } + .notification.is-primary, .docstring > section > a.notification.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .notification.is-link { + background-color: #2e63b8; + color: #fff; } + .notification.is-info { + background-color: #209cee; + color: #fff; } + .notification.is-success { + background-color: #22c35b; + color: #fff; } + .notification.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .notification.is-danger { + background-color: #da0b00; + color: #fff; } + +.progress { + -moz-appearance: none; + -webkit-appearance: none; + border: none; + border-radius: 290486px; + display: block; + height: 1rem; + overflow: hidden; + padding: 0; + width: 100%; } + .progress::-webkit-progress-bar { + background-color: #dbdbdb; } + .progress::-webkit-progress-value { + background-color: #222222; } + .progress::-moz-progress-bar { + background-color: #222222; } + .progress::-ms-fill { + background-color: #222222; + border: none; } + .progress.is-white::-webkit-progress-value { + background-color: white; } + .progress.is-white::-moz-progress-bar { + background-color: white; } + .progress.is-white::-ms-fill { + background-color: white; } + .progress.is-white:indeterminate { + background-image: linear-gradient(to right, white 30%, #dbdbdb 30%); } + .progress.is-black::-webkit-progress-value { + background-color: #0a0a0a; } + .progress.is-black::-moz-progress-bar { + background-color: #0a0a0a; } + .progress.is-black::-ms-fill { + background-color: #0a0a0a; } + .progress.is-black:indeterminate { + background-image: linear-gradient(to right, #0a0a0a 30%, #dbdbdb 30%); } + .progress.is-light::-webkit-progress-value { + background-color: whitesmoke; } + .progress.is-light::-moz-progress-bar { + background-color: whitesmoke; } + .progress.is-light::-ms-fill { + background-color: whitesmoke; } + .progress.is-light:indeterminate { + background-image: linear-gradient(to right, whitesmoke 30%, #dbdbdb 30%); } + .progress.is-dark::-webkit-progress-value, .content kbd.progress::-webkit-progress-value { + background-color: #363636; } + .progress.is-dark::-moz-progress-bar, .content kbd.progress::-moz-progress-bar { + background-color: #363636; } + .progress.is-dark::-ms-fill, .content kbd.progress::-ms-fill { + background-color: #363636; } + .progress.is-dark:indeterminate, .content kbd.progress:indeterminate { + background-image: linear-gradient(to right, #363636 30%, #dbdbdb 30%); } + .progress.is-primary::-webkit-progress-value, .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value { + background-color: #4eb5de; } + .progress.is-primary::-moz-progress-bar, .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar { + background-color: #4eb5de; } + .progress.is-primary::-ms-fill, .docstring > section > a.progress.docs-sourcelink::-ms-fill { + background-color: #4eb5de; } + .progress.is-primary:indeterminate, .docstring > section > a.progress.docs-sourcelink:indeterminate { + background-image: linear-gradient(to right, #4eb5de 30%, #dbdbdb 30%); } + .progress.is-link::-webkit-progress-value { + background-color: #2e63b8; } + .progress.is-link::-moz-progress-bar { + background-color: #2e63b8; } + .progress.is-link::-ms-fill { + background-color: #2e63b8; } + .progress.is-link:indeterminate { + background-image: linear-gradient(to right, #2e63b8 30%, #dbdbdb 30%); } + .progress.is-info::-webkit-progress-value { + background-color: #209cee; } + .progress.is-info::-moz-progress-bar { + background-color: #209cee; } + .progress.is-info::-ms-fill { + background-color: #209cee; } + .progress.is-info:indeterminate { + background-image: linear-gradient(to right, #209cee 30%, #dbdbdb 30%); } + .progress.is-success::-webkit-progress-value { + background-color: #22c35b; } + .progress.is-success::-moz-progress-bar { + background-color: #22c35b; } + .progress.is-success::-ms-fill { + background-color: #22c35b; } + .progress.is-success:indeterminate { + background-image: linear-gradient(to right, #22c35b 30%, #dbdbdb 30%); } + .progress.is-warning::-webkit-progress-value { + background-color: #ffdd57; } + .progress.is-warning::-moz-progress-bar { + background-color: #ffdd57; } + .progress.is-warning::-ms-fill { + background-color: #ffdd57; } + .progress.is-warning:indeterminate { + background-image: linear-gradient(to right, #ffdd57 30%, #dbdbdb 30%); } + .progress.is-danger::-webkit-progress-value { + background-color: #da0b00; } + .progress.is-danger::-moz-progress-bar { + background-color: #da0b00; } + .progress.is-danger::-ms-fill { + background-color: #da0b00; } + .progress.is-danger:indeterminate { + background-image: linear-gradient(to right, #da0b00 30%, #dbdbdb 30%); } + .progress:indeterminate { + animation-duration: 1.5s; + animation-iteration-count: infinite; + animation-name: moveIndeterminate; + animation-timing-function: linear; + background-color: #dbdbdb; + background-image: linear-gradient(to right, #222222 30%, #dbdbdb 30%); + background-position: top left; + background-repeat: no-repeat; + background-size: 150% 150%; } + .progress:indeterminate::-webkit-progress-bar { + background-color: transparent; } + .progress:indeterminate::-moz-progress-bar { + background-color: transparent; } + .progress.is-small, #documenter .docs-sidebar form.docs-search > input.progress { + height: 0.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: white; + color: #363636; } + .table td, + .table th { + border: 1px solid #dbdbdb; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + .table td.is-white, + .table th.is-white { + background-color: white; + border-color: white; + color: #0a0a0a; } + .table td.is-black, + .table th.is-black { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .table td.is-light, + .table th.is-light { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .table td.is-dark, + .table th.is-dark { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .table td.is-primary, + .table th.is-primary { + background-color: #4eb5de; + border-color: #4eb5de; + color: #fff; } + .table td.is-link, + .table th.is-link { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + .table td.is-info, + .table th.is-info { + background-color: #209cee; + border-color: #209cee; + color: #fff; } + .table td.is-success, + .table th.is-success { + background-color: #22c35b; + border-color: #22c35b; + color: #fff; } + .table td.is-warning, + .table th.is-warning { + background-color: #ffdd57; + border-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .table td.is-danger, + .table th.is-danger { + background-color: #da0b00; + border-color: #da0b00; + color: #fff; } + .table td.is-narrow, + .table th.is-narrow { + white-space: nowrap; + width: 1%; } + .table td.is-selected, + .table th.is-selected { + background-color: #4eb5de; + color: #fff; } + .table td.is-selected a, + .table td.is-selected strong, + .table th.is-selected a, + .table th.is-selected strong { + color: currentColor; } + .table th { + color: #222222; } + .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: transparent; } + .table thead td, + .table thead th { + border-width: 0 0 2px; + color: #222222; } + .table tfoot { + background-color: transparent; } + .table tfoot td, + .table tfoot th { + border-width: 2px 0 0; + color: #222222; } + .table tbody { + background-color: transparent; } + .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: whitesmoke; } + .table.is-narrow td, + .table.is-narrow th { + padding: 0.25em 0.5em; } + .table.is-striped tbody tr:not(.is-selected):nth-child(even) { + background-color: #fafafa; } + +.table-container { + -webkit-overflow-scrolling: touch; + overflow: auto; + overflow-y: hidden; + max-width: 100%; } + +.tags { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .tags .tag, .tags .content kbd, .content .tags kbd, .tags .docstring > section > a.docs-sourcelink { + margin-bottom: 0.5rem; } + .tags .tag:not(:last-child), .tags .content kbd:not(:last-child), .content .tags kbd:not(:last-child), .tags .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0.5rem; } + .tags:last-child { + margin-bottom: -0.5rem; } + .tags:not(:last-child) { + margin-bottom: 1rem; } + .tags.are-medium .tag:not(.is-normal):not(.is-large), .tags.are-medium .content kbd:not(.is-normal):not(.is-large), .content .tags.are-medium kbd:not(.is-normal):not(.is-large), .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large) { + font-size: 1rem; } + .tags.are-large .tag:not(.is-normal):not(.is-medium), .tags.are-large .content kbd:not(.is-normal):not(.is-medium), .content .tags.are-large kbd:not(.is-normal):not(.is-medium), .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium) { + font-size: 1.25rem; } + .tags.is-centered { + justify-content: center; } + .tags.is-centered .tag, .tags.is-centered .content kbd, .content .tags.is-centered kbd, .tags.is-centered .docstring > section > a.docs-sourcelink { + margin-right: 0.25rem; + margin-left: 0.25rem; } + .tags.is-right { + justify-content: flex-end; } + .tags.is-right .tag:not(:first-child), .tags.is-right .content kbd:not(:first-child), .content .tags.is-right kbd:not(:first-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0.5rem; } + .tags.is-right .tag:not(:last-child), .tags.is-right .content kbd:not(:last-child), .content .tags.is-right kbd:not(:last-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0; } + .tags.has-addons .tag, .tags.has-addons .content kbd, .content .tags.has-addons kbd, .tags.has-addons .docstring > section > a.docs-sourcelink { + margin-right: 0; } + .tags.has-addons .tag:not(:first-child), .tags.has-addons .content kbd:not(:first-child), .content .tags.has-addons kbd:not(:first-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0; + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .tags.has-addons .tag:not(:last-child), .tags.has-addons .content kbd:not(:last-child), .content .tags.has-addons kbd:not(:last-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + +.tag:not(body), .content kbd:not(body), .docstring > section > a.docs-sourcelink:not(body) { + align-items: center; + background-color: whitesmoke; + border-radius: 4px; + color: #222222; + display: inline-flex; + font-size: 0.75rem; + height: 2em; + justify-content: center; + line-height: 1.5; + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + .tag:not(body) .delete, .content kbd:not(body) .delete, .docstring > section > a.docs-sourcelink:not(body) .delete { + margin-left: 0.25rem; + margin-right: -0.375rem; } + .tag.is-white:not(body), .content kbd.is-white:not(body), .docstring > section > a.docs-sourcelink.is-white:not(body) { + background-color: white; + 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: white; } + .tag.is-light:not(body), .content kbd.is-light:not(body), .docstring > section > a.docs-sourcelink.is-light:not(body) { + background-color: whitesmoke; + color: #363636; } + .tag.is-dark:not(body), .content kbd:not(body), .docstring > section > a.docs-sourcelink.is-dark:not(body), .content .docstring > section > kbd:not(body) { + background-color: #363636; + color: whitesmoke; } + .tag.is-primary:not(body), .content kbd.is-primary:not(body), .docstring > section > a.docs-sourcelink:not(body) { + background-color: #4eb5de; + color: #fff; } + .tag.is-link:not(body), .content kbd.is-link:not(body), .docstring > section > a.docs-sourcelink.is-link:not(body) { + background-color: #2e63b8; + color: #fff; } + .tag.is-info:not(body), .content kbd.is-info:not(body), .docstring > section > a.docs-sourcelink.is-info:not(body) { + background-color: #209cee; + color: #fff; } + .tag.is-success:not(body), .content kbd.is-success:not(body), .docstring > section > a.docs-sourcelink.is-success:not(body) { + background-color: #22c35b; + color: #fff; } + .tag.is-warning:not(body), .content kbd.is-warning:not(body), .docstring > section > a.docs-sourcelink.is-warning:not(body) { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .tag.is-danger:not(body), .content kbd.is-danger:not(body), .docstring > section > a.docs-sourcelink.is-danger:not(body) { + background-color: #da0b00; + color: #fff; } + .tag.is-normal:not(body), .content kbd.is-normal:not(body), .docstring > section > a.docs-sourcelink.is-normal:not(body) { + font-size: 0.75rem; } + .tag.is-medium:not(body), .content kbd.is-medium:not(body), .docstring > section > a.docs-sourcelink.is-medium:not(body) { + font-size: 1rem; } + .tag.is-large:not(body), .content kbd.is-large:not(body), .docstring > section > a.docs-sourcelink.is-large:not(body) { + font-size: 1.25rem; } + .tag:not(body) .icon:first-child:not(:last-child), .content kbd:not(body) .icon:first-child:not(:last-child), .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child) { + margin-left: -0.375em; + margin-right: 0.1875em; } + .tag:not(body) .icon:last-child:not(:first-child), .content kbd:not(body) .icon:last-child:not(:first-child), .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: -0.375em; } + .tag:not(body) .icon:first-child:last-child, .content kbd:not(body) .icon:first-child:last-child, .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child { + margin-left: -0.375em; + margin-right: -0.375em; } + .tag.is-delete:not(body), .content kbd.is-delete:not(body), .docstring > section > a.docs-sourcelink.is-delete:not(body) { + margin-left: 1px; + padding: 0; + position: relative; + width: 2em; } + .tag.is-delete:not(body)::before, .content kbd.is-delete:not(body)::before, .docstring > section > a.docs-sourcelink.is-delete:not(body)::before, .tag.is-delete:not(body)::after, .content kbd.is-delete:not(body)::after, .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + background-color: currentColor; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + .tag.is-delete:not(body)::before, .content kbd.is-delete:not(body)::before, .docstring > section > a.docs-sourcelink.is-delete:not(body)::before { + height: 1px; + width: 50%; } + .tag.is-delete:not(body)::after, .content kbd.is-delete:not(body)::after, .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + height: 50%; + width: 1px; } + .tag.is-delete:not(body):hover, .content kbd.is-delete:not(body):hover, .docstring > section > a.docs-sourcelink.is-delete:not(body):hover, .tag.is-delete:not(body):focus, .content kbd.is-delete:not(body):focus, .docstring > section > a.docs-sourcelink.is-delete:not(body):focus { + background-color: #e8e8e8; } + .tag.is-delete:not(body):active, .content kbd.is-delete:not(body):active, .docstring > section > a.docs-sourcelink.is-delete:not(body):active { + background-color: #dbdbdb; } + .tag.is-rounded:not(body), #documenter .docs-sidebar form.docs-search > input:not(body), .content kbd.is-rounded:not(body), #documenter .docs-sidebar .content form.docs-search > input:not(body), .docstring > section > a.docs-sourcelink.is-rounded:not(body) { + border-radius: 290486px; } + +a.tag:hover, .docstring > section > a.docs-sourcelink:hover { + text-decoration: underline; } + +.title, +.subtitle { + word-break: break-word; } + .title em, + .title span, + .subtitle em, + .subtitle span { + font-weight: inherit; } + .title sub, + .subtitle sub { + font-size: 0.75em; } + .title sup, + .subtitle sup { + font-size: 0.75em; } + .title .tag, .title .content kbd, .content .title kbd, .title .docstring > section > a.docs-sourcelink, + .subtitle .tag, + .subtitle .content kbd, + .content .subtitle kbd, + .subtitle .docstring > section > a.docs-sourcelink { + vertical-align: middle; } + +.title { + color: #363636; + font-size: 2rem; + font-weight: 600; + line-height: 1.125; } + .title strong { + color: inherit; + font-weight: inherit; } + .title + .highlight { + margin-top: -0.75rem; } + .title:not(.is-spaced) + .subtitle { + margin-top: -1.25rem; } + .title.is-1 { + font-size: 3rem; } + .title.is-2 { + font-size: 2.5rem; } + .title.is-3 { + font-size: 2rem; } + .title.is-4 { + font-size: 1.5rem; } + .title.is-5 { + font-size: 1.25rem; } + .title.is-6 { + font-size: 1rem; } + .title.is-7 { + font-size: 0.75rem; } + +.subtitle { + color: #4a4a4a; + font-size: 1.25rem; + font-weight: 400; + line-height: 1.25; } + .subtitle strong { + color: #363636; + font-weight: 600; } + .subtitle:not(.is-spaced) + .title { + margin-top: -1.25rem; } + .subtitle.is-1 { + font-size: 3rem; } + .subtitle.is-2 { + font-size: 2.5rem; } + .subtitle.is-3 { + font-size: 2rem; } + .subtitle.is-4 { + font-size: 1.5rem; } + .subtitle.is-5 { + font-size: 1.25rem; } + .subtitle.is-6 { + font-size: 1rem; } + .subtitle.is-7 { + font-size: 0.75rem; } + +.heading { + display: block; + font-size: 11px; + letter-spacing: 1px; + margin-bottom: 5px; + text-transform: uppercase; } + +.highlight { + font-weight: 400; + max-width: 100%; + overflow: hidden; + padding: 0; } + .highlight pre { + overflow: auto; + max-width: 100%; } + +.number { + align-items: center; + background-color: whitesmoke; + border-radius: 290486px; + display: inline-flex; + font-size: 1.25rem; + height: 2em; + justify-content: center; + margin-right: 1.5rem; + min-width: 2.5em; + padding: 0.25rem 0.5rem; + text-align: center; + vertical-align: top; } + +.select select, .textarea, .input, #documenter .docs-sidebar form.docs-search > input { + background-color: white; + border-color: #dbdbdb; + border-radius: 4px; + color: #363636; } + .select select::-moz-placeholder, .textarea::-moz-placeholder, .input::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input::-moz-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select::-webkit-input-placeholder, .textarea::-webkit-input-placeholder, .input::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select:-moz-placeholder, .textarea:-moz-placeholder, .input:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input:-moz-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select:-ms-input-placeholder, .textarea:-ms-input-placeholder, .input:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select:hover, .textarea:hover, .input:hover, #documenter .docs-sidebar form.docs-search > input:hover, .select select.is-hovered, .is-hovered.textarea, .is-hovered.input, #documenter .docs-sidebar form.docs-search > input.is-hovered { + border-color: #b5b5b5; } + .select select:focus, .textarea:focus, .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .select select.is-focused, .is-focused.textarea, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .select select:active, .textarea:active, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .select select.is-active, .is-active.textarea, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + border-color: #2e63b8; + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .select select[disabled], .textarea[disabled], .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], fieldset[disabled] .select select, .select fieldset[disabled] select, fieldset[disabled] .textarea, fieldset[disabled] .input, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input { + background-color: whitesmoke; + border-color: whitesmoke; + box-shadow: none; + color: #6b6b6b; } + .select select[disabled]::-moz-placeholder, .textarea[disabled]::-moz-placeholder, .input[disabled]::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, fieldset[disabled] .select select::-moz-placeholder, .select fieldset[disabled] select::-moz-placeholder, fieldset[disabled] .textarea::-moz-placeholder, fieldset[disabled] .input::-moz-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-moz-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-moz-placeholder { + color: rgba(107, 107, 107, 0.3); } + .select select[disabled]::-webkit-input-placeholder, .textarea[disabled]::-webkit-input-placeholder, .input[disabled]::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, fieldset[disabled] .select select::-webkit-input-placeholder, .select fieldset[disabled] select::-webkit-input-placeholder, fieldset[disabled] .textarea::-webkit-input-placeholder, fieldset[disabled] .input::-webkit-input-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-webkit-input-placeholder { + color: rgba(107, 107, 107, 0.3); } + .select select[disabled]:-moz-placeholder, .textarea[disabled]:-moz-placeholder, .input[disabled]:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, fieldset[disabled] .select select:-moz-placeholder, .select fieldset[disabled] select:-moz-placeholder, fieldset[disabled] .textarea:-moz-placeholder, fieldset[disabled] .input:-moz-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-moz-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-moz-placeholder { + color: rgba(107, 107, 107, 0.3); } + .select select[disabled]:-ms-input-placeholder, .textarea[disabled]:-ms-input-placeholder, .input[disabled]:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, fieldset[disabled] .select select:-ms-input-placeholder, .select fieldset[disabled] select:-ms-input-placeholder, fieldset[disabled] .textarea:-ms-input-placeholder, fieldset[disabled] .input:-ms-input-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-ms-input-placeholder { + color: rgba(107, 107, 107, 0.3); } + +.textarea, .input, #documenter .docs-sidebar form.docs-search > input { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1); + max-width: 100%; + width: 100%; } + .textarea[readonly], .input[readonly], #documenter .docs-sidebar form.docs-search > input[readonly] { + box-shadow: none; } + .is-white.textarea, .is-white.input, #documenter .docs-sidebar form.docs-search > input.is-white { + border-color: white; } + .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: whitesmoke; } + .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: 0.75rem; } + .is-medium.textarea, .is-medium.input, #documenter .docs-sidebar form.docs-search > input.is-medium { + font-size: 1.25rem; } + .is-large.textarea, .is-large.input, #documenter .docs-sidebar form.docs-search > input.is-large { + font-size: 1.5rem; } + .is-fullwidth.textarea, .is-fullwidth.input, #documenter .docs-sidebar form.docs-search > input.is-fullwidth { + display: block; + width: 100%; } + .is-inline.textarea, .is-inline.input, #documenter .docs-sidebar form.docs-search > input.is-inline { + display: inline; + width: auto; } + +.input.is-rounded, #documenter .docs-sidebar form.docs-search > input { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + +.input.is-static, #documenter .docs-sidebar form.docs-search > input.is-static { + background-color: transparent; + border-color: transparent; + box-shadow: none; + padding-left: 0; + padding-right: 0; } + +.textarea { + display: block; + max-width: 100%; + min-width: 100%; + padding: 0.625em; + resize: vertical; } + .textarea:not([rows]) { + max-height: 600px; + min-height: 120px; } + .textarea[rows] { + height: initial; } + .textarea.has-fixed-size { + resize: none; } + +.radio, .checkbox { + cursor: pointer; + display: inline-block; + line-height: 1.25; + position: relative; } + .radio input, .checkbox input { + cursor: pointer; } + .radio:hover, .checkbox:hover { + color: #363636; } + .radio[disabled], .checkbox[disabled], fieldset[disabled] .radio, fieldset[disabled] .checkbox { + color: #6b6b6b; + cursor: not-allowed; } + +.radio + .radio { + margin-left: 0.5em; } + +.select { + display: inline-block; + max-width: 100%; + position: relative; + vertical-align: top; } + .select:not(.is-multiple) { + height: 2.25em; } + .select:not(.is-multiple):not(.is-loading)::after { + border-color: #2e63b8; + right: 1.125em; + z-index: 4; } + .select.is-rounded select, #documenter .docs-sidebar form.docs-search > input.select select { + border-radius: 290486px; + padding-left: 1em; } + .select select { + cursor: pointer; + display: block; + font-size: 1em; + max-width: 100%; + outline: none; } + .select select::-ms-expand { + display: none; } + .select select[disabled]:hover, fieldset[disabled] .select select:hover { + border-color: whitesmoke; } + .select select:not([multiple]) { + padding-right: 2.5em; } + .select select[multiple] { + height: auto; + padding: 0; } + .select select[multiple] option { + padding: 0.5em 1em; } + .select:not(.is-multiple):not(.is-loading):hover::after { + border-color: #363636; } + .select.is-white:not(:hover)::after { + border-color: white; } + .select.is-white select { + border-color: white; } + .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: black; } + .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: whitesmoke; } + .select.is-light select { + border-color: whitesmoke; } + .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: 0.75rem; } + .select.is-medium { + font-size: 1.25rem; } + .select.is-large { + font-size: 1.5rem; } + .select.is-disabled::after { + border-color: #6b6b6b; } + .select.is-fullwidth { + width: 100%; } + .select.is-fullwidth select { + width: 100%; } + .select.is-loading::after { + margin-top: 0; + position: absolute; + right: 0.625em; + top: 0.625em; + transform: none; } + .select.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.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: white; + 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: white; } + .file.is-black:hover .file-cta, .file.is-black.is-hovered .file-cta { + background-color: #040404; + border-color: transparent; + color: white; } + .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: white; } + .file.is-black:active .file-cta, .file.is-black.is-active .file-cta { + background-color: black; + border-color: transparent; + color: white; } + .file.is-light .file-cta { + background-color: whitesmoke; + border-color: transparent; + color: #363636; } + .file.is-light:hover .file-cta, .file.is-light.is-hovered .file-cta { + background-color: #eeeeee; + border-color: transparent; + color: #363636; } + .file.is-light:focus .file-cta, .file.is-light.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(245, 245, 245, 0.25); + color: #363636; } + .file.is-light:active .file-cta, .file.is-light.is-active .file-cta { + background-color: #e8e8e8; + border-color: transparent; + color: #363636; } + .file.is-dark .file-cta, .content kbd.file .file-cta { + background-color: #363636; + border-color: transparent; + color: whitesmoke; } + .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: whitesmoke; } + .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: whitesmoke; } + .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: whitesmoke; } + .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: 0.75rem; } + .file.is-medium { + font-size: 1.25rem; } + .file.is-medium .file-icon .fa { + font-size: 21px; } + .file.is-large { + font-size: 1.5rem; } + .file.is-large .file-icon .fa { + font-size: 28px; } + .file.has-name .file-cta { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + .file.has-name .file-name { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .file.has-name.is-empty .file-cta { + border-radius: 4px; } + .file.has-name.is-empty .file-name { + display: none; } + .file.is-boxed .file-label { + flex-direction: column; } + .file.is-boxed .file-cta { + flex-direction: column; + height: auto; + padding: 1em 3em; } + .file.is-boxed .file-name { + border-width: 0 1px 1px; } + .file.is-boxed .file-icon { + height: 1.5em; + width: 1.5em; } + .file.is-boxed .file-icon .fa { + font-size: 21px; } + .file.is-boxed.is-small .file-icon .fa, #documenter .docs-sidebar form.docs-search > input.is-boxed .file-icon .fa { + font-size: 14px; } + .file.is-boxed.is-medium .file-icon .fa { + font-size: 28px; } + .file.is-boxed.is-large .file-icon .fa { + font-size: 35px; } + .file.is-boxed.has-name .file-cta { + border-radius: 4px 4px 0 0; } + .file.is-boxed.has-name .file-name { + border-radius: 0 0 4px 4px; + border-width: 0 1px 1px; } + .file.is-centered { + justify-content: center; } + .file.is-fullwidth .file-label { + width: 100%; } + .file.is-fullwidth .file-name { + flex-grow: 1; + max-width: none; } + .file.is-right { + justify-content: flex-end; } + .file.is-right .file-cta { + border-radius: 0 4px 4px 0; } + .file.is-right .file-name { + border-radius: 4px 0 0 4px; + border-width: 1px 0 1px 1px; + order: -1; } + +.file-label { + align-items: stretch; + display: flex; + cursor: pointer; + justify-content: flex-start; + overflow: hidden; + position: relative; } + .file-label:hover .file-cta { + background-color: #eeeeee; + color: #363636; } + .file-label:hover .file-name { + border-color: #d5d5d5; } + .file-label:active .file-cta { + background-color: #e8e8e8; + color: #363636; } + .file-label:active .file-name { + border-color: #cfcfcf; } + +.file-input { + height: 100%; + left: 0; + opacity: 0; + outline: none; + position: absolute; + top: 0; + width: 100%; } + +.file-cta, +.file-name { + border-color: #dbdbdb; + border-radius: 4px; + font-size: 1em; + padding-left: 1em; + padding-right: 1em; + white-space: nowrap; } + +.file-cta { + background-color: whitesmoke; + color: #4a4a4a; } + +.file-name { + border-color: #dbdbdb; + border-style: solid; + border-width: 1px 1px 1px 0; + display: block; + max-width: 16em; + overflow: hidden; + text-align: left; + text-overflow: ellipsis; } + +.file-icon { + align-items: center; + display: flex; + height: 1em; + justify-content: center; + margin-right: 0.5em; + width: 1em; } + .file-icon .fa { + font-size: 14px; } + +.label { + color: #363636; + display: block; + font-size: 1rem; + font-weight: 700; } + .label:not(:last-child) { + margin-bottom: 0.5em; } + .label.is-small, #documenter .docs-sidebar form.docs-search > input.label { + font-size: 0.75rem; } + .label.is-medium { + font-size: 1.25rem; } + .label.is-large { + font-size: 1.5rem; } + +.help { + display: block; + font-size: 0.75rem; + margin-top: 0.25rem; } + .help.is-white { + color: white; } + .help.is-black { + color: #0a0a0a; } + .help.is-light { + color: whitesmoke; } + .help.is-dark, .content kbd.help { + color: #363636; } + .help.is-primary, .docstring > section > a.help.docs-sourcelink { + color: #4eb5de; } + .help.is-link { + color: #2e63b8; } + .help.is-info { + color: #209cee; } + .help.is-success { + color: #22c35b; } + .help.is-warning { + color: #ffdd57; } + .help.is-danger { + color: #da0b00; } + +.field:not(:last-child) { + margin-bottom: 0.75rem; } + +.field.has-addons { + display: flex; + justify-content: flex-start; } + .field.has-addons .control:not(:last-child) { + margin-right: -1px; } + .field.has-addons .control:not(:first-child):not(:last-child) .button, + .field.has-addons .control:not(:first-child):not(:last-child) .input, + .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input, + .field.has-addons .control:not(:first-child):not(:last-child) .select select { + border-radius: 0; } + .field.has-addons .control:first-child:not(:only-child) .button, + .field.has-addons .control:first-child:not(:only-child) .input, + .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input, + .field.has-addons .control:first-child:not(:only-child) .select select { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + .field.has-addons .control:last-child:not(:only-child) .button, + .field.has-addons .control:last-child:not(:only-child) .input, + .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input, + .field.has-addons .control:last-child:not(:only-child) .select select { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .field.has-addons .control .button:not([disabled]):hover, .field.has-addons .control .button.is-hovered:not([disabled]), + .field.has-addons .control .input:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover, + .field.has-addons .control .input.is-hovered:not([disabled]), + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-hovered:not([disabled]), + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-hovered:not([disabled]), + .field.has-addons .control .select select:not([disabled]):hover, + .field.has-addons .control .select select.is-hovered:not([disabled]) { + z-index: 2; } + .field.has-addons .control .button:not([disabled]):focus, .field.has-addons .control .button.is-focused:not([disabled]), .field.has-addons .control .button:not([disabled]):active, .field.has-addons .control .button.is-active:not([disabled]), + .field.has-addons .control .input:not([disabled]):focus, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus, + .field.has-addons .control .input.is-focused:not([disabled]), + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]), + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]), + .field.has-addons .control .input:not([disabled]):active, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active, + .field.has-addons .control .input.is-active:not([disabled]), + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]), + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]), + .field.has-addons .control .select select:not([disabled]):focus, + .field.has-addons .control .select select.is-focused:not([disabled]), + .field.has-addons .control .select select:not([disabled]):active, + .field.has-addons .control .select select.is-active:not([disabled]) { + z-index: 3; } + .field.has-addons .control .button:not([disabled]):focus:hover, .field.has-addons .control .button.is-focused:not([disabled]):hover, .field.has-addons .control .button:not([disabled]):active:hover, .field.has-addons .control .button.is-active:not([disabled]):hover, + .field.has-addons .control .input:not([disabled]):focus:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover, + .field.has-addons .control .input.is-focused:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]):hover, + .field.has-addons .control .input:not([disabled]):active:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover, + .field.has-addons .control .input.is-active:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]):hover, + .field.has-addons .control .select select:not([disabled]):focus:hover, + .field.has-addons .control .select select.is-focused:not([disabled]):hover, + .field.has-addons .control .select select:not([disabled]):active:hover, + .field.has-addons .control .select select.is-active:not([disabled]):hover { + z-index: 4; } + .field.has-addons .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .field.has-addons.has-addons-centered { + justify-content: center; } + .field.has-addons.has-addons-right { + justify-content: flex-end; } + .field.has-addons.has-addons-fullwidth .control { + flex-grow: 1; + flex-shrink: 0; } + +.field.is-grouped { + display: flex; + justify-content: flex-start; } + .field.is-grouped > .control { + flex-shrink: 0; } + .field.is-grouped > .control:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + .field.is-grouped > .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .field.is-grouped.is-grouped-centered { + justify-content: center; } + .field.is-grouped.is-grouped-right { + justify-content: flex-end; } + .field.is-grouped.is-grouped-multiline { + flex-wrap: wrap; } + .field.is-grouped.is-grouped-multiline > .control:last-child, .field.is-grouped.is-grouped-multiline > .control:not(:last-child) { + margin-bottom: 0.75rem; } + .field.is-grouped.is-grouped-multiline:last-child { + margin-bottom: -0.75rem; } + .field.is-grouped.is-grouped-multiline:not(:last-child) { + margin-bottom: 0; } + +@media screen and (min-width: 769px), print { + .field.is-horizontal { + display: flex; } } + +.field-label .label { + font-size: inherit; } + +@media screen and (max-width: 768px) { + .field-label { + margin-bottom: 0.5rem; } } + +@media screen and (min-width: 769px), print { + .field-label { + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + margin-right: 1.5rem; + text-align: right; } + .field-label.is-small, #documenter .docs-sidebar form.docs-search > input.field-label { + font-size: 0.75rem; + padding-top: 0.375em; } + .field-label.is-normal { + padding-top: 0.375em; } + .field-label.is-medium { + font-size: 1.25rem; + padding-top: 0.375em; } + .field-label.is-large { + font-size: 1.5rem; + padding-top: 0.375em; } } + +.field-body .field .field { + margin-bottom: 0; } + +@media screen and (min-width: 769px), print { + .field-body { + display: flex; + flex-basis: 0; + flex-grow: 5; + flex-shrink: 1; } + .field-body .field { + margin-bottom: 0; } + .field-body > .field { + flex-shrink: 1; } + .field-body > .field:not(.is-narrow) { + flex-grow: 1; } + .field-body > .field:not(:last-child) { + margin-right: 0.75rem; } } + +.control { + box-sizing: border-box; + clear: both; + font-size: 1rem; + position: relative; + text-align: left; } + .control.has-icons-left .input:focus ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon, + .control.has-icons-left .select:focus ~ .icon, .control.has-icons-right .input:focus ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon, + .control.has-icons-right .select:focus ~ .icon { + color: #6b6b6b; } + .control.has-icons-left .input.is-small ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon, + .control.has-icons-left .select.is-small ~ .icon, .control.has-icons-right .input.is-small ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon, + .control.has-icons-right .select.is-small ~ .icon { + font-size: 0.75rem; } + .control.has-icons-left .input.is-medium ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon, + .control.has-icons-left .select.is-medium ~ .icon, .control.has-icons-right .input.is-medium ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon, + .control.has-icons-right .select.is-medium ~ .icon { + font-size: 1.25rem; } + .control.has-icons-left .input.is-large ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon, + .control.has-icons-left .select.is-large ~ .icon, .control.has-icons-right .input.is-large ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon, + .control.has-icons-right .select.is-large ~ .icon { + font-size: 1.5rem; } + .control.has-icons-left .icon, .control.has-icons-right .icon { + color: #dbdbdb; + height: 2.25em; + pointer-events: none; + position: absolute; + top: 0; + width: 2.25em; + z-index: 4; } + .control.has-icons-left .input, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input, + .control.has-icons-left .select select { + padding-left: 2.25em; } + .control.has-icons-left .icon.is-left { + left: 0; } + .control.has-icons-right .input, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input, + .control.has-icons-right .select select { + padding-right: 2.25em; } + .control.has-icons-right .icon.is-right { + right: 0; } + .control.is-loading::after { + position: absolute !important; + right: 0.625em; + top: 0.625em; + z-index: 4; } + .control.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.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 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: #222222; + cursor: default; + pointer-events: none; } + .breadcrumb li + li::before { + color: #b5b5b5; + content: "\0002f"; } + .breadcrumb ul, + .breadcrumb ol { + align-items: flex-start; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .breadcrumb .icon:first-child { + margin-right: 0.5em; } + .breadcrumb .icon:last-child { + margin-left: 0.5em; } + .breadcrumb.is-centered ol, + .breadcrumb.is-centered ul { + justify-content: center; } + .breadcrumb.is-right ol, + .breadcrumb.is-right ul { + justify-content: flex-end; } + .breadcrumb.is-small, #documenter .docs-sidebar form.docs-search > input.breadcrumb { + font-size: 0.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: white; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #222222; + max-width: 100%; + position: relative; } + +.card-header { + background-color: transparent; + align-items: stretch; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + display: flex; } + +.card-header-title { + align-items: center; + color: #222222; + display: flex; + flex-grow: 1; + font-weight: 700; + padding: 0.75rem; } + .card-header-title.is-centered { + justify-content: center; } + +.card-header-icon { + align-items: center; + cursor: pointer; + display: flex; + justify-content: center; + padding: 0.75rem; } + +.card-image { + display: block; + position: relative; } + +.card-content { + background-color: transparent; + padding: 1.5rem; } + +.card-footer { + background-color: transparent; + border-top: 1px solid #dbdbdb; + align-items: stretch; + display: flex; } + +.card-footer-item { + align-items: center; + display: flex; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + justify-content: center; + padding: 0.75rem; } + .card-footer-item:not(:last-child) { + border-right: 1px solid #dbdbdb; } + +.card .media:not(:last-child) { + margin-bottom: 1.5rem; } + +.dropdown { + display: inline-flex; + position: relative; + vertical-align: top; } + .dropdown.is-active .dropdown-menu, .dropdown.is-hoverable:hover .dropdown-menu { + display: block; } + .dropdown.is-right .dropdown-menu { + left: auto; + right: 0; } + .dropdown.is-up .dropdown-menu { + bottom: 100%; + padding-bottom: 4px; + padding-top: initial; + top: auto; } + +.dropdown-menu { + display: none; + left: 0; + min-width: 12rem; + padding-top: 4px; + position: absolute; + top: 100%; + z-index: 20; } + +.dropdown-content { + background-color: white; + border-radius: 4px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + +.dropdown-item { + color: #4a4a4a; + display: block; + font-size: 0.875rem; + line-height: 1.5; + padding: 0.375rem 1rem; + position: relative; } + +a.dropdown-item, +button.dropdown-item { + padding-right: 3rem; + text-align: left; + white-space: nowrap; + width: 100%; } + a.dropdown-item:hover, + button.dropdown-item:hover { + background-color: whitesmoke; + color: #0a0a0a; } + a.dropdown-item.is-active, + button.dropdown-item.is-active { + background-color: #2e63b8; + color: #fff; } + +.dropdown-divider { + background-color: #dbdbdb; + border: none; + display: block; + height: 1px; + margin: 0.5rem 0; } + +.level { + align-items: center; + justify-content: space-between; } + .level code { + border-radius: 4px; } + .level img { + display: inline-block; + vertical-align: top; } + .level.is-mobile { + display: flex; } + .level.is-mobile .level-left, + .level.is-mobile .level-right { + display: flex; } + .level.is-mobile .level-left + .level-right { + margin-top: 0; } + .level.is-mobile .level-item:not(:last-child) { + margin-bottom: 0; + margin-right: 0.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: 0.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: 0.75rem; } } +.level-left { + align-items: center; + justify-content: flex-start; } + @media screen and (max-width: 768px) { + .level-left + .level-right { + margin-top: 1.5rem; } } + @media screen and (min-width: 769px), print { + .level-left { + display: flex; } } +.level-right { + align-items: center; + justify-content: flex-end; } + @media screen and (min-width: 769px), print { + .level-right { + display: flex; } } +.list { + background-color: white; + border-radius: 4px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); } + +.list-item { + display: block; + padding: 0.5em 1em; } + .list-item:not(a) { + color: #222222; } + .list-item:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; } + .list-item:last-child { + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; } + .list-item:not(:last-child) { + border-bottom: 1px solid #dbdbdb; } + .list-item.is-active { + background-color: #2e63b8; + color: #fff; } + +a.list-item { + background-color: whitesmoke; + cursor: pointer; } + +.media { + align-items: flex-start; + display: flex; + text-align: left; } + .media .content:not(:last-child) { + margin-bottom: 0.75rem; } + .media .media { + border-top: 1px solid rgba(219, 219, 219, 0.5); + display: flex; + padding-top: 0.75rem; } + .media .media .content:not(:last-child), + .media .media .control:not(:last-child) { + margin-bottom: 0.5rem; } + .media .media .media { + padding-top: 0.5rem; } + .media .media .media + .media { + margin-top: 0.5rem; } + .media + .media { + border-top: 1px solid rgba(219, 219, 219, 0.5); + margin-top: 1rem; + padding-top: 1rem; } + .media.is-large + .media { + margin-top: 1.5rem; + padding-top: 1.5rem; } + +.media-left, +.media-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + +.media-left { + margin-right: 1rem; } + +.media-right { + margin-left: 1rem; } + +.media-content { + flex-basis: auto; + flex-grow: 1; + flex-shrink: 1; + text-align: left; } + +@media screen and (max-width: 768px) { + .media-content { + overflow-x: auto; } } + +.menu { + font-size: 1rem; } + .menu.is-small, #documenter .docs-sidebar form.docs-search > input.menu { + font-size: 0.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: #222222; + display: block; + padding: 0.5em 0.75em; } + .menu-list a:hover { + background-color: whitesmoke; + color: #222222; } + .menu-list a.is-active { + background-color: #2e63b8; + color: #fff; } + .menu-list li ul { + border-left: 1px solid #dbdbdb; + margin: 0.75em; + padding-left: 0.75em; } + +.menu-label { + color: #6b6b6b; + font-size: 0.75em; + letter-spacing: 0.1em; + text-transform: uppercase; } + .menu-label:not(:first-child) { + margin-top: 1em; } + .menu-label:not(:last-child) { + margin-bottom: 1em; } + +.message { + background-color: whitesmoke; + 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: 0.75rem; } + .message.is-medium { + font-size: 1.25rem; } + .message.is-large { + font-size: 1.5rem; } + .message.is-white { + background-color: white; } + .message.is-white .message-header { + background-color: white; + color: #0a0a0a; } + .message.is-white .message-body { + border-color: white; + color: #4d4d4d; } + .message.is-black { + background-color: #fafafa; } + .message.is-black .message-header { + background-color: #0a0a0a; + color: white; } + .message.is-black .message-body { + border-color: #0a0a0a; + color: #090909; } + .message.is-light { + background-color: #fafafa; } + .message.is-light .message-header { + background-color: whitesmoke; + color: #363636; } + .message.is-light .message-body { + border-color: whitesmoke; + color: #505050; } + .message.is-dark, .content kbd.message { + background-color: #fafafa; } + .message.is-dark .message-header, .content kbd.message .message-header { + background-color: #363636; + color: whitesmoke; } + .message.is-dark .message-body, .content kbd.message .message-body { + border-color: #363636; + color: #2a2a2a; } + .message.is-primary, .docstring > section > a.message.docs-sourcelink { + background-color: #f6fbfd; } + .message.is-primary .message-header, .docstring > section > a.message.docs-sourcelink .message-header { + background-color: #4eb5de; + color: #fff; } + .message.is-primary .message-body, .docstring > section > a.message.docs-sourcelink .message-body { + border-color: #4eb5de; + color: #1f556a; } + .message.is-link { + background-color: #f7f9fd; } + .message.is-link .message-header { + background-color: #2e63b8; + color: #fff; } + .message.is-link .message-body { + border-color: #2e63b8; + color: #264981; } + .message.is-info { + background-color: #f6fbfe; } + .message.is-info .message-header { + background-color: #209cee; + color: #fff; } + .message.is-info .message-body { + border-color: #209cee; + color: #12537d; } + .message.is-success { + background-color: #f6fdf9; } + .message.is-success .message-header { + background-color: #22c35b; + color: #fff; } + .message.is-success .message-body { + border-color: #22c35b; + color: #0f361d; } + .message.is-warning { + background-color: #fffdf5; } + .message.is-warning .message-header { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .message.is-warning .message-body { + border-color: #ffdd57; + color: #3c3108; } + .message.is-danger { + background-color: #fff5f5; } + .message.is-danger .message-header { + background-color: #da0b00; + color: #fff; } + .message.is-danger .message-body { + border-color: #da0b00; + color: #9b0c04; } + +.message-header { + align-items: center; + background-color: #222222; + border-radius: 4px 4px 0 0; + color: #fff; + display: flex; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em 1em; + position: relative; } + .message-header .delete { + flex-grow: 0; + flex-shrink: 0; + margin-left: 0.75em; } + .message-header + .message-body { + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; } + +.message-body { + border-color: #dbdbdb; + border-radius: 4px; + border-style: solid; + border-width: 0 0 0 4px; + color: #222222; + padding: 1.25em 1.5em; } + .message-body code, + .message-body pre { + background-color: white; } + .message-body pre code { + background-color: transparent; } + +.modal { + align-items: center; + display: none; + flex-direction: column; + justify-content: center; + overflow: hidden; + position: fixed; + z-index: 40; } + .modal.is-active { + display: flex; } + +.modal-background { + background-color: rgba(10, 10, 10, 0.86); } + +.modal-content, +.modal-card { + margin: 0 20px; + max-height: calc(100vh - 160px); + overflow: auto; + position: relative; + width: 100%; } + @media screen and (min-width: 769px), print { + .modal-content, + .modal-card { + margin: 0 auto; + max-height: calc(100vh - 40px); + width: 640px; } } +.modal-close { + background: none; + height: 40px; + position: fixed; + right: 20px; + top: 20px; + width: 40px; } + +.modal-card { + display: flex; + flex-direction: column; + max-height: calc(100vh - 40px); + overflow: hidden; + -ms-overflow-y: visible; } + +.modal-card-head, +.modal-card-foot { + align-items: center; + background-color: whitesmoke; + 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: #222222; + flex-grow: 1; + flex-shrink: 0; + font-size: 1.5rem; + line-height: 1; } + +.modal-card-foot { + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + border-top: 1px solid #dbdbdb; } + .modal-card-foot .button:not(:last-child) { + margin-right: 0.5em; } + +.modal-card-body { + -webkit-overflow-scrolling: touch; + background-color: white; + flex-grow: 1; + flex-shrink: 1; + overflow: auto; + padding: 20px; } + +.navbar { + background-color: white; + min-height: 3.25rem; + position: relative; + z-index: 30; } + .navbar.is-white { + background-color: white; + 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: white; + color: #0a0a0a; } } + .navbar.is-black { + background-color: #0a0a0a; + color: white; } + .navbar.is-black .navbar-brand > .navbar-item, + .navbar.is-black .navbar-brand .navbar-link { + color: white; } + .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: black; + color: white; } + .navbar.is-black .navbar-brand .navbar-link::after { + border-color: white; } + .navbar.is-black .navbar-burger { + color: white; } + @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: white; } + .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: black; + color: white; } + .navbar.is-black .navbar-start .navbar-link::after, + .navbar.is-black .navbar-end .navbar-link::after { + border-color: white; } + .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: black; + color: white; } + .navbar.is-black .navbar-dropdown a.navbar-item.is-active { + background-color: #0a0a0a; + color: white; } } + .navbar.is-light { + background-color: whitesmoke; + color: #363636; } + .navbar.is-light .navbar-brand > .navbar-item, + .navbar.is-light .navbar-brand .navbar-link { + color: #363636; } + .navbar.is-light .navbar-brand > a.navbar-item:focus, .navbar.is-light .navbar-brand > a.navbar-item:hover, .navbar.is-light .navbar-brand > a.navbar-item.is-active, + .navbar.is-light .navbar-brand .navbar-link:focus, + .navbar.is-light .navbar-brand .navbar-link:hover, + .navbar.is-light .navbar-brand .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-brand .navbar-link::after { + border-color: #363636; } + .navbar.is-light .navbar-burger { + color: #363636; } + @media screen and (min-width: 1056px) { + .navbar.is-light .navbar-start > .navbar-item, + .navbar.is-light .navbar-start .navbar-link, + .navbar.is-light .navbar-end > .navbar-item, + .navbar.is-light .navbar-end .navbar-link { + color: #363636; } + .navbar.is-light .navbar-start > a.navbar-item:focus, .navbar.is-light .navbar-start > a.navbar-item:hover, .navbar.is-light .navbar-start > a.navbar-item.is-active, + .navbar.is-light .navbar-start .navbar-link:focus, + .navbar.is-light .navbar-start .navbar-link:hover, + .navbar.is-light .navbar-start .navbar-link.is-active, + .navbar.is-light .navbar-end > a.navbar-item:focus, + .navbar.is-light .navbar-end > a.navbar-item:hover, + .navbar.is-light .navbar-end > a.navbar-item.is-active, + .navbar.is-light .navbar-end .navbar-link:focus, + .navbar.is-light .navbar-end .navbar-link:hover, + .navbar.is-light .navbar-end .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-start .navbar-link::after, + .navbar.is-light .navbar-end .navbar-link::after { + border-color: #363636; } + .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #363636; } } + .navbar.is-dark, .content kbd.navbar { + background-color: #363636; + color: whitesmoke; } + .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: whitesmoke; } + .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: whitesmoke; } + .navbar.is-dark .navbar-brand .navbar-link::after, .content kbd.navbar .navbar-brand .navbar-link::after { + border-color: whitesmoke; } + .navbar.is-dark .navbar-burger, .content kbd.navbar .navbar-burger { + color: whitesmoke; } + @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: whitesmoke; } + .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: whitesmoke; } + .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: whitesmoke; } + .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: whitesmoke; } + .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, .content kbd.navbar .navbar-dropdown a.navbar-item.is-active { + background-color: #363636; + color: whitesmoke; } } + .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 whitesmoke; } + .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 whitesmoke; } + .navbar.is-fixed-top { + top: 0; } + +html.has-navbar-fixed-top, +body.has-navbar-fixed-top { + padding-top: 3.25rem; } + +html.has-navbar-fixed-bottom, +body.has-navbar-fixed-bottom { + padding-bottom: 3.25rem; } + +.navbar-brand, +.navbar-tabs { + align-items: stretch; + display: flex; + flex-shrink: 0; + min-height: 3.25rem; } + +.navbar-brand a.navbar-item:focus, .navbar-brand a.navbar-item:hover { + background-color: transparent; } + +.navbar-tabs { + -webkit-overflow-scrolling: touch; + max-width: 100vw; + overflow-x: auto; + overflow-y: hidden; } + +.navbar-burger { + color: #4a4a4a; + cursor: pointer; + display: block; + height: 3.25rem; + position: relative; + width: 3.25rem; + margin-left: auto; } + .navbar-burger span { + background-color: currentColor; + display: block; + height: 1px; + left: calc(50% - 8px); + position: absolute; + transform-origin: center; + transition-duration: 86ms; + transition-property: background-color, opacity, transform; + transition-timing-function: ease-out; + width: 16px; } + .navbar-burger span:nth-child(1) { + top: calc(50% - 6px); } + .navbar-burger span:nth-child(2) { + top: calc(50% - 1px); } + .navbar-burger span:nth-child(3) { + top: calc(50% + 4px); } + .navbar-burger:hover { + background-color: rgba(0, 0, 0, 0.05); } + .navbar-burger.is-active span:nth-child(1) { + transform: translateY(5px) rotate(45deg); } + .navbar-burger.is-active span:nth-child(2) { + opacity: 0; } + .navbar-burger.is-active span:nth-child(3) { + transform: translateY(-5px) rotate(-45deg); } + +.navbar-menu { + display: none; } + +.navbar-item, +.navbar-link { + color: #4a4a4a; + display: block; + line-height: 1.5; + padding: 0.5rem 0.75rem; + position: relative; } + .navbar-item .icon:only-child, + .navbar-link .icon:only-child { + margin-left: -0.25rem; + margin-right: -0.25rem; } + +a.navbar-item, +.navbar-link { + cursor: pointer; } + a.navbar-item:focus, a.navbar-item:focus-within, a.navbar-item:hover, a.navbar-item.is-active, + .navbar-link:focus, + .navbar-link:focus-within, + .navbar-link:hover, + .navbar-link.is-active { + background-color: #fafafa; + color: #2e63b8; } + +.navbar-item { + display: block; + flex-grow: 0; + flex-shrink: 0; } + .navbar-item img { + max-height: 1.75rem; } + .navbar-item.has-dropdown { + padding: 0; } + .navbar-item.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .navbar-item.is-tab { + border-bottom: 1px solid transparent; + min-height: 3.25rem; + padding-bottom: calc(0.5rem - 1px); } + .navbar-item.is-tab:focus, .navbar-item.is-tab:hover { + background-color: transparent; + border-bottom-color: #2e63b8; } + .navbar-item.is-tab.is-active { + background-color: transparent; + 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: whitesmoke; + 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: white; + 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: whitesmoke; + color: #0a0a0a; } + .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #2e63b8; } + .navbar-burger { + display: none; } + .navbar-item, + .navbar-link { + align-items: center; + display: flex; } + .navbar-item { + display: flex; } + .navbar-item.has-dropdown { + align-items: stretch; } + .navbar-item.has-dropdown-up .navbar-link::after { + transform: rotate(135deg) translate(0.25em, -0.25em); } + .navbar-item.has-dropdown-up .navbar-dropdown { + border-bottom: 2px solid #dbdbdb; + border-radius: 6px 6px 0 0; + border-top: none; + bottom: 100%; + box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1); + top: auto; } + .navbar-item.is-active .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown { + display: block; } + .navbar.is-spaced .navbar-item.is-active .navbar-dropdown, .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed { + opacity: 1; + pointer-events: auto; + transform: translateY(0); } + .navbar-menu { + flex-grow: 1; + flex-shrink: 0; } + .navbar-start { + justify-content: flex-start; + margin-right: auto; } + .navbar-end { + justify-content: flex-end; + margin-left: auto; } + .navbar-dropdown { + background-color: white; + 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: whitesmoke; + color: #0a0a0a; } + .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + 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: transparent; } + .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: -0.25rem; } + .pagination.is-small, #documenter .docs-sidebar form.docs-search > input.pagination { + font-size: 0.75rem; } + .pagination.is-medium { + font-size: 1.25rem; } + .pagination.is-large { + font-size: 1.5rem; } + .pagination.is-rounded .pagination-previous, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous, + .pagination.is-rounded .pagination-next, + #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next { + padding-left: 1em; + padding-right: 1em; + border-radius: 290486px; } + .pagination.is-rounded .pagination-link, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link { + border-radius: 290486px; } + +.pagination, +.pagination-list { + align-items: center; + display: flex; + justify-content: center; + text-align: center; } + +.pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis { + font-size: 1em; + justify-content: center; + margin: 0.25rem; + padding-left: 0.5em; + padding-right: 0.5em; + text-align: center; } + +.pagination-previous, +.pagination-next, +.pagination-link { + border-color: #dbdbdb; + color: #363636; + min-width: 2.25em; } + .pagination-previous:hover, + .pagination-next:hover, + .pagination-link:hover { + border-color: #b5b5b5; + color: #363636; } + .pagination-previous:focus, + .pagination-next:focus, + .pagination-link:focus { + border-color: #3c5dcd; } + .pagination-previous:active, + .pagination-next:active, + .pagination-link:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); } + .pagination-previous[disabled], + .pagination-next[disabled], + .pagination-link[disabled] { + background-color: #dbdbdb; + border-color: #dbdbdb; + box-shadow: none; + color: #6b6b6b; + opacity: 0.5; } + +.pagination-previous, +.pagination-next { + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + +.pagination-link.is-current { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + +.pagination-ellipsis { + color: #b5b5b5; + pointer-events: none; } + +.pagination-list { + flex-wrap: wrap; } + +@media screen and (max-width: 768px) { + .pagination { + flex-wrap: wrap; } + .pagination-previous, + .pagination-next { + flex-grow: 1; + flex-shrink: 1; } + .pagination-list li { + flex-grow: 1; + flex-shrink: 1; } } + +@media screen and (min-width: 769px), print { + .pagination-list { + flex-grow: 1; + flex-shrink: 1; + justify-content: flex-start; + order: 1; } + .pagination-previous { + order: 2; } + .pagination-next { + order: 3; } + .pagination { + justify-content: space-between; } + .pagination.is-centered .pagination-previous { + order: 1; } + .pagination.is-centered .pagination-list { + justify-content: center; + order: 2; } + .pagination.is-centered .pagination-next { + order: 3; } + .pagination.is-right .pagination-previous { + order: 1; } + .pagination.is-right .pagination-next { + order: 2; } + .pagination.is-right .pagination-list { + justify-content: flex-end; + order: 3; } } + +.panel { + font-size: 1rem; } + .panel:not(:last-child) { + margin-bottom: 1.5rem; } + +.panel-heading, +.panel-tabs, +.panel-block { + border-bottom: 1px solid #dbdbdb; + border-left: 1px solid #dbdbdb; + border-right: 1px solid #dbdbdb; } + .panel-heading:first-child, + .panel-tabs:first-child, + .panel-block:first-child { + border-top: 1px solid #dbdbdb; } + +.panel-heading { + background-color: whitesmoke; + border-radius: 4px 4px 0 0; + color: #222222; + font-size: 1.25em; + font-weight: 300; + line-height: 1.25; + padding: 0.5em 0.75em; } + +.panel-tabs { + align-items: flex-end; + display: flex; + font-size: 0.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: #222222; } + .panel-list a:hover { + color: #2e63b8; } + +.panel-block { + align-items: center; + color: #222222; + display: flex; + justify-content: flex-start; + padding: 0.5em 0.75em; } + .panel-block input[type="checkbox"] { + margin-right: 0.75em; } + .panel-block > .control { + flex-grow: 1; + flex-shrink: 1; + width: 100%; } + .panel-block.is-wrapped { + flex-wrap: wrap; } + .panel-block.is-active { + border-left-color: #2e63b8; + color: #363636; } + .panel-block.is-active .panel-icon { + color: #2e63b8; } + +a.panel-block, +label.panel-block { + cursor: pointer; } + a.panel-block:hover, + label.panel-block:hover { + background-color: whitesmoke; } + +.panel-icon { + display: inline-block; + font-size: 14px; + height: 1em; + line-height: 1em; + text-align: center; + vertical-align: top; + width: 1em; + color: #6b6b6b; + margin-right: 0.75em; } + .panel-icon .fa { + font-size: inherit; + line-height: inherit; } + +.tabs { + -webkit-overflow-scrolling: touch; + align-items: stretch; + display: flex; + font-size: 1rem; + justify-content: space-between; + overflow: hidden; + overflow-x: auto; + white-space: nowrap; } + .tabs a { + align-items: center; + border-bottom-color: #dbdbdb; + border-bottom-style: solid; + border-bottom-width: 1px; + color: #222222; + display: flex; + justify-content: center; + margin-bottom: -1px; + padding: 0.5em 1em; + vertical-align: top; } + .tabs a:hover { + border-bottom-color: #222222; + color: #222222; } + .tabs li { + display: block; } + .tabs li.is-active a { + border-bottom-color: #2e63b8; + color: #2e63b8; } + .tabs ul { + align-items: center; + border-bottom-color: #dbdbdb; + border-bottom-style: solid; + border-bottom-width: 1px; + display: flex; + flex-grow: 1; + flex-shrink: 0; + justify-content: flex-start; } + .tabs ul.is-left { + padding-right: 0.75em; } + .tabs ul.is-center { + flex: none; + justify-content: center; + padding-left: 0.75em; + padding-right: 0.75em; } + .tabs ul.is-right { + justify-content: flex-end; + padding-left: 0.75em; } + .tabs .icon:first-child { + margin-right: 0.5em; } + .tabs .icon:last-child { + margin-left: 0.5em; } + .tabs.is-centered ul { + justify-content: center; } + .tabs.is-right ul { + justify-content: flex-end; } + .tabs.is-boxed a { + border: 1px solid transparent; + border-radius: 4px 4px 0 0; } + .tabs.is-boxed a:hover { + background-color: whitesmoke; + border-bottom-color: #dbdbdb; } + .tabs.is-boxed li.is-active a { + background-color: white; + border-color: #dbdbdb; + border-bottom-color: transparent !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: whitesmoke; + border-color: #b5b5b5; + z-index: 2; } + .tabs.is-toggle li + li { + margin-left: -1px; } + .tabs.is-toggle li:first-child a { + border-radius: 4px 0 0 4px; } + .tabs.is-toggle li:last-child a { + border-radius: 0 4px 4px 0; } + .tabs.is-toggle li.is-active a { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; + z-index: 1; } + .tabs.is-toggle ul { + border-bottom: none; } + .tabs.is-toggle.is-toggle-rounded li:first-child a { + border-bottom-left-radius: 290486px; + border-top-left-radius: 290486px; + padding-left: 1.25em; } + .tabs.is-toggle.is-toggle-rounded li:last-child a { + border-bottom-right-radius: 290486px; + border-top-right-radius: 290486px; + padding-right: 1.25em; } + .tabs.is-small, #documenter .docs-sidebar form.docs-search > input.tabs { + font-size: 0.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: 0.75rem; } + .columns.is-mobile > .column.is-narrow { + flex: none; } + .columns.is-mobile > .column.is-full { + flex: none; + width: 100%; } + .columns.is-mobile > .column.is-three-quarters { + flex: none; + width: 75%; } + .columns.is-mobile > .column.is-two-thirds { + flex: none; + width: 66.6666%; } + .columns.is-mobile > .column.is-half { + flex: none; + width: 50%; } + .columns.is-mobile > .column.is-one-third { + flex: none; + width: 33.3333%; } + .columns.is-mobile > .column.is-one-quarter { + flex: none; + width: 25%; } + .columns.is-mobile > .column.is-one-fifth { + flex: none; + width: 20%; } + .columns.is-mobile > .column.is-two-fifths { + flex: none; + width: 40%; } + .columns.is-mobile > .column.is-three-fifths { + flex: none; + width: 60%; } + .columns.is-mobile > .column.is-four-fifths { + flex: none; + width: 80%; } + .columns.is-mobile > .column.is-offset-three-quarters { + margin-left: 75%; } + .columns.is-mobile > .column.is-offset-two-thirds { + margin-left: 66.6666%; } + .columns.is-mobile > .column.is-offset-half { + margin-left: 50%; } + .columns.is-mobile > .column.is-offset-one-third { + margin-left: 33.3333%; } + .columns.is-mobile > .column.is-offset-one-quarter { + margin-left: 25%; } + .columns.is-mobile > .column.is-offset-one-fifth { + margin-left: 20%; } + .columns.is-mobile > .column.is-offset-two-fifths { + margin-left: 40%; } + .columns.is-mobile > .column.is-offset-three-fifths { + margin-left: 60%; } + .columns.is-mobile > .column.is-offset-four-fifths { + margin-left: 80%; } + .columns.is-mobile > .column.is-0 { + flex: none; + width: 0%; } + .columns.is-mobile > .column.is-offset-0 { + margin-left: 0%; } + .columns.is-mobile > .column.is-1 { + flex: none; + width: 8.3333333333%; } + .columns.is-mobile > .column.is-offset-1 { + margin-left: 8.3333333333%; } + .columns.is-mobile > .column.is-2 { + flex: none; + width: 16.6666666667%; } + .columns.is-mobile > .column.is-offset-2 { + margin-left: 16.6666666667%; } + .columns.is-mobile > .column.is-3 { + flex: none; + width: 25%; } + .columns.is-mobile > .column.is-offset-3 { + margin-left: 25%; } + .columns.is-mobile > .column.is-4 { + flex: none; + width: 33.3333333333%; } + .columns.is-mobile > .column.is-offset-4 { + margin-left: 33.3333333333%; } + .columns.is-mobile > .column.is-5 { + flex: none; + width: 41.6666666667%; } + .columns.is-mobile > .column.is-offset-5 { + margin-left: 41.6666666667%; } + .columns.is-mobile > .column.is-6 { + flex: none; + width: 50%; } + .columns.is-mobile > .column.is-offset-6 { + margin-left: 50%; } + .columns.is-mobile > .column.is-7 { + flex: none; + width: 58.3333333333%; } + .columns.is-mobile > .column.is-offset-7 { + margin-left: 58.3333333333%; } + .columns.is-mobile > .column.is-8 { + flex: none; + width: 66.6666666667%; } + .columns.is-mobile > .column.is-offset-8 { + margin-left: 66.6666666667%; } + .columns.is-mobile > .column.is-9 { + flex: none; + width: 75%; } + .columns.is-mobile > .column.is-offset-9 { + margin-left: 75%; } + .columns.is-mobile > .column.is-10 { + flex: none; + width: 83.3333333333%; } + .columns.is-mobile > .column.is-offset-10 { + margin-left: 83.3333333333%; } + .columns.is-mobile > .column.is-11 { + flex: none; + width: 91.6666666667%; } + .columns.is-mobile > .column.is-offset-11 { + margin-left: 91.6666666667%; } + .columns.is-mobile > .column.is-12 { + flex: none; + width: 100%; } + .columns.is-mobile > .column.is-offset-12 { + margin-left: 100%; } + @media screen and (max-width: 768px) { + .column.is-narrow-mobile { + flex: none; } + .column.is-full-mobile { + flex: none; + width: 100%; } + .column.is-three-quarters-mobile { + flex: none; + width: 75%; } + .column.is-two-thirds-mobile { + flex: none; + width: 66.6666%; } + .column.is-half-mobile { + flex: none; + width: 50%; } + .column.is-one-third-mobile { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-mobile { + flex: none; + width: 25%; } + .column.is-one-fifth-mobile { + flex: none; + width: 20%; } + .column.is-two-fifths-mobile { + flex: none; + width: 40%; } + .column.is-three-fifths-mobile { + flex: none; + width: 60%; } + .column.is-four-fifths-mobile { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-mobile { + margin-left: 75%; } + .column.is-offset-two-thirds-mobile { + margin-left: 66.6666%; } + .column.is-offset-half-mobile { + margin-left: 50%; } + .column.is-offset-one-third-mobile { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-mobile { + margin-left: 25%; } + .column.is-offset-one-fifth-mobile { + margin-left: 20%; } + .column.is-offset-two-fifths-mobile { + margin-left: 40%; } + .column.is-offset-three-fifths-mobile { + margin-left: 60%; } + .column.is-offset-four-fifths-mobile { + margin-left: 80%; } + .column.is-0-mobile { + flex: none; + width: 0%; } + .column.is-offset-0-mobile { + margin-left: 0%; } + .column.is-1-mobile { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-mobile { + margin-left: 8.3333333333%; } + .column.is-2-mobile { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-mobile { + margin-left: 16.6666666667%; } + .column.is-3-mobile { + flex: none; + width: 25%; } + .column.is-offset-3-mobile { + margin-left: 25%; } + .column.is-4-mobile { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-mobile { + margin-left: 33.3333333333%; } + .column.is-5-mobile { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-mobile { + margin-left: 41.6666666667%; } + .column.is-6-mobile { + flex: none; + width: 50%; } + .column.is-offset-6-mobile { + margin-left: 50%; } + .column.is-7-mobile { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-mobile { + margin-left: 58.3333333333%; } + .column.is-8-mobile { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-mobile { + margin-left: 66.6666666667%; } + .column.is-9-mobile { + flex: none; + width: 75%; } + .column.is-offset-9-mobile { + margin-left: 75%; } + .column.is-10-mobile { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-mobile { + margin-left: 83.3333333333%; } + .column.is-11-mobile { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-mobile { + margin-left: 91.6666666667%; } + .column.is-12-mobile { + flex: none; + width: 100%; } + .column.is-offset-12-mobile { + margin-left: 100%; } } + @media screen and (min-width: 769px), print { + .column.is-narrow, .column.is-narrow-tablet { + flex: none; } + .column.is-full, .column.is-full-tablet { + flex: none; + width: 100%; } + .column.is-three-quarters, .column.is-three-quarters-tablet { + flex: none; + width: 75%; } + .column.is-two-thirds, .column.is-two-thirds-tablet { + flex: none; + width: 66.6666%; } + .column.is-half, .column.is-half-tablet { + flex: none; + width: 50%; } + .column.is-one-third, .column.is-one-third-tablet { + flex: none; + width: 33.3333%; } + .column.is-one-quarter, .column.is-one-quarter-tablet { + flex: none; + width: 25%; } + .column.is-one-fifth, .column.is-one-fifth-tablet { + flex: none; + width: 20%; } + .column.is-two-fifths, .column.is-two-fifths-tablet { + flex: none; + width: 40%; } + .column.is-three-fifths, .column.is-three-fifths-tablet { + flex: none; + width: 60%; } + .column.is-four-fifths, .column.is-four-fifths-tablet { + flex: none; + width: 80%; } + .column.is-offset-three-quarters, .column.is-offset-three-quarters-tablet { + margin-left: 75%; } + .column.is-offset-two-thirds, .column.is-offset-two-thirds-tablet { + margin-left: 66.6666%; } + .column.is-offset-half, .column.is-offset-half-tablet { + margin-left: 50%; } + .column.is-offset-one-third, .column.is-offset-one-third-tablet { + margin-left: 33.3333%; } + .column.is-offset-one-quarter, .column.is-offset-one-quarter-tablet { + margin-left: 25%; } + .column.is-offset-one-fifth, .column.is-offset-one-fifth-tablet { + margin-left: 20%; } + .column.is-offset-two-fifths, .column.is-offset-two-fifths-tablet { + margin-left: 40%; } + .column.is-offset-three-fifths, .column.is-offset-three-fifths-tablet { + margin-left: 60%; } + .column.is-offset-four-fifths, .column.is-offset-four-fifths-tablet { + margin-left: 80%; } + .column.is-0, .column.is-0-tablet { + flex: none; + width: 0%; } + .column.is-offset-0, .column.is-offset-0-tablet { + margin-left: 0%; } + .column.is-1, .column.is-1-tablet { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1, .column.is-offset-1-tablet { + margin-left: 8.3333333333%; } + .column.is-2, .column.is-2-tablet { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2, .column.is-offset-2-tablet { + margin-left: 16.6666666667%; } + .column.is-3, .column.is-3-tablet { + flex: none; + width: 25%; } + .column.is-offset-3, .column.is-offset-3-tablet { + margin-left: 25%; } + .column.is-4, .column.is-4-tablet { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4, .column.is-offset-4-tablet { + margin-left: 33.3333333333%; } + .column.is-5, .column.is-5-tablet { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5, .column.is-offset-5-tablet { + margin-left: 41.6666666667%; } + .column.is-6, .column.is-6-tablet { + flex: none; + width: 50%; } + .column.is-offset-6, .column.is-offset-6-tablet { + margin-left: 50%; } + .column.is-7, .column.is-7-tablet { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7, .column.is-offset-7-tablet { + margin-left: 58.3333333333%; } + .column.is-8, .column.is-8-tablet { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8, .column.is-offset-8-tablet { + margin-left: 66.6666666667%; } + .column.is-9, .column.is-9-tablet { + flex: none; + width: 75%; } + .column.is-offset-9, .column.is-offset-9-tablet { + margin-left: 75%; } + .column.is-10, .column.is-10-tablet { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10, .column.is-offset-10-tablet { + margin-left: 83.3333333333%; } + .column.is-11, .column.is-11-tablet { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11, .column.is-offset-11-tablet { + margin-left: 91.6666666667%; } + .column.is-12, .column.is-12-tablet { + flex: none; + width: 100%; } + .column.is-offset-12, .column.is-offset-12-tablet { + margin-left: 100%; } } + @media screen and (max-width: 1055px) { + .column.is-narrow-touch { + flex: none; } + .column.is-full-touch { + flex: none; + width: 100%; } + .column.is-three-quarters-touch { + flex: none; + width: 75%; } + .column.is-two-thirds-touch { + flex: none; + width: 66.6666%; } + .column.is-half-touch { + flex: none; + width: 50%; } + .column.is-one-third-touch { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-touch { + flex: none; + width: 25%; } + .column.is-one-fifth-touch { + flex: none; + width: 20%; } + .column.is-two-fifths-touch { + flex: none; + width: 40%; } + .column.is-three-fifths-touch { + flex: none; + width: 60%; } + .column.is-four-fifths-touch { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-touch { + margin-left: 75%; } + .column.is-offset-two-thirds-touch { + margin-left: 66.6666%; } + .column.is-offset-half-touch { + margin-left: 50%; } + .column.is-offset-one-third-touch { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-touch { + margin-left: 25%; } + .column.is-offset-one-fifth-touch { + margin-left: 20%; } + .column.is-offset-two-fifths-touch { + margin-left: 40%; } + .column.is-offset-three-fifths-touch { + margin-left: 60%; } + .column.is-offset-four-fifths-touch { + margin-left: 80%; } + .column.is-0-touch { + flex: none; + width: 0%; } + .column.is-offset-0-touch { + margin-left: 0%; } + .column.is-1-touch { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-touch { + margin-left: 8.3333333333%; } + .column.is-2-touch { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-touch { + margin-left: 16.6666666667%; } + .column.is-3-touch { + flex: none; + width: 25%; } + .column.is-offset-3-touch { + margin-left: 25%; } + .column.is-4-touch { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-touch { + margin-left: 33.3333333333%; } + .column.is-5-touch { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-touch { + margin-left: 41.6666666667%; } + .column.is-6-touch { + flex: none; + width: 50%; } + .column.is-offset-6-touch { + margin-left: 50%; } + .column.is-7-touch { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-touch { + margin-left: 58.3333333333%; } + .column.is-8-touch { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-touch { + margin-left: 66.6666666667%; } + .column.is-9-touch { + flex: none; + width: 75%; } + .column.is-offset-9-touch { + margin-left: 75%; } + .column.is-10-touch { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-touch { + margin-left: 83.3333333333%; } + .column.is-11-touch { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-touch { + margin-left: 91.6666666667%; } + .column.is-12-touch { + flex: none; + width: 100%; } + .column.is-offset-12-touch { + margin-left: 100%; } } + @media screen and (min-width: 1056px) { + .column.is-narrow-desktop { + flex: none; } + .column.is-full-desktop { + flex: none; + width: 100%; } + .column.is-three-quarters-desktop { + flex: none; + width: 75%; } + .column.is-two-thirds-desktop { + flex: none; + width: 66.6666%; } + .column.is-half-desktop { + flex: none; + width: 50%; } + .column.is-one-third-desktop { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-desktop { + flex: none; + width: 25%; } + .column.is-one-fifth-desktop { + flex: none; + width: 20%; } + .column.is-two-fifths-desktop { + flex: none; + width: 40%; } + .column.is-three-fifths-desktop { + flex: none; + width: 60%; } + .column.is-four-fifths-desktop { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-desktop { + margin-left: 75%; } + .column.is-offset-two-thirds-desktop { + margin-left: 66.6666%; } + .column.is-offset-half-desktop { + margin-left: 50%; } + .column.is-offset-one-third-desktop { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-desktop { + margin-left: 25%; } + .column.is-offset-one-fifth-desktop { + margin-left: 20%; } + .column.is-offset-two-fifths-desktop { + margin-left: 40%; } + .column.is-offset-three-fifths-desktop { + margin-left: 60%; } + .column.is-offset-four-fifths-desktop { + margin-left: 80%; } + .column.is-0-desktop { + flex: none; + width: 0%; } + .column.is-offset-0-desktop { + margin-left: 0%; } + .column.is-1-desktop { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-desktop { + margin-left: 8.3333333333%; } + .column.is-2-desktop { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-desktop { + margin-left: 16.6666666667%; } + .column.is-3-desktop { + flex: none; + width: 25%; } + .column.is-offset-3-desktop { + margin-left: 25%; } + .column.is-4-desktop { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-desktop { + margin-left: 33.3333333333%; } + .column.is-5-desktop { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-desktop { + margin-left: 41.6666666667%; } + .column.is-6-desktop { + flex: none; + width: 50%; } + .column.is-offset-6-desktop { + margin-left: 50%; } + .column.is-7-desktop { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-desktop { + margin-left: 58.3333333333%; } + .column.is-8-desktop { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-desktop { + margin-left: 66.6666666667%; } + .column.is-9-desktop { + flex: none; + width: 75%; } + .column.is-offset-9-desktop { + margin-left: 75%; } + .column.is-10-desktop { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-desktop { + margin-left: 83.3333333333%; } + .column.is-11-desktop { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-desktop { + margin-left: 91.6666666667%; } + .column.is-12-desktop { + flex: none; + width: 100%; } + .column.is-offset-12-desktop { + margin-left: 100%; } } + @media screen and (min-width: 1216px) { + .column.is-narrow-widescreen { + flex: none; } + .column.is-full-widescreen { + flex: none; + width: 100%; } + .column.is-three-quarters-widescreen { + flex: none; + width: 75%; } + .column.is-two-thirds-widescreen { + flex: none; + width: 66.6666%; } + .column.is-half-widescreen { + flex: none; + width: 50%; } + .column.is-one-third-widescreen { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-widescreen { + flex: none; + width: 25%; } + .column.is-one-fifth-widescreen { + flex: none; + width: 20%; } + .column.is-two-fifths-widescreen { + flex: none; + width: 40%; } + .column.is-three-fifths-widescreen { + flex: none; + width: 60%; } + .column.is-four-fifths-widescreen { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-widescreen { + margin-left: 75%; } + .column.is-offset-two-thirds-widescreen { + margin-left: 66.6666%; } + .column.is-offset-half-widescreen { + margin-left: 50%; } + .column.is-offset-one-third-widescreen { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-widescreen { + margin-left: 25%; } + .column.is-offset-one-fifth-widescreen { + margin-left: 20%; } + .column.is-offset-two-fifths-widescreen { + margin-left: 40%; } + .column.is-offset-three-fifths-widescreen { + margin-left: 60%; } + .column.is-offset-four-fifths-widescreen { + margin-left: 80%; } + .column.is-0-widescreen { + flex: none; + width: 0%; } + .column.is-offset-0-widescreen { + margin-left: 0%; } + .column.is-1-widescreen { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-widescreen { + margin-left: 8.3333333333%; } + .column.is-2-widescreen { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-widescreen { + margin-left: 16.6666666667%; } + .column.is-3-widescreen { + flex: none; + width: 25%; } + .column.is-offset-3-widescreen { + margin-left: 25%; } + .column.is-4-widescreen { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-widescreen { + margin-left: 33.3333333333%; } + .column.is-5-widescreen { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-widescreen { + margin-left: 41.6666666667%; } + .column.is-6-widescreen { + flex: none; + width: 50%; } + .column.is-offset-6-widescreen { + margin-left: 50%; } + .column.is-7-widescreen { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-widescreen { + margin-left: 58.3333333333%; } + .column.is-8-widescreen { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-widescreen { + margin-left: 66.6666666667%; } + .column.is-9-widescreen { + flex: none; + width: 75%; } + .column.is-offset-9-widescreen { + margin-left: 75%; } + .column.is-10-widescreen { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-widescreen { + margin-left: 83.3333333333%; } + .column.is-11-widescreen { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-widescreen { + margin-left: 91.6666666667%; } + .column.is-12-widescreen { + flex: none; + width: 100%; } + .column.is-offset-12-widescreen { + margin-left: 100%; } } + @media screen and (min-width: 1408px) { + .column.is-narrow-fullhd { + flex: none; } + .column.is-full-fullhd { + flex: none; + width: 100%; } + .column.is-three-quarters-fullhd { + flex: none; + width: 75%; } + .column.is-two-thirds-fullhd { + flex: none; + width: 66.6666%; } + .column.is-half-fullhd { + flex: none; + width: 50%; } + .column.is-one-third-fullhd { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-fullhd { + flex: none; + width: 25%; } + .column.is-one-fifth-fullhd { + flex: none; + width: 20%; } + .column.is-two-fifths-fullhd { + flex: none; + width: 40%; } + .column.is-three-fifths-fullhd { + flex: none; + width: 60%; } + .column.is-four-fifths-fullhd { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-fullhd { + margin-left: 75%; } + .column.is-offset-two-thirds-fullhd { + margin-left: 66.6666%; } + .column.is-offset-half-fullhd { + margin-left: 50%; } + .column.is-offset-one-third-fullhd { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-fullhd { + margin-left: 25%; } + .column.is-offset-one-fifth-fullhd { + margin-left: 20%; } + .column.is-offset-two-fifths-fullhd { + margin-left: 40%; } + .column.is-offset-three-fifths-fullhd { + margin-left: 60%; } + .column.is-offset-four-fifths-fullhd { + margin-left: 80%; } + .column.is-0-fullhd { + flex: none; + width: 0%; } + .column.is-offset-0-fullhd { + margin-left: 0%; } + .column.is-1-fullhd { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-fullhd { + margin-left: 8.3333333333%; } + .column.is-2-fullhd { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-fullhd { + margin-left: 16.6666666667%; } + .column.is-3-fullhd { + flex: none; + width: 25%; } + .column.is-offset-3-fullhd { + margin-left: 25%; } + .column.is-4-fullhd { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-fullhd { + margin-left: 33.3333333333%; } + .column.is-5-fullhd { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-fullhd { + margin-left: 41.6666666667%; } + .column.is-6-fullhd { + flex: none; + width: 50%; } + .column.is-offset-6-fullhd { + margin-left: 50%; } + .column.is-7-fullhd { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-fullhd { + margin-left: 58.3333333333%; } + .column.is-8-fullhd { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-fullhd { + margin-left: 66.6666666667%; } + .column.is-9-fullhd { + flex: none; + width: 75%; } + .column.is-offset-9-fullhd { + margin-left: 75%; } + .column.is-10-fullhd { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-fullhd { + margin-left: 83.3333333333%; } + .column.is-11-fullhd { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-fullhd { + margin-left: 91.6666666667%; } + .column.is-12-fullhd { + flex: none; + width: 100%; } + .column.is-offset-12-fullhd { + margin-left: 100%; } } +.columns { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + .columns:last-child { + margin-bottom: -0.75rem; } + .columns:not(:last-child) { + margin-bottom: calc(1.5rem - 0.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: 0.25rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-1-mobile { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-1-tablet { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-1-tablet-only { + --columnGap: 0.25rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-1-touch { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-1-desktop { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-1-desktop-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-1-widescreen { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-1-widescreen-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-1-fullhd { + --columnGap: 0.25rem; } } + .columns.is-variable.is-2 { + --columnGap: 0.5rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-2-mobile { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-2-tablet { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-2-tablet-only { + --columnGap: 0.5rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-2-touch { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-2-desktop { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-2-desktop-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-2-widescreen { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-2-widescreen-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-2-fullhd { + --columnGap: 0.5rem; } } + .columns.is-variable.is-3 { + --columnGap: 0.75rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-3-mobile { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-3-tablet { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-3-tablet-only { + --columnGap: 0.75rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-3-touch { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-3-desktop { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-3-desktop-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-3-widescreen { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-3-widescreen-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-3-fullhd { + --columnGap: 0.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: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + .tile.is-ancestor:last-child { + margin-bottom: -0.75rem; } + .tile.is-ancestor:not(:last-child) { + margin-bottom: 0.75rem; } + .tile.is-child { + margin: 0 !important; } + .tile.is-parent { + padding: 0.75rem; } + .tile.is-vertical { + flex-direction: column; } + .tile.is-vertical > .tile.is-child:not(:last-child) { + margin-bottom: 1.5rem !important; } + @media screen and (min-width: 769px), print { + .tile:not(.is-child) { + display: flex; } + .tile.is-1 { + flex: none; + width: 8.3333333333%; } + .tile.is-2 { + flex: none; + width: 16.6666666667%; } + .tile.is-3 { + flex: none; + width: 25%; } + .tile.is-4 { + flex: none; + width: 33.3333333333%; } + .tile.is-5 { + flex: none; + width: 41.6666666667%; } + .tile.is-6 { + flex: none; + width: 50%; } + .tile.is-7 { + flex: none; + width: 58.3333333333%; } + .tile.is-8 { + flex: none; + width: 66.6666666667%; } + .tile.is-9 { + flex: none; + width: 75%; } + .tile.is-10 { + flex: none; + width: 83.3333333333%; } + .tile.is-11 { + flex: none; + width: 91.6666666667%; } + .tile.is-12 { + flex: none; + width: 100%; } } +.hero { + align-items: stretch; + display: flex; + flex-direction: column; + justify-content: space-between; } + .hero .navbar { + background: none; } + .hero .tabs ul { + border-bottom: none; } + .hero.is-white { + background-color: white; + 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: white; } } + .hero.is-white .navbar-item, + .hero.is-white .navbar-link { + color: rgba(10, 10, 10, 0.7); } + .hero.is-white a.navbar-item:hover, .hero.is-white a.navbar-item.is-active, + .hero.is-white .navbar-link:hover, + .hero.is-white .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + .hero.is-white .tabs a { + color: #0a0a0a; + opacity: 0.9; } + .hero.is-white .tabs a:hover { + opacity: 1; } + .hero.is-white .tabs li.is-active a { + opacity: 1; } + .hero.is-white .tabs.is-boxed a, .hero.is-white .tabs.is-toggle a { + color: #0a0a0a; } + .hero.is-white .tabs.is-boxed a:hover, .hero.is-white .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-white .tabs.is-boxed li.is-active a, .hero.is-white .tabs.is-boxed li.is-active a:hover, .hero.is-white .tabs.is-toggle li.is-active a, .hero.is-white .tabs.is-toggle li.is-active a:hover { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .hero.is-white.is-bold { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } + @media screen and (max-width: 768px) { + .hero.is-white.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } } + .hero.is-black { + background-color: #0a0a0a; + color: white; } + .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: white; } + .hero.is-black .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-black .subtitle a:not(.button), + .hero.is-black .subtitle strong { + color: white; } + @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: black; + color: white; } + .hero.is-black .tabs a { + color: white; + opacity: 0.9; } + .hero.is-black .tabs a:hover { + opacity: 1; } + .hero.is-black .tabs li.is-active a { + opacity: 1; } + .hero.is-black .tabs.is-boxed a, .hero.is-black .tabs.is-toggle a { + color: white; } + .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: white; + border-color: white; + color: #0a0a0a; } + .hero.is-black.is-bold { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } + @media screen and (max-width: 768px) { + .hero.is-black.is-bold .navbar-menu { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } } + .hero.is-light { + background-color: whitesmoke; + color: #363636; } + .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-light strong { + color: inherit; } + .hero.is-light .title { + color: #363636; } + .hero.is-light .subtitle { + color: rgba(54, 54, 54, 0.9); } + .hero.is-light .subtitle a:not(.button), + .hero.is-light .subtitle strong { + color: #363636; } + @media screen and (max-width: 1055px) { + .hero.is-light .navbar-menu { + background-color: whitesmoke; } } + .hero.is-light .navbar-item, + .hero.is-light .navbar-link { + color: rgba(54, 54, 54, 0.7); } + .hero.is-light a.navbar-item:hover, .hero.is-light a.navbar-item.is-active, + .hero.is-light .navbar-link:hover, + .hero.is-light .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .hero.is-light .tabs a { + color: #363636; + opacity: 0.9; } + .hero.is-light .tabs a:hover { + opacity: 1; } + .hero.is-light .tabs li.is-active a { + opacity: 1; } + .hero.is-light .tabs.is-boxed a, .hero.is-light .tabs.is-toggle a { + color: #363636; } + .hero.is-light .tabs.is-boxed a:hover, .hero.is-light .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-light .tabs.is-boxed li.is-active a, .hero.is-light .tabs.is-boxed li.is-active a:hover, .hero.is-light .tabs.is-toggle li.is-active a, .hero.is-light .tabs.is-toggle li.is-active a:hover { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .hero.is-light.is-bold { + background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } + @media screen and (max-width: 768px) { + .hero.is-light.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } } + .hero.is-dark, .content kbd.hero { + background-color: #363636; + color: whitesmoke; } + .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: whitesmoke; } + .hero.is-dark .subtitle, .content kbd.hero .subtitle { + color: rgba(245, 245, 245, 0.9); } + .hero.is-dark .subtitle a:not(.button), .content kbd.hero .subtitle a:not(.button), + .hero.is-dark .subtitle strong, + .content kbd.hero .subtitle strong { + color: whitesmoke; } + @media screen and (max-width: 1055px) { + .hero.is-dark .navbar-menu, .content kbd.hero .navbar-menu { + background-color: #363636; } } + .hero.is-dark .navbar-item, .content kbd.hero .navbar-item, + .hero.is-dark .navbar-link, + .content kbd.hero .navbar-link { + color: rgba(245, 245, 245, 0.7); } + .hero.is-dark a.navbar-item:hover, .content kbd.hero a.navbar-item:hover, .hero.is-dark a.navbar-item.is-active, .content kbd.hero a.navbar-item.is-active, + .hero.is-dark .navbar-link:hover, + .content kbd.hero .navbar-link:hover, + .hero.is-dark .navbar-link.is-active, + .content kbd.hero .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; } + .hero.is-dark .tabs a, .content kbd.hero .tabs a { + color: whitesmoke; + opacity: 0.9; } + .hero.is-dark .tabs a:hover, .content kbd.hero .tabs a:hover { + opacity: 1; } + .hero.is-dark .tabs li.is-active a, .content kbd.hero .tabs li.is-active a { + opacity: 1; } + .hero.is-dark .tabs.is-boxed a, .content kbd.hero .tabs.is-boxed a, .hero.is-dark .tabs.is-toggle a, .content kbd.hero .tabs.is-toggle a { + color: whitesmoke; } + .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: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .hero.is-dark.is-bold, .content kbd.hero.is-bold { + background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); } + @media screen and (max-width: 768px) { + .hero.is-dark.is-bold .navbar-menu, .content kbd.hero.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); } } + .hero.is-primary, .docstring > section > a.hero.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-primary strong, + .docstring > section > a.hero.docs-sourcelink strong { + color: inherit; } + .hero.is-primary .title, .docstring > section > a.hero.docs-sourcelink .title { + color: #fff; } + .hero.is-primary .subtitle, .docstring > section > a.hero.docs-sourcelink .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-primary .subtitle a:not(.button), .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button), + .hero.is-primary .subtitle strong, + .docstring > section > a.hero.docs-sourcelink .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-primary .navbar-menu, .docstring > section > a.hero.docs-sourcelink .navbar-menu { + background-color: #4eb5de; } } + .hero.is-primary .navbar-item, .docstring > section > a.hero.docs-sourcelink .navbar-item, + .hero.is-primary .navbar-link, + .docstring > section > a.hero.docs-sourcelink .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-primary a.navbar-item:hover, .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, .hero.is-primary a.navbar-item.is-active, .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active, + .hero.is-primary .navbar-link:hover, + .docstring > section > a.hero.docs-sourcelink .navbar-link:hover, + .hero.is-primary .navbar-link.is-active, + .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active { + background-color: #39acda; + color: #fff; } + .hero.is-primary .tabs a, .docstring > section > a.hero.docs-sourcelink .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-primary .tabs a:hover, .docstring > section > a.hero.docs-sourcelink .tabs a:hover { + opacity: 1; } + .hero.is-primary .tabs li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a { + opacity: 1; } + .hero.is-primary .tabs.is-boxed a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, .hero.is-primary .tabs.is-toggle a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a { + color: #fff; } + .hero.is-primary .tabs.is-boxed a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, .hero.is-primary .tabs.is-toggle a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-primary .tabs.is-boxed li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, .hero.is-primary .tabs.is-boxed li.is-active a:hover, .hero.is-primary .tabs.is-toggle li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, .hero.is-primary .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #4eb5de; } + .hero.is-primary.is-bold, .docstring > section > a.hero.is-bold.docs-sourcelink { + background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); } + @media screen and (max-width: 768px) { + .hero.is-primary.is-bold .navbar-menu, .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu { + background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); } } + .hero.is-link { + background-color: #2e63b8; + color: #fff; } + .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-link strong { + color: inherit; } + .hero.is-link .title { + color: #fff; } + .hero.is-link .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-link .subtitle a:not(.button), + .hero.is-link .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-link .navbar-menu { + background-color: #2e63b8; } } + .hero.is-link .navbar-item, + .hero.is-link .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-link a.navbar-item:hover, .hero.is-link a.navbar-item.is-active, + .hero.is-link .navbar-link:hover, + .hero.is-link .navbar-link.is-active { + background-color: #2958a4; + color: #fff; } + .hero.is-link .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-link .tabs a:hover { + opacity: 1; } + .hero.is-link .tabs li.is-active a { + opacity: 1; } + .hero.is-link .tabs.is-boxed a, .hero.is-link .tabs.is-toggle a { + color: #fff; } + .hero.is-link .tabs.is-boxed a:hover, .hero.is-link .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-link .tabs.is-boxed li.is-active a, .hero.is-link .tabs.is-boxed li.is-active a:hover, .hero.is-link .tabs.is-toggle li.is-active a, .hero.is-link .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #2e63b8; } + .hero.is-link.is-bold { + background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); } + @media screen and (max-width: 768px) { + .hero.is-link.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); } } + .hero.is-info { + background-color: #209cee; + color: #fff; } + .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-info strong { + color: inherit; } + .hero.is-info .title { + color: #fff; } + .hero.is-info .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-info .subtitle a:not(.button), + .hero.is-info .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-info .navbar-menu { + background-color: #209cee; } } + .hero.is-info .navbar-item, + .hero.is-info .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-info a.navbar-item:hover, .hero.is-info a.navbar-item.is-active, + .hero.is-info .navbar-link:hover, + .hero.is-info .navbar-link.is-active { + background-color: #1190e3; + color: #fff; } + .hero.is-info .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-info .tabs a:hover { + opacity: 1; } + .hero.is-info .tabs li.is-active a { + opacity: 1; } + .hero.is-info .tabs.is-boxed a, .hero.is-info .tabs.is-toggle a { + color: #fff; } + .hero.is-info .tabs.is-boxed a:hover, .hero.is-info .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-info .tabs.is-boxed li.is-active a, .hero.is-info .tabs.is-boxed li.is-active a:hover, .hero.is-info .tabs.is-toggle li.is-active a, .hero.is-info .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #209cee; } + .hero.is-info.is-bold { + background-image: linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%); } + @media screen and (max-width: 768px) { + .hero.is-info.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%); } } + .hero.is-success { + background-color: #22c35b; + color: #fff; } + .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-success strong { + color: inherit; } + .hero.is-success .title { + color: #fff; } + .hero.is-success .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-success .subtitle a:not(.button), + .hero.is-success .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-success .navbar-menu { + background-color: #22c35b; } } + .hero.is-success .navbar-item, + .hero.is-success .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-success a.navbar-item:hover, .hero.is-success a.navbar-item.is-active, + .hero.is-success .navbar-link:hover, + .hero.is-success .navbar-link.is-active { + background-color: #1ead51; + color: #fff; } + .hero.is-success .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-success .tabs a:hover { + opacity: 1; } + .hero.is-success .tabs li.is-active a { + opacity: 1; } + .hero.is-success .tabs.is-boxed a, .hero.is-success .tabs.is-toggle a { + color: #fff; } + .hero.is-success .tabs.is-boxed a:hover, .hero.is-success .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-success .tabs.is-boxed li.is-active a, .hero.is-success .tabs.is-boxed li.is-active a:hover, .hero.is-success .tabs.is-toggle li.is-active a, .hero.is-success .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #22c35b; } + .hero.is-success.is-bold { + background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); } + @media screen and (max-width: 768px) { + .hero.is-success.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); } } + .hero.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-warning strong { + color: inherit; } + .hero.is-warning .title { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .subtitle { + color: rgba(0, 0, 0, 0.9); } + .hero.is-warning .subtitle a:not(.button), + .hero.is-warning .subtitle strong { + color: rgba(0, 0, 0, 0.7); } + @media screen and (max-width: 1055px) { + .hero.is-warning .navbar-menu { + background-color: #ffdd57; } } + .hero.is-warning .navbar-item, + .hero.is-warning .navbar-link { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning a.navbar-item:hover, .hero.is-warning a.navbar-item.is-active, + .hero.is-warning .navbar-link:hover, + .hero.is-warning .navbar-link.is-active { + background-color: #ffd83e; + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .tabs a { + color: rgba(0, 0, 0, 0.7); + opacity: 0.9; } + .hero.is-warning .tabs a:hover { + opacity: 1; } + .hero.is-warning .tabs li.is-active a { + opacity: 1; } + .hero.is-warning .tabs.is-boxed a, .hero.is-warning .tabs.is-toggle a { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .tabs.is-boxed a:hover, .hero.is-warning .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-warning .tabs.is-boxed li.is-active a, .hero.is-warning .tabs.is-boxed li.is-active a:hover, .hero.is-warning .tabs.is-toggle li.is-active a, .hero.is-warning .tabs.is-toggle li.is-active a:hover { + background-color: rgba(0, 0, 0, 0.7); + border-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .hero.is-warning.is-bold { + background-image: linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%); } + @media screen and (max-width: 768px) { + .hero.is-warning.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%); } } + .hero.is-danger { + background-color: #da0b00; + color: #fff; } + .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-danger strong { + color: inherit; } + .hero.is-danger .title { + color: #fff; } + .hero.is-danger .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-danger .subtitle a:not(.button), + .hero.is-danger .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-danger .navbar-menu { + background-color: #da0b00; } } + .hero.is-danger .navbar-item, + .hero.is-danger .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-danger a.navbar-item:hover, .hero.is-danger a.navbar-item.is-active, + .hero.is-danger .navbar-link:hover, + .hero.is-danger .navbar-link.is-active { + background-color: #c10a00; + color: #fff; } + .hero.is-danger .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-danger .tabs a:hover { + opacity: 1; } + .hero.is-danger .tabs li.is-active a { + opacity: 1; } + .hero.is-danger .tabs.is-boxed a, .hero.is-danger .tabs.is-toggle a { + color: #fff; } + .hero.is-danger .tabs.is-boxed a:hover, .hero.is-danger .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-danger .tabs.is-boxed li.is-active a, .hero.is-danger .tabs.is-boxed li.is-active a:hover, .hero.is-danger .tabs.is-toggle li.is-active a, .hero.is-danger .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #da0b00; } + .hero.is-danger.is-bold { + background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); } + @media screen and (max-width: 768px) { + .hero.is-danger.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); } } + .hero.is-small .hero-body, #documenter .docs-sidebar form.docs-search > input.hero .hero-body { + padding-bottom: 1.5rem; + padding-top: 1.5rem; } + @media screen and (min-width: 769px), print { + .hero.is-medium .hero-body { + padding-bottom: 9rem; + padding-top: 9rem; } } + @media screen and (min-width: 769px), print { + .hero.is-large .hero-body { + padding-bottom: 18rem; + padding-top: 18rem; } } + .hero.is-halfheight .hero-body, .hero.is-fullheight .hero-body, .hero.is-fullheight-with-navbar .hero-body { + align-items: center; + display: flex; } + .hero.is-halfheight .hero-body > .container, .hero.is-fullheight .hero-body > .container, .hero.is-fullheight-with-navbar .hero-body > .container { + flex-grow: 1; + flex-shrink: 1; } + .hero.is-halfheight { + min-height: 50vh; } + .hero.is-fullheight { + min-height: 100vh; } + +.hero-video { + overflow: hidden; } + .hero-video video { + left: 50%; + min-height: 100%; + min-width: 100%; + position: absolute; + top: 50%; + transform: translate3d(-50%, -50%, 0); } + .hero-video.is-transparent { + opacity: 0.3; } + @media screen and (max-width: 768px) { + .hero-video { + display: none; } } +.hero-buttons { + margin-top: 1.5rem; } + @media screen and (max-width: 768px) { + .hero-buttons .button { + display: flex; } + .hero-buttons .button:not(:last-child) { + margin-bottom: 0.75rem; } } + @media screen and (min-width: 769px), print { + .hero-buttons { + display: flex; + justify-content: center; } + .hero-buttons .button:not(:last-child) { + margin-right: 1.5rem; } } +.hero-head, +.hero-foot { + flex-grow: 0; + flex-shrink: 0; } + +.hero-body { + flex-grow: 1; + flex-shrink: 0; + padding: 3rem 1.5rem; } + +.section { + padding: 3rem 1.5rem; } + @media screen and (min-width: 1056px) { + .section.is-medium { + padding: 9rem 1.5rem; } + .section.is-large { + padding: 18rem 1.5rem; } } +.footer { + background-color: #fafafa; + padding: 3rem 1.5rem 6rem; } + +h1 .docs-heading-anchor, h1 .docs-heading-anchor:hover, h1 .docs-heading-anchor:visited, h2 .docs-heading-anchor, h2 .docs-heading-anchor:hover, h2 .docs-heading-anchor:visited, h3 .docs-heading-anchor, h3 .docs-heading-anchor:hover, h3 .docs-heading-anchor:visited, h4 .docs-heading-anchor, h4 .docs-heading-anchor:hover, h4 .docs-heading-anchor:visited, h5 .docs-heading-anchor, h5 .docs-heading-anchor:hover, h5 .docs-heading-anchor:visited, h6 .docs-heading-anchor, h6 .docs-heading-anchor:hover, h6 .docs-heading-anchor:visited { + color: #222222; } + +h1 .docs-heading-anchor-permalink, h2 .docs-heading-anchor-permalink, h3 .docs-heading-anchor-permalink, h4 .docs-heading-anchor-permalink, h5 .docs-heading-anchor-permalink, h6 .docs-heading-anchor-permalink { + visibility: hidden; + vertical-align: middle; + margin-left: 0.5em; + font-size: 0.7rem; } + h1 .docs-heading-anchor-permalink::before, h2 .docs-heading-anchor-permalink::before, h3 .docs-heading-anchor-permalink::before, h4 .docs-heading-anchor-permalink::before, h5 .docs-heading-anchor-permalink::before, h6 .docs-heading-anchor-permalink::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f0c1"; } + +h1:hover .docs-heading-anchor-permalink, h2:hover .docs-heading-anchor-permalink, h3:hover .docs-heading-anchor-permalink, h4:hover .docs-heading-anchor-permalink, h5:hover .docs-heading-anchor-permalink, h6:hover .docs-heading-anchor-permalink { + visibility: visible; } + +.docs-dark-only { + display: none !important; } + +pre { + position: relative; + overflow: hidden; } + pre code, pre code.hljs { + padding: 0 0.75rem !important; + overflow: auto; + display: block; } + pre code:first-of-type, pre code.hljs:first-of-type { + padding-top: 0.5rem !important; } + pre code:last-of-type, pre code.hljs:last-of-type { + padding-bottom: 0.5rem !important; } + pre .copy-button { + opacity: 0.2; + transition: opacity 0.2s; + position: absolute; + right: 0em; + top: 0em; + padding: 0.5em; + width: 2.5em; + height: 2.5em; + background: transparent; + border: none; + font-family: "Font Awesome 5 Free"; + color: #222222; + 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: 0.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 0.75rem; + position: relative; } + .admonition-header:before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + margin-right: 0.75rem; + content: "\f06a"; } + +.admonition-body { + color: #222222; + padding: 0.5rem 0.75rem; } + .admonition-body pre { + background-color: whitesmoke; } + .admonition-body code { + background-color: rgba(0, 0, 0, 0.05); } + +.docstring { + margin-bottom: 1em; + background-color: transparent; + border: 1px solid #dbdbdb; + box-shadow: 2px 2px 3px rgba(10, 10, 10, 0.1); + max-width: 100%; } + .docstring > header { + display: flex; + flex-grow: 1; + align-items: stretch; + padding: 0.5rem 0.75rem; + background-color: whitesmoke; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + box-shadow: none; + border-bottom: 1px solid #dbdbdb; } + .docstring > header code { + background-color: transparent; } + .docstring > header .docstring-binding { + margin-right: 0.3em; } + .docstring > header .docstring-category { + margin-left: 0.3em; } + .docstring > section { + position: relative; + padding: 0.75rem 0.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: 0.375rem; + bottom: 0.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: white; } + +.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: #222222; } + +.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: #222222; } + +.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; } + +/* This file contain the overall layout. + * + * The main container is
          that is identified by id #documenter. + */ +#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: white; + border-bottom: 1px solid #dbdbdb; + z-index: 2; + min-height: 4rem; + margin-bottom: 1rem; + display: flex; } + #documenter .docs-main header.docs-navbar .breadcrumb { + flex-grow: 1; } + #documenter .docs-main header.docs-navbar .docs-right { + display: flex; + white-space: nowrap; } + #documenter .docs-main header.docs-navbar .docs-right .docs-icon, #documenter .docs-main header.docs-navbar .docs-right .docs-label, #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + display: inline-block; } + #documenter .docs-main header.docs-navbar .docs-right .docs-label { + padding: 0; + margin-left: 0.3em; } + #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button { + margin: auto 0 auto 1rem; } + #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + font-size: 1.5rem; + margin: auto 0 auto 1rem; } + #documenter .docs-main header.docs-navbar > * { + margin: auto 0; } + @media screen and (max-width: 1055px) { + #documenter .docs-main header.docs-navbar { + position: sticky; + top: 0; + padding: 0 1rem; + /* For Headroom.js */ + transition-property: top, box-shadow; + -webkit-transition-property: top, box-shadow; + /* Safari */ + transition-duration: 0.3s; + -webkit-transition-duration: 0.3s; + /* Safari */ } + #documenter .docs-main header.docs-navbar.headroom--not-top { + box-shadow: 0.2rem 0rem 0.4rem #bbb; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } + #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; + /* Safari */ } } +#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: whitesmoke; + 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; + /* Setting up a nicer theme style for the scrollbar */ } + #documenter .docs-sidebar.visible { + left: 0; + box-shadow: 0.4rem 0rem 0.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; + /* Managing collapsible submenus */ } + #documenter .docs-sidebar ul.docs-menu > li > .tocitem { + font-weight: bold; } + #documenter .docs-sidebar ul.docs-menu > li li { + font-size: 0.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: 0.75rem; + margin-left: 1rem; + margin-top: auto; + margin-bottom: auto; } + #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f054"; } + #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before { + content: "\f078"; } + #documenter .docs-sidebar ul.docs-menu .tocitem { + display: block; + padding: 0.5rem 0.5rem; } + #documenter .docs-sidebar ul.docs-menu .tocitem, #documenter .docs-sidebar ul.docs-menu .tocitem:hover { + color: #0a0a0a; + background: whitesmoke; } + #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: white; } + #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover { + background-color: white; + 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: 0.85rem; + border-left: none; + margin-left: 0; + margin-top: 0.5rem; } + #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem { + width: 100%; + padding: 0; } + #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before { + content: "⚬"; + margin-right: 0.4em; } + #documenter .docs-sidebar form.docs-search { + margin: auto; + margin-top: 0.5rem; + margin-bottom: 0.5rem; } + #documenter .docs-sidebar form.docs-search > input { + width: 14.4rem; } + @media screen and (min-width: 1056px) { + #documenter .docs-sidebar ul.docs-menu { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar { + width: .3rem; + background: none; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #e0e0e0; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover { + background: #cccccc; } } + @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: #cccccc; } } +#documenter .docs-main #documenter-search-info { + margin-bottom: 1rem; } + +#documenter .docs-main #documenter-search-results { + list-style-type: circle; + list-style-position: outside; } + #documenter .docs-main #documenter-search-results li { + margin-left: 2rem; } + #documenter .docs-main #documenter-search-results .docs-highlight { + background-color: yellow; } + +.ansi span.sgr1 { + font-weight: bolder; } + +.ansi span.sgr2 { + font-weight: lighter; } + +.ansi span.sgr3 { + font-style: italic; } + +.ansi span.sgr4 { + text-decoration: underline; } + +.ansi span.sgr7 { + color: white; + background-color: #222222; } + +.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: whitesmoke; } + +.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: whitesmoke; } + +code.language-julia-repl > span.hljs-meta { + color: #066f00; + font-weight: bolder; } + +/*! + Theme: Default + Description: Original highlight.js style + Author: (c) Ivan Sagalaev + Maintainer: @highlightjs/core-team + Website: https://highlightjs.org/ + License: see project LICENSE + Touched: 2021 +*/ +/* +This is left on purpose making default.css the single file that can be lifted +as-is from the repository directly without the need for a build step + +Typically this "required" baseline CSS is added by `makestuff.js` during build. +*/ +pre code.hljs { + display: block; + overflow-x: auto; } + +code.hljs { + padding: 3px 5px; } + +/* end baseline CSS */ +.hljs { + background: #F0F0F0; + color: #444; } + +/* Base color: saturation 0; */ +.hljs-subst { + /* default */ } + +/* purposely ignored */ +.hljs-comment { + color: #888888; } + +.hljs-tag, +.hljs-punctuation { + color: #444a; } + +.hljs-tag .hljs-name, +.hljs-tag .hljs-attr { + color: #444; } + +.hljs-keyword, +.hljs-attribute, +.hljs-selector-tag, +.hljs-meta .hljs-keyword, +.hljs-doctag, +.hljs-name { + font-weight: bold; } + +/* User color: hue: 0 */ +.hljs-type, +.hljs-string, +.hljs-number, +.hljs-selector-id, +.hljs-selector-class, +.hljs-quote, +.hljs-template-tag, +.hljs-deletion { + color: #880000; } + +.hljs-title, +.hljs-section { + color: #880000; + font-weight: bold; } + +.hljs-regexp, +.hljs-symbol, +.hljs-variable, +.hljs-template-variable, +.hljs-link, +.hljs-selector-attr, +.hljs-operator, +.hljs-selector-pseudo { + color: #BC6060; } + +/* Language color: hue: 90; */ +.hljs-literal { + color: #78A960; } + +.hljs-built_in, +.hljs-bullet, +.hljs-code, +.hljs-addition { + color: #397300; } + +/* Meta color: hue: 200 */ +.hljs-meta { + color: #1f7199; } + +.hljs-meta .hljs-string { + color: #4d99bf; } + +/* Misc effects */ +.hljs-emphasis { + font-style: italic; } + +.hljs-strong { + font-weight: bold; } diff --git a/previews/PR349/assets/themeswap.js b/previews/PR349/assets/themeswap.js new file mode 100644 index 000000000..c58e993e3 --- /dev/null +++ b/previews/PR349/assets/themeswap.js @@ -0,0 +1,66 @@ +// Small function to quickly swap out themes. Gets put into the tag.. +function set_theme_from_local_storage() { + // Intialize the theme to null, which means default + var theme = null; + // If the browser supports the localstorage and is not disabled then try to get the + // documenter theme + if(window.localStorage != null) { + // Get the user-picked theme from localStorage. May be `null`, which means the default + // theme. + theme = window.localStorage.getItem("documenter-theme"); + } + // Check if the browser supports user color preference + var darkPreference = false; + // Check if the users preference is for dark color scheme + if(window.matchMedia('(prefers-color-scheme: dark)').matches === true) { + darkPreference = true; + } + // Initialize a few variables for the loop: + // + // - active: will contain the index of the theme that should be active. Note that there + // is no guarantee that localStorage contains sane values. If `active` stays `null` + // we either could not find the theme or it is the default (primary) theme anyway. + // Either way, we then need to stick to the primary theme. + // + // - disabled: style sheets that should be disabled (i.e. all the theme style sheets + // that are not the currently active theme) + var active = null; var disabled = []; var darkTheme = null; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + // The tag of each style sheet is expected to have a data-theme-name attribute + // which must contain the name of the theme. The names in localStorage much match this. + var themename = ss.ownerNode.getAttribute("data-theme-name"); + // attribute not set => non-theme stylesheet => ignore + if(themename === null) continue; + // To distinguish the default (primary) theme, it needs to have the data-theme-primary + // attribute set. + var isprimary = (ss.ownerNode.getAttribute("data-theme-primary") !== null); + // Check if the theme is primary dark theme + var isDarkTheme = (ss.ownerNode.getAttribute("data-theme-primary-dark") !== null); + // If ss is for dark theme then set the value of darkTheme to the name of the theme + if(isDarkTheme) darkTheme = themename; + // If we find a matching theme (and it's not the default), we'll set active to non-null + if(themename === theme) active = i; + // Store the style sheets of inactive themes so that we could disable them + if(themename !== theme) disabled.push(ss); + } + if(active !== null) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + theme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + else if(darkTheme !== null && darkPreference === true) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + darkTheme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + if (ss.ownerNode.getAttribute("data-theme-name") !== darkTheme) { + ss.disabled = true; + } + }); + } +} +set_theme_from_local_storage(); diff --git a/previews/PR349/assets/warner.js b/previews/PR349/assets/warner.js new file mode 100644 index 000000000..5531c8851 --- /dev/null +++ b/previews/PR349/assets/warner.js @@ -0,0 +1,49 @@ +function maybeAddWarning () { + // DOCUMENTER_NEWEST is defined in versions.js, DOCUMENTER_CURRENT_VERSION and DOCUMENTER_STABLE + // in siteinfo.js. + // If either of these are undefined something went horribly wrong, so we abort. + if ( + window.DOCUMENTER_NEWEST === undefined || + window.DOCUMENTER_CURRENT_VERSION === undefined || + window.DOCUMENTER_STABLE === undefined + ) { + return + }; + + // Current version is not a version number, so we can't tell if it's the newest version. Abort. + if (!/v(\d+\.)*\d+/.test(window.DOCUMENTER_CURRENT_VERSION)) { + return + }; + + // Current version is newest version, so no need to add a warning. + if (window.DOCUMENTER_NEWEST === window.DOCUMENTER_CURRENT_VERSION) { + return + }; + + // Add a noindex meta tag (unless one exists) so that search engines don't index this version of the docs. + if (document.body.querySelector('meta[name="robots"]') === null) { + const meta = document.createElement('meta'); + meta.name = 'robots'; + meta.content = 'noindex'; + + document.getElementsByTagName('head')[0].appendChild(meta); + }; + + const div = document.createElement('div'); + div.classList.add('outdated-warning-overlay'); + const closer = document.createElement('button'); + closer.classList.add('outdated-warning-closer', 'delete'); + closer.addEventListener('click', function () { + document.body.removeChild(div); + }); + const href = window.documenterBaseURL + '/../' + window.DOCUMENTER_STABLE; + div.innerHTML = 'This documentation is not for the latest stable release, but for either the development version or an older release.
          Click here to go to the documentation for the latest stable release.'; + div.appendChild(closer); + document.body.appendChild(div); +}; + +if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', maybeAddWarning); +} else { + maybeAddWarning(); +}; diff --git a/previews/PR349/boundary_conditions/index.html b/previews/PR349/boundary_conditions/index.html new file mode 100644 index 000000000..2fb25f0f5 --- /dev/null +++ b/previews/PR349/boundary_conditions/index.html @@ -0,0 +1,2 @@ + +Boundary conditions · SpeedyWeather.jl diff --git a/previews/PR349/conventions/index.html b/previews/PR349/conventions/index.html new file mode 100644 index 000000000..dcf0fef84 --- /dev/null +++ b/previews/PR349/conventions/index.html @@ -0,0 +1,12 @@ + +Style and convention guide · SpeedyWeather.jl

          Style and convention guide

          In SpeedyWeather.jl we've been following the several conventions that are documented here.

          Variable naming

          The prognostic variables in spectral space are called

              vor         # Vorticity of horizontal wind field
          +    div         # Divergence of horizontal wind field
          +    temp        # Absolute temperature [K]
          +    pres_surf   # Logarithm of surface pressure [log(Pa)]
          +    humid       # Specific humidity [g/kg]

          their transforms into grid-point space get a _grid suffix, their tendencies a _tend suffix. Further derived diagnostic dynamic variables are

              u
          +    v
          +    geopot
          +    ...

          Preallocation

          All arrays representing variables are preallocated and grouped into two structs

              Prog::PrognosticVariables
          +    Diag::DiagnosticVariables

          The Diag struct contains further structs which represent the grid-point transformations of the prognostic variables and their tendencies.

              gridvars::GridVariables
          +    tendencies::Tendencies
          +    ...

          Constant arrays are grouped into several structs

          Boundaries

          Julian conventions

          We follow Julia's style guide and highlight here some important aspects of it.

          • Bang (!) convention. A function func does not change its input arguments, however, func! does.

          Hence, func! is often the in-place version of func, avoiding as much memory allocation as possible and often changing its first argument, e.g. func!(out,in) so that argument in is used to calculate out which has been preallocated before function call.

          • Number format flexibility. Numeric literals such as 2.0 or 1/3 are only used in the model setup

          but avoided throughout the code to obtain a fully number format-flexible package using the number format NF as a compile-time variable throughout the code. This often leads to overly specific code whereas a Real would generally suffice. However, this is done to avoid any implicit type conversions.

          diff --git a/previews/PR349/development/index.html b/previews/PR349/development/index.html new file mode 100644 index 000000000..0ead2dfb4 --- /dev/null +++ b/previews/PR349/development/index.html @@ -0,0 +1,3 @@ + +Development notes · SpeedyWeather.jl

          Development notes

          To run tests, from the path of your local clone of the repository do:

          julia --project=. -e 'import Pkg; Pkg.test()'

          To install dependencies:

          julia --project -e 'import Pkg; Pkg.instantiate()`

          then opening:

          julia --project

          you are able to using SpeedyWeather.

          To generate the docs:

          julia --project=docs -e 'import Pkg; Pkg.develop(path="."); Pkg.instantiate()'
          +julia --project=docs docs/make.jl

          If the docs are generated successfully, you view them by opening docs/build/index.html in your favorite browser.

          diff --git a/previews/PR349/dynamical_core/index.html b/previews/PR349/dynamical_core/index.html new file mode 100644 index 000000000..af5ce5474 --- /dev/null +++ b/previews/PR349/dynamical_core/index.html @@ -0,0 +1,21 @@ + +Dynamical core · SpeedyWeather.jl

          Dynamical core

          A mathematical and implementation-specific description of the dynamical core used in SpeedyWeather.jl. We start by describing the barotropic vorticity equations which is one set of equations that SpeedyWeather.jl can solve (see How to run SpeedyWeather.jl) as many details therein also apply to the Shallow water equations and Primitive equations explained thereafter.

          The dynamical core presented here largely follows the idealized models with spectral dynamics developed at the Geophysical Fluid Dynamics Laboratory[1]: A barotropic vorticity model[2], a shallow water model [3] and a primitive equation model[4].

          Barotropic vorticity equation

          The barotropic vorticity equation is the prognostic equation that describes the time evolution of relative vorticity $\zeta$ with advection, Coriolis force and diffusion in a single global layer on the sphere.

          \[\frac{\partial \zeta}{\partial t} + \nabla \cdot (\mathbf{u}(\zeta + f)) = +\nabla \times \mathbf{F} + (-1)^{n+1}\nu\nabla^{2n}\zeta\]

          with time $t$, velocity vector $\mathbf{u} = (u, v)$, Coriolis parameter $f$, and hyperdiffusion $(-1)^{n+1} \nu \nabla^{2n} \zeta$ ($n$ is the hyperdiffusion order; see Horizontal diffusion). We also include a forcing vector $\mathbf{F} = (F_u,F_v)$ which acts on the zonal velocity $u$ and the meridional velocity $v$ and hence its curl $\nabla \times \mathbf{F}$ is a tendency for relative vorticity $\zeta$.

          Starting with some relative vorticity $\zeta$, the Laplacian is inverted to obtain the stream function $\Psi$

          \[\Psi = \nabla^{-2}\zeta\]

          The zonal velocity $u$ and meridional velocity $v$ are then the (negative) meridional gradient and zonal gradient of $\Psi$

          \[\begin{aligned} +u &= -\frac{1}{R} \frac{\partial \Psi}{\partial \theta} \\ +v &= \frac{1}{R\cos(\theta)} \frac{\partial \Psi}{\partial \phi} \\ +\end{aligned}\]

          which is described in Derivatives in spherical coordinates.

          Algorithm

          We briefly outline the algorithm that SpeedyWeather.jl uses in order to integrate the barotropic vorticity equation. As an intial step

          0. Start with initial conditions of $\zeta_{lm}$ in spectral space and transform this model state to grid-point space:

          • Invert the Laplacian to obtain the stream function $\Psi_{lm}$ in spectral space
          • obtain zonal velocity $(\cos(\theta)u)_{lm}$ through a Meridional derivative
          • obtain meridional velocity $(\cos(\theta)v)_{lm}$ through a Zonal derivative
          • Transform zonal and meridional velocity $(\cos(\theta)u)_{lm}$, $(\cos(\theta)v)_{lm}$ to grid-point space
          • Unscale the $\cos(\theta)$ factor to obtain $u,v$
          • Transform $\zeta_{lm}$ to $\zeta$ in grid-point space

          Now loop over

          1. Compute the forcing vector $\mathbf{F} = (F_u,F_v)$ for $u$ and $v$
          2. Multiply $u,v$ with $\zeta+f$ in grid-point space
          3. Add $A = F_u + v(\zeta + f)$ and $B = F_v - u(\zeta + f)$
          4. Transform these vector components to spectral space $A_{lm}$, $B_{lm}$
          5. Compute the curl of $(A,B)_{lm}$ in spectral space which is the tendency of $\zeta_{lm}$
          6. Compute the Horizontal diffusion based on that tendency
          7. Compute a leapfrog time step as described in Time integration
          8. Transform the spectral state of $\zeta_{lm}$ to grid-point $u,v,\zeta$ as described in 0.
          9. Possibly do some output
          10. Repeat from 1.

          Shallow water equations

          \[\begin{aligned} +\frac{\partial \zeta}{\partial t} + \nabla \cdot (\mathbf{u}(\zeta + f)) &= (-1)^{n+1}\nu\nabla^{2n}\zeta, \\ +\frac{\partial \mathcal{D}}{\partial t} - \nabla \times (\mathbf{u}(\zeta + f)) &= -\nabla^2(\tfrac{1}{2}(u^2 + v^2) + g\eta) + (-1)^{n+1}\nu\nabla^{2n}\mathcal{D}, \\ +\frac{\partial \eta}{\partial t} + \nabla \cdot (\mathbf{u}h) &= 0, +\end{aligned}\]

          where $\zeta = \hat{\mathbf{z}} \cdot (\nabla \times \mathbf{u})$ is the relative vorticity, $\mathcal{D} = \nabla \cdot \mathbf{u}$ the divergence, and $\eta$ the deviation from the fluid's rest height.

          Note: more to come...

          Primitive equations

          The primitive equations solved by SpeedyWeather.jl are

          \[\begin{aligned} +\partial_t u &= ... \\ +\partial_t v &= ... \\ +\partial_t T &= ... \\ +\partial_t Q &= ... +\end{aligned}\]

          Note: more to come...

          Horizontal diffusion

          In SpeedyWeather.jl we use hyerdiffusion through an $n$-th power Laplacian $(-1)^{n+1}\nabla^{2n}$ (hyper when $n>1$) which can be implemented as a multiplication of the spectral coefficients $\Psi_{lm}$ with $(-l(l+1))^nR^{-2n}$ (see spectral Laplacian) It is therefore computationally not more expensive to apply hyperdiffusion over diffusion as the $(-l(l+1))^nR^{-2n}$ can be precomputed. Note the sign change $(-1)^{n+1}$ here is such that the dissipative nature of the diffusion operator is retained for $n$ odd and even.

          In SpeedyWeather.jl the diffusion is applied implicitly. For that, consider a leapfrog scheme with time step $\Delta t$ of variable $\zeta$ to obtain from time steps $i-1$ and $i$, the next time step $i+1$

          \[\zeta_{i+1} = \zeta_{i-1} + 2\Delta t d\zeta,\]

          with $d\zeta$ being some tendency evaluated from $\zeta_i$. Now we want to add a diffusion term $(-1)^{n+1}\nu \nabla^{2n}\zeta$ with viscosity $\nu$, wich however, is implicitly calculated from $\zeta_{i+1}$, then

          \[\zeta_{i+1} = \zeta_{i-1} + 2\Delta t (d\zeta + (-1)^{n+1} \nu\nabla^{2n}\zeta_{i+1})\]

          As the application of $(-1)^{n+1}\nu\nabla^{2n}$ is, for every spectral mode, equivalent to a multiplication of a constant, we can rewrite this to

          \[\zeta_{i+1} = \frac{\zeta_{i-1} + 2\Delta t d\zeta}{1 - 2\Delta (-1)^{n+1}\nu\nabla^{2n}},\]

          and expand the numerator to

          \[\zeta_{i+1} = \zeta_{i-1} + 2\Delta t \frac{d\zeta + (-1)^{n+1} \nu\nabla^{2n}\zeta_{i-1}}{1 - 2\Delta t (-1)^{n+1}\nu \nabla^{2n}},\]

          Hence the diffusion can be applied implicitly by updating the tendency $d\zeta$ as

          \[d\zeta \to \frac{d\zeta + (-1)^{n+1}\nu\nabla^{2n}\zeta_{i-1}}{1 - 2\Delta t \nu \nabla^{2n}}\]

          which only depends on $\zeta_{i-1}$. Now let $D_\text{explicit} = (-1)^{n+1}\nu\nabla^{2n}$ be the explicit part and $D_\text{implicit} = 1 - (-1)^{n+1} 2\Delta t \nu\nabla^{2n}$ the implicit part. Both parts can be precomputed and are $D_\text{implicit} = 1 - 2\Delta t \nu\nabla^{2n}$ the implicit part. Both parts can be precomputed and are only an element-wise multiplication in spectral space. For every spectral harmonic $l,m$ we do

          \[d\zeta \to D_\text{implicit}^{-1}(d\zeta + D_\text{explicit}\zeta_{i-1}).\]

          Hence 2 multiplications and 1 subtraction with precomputed constants. However, we will normalize the (hyper-)Laplacians as described in the following. This also will take care of the alternating sign such that the diffusion operation is dissipative regardless the power $n$.

          Normalization of diffusion

          In physics, the Laplace operator $\nabla^2$ is often used to represent diffusion due to viscosity in a fluid. In that case, the viscosity coefficient is $\nu$ of units $\text{m}^2\text{s}^{-1}$ and the full operator reads as $\nu \nabla^2$ with units $(\text{m}^2\text{s}^{-1})(\text{m}^{-2}) = \text{s}^{-1}$. This motivates us to normalize the Laplace operator by a constant of units $\text{m}^{-2}$ and the viscosity coefficient by its inverse such that the viscosity coefficient becomes a damping timescale of unit $\text{s}^{-1}$. Given the application in spectral space we decide to normalize by the largest eigenvalue $-l_\text{max}(l_\text{max}+1)$ such that all entries in the discrete spectral Laplace operator are in $[0,1]$. This also has the effect that the alternating sign drops out, such that higher wavenumbers are always dampened and not amplified. The normalized viscosity coefficient $\nu^* = l_\text{max}(l_\text{max}+1)\nu$ (always positive) is therefore reinterpreted as the (inverse) time scale at which the highest wavenumber is dampened to zero due to diffusion. Together we have

          \[D^\text{explicit}_{l,m} = -\nu^* \frac{l(l+1)}{l_\text{max}(l_\text{max}+1)}\]

          and the hyper-Laplacian of power $n$ follows as

          \[D^\text{explicit,n}_{l,m} = -\nu^* \left(\frac{l(l+1)}{l_\text{max}(l_\text{max}+1)}\right)^n\]

          and the implicit part is accordingly $D^\text{implicit,n}_{l,m} = 1 - 2\Delta t D^\text{explicit,n}_{l,m}$.

          Radius scaling

          SpeedyWeather.jl uses a scaling for vorticity $\zeta$ and stream function $\Psi$ that is

          \[\tilde{\zeta} = \zeta R, \tilde{\Psi} = \Psi R^{-1}.\]

          In the barotropic voriticity equation model the inversion of the Laplcians in order to obtain $\Psi$ from $\zeta$ therefore becomes

          \[\tilde{\zeta} = \tilde{\nabla}^2 \tilde{\Psi}\]

          where the dimensionless gradients simply omit the scaling with $1/R$, $\tilde{\nabla} = R\nabla$. The Barotropic vorticity equation scaled with $R^2$ is

          \[\partial_{\tilde{t}}\tilde{\zeta} + \tilde{\nabla} \cdot (\mathbf{u}(\tilde{\zeta} + \tilde{f})) = \tilde{\nu}\tilde{\nabla}^{2n}\tilde{\zeta}\]

          with

          • $\tilde{t} = tR^{-1}$, the scaled time $t$
          • $\mathbf{u} = (u,v)$, the velocity vector (no scaling applied)
          • $\tilde{f} = fR$, the scaled Coriolis parameter $f$
          • $\tilde{\nu} = \nu^* R$, the scaled viscosity $\nu^*$, which itself is normalized to a damping time scale, see Normalization of diffusion.

          Scaled shallow water equations

          Similar to the scaled barotropic vorticity equations, the scaled shallow water equations scale the vorticity and the divergence equation with $R^2$, but the continuity equation with $R$

          \[\begin{aligned} +\frac{\partial \tilde{\zeta}}{\partial \tilde{t}} + \tilde{\nabla} \cdot (\mathbf{u}(\tilde{\zeta} + \tilde{f})) &= +\tilde{\nu}\tilde{\nabla}^{2n}\tilde{\zeta} \\ +\frac{\partial \tilde{\mathcal{D}}}{\partial \tilde{t}} - \tilde{\nabla} \times (\mathbf{u}(\tilde{\zeta} + \tilde{f})) &= +-\tilde{\nabla}^2\left(\tfrac{1}{2}(u^2 + v^2) + g\eta \right) + \tilde{\nu}\tilde{\nabla}^{2n}\tilde{\mathcal{D}} \\ +\frac{\partial \eta}{\partial \tilde{t}} + \tilde{\nabla} \cdot (\mathbf{u}h) &= 0. +\end{aligned}\]

          Time integration

          SpeedyWeather.jl uses a leapfrog time scheme with a Robert's and William's filter to dampen the computational mode and achieve 3rd order accuracy.

          Oscillation equation

          \[\frac{dF}{dt} = i\omega F\]

          References

          diff --git a/previews/PR349/extending/index.html b/previews/PR349/extending/index.html new file mode 100644 index 000000000..1d4374286 --- /dev/null +++ b/previews/PR349/extending/index.html @@ -0,0 +1,2 @@ + +Extending SpeedyWeather · SpeedyWeather.jl diff --git a/previews/PR349/functions/index.html b/previews/PR349/functions/index.html new file mode 100644 index 000000000..a14dab726 --- /dev/null +++ b/previews/PR349/functions/index.html @@ -0,0 +1,180 @@ + +Function and type index · SpeedyWeather.jl

          Function and type index

          Parameters and constants

          Missing docstring.

          Missing docstring for SpeedyWeather.Parameters. Check Documenter's build log for details.

          Missing docstring.

          Missing docstring for SpeedyWeather.Constants. Check Documenter's build log for details.

          Boundaries and boundary conditions

          Missing docstring.

          Missing docstring for SpeedyWeather.Boundaries. Check Documenter's build log for details.

          Spherical harmonic transform

          Missing docstring.

          Missing docstring for SpeedyWeather.GeoSpectral. Check Documenter's build log for details.

          SpeedyWeather.SpeedyTransforms.spectralFunction
          alms = spectral(    map::AbstractMatrix;
          +                    Grid::Type{<:AbstractGrid}=DEFAULT_GRID,
          +                    kwargs...)

          Converts map to grid(map) to execute spectral(map::AbstractGrid;kwargs...).

          source
          alms = spectral(    map::AbstractGrid;
          +                    Grid::Type{<:AbstractGrid}=DEFAULT_GRID,
          +                    kwargs...)

          Converts map to Grid(map) to execute spectral(map::AbstractGrid;kwargs...).

          source
          alms = spectral(    map::AbstractMatrix;
          +                    Grid::Type{<:AbstractGrid}=DEFAULT_GRID,
          +                    kwargs...)

          Spectral transform (grid to spectral) map to grid(map) to execute spectral(map::AbstractGrid;kwargs...).

          source
          SpeedyWeather.SpeedyTransforms.spectral!Function
          spectral!(  alms::LowerTriangularMatrix,
          +            map::AbstractGrid,
          +            S::SpectralTransform)

          Spectral transform (grid to spectral space) from the gridded field map on a grid<:AbstractGrid to a LowerTriangularMatrix of spherical harmonic coefficients alms. Uses FFT in the zonal direction, and a Legendre Transform in the meridional direction exploiting symmetries. The spectral transform is number format-flexible as long as the parametric types of map, alms, S are identical. The spectral transform is grid-flexible as long as the typeof(map)<:AbstractGrid. Uses the precalculated arrays, FFT plans and other constants in the SpectralTransform struct S.

          source
          SpeedyWeather.SpeedyTransforms.griddedFunction
          map = gridded(  alms::AbstractMatrix;
          +                recompute_legendre::Bool=true,
          +                grid::Type{<:AbstractGrid}=DEFAULT_GRID)

          Spectral transform (spectral to grid space) from spherical coefficients alms to a newly allocated gridded field map. Based on the size of alms the grid type grid, the spatial resolution is retrieved based on the truncation defined for grid. SpectralTransform struct S is allocated to execute gridded(alms,S).

          source
          map = gridded(  alms::AbstractMatrix,
          +                S::SpectralTransform)

          Spectral transform (spectral to grid space) from spherical coefficients alms to a newly allocated gridded field map with precalculated properties based on the SpectralTransform struct S. alms is converted to a LowerTriangularMatrix to execute the in-place gridded!.

          source
          SpeedyWeather.SpeedyTransforms.gridded!Function
          gridded!(
          +    diagn::DiagnosticVariables,
          +    progn::PrognosticVariables,
          +    lf::Int64,
          +    model::SpeedyWeather.ModelSetup
          +)
          +

          Propagate the spectral state of progn to diagn using time step/leapfrog index lf. Function barrier that calls gridded! for the respective model.

          source
          gridded!(
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
          +    progn::SpeedyWeather.PrognosticLayerTimesteps,
          +    lf::Int64,
          +    model::Barotropic
          +)
          +

          Propagate the spectral state of the prognostic variables progn to the diagnostic variables in diagn for the barotropic vorticity model. Updates grid vorticity, spectral stream function and spectral and grid velocities u,v.

          source
          gridded!(
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
          +    progn::SpeedyWeather.PrognosticLayerTimesteps,
          +    lf::Int64,
          +    model::ShallowWater
          +)
          +

          Propagate the spectral state of the prognostic variables progn to the diagnostic variables in diagn for the shallow water model. Updates grid vorticity, grid divergence, grid interface displacement (pres_grid) and the velocities u,v.

          source
          gridded!(
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
          +    progn::SpeedyWeather.PrognosticLayerTimesteps,
          +    lf::Int64,
          +    model::PrimitiveEquation
          +)
          +

          Propagate the spectral state of the prognostic variables progn to the diagnostic variables in diagn for primitive equation models. Updates grid vorticity, grid divergence, grid temperature, pressure (pres_grid) and the velocities u,v.

          source
          gridded!(   map::AbstractGrid,
          +            alms::LowerTriangularMatrix,
          +            S::SpectralTransform)

          Spectral transform (spectral to grid) of the spherical harmonic coefficients alms to a gridded field map. The spectral transform is number format-flexible as long as the parametric types of map, alms, S are identical. The spectral transform is grid-flexible as long as the typeof(map)<:AbstractGrid. Uses the precalculated arrays, FFT plans and other constants in the SpectralTransform struct S.

          source
          Missing docstring.

          Missing docstring for SpeedyWeather.triangular_truncation. Check Documenter's build log for details.

          Missing docstring.

          Missing docstring for SpeedyWeather.roundup_fft. Check Documenter's build log for details.

          SpeedyWeather.SpeedyTransforms.spectral_truncationFunction
          alms_trunc = spectral_truncation(alms,trunc)

          Returns a spectral coefficient matrix alms_trunc that is truncated from alms to the size (trunc+1)². alms_trunc only contains those coefficient of alms for which m,l ≤ trunc, and l ≥ m are zero anyway. If trunc is larger than the implicit truncation in alms obtained from its size than spectral_interpolation is automatically called instead, returning alms_interp, a coefficient matrix that is larger than alms with padded zero coefficients.

          source
          SpeedyWeather.SpeedyTransforms.spectral_truncation!Function
          spectral_truncation!(alms::AbstractMatrix,ltrunc::Integer,mtrunc::Integer)

          Truncate spectral coefficients alms in-place by setting (a) the upper right triangle to zero and (b) all coefficients for which the degree l is larger than the truncation ltrunc or order m larger than the truncaction mtrunc.

          source
          spectral_truncation!(alms::LowerTriangularMatrix,ltrunc::Integer,mtrunc::Integer)

          Truncate spectral coefficients alms in-place by setting all coefficients for which the degree l is larger than the truncation ltrunc or order m larger than the truncaction mtrunc. Similar to spectral_truncation!(::AbstractMatrix, ...) but skips the upper triangle which is zero by design for LowerTriangularMatrix.

          source
          spectral_truncation!(alms,trunc)

          Truncate spectral coefficients alms in-place by setting (a) the upper right triangle to zero and (b) all coefficients for which the degree l is larger than the truncation trunc.

          source
          spectral_truncation!(alms)

          Truncate spectral coefficients alms in-place by setting the upper right triangle to zero. This is to enforce that all coefficients for which the degree l is larger than order m are zero.

          source
          Missing docstring.

          Missing docstring for SpeedyWeather.spectral_interpolation!. Check Documenter's build log for details.

          Missing docstring.

          Missing docstring for SpeedyWeather.get_legendre_polynomials!. Check Documenter's build log for details.

          SpeedyWeather.SpeedyTransforms.∇²!Function
          ∇²!(    ∇²alms::LowerTriangularMatrix,
          +        alms::LowerTriangularMatrix,
          +        S::SpectralTransform;
          +        add::Bool=false,
          +        flipsign::Bool=false,
          +        inverse::Bool=false)

          Laplace operator ∇² applied to the spectral coefficients alms in spherical coordinates. The radius R is omitted in the eigenvalues which are precomputed in S. ∇²! is the in-place version which directly stores the output in the first argument ∇²alms.

          Keyword arguments

          • add=true adds the ∇²(alms) to the output
          • flipsign=true computes -∇²(alms) instead
          • inverse=true computes ∇⁻²(alms) instead

          Default is add=false, flipsign=false, inverse=false. These options can be combined.

          source
          Missing docstring.

          Missing docstring for SpeedyWeather.∇². Check Documenter's build log for details.

          SpeedyWeather.SpeedyTransforms.∇⁻²!Function
          ∇⁻²!(   ∇⁻²alms::LowerTriangularMatrix,
          +        alms::LowerTriangularMatrix,
          +        S::SpectralTransform;
          +        add::Bool=false,
          +        flipsign::Bool=false)

          Calls ∇²!(∇⁻²alms, alms, S; add, flipsign, inverse=true).

          source
          Missing docstring.

          Missing docstring for SpeedyWeather.∇⁻². Check Documenter's build log for details.

          Missing docstring.

          Missing docstring for SpeedyWeather.gradient_latitude!. Check Documenter's build log for details.

          Missing docstring.

          Missing docstring for SpeedyWeather.gradient_latitude. Check Documenter's build log for details.

          Missing docstring.

          Missing docstring for SpeedyWeather.gradient_longitude!. Check Documenter's build log for details.

          Missing docstring.

          Missing docstring for SpeedyWeather.gradient_longitude. Check Documenter's build log for details.

          SpeedyWeather.SpeedyTransforms.divergence!Function
          divergence!(div::LowerTriangularMatrix,
          +            u::LowerTriangularMatrix,
          +            v::LowerTriangularMatrix,
          +            S::SpectralTransform{NF};
          +            flipsign::Bool=false,
          +            add::Bool=false,
          +            )

          Divergence of a vector u,v written into div, div = ∇⋅(u,v). u,v are expected to have a 1/coslat-scaling included, then div is not scaled. flipsign option calculates -∇⋅(u,v) instead. add option calculates div += ∇⋅(u,v) instead. flipsign and add can be combined. This functions only creates the kernel and calls the generic divergence function _divergence! subsequently.

          source
          SpeedyWeather.SpeedyTransforms.curl!Function
          curl!(  curl::LowerTriangularMatrix,
          +        u::LowerTriangularMatrix,
          +        v::LowerTriangularMatrix,
          +        S::SpectralTransform;
          +        flipsign::Bool=false,
          +        add::Bool=false,
          +        )

          Curl of a vector u,v written into curl, curl = ∇×(u,v). u,v are expected to have a 1/coslat-scaling included, then curl is not scaled. flipsign option calculates -∇×(u,v) instead. add option calculates curl += ∇×(u,v) instead. flipsign and add can be combined. This functions only creates the kernel and calls the generic divergence function _divergence! subsequently with flipped u,v -> v,u for the curl.

          source
          Missing docstring.

          Missing docstring for SpeedyWeather._divergence!. Check Documenter's build log for details.

          Missing docstring.

          Missing docstring for SpeedyWeather.curl_div!. Check Documenter's build log for details.

          SpeedyWeather.SpeedyTransforms.UV_from_vordiv!Function
          UV_from_vordiv!(U::LowerTriangularMatrix,
          +                V::LowerTriangularMatrix,
          +                vor::LowerTriangularMatrix,
          +                div::LowerTriangularMatrix,
          +                S::SpectralTransform)

          Get U,V (=(u,v)*coslat) from vorticity ζ and divergence D in spectral space. Two operations are combined into a single linear operation. First, invert the spherical Laplace ∇² operator to get stream function from vorticity and velocity potential from divergence. Then compute zonal and meridional gradients to get U,V.

          source
          SpeedyWeather.SpeedyTransforms.UV_from_vor!Function
          UV_from_vor!(   U::LowerTriangularMatrix,
          +                V::LowerTriangularMatrix,
          +                vor::LowerTriangularMatrix,
          +                S::SpectralTransform)

          Get U,V (=(u,v)*coslat) from vorticity ζ spectral space (divergence D=0) Two operations are combined into a single linear operation. First, invert the spherical Laplace ∇² operator to get stream function from vorticity. Then compute zonal and meridional gradients to get U,V.

          source
          Missing docstring.

          Missing docstring for SpeedyWeather.ϵlm. Check Documenter's build log for details.

          Missing docstring.

          Missing docstring for SpeedyWeather.get_recursion_factors. Check Documenter's build log for details.

          Dynamics

          SpeedyWeather.bernoulli_potential!Function
          bernoulli_potential!(
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF},
          +    S::SpectralTransform
          +) -> LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat
          +

          Computes the Laplace operator ∇² of the Bernoulli potential B in spectral space.

          1. computes the kinetic energy KE = ½(u²+v²) on the grid
          2. transforms KE to spectral space
          3. adds geopotential for the Bernoulli potential in spectral space
          4. takes the Laplace operator.

          This version is used for both ShallowWater and PrimitiveEquation, only the geopotential calculation in geopotential! differs.

          source
          SpeedyWeather.volume_flux_divergence!Function
          volume_flux_divergence!(
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
          +    surface::SpeedyWeather.SurfaceVariables,
          +    orog::SpeedyWeather.AbstractOrography,
          +    constants::DynamicsConstants,
          +    G::Geometry,
          +    S::SpectralTransform
          +)
          +

          Computes the (negative) divergence of the volume fluxes uh,vh for the continuity equation, -∇⋅(uh,vh).

          source
          Missing docstring.

          Missing docstring for SpeedyWeather.vorticity_fluxes!. Check Documenter's build log for details.

          Missing docstring.

          Missing docstring for SpeedyWeather.vorticity_flux_curl!. Check Documenter's build log for details.

          Missing docstring.

          Missing docstring for SpeedyWeather.vorticity_flux_divergence!. Check Documenter's build log for details.

          Geometry

          SpeedyWeather.GeometryType

          Construct Geometry struct containing parameters and arrays describing an iso-latitude grid <:AbstractGrid and the vertical levels. Pass on SpectralGrid to calculate the following fields

          • spectral_grid::SpectralGrid: SpectralGrid that defines spectral and grid resolution

          • Grid::Type{<:SpeedyWeather.RingGrids.AbstractGrid}: grid of the dynamical core

          • nlat_half::Int64: resolution parameter nlat_half of Grid, # of latitudes on one hemisphere (incl Equator)

          • nlon_max::Int64: maximum number of longitudes (at/around Equator)

          • nlon::Int64: =nlon_max, same (used for compatibility), TODO: still needed?

          • nlat::Int64: number of latitude rings

          • nlev::Int64: number of vertical levels

          • npoints::Int64: total number of grid points

          • radius::AbstractFloat: Planet's radius [m]

          • latd::Vector{Float64}: array of latitudes in degrees (90˚...-90˚)

          • lond::Vector{Float64}: array of longitudes in degrees (0...360˚), empty for non-full grids

          • londs::Vector{NF} where NF<:AbstractFloat: longitude (-180˚...180˚) for each grid point in ring order

          • latds::Vector{NF} where NF<:AbstractFloat: latitude (-90˚...˚90) for each grid point in ring order

          • sinlat::Vector{NF} where NF<:AbstractFloat: sin of latitudes

          • coslat::Vector{NF} where NF<:AbstractFloat: cos of latitudes

          • coslat⁻¹::Vector{NF} where NF<:AbstractFloat: = 1/cos(lat)

          • coslat²::Vector{NF} where NF<:AbstractFloat: = cos²(lat)

          • coslat⁻²::Vector{NF} where NF<:AbstractFloat: # = 1/cos²(lat)

          • σ_levels_half::Vector{NF} where NF<:AbstractFloat: σ at half levels, σ_k+1/2

          • σ_levels_full::Vector{NF} where NF<:AbstractFloat: σ at full levels, σₖ

          • σ_levels_thick::Vector{NF} where NF<:AbstractFloat: σ level thicknesses, σₖ₊₁ - σₖ

          • ln_σ_levels_full::Vector{NF} where NF<:AbstractFloat: log of σ at full levels, include surface (σ=1) as last element

          source
          Missing docstring.

          Missing docstring for SpeedyWeather.vertical_coordinates. Check Documenter's build log for details.

          Time stepping

          SpeedyWeather.time_stepping!Function
          time_stepping!(
          +    progn::PrognosticVariables,
          +    diagn::DiagnosticVariables,
          +    model::SpeedyWeather.ModelSetup
          +) -> PrognosticVariables
          +

          Main time loop that that initializes output and feedback, loops over all time steps and calls the output and feedback functions.

          source
          SpeedyWeather.timestep!Function
          timestep!(
          +    progn::PrognosticVariables,
          +    diagn::DiagnosticVariables,
          +    time::Dates.DateTime,
          +    dt::Real,
          +    i::Integer,
          +    model::Barotropic
          +)
          +timestep!(
          +    progn::PrognosticVariables,
          +    diagn::DiagnosticVariables,
          +    time::Dates.DateTime,
          +    dt::Real,
          +    i::Integer,
          +    model::Barotropic,
          +    lf1::Int64
          +)
          +timestep!(
          +    progn::PrognosticVariables,
          +    diagn::DiagnosticVariables,
          +    time::Dates.DateTime,
          +    dt::Real,
          +    i::Integer,
          +    model::Barotropic,
          +    lf1::Int64,
          +    lf2::Int64
          +)
          +

          Calculate a single time step for the model <: Barotropic.

          source
          timestep!(
          +    progn::PrognosticVariables{NF<:AbstractFloat},
          +    diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},
          +    time::Dates.DateTime,
          +    dt::Real,
          +    i::Integer,
          +    model::ShallowWater
          +) -> SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat
          +timestep!(
          +    progn::PrognosticVariables{NF<:AbstractFloat},
          +    diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},
          +    time::Dates.DateTime,
          +    dt::Real,
          +    i::Integer,
          +    model::ShallowWater,
          +    lf1::Int64
          +) -> SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat
          +timestep!(
          +    progn::PrognosticVariables{NF<:AbstractFloat},
          +    diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},
          +    time::Dates.DateTime,
          +    dt::Real,
          +    i::Integer,
          +    model::ShallowWater,
          +    lf1::Int64,
          +    lf2::Int64
          +) -> SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat
          +

          Calculate a single time step for the model <: ShallowWater.

          source
          timestep!(
          +    progn::PrognosticVariables{NF<:AbstractFloat},
          +    diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},
          +    time::Dates.DateTime,
          +    dt::Real,
          +    i::Integer,
          +    model::PrimitiveEquation
          +) -> Any
          +timestep!(
          +    progn::PrognosticVariables{NF<:AbstractFloat},
          +    diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},
          +    time::Dates.DateTime,
          +    dt::Real,
          +    i::Integer,
          +    model::PrimitiveEquation,
          +    lf1::Int64
          +) -> Any
          +timestep!(
          +    progn::PrognosticVariables{NF<:AbstractFloat},
          +    diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},
          +    time::Dates.DateTime,
          +    dt::Real,
          +    i::Integer,
          +    model::PrimitiveEquation,
          +    lf1::Int64,
          +    lf2::Int64
          +) -> Any
          +

          Calculate a single time step for the model<:PrimitiveEquation

          source
          SpeedyWeather.first_timesteps!Function
          first_timesteps!(
          +    progn::PrognosticVariables,
          +    diagn::DiagnosticVariables,
          +    clock::SpeedyWeather.Clock,
          +    model::SpeedyWeather.ModelSetup,
          +    output::SpeedyWeather.AbstractOutputWriter
          +) -> typeof(time)
          +

          Performs the first two initial time steps (Euler forward, unfiltered leapfrog) to populate the prognostic variables with two time steps (t=0,Δt) that can then be used in the normal leap frogging.

          source
          SpeedyWeather.leapfrog!Function
          leapfrog!(
          +    A_old::LowerTriangularMatrix{Complex{NF<:AbstractFloat}},
          +    A_new::LowerTriangularMatrix{Complex{NF<:AbstractFloat}},
          +    tendency::LowerTriangularMatrix{Complex{NF<:AbstractFloat}},
          +    dt::Real,
          +    lf::Int64,
          +    L::Leapfrog{NF<:AbstractFloat}
          +)
          +

          Performs one leapfrog time step with (lf=2) or without (lf=1) Robert+William's filter (see William (2009), Montly Weather Review, Eq. 7-9).

          source

          Longwave radiation

          Missing docstring.

          Missing docstring for SpeedyWeather.radset!. Check Documenter's build log for details.

          Missing docstring.

          Missing docstring for SpeedyWeather.radlw_down!. Check Documenter's build log for details.

          Missing docstring.

          Missing docstring for SpeedyWeather.compute_bbe!. Check Documenter's build log for details.

          Missing docstring.

          Missing docstring for SpeedyWeather.radlw_up!. Check Documenter's build log for details.

          Shortwave radiation

          Missing docstring.

          Missing docstring for SpeedyWeather.shortwave_radiation!. Check Documenter's build log for details.

          Missing docstring.

          Missing docstring for SpeedyWeather.solar!. Check Documenter's build log for details.

          Missing docstring.

          Missing docstring for SpeedyWeather.sol_oz!. Check Documenter's build log for details.

          Missing docstring.

          Missing docstring for SpeedyWeather.cloud!. Check Documenter's build log for details.

          Missing docstring.

          Missing docstring for SpeedyWeather.radsw!. Check Documenter's build log for details.

          diff --git a/previews/PR349/grids/index.html b/previews/PR349/grids/index.html new file mode 100644 index 000000000..0826bd08d --- /dev/null +++ b/previews/PR349/grids/index.html @@ -0,0 +1,7 @@ + +Grids · SpeedyWeather.jl

          Grids

          The spectral transform (the Spherical Harmonic Transform) in SpeedyWeather.jl supports any ring-based equi-longitude grid. Several grids are already implemented but other can be added. The following pages will describe an overview of these grids and but let's start but how they can be used

          julia> spectral_grid = SpectralGrid(Grid = FullGaussianGrid)
          +SpectralGrid:
          + Spectral:   T31 LowerTriangularMatrix{Complex{Float32}}, radius = 6.371e6 m
          + Grid:       4608-element, 48-ring FullGaussianGrid{Float32} (quadratic)
          + Resolution: 333km (average)
          + Vertical:   8-level SigmaCoordinates

          The life of every SpeedyWeather.jl simulation starts with a SpectralGrid object which defines the resolution in spectral and in grid-point space. The generator SpectralGrid() can take as a keyword argument Grid which can be any of the grids described below. The resolution of the grid, however, is not directly chosen, but determined from the spectral resolution trunc and the dealiasing factor. More in Matching spectral and grid resolution.

          RingGrids is a module too!

          While RingGrids is the underlying module that SpeedyWeather.jl uses for data structs on the sphere, the module can also be used independently of SpeedyWeather, for example to interpolate between data on different grids. See RingGrids

          Ring-based equi-longitude grids

          SpeedyWeather.jl's spectral transform supports all ring-based equi-longitude grids. These grids have their grid points located on rings with constant latitude and on these rings the points are equi-spaced in longitude. There is technically no constrain on the spacing of the latitude rings, but the Legendre transform requires a quadrature to map those to spectral space and back. Common choices for latitudes are the Gaussian latitudes which use the Gaussian quadrature, or equi-angle latitudes (i.e. just regular latitudes but excluding the poles) that use the Clenshaw-Curtis quadrature. The longitudes have to be equi-spaced on every ring, which is necessary for the fast Fourier transform, as one would otherwise need to use a non-uniform Fourier transform. In SpeedyWeather.jl the first grid point on any ring can have a longitudinal offset though, for example by spacing 4 points around the globe at 45˚E, 135˚E, 225˚E, and 315˚E. In this case the offset is 45˚E as the first point is not at 0˚E.

          Implemented grids

          All grids in SpeedyWeather.jl are a subtype of AbstractGrid, i.e. <: AbstractGrid. We further distinguish between full, and reduced grids. Full grids have the same number of longitude points on every latitude ring (i.e. points converge towards the poles) and reduced grids reduce the number of points towards the poles to have them more evenly spread out across the globe. More evenly does not necessarily mean that a grid is equal-area, meaning that every grid cell covers exactly the same area (although the shape changes).

          Currently the following full grids <: AbstractFullGrid are implemented

          • FullGaussianGrid, a full grid with Gaussian latitudes
          • FullClenshawGrid, a full grid with equi-angle latitudes

          and additionally we have FullHEALPixGrid and FullOctaHEALPixGrid which are the full grid equivalents to the HEALPix grid and the OctaHEALPix grid discussed below. Full grid equivalent means that they have the same latitude rings, but no reduction in the number of points per ring towards the poles and no longitude offset. Other implemented reduced grids are

          • OctahedralGaussianGrid, a reduced grid with Gaussian latitudes based on an octahedron
          • OctahedralClenshawGrid, similar but based on equi-angle latitudes
          • HEALPixGrid, an equal-area grid based on a dodecahedron with 12 faces
          • OctaHEALPixGrid, an equal-area grid from the class of HEALPix grids but based on an octahedron.

          An overview of these grids is visualised here

          Overview of implemented grids in SpeedyWeather.jl

          Visualised are each grid's grid points (white dots) and grid faces (white lines). All grids shown have 16 latitude rings on one hemisphere, Equator included. The total number of grid points is denoted in the top left of every subplot. The sphere is shaded with grey, orange and turquoise regions to denote the hemispheres in a and b, the 8 octahedral faces c, d,f and the 12 dodecahedral faces (or base pixels) in e. Coastlines are added for orientation.

          Grid resolution

          All grids use the same resolution parameter nlat_half, i.e. the number of rings on one hemisphere, Equator included. The Gaussian grids (full and reduced) do not have a ring on the equator, so their total number of rings nlat is always even and twice nlat_half. Clenshaw-Curtis grids and the HEALPix grids have a ring on the equator such their total number of rings is always odd and one less than the Gaussian grids at the same nlat_half.

          HEALPix grids do not use Nside as resolution parameter

          The original formulation for HEALPix grids use $N_{side}$, the number of grid points along the edges of each basepixel (8 in the figure above), SpeedyWeather.jl uses nlat_half, the number of rings on one hemisphere, Equator included, for all grids. This is done for consistency across grids. We may use $N_{side}$ for the documentation or within functions though.

          Matching spectral and grid resolution

          A given spectral resolution can be matched to a variety of grid resolutions. A cubic grid, for example, combines a spectral truncation T with a grid resolution N (=nlat_half) such that T + 1 = N. Using T31 and an O32 is therefore often abbreviated as Tco31 meaning that the spherical harmonics are truncated at $l_{max}=31$ in combination with N=32, i.e. 64 latitude rings in total on an octahedral Gaussian grid.

          Let J be the total number of rings. Then we have

          • $T \approx J$ for linear truncation
          • $\frac{3}{2}T \approx J$ for quadratic truncation
          • $2T \approx J$ for cubic truncation

          and in general $\frac{m+1}{2}T \approx J$ for m-th order truncation. So the higher the truncaction order the more grid points are used in combination with the same spectral resolution. A higher truncation order therefore makes all grid-point calculations more expensive, but can represent products of terms on the grid (which will have higher wavenumber components) to a higher accuracy as more grid points are available within a given wavelength. Using a sufficiently high truncation is therefore one way to avoid aliasing. In SpeedyWeather.jl the parameter dealiasing controls this option, = 1 would be linear, = 2 quadratic, = 3 cubic etc.

          For now just a quick overview of how the grid resolution changes when dealiasing is passed onto SpectralGrid on the FullGaussianGrid

          truncdealiasingFullGaussianGrid size
          31164x32
          31296x48
          313128x64
          42196x48
          422128x64
          423192x96
          .........

          You will obtain this information every time you create a SpectralGrid(;Grid,trunc,dealiasing).

          Full Gaussian grid

          ...

          Full Clenshaw-Curtis grid

          ...

          Octahedral Gaussian grid

          ...

          The HEALPix grid

          Technically, HEALPix grids are a class of grids that tessalate the sphere into faces that are often called basepixels. For each member of this class there are $N_\varphi$ basepixels in zonal direction and $N_\theta$ basepixels in meridional direction. For $N_\varphi = 4$ and $N_\theta = 3$ we obtain the classical HEALPix grid with $N_\varphi N_\theta = 12$ basepixels shown above in Implemented Grids. Each basepixel has a quadratic number of grid points in them. There's an equatorial zone where the number of zonal grid points is constant (always $2N$, so 32 at $N=16$) and there are polar caps above and below the equatorial zone with the border at $\cos(\theta) = 2/3$ ($\theta$ in colatitudes).

          Following Górski, 2004[1], the $z=cos(\theta)$ colatitude of the $j$-th ring in the north polar cap, $j=1,...,N_{side}$ with $2N_{side} = N$ is

          \[z = 1 - \frac{j^2}{3N_{side}^2}\]

          and on that ring, the longitude $\phi$ of the $i$-th point ($i$ is the in-ring-index) is at

          \[\phi = \frac{\pi}{2j}(i-\tfrac{1}{2})\]

          The in-ring index $i$ goes from $i=1,...,4$ for the first (i.e. northern-most) ring, $i=1,...,8$ for the second ring and $i = 1,...,4j$ for the $j$-th ring in the northern polar cap.

          In the north equatorial belt $j=N_{side},...,2N_{side}$ this changes to

          \[z = \frac{4}{3} - \frac{2j}{3N_{side}}\]

          and the longitudes change to ($i$ is always $i = 1,...,4N_{side}$ in the equatorial belt meaning the number of longitude points is constant here)

          \[\phi = \frac{\pi}{2N_{side}}(i - \frac{s}{2}), \quad s = (j - N_{side} + 1) \mod 2\]

          The modulo function comes in as there is an alternating longitudinal offset from the prime meridian (see Implemented grids). For the southern hemisphere the grid point locations can be obtained by mirror symmetry.

          Grid cell boundaries

          The cell boundaries are obtained by setting $i = k + 1/2$ or $i = k + 1/2 + j$ (half indices) into the equations above, such that $z(\phi,k)$, a function for the cosine of colatitude $z$ of index $k$ and the longitude $\phi$ is obtained. These are then (northern polar cap)

          \[z = 1 - \frac{k^2}{3N_{side}^2}\left(\frac{\pi}{2\phi_t}\right)^2, \quad z = 1 - \frac{k^2}{3N_{side}^2}\left(\frac{\pi}{2\phi_t - \pi}\right)^2\]

          with $\phi_t = \phi \mod \tfrac{\pi}{2}$ and in the equatorial belt

          \[z = \frac{2}{3}-\frac{4k}{3N_{side}} \pm \frac{8\phi}{3\pi}\]

          OctaHEALPix grid

          While the classic HEALPix grid is based on a dodecahedron, other choices for $N_\varphi$ and $N_\theta$ in the class of HEALPix grids will change the number of faces there are in zonal/meridional direction. With $N_\varphi = 4$ and $N_\theta = 1$ we obtain a HEALPix grid that is based on an octahedron, which has the convenient property that there are twice as many longitude points around the equator than there are latitude rings between the poles. This is a desirable for truncation as this matches the distances too, $2\pi$ around the Equator versus $\pi$ between the poles. $N_\varphi = 6, N_\theta = 2$ or $N_\varphi = 8, N_\theta = 3$ are other possible choices for this, but also more complicated. See Górski, 2004[1] for further examples and visulations of these grids.

          We call the $N_\varphi = 4, N_\theta = 1$ HEALPix grid the OctaHEALPix grid, which combines the equal-area property of the HEALPix grids with the octahedron that's also used in the OctahedralGaussianGrid or the OctahedralClenshawGrid. As $N_\theta = 1$ there is no equatorial belt which simplifies the grid. The latitude of the $j$-th isolatitude ring on the OctaHEALPixGrid is defined by

          \[z = 1 - \frac{j^2}{N^2},\]

          with $j=1,...,N$, and similarly for the southern hemisphere by symmetry. On this grid $N_{side} = N$ where $N$= nlat_half, the number of latitude rings on one hemisphere, Equator included, because each of the 4 basepixels spans from pole to pole and covers a quarter of the sphere. The longitudes with in-ring- index $i = 1,...,4j$ are

          \[\phi = \frac{\pi}{2j}(i - \tfrac{1}{2})\]

          and again, the southern hemisphere grid points are obtained by symmetry.

          Grid cell boundaries

          Similar to the grid cell boundaries for the HEALPix grid, the OctaHEALPix grid's boundaries are

          \[z = 1 - \frac{k^2}{N^2}\left(\frac{\pi}{2\phi_t}\right)^2, \quad z = 1 - \frac{k^2}{N^2}\left(\frac{\pi}{2\phi_t - \pi}\right)^2\]

          The $3N_{side}^2$ in the denominator of the HEALPix grid came simply $N^2$ for the OctaHEALPix grid and there's no separate equation for the equatorial belt (which doesn't exist in the OctaHEALPix grid).

          References

          [1] Górski, Hivon, Banday, Wandelt, Hansen, Reinecke, Bartelmann, 2004. HEALPix: A FRAMEWORK FOR HIGH-RESOLUTION DISCRETIZATION AND FAST ANALYSIS OF DATA DISTRIBUTED ON THE SPHERE, The Astrophysical Journal. doi:10.1086/427976

          diff --git a/previews/PR349/how_to_run_speedy/index.html b/previews/PR349/how_to_run_speedy/index.html new file mode 100644 index 000000000..ba162cda9 --- /dev/null +++ b/previews/PR349/how_to_run_speedy/index.html @@ -0,0 +1,57 @@ + +How to run SpeedyWeather.jl · SpeedyWeather.jl

          How to run SpeedyWeather.jl

          Creating a SpeedyWeather.jl simulation and running it consists conceptually of 4 steps

          1. Create a SpectralGrid which defines the grid and spectral resolution
          2. Create a model
          3. Initialize a model to obtain a Simulation.
          4. Run the simulation.

          In the following we will describe these steps in more detail, but let's start with some examples first.

          Example 1: 2D turbulence on a non-rotating sphere

          We want to use the barotropic model to simulate some free-decaying 2D turbulence on the sphere without rotation. We start by defining the SpectralGrid object. To have a resolution of about 100km, we choose a spectral resolution of T127 (see Available resolutions) and nlev=1 vertical levels. The SpectralGrid object will provide us with some more information

          julia> spectral_grid = SpectralGrid(trunc=127,nlev=1)
          +SpectralGrid:
          + Spectral:   T127 LowerTriangularMatrix{Complex{Float32}}, radius = 6.371e6 m
          + Grid:       40320-element, 192-ring OctahedralGaussianGrid{Float32} (quadratic)
          + Resolution: 112km (average)
          + Vertical:   1-level SigmaCoordinates

          We could have specified further options, but let's ignore that for now. Next step we create a planet that's like Earth but not rotating

          julia> still_earth = Earth(rotation=0)
          +Main.SpeedyWeather.Earth
          +  rotation: Float64 0.0
          +  gravity: Float64 9.81
          +  daily_cycle: Bool true
          +  length_of_day: Float64 24.0
          +  seasonal_cycle: Bool true
          +  length_of_year: Float64 365.25
          +  equinox: Dates.DateTime
          +  axial_tilt: Float64 23.4

          There are other options to create a planet but they are irreleveant for the barotropic vorticity equations. We also want to specify the initial conditions, randomly distributed vorticity is already defined

          julia> initial_conditions = StartWithRandomVorticity()
          +StartWithRandomVorticity
          +  power_law: Float64 -3.0
          +  amplitude: Float64 1.0e-5

          By default, the power of vorticity is spectrally distributed with $k^{-3}$, $k$ being the horizontal wavenumber, and the amplitude is $10^{-5}\text{ s}^{-1}$.

          Now we want to construct a BarotropicModel with these

          julia> model = BarotropicModel(;spectral_grid, initial_conditions, planet=still_earth);

          The model contains all the parameters, but isn't initialized yet, which we can do with and then run it.

          julia> simulation = initialize!(model);
          +julia> run!(simulation,n_days=30)

          The run! command will always return the prognostic variables, which, by default, are plotted for surface relative vorticity with a unicode plot. The resolution of the plot is not necessarily representative but it lets us have a quick look at the result

          Barotropic vorticity unicode plot

          Woohoo! I can see turbulence! You could pick up where this simulation stopped by simply doing run!(simulation,n_days=50) again. We didn't store any output, which you can do by run!(simulation,output=true), which will switch on NetCDF output with default settings. More options on output in NetCDF output.

          Example 2: Shallow water with mountains

          As a second example, let's investigate the Galewsky et al.[1] test case for the shallow water equations with and without mountains. As the shallow water system has also only one level, we can reuse the SpectralGrid from Example 1.

          julia> spectral_grid = SpectralGrid(trunc=127,nlev=1)

          Now as a first simulation, we want to disable any orography, so we create a NoOrography

          julia> orography = NoOrography(spectral_grid)
          +NoOrography{Float32, OctahedralGaussianGrid{Float32}}

          Although the orography is zero, you have to pass on spectral_grid so that it can still initialize zero-arrays of the right size and element type. Awesome. This time the initial conditions should be set the the Galewsky et al.[1] zonal jet, which is already defined as

          julia> initial_conditions = ZonalJet()
          +ZonalJet
          +  latitude: Float64 45.0
          +  width: Float64 19.28571428571429
          +  umax: Float64 80.0
          +  perturb_lat: Float64 45.0
          +  perturb_lon: Float64 270.0
          +  perturb_xwidth: Float64 19.098593171027442
          +  perturb_ywidth: Float64 3.819718634205488
          +  perturb_height: Float64 120.0

          The jet sits at 45˚N with a maximum velocity of 80m/s and a perturbation as described in their paper. Now we construct a model, but this time a ShallowWaterModel

          julia> model = ShallowWaterModel(;spectral_grid, orography, initial_conditions);
          +julia> simulation = initialize!(model);

          Galewsky jet unicode plot

          Oh yeah. That looks like the wobbly jet in their paper. Let's run it again for another 6 days but this time also store NetCDF output.

          julia> run!(simulation,n_days=6,output=true)
          +Weather is speedy: run 0002 100%|███████████████████████| Time: 0:00:12 (115.37 years/day)

          The progress bar tells us that the simulation run got the identification "0002", meaning that data is stored in the folder /run_0002, so let's plot that data properly (and not just using UnicodePlots).

          julia> using PyPlot, NCDatasets
          +julia> ds = NCDataset("run_0002/output.nc");
          +julia> ds["vor"]
          +vor (384 × 192 × 1 × 25)
          +  Datatype:    Float32
          +  Dimensions:  lon × lat × lev × time
          +  Attributes:
          +   units                = 1/s
          +   missing_value        = NaN
          +   long_name            = relative vorticity
          +   _FillValue           = NaN

          Vorticity vor is stored as a 384x192x1x25 array, we may want to look at the first time step, which is the end of the previous simulation (time=6days) which we didn't store output for.

          julia> vor = ds["vor"][:,:,1,1];
          +julia> lat = ds["lat"][:];
          +julia> lon = ds["lon"][:];
          +julia> pcolormesh(lon,lat,vor')

          Which looks like

          Galewsky jet pyplot

          You see that the unicode plot heavily coarse-grains the simulation, well it's unicode after all! And now the last time step, that means time=12days is

          julia> vor = ds["vor"][:,:,1,25];
          +julia> pcolormesh(lon,lat,vor')

          Galewsky jet pyplot

          The jet broke up into many small eddies, but the turbulence is still confined to the northern hemisphere, cool! How this may change when we add mountains (we had NoOrography above!), say Earth's orography, you may ask? Let's try it out! We create an EarthOrography struct like so

          julia> orography = EarthOrography(spectral_grid)
          +EarthOrography{Float32, OctahedralGaussianGrid{Float32}}:
          + path::String = SpeedyWeather.jl/input_data
          + file::String = orography_F512.nc
          + scale::Float64 = 1.0
          + smoothing::Bool = true
          + smoothing_power::Float64 = 1.0
          + smoothing_strength::Float64 = 0.1
          + smoothing_truncation::Int64 = 85

          It will read the orography from file as shown, and there are some smoothing options too, but let's not change them. Same as before, create a model, intialize into a simulation, run. This time directly for 12 days so that we can compare with the last plot

          julia> model = ShallowWaterModel(;spectral_grid, orography, initial_conditions);
          +julia> simulation = initialize!(model);
          +julia> run!(simulation,n_days=12,output=true)
          +Weather is speedy: run 0003 100%|███████████████████████| Time: 0:00:35 (79.16 years/day)

          This time the run got the id "0003", but otherwise we do as before.

          Galewsky jet pyplot

          Interesting! The initial conditions have zero velocity in the southern hemisphere, but still, one can see some imprint of the orography on vorticity. You can spot the coastline of Antarctica; the Andes and Greenland are somewhat visible too. Mountains also completely changed the flow after 12 days, probably not surprising!

          SpectralGrid

          The life of every SpeedyWeather.jl simulation starts with a SpectralGrid object. We have seen some examples above, now let's look into the details

          SpeedyWeather.SpectralGridType

          Defines the horizontal spectral resolution and corresponding grid and the vertical coordinate for SpeedyWeather.jl. Options are

          • NF::Type{<:AbstractFloat}: number format used throughout the model

          • trunc::Int64: horizontal resolution as the maximum degree of spherical harmonics

          • Grid::Type{<:SpeedyWeather.RingGrids.AbstractGrid}: horizontal grid used for calculations in grid-point space

          • dealiasing::Float64: how to match spectral with grid resolution: dealiasing factor, 1=linear, 2=quadratic, 3=cubic grid

          • radius::Float64: radius of the sphere [m]

          • nlat_half::Int64: number of latitude rings on one hemisphere (Equator incl)

          • npoints::Int64: total number of grid points in the horizontal

          • nlev::Int64: number of vertical levels

          • vertical_coordinates::SpeedyWeather.VerticalCoordinates: coordinates used to discretize the vertical

          nlat_half and npoints should not be chosen but are derived from trunc, Grid and dealiasing.

          source

          References

          [1] Galewsky, Scott, Polvani, 2004. An initial-value problem for testing numerical models of the global shallow-water equations, Tellus A. DOI: 10.3402/tellusa.v56i5.14436

          diff --git a/previews/PR349/index.html b/previews/PR349/index.html new file mode 100644 index 000000000..0713623b0 --- /dev/null +++ b/previews/PR349/index.html @@ -0,0 +1,2 @@ + +Home · SpeedyWeather.jl

          SpeedyWeather.jl documentation

          Welcome to the documentation for SpeedyWeather.jl a global atmospheric circulation model with simple parametrizations to represent physical processes such as clouds, precipitation and radiation.

          Overview

          SpeedyWeather.jl is a global spectral model that uses a spherical harmonic transform to perform some calculations in spectral space (time integration, gradients, linear terms) and some in grid-point space (advection, non-linear terms, parameterizations). The prognostic variables used are vorticity, divergence, absolute temperature, logarithm of surface pressure and specific humidity. The time stepping uses a leapfrog scheme with additional filters and a semi-implicit formulation for gravity waves. The default resolution is T31 (96x48 grid points on a regular Gaussian grid, about 400km at the Equator) and 8 vertical levels.

          Simple parameterizations are used to represent the physical processes convection, large-scale condensation, clouds, short-wave radiation, long-waves radiation, surface fluxes of momentum and energy, and vertical diffusion.

          Manual outline

          See the following pages of the documentation for more details

          and the submodules

          and the original documentation by Molteni and Kucharski.

          Developers

          The development of SpeedyWeather.jl is lead by Milan Klöwer and current and past contributors include

          Any contributions are always welcome!

          Funding

          MK received funding by the European Research Council under Horizon 2020 within the ITHACA project, grant agreement number 741112 from 2021-2022. Since 2023 this project is also funded by the National Science Foundation NSF.

          diff --git a/previews/PR349/installation/index.html b/previews/PR349/installation/index.html new file mode 100644 index 000000000..cdcf75e2e --- /dev/null +++ b/previews/PR349/installation/index.html @@ -0,0 +1,3 @@ + +Installation · SpeedyWeather.jl

          Installation

          SpeedyWeather.jl is registered in the Julia Registry. In most cases just open the Julia REPL and type

          julia> using Pkg
          +julia> Pkg.add("SpeedyWeather")

          which will automatically install the latest release and all necessary dependencies. If you run into any troubles please raise an issue

          However, you may want to make use of the latest features, then install directly from the main branch with

          julia> Pkg.add(url="https://github.com/SpeedyWeather/SpeedyWeather.jl",rev="main")

          other branches than main can be similarly installed.

          Compatibility with Julia versions

          SpeedyWeather.jl usually lives on the latest minor release and/or its predecessor. At the moment (May 2023) this means

          • Julia v1.8
          • Julia v1.9

          are supported, but we dropped the support of earlier versions.

          diff --git a/previews/PR349/lowertriangularmatrices/index.html b/previews/PR349/lowertriangularmatrices/index.html new file mode 100644 index 000000000..e5ce4e3e9 --- /dev/null +++ b/previews/PR349/lowertriangularmatrices/index.html @@ -0,0 +1,60 @@ + +Submodule: LowerTriangularMatrices · SpeedyWeather.jl

          LowerTriangularMatrices

          LowerTriangularMatrices is a submodule that has been developed for SpeedyWeather.jl which is technically independent (SpeedyWeather.jl however imports it and so does SpeedyTransforms) and can also be used without running simulations. It is just not put into its own respective repository.

          This module defines LowerTriangularMatrix, a lower triangular matrix, which in contrast to LinearAlgebra.LowerTriangular does not store the entries above the diagonal. SpeedyWeather.jl uses LowerTriangularMatrix which is defined as a subtype of AbstractMatrix to store the spherical harmonic coefficients (see Spectral packing).

          Creation of LowerTriangularMatrix

          A LowerTriangularMatrix can be created using zeros,ones,rand, or randn

          julia> using SpeedyWeather.LowerTriangularMatrices
          +
          +julia> L = rand(LowerTriangularMatrix{Float32},5,5)
          +5×5 LowerTriangularMatrix{Float32}:
          + 0.912744   0.0        0.0       0.0       0.0
          + 0.0737592  0.230592   0.0       0.0       0.0
          + 0.799679   0.0765255  0.888098  0.0       0.0
          + 0.670835   0.997938   0.505276  0.492966  0.0
          + 0.949321   0.193692   0.793623  0.152817  0.357968

          or the undef initializor LowerTriangularMatrix{Float32}(undef,3,3). The element type is arbitrary though, you can use any type T too.

          Alternatively, it can be created through conversion from Matrix, which drops the upper triangle entries and sets them to zero

          julia> M = rand(Float16,3,3)
          +3×3 Matrix{Float16}:
          + 0.2222  0.694    0.3452
          + 0.2158  0.04443  0.274
          + 0.9746  0.793    0.6294
          +
          +julia> LowerTriangularMatrix(M)
          +3×3 LowerTriangularMatrix{Float16}:
          + 0.2222  0.0      0.0
          + 0.2158  0.04443  0.0
          + 0.9746  0.793    0.6294

          Indexing LowerTriangularMatrix

          LowerTriangularMatrix supports two types of indexing: 1) by denoting two indices, column and row [l,m] or 2) by denoting a single index [lm]. The double index works as expected

          julia> L
          +3×3 LowerTriangularMatrix{Float16}:
          + 0.1499  0.0    0.0
          + 0.1177  0.478  0.0
          + 0.1709  0.756  0.3223
          +
          +julia> L[2,2]
          +Float16(0.478)

          But the single index skips the zero entries in the upper triangle, i.e.

          julia> L[4]
          +Float16(0.478)

          which, important, is different from single indices of an AbstractMatrix

          julia> Matrix(L)[4]
          +Float16(0.0)

          In performance-critical code a single index should be used, as this directly maps to the index of the underlying data vector. The double index is somewhat slower as it first has to be converted to the corresponding single index.

          Consequently, many loops in SpeedyWeather.jl are build with the following structure

          n,m = size(L)
          +ij = 0
          +for j in 1:m
          +    for i in j:n
          +        ij += 1
          +        L[ij] = i+j
          +    end
          +end

          which loops over all lower triangle entries of L::LowerTriangularMatrix and the single index ij is simply counted up. However, one could also use [i,j] as indices in the loop body or to perform any calculation (i+j here). An iterator over all entries in the lower triangle can be created by

          for ij in eachindex(L)
          +    # do something
          +end

          The setindex! functionality of matrixes will throw a BoundsError when trying to write into the upper triangle of a LowerTriangularMatrix, for example

          julia> L[2,1] = 0    # valid index
          +0
          +
          +julia> L[1,2] = 0    # invalid index in the upper triangle
          +ERROR: BoundsError: attempt to access 3×3 LowerTriangularMatrix{Float32} at index [1, 2]

          Linear algebra with LowerTriangularMatrix

          The LowerTriangularMatrices module's main purpose is not linear algebra, and it's implementation may not be efficient, however, many operations work as expected

          julia> L = rand(LowerTriangularMatrix{Float32},3,3)
          +3×3 LowerTriangularMatrix{Float32}:
          + 0.57649   0.0       0.0
          + 0.348685  0.875371  0.0
          + 0.881923  0.850552  0.998306
          +
          +julia> L + L
          +3×3 LowerTriangularMatrix{Float32}:
          + 1.15298   0.0      0.0
          + 0.697371  1.75074  0.0
          + 1.76385   1.7011   1.99661
          +
          +julia> L * L
          +3×3 Matrix{Float32}:
          + 0.332341  0.0       0.0
          + 0.506243  0.766275  0.0
          + 1.68542   1.59366   0.996616

          Note, however, that the latter includes a conversion to Matrix, which is true for many operations, including inv or \. Hence when trying to do more sophisticated linear algebra with LowerTriangularMatrix we quickly leave lower triangular-land and go back to normal matrix-land.

          Function index

          SpeedyWeather.LowerTriangularMatrices.LowerTriangularMatrixType
          L = LowerTriangularMatrix{T}(v::Vector{T},m::Int,n::Int)

          A lower triangular matrix implementation that only stores the non-zero entries explicitly. L<:AbstractMatrix although in general we have L[i] != Matrix(L)[i], the former skips zero entries, tha latter includes them.

          source
          SpeedyWeather.LowerTriangularMatrices.ij2kFunction
          k = ij2k(   i::Integer,     # row index of matrix
          +            j::Integer,     # column index of matrix
          +            m::Integer)     # number of rows in matrix

          Converts the index pair i,j of an mxn LowerTriangularMatrix L to a single index k that indexes the same element in the corresponding vector that stores only the lower triangle (the non-zero entries) of L.

          source
          Base.fill!Method
          fill!(L::LowerTriangularMatrix,x)

          Fills the elements of L with x. Faster than fill!(::AbstractArray,x) as only the non-zero elements in L are assigned with x.

          source
          SpeedyWeather.LowerTriangularMatrices.eachharmonicFunction
          unit_range = eachharmonic(L::LowerTriangular)

          creates unit_range::UnitRange to loop over all non-zeros in a LowerTriangularMatrix L. Like eachindex but skips the upper triangle with zeros in L.

          source
          unit_range = eachharmonic(Ls::LowerTriangularMatrix...)

          creates unit_range::UnitRange to loop over all non-zeros in the LowerTriangularMatrices provided as arguments. Checks bounds first. All LowerTriangularMatrix's need to be of the same size. Like eachindex but skips the upper triangle with zeros in L.

          source
          diff --git a/previews/PR349/output/index.html b/previews/PR349/output/index.html new file mode 100644 index 000000000..793d77a10 --- /dev/null +++ b/previews/PR349/output/index.html @@ -0,0 +1,31 @@ + +NetCDF output · SpeedyWeather.jl

          NetCDF output

          SpeedyWeather.jl uses NetCDF to output the data of a simulation. The following describes the details of this and how to change the way in which the NetCDF output is written. There are many options to this available.

          Accessing the NetCDF output writer

          The output writer is a component of every Model, i.e. BarotropicModel, ShallowWaterModel, PrimitiveDryModel and PrimitiveWetModel, hence a non-default output writer can be passed on as a keyword argument to the model constructor

          julia> spectral_grid = SpectralGrid()
          +julia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry)
          +julia> model = PrimitiveDryModel(;spectral_grid, output=my_output_writer)

          So after we have defined the grid through the SpectralGrid object we can use and change the implemented OutputWriter by passing on the following arguments

          julia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry, kwargs...)

          the spectral_grid has to be the first argument then the model type (Barotropic, ShallowWater, PrimitiveDry, PrimitiveWet) which helps the output writer to make default choices on which variables to output. However, we can also pass on further keyword arguments. So let's start with an example.

          Example 1: NetCDF output every hour

          If we want to increase the frequency of the output we can choose output_dt (default =6 in hours) like so

          julia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry, output_dt=1)
          +julia> model = PrimitiveDryModel(;spectral_grid, output=my_output_writer)

          which will now output every hour. It is important to pass on the new output writer my_output_writer to the model constructor, otherwise it will not be part of your model and the default is used instead. Note that output_dt has to be understood as the minimum frequency or maximum output time step. Example, we run the model at a resolution of T85 and the time step is going to be 670s

          julia> spectral_grid = SpectralGrid(trunc=85)
          +julia> time_stepper = Leapfrog(spectral_grid)
          +Leapfrog{Float32}:
          +...
          + Δt_sec::Int64 = 670
          +...

          This means that after 32 time steps 5h 57min and 20s will have passed where output will happen as the next time step would be >6h. The time axis of the NetCDF output will look like

          julia> using NCDatasets
          +julia> ds = NCDataset("run_0001/output.nc");
          +julia> ds["time"][:]
          +5-element Vector{Dates.DateTime}:
          + 2000-01-01T00:00:00
          + 2000-01-01T05:57:20
          + 2000-01-01T11:54:40
          + 2000-01-01T17:52:00
          + 2000-01-01T23:49:20
          +
          +julia> diff(ds["time"][:])
          +4-element Vector{Dates.Millisecond}:
          + 21440000 milliseconds
          + 21440000 milliseconds
          + 21440000 milliseconds
          + 21440000 milliseconds

          This is so that we don't interpolate in time during output to hit exactly every 6 hours, but at the same time have a constant spacing in time between output time steps.

          Example 2: Output onto a higher/lower resolution grid

          Say we want to run the model at a given horizontal resolution but want to output on another resolution, the OutputWriter takes as argument output_Grid<:AbstractFullGrid and nlat_half::Int. So for example output_Grid=FullClenshawGrid and nlat_half=48 will always interpolate onto a regular 192x95 longitude-latitude grid of 1.875˚ resolution, regardless the grid and resolution used for the model integration.

          julia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry, output_Grid=FullClenshawGrid, nlat_half=48)

          Note that by default the output is on the corresponding full of the grid used in the dynamical core so that interpolation only happens at most in the zonal direction as they share the location of the latitude rings. You can check this by

          julia> RingGrids.full_grid(OctahedralGaussianGrid)
          +FullGaussianGrid

          So the corresponding full grid of an OctahedralGaussianGrid is the FullGaussiangrid and the same resolution nlat_half is chosen by default in the output writer (which you can change though as shown above). Overview of the corresponding full grids

          GridCorresponding full grid
          FullGaussianGridFullGaussianGrid
          FullClenshawGridFullClenshawGrid
          OctahadralGaussianGridFullGaussianGrid
          OctahedralClensawhGridFullClenshawGrid
          HEALPixGridFullHEALPixGrid
          OctaHEALPixGridFullOctaHEALPixGrid

          The grids FullHEALPixGrid, FullOctaHEALPixGrid share the same latitude rings as their reduced grids, but have always as many longitude points as they are at most around the equator. These grids are not tested in the dynamical core (but you may use them experimentally) and mostly designed for output purposes.

          Example 3: Changing the output path or identification

          That's easy by passing on path="/my/favourite/path/" and the folder run_* with * the identification of the run (that's the id keyword, which can be manually set but is also automatically determined as a number counting up depending on which folders already exist) will be created within.

          julia> path = pwd()
          +"/Users/milan"
          +julia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry, path=path)

          This folder must already exist. If you want to give your run a name/identification you can pass on id

          julia> my_output_writer = OutputWriter(spectral_grid,PrimitiveDry,id="diffusion_test");

          which will be used instead of a 4 digit number like 0001, 0002 which is automatically determined if id is not provided. You will see the id of the run in the progress bar

          Weather is speedy: run diffusion_test 100%|███████████████████████| Time: 0:00:12 (19.20 years/day)

          and the run folder, here run_diffusion_test, is also named accordingly

          shell> ls
          +...
          +run_diffusion_test
          +...

          Further options

          Further options are described in the OutputWriter docstring, (also accessible via julia>?OutputWriter for example). Note that some fields are actual options, but others are derived from the options you provided or are arrays/objects the output writer needs, but shouldn't be passed on by the user. The actual options are declared as [OPTION] in the following

          SpeedyWeather.OutputWriterType

          NetCDF output writer. Contains all output options and auxiliary fields for output interpolation. To be initialised with OutputWriter(::SpectralGrid,::Type{<:ModelSetup},kwargs...) to pass on the resolution information and the model type which chooses which variables to output. Options include

          • spectral_grid::SpectralGrid

          • output::Bool

          • path::String: [OPTION] path to output folder, run_???? will be created within

          • id::String: [OPTION] run identification number/string

          • run_path::String

          • filename::String: [OPTION] name of the output netcdf file

          • write_restart::Bool: [OPTION] also write restart file if output==true?

          • pkg_version::VersionNumber

          • startdate::Dates.DateTime

          • output_dt::Float64: [OPTION] output frequency, time step [hrs]

          • output_dt_sec::Int64: actual output time step [sec]

          • output_vars::Vector{Symbol}: [OPTION] which variables to output, u, v, vor, div, pres, temp, humid

          • missing_value::Union{Float32, Float64}: [OPTION] missing value to be used in netcdf output

          • compression_level::Int64: [OPTION] lossless compression level; 1=low but fast, 9=high but slow

          • keepbits::SpeedyWeather.Keepbits: [OPTION] mantissa bits to keep for every variable

          • output_every_n_steps::Int64

          • timestep_counter::Int64

          • output_counter::Int64

          • netcdf_file::Union{Nothing, NetCDF.NcFile}

          • input_Grid::Type{<:SpeedyWeather.RingGrids.AbstractGrid}

          • as_matrix::Bool: [OPTION] sort grid points into a matrix (interpolation-free), for OctahedralClenshawGrid, OctaHEALPixGrid only

          • quadrant_rotation::NTuple{4, Int64}

          • matrix_quadrant::NTuple{4, Tuple{Int64, Int64}}

          • output_Grid::Type{<:SpeedyWeather.RingGrids.AbstractFullGrid}: [OPTION] the grid used for output, full grids only

          • nlat_half::Int64: [OPTION] the resolution of the output grid, default: same nlat_half as in the dynamical core

          • nlon::Int64

          • nlat::Int64

          • npoints::Int64

          • nlev::Int64

          • interpolator::SpeedyWeather.RingGrids.AbstractInterpolator

          • u::Matrix{NF} where NF<:Union{Float32, Float64}

          • v::Matrix{NF} where NF<:Union{Float32, Float64}

          • vor::Matrix{NF} where NF<:Union{Float32, Float64}

          • div::Matrix{NF} where NF<:Union{Float32, Float64}

          • temp::Matrix{NF} where NF<:Union{Float32, Float64}

          • pres::Matrix{NF} where NF<:Union{Float32, Float64}

          • humid::Matrix{NF} where NF<:Union{Float32, Float64}

          • precip_cond::Matrix{NF} where NF<:Union{Float32, Float64}

          • precip_conv::Matrix{NF} where NF<:Union{Float32, Float64}

          source
          diff --git a/previews/PR349/parametrizations/index.html b/previews/PR349/parametrizations/index.html new file mode 100644 index 000000000..2235c18b0 --- /dev/null +++ b/previews/PR349/parametrizations/index.html @@ -0,0 +1,2 @@ + +Parameterizations · SpeedyWeather.jl
          diff --git a/previews/PR349/ringgrids/index.html b/previews/PR349/ringgrids/index.html new file mode 100644 index 000000000..70bda4b59 --- /dev/null +++ b/previews/PR349/ringgrids/index.html @@ -0,0 +1,298 @@ + +Submodule: RingGrids · SpeedyWeather.jl

          RingGrids

          RingGrids is a submodule that has been developed for SpeedyWeather.jl which is technically independent (SpeedyWeather.jl however imports it and so does SpeedyTransforms) and can also be used without running simulations. It is just not put into its own respective repository.

          RingGrids defines several iso-latitude grids, which are mathematically described in the section on Grids. In brief, they include the regular latitude-longitude grids (here called FullClenshawGrid) as well as grids which latitudes are shifted to the Gaussian latitudes and reduced grids, meaning that they have a decreasing number of longitudinal points towards the poles to be more equal-area than full grids.

          RingGrids defines and exports the following grids:

          • full grids: FullClenshawGrid, FullGaussianGrid, FullHEALPix, and FullOctaHEALPix
          • reduced grids: OctahedralGaussianGrid, OctahedralClenshawGrid, OctaHEALPixGrid and HEALPixGrid

          The following explanation of how to use these can be mostly applied to any of them, however, there are certain functions that are not defined, e.g. the full grids can be trivially converted to a Matrix but not the OctahedralGaussianGrid.

          What is a ring?

          We use the term ring, short for iso-latitude ring, to refer to a sequence of grid points that all share the same latitude. A latitude-longitude grid is a ring grid, as it organises its grid-points into rings. However, other grids, like the cubed-sphere are not based on iso-latitude rings. SpeedyWeather.jl only works with ring grids because its a requirement for the Spherical Harmonic Transform to be efficient. See Grids.

          Creating data on a RingGrid

          Every grid in RingGrids has a grid.data field, which is a vector containing the data on the grid. The grid points are unravelled west to east then north to south, meaning that it starts at 90˚N and 0˚E then walks eastward for 360˚ before jumping on the next latitude ring further south, this way circling around the sphere till reaching the south pole. This may also be called ring order.

          Data in a Matrix which follows this ring order can be put on a FullGaussianGrid like so

          using SpeedyWeather.RingGrids
          +map = randn(Float32,8,4)
          8×4 Matrix{Float32}:
          + -1.09251   -1.29771   -0.0365625   0.202517
          + -0.270295  -0.912962   0.571879    0.192117
          + -0.700662   0.184875  -0.0147657   0.470647
          +  0.403024  -1.67196    0.449363    0.280767
          + -1.10773    0.325041  -1.73687     0.882689
          +  0.271695  -2.15356   -1.01718    -2.07523
          +  1.50114   -1.95155    1.4485      0.274577
          + -0.507874   0.172651   1.10131    -1.17821
          grid = FullGaussianGrid(map)
          32-element, 4-ring FullGaussianGrid{Float32}:
          + -1.0925065
          + -0.27029544
          + -0.7006623
          +  0.4030235
          + -1.1077335
          +  0.2716952
          +  1.5011374
          + -0.5078741
          + -1.2977123
          + -0.9129624
          +  ⋮
          +  1.101311
          +  0.20251678
          +  0.1921169
          +  0.47064677
          +  0.280767
          +  0.8826895
          + -2.0752277
          +  0.2745772
          + -1.1782082

          A full Gaussian grid has always $2N$ x $N$ grid points, but a FullClenshawGrid has $2N$ x $N-1$, if those dimensions don't match, the creation will throw an error. To reobtain the data from a grid, you can access its data field which returns a normal Vector

          grid.data
          32-element Vector{Float32}:
          + -1.0925065
          + -0.27029544
          + -0.7006623
          +  0.4030235
          + -1.1077335
          +  0.2716952
          +  1.5011374
          + -0.5078741
          + -1.2977123
          + -0.9129624
          +  ⋮
          +  1.101311
          +  0.20251678
          +  0.1921169
          +  0.47064677
          +  0.280767
          +  0.8826895
          + -2.0752277
          +  0.2745772
          + -1.1782082

          Which can be reshaped to reobtain map from above. Alternatively you can Matrix(grid) to do this in one step

          map == Matrix(FullGaussianGrid(map))
          true

          You can also use zeros,ones,rand,randn to create a grid, whereby nlat_half, i.e. the number of latitude rings on one hemisphere, Equator included, is used as a resolution parameter and here as a second argument.

          nlat_half = 4
          +grid = randn(OctahedralGaussianGrid{Float16},nlat_half)
          208-element, 8-ring OctahedralGaussianGrid{Float16}:
          +  0.6978
          + -1.317
          +  0.6113
          + -1.97
          +  1.272
          +  0.3528
          + -1.458
          +  1.317
          +  0.0917
          +  1.411
          +  ⋮
          +  0.719
          + -2.225
          + -0.2489
          + -1.137
          + -0.844
          + -0.2708
          +  0.7236
          + -0.73
          +  0.627

          and any element type T can be used for OctahedralGaussianGrid{T} and similar for other grid types.

          Visualising RingGrid data

          As only the full grids can be reshaped into a matrix, the underyling data structure of any AbstractGrid is a vector. As shown in the examples above, one can therefore inspect the data as if it was a vector. But as that data has, through its <:AbstractGrid type, all the geometric information available to plot it on a map, RingGrids also exports plot function, based on UnicodePlots' heatmap.

          nlat_half = 24
          +grid = randn(OctahedralGaussianGrid,nlat_half)
          +plot(grid)
                             48-ring OctahedralGaussianGrid{Float64}                
          +       ┌────────────────────────────────────────────────────────────┐  4  
          +    90 ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ┌──┐
          +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄
          +       ▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄
          +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄
          +       ▄▄▄▄▄▄▄▄▄▄ ▄▄
          +       ▄▄▄▄▄▄▄▄▄▄▄ ▄▄
          +       ▄▄▄▄▄▄▄ ▄▄
          +    ˚N ▄▄▄▄▄▄▄▄▄▄ ▄▄
          +       ▄▄▄▄▄ ▄▄
          +       ▄▄▄▄▄▄▄▄▄ ▄▄
          +       ▄▄▄▄▄ ▄▄
          +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄
          +       ▄▄▄▄▄▄▄▄▄▄▄ ▄▄
          +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄
          +   -90 ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ └──┘
          +       └────────────────────────────────────────────────────────────┘ -3  
          +        0                           ˚E                           360      

          Indexing RingGrids

          All RingGrids have a single index ij which follows the ring order. While this is obviously not super exciting here are some examples how to make better use of the information that the data sits on a grid.

          We obtain the latitudes of the rings of a grid by calling get_latd (get_lond is only defined for full grids, or use get_latdlonds for latitudes, longitudes per grid point not per ring)

          grid = randn(OctahedralClenshawGrid,5)
          +latd = get_latd(grid)
          9-element Vector{Float64}:
          +  72.0
          +  54.0
          +  36.0
          +  18.0
          +   0.0
          + -18.0
          + -36.0
          + -54.0
          + -72.0

          Now we could calculate Coriolis and add it on the grid as follows

          rotation = 7.29e-5                  # angular frequency of Earth's rotation [rad/s]
          +coriolis = 2rotation*sind.(latd)    # vector of coriolis parameters per latitude ring
          +
          +rings = eachring(grid)
          +for (j,ring) in enumerate(rings)
          +    f = coriolis[j]
          +    for ij in ring
          +        grid[ij] += f
          +    end
          +end

          eachring creates a vector of UnitRange indices, such that we can loop over the ring index j (j=1 being closest to the North pole) pull the coriolis parameter at that latitude and then loop over all in-ring indices i (changing longitudes) to do something on the grid. Something similar can be done to scale/unscale with the cosine of latitude for example. We can always loop over all grid-points like so

          for ij in eachgridpoint(grid)
          +    grid[ij]
          +end

          or use eachindex instead.

          Interpolation on RingGrids

          In most cases we will want to use RingGrids so that our data directly comes with the geometric information of where the grid-point is one the sphere. We have seen how to use get_latd, get_lond, ... for that above. This information generally can also be used to interpolate our data from grid to another or to request an interpolated value on some coordinates. Using our data on grid which is an OctahedralGaussianGrid from above we can use the interpolate function to get it onto a FullGaussianGrid (or any other grid for purpose)

          grid = randn(OctahedralGaussianGrid{Float32},4)
          208-element, 8-ring OctahedralGaussianGrid{Float32}:
          +  0.23597956
          + -0.298304
          +  0.27971217
          +  1.9731903
          +  0.86665
          +  0.25980932
          + -1.6751872
          + -0.0925286
          + -0.56836724
          + -0.33855107
          +  ⋮
          + -0.090957426
          + -0.41131815
          +  0.4215272
          + -0.6782989
          + -0.9749067
          + -2.8138587
          +  1.284468
          + -1.2395228
          +  0.4281323
          interpolate(FullGaussianGrid,grid)
          128-element, 8-ring FullGaussianGrid{Float64}:
          +  0.23597955703735352
          + -0.15379995107650757
          +  1.1264512240886688
          +  1.1432850658893585
          +  0.25980931520462036
          + -1.279522567987442
          + -0.3304479271173477
          + -0.3960051164031029
          +  0.20665602385997772
          +  0.4990294575691223
          +  ⋮
          +  1.3311405181884766
          +  0.22092832624912262
          + -0.171047605574131
          +  0.005104511976242065
          + -0.4033423662185649
          + -0.9749066829681396
          + -1.7892770767211914
          +  0.022472620010375977
          +  0.011218518018722534

          By default this will linearly interpolate (it's an Anvil interpolator, see below) onto a grid with the same nlat_half, but we can also coarse-grain or fine-grain by specifying nlat_half directly as 2nd argument

          interpolate(FullGaussianGrid,6,grid)
          288-element, 12-ring FullGaussianGrid{Float64}:
          +  0.1553041254982066
          + -0.14755081747650153
          +  0.05399376674460095
          +  0.76101342356281
          +  1.0860813914771423
          +  0.5154968730434666
          +  0.17151340719308691
          + -0.9253261280502795
          + -0.4269986468542663
          + -0.22998650925937522
          +  ⋮
          + -0.06394684370065401
          + -0.030062778074281052
          + -0.5624318915411408
          + -0.7305619814409186
          + -1.7729593286241352
          + -0.12295213286350956
          + -0.05213285240219741
          + -0.5324374475271746
          +  0.23566224531835162

          So we got from an 8-ring OctahedralGaussianGrid{Float16} to a 12-ring FullGaussianGrid{Float64}, so it did a conversion from Float16 to Float64 on the fly too, because the default precision is Float64 unless specified. interpolate(FullGaussianGrid{Float16},6,grid) would have interpolated onto a grid with element type Float16.

          One can also interpolate onto a give cordinate ˚N, ˚E like so

          interpolate(30.0,10.0,grid)
          0.0852909f0

          we interpolated the data from grid onto 30˚N, 10˚E. To do this simultaneously for many coordinates they can be packed into a vector too

          interpolate([30.0,40.0,50.0],[10.0,10.0,10.0],grid)
          3-element Vector{Float32}:
          +  0.0852909
          + -0.8573284
          + -1.85346

          which returns the data on grid at 30˚N, 40˚N, 50˚N, and 10˚E respectively. Note how the interpolation here retains the element type of grid.

          Performance for RingGrid interpolation

          Every time an interpolation like interpolate(30.0,10.0,grid) is called, several things happen, which are important to understand to know how to get the fastest interpolation out of this module in a given situation. Under the hood an interpolation takes three arguments

          • output vector
          • input grid
          • interpolator

          The output vector is just an array into which the interpolated data is written, providing this prevents unnecessary allocation of memory in case the destination array of the interpolation already exists. The input grid contains the data which is subject to interpolation, it must come on a ring grid, however, its coordinate information is actually already in the interpolator. The interpolator knows about the geometry of the grid the data is coming on and the coordinates it is supposed to interpolate onto. It has therefore precalculated the indices that are needed to access the right data on the input grid and the weights it needs to apply in the actual interplation operation. The only thing it does not know is the actual data values of that grid. So in the case you want to interpolate from grid A to grid B many times, you can just reuse the same interpolator. If you want to change the coordinates of the output grid but its total number of points remain constants then you can update the locator inside the interpolator and only else you will need to create a new interpolator. Let's look at this in practice. Say we have two grids an want to interpolate between them

          grid_in = rand(HEALPixGrid,4)
          +grid_out = zeros(FullClenshawGrid,6)
          +interp = RingGrids.interpolator(grid_out,grid_in)
          SpeedyWeather.RingGrids.AnvilInterpolator{Float64, HEALPixGrid{Float64}}(SpeedyWeather.RingGrids.GridGeometry{HEALPixGrid{Float64}}(4, 7, 48, [90.0, 66.44353569089876, 41.8103148957786, 19.471220634490685, 0.0, -19.47122063449071, -41.81031489577862, -66.44353569089876, -90.00000000000001], [45.0, 135.0, 225.0, 315.0, 22.5, 67.5, 112.5, 157.5, 202.5, 247.49999999999997  …  112.5, 157.5, 202.5, 247.49999999999997, 292.5, 337.5, 45.0, 135.0, 225.0, 315.0], UnitRange{Int64}[1:4, 5:12, 13:20, 21:28, 29:36, 37:44, 45:48], [4, 8, 8, 8, 8, 8, 4], [45.0, 22.5, 0.0, 22.5, 0.0, 22.5, 45.0]), SpeedyWeather.RingGrids.AnvilLocator{Float64}(264, [0, 0, 0, 0, 0, 0, 0, 0, 0, 0  …  7, 7, 7, 7, 7, 7, 7, 7, 7, 7], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0  …  46, 46, 47, 47, 47, 47, 47, 48, 48, 48], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0  …  47, 47, 48, 48, 48, 48, 48, 45, 45, 45], [4, 4, 4, 1, 1, 1, 1, 1, 1, 2  …  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1], [1, 1, 1, 2, 2, 2, 2, 2, 2, 3  …  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1], [0.6367678868600251, 0.6367678868600251, 0.6367678868600251, 0.6367678868600251, 0.6367678868600251, 0.6367678868600251, 0.6367678868600251, 0.6367678868600251, 0.6367678868600251, 0.6367678868600251  …  0.3632321131399741, 0.3632321131399741, 0.3632321131399741, 0.3632321131399741, 0.3632321131399741, 0.3632321131399741, 0.3632321131399741, 0.3632321131399741, 0.3632321131399741, 0.3632321131399741], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0  …  0.8333333333333333, 0.9999999999999998, 0.16666666666666652, 0.33333333333333304, 0.5, 0.6666666666666665, 0.8333333333333326, 0.0, 0.16666666666666652, 0.3333333333333326], [0.5, 0.6666666666666667, 0.8333333333333333, 0.0, 0.16666666666666657, 0.33333333333333315, 0.5, 0.6666666666666666, 0.8333333333333331, 0.0  …  0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]))

          Now we have created an interpolator interp which knows about the geometry where to interpolate from and the coordinates there to interpolate to. It is also initialized, meaning it has precomputed the indices to of grid_in that are supposed to be used. It just does not know about the data of grid_in (and neither of grid_out which will be overwritten anyway). We can now do

          interpolate!(grid_out,grid_in,interp)
          +grid_out
          264-element, 11-ring FullClenshawGrid{Float64}:
          + 0.5747206239260993
          + 0.6423199076801582
          + 0.709919191434217
          + 0.7775184751882759
          + 0.7180257049016235
          + 0.6585329346149713
          + 0.599040164328319
          + 0.5395473940416666
          + 0.48005462375501434
          + 0.42056185346836195
          + ⋮
          + 0.5349785766571062
          + 0.5380818386477558
          + 0.5411851006384055
          + 0.5442883626290552
          + 0.5473916246197049
          + 0.5504948866103546
          + 0.5535981486010043
          + 0.5981337633612126
          + 0.6426693781214207

          which is identical to interpolate(grid_out,grid_in) but you can reuse interp for other data. The interpolation can also handle various element types (the interpolator interp does not have to be updated for this either)

          grid_out = zeros(FullClenshawGrid{Float16},6);
          +interpolate!(grid_out,grid_in,interp)
          +grid_out
          264-element, 11-ring FullClenshawGrid{Float16}:
          + 0.5747
          + 0.642
          + 0.71
          + 0.7773
          + 0.7183
          + 0.6587
          + 0.599
          + 0.5396
          + 0.48
          + 0.4207
          + ⋮
          + 0.535
          + 0.538
          + 0.541
          + 0.5444
          + 0.5474
          + 0.5503
          + 0.5537
          + 0.598
          + 0.6426

          and we have converted data from a HEALPixGrid{Float64} (Float64 is always default if not specified) to a FullClenshawGrid{Float16} including the type conversion Float64-Float16 on the fly. Technically there are three data types and their combinations possible: The input data will come with a type, the output array has an element type and the interpolator has precomputed weights with a given type. Say we want to go from Float16 data on an OctahedralGaussianGrid to Float16 on a FullClenshawGrid but using Float32 precision for the interpolation itself, we would do this by

          grid_in = randn(OctahedralGaussianGrid{Float16},24)
          +grid_out = zeros(FullClenshawGrid{Float16},24)
          +interp = RingGrids.interpolator(Float32,grid_out,grid_in)
          +interpolate!(grid_out,grid_in,interp)
          +grid_out
          4512-element, 47-ring FullClenshawGrid{Float16}:
          +  1.366
          +  0.8076
          +  0.2499
          + -0.308
          + -0.866
          + -1.105
          + -0.744
          + -0.3826
          + -0.02112
          +  0.1923
          +  ⋮
          +  2.213
          +  1.787
          +  1.232
          +  0.6777
          +  0.1228
          + -0.1219
          + -0.2812
          + -0.441
          + -0.6006

          As a last example we want to illustrate a situation where we would always want to interplate onto 10 coordinates, but their locations may change. In order to avoid recreating an interpolator object we would do (AnvilInterpolator is described in Anvil interpolator)

          npoints = 10    # number of coordinates to interpolate onto
          +interp = AnvilInterpolator(Float32,HEALPixGrid,24,npoints)
          SpeedyWeather.RingGrids.AnvilInterpolator{Float32, HEALPixGrid}(SpeedyWeather.RingGrids.GridGeometry{HEALPixGrid}(24, 47, 1728, [90.0, 86.10076357950555, 82.19700324028634, 78.28414760510762, 74.35752898700072, 70.41233167174659, 66.44353569089876, 62.445854167002665, 58.41366190347208, 54.34091230386124  …  -54.340912303861266, -58.41366190347208, -62.445854167002665, -66.44353569089876, -70.41233167174661, -74.35752898700072, -78.28414760510763, -82.19700324028634, -86.10076357950557, -90.00000000000001], [45.0, 135.0, 225.0, 315.0, 22.5, 67.5, 112.5, 157.5, 202.5, 247.49999999999997  …  112.5, 157.5, 202.5, 247.49999999999997, 292.5, 337.5, 45.0, 135.0, 225.0, 315.0], UnitRange{Int64}[1:4, 5:12, 13:24, 25:40, 41:60, 61:84, 85:112, 113:144, 145:180, 181:220  …  1509:1548, 1549:1584, 1585:1616, 1617:1644, 1645:1668, 1669:1688, 1689:1704, 1705:1716, 1717:1724, 1725:1728], [4, 8, 12, 16, 20, 24, 28, 32, 36, 40  …  40, 36, 32, 28, 24, 20, 16, 12, 8, 4], [45.0, 22.5, 14.999999999999998, 11.25, 9.0, 7.499999999999999, 6.428571428571429, 5.625, 5.0, 4.5  …  4.5, 5.0, 5.625, 6.428571428571429, 7.499999999999999, 9.0, 11.25, 14.999999999999998, 22.5, 45.0]), SpeedyWeather.RingGrids.AnvilLocator{Float32}(10, [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], Float32[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], Float32[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], Float32[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]))

          with the first argument being the number format used during interpolation, then the input grid type, its resolution in terms of nlat_half and then the number of points to interpolate onto. However, interp is not yet initialized as it does not know about the destination coordinates yet. Let's define them, but note that we already decided there's only 10 of them above.

          latds = collect(0.0:5.0:45.0)
          +londs = collect(-10.0:2.0:8.0)

          now we can update the locator inside our interpolator as follows

          RingGrids.update_locator!(interp,latds,londs)

          With data matching the input from above, a nlat_half=24 HEALPixGrid, and allocate 10-element output vector

          output_vec = zeros(10)
          +grid_input = rand(HEALPixGrid,24)

          we can use the interpolator as follows

          interpolate!(output_vec,grid_input,interp)
          10-element Vector{Float64}:
          + 0.9042462029290947
          + 0.7796727272704252
          + 0.5184016878607555
          + 0.8356302054859258
          + 0.31774045830316167
          + 0.5726654230322255
          + 0.6757606116275068
          + 0.49110927197408794
          + 0.4105952106957109
          + 0.5010545268070065

          which is the approximately the same as doing it directly without creating an interpolator first and updating its locator

          interpolate(latds,londs,grid_input)
          10-element Vector{Float64}:
          + 0.9042462027050394
          + 0.779672727535877
          + 0.5184016847234498
          + 0.8356302069954853
          + 0.31774046243660936
          + 0.5726654248890097
          + 0.6757606217494991
          + 0.49110926182215264
          + 0.4105952125854806
          + 0.5010545264798697

          but allows for a reuse of the interpolator. Note that the two output arrays are not exactly identical because we manually set our interpolator interp to use Float32 for the interplation whereas the default is Float64.

          Anvil interpolator

          Currently the only interpolator implemented is a 4-point bilinear interpolator, which schematically works as follows. Anvil interpolation is the bilinear average of a,b,c,d which are values at grid points in an anvil-shaped configuration at location x, which is denoted by Δab,Δcd,Δy, the fraction of distances between a-b,c-d, and ab-cd, respectively. Note that a,c and b,d do not necessarily share the same longitude/x-coordinate.

                  0..............1    # fraction of distance Δab between a,b
          +        |<  Δab   >|
          +
          +0^      a -------- o - b    # anvil-shaped average of a,b,c,d at location x
          +.Δy                |
          +.                  |
          +.v                 x 
          +.                  |
          +1         c ------ o ---- d
          +
          +          |<  Δcd >|
          +          0...............1 # fraction of distance Δcd between c,d
          +
          +^ fraction of distance Δy between a-b and c-d.

          This interpolation is chosen as by definiton of the ring grids, a and b share the same latitude, so do c and d, but the longitudes can be different for all four, a,b,c,d.

          Function index

          SpeedyWeather.RingGrids.eachringFunction
          eachring(grid::SpeedyWeather.RingGrids.AbstractGrid) -> Any
          +

          Vector{UnitRange} rings to loop over every ring of grid grid and then each grid point per ring. To be used like

          rings = eachring(grid)
          +for ring in rings
          +    for ij in ring
          +        grid[ij]
          source
          eachring(
          +    grid1::SpeedyWeather.RingGrids.AbstractGrid,
          +    grids::Grid<:SpeedyWeather.RingGrids.AbstractGrid...
          +) -> Any
          +

          Same as eachring(grid) but performs a bounds check to assess that all grids in grids are of same size.

          source
          SpeedyWeather.RingGrids.whichringFunction
          whichring(
          +    ij::Integer,
          +    rings::Vector{UnitRange{Int64}}
          +) -> Int64
          +

          Obtain ring index j from gridpoint ij and Vector{UnitRange} describing rind indices as obtained from eachring(::Grid)

          source
          SpeedyWeather.RingGrids.get_nlonsFunction
          get_nlons(
          +    Grid::Type{<:SpeedyWeather.RingGrids.AbstractGrid},
          +    nlat_half::Integer;
          +    both_hemispheres
          +) -> Any
          +

          Returns a vector nlons for the number of longitude points per latitude ring, north to south. Provide grid Grid and its resolution parameter nlat_half. For both_hemisphere==false only the northern hemisphere (incl Equator) is returned.

          source
          diff --git a/previews/PR349/search/index.html b/previews/PR349/search/index.html new file mode 100644 index 000000000..6928289e5 --- /dev/null +++ b/previews/PR349/search/index.html @@ -0,0 +1,2 @@ + +Search · SpeedyWeather.jl diff --git a/previews/PR349/search_index.js b/previews/PR349/search_index.js new file mode 100644 index 000000000..151b423f4 --- /dev/null +++ b/previews/PR349/search_index.js @@ -0,0 +1,3 @@ +var documenterSearchIndex = {"docs": +[{"location":"development/#Development-notes","page":"Development notes","title":"Development notes","text":"","category":"section"},{"location":"development/","page":"Development notes","title":"Development notes","text":"To run tests, from the path of your local clone of the repository do:","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"julia --project=. -e 'import Pkg; Pkg.test()'","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"To install dependencies:","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"julia --project -e 'import Pkg; Pkg.instantiate()`","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"then opening:","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"julia --project","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"you are able to using SpeedyWeather.","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"To generate the docs:","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"julia --project=docs -e 'import Pkg; Pkg.develop(path=\".\"); Pkg.instantiate()'\njulia --project=docs docs/make.jl","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"If the docs are generated successfully, you view them by opening docs/build/index.html in your favorite browser.","category":"page"},{"location":"installation/#Installation","page":"Installation","title":"Installation","text":"","category":"section"},{"location":"installation/","page":"Installation","title":"Installation","text":"SpeedyWeather.jl is registered in the Julia Registry. In most cases just open the Julia REPL and type","category":"page"},{"location":"installation/","page":"Installation","title":"Installation","text":"julia> using Pkg\njulia> Pkg.add(\"SpeedyWeather\")","category":"page"},{"location":"installation/","page":"Installation","title":"Installation","text":"which will automatically install the latest release and all necessary dependencies. If you run into any troubles please raise an issue","category":"page"},{"location":"installation/","page":"Installation","title":"Installation","text":"However, you may want to make use of the latest features, then install directly from the main branch with","category":"page"},{"location":"installation/","page":"Installation","title":"Installation","text":"julia> Pkg.add(url=\"https://github.com/SpeedyWeather/SpeedyWeather.jl\",rev=\"main\")","category":"page"},{"location":"installation/","page":"Installation","title":"Installation","text":"other branches than main can be similarly installed.","category":"page"},{"location":"installation/#Compatibility-with-Julia-versions","page":"Installation","title":"Compatibility with Julia versions","text":"","category":"section"},{"location":"installation/","page":"Installation","title":"Installation","text":"SpeedyWeather.jl usually lives on the latest minor release and/or its predecessor. At the moment (May 2023) this means ","category":"page"},{"location":"installation/","page":"Installation","title":"Installation","text":"Julia v1.8\nJulia v1.9","category":"page"},{"location":"installation/","page":"Installation","title":"Installation","text":"are supported, but we dropped the support of earlier versions.","category":"page"},{"location":"output/#NetCDF-output","page":"NetCDF output","title":"NetCDF output","text":"","category":"section"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"SpeedyWeather.jl uses NetCDF to output the data of a simulation. The following describes the details of this and how to change the way in which the NetCDF output is written. There are many options to this available.","category":"page"},{"location":"output/#Accessing-the-NetCDF-output-writer","page":"NetCDF output","title":"Accessing the NetCDF output writer","text":"","category":"section"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"The output writer is a component of every Model, i.e. BarotropicModel, ShallowWaterModel, PrimitiveDryModel and PrimitiveWetModel, hence a non-default output writer can be passed on as a keyword argument to the model constructor","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"julia> spectral_grid = SpectralGrid()\njulia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry)\njulia> model = PrimitiveDryModel(;spectral_grid, output=my_output_writer)","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"So after we have defined the grid through the SpectralGrid object we can use and change the implemented OutputWriter by passing on the following arguments","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"julia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry, kwargs...)","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"the spectral_grid has to be the first argument then the model type (Barotropic, ShallowWater, PrimitiveDry, PrimitiveWet) which helps the output writer to make default choices on which variables to output. However, we can also pass on further keyword arguments. So let's start with an example.","category":"page"},{"location":"output/#Example-1:-NetCDF-output-every-hour","page":"NetCDF output","title":"Example 1: NetCDF output every hour","text":"","category":"section"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"If we want to increase the frequency of the output we can choose output_dt (default =6 in hours) like so","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"julia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry, output_dt=1)\njulia> model = PrimitiveDryModel(;spectral_grid, output=my_output_writer)","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"which will now output every hour. It is important to pass on the new output writer my_output_writer to the model constructor, otherwise it will not be part of your model and the default is used instead. Note that output_dt has to be understood as the minimum frequency or maximum output time step. Example, we run the model at a resolution of T85 and the time step is going to be 670s","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"julia> spectral_grid = SpectralGrid(trunc=85)\njulia> time_stepper = Leapfrog(spectral_grid)\nLeapfrog{Float32}:\n...\n Δt_sec::Int64 = 670\n...","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"This means that after 32 time steps 5h 57min and 20s will have passed where output will happen as the next time step would be >6h. The time axis of the NetCDF output will look like","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"julia> using NCDatasets\njulia> ds = NCDataset(\"run_0001/output.nc\");\njulia> ds[\"time\"][:]\n5-element Vector{Dates.DateTime}:\n 2000-01-01T00:00:00\n 2000-01-01T05:57:20\n 2000-01-01T11:54:40\n 2000-01-01T17:52:00\n 2000-01-01T23:49:20\n\njulia> diff(ds[\"time\"][:])\n4-element Vector{Dates.Millisecond}:\n 21440000 milliseconds\n 21440000 milliseconds\n 21440000 milliseconds\n 21440000 milliseconds","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"This is so that we don't interpolate in time during output to hit exactly every 6 hours, but at the same time have a constant spacing in time between output time steps.","category":"page"},{"location":"output/#Example-2:-Output-onto-a-higher/lower-resolution-grid","page":"NetCDF output","title":"Example 2: Output onto a higher/lower resolution grid","text":"","category":"section"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"Say we want to run the model at a given horizontal resolution but want to output on another resolution, the OutputWriter takes as argument output_Grid<:AbstractFullGrid and nlat_half::Int. So for example output_Grid=FullClenshawGrid and nlat_half=48 will always interpolate onto a regular 192x95 longitude-latitude grid of 1.875˚ resolution, regardless the grid and resolution used for the model integration.","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"julia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry, output_Grid=FullClenshawGrid, nlat_half=48)","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"Note that by default the output is on the corresponding full of the grid used in the dynamical core so that interpolation only happens at most in the zonal direction as they share the location of the latitude rings. You can check this by","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"julia> RingGrids.full_grid(OctahedralGaussianGrid)\nFullGaussianGrid","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"So the corresponding full grid of an OctahedralGaussianGrid is the FullGaussiangrid and the same resolution nlat_half is chosen by default in the output writer (which you can change though as shown above). Overview of the corresponding full grids","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"Grid Corresponding full grid\nFullGaussianGrid FullGaussianGrid\nFullClenshawGrid FullClenshawGrid\nOctahadralGaussianGrid FullGaussianGrid\nOctahedralClensawhGrid FullClenshawGrid\nHEALPixGrid FullHEALPixGrid\nOctaHEALPixGrid FullOctaHEALPixGrid","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"The grids FullHEALPixGrid, FullOctaHEALPixGrid share the same latitude rings as their reduced grids, but have always as many longitude points as they are at most around the equator. These grids are not tested in the dynamical core (but you may use them experimentally) and mostly designed for output purposes.","category":"page"},{"location":"output/#Example-3:-Changing-the-output-path-or-identification","page":"NetCDF output","title":"Example 3: Changing the output path or identification","text":"","category":"section"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"That's easy by passing on path=\"/my/favourite/path/\" and the folder run_* with * the identification of the run (that's the id keyword, which can be manually set but is also automatically determined as a number counting up depending on which folders already exist) will be created within.","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"julia> path = pwd()\n\"/Users/milan\"\njulia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry, path=path)","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"This folder must already exist. If you want to give your run a name/identification you can pass on id","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"julia> my_output_writer = OutputWriter(spectral_grid,PrimitiveDry,id=\"diffusion_test\");","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"which will be used instead of a 4 digit number like 0001, 0002 which is automatically determined if id is not provided. You will see the id of the run in the progress bar","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"Weather is speedy: run diffusion_test 100%|███████████████████████| Time: 0:00:12 (19.20 years/day)","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"and the run folder, here run_diffusion_test, is also named accordingly","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"shell> ls\n...\nrun_diffusion_test\n...","category":"page"},{"location":"output/#Further-options","page":"NetCDF output","title":"Further options","text":"","category":"section"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"Further options are described in the OutputWriter docstring, (also accessible via julia>?OutputWriter for example). Note that some fields are actual options, but others are derived from the options you provided or are arrays/objects the output writer needs, but shouldn't be passed on by the user. The actual options are declared as [OPTION] in the following","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"OutputWriter","category":"page"},{"location":"output/#SpeedyWeather.OutputWriter","page":"NetCDF output","title":"SpeedyWeather.OutputWriter","text":"NetCDF output writer. Contains all output options and auxiliary fields for output interpolation. To be initialised with OutputWriter(::SpectralGrid,::Type{<:ModelSetup},kwargs...) to pass on the resolution information and the model type which chooses which variables to output. Options include\n\nspectral_grid::SpectralGrid\noutput::Bool\npath::String: [OPTION] path to output folder, run_???? will be created within\nid::String: [OPTION] run identification number/string\nrun_path::String\nfilename::String: [OPTION] name of the output netcdf file\nwrite_restart::Bool: [OPTION] also write restart file if output==true?\npkg_version::VersionNumber\nstartdate::Dates.DateTime\noutput_dt::Float64: [OPTION] output frequency, time step [hrs]\noutput_dt_sec::Int64: actual output time step [sec]\noutput_vars::Vector{Symbol}: [OPTION] which variables to output, u, v, vor, div, pres, temp, humid\nmissing_value::Union{Float32, Float64}: [OPTION] missing value to be used in netcdf output\ncompression_level::Int64: [OPTION] lossless compression level; 1=low but fast, 9=high but slow\nkeepbits::SpeedyWeather.Keepbits: [OPTION] mantissa bits to keep for every variable\noutput_every_n_steps::Int64\ntimestep_counter::Int64\noutput_counter::Int64\nnetcdf_file::Union{Nothing, NetCDF.NcFile}\ninput_Grid::Type{<:SpeedyWeather.RingGrids.AbstractGrid}\nas_matrix::Bool: [OPTION] sort grid points into a matrix (interpolation-free), for OctahedralClenshawGrid, OctaHEALPixGrid only\nquadrant_rotation::NTuple{4, Int64}\nmatrix_quadrant::NTuple{4, Tuple{Int64, Int64}}\noutput_Grid::Type{<:SpeedyWeather.RingGrids.AbstractFullGrid}: [OPTION] the grid used for output, full grids only\nnlat_half::Int64: [OPTION] the resolution of the output grid, default: same nlat_half as in the dynamical core\nnlon::Int64\nnlat::Int64\nnpoints::Int64\nnlev::Int64\ninterpolator::SpeedyWeather.RingGrids.AbstractInterpolator\nu::Matrix{NF} where NF<:Union{Float32, Float64}\nv::Matrix{NF} where NF<:Union{Float32, Float64}\nvor::Matrix{NF} where NF<:Union{Float32, Float64}\ndiv::Matrix{NF} where NF<:Union{Float32, Float64}\ntemp::Matrix{NF} where NF<:Union{Float32, Float64}\npres::Matrix{NF} where NF<:Union{Float32, Float64}\nhumid::Matrix{NF} where NF<:Union{Float32, Float64}\nprecip_cond::Matrix{NF} where NF<:Union{Float32, Float64}\nprecip_conv::Matrix{NF} where NF<:Union{Float32, Float64}\n\n\n\n\n\n","category":"type"},{"location":"functions/#Function-and-type-index","page":"Function and type index","title":"Function and type index","text":"","category":"section"},{"location":"functions/#Parameters-and-constants","page":"Function and type index","title":"Parameters and constants","text":"","category":"section"},{"location":"functions/","page":"Function and type index","title":"Function and type index","text":"SpeedyWeather.Parameters\nSpeedyWeather.Constants","category":"page"},{"location":"functions/#Boundaries-and-boundary-conditions","page":"Function and type index","title":"Boundaries and boundary conditions","text":"","category":"section"},{"location":"functions/","page":"Function and type index","title":"Function and type index","text":"SpeedyWeather.Boundaries","category":"page"},{"location":"functions/#Spherical-harmonic-transform","page":"Function and type index","title":"Spherical harmonic transform","text":"","category":"section"},{"location":"functions/","page":"Function and type index","title":"Function and type index","text":"SpeedyWeather.GeoSpectral\nSpeedyWeather.SpectralTransform\nSpeedyWeather.spectral\nSpeedyWeather.spectral!\nSpeedyWeather.gridded\nSpeedyWeather.gridded!\nSpeedyWeather.triangular_truncation\nSpeedyWeather.roundup_fft\nSpeedyWeather.spectral_truncation\nSpeedyWeather.spectral_truncation!\nSpeedyWeather.spectral_interpolation!\nSpeedyWeather.get_legendre_polynomials!\nSpeedyWeather.∇²!\nSpeedyWeather.∇²\nSpeedyWeather.∇⁻²!\nSpeedyWeather.∇⁻²\nSpeedyWeather.gradient_latitude!\nSpeedyWeather.gradient_latitude\nSpeedyWeather.gradient_longitude!\nSpeedyWeather.gradient_longitude\nSpeedyWeather.divergence!\nSpeedyWeather.curl!\nSpeedyWeather._divergence!\nSpeedyWeather.curl_div!\nSpeedyWeather.UV_from_vordiv!\nSpeedyWeather.UV_from_vor!\nSpeedyWeather.ϵlm\nSpeedyWeather.get_recursion_factors","category":"page"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.SpectralTransform","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.SpectralTransform","text":"S = SpectralTransform{NF<:AbstractFloat}(...)\n\nSpectralTransform struct that contains all parameters and preallocated arrays for the spectral transform.\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.spectral","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.spectral","text":"alms = spectral( map::AbstractMatrix;\n Grid::Type{<:AbstractGrid}=DEFAULT_GRID,\n kwargs...)\n\nConverts map to grid(map) to execute spectral(map::AbstractGrid;kwargs...).\n\n\n\n\n\nalms = spectral( map::AbstractGrid;\n Grid::Type{<:AbstractGrid}=DEFAULT_GRID,\n kwargs...)\n\nConverts map to Grid(map) to execute spectral(map::AbstractGrid;kwargs...).\n\n\n\n\n\nalms = spectral( map::AbstractMatrix;\n Grid::Type{<:AbstractGrid}=DEFAULT_GRID,\n kwargs...)\n\nSpectral transform (grid to spectral) map to grid(map) to execute spectral(map::AbstractGrid;kwargs...).\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.spectral!","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.spectral!","text":"spectral!( alms::LowerTriangularMatrix,\n map::AbstractGrid,\n S::SpectralTransform)\n\nSpectral transform (grid to spectral space) from the gridded field map on a grid<:AbstractGrid to a LowerTriangularMatrix of spherical harmonic coefficients alms. Uses FFT in the zonal direction, and a Legendre Transform in the meridional direction exploiting symmetries. The spectral transform is number format-flexible as long as the parametric types of map, alms, S are identical. The spectral transform is grid-flexible as long as the typeof(map)<:AbstractGrid. Uses the precalculated arrays, FFT plans and other constants in the SpectralTransform struct S.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.gridded","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.gridded","text":"map = gridded( alms::AbstractMatrix;\n recompute_legendre::Bool=true,\n grid::Type{<:AbstractGrid}=DEFAULT_GRID)\n\nSpectral transform (spectral to grid space) from spherical coefficients alms to a newly allocated gridded field map. Based on the size of alms the grid type grid, the spatial resolution is retrieved based on the truncation defined for grid. SpectralTransform struct S is allocated to execute gridded(alms,S).\n\n\n\n\n\nmap = gridded( alms::AbstractMatrix,\n S::SpectralTransform)\n\nSpectral transform (spectral to grid space) from spherical coefficients alms to a newly allocated gridded field map with precalculated properties based on the SpectralTransform struct S. alms is converted to a LowerTriangularMatrix to execute the in-place gridded!.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.gridded!","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.gridded!","text":"gridded!(\n diagn::DiagnosticVariables,\n progn::PrognosticVariables,\n lf::Int64,\n model::SpeedyWeather.ModelSetup\n)\n\n\nPropagate the spectral state of progn to diagn using time step/leapfrog index lf. Function barrier that calls gridded! for the respective model.\n\n\n\n\n\ngridded!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n progn::SpeedyWeather.PrognosticLayerTimesteps,\n lf::Int64,\n model::Barotropic\n)\n\n\nPropagate the spectral state of the prognostic variables progn to the diagnostic variables in diagn for the barotropic vorticity model. Updates grid vorticity, spectral stream function and spectral and grid velocities u,v.\n\n\n\n\n\ngridded!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n progn::SpeedyWeather.PrognosticLayerTimesteps,\n lf::Int64,\n model::ShallowWater\n)\n\n\nPropagate the spectral state of the prognostic variables progn to the diagnostic variables in diagn for the shallow water model. Updates grid vorticity, grid divergence, grid interface displacement (pres_grid) and the velocities u,v.\n\n\n\n\n\ngridded!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n progn::SpeedyWeather.PrognosticLayerTimesteps,\n lf::Int64,\n model::PrimitiveEquation\n)\n\n\nPropagate the spectral state of the prognostic variables progn to the diagnostic variables in diagn for primitive equation models. Updates grid vorticity, grid divergence, grid temperature, pressure (pres_grid) and the velocities u,v.\n\n\n\n\n\ngridded!( map::AbstractGrid,\n alms::LowerTriangularMatrix,\n S::SpectralTransform)\n\nSpectral transform (spectral to grid) of the spherical harmonic coefficients alms to a gridded field map. The spectral transform is number format-flexible as long as the parametric types of map, alms, S are identical. The spectral transform is grid-flexible as long as the typeof(map)<:AbstractGrid. Uses the precalculated arrays, FFT plans and other constants in the SpectralTransform struct S.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.spectral_truncation","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.spectral_truncation","text":"alms_trunc = spectral_truncation(alms,trunc)\n\nReturns a spectral coefficient matrix alms_trunc that is truncated from alms to the size (trunc+1)². alms_trunc only contains those coefficient of alms for which m,l ≤ trunc, and l ≥ m are zero anyway. If trunc is larger than the implicit truncation in alms obtained from its size than spectral_interpolation is automatically called instead, returning alms_interp, a coefficient matrix that is larger than alms with padded zero coefficients.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.spectral_truncation!","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.spectral_truncation!","text":"spectral_truncation!(alms::AbstractMatrix,ltrunc::Integer,mtrunc::Integer)\n\nTruncate spectral coefficients alms in-place by setting (a) the upper right triangle to zero and (b) all coefficients for which the degree l is larger than the truncation ltrunc or order m larger than the truncaction mtrunc.\n\n\n\n\n\nspectral_truncation!(alms::LowerTriangularMatrix,ltrunc::Integer,mtrunc::Integer)\n\nTruncate spectral coefficients alms in-place by setting all coefficients for which the degree l is larger than the truncation ltrunc or order m larger than the truncaction mtrunc. Similar to spectral_truncation!(::AbstractMatrix, ...) but skips the upper triangle which is zero by design for LowerTriangularMatrix.\n\n\n\n\n\nspectral_truncation!(alms,trunc)\n\nTruncate spectral coefficients alms in-place by setting (a) the upper right triangle to zero and (b) all coefficients for which the degree l is larger than the truncation trunc.\n\n\n\n\n\nspectral_truncation!(alms)\n\nTruncate spectral coefficients alms in-place by setting the upper right triangle to zero. This is to enforce that all coefficients for which the degree l is larger than order m are zero.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.∇²!","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.∇²!","text":"∇²!( ∇²alms::LowerTriangularMatrix,\n alms::LowerTriangularMatrix,\n S::SpectralTransform;\n add::Bool=false,\n flipsign::Bool=false,\n inverse::Bool=false)\n\nLaplace operator ∇² applied to the spectral coefficients alms in spherical coordinates. The radius R is omitted in the eigenvalues which are precomputed in S. ∇²! is the in-place version which directly stores the output in the first argument ∇²alms.\n\nKeyword arguments\n\nadd=true adds the ∇²(alms) to the output\nflipsign=true computes -∇²(alms) instead\ninverse=true computes ∇⁻²(alms) instead\n\nDefault is add=false, flipsign=false, inverse=false. These options can be combined.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.∇⁻²!","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.∇⁻²!","text":"∇⁻²!( ∇⁻²alms::LowerTriangularMatrix,\n alms::LowerTriangularMatrix,\n S::SpectralTransform;\n add::Bool=false,\n flipsign::Bool=false)\n\nCalls ∇²!(∇⁻²alms, alms, S; add, flipsign, inverse=true).\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.divergence!","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.divergence!","text":"divergence!(div::LowerTriangularMatrix,\n u::LowerTriangularMatrix,\n v::LowerTriangularMatrix,\n S::SpectralTransform{NF};\n flipsign::Bool=false,\n add::Bool=false,\n )\n\nDivergence of a vector u,v written into div, div = ∇⋅(u,v). u,v are expected to have a 1/coslat-scaling included, then div is not scaled. flipsign option calculates -∇⋅(u,v) instead. add option calculates div += ∇⋅(u,v) instead. flipsign and add can be combined. This functions only creates the kernel and calls the generic divergence function _divergence! subsequently.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.curl!","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.curl!","text":"curl!( curl::LowerTriangularMatrix,\n u::LowerTriangularMatrix,\n v::LowerTriangularMatrix,\n S::SpectralTransform;\n flipsign::Bool=false,\n add::Bool=false,\n )\n\nCurl of a vector u,v written into curl, curl = ∇×(u,v). u,v are expected to have a 1/coslat-scaling included, then curl is not scaled. flipsign option calculates -∇×(u,v) instead. add option calculates curl += ∇×(u,v) instead. flipsign and add can be combined. This functions only creates the kernel and calls the generic divergence function _divergence! subsequently with flipped u,v -> v,u for the curl.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.UV_from_vordiv!","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.UV_from_vordiv!","text":"UV_from_vordiv!(U::LowerTriangularMatrix,\n V::LowerTriangularMatrix,\n vor::LowerTriangularMatrix,\n div::LowerTriangularMatrix,\n S::SpectralTransform)\n\nGet U,V (=(u,v)*coslat) from vorticity ζ and divergence D in spectral space. Two operations are combined into a single linear operation. First, invert the spherical Laplace ∇² operator to get stream function from vorticity and velocity potential from divergence. Then compute zonal and meridional gradients to get U,V.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.UV_from_vor!","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.UV_from_vor!","text":"UV_from_vor!( U::LowerTriangularMatrix,\n V::LowerTriangularMatrix,\n vor::LowerTriangularMatrix,\n S::SpectralTransform)\n\nGet U,V (=(u,v)*coslat) from vorticity ζ spectral space (divergence D=0) Two operations are combined into a single linear operation. First, invert the spherical Laplace ∇² operator to get stream function from vorticity. Then compute zonal and meridional gradients to get U,V.\n\n\n\n\n\n","category":"function"},{"location":"functions/#Dynamics","page":"Function and type index","title":"Dynamics","text":"","category":"section"},{"location":"functions/","page":"Function and type index","title":"Function and type index","text":"SpeedyWeather.bernoulli_potential!\nSpeedyWeather.volume_flux_divergence!\nSpeedyWeather.vorticity_fluxes!\nSpeedyWeather.vorticity_flux_curl!\nSpeedyWeather.vorticity_flux_divergence!","category":"page"},{"location":"functions/#SpeedyWeather.bernoulli_potential!","page":"Function and type index","title":"SpeedyWeather.bernoulli_potential!","text":"bernoulli_potential!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF},\n S::SpectralTransform\n) -> LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat\n\n\nComputes the Laplace operator ∇² of the Bernoulli potential B in spectral space.\n\ncomputes the kinetic energy KE = ½(u²+v²) on the grid\ntransforms KE to spectral space\nadds geopotential for the Bernoulli potential in spectral space\ntakes the Laplace operator.\n\nThis version is used for both ShallowWater and PrimitiveEquation, only the geopotential calculation in geopotential! differs.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.volume_flux_divergence!","page":"Function and type index","title":"SpeedyWeather.volume_flux_divergence!","text":"volume_flux_divergence!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n surface::SpeedyWeather.SurfaceVariables,\n orog::SpeedyWeather.AbstractOrography,\n constants::DynamicsConstants,\n G::Geometry,\n S::SpectralTransform\n)\n\n\nComputes the (negative) divergence of the volume fluxes uh,vh for the continuity equation, -∇⋅(uh,vh).\n\n\n\n\n\n","category":"function"},{"location":"functions/#Geometry","page":"Function and type index","title":"Geometry","text":"","category":"section"},{"location":"functions/","page":"Function and type index","title":"Function and type index","text":"SpeedyWeather.Geometry\nSpeedyWeather.vertical_coordinates\nSpeedyWeather.GenLogisticCoefs\nSpeedyWeather.generalised_logistic","category":"page"},{"location":"functions/#SpeedyWeather.Geometry","page":"Function and type index","title":"SpeedyWeather.Geometry","text":"Construct Geometry struct containing parameters and arrays describing an iso-latitude grid <:AbstractGrid and the vertical levels. Pass on SpectralGrid to calculate the following fields\n\nspectral_grid::SpectralGrid: SpectralGrid that defines spectral and grid resolution\nGrid::Type{<:SpeedyWeather.RingGrids.AbstractGrid}: grid of the dynamical core\nnlat_half::Int64: resolution parameter nlat_half of Grid, # of latitudes on one hemisphere (incl Equator)\nnlon_max::Int64: maximum number of longitudes (at/around Equator)\nnlon::Int64: =nlon_max, same (used for compatibility), TODO: still needed?\nnlat::Int64: number of latitude rings\nnlev::Int64: number of vertical levels\nnpoints::Int64: total number of grid points\nradius::AbstractFloat: Planet's radius [m]\nlatd::Vector{Float64}: array of latitudes in degrees (90˚...-90˚)\nlond::Vector{Float64}: array of longitudes in degrees (0...360˚), empty for non-full grids\nlonds::Vector{NF} where NF<:AbstractFloat: longitude (-180˚...180˚) for each grid point in ring order\nlatds::Vector{NF} where NF<:AbstractFloat: latitude (-90˚...˚90) for each grid point in ring order\nsinlat::Vector{NF} where NF<:AbstractFloat: sin of latitudes\ncoslat::Vector{NF} where NF<:AbstractFloat: cos of latitudes\ncoslat⁻¹::Vector{NF} where NF<:AbstractFloat: = 1/cos(lat)\ncoslat²::Vector{NF} where NF<:AbstractFloat: = cos²(lat)\ncoslat⁻²::Vector{NF} where NF<:AbstractFloat: # = 1/cos²(lat)\nσ_levels_half::Vector{NF} where NF<:AbstractFloat: σ at half levels, σ_k+1/2\nσ_levels_full::Vector{NF} where NF<:AbstractFloat: σ at full levels, σₖ\nσ_levels_thick::Vector{NF} where NF<:AbstractFloat: σ level thicknesses, σₖ₊₁ - σₖ\nln_σ_levels_full::Vector{NF} where NF<:AbstractFloat: log of σ at full levels, include surface (σ=1) as last element\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.GenLogisticCoefs","page":"Function and type index","title":"SpeedyWeather.GenLogisticCoefs","text":"Coefficients of the generalised logistic function to describe the vertical coordinate. Default coefficients A,K,C,Q,B,M,ν are fitted to the old L31 configuration at ECMWF.\n\nFollowing the notation of https://en.wikipedia.org/wiki/Generalisedlogisticfunction (Dec 15 2021).\n\nChange default parameters for more/fewer levels in the stratosphere vs troposphere vs boundary layer.\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.generalised_logistic","page":"Function and type index","title":"SpeedyWeather.generalised_logistic","text":"Generalised logistic function based on the coefficients in coefs.\n\n\n\n\n\n","category":"function"},{"location":"functions/#Time-stepping","page":"Function and type index","title":"Time stepping","text":"","category":"section"},{"location":"functions/","page":"Function and type index","title":"Function and type index","text":"SpeedyWeather.time_stepping!\nSpeedyWeather.timestep!\nSpeedyWeather.first_timesteps!\nSpeedyWeather.leapfrog!","category":"page"},{"location":"functions/#SpeedyWeather.time_stepping!","page":"Function and type index","title":"SpeedyWeather.time_stepping!","text":"time_stepping!(\n progn::PrognosticVariables,\n diagn::DiagnosticVariables,\n model::SpeedyWeather.ModelSetup\n) -> PrognosticVariables\n\n\nMain time loop that that initializes output and feedback, loops over all time steps and calls the output and feedback functions.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.timestep!","page":"Function and type index","title":"SpeedyWeather.timestep!","text":"timestep!(\n progn::PrognosticVariables,\n diagn::DiagnosticVariables,\n time::Dates.DateTime,\n dt::Real,\n i::Integer,\n model::Barotropic\n)\ntimestep!(\n progn::PrognosticVariables,\n diagn::DiagnosticVariables,\n time::Dates.DateTime,\n dt::Real,\n i::Integer,\n model::Barotropic,\n lf1::Int64\n)\ntimestep!(\n progn::PrognosticVariables,\n diagn::DiagnosticVariables,\n time::Dates.DateTime,\n dt::Real,\n i::Integer,\n model::Barotropic,\n lf1::Int64,\n lf2::Int64\n)\n\n\nCalculate a single time step for the model <: Barotropic.\n\n\n\n\n\ntimestep!(\n progn::PrognosticVariables{NF<:AbstractFloat},\n diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},\n time::Dates.DateTime,\n dt::Real,\n i::Integer,\n model::ShallowWater\n) -> SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat\ntimestep!(\n progn::PrognosticVariables{NF<:AbstractFloat},\n diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},\n time::Dates.DateTime,\n dt::Real,\n i::Integer,\n model::ShallowWater,\n lf1::Int64\n) -> SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat\ntimestep!(\n progn::PrognosticVariables{NF<:AbstractFloat},\n diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},\n time::Dates.DateTime,\n dt::Real,\n i::Integer,\n model::ShallowWater,\n lf1::Int64,\n lf2::Int64\n) -> SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat\n\n\nCalculate a single time step for the model <: ShallowWater.\n\n\n\n\n\ntimestep!(\n progn::PrognosticVariables{NF<:AbstractFloat},\n diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},\n time::Dates.DateTime,\n dt::Real,\n i::Integer,\n model::PrimitiveEquation\n) -> Any\ntimestep!(\n progn::PrognosticVariables{NF<:AbstractFloat},\n diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},\n time::Dates.DateTime,\n dt::Real,\n i::Integer,\n model::PrimitiveEquation,\n lf1::Int64\n) -> Any\ntimestep!(\n progn::PrognosticVariables{NF<:AbstractFloat},\n diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},\n time::Dates.DateTime,\n dt::Real,\n i::Integer,\n model::PrimitiveEquation,\n lf1::Int64,\n lf2::Int64\n) -> Any\n\n\nCalculate a single time step for the model<:PrimitiveEquation\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.first_timesteps!","page":"Function and type index","title":"SpeedyWeather.first_timesteps!","text":"first_timesteps!(\n progn::PrognosticVariables,\n diagn::DiagnosticVariables,\n clock::SpeedyWeather.Clock,\n model::SpeedyWeather.ModelSetup,\n output::SpeedyWeather.AbstractOutputWriter\n) -> typeof(time)\n\n\nPerforms the first two initial time steps (Euler forward, unfiltered leapfrog) to populate the prognostic variables with two time steps (t=0,Δt) that can then be used in the normal leap frogging.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.leapfrog!","page":"Function and type index","title":"SpeedyWeather.leapfrog!","text":"leapfrog!(\n A_old::LowerTriangularMatrix{Complex{NF<:AbstractFloat}},\n A_new::LowerTriangularMatrix{Complex{NF<:AbstractFloat}},\n tendency::LowerTriangularMatrix{Complex{NF<:AbstractFloat}},\n dt::Real,\n lf::Int64,\n L::Leapfrog{NF<:AbstractFloat}\n)\n\n\nPerforms one leapfrog time step with (lf=2) or without (lf=1) Robert+William's filter (see William (2009), Montly Weather Review, Eq. 7-9).\n\n\n\n\n\n","category":"function"},{"location":"functions/#Longwave-radiation","page":"Function and type index","title":"Longwave radiation","text":"","category":"section"},{"location":"functions/","page":"Function and type index","title":"Function and type index","text":"SpeedyWeather.radset!\nSpeedyWeather.radlw_down!\nSpeedyWeather.compute_bbe!\nSpeedyWeather.radlw_up!","category":"page"},{"location":"functions/#Shortwave-radiation","page":"Function and type index","title":"Shortwave radiation","text":"","category":"section"},{"location":"functions/","page":"Function and type index","title":"Function and type index","text":"SpeedyWeather.shortwave_radiation!\nSpeedyWeather.solar!\nSpeedyWeather.sol_oz!\nSpeedyWeather.cloud!\nSpeedyWeather.radsw!","category":"page"},{"location":"parametrizations/#Parameterizations","page":"Parameterizations","title":"Parameterizations","text":"","category":"section"},{"location":"parametrizations/","page":"Parameterizations","title":"Parameterizations","text":"This page describes the mathematical formulation of the parameterizations used in SpeedyWeather.jl to represent physical processes in the atmopshere. Every section is followed by a brief description of implementation details.","category":"page"},{"location":"parametrizations/#Convection","page":"Parameterizations","title":"Convection","text":"","category":"section"},{"location":"parametrizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"parametrizations/#Large-scale-condensation","page":"Parameterizations","title":"Large-scale condensation","text":"","category":"section"},{"location":"parametrizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"parametrizations/#Clouds","page":"Parameterizations","title":"Clouds","text":"","category":"section"},{"location":"parametrizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"parametrizations/#Short-wave-radiation","page":"Parameterizations","title":"Short-wave radiation","text":"","category":"section"},{"location":"parametrizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"parametrizations/#Long-wave-radiation","page":"Parameterizations","title":"Long-wave radiation","text":"","category":"section"},{"location":"parametrizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"parametrizations/#Surface-fluxes-of-momentum-and-energy","page":"Parameterizations","title":"Surface fluxes of momentum and energy","text":"","category":"section"},{"location":"parametrizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"parametrizations/#Vertical-diffusion","page":"Parameterizations","title":"Vertical diffusion","text":"","category":"section"},{"location":"parametrizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"how_to_run_speedy/#How-to-run-SpeedyWeather.jl","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"","category":"section"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"Creating a SpeedyWeather.jl simulation and running it consists conceptually of 4 steps","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"Create a SpectralGrid which defines the grid and spectral resolution\nCreate a model\nInitialize a model to obtain a Simulation.\nRun the simulation.","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"In the following we will describe these steps in more detail, but let's start with some examples first.","category":"page"},{"location":"how_to_run_speedy/#Example-1:-2D-turbulence-on-a-non-rotating-sphere","page":"How to run SpeedyWeather.jl","title":"Example 1: 2D turbulence on a non-rotating sphere","text":"","category":"section"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"We want to use the barotropic model to simulate some free-decaying 2D turbulence on the sphere without rotation. We start by defining the SpectralGrid object. To have a resolution of about 100km, we choose a spectral resolution of T127 (see Available resolutions) and nlev=1 vertical levels. The SpectralGrid object will provide us with some more information","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> spectral_grid = SpectralGrid(trunc=127,nlev=1)\nSpectralGrid:\n Spectral: T127 LowerTriangularMatrix{Complex{Float32}}, radius = 6.371e6 m\n Grid: 40320-element, 192-ring OctahedralGaussianGrid{Float32} (quadratic)\n Resolution: 112km (average)\n Vertical: 1-level SigmaCoordinates","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"We could have specified further options, but let's ignore that for now. Next step we create a planet that's like Earth but not rotating","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> still_earth = Earth(rotation=0)\nMain.SpeedyWeather.Earth\n rotation: Float64 0.0\n gravity: Float64 9.81\n daily_cycle: Bool true\n length_of_day: Float64 24.0\n seasonal_cycle: Bool true\n length_of_year: Float64 365.25\n equinox: Dates.DateTime\n axial_tilt: Float64 23.4","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"There are other options to create a planet but they are irreleveant for the barotropic vorticity equations. We also want to specify the initial conditions, randomly distributed vorticity is already defined","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> initial_conditions = StartWithRandomVorticity()\nStartWithRandomVorticity\n power_law: Float64 -3.0\n amplitude: Float64 1.0e-5","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"By default, the power of vorticity is spectrally distributed with k^-3, k being the horizontal wavenumber, and the amplitude is 10^-5text s^-1.","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"Now we want to construct a BarotropicModel with these","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> model = BarotropicModel(;spectral_grid, initial_conditions, planet=still_earth);","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"The model contains all the parameters, but isn't initialized yet, which we can do with and then run it.","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> simulation = initialize!(model);\njulia> run!(simulation,n_days=30)","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"The run! command will always return the prognostic variables, which, by default, are plotted for surface relative vorticity with a unicode plot. The resolution of the plot is not necessarily representative but it lets us have a quick look at the result","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"(Image: Barotropic vorticity unicode plot)","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"Woohoo! I can see turbulence! You could pick up where this simulation stopped by simply doing run!(simulation,n_days=50) again. We didn't store any output, which you can do by run!(simulation,output=true), which will switch on NetCDF output with default settings. More options on output in NetCDF output.","category":"page"},{"location":"how_to_run_speedy/#Example-2:-Shallow-water-with-mountains","page":"How to run SpeedyWeather.jl","title":"Example 2: Shallow water with mountains","text":"","category":"section"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"As a second example, let's investigate the Galewsky et al.[1] test case for the shallow water equations with and without mountains. As the shallow water system has also only one level, we can reuse the SpectralGrid from Example 1.","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> spectral_grid = SpectralGrid(trunc=127,nlev=1)","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"Now as a first simulation, we want to disable any orography, so we create a NoOrography","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> orography = NoOrography(spectral_grid)\nNoOrography{Float32, OctahedralGaussianGrid{Float32}}","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"Although the orography is zero, you have to pass on spectral_grid so that it can still initialize zero-arrays of the right size and element type. Awesome. This time the initial conditions should be set the the Galewsky et al.[1] zonal jet, which is already defined as","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> initial_conditions = ZonalJet()\nZonalJet\n latitude: Float64 45.0\n width: Float64 19.28571428571429\n umax: Float64 80.0\n perturb_lat: Float64 45.0\n perturb_lon: Float64 270.0\n perturb_xwidth: Float64 19.098593171027442\n perturb_ywidth: Float64 3.819718634205488\n perturb_height: Float64 120.0","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"The jet sits at 45˚N with a maximum velocity of 80m/s and a perturbation as described in their paper. Now we construct a model, but this time a ShallowWaterModel","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> model = ShallowWaterModel(;spectral_grid, orography, initial_conditions);\njulia> simulation = initialize!(model);","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"(Image: Galewsky jet unicode plot)","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"Oh yeah. That looks like the wobbly jet in their paper. Let's run it again for another 6 days but this time also store NetCDF output.","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> run!(simulation,n_days=6,output=true)\nWeather is speedy: run 0002 100%|███████████████████████| Time: 0:00:12 (115.37 years/day)","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"The progress bar tells us that the simulation run got the identification \"0002\", meaning that data is stored in the folder /run_0002, so let's plot that data properly (and not just using UnicodePlots).","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> using PyPlot, NCDatasets\njulia> ds = NCDataset(\"run_0002/output.nc\");\njulia> ds[\"vor\"]\nvor (384 × 192 × 1 × 25)\n Datatype: Float32\n Dimensions: lon × lat × lev × time\n Attributes:\n units = 1/s\n missing_value = NaN\n long_name = relative vorticity\n _FillValue = NaN","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"Vorticity vor is stored as a 384x192x1x25 array, we may want to look at the first time step, which is the end of the previous simulation (time=6days) which we didn't store output for.","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> vor = ds[\"vor\"][:,:,1,1];\njulia> lat = ds[\"lat\"][:];\njulia> lon = ds[\"lon\"][:];\njulia> pcolormesh(lon,lat,vor')","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"Which looks like","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"(Image: Galewsky jet pyplot)","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"You see that the unicode plot heavily coarse-grains the simulation, well it's unicode after all! And now the last time step, that means time=12days is","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> vor = ds[\"vor\"][:,:,1,25];\njulia> pcolormesh(lon,lat,vor')","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"(Image: Galewsky jet pyplot)","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"The jet broke up into many small eddies, but the turbulence is still confined to the northern hemisphere, cool! How this may change when we add mountains (we had NoOrography above!), say Earth's orography, you may ask? Let's try it out! We create an EarthOrography struct like so","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> orography = EarthOrography(spectral_grid)\nEarthOrography{Float32, OctahedralGaussianGrid{Float32}}:\n path::String = SpeedyWeather.jl/input_data\n file::String = orography_F512.nc\n scale::Float64 = 1.0\n smoothing::Bool = true\n smoothing_power::Float64 = 1.0\n smoothing_strength::Float64 = 0.1\n smoothing_truncation::Int64 = 85","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"It will read the orography from file as shown, and there are some smoothing options too, but let's not change them. Same as before, create a model, intialize into a simulation, run. This time directly for 12 days so that we can compare with the last plot","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> model = ShallowWaterModel(;spectral_grid, orography, initial_conditions);\njulia> simulation = initialize!(model);\njulia> run!(simulation,n_days=12,output=true)\nWeather is speedy: run 0003 100%|███████████████████████| Time: 0:00:35 (79.16 years/day)","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"This time the run got the id \"0003\", but otherwise we do as before.","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"(Image: Galewsky jet pyplot)","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"Interesting! The initial conditions have zero velocity in the southern hemisphere, but still, one can see some imprint of the orography on vorticity. You can spot the coastline of Antarctica; the Andes and Greenland are somewhat visible too. Mountains also completely changed the flow after 12 days, probably not surprising!","category":"page"},{"location":"how_to_run_speedy/#SpectralGrid","page":"How to run SpeedyWeather.jl","title":"SpectralGrid","text":"","category":"section"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"The life of every SpeedyWeather.jl simulation starts with a SpectralGrid object. We have seen some examples above, now let's look into the details","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"SpectralGrid","category":"page"},{"location":"how_to_run_speedy/#SpeedyWeather.SpectralGrid","page":"How to run SpeedyWeather.jl","title":"SpeedyWeather.SpectralGrid","text":"Defines the horizontal spectral resolution and corresponding grid and the vertical coordinate for SpeedyWeather.jl. Options are\n\nNF::Type{<:AbstractFloat}: number format used throughout the model\ntrunc::Int64: horizontal resolution as the maximum degree of spherical harmonics\nGrid::Type{<:SpeedyWeather.RingGrids.AbstractGrid}: horizontal grid used for calculations in grid-point space\ndealiasing::Float64: how to match spectral with grid resolution: dealiasing factor, 1=linear, 2=quadratic, 3=cubic grid\nradius::Float64: radius of the sphere [m]\nnlat_half::Int64: number of latitude rings on one hemisphere (Equator incl)\nnpoints::Int64: total number of grid points in the horizontal\nnlev::Int64: number of vertical levels\nvertical_coordinates::SpeedyWeather.VerticalCoordinates: coordinates used to discretize the vertical\n\nnlat_half and npoints should not be chosen but are derived from trunc, Grid and dealiasing.\n\n\n\n\n\n","category":"type"},{"location":"how_to_run_speedy/#References","page":"How to run SpeedyWeather.jl","title":"References","text":"","category":"section"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"[1] Galewsky, Scott, Polvani, 2004. An initial-value problem for testing numerical models of the global shallow-water equations, Tellus A. DOI: 10.3402/tellusa.v56i5.14436","category":"page"},{"location":"speedytransforms/#SpeedyTransforms","page":"Submodule: SpeedyTransforms","title":"SpeedyTransforms","text":"","category":"section"},{"location":"speedytransforms/","page":"Submodule: SpeedyTransforms","title":"Submodule: SpeedyTransforms","text":"SpeedyTransforms is a submodule that has been developed for SpeedyWeather.jl which is technically independent (SpeedyWeather.jl however imports it) and can also be used without running simulations. It is just not put into its own respective repository.","category":"page"},{"location":"speedytransforms/#Functions","page":"Submodule: SpeedyTransforms","title":"Functions","text":"","category":"section"},{"location":"grids/#Grids","page":"Grids","title":"Grids","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"The spectral transform (the Spherical Harmonic Transform) in SpeedyWeather.jl supports any ring-based equi-longitude grid. Several grids are already implemented but other can be added. The following pages will describe an overview of these grids and but let's start but how they can be used","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"julia> spectral_grid = SpectralGrid(Grid = FullGaussianGrid)\nSpectralGrid:\n Spectral: T31 LowerTriangularMatrix{Complex{Float32}}, radius = 6.371e6 m\n Grid: 4608-element, 48-ring FullGaussianGrid{Float32} (quadratic)\n Resolution: 333km (average)\n Vertical: 8-level SigmaCoordinates","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"The life of every SpeedyWeather.jl simulation starts with a SpectralGrid object which defines the resolution in spectral and in grid-point space. The generator SpectralGrid() can take as a keyword argument Grid which can be any of the grids described below. The resolution of the grid, however, is not directly chosen, but determined from the spectral resolution trunc and the dealiasing factor. More in Matching spectral and grid resolution.","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"info: RingGrids is a module too!\nWhile RingGrids is the underlying module that SpeedyWeather.jl uses for data structs on the sphere, the module can also be used independently of SpeedyWeather, for example to interpolate between data on different grids. See RingGrids","category":"page"},{"location":"grids/#Ring-based-equi-longitude-grids","page":"Grids","title":"Ring-based equi-longitude grids","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"SpeedyWeather.jl's spectral transform supports all ring-based equi-longitude grids. These grids have their grid points located on rings with constant latitude and on these rings the points are equi-spaced in longitude. There is technically no constrain on the spacing of the latitude rings, but the Legendre transform requires a quadrature to map those to spectral space and back. Common choices for latitudes are the Gaussian latitudes which use the Gaussian quadrature, or equi-angle latitudes (i.e. just regular latitudes but excluding the poles) that use the Clenshaw-Curtis quadrature. The longitudes have to be equi-spaced on every ring, which is necessary for the fast Fourier transform, as one would otherwise need to use a non-uniform Fourier transform. In SpeedyWeather.jl the first grid point on any ring can have a longitudinal offset though, for example by spacing 4 points around the globe at 45˚E, 135˚E, 225˚E, and 315˚E. In this case the offset is 45˚E as the first point is not at 0˚E.","category":"page"},{"location":"grids/#Implemented-grids","page":"Grids","title":"Implemented grids","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"All grids in SpeedyWeather.jl are a subtype of AbstractGrid, i.e. <: AbstractGrid. We further distinguish between full, and reduced grids. Full grids have the same number of longitude points on every latitude ring (i.e. points converge towards the poles) and reduced grids reduce the number of points towards the poles to have them more evenly spread out across the globe. More evenly does not necessarily mean that a grid is equal-area, meaning that every grid cell covers exactly the same area (although the shape changes).","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"Currently the following full grids <: AbstractFullGrid are implemented","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"FullGaussianGrid, a full grid with Gaussian latitudes\nFullClenshawGrid, a full grid with equi-angle latitudes","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"and additionally we have FullHEALPixGrid and FullOctaHEALPixGrid which are the full grid equivalents to the HEALPix grid and the OctaHEALPix grid discussed below. Full grid equivalent means that they have the same latitude rings, but no reduction in the number of points per ring towards the poles and no longitude offset. Other implemented reduced grids are","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"OctahedralGaussianGrid, a reduced grid with Gaussian latitudes based on an octahedron\nOctahedralClenshawGrid, similar but based on equi-angle latitudes\nHEALPixGrid, an equal-area grid based on a dodecahedron with 12 faces\nOctaHEALPixGrid, an equal-area grid from the class of HEALPix grids but based on an octahedron.","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"An overview of these grids is visualised here","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"(Image: Overview of implemented grids in SpeedyWeather.jl)","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"Visualised are each grid's grid points (white dots) and grid faces (white lines). All grids shown have 16 latitude rings on one hemisphere, Equator included. The total number of grid points is denoted in the top left of every subplot. The sphere is shaded with grey, orange and turquoise regions to denote the hemispheres in a and b, the 8 octahedral faces c, d,f and the 12 dodecahedral faces (or base pixels) in e. Coastlines are added for orientation.","category":"page"},{"location":"grids/#Grid-resolution","page":"Grids","title":"Grid resolution","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"All grids use the same resolution parameter nlat_half, i.e. the number of rings on one hemisphere, Equator included. The Gaussian grids (full and reduced) do not have a ring on the equator, so their total number of rings nlat is always even and twice nlat_half. Clenshaw-Curtis grids and the HEALPix grids have a ring on the equator such their total number of rings is always odd and one less than the Gaussian grids at the same nlat_half. ","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"info: HEALPix grids do not use Nside as resolution parameter\nThe original formulation for HEALPix grids use N_side, the number of grid points along the edges of each basepixel (8 in the figure above), SpeedyWeather.jl uses nlat_half, the number of rings on one hemisphere, Equator included, for all grids. This is done for consistency across grids. We may use N_side for the documentation or within functions though.","category":"page"},{"location":"grids/#Matching-spectral-and-grid-resolution","page":"Grids","title":"Matching spectral and grid resolution","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"A given spectral resolution can be matched to a variety of grid resolutions. A cubic grid, for example, combines a spectral truncation T with a grid resolution N (=nlat_half) such that T + 1 = N. Using T31 and an O32 is therefore often abbreviated as Tco31 meaning that the spherical harmonics are truncated at l_max=31 in combination with N=32, i.e. 64 latitude rings in total on an octahedral Gaussian grid.","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"Let J be the total number of rings. Then we have","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"T approx J for linear truncation\nfrac32T approx J for quadratic truncation\n2T approx J for cubic truncation","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"and in general fracm+12T approx J for m-th order truncation. So the higher the truncaction order the more grid points are used in combination with the same spectral resolution. A higher truncation order therefore makes all grid-point calculations more expensive, but can represent products of terms on the grid (which will have higher wavenumber components) to a higher accuracy as more grid points are available within a given wavelength. Using a sufficiently high truncation is therefore one way to avoid aliasing. In SpeedyWeather.jl the parameter dealiasing controls this option, = 1 would be linear, = 2 quadratic, = 3 cubic etc.","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"For now just a quick overview of how the grid resolution changes when dealiasing is passed onto SpectralGrid on the FullGaussianGrid","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"trunc dealiasing FullGaussianGrid size\n31 1 64x32\n31 2 96x48\n31 3 128x64\n42 1 96x48\n42 2 128x64\n42 3 192x96\n... ... ...","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"You will obtain this information every time you create a SpectralGrid(;Grid,trunc,dealiasing).","category":"page"},{"location":"grids/#Full-Gaussian-grid","page":"Grids","title":"Full Gaussian grid","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"...","category":"page"},{"location":"grids/#Full-Clenshaw-Curtis-grid","page":"Grids","title":"Full Clenshaw-Curtis grid","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"...","category":"page"},{"location":"grids/#Octahedral-Gaussian-grid","page":"Grids","title":"Octahedral Gaussian grid","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"...","category":"page"},{"location":"grids/#The-HEALPix-grid","page":"Grids","title":"The HEALPix grid","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"Technically, HEALPix grids are a class of grids that tessalate the sphere into faces that are often called basepixels. For each member of this class there are N_varphi basepixels in zonal direction and N_theta basepixels in meridional direction. For N_varphi = 4 and N_theta = 3 we obtain the classical HEALPix grid with N_varphi N_theta = 12 basepixels shown above in Implemented Grids. Each basepixel has a quadratic number of grid points in them. There's an equatorial zone where the number of zonal grid points is constant (always 2N, so 32 at N=16) and there are polar caps above and below the equatorial zone with the border at cos(theta) = 23 (theta in colatitudes).","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"Following Górski, 2004[1], the z=cos(theta) colatitude of the j-th ring in the north polar cap, j=1N_side with 2N_side = N is ","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"z = 1 - fracj^23N_side^2","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"and on that ring, the longitude phi of the i-th point (i is the in-ring-index) is at","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"phi = fracpi2j(i-tfrac12)","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"The in-ring index i goes from i=14 for the first (i.e. northern-most) ring, i=18 for the second ring and i = 14j for the j-th ring in the northern polar cap.","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"In the north equatorial belt j=N_side2N_side this changes to","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"z = frac43 - frac2j3N_side","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"and the longitudes change to (i is always i = 14N_side in the equatorial belt meaning the number of longitude points is constant here)","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"phi = fracpi2N_side(i - fracs2) quad s = (j - N_side + 1) mod 2","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"The modulo function comes in as there is an alternating longitudinal offset from the prime meridian (see Implemented grids). For the southern hemisphere the grid point locations can be obtained by mirror symmetry.","category":"page"},{"location":"grids/#Grid-cell-boundaries","page":"Grids","title":"Grid cell boundaries","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"The cell boundaries are obtained by setting i = k + 12 or i = k + 12 + j (half indices) into the equations above, such that z(phik), a function for the cosine of colatitude z of index k and the longitude phi is obtained. These are then (northern polar cap)","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"z = 1 - frack^23N_side^2left(fracpi2phi_tright)^2 quad z = 1 - frack^23N_side^2left(fracpi2phi_t - piright)^2","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"with phi_t = phi mod tfracpi2 and in the equatorial belt","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"z = frac23-frac4k3N_side pm frac8phi3pi","category":"page"},{"location":"grids/#OctaHEALPix-grid","page":"Grids","title":"OctaHEALPix grid","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"While the classic HEALPix grid is based on a dodecahedron, other choices for N_varphi and N_theta in the class of HEALPix grids will change the number of faces there are in zonal/meridional direction. With N_varphi = 4 and N_theta = 1 we obtain a HEALPix grid that is based on an octahedron, which has the convenient property that there are twice as many longitude points around the equator than there are latitude rings between the poles. This is a desirable for truncation as this matches the distances too, 2pi around the Equator versus pi between the poles. N_varphi = 6 N_theta = 2 or N_varphi = 8 N_theta = 3 are other possible choices for this, but also more complicated. See Górski, 2004[1] for further examples and visulations of these grids.","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"We call the N_varphi = 4 N_theta = 1 HEALPix grid the OctaHEALPix grid, which combines the equal-area property of the HEALPix grids with the octahedron that's also used in the OctahedralGaussianGrid or the OctahedralClenshawGrid. As N_theta = 1 there is no equatorial belt which simplifies the grid. The latitude of the j-th isolatitude ring on the OctaHEALPixGrid is defined by","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"z = 1 - fracj^2N^2","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"with j=1N, and similarly for the southern hemisphere by symmetry. On this grid N_side = N where N= nlat_half, the number of latitude rings on one hemisphere, Equator included, because each of the 4 basepixels spans from pole to pole and covers a quarter of the sphere. The longitudes with in-ring- index i = 14j are","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"phi = fracpi2j(i - tfrac12)","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"and again, the southern hemisphere grid points are obtained by symmetry.","category":"page"},{"location":"grids/#Grid-cell-boundaries-2","page":"Grids","title":"Grid cell boundaries","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"Similar to the grid cell boundaries for the HEALPix grid, the OctaHEALPix grid's boundaries are","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"z = 1 - frack^2N^2left(fracpi2phi_tright)^2 quad z = 1 - frack^2N^2left(fracpi2phi_t - piright)^2","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"The 3N_side^2 in the denominator of the HEALPix grid came simply N^2 for the OctaHEALPix grid and there's no separate equation for the equatorial belt (which doesn't exist in the OctaHEALPix grid).","category":"page"},{"location":"grids/#References","page":"Grids","title":"References","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"[1] Górski, Hivon, Banday, Wandelt, Hansen, Reinecke, Bartelmann, 2004. HEALPix: A FRAMEWORK FOR HIGH-RESOLUTION DISCRETIZATION AND FAST ANALYSIS OF DATA DISTRIBUTED ON THE SPHERE, The Astrophysical Journal. doi:10.1086/427976","category":"page"},{"location":"boundary_conditions/#Boundary-conditions","page":"Boundary conditions","title":"Boundary conditions","text":"","category":"section"},{"location":"boundary_conditions/","page":"Boundary conditions","title":"Boundary conditions","text":"This page describes the formulation of boundary conditions and their implementation.","category":"page"},{"location":"lowertriangularmatrices/#LowerTriangularMatrices","page":"Submodule: LowerTriangularMatrices","title":"LowerTriangularMatrices","text":"","category":"section"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"LowerTriangularMatrices is a submodule that has been developed for SpeedyWeather.jl which is technically independent (SpeedyWeather.jl however imports it and so does SpeedyTransforms) and can also be used without running simulations. It is just not put into its own respective repository.","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"This module defines LowerTriangularMatrix, a lower triangular matrix, which in contrast to LinearAlgebra.LowerTriangular does not store the entries above the diagonal. SpeedyWeather.jl uses LowerTriangularMatrix which is defined as a subtype of AbstractMatrix to store the spherical harmonic coefficients (see Spectral packing). ","category":"page"},{"location":"lowertriangularmatrices/#Creation-of-LowerTriangularMatrix","page":"Submodule: LowerTriangularMatrices","title":"Creation of LowerTriangularMatrix","text":"","category":"section"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"A LowerTriangularMatrix can be created using zeros,ones,rand, or randn","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"julia> using SpeedyWeather.LowerTriangularMatrices\n\njulia> L = rand(LowerTriangularMatrix{Float32},5,5)\n5×5 LowerTriangularMatrix{Float32}:\n 0.912744 0.0 0.0 0.0 0.0\n 0.0737592 0.230592 0.0 0.0 0.0\n 0.799679 0.0765255 0.888098 0.0 0.0\n 0.670835 0.997938 0.505276 0.492966 0.0\n 0.949321 0.193692 0.793623 0.152817 0.357968","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"or the undef initializor LowerTriangularMatrix{Float32}(undef,3,3). The element type is arbitrary though, you can use any type T too.","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"Alternatively, it can be created through conversion from Matrix, which drops the upper triangle entries and sets them to zero","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"julia> M = rand(Float16,3,3)\n3×3 Matrix{Float16}:\n 0.2222 0.694 0.3452\n 0.2158 0.04443 0.274\n 0.9746 0.793 0.6294\n\njulia> LowerTriangularMatrix(M)\n3×3 LowerTriangularMatrix{Float16}:\n 0.2222 0.0 0.0\n 0.2158 0.04443 0.0\n 0.9746 0.793 0.6294","category":"page"},{"location":"lowertriangularmatrices/#Indexing-LowerTriangularMatrix","page":"Submodule: LowerTriangularMatrices","title":"Indexing LowerTriangularMatrix","text":"","category":"section"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"LowerTriangularMatrix supports two types of indexing: 1) by denoting two indices, column and row [l,m] or 2) by denoting a single index [lm]. The double index works as expected","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"julia> L\n3×3 LowerTriangularMatrix{Float16}:\n 0.1499 0.0 0.0\n 0.1177 0.478 0.0\n 0.1709 0.756 0.3223\n\njulia> L[2,2]\nFloat16(0.478)","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"But the single index skips the zero entries in the upper triangle, i.e.","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"julia> L[4]\nFloat16(0.478)","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"which, important, is different from single indices of an AbstractMatrix","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"julia> Matrix(L)[4]\nFloat16(0.0)","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"In performance-critical code a single index should be used, as this directly maps to the index of the underlying data vector. The double index is somewhat slower as it first has to be converted to the corresponding single index.","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"Consequently, many loops in SpeedyWeather.jl are build with the following structure","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"n,m = size(L)\nij = 0\nfor j in 1:m\n for i in j:n\n ij += 1\n L[ij] = i+j\n end\nend","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"which loops over all lower triangle entries of L::LowerTriangularMatrix and the single index ij is simply counted up. However, one could also use [i,j] as indices in the loop body or to perform any calculation (i+j here). An iterator over all entries in the lower triangle can be created by","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"for ij in eachindex(L)\n # do something\nend","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"The setindex! functionality of matrixes will throw a BoundsError when trying to write into the upper triangle of a LowerTriangularMatrix, for example","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"julia> L[2,1] = 0 # valid index\n0\n\njulia> L[1,2] = 0 # invalid index in the upper triangle\nERROR: BoundsError: attempt to access 3×3 LowerTriangularMatrix{Float32} at index [1, 2]","category":"page"},{"location":"lowertriangularmatrices/#Linear-algebra-with-LowerTriangularMatrix","page":"Submodule: LowerTriangularMatrices","title":"Linear algebra with LowerTriangularMatrix","text":"","category":"section"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"The LowerTriangularMatrices module's main purpose is not linear algebra, and it's implementation may not be efficient, however, many operations work as expected","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"julia> L = rand(LowerTriangularMatrix{Float32},3,3)\n3×3 LowerTriangularMatrix{Float32}:\n 0.57649 0.0 0.0\n 0.348685 0.875371 0.0\n 0.881923 0.850552 0.998306\n\njulia> L + L\n3×3 LowerTriangularMatrix{Float32}:\n 1.15298 0.0 0.0\n 0.697371 1.75074 0.0\n 1.76385 1.7011 1.99661\n\njulia> L * L\n3×3 Matrix{Float32}:\n 0.332341 0.0 0.0\n 0.506243 0.766275 0.0\n 1.68542 1.59366 0.996616","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"Note, however, that the latter includes a conversion to Matrix, which is true for many operations, including inv or \\. Hence when trying to do more sophisticated linear algebra with LowerTriangularMatrix we quickly leave lower triangular-land and go back to normal matrix-land.","category":"page"},{"location":"lowertriangularmatrices/#Function-index","page":"Submodule: LowerTriangularMatrices","title":"Function index","text":"","category":"section"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"LowerTriangularMatrix\nLowerTriangularMatrices.ij2k\nBase.fill!(L::LowerTriangularMatrix{T}, x) where T\nLowerTriangularMatrices.eachharmonic","category":"page"},{"location":"lowertriangularmatrices/#SpeedyWeather.LowerTriangularMatrices.LowerTriangularMatrix","page":"Submodule: LowerTriangularMatrices","title":"SpeedyWeather.LowerTriangularMatrices.LowerTriangularMatrix","text":"L = LowerTriangularMatrix{T}(v::Vector{T},m::Int,n::Int)\n\nA lower triangular matrix implementation that only stores the non-zero entries explicitly. L<:AbstractMatrix although in general we have L[i] != Matrix(L)[i], the former skips zero entries, tha latter includes them.\n\n\n\n\n\n","category":"type"},{"location":"lowertriangularmatrices/#SpeedyWeather.LowerTriangularMatrices.ij2k","page":"Submodule: LowerTriangularMatrices","title":"SpeedyWeather.LowerTriangularMatrices.ij2k","text":"k = ij2k( i::Integer, # row index of matrix\n j::Integer, # column index of matrix\n m::Integer) # number of rows in matrix\n\nConverts the index pair i,j of an mxn LowerTriangularMatrix L to a single index k that indexes the same element in the corresponding vector that stores only the lower triangle (the non-zero entries) of L.\n\n\n\n\n\n","category":"function"},{"location":"lowertriangularmatrices/#Base.fill!-Union{Tuple{T}, Tuple{LowerTriangularMatrix{T}, Any}} where T","page":"Submodule: LowerTriangularMatrices","title":"Base.fill!","text":"fill!(L::LowerTriangularMatrix,x)\n\nFills the elements of L with x. Faster than fill!(::AbstractArray,x) as only the non-zero elements in L are assigned with x.\n\n\n\n\n\n","category":"method"},{"location":"lowertriangularmatrices/#SpeedyWeather.LowerTriangularMatrices.eachharmonic","page":"Submodule: LowerTriangularMatrices","title":"SpeedyWeather.LowerTriangularMatrices.eachharmonic","text":"unit_range = eachharmonic(L::LowerTriangular)\n\ncreates unit_range::UnitRange to loop over all non-zeros in a LowerTriangularMatrix L. Like eachindex but skips the upper triangle with zeros in L.\n\n\n\n\n\nunit_range = eachharmonic(Ls::LowerTriangularMatrix...)\n\ncreates unit_range::UnitRange to loop over all non-zeros in the LowerTriangularMatrices provided as arguments. Checks bounds first. All LowerTriangularMatrix's need to be of the same size. Like eachindex but skips the upper triangle with zeros in L.\n\n\n\n\n\n","category":"function"},{"location":"conventions/#Style-and-convention-guide","page":"Style and convention guide","title":"Style and convention guide","text":"","category":"section"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"In SpeedyWeather.jl we've been following the several conventions that are documented here.","category":"page"},{"location":"conventions/#Variable-naming","page":"Style and convention guide","title":"Variable naming","text":"","category":"section"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"The prognostic variables in spectral space are called","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":" vor # Vorticity of horizontal wind field\n div # Divergence of horizontal wind field\n temp # Absolute temperature [K]\n pres_surf # Logarithm of surface pressure [log(Pa)]\n humid # Specific humidity [g/kg]","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"their transforms into grid-point space get a _grid suffix, their tendencies a _tend suffix. Further derived diagnostic dynamic variables are","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":" u\n v\n geopot\n ...","category":"page"},{"location":"conventions/#Preallocation","page":"Style and convention guide","title":"Preallocation","text":"","category":"section"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"All arrays representing variables are preallocated and grouped into two structs","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":" Prog::PrognosticVariables\n Diag::DiagnosticVariables","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"The Diag struct contains further structs which represent the grid-point transformations of the prognostic variables and their tendencies.","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":" gridvars::GridVariables\n tendencies::Tendencies\n ...","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"Constant arrays are grouped into several structs","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"Boundaries","category":"page"},{"location":"conventions/#Julian-conventions","page":"Style and convention guide","title":"Julian conventions","text":"","category":"section"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"We follow Julia's style guide and highlight here some important aspects of it.","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"Bang (!) convention. A function func does not change its input arguments, however, func! does.","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"Hence, func! is often the in-place version of func, avoiding as much memory allocation as possible and often changing its first argument, e.g. func!(out,in) so that argument in is used to calculate out which has been preallocated before function call.","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"Number format flexibility. Numeric literals such as 2.0 or 1/3 are only used in the model setup","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"but avoided throughout the code to obtain a fully number format-flexible package using the number format NF as a compile-time variable throughout the code. This often leads to overly specific code whereas a Real would generally suffice. However, this is done to avoid any implicit type conversions.","category":"page"},{"location":"extending/#New-model-setups","page":"Extending SpeedyWeather","title":"New model setups","text":"","category":"section"},{"location":"extending/","page":"Extending SpeedyWeather","title":"Extending SpeedyWeather","text":"more to come...","category":"page"},{"location":"dynamical_core/#Dynamical-core","page":"Dynamical core","title":"Dynamical core","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"A mathematical and implementation-specific description of the dynamical core used in SpeedyWeather.jl. We start by describing the barotropic vorticity equations which is one set of equations that SpeedyWeather.jl can solve (see How to run SpeedyWeather.jl) as many details therein also apply to the Shallow water equations and Primitive equations explained thereafter.","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"The dynamical core presented here largely follows the idealized models with spectral dynamics developed at the Geophysical Fluid Dynamics Laboratory[1]: A barotropic vorticity model[2], a shallow water model [3] and a primitive equation model[4]. ","category":"page"},{"location":"dynamical_core/#Barotropic-vorticity-equation","page":"Dynamical core","title":"Barotropic vorticity equation","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"The barotropic vorticity equation is the prognostic equation that describes the time evolution of relative vorticity zeta with advection, Coriolis force and diffusion in a single global layer on the sphere.","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"fracpartial zetapartial t + nabla cdot (mathbfu(zeta + f)) =\nnabla times mathbfF + (-1)^n+1nunabla^2nzeta","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"with time t, velocity vector mathbfu = (u v), Coriolis parameter f, and hyperdiffusion (-1)^n+1 nu nabla^2n zeta (n is the hyperdiffusion order; see Horizontal diffusion). We also include a forcing vector mathbfF = (F_uF_v) which acts on the zonal velocity u and the meridional velocity v and hence its curl nabla times mathbfF is a tendency for relative vorticity zeta.","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"Starting with some relative vorticity zeta, the Laplacian is inverted to obtain the stream function Psi","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"Psi = nabla^-2zeta","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"The zonal velocity u and meridional velocity v are then the (negative) meridional gradient and zonal gradient of Psi","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"beginaligned\nu = -frac1R fracpartial Psipartial theta \nv = frac1Rcos(theta) fracpartial Psipartial phi \nendaligned","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"which is described in Derivatives in spherical coordinates.","category":"page"},{"location":"dynamical_core/#Algorithm","page":"Dynamical core","title":"Algorithm","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"We briefly outline the algorithm that SpeedyWeather.jl uses in order to integrate the barotropic vorticity equation. As an intial step","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"0. Start with initial conditions of zeta_lm in spectral space and transform this model state to grid-point space:","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"Invert the Laplacian to obtain the stream function Psi_lm in spectral space\nobtain zonal velocity (cos(theta)u)_lm through a Meridional derivative\nobtain meridional velocity (cos(theta)v)_lm through a Zonal derivative\nTransform zonal and meridional velocity (cos(theta)u)_lm, (cos(theta)v)_lm to grid-point space\nUnscale the cos(theta) factor to obtain uv\nTransform zeta_lm to zeta in grid-point space","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"Now loop over","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"Compute the forcing vector mathbfF = (F_uF_v) for u and v\nMultiply uv with zeta+f in grid-point space\nAdd A = F_u + v(zeta + f) and B = F_v - u(zeta + f)\nTransform these vector components to spectral space A_lm, B_lm\nCompute the curl of (AB)_lm in spectral space which is the tendency of zeta_lm\nCompute the Horizontal diffusion based on that tendency\nCompute a leapfrog time step as described in Time integration\nTransform the spectral state of zeta_lm to grid-point uvzeta as described in 0.\nPossibly do some output\nRepeat from 1.","category":"page"},{"location":"dynamical_core/#Shallow-water-equations","page":"Dynamical core","title":"Shallow water equations","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"beginaligned\nfracpartial zetapartial t + nabla cdot (mathbfu(zeta + f)) = (-1)^n+1nunabla^2nzeta \nfracpartial mathcalDpartial t - nabla times (mathbfu(zeta + f)) = -nabla^2(tfrac12(u^2 + v^2) + geta) + (-1)^n+1nunabla^2nmathcalD \nfracpartial etapartial t + nabla cdot (mathbfuh) = 0\nendaligned","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"where zeta = hatmathbfz cdot (nabla times mathbfu) is the relative vorticity, mathcalD = nabla cdot mathbfu the divergence, and eta the deviation from the fluid's rest height.","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"Note: more to come...","category":"page"},{"location":"dynamical_core/#Primitive-equations","page":"Dynamical core","title":"Primitive equations","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"The primitive equations solved by SpeedyWeather.jl are","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"beginaligned\npartial_t u = \npartial_t v = \npartial_t T = \npartial_t Q = \nendaligned","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"Note: more to come...","category":"page"},{"location":"dynamical_core/#Horizontal-diffusion","page":"Dynamical core","title":"Horizontal diffusion","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"In SpeedyWeather.jl we use hyerdiffusion through an n-th power Laplacian (-1)^n+1nabla^2n (hyper when n1) which can be implemented as a multiplication of the spectral coefficients Psi_lm with (-l(l+1))^nR^-2n (see spectral Laplacian) It is therefore computationally not more expensive to apply hyperdiffusion over diffusion as the (-l(l+1))^nR^-2n can be precomputed. Note the sign change (-1)^n+1 here is such that the dissipative nature of the diffusion operator is retained for n odd and even.","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"In SpeedyWeather.jl the diffusion is applied implicitly. For that, consider a leapfrog scheme with time step Delta t of variable zeta to obtain from time steps i-1 and i, the next time step i+1","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"zeta_i+1 = zeta_i-1 + 2Delta t dzeta","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"with dzeta being some tendency evaluated from zeta_i. Now we want to add a diffusion term (-1)^n+1nu nabla^2nzeta with viscosity nu, wich however, is implicitly calculated from zeta_i+1, then","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"zeta_i+1 = zeta_i-1 + 2Delta t (dzeta + (-1)^n+1 nunabla^2nzeta_i+1)","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"As the application of (-1)^n+1nunabla^2n is, for every spectral mode, equivalent to a multiplication of a constant, we can rewrite this to","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"zeta_i+1 = fraczeta_i-1 + 2Delta t dzeta1 - 2Delta (-1)^n+1nunabla^2n","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"and expand the numerator to","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"zeta_i+1 = zeta_i-1 + 2Delta t fracdzeta + (-1)^n+1 nunabla^2nzeta_i-11 - 2Delta t (-1)^n+1nu nabla^2n","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"Hence the diffusion can be applied implicitly by updating the tendency dzeta as","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"dzeta to fracdzeta + (-1)^n+1nunabla^2nzeta_i-11 - 2Delta t nu nabla^2n","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"which only depends on zeta_i-1. Now let D_textexplicit = (-1)^n+1nunabla^2n be the explicit part and D_textimplicit = 1 - (-1)^n+1 2Delta t nunabla^2n the implicit part. Both parts can be precomputed and are D_textimplicit = 1 - 2Delta t nunabla^2n the implicit part. Both parts can be precomputed and are only an element-wise multiplication in spectral space. For every spectral harmonic lm we do","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"dzeta to D_textimplicit^-1(dzeta + D_textexplicitzeta_i-1)","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"Hence 2 multiplications and 1 subtraction with precomputed constants. However, we will normalize the (hyper-)Laplacians as described in the following. This also will take care of the alternating sign such that the diffusion operation is dissipative regardless the power n.","category":"page"},{"location":"dynamical_core/#Normalization-of-diffusion","page":"Dynamical core","title":"Normalization of diffusion","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"In physics, the Laplace operator nabla^2 is often used to represent diffusion due to viscosity in a fluid. In that case, the viscosity coefficient is nu of units textm^2texts^-1 and the full operator reads as nu nabla^2 with units (textm^2texts^-1)(textm^-2) = texts^-1. This motivates us to normalize the Laplace operator by a constant of units textm^-2 and the viscosity coefficient by its inverse such that the viscosity coefficient becomes a damping timescale of unit texts^-1. Given the application in spectral space we decide to normalize by the largest eigenvalue -l_textmax(l_textmax+1) such that all entries in the discrete spectral Laplace operator are in 01. This also has the effect that the alternating sign drops out, such that higher wavenumbers are always dampened and not amplified. The normalized viscosity coefficient nu^* = l_textmax(l_textmax+1)nu (always positive) is therefore reinterpreted as the (inverse) time scale at which the highest wavenumber is dampened to zero due to diffusion. Together we have ","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"D^textexplicit_lm = -nu^* fracl(l+1)l_textmax(l_textmax+1)","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"and the hyper-Laplacian of power n follows as","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"D^textexplicitn_lm = -nu^* left(fracl(l+1)l_textmax(l_textmax+1)right)^n","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"and the implicit part is accordingly D^textimplicitn_lm = 1 - 2Delta t D^textexplicitn_lm.","category":"page"},{"location":"dynamical_core/#Radius-scaling","page":"Dynamical core","title":"Radius scaling","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"SpeedyWeather.jl uses a scaling for vorticity zeta and stream function Psi that is","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"tildezeta = zeta R tildePsi = Psi R^-1","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"In the barotropic voriticity equation model the inversion of the Laplcians in order to obtain Psi from zeta therefore becomes","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"tildezeta = tildenabla^2 tildePsi","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"where the dimensionless gradients simply omit the scaling with 1R, tildenabla = Rnabla. The Barotropic vorticity equation scaled with R^2 is","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"partial_tildettildezeta + tildenabla cdot (mathbfu(tildezeta + tildef)) = tildenutildenabla^2ntildezeta","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"with","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"tildet = tR^-1, the scaled time t\nmathbfu = (uv), the velocity vector (no scaling applied)\ntildef = fR, the scaled Coriolis parameter f\ntildenu = nu^* R, the scaled viscosity nu^*, which itself is normalized to a damping time scale, see Normalization of diffusion.","category":"page"},{"location":"dynamical_core/#Scaled-shallow-water-equations","page":"Dynamical core","title":"Scaled shallow water equations","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"Similar to the scaled barotropic vorticity equations, the scaled shallow water equations scale the vorticity and the divergence equation with R^2, but the continuity equation with R","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"beginaligned\nfracpartial tildezetapartial tildet + tildenabla cdot (mathbfu(tildezeta + tildef)) =\ntildenutildenabla^2ntildezeta \nfracpartial tildemathcalDpartial tildet - tildenabla times (mathbfu(tildezeta + tildef)) =\n-tildenabla^2left(tfrac12(u^2 + v^2) + geta right) + tildenutildenabla^2ntildemathcalD \nfracpartial etapartial tildet + tildenabla cdot (mathbfuh) = 0\nendaligned","category":"page"},{"location":"dynamical_core/#Time-integration","page":"Dynamical core","title":"Time integration","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"SpeedyWeather.jl uses a leapfrog time scheme with a Robert's and William's filter to dampen the computational mode and achieve 3rd order accuracy.","category":"page"},{"location":"dynamical_core/#Oscillation-equation","page":"Dynamical core","title":"Oscillation equation","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"fracdFdt = iomega F","category":"page"},{"location":"dynamical_core/#References","page":"Dynamical core","title":"References","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"[1]: Geophysical Fluid Dynamics Laboratory, Idealized models with spectral dynamics","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"[2]: Geophysical Fluid Dynamics Laboratory, The barotropic vorticity equation.","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"[3]: Geophysical Fluid Dynamics Laboratory, The Shallow Water Equations.","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"[4]: Geophysical Fluid Dynamics Laboratory, The Spectral Dynamical Core","category":"page"},{"location":"spectral_transform/#Spherical-Harmonic-Transform","page":"Spherical harmonic transform","title":"Spherical Harmonic Transform","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The following sections outline the implementation of the spherical harmonic transform (in short spectral transform) between the coefficients of the spherical harmonics (the spectral space) and the grid space on a longitude-latitude regular Gaussian grid.","category":"page"},{"location":"spectral_transform/#Inspiration","page":"Spherical harmonic transform","title":"Inspiration","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The spectral transform implemented by SpeedyWeather.jl follows largely Justin Willmert's CMB.jl package and makes use of AssociatedLegendrePolynomials.jl and FFTW.jl (for Float32/64) or GenericFFT.jl (for generic) for the Fourier transform. Justin described his work in a Blog series [1][2][3][4][5][6][7][8].","category":"page"},{"location":"spectral_transform/#Spherical-harmonics","page":"Spherical harmonic transform","title":"Spherical harmonics","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The spherical harmonics Y_lm of degree l and order m over the longitude phi = (02pi) and colatitudes theta = (-pi2pi2), are","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Y_lm(phi theta) = lambda_l^m(sintheta) e^imphi","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"with lambda_l^m being the pre-normalized associated Legendre polynomials, and e^imphi are the complex exponentials (the Fourier modes). Together they form a set of orthogonal basis functions on the sphere. For an interactive visualisation of the spherical harmonics, see here.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"info: Latitudes versus colatitudes\nThe implementations of the spherical transforms in SpeedyWeather.jl use colatitudes theta = (0pi) (0 at the north pole) but the dynamical core uses latitudes theta = (-pi2pi2) (pi2 at the north pole). However, all arrays are always sorted north to south such that [i,1] will access the northern-most grid points. Note: We may also use latitudes in the spherical harmonic transform in the future for consistency. ","category":"page"},{"location":"spectral_transform/#Synthesis-(spectral-to-grid)","page":"Spherical harmonic transform","title":"Synthesis (spectral to grid)","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The synthesis (or inverse transform) takes the spectral coefficients a_lm and transforms them to grid-point values f(phitheta) (for the sake of simplicity first regarded as continuous). The synthesis is a linear combination of the spherical harmonics Y_lm with non-zero coefficients.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"f(phitheta) = sum_l=0^infty sum_m=-l^l a_lm Y_lm(phitheta)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"We obtain an approximation with a finite set of a_lm by truncating the series after l = l_max.","category":"page"},{"location":"spectral_transform/#Analysis-(grid-to-spectral)","page":"Spherical harmonic transform","title":"Analysis (grid to spectral)","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Starting in grid-point space we can transform a field f(lambdatheta) into the spectral space of the spherical harmonics by","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"a_lm = int_0^2pi int_-tfracpi2^tfracpi2 f(lambdatheta) Y_lm(lambdatheta) cos theta dtheta dlambda","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"This integral has to be discretized to when grid-point values f(lambda_itheta_i) are used. For more details, see [7],[8].","category":"page"},{"location":"spectral_transform/#Spectral-packing","page":"Spherical harmonic transform","title":"Spectral packing","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Spectral packing is the way how the coefficients a_lm of the spherical harmonics of a given spectral field are stored in an array. SpeedyWeather.jl uses the conventional spectral packing of degree l and order m as illustrated in the following image (Cyp, CC BY-SA 3.0, via Wikimedia Commons)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Every row represents an order l geq 0, starting from l=0 at the top. Every column represents an order m geq 0, starting from m=0 on the left. The coefficients of these spherical harmonics are directly mapped into a matrix a_lm as ","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":" m \nl a_00 \n a_10 a_11 \n a_20 a_12 a_22 \n a_30 a_13 a_23 a_33","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"which is consistently extended for higher degrees and orders. Consequently, all spectral fields are lower-triangular matrices with complex entries. The upper triangle excluding the diagonal explicitly stores zeros. Note that internally vector fields include an additional degree, such that l_max = m_max + 1 (see Gradients in spherical coordinates for more information). The harmonics with a_l0 (the first column) are also called zonal harmonics as they are constant with longitude phi. The harmonics with a_ll (the main diagonal) are also called sectoral harmonics as they essentially split the sphere into 2l sectors in longitude phi without a zero-crossing in latitude.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"info: Array indices\nFor a spectral field alms note that due to Julia's 1-based indexing the coefficient a_lm is obtained via alms[l+1,m+1].","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Fortran speedy does not use the same spectral packing as SpeedyWeather.jl. The alternative packing lm therein uses l=m and m=l-m as summarized in the following table.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"degree l order m l=m m=l-m\n0 0 0 0\n1 0 0 1\n1 1 1 0\n2 0 0 2\n2 1 1 1\n2 2 2 0\n3 0 0 3\n... ... ... ...","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"This alternative packing uses the top-left triangle of a coefficient matrix, and the degrees and orders from above are stored at the following indices","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":" m \nl a_00 a_10 a_20 a_30\n a_11 a_21 a_31 \n a_22 a_32 \n a_33 ","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"This spectral packing is not used in SpeedyWeather.jl but illustrated here for completeness and comparison with Fortran-speedy.","category":"page"},{"location":"spectral_transform/#Example-transforms","page":"Spherical harmonic transform","title":"Example transforms","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"julia> using SpeedyWeather\njulia> alms = zeros(ComplexF64,3,3) # spectral coefficients\njulia> alms[2,2] = 1 # only l=1,m=1 harmonic\njulia> map = gridded(alms) # convert to grid space\n8×4 Matrix{Float64}:\n -0.324541 -0.600363 -0.600363 -0.324541\n -0.134429 -0.248678 -0.248678 -0.134429\n 0.134429 0.248678 0.248678 0.134429\n 0.324541 0.600363 0.600363 0.324541\n 0.324541 0.600363 0.600363 0.324541\n 0.134429 0.248678 0.248678 0.134429\n -0.134429 -0.248678 -0.248678 -0.134429\n -0.324541 -0.600363 -0.600363 -0.324541\n \njulia> spectral(map) # back to spectral space\n3×3 Matrix{ComplexF64}:\n 0.0+0.0im 0.0+0.0im 0.0+0.0im\n 0.0+0.0im 1.0+3.60727e-17im 0.0+0.0im\n 0.0+0.0im 0.0+0.0im 0.0+0.0im","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"and we have successfully reobtained the l=m=1 spherical harmonic.","category":"page"},{"location":"spectral_transform/#Available-horizontal-resolutions","page":"Spherical harmonic transform","title":"Available horizontal resolutions","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"SpeedyWeather.jl uses triangular truncation such that only spherical harmonics with l leq l_max and m leq m_max are explicitly represented. This is usually described as Tm_max, with l_max = m_max (although in vector quantities require one more degree l in the recursion relation of meridional gradients). For example, T31 is the spectral resolution with l_max = m_max = 31. Note that the degree l and order m are mathematically 0-based, such that the corresponding coefficient matrix is of size 32x32.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Using triangular truncation[9], there are constraints on the corresponding grid resolution. Let nlon, nlat be the number of longitudes, latitudes on a regular Gaussian grid. Then spectral and grid resolution have to be chosen such that","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"nlon geq 3l_max+1\nnlat geq (3l_max+1)2","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"In general, we choose nlon = 2nlat, and ideally nlon is easily Fourier-transformable, e.g. nlon = 2^i3^j5^k with some integers ijk geq 0. SpeedyWeather.jl is tested at the following horizontal resolutions, with Delta x = tfrac2pi Rnlon as the approximate grid spacing at the Equator","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"l_max nlon nlat Delta x\n31 (default) 96 48 400 km\n42 128 64 300 km\n85 256 128 160 km\n170 512 256 80 km\n341 1024 512 40 km\n682 2048 1024 20 km","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Choosing trunc as argument in run_speedy will automatically choose nlon,nlat as presented in the table. Other common choices are T63 (192x96), T127 (384x192), T255 (768x384), T511 (1536x768), among others.","category":"page"},{"location":"spectral_transform/#Derivatives-in-spherical-coordinates","page":"Spherical harmonic transform","title":"Derivatives in spherical coordinates","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Horizontal gradients in spherical coordinates are defined for a scalar field A and the latitudes theta and longitudes lambda as","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"nabla A = left(frac1Rcosthetafracpartial Apartial lambda frac1Rfracpartial Apartial theta right)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"However, the divergence of a vector field mathbfu = (uv) includes additional cos(theta) scalings","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"nabla cdot mathbfu = frac1Rcosthetafracpartial upartial lambda +\nfrac1Rcosthetafracpartial (v costheta)partial theta","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"and similar for the curl","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"nabla times mathbfu = frac1Rcosthetafracpartial vpartial lambda -\nfrac1Rcosthetafracpartial (u costheta)partial theta","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The radius of the sphere (i.e. Earth) is R. The zonal gradient scales with 1cos(theta) as the longitudes converge towards the poles (note that theta describes latitudes here, defintions using colatitudes replace the cos with a sin.)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Starting with a spectral field of vorticity zeta and divergence mathcalD one can obtain stream function Psi and velocity potential Phi by inverting the Laplace operator nabla^2:","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Psi = nabla^-2zeta quad Phi = nabla^-2mathcalD","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The velocities uv are then obtained from (uv) = nabla^botPsi + nablaPhi following the defintion from above and nabla^bot = (-R^-1partial_theta (Rcostheta)^-1partial_lambda)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"beginaligned\nu = -frac1Rpartial_thetaPsi + frac1Rcosthetapartial_lambdaPhi \nv = +frac1Rpartial_thetaPhi + frac1Rcosthetapartial_lambdaPsi\nendaligned","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Alternatively, we can use the velocities U = ucostheta V = vcostheta, which we do as the meridional gradient for spherical harmonics is easier implemented with a costheta-scaling included, and because the divergence and curl in spherical coordinates evaluates the meridional gradient with UV and not uv. From uv we can return to zeta mathcalD via","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"beginaligned\nzeta = frac1Rcosthetapartial_lambda v - frac1Rcosthetapartial_theta (u costheta) \nmathcalD = frac1Rcosthetapartial_lambda u + frac1Rcosthetapartial_theta (v costheta)\nendaligned","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Equivalently, we have","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"beginaligned\nU = -fraccosthetaRpartial_thetaPsi + frac1Rpartial_lambdaPhi \nV = +fraccosthetaRpartial_thetaPhi + frac1Rpartial_lambdaPsi \nzeta = frac1Rpartial_lambda left( fracVcos^2theta right) -\nfraccosthetaRpartial_theta left( fracUcos^2theta right) \nmathcalD = frac1Rpartial_lambda left( fracUcos^2theta right) +\nfraccosthetaRpartial_theta left( fracVcos^2theta right)\nendaligned","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"which is a more convenient formulation as required costheta scalings are reduced to a minimum. The remaining (UV)*cos^-2theta are done in grid-point space and usually in combination with other operations like the computation of the vorticity flux. But also note that SpeedyWeather.jl scales the equations with the radius R (see Radius scaling) such that the divisions by R drop out too. As described in Meridional derivative, it is more convenient to implement costheta partial_theta via a recursion relation for the Legendre polynomials than partial_theta directly. How the operators nabla nabla times nabla cdot can be implemented with spherical harmonics is presented in the following sections.","category":"page"},{"location":"spectral_transform/#Zonal-derivative","page":"Spherical harmonic transform","title":"Zonal derivative","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The zonal derivative of a scalar field Psi in spectral space is the zonal derivative of all its respective spherical harmonics Psi_lm(phitheta) (now we use phi for longitudes to avoid confusion with the Legendre polynomials lambda_lm)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"v_lm = frac1R cos(theta) fracpartialpartial phi left( lambda_l^m(costheta) e^imphi right) =\nfracimR cos(theta) lambda_l^m(costheta) e^imphi = fracimR cos(theta) Psi_lm","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"So for every spectral harmonic, cos(theta)v_lm is obtained from Psi_lm via a multiplication with imR. Unscaling the cos(theta)-factor is done after transforming the spectral coefficients v_lm into grid-point space. As discussed in Radius scaling, SpeedyWeather.jl scales the stream function as tildePsi = R^-1Psi such that the division by radius R in the gradients can be omitted. The zonal derivative becomes therefore effectively for each spherical harmonic a scaling with its (imaginary) order im. The spherical harmonics are essentially just a Fourier transform in zonal direction and the derivative a multiplication with the respective wave number m times imaginary i.","category":"page"},{"location":"spectral_transform/#Meridional-derivative","page":"Spherical harmonic transform","title":"Meridional derivative","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The meridioinal derivative of the spherical harmonics is a derivative of the Legendre polynomials for which the following recursion relation applies[10],[11]","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"costheta fracdP_lmdtheta = -lepsilon_l+1mP_l+1m + (l+1)epsilon_lmP_l-1m","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"with recursion factors","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"epsilon_lm = sqrtfracl^2-m^24l^2-1","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"In the following we use the example of obtaining the zonal velocity u from the stream function Psi, which is through the negative meridional gradient. For the meridional derivative itself the leading minus sign has to be omitted. Starting with the spectral expansion","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Psi(lambdatheta) = sum_lmPsi_lmP_lm(sintheta)e^imlambda","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"we multiply with -R^-1costhetapartial_theta to obtain","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"costhetaleft(-frac1Rpartial_thetaPsi right) = -frac1Rsum_lmPsi_lme^imlambdacosthetapartial_theta P_lm","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"at which point the recursion from above can be applied. Collecting terms proportional to P_lm then yields","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"(cos(theta)u)_lm = -frac1R(-(l-1)epsilon_lmPsi_l-1m + (l+2)epsilon_l+1mPsi_l+1m)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"To obtain the coefficient of each spherical harmonic lm of the meridional gradient of a spectral field, two coefficients at l-1m and l+1m have to be combined. This means that the coefficient of a gradient ((costheta) u)_lm is a linear combination of the coefficients of one higher and one lower degree Psi_l+1mPsi_l-1m. As the coefficient Psi_lm with ml are zero, the sectoral harmonics (l=m) of the gradients are obtained from the first off-diagonal only. However, the l=l_max harmonics of the gradients require the l_max-1 as well as the l_max+1 harmonics. In SpeedyWeather.jl vector quantitie like uv use therefore one more meridional mode than scalar quantities such as vorticity zeta or stream function Psi. The meridional derivative in SpeedyWeather.jl also omits the 1R-scaling as explained for the Zonal derivative and in Radius scaling.","category":"page"},{"location":"spectral_transform/#Divergence-and-curl-in-spherical-harmonics","page":"Spherical harmonic transform","title":"Divergence and curl in spherical harmonics","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The meridional gradient as described above can be applied to scalars, such as Psi and Phi in the conversion to velocities (uv) = nabla^botPsi + nablaPhi, however, the operators curl nabla times and divergence nabla cdot in spherical coordinates involve a costheta scaling before the meridional gradient is applied. How to translate this to spectral coefficients has to be derived separately[10],[11].","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The spectral transform of vorticity zeta is","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"zeta_lm = frac12piint_-tfracpi2^tfracpi2int_0^2pi zeta(lambdatheta) P_lm(sintheta) e^imlambda dlambda costheta dtheta","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Given that Rzeta = cos^-1partial_lambda v - cos^-1partial_theta (u costheta), we therefore have to evaluate a meridional integral of the form","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"int P_lm frac1cos theta partial_theta(u costheta)) cos theta dtheta","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"which can be solved through integration by parts. As ucostheta = 0 at theta = pm tfracpi2 only the integral","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"= -int partial_theta P_lm (u costheta) dtheta = -int costheta partial_theta P_lm (fracucostheta) costheta dtheta","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"remains. Inserting the recurrence relation from the Meridional derivative turns this into","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"= -int left(-l epsilon_l+1mP_l+1m + (l+1)epsilon_lm P_l-1m right) (fracucostheta) cos theta dtheta","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Now we expand (tfracucostheta) but only the lm harmonic will project ontoP_lm. Let u^* = ucos^-1theta v^* = vcos^-1theta we then have in total","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"beginaligned\nRzeta_lm = imv^*_lm + (l+1)epsilon_lmu^*_l-1m - lepsilon_l+1mu^*_l+1m \nRD_lm = imu^*_lm - (l+1)epsilon_lmv^*_l-1m + lepsilon_l+1mv^*_l+1m \nendaligned","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"And the divergence D is similar, but (uv) to (-vu). We have moved the scaling with the radius R directly into zetaD as further described in Radius scaling.","category":"page"},{"location":"spectral_transform/#Laplacian","page":"Spherical harmonic transform","title":"Laplacian","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The spectral Laplacian is easily applied to the coefficients Psi_lm of a spectral field as the spherical harmonics are eigenfunctions of the Laplace operator nabla^2 in spherical coordinates with eigenvalues -l(l+1) divided by the radius squared R^2, i.e. nabla^2 Psi becomes tfrac-l(l+1)R^2Psi_lm in spectral space. For example, vorticity zeta and streamfunction Psi are related by zeta = nabla^2Psi in the barotropic vorticity model. Hence, in spectral space this is equivalent for every spectral mode of degree l and order m to","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"zeta_lm = frac-l(l+1)R^2Psi_lm","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"This can be easily inverted to obtain the stream function Psi from vorticity zeta instead. In order to avoid division by zero, we set Psi_00 here, given that the stream function is only defined up to a constant anyway.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"beginaligned\nPsi_lm = fracR^2-l(l+1)zeta_lm quad foralllm 0\nPsi_00 = 0\nendaligned","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"See also Horizontal diffusion and Normalization of diffusion.","category":"page"},{"location":"spectral_transform/#U,V-from-vorticity-and-divergence","page":"Spherical harmonic transform","title":"U,V from vorticity and divergence","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"After having discussed the zonal and meridional derivatives with spherical harmonics as well as the Laplace operator, we can derive the conversion from vorticity zeta and divergence D (which are prognostic variables) to U=ucostheta V=vcostheta. Both are linear operations that act either solely on a given harmonic (the zonal gradient and the Laplace operator) or are linear combinations between one lower and one higher degree l (the meridional gradient). It is therefore computationally more efficient to compute UV directly from zetaD instead of calculating stream function and velocity potential first. In total we have","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"beginaligned\nU_lm = -fraciml(l+1)(RD)_lm + fracepsilon_l+1ml+1(Rzeta)_l+1m - fracepsilon_lml(Rzeta)_l-1m \nV_lm = -fraciml(l+1)(Rzeta)_lm - fracepsilon_l+1ml+1(RD)_l+1m + fracepsilon_lml(RD)_l-1m \nendaligned","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"We have moved the scaling with the radius R directly into zetaD as further described in Radius scaling.","category":"page"},{"location":"spectral_transform/#References","page":"Spherical harmonic transform","title":"References","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[1]: Justin Willmert, 2020. Introduction to Associated Legendre Polynomials (Legendre.jl Series, Part I)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[2]: Justin Willmert, 2020. Calculating Legendre Polynomials (Legendre.jl Series, Part II)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[3]: Justin Willmert, 2020. Pre-normalizing Legendre Polynomials (Legendre.jl Series, Part III)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[4]: Justin Willmert, 2020. Maintaining numerical accuracy in the Legendre recurrences (Legendre.jl Series, Part IV)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[5]: Justin Willmert, 2020. Introducing Legendre.jl (Legendre.jl Series, Part V)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[6]: Justin Willmert, 2020. Numerical Accuracy of the Spherical Harmonic Recurrence Coefficient (Legendre.jl Series Addendum)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[7]: Justin Willmert, 2020. Notes on Calculating the Spherical Harmonics","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[8]: Justin Willmert, 2022. More Notes on Calculating the Spherical Harmonics: Analysis of maps to harmonic coefficients","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[9]: David Randall, 2021. An Introduction to Numerical Modeling of the Atmosphere, Chapter 22.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[10]: Dale Durran, 2010. Numerical Methods for Fluid Dynamics, Springer. In particular section 6.2, 6.4.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[11]: Geophysical Fluid Dynamics Laboratory, The barotropic vorticity equation.","category":"page"},{"location":"ringgrids/#RingGrids","page":"Submodule: RingGrids","title":"RingGrids","text":"","category":"section"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"RingGrids is a submodule that has been developed for SpeedyWeather.jl which is technically independent (SpeedyWeather.jl however imports it and so does SpeedyTransforms) and can also be used without running simulations. It is just not put into its own respective repository.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"RingGrids defines several iso-latitude grids, which are mathematically described in the section on Grids. In brief, they include the regular latitude-longitude grids (here called FullClenshawGrid) as well as grids which latitudes are shifted to the Gaussian latitudes and reduced grids, meaning that they have a decreasing number of longitudinal points towards the poles to be more equal-area than full grids.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"RingGrids defines and exports the following grids:","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"full grids: FullClenshawGrid, FullGaussianGrid, FullHEALPix, and FullOctaHEALPix\nreduced grids: OctahedralGaussianGrid, OctahedralClenshawGrid, OctaHEALPixGrid and HEALPixGrid","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"The following explanation of how to use these can be mostly applied to any of them, however, there are certain functions that are not defined, e.g. the full grids can be trivially converted to a Matrix but not the OctahedralGaussianGrid.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"note: What is a ring?\nWe use the term ring, short for iso-latitude ring, to refer to a sequence of grid points that all share the same latitude. A latitude-longitude grid is a ring grid, as it organises its grid-points into rings. However, other grids, like the cubed-sphere are not based on iso-latitude rings. SpeedyWeather.jl only works with ring grids because its a requirement for the Spherical Harmonic Transform to be efficient. See Grids.","category":"page"},{"location":"ringgrids/#Creating-data-on-a-RingGrid","page":"Submodule: RingGrids","title":"Creating data on a RingGrid","text":"","category":"section"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"Every grid in RingGrids has a grid.data field, which is a vector containing the data on the grid. The grid points are unravelled west to east then north to south, meaning that it starts at 90˚N and 0˚E then walks eastward for 360˚ before jumping on the next latitude ring further south, this way circling around the sphere till reaching the south pole. This may also be called ring order.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"Data in a Matrix which follows this ring order can be put on a FullGaussianGrid like so","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"using SpeedyWeather.RingGrids\nmap = randn(Float32,8,4)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"grid = FullGaussianGrid(map)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"A full Gaussian grid has always 2N x N grid points, but a FullClenshawGrid has 2N x N-1, if those dimensions don't match, the creation will throw an error. To reobtain the data from a grid, you can access its data field which returns a normal Vector","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"grid.data","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"Which can be reshaped to reobtain map from above. Alternatively you can Matrix(grid) to do this in one step","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"map == Matrix(FullGaussianGrid(map))","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"You can also use zeros,ones,rand,randn to create a grid, whereby nlat_half, i.e. the number of latitude rings on one hemisphere, Equator included, is used as a resolution parameter and here as a second argument.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"nlat_half = 4\ngrid = randn(OctahedralGaussianGrid{Float16},nlat_half)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"and any element type T can be used for OctahedralGaussianGrid{T} and similar for other grid types.","category":"page"},{"location":"ringgrids/#Visualising-RingGrid-data","page":"Submodule: RingGrids","title":"Visualising RingGrid data","text":"","category":"section"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"As only the full grids can be reshaped into a matrix, the underyling data structure of any AbstractGrid is a vector. As shown in the examples above, one can therefore inspect the data as if it was a vector. But as that data has, through its <:AbstractGrid type, all the geometric information available to plot it on a map, RingGrids also exports plot function, based on UnicodePlots' heatmap.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"nlat_half = 24\ngrid = randn(OctahedralGaussianGrid,nlat_half)\nplot(grid)","category":"page"},{"location":"ringgrids/#Indexing-RingGrids","page":"Submodule: RingGrids","title":"Indexing RingGrids","text":"","category":"section"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"All RingGrids have a single index ij which follows the ring order. While this is obviously not super exciting here are some examples how to make better use of the information that the data sits on a grid.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"We obtain the latitudes of the rings of a grid by calling get_latd (get_lond is only defined for full grids, or use get_latdlonds for latitudes, longitudes per grid point not per ring)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"grid = randn(OctahedralClenshawGrid,5)\nlatd = get_latd(grid)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"Now we could calculate Coriolis and add it on the grid as follows","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"rotation = 7.29e-5 # angular frequency of Earth's rotation [rad/s]\ncoriolis = 2rotation*sind.(latd) # vector of coriolis parameters per latitude ring\n\nrings = eachring(grid)\nfor (j,ring) in enumerate(rings)\n f = coriolis[j]\n for ij in ring\n grid[ij] += f\n end\nend","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"eachring creates a vector of UnitRange indices, such that we can loop over the ring index j (j=1 being closest to the North pole) pull the coriolis parameter at that latitude and then loop over all in-ring indices i (changing longitudes) to do something on the grid. Something similar can be done to scale/unscale with the cosine of latitude for example. We can always loop over all grid-points like so","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"for ij in eachgridpoint(grid)\n grid[ij]\nend","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"or use eachindex instead.","category":"page"},{"location":"ringgrids/#Interpolation-on-RingGrids","page":"Submodule: RingGrids","title":"Interpolation on RingGrids","text":"","category":"section"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"In most cases we will want to use RingGrids so that our data directly comes with the geometric information of where the grid-point is one the sphere. We have seen how to use get_latd, get_lond, ... for that above. This information generally can also be used to interpolate our data from grid to another or to request an interpolated value on some coordinates. Using our data on grid which is an OctahedralGaussianGrid from above we can use the interpolate function to get it onto a FullGaussianGrid (or any other grid for purpose)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"grid = randn(OctahedralGaussianGrid{Float32},4)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"interpolate(FullGaussianGrid,grid)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"By default this will linearly interpolate (it's an Anvil interpolator, see below) onto a grid with the same nlat_half, but we can also coarse-grain or fine-grain by specifying nlat_half directly as 2nd argument","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"interpolate(FullGaussianGrid,6,grid)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"So we got from an 8-ring OctahedralGaussianGrid{Float16} to a 12-ring FullGaussianGrid{Float64}, so it did a conversion from Float16 to Float64 on the fly too, because the default precision is Float64 unless specified. interpolate(FullGaussianGrid{Float16},6,grid) would have interpolated onto a grid with element type Float16.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"One can also interpolate onto a give cordinate ˚N, ˚E like so","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"interpolate(30.0,10.0,grid)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"we interpolated the data from grid onto 30˚N, 10˚E. To do this simultaneously for many coordinates they can be packed into a vector too","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"interpolate([30.0,40.0,50.0],[10.0,10.0,10.0],grid)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"which returns the data on grid at 30˚N, 40˚N, 50˚N, and 10˚E respectively. Note how the interpolation here retains the element type of grid.","category":"page"},{"location":"ringgrids/#Performance-for-RingGrid-interpolation","page":"Submodule: RingGrids","title":"Performance for RingGrid interpolation","text":"","category":"section"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"Every time an interpolation like interpolate(30.0,10.0,grid) is called, several things happen, which are important to understand to know how to get the fastest interpolation out of this module in a given situation. Under the hood an interpolation takes three arguments","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"output vector\ninput grid\ninterpolator","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"The output vector is just an array into which the interpolated data is written, providing this prevents unnecessary allocation of memory in case the destination array of the interpolation already exists. The input grid contains the data which is subject to interpolation, it must come on a ring grid, however, its coordinate information is actually already in the interpolator. The interpolator knows about the geometry of the grid the data is coming on and the coordinates it is supposed to interpolate onto. It has therefore precalculated the indices that are needed to access the right data on the input grid and the weights it needs to apply in the actual interplation operation. The only thing it does not know is the actual data values of that grid. So in the case you want to interpolate from grid A to grid B many times, you can just reuse the same interpolator. If you want to change the coordinates of the output grid but its total number of points remain constants then you can update the locator inside the interpolator and only else you will need to create a new interpolator. Let's look at this in practice. Say we have two grids an want to interpolate between them","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"grid_in = rand(HEALPixGrid,4)\ngrid_out = zeros(FullClenshawGrid,6)\ninterp = RingGrids.interpolator(grid_out,grid_in)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"Now we have created an interpolator interp which knows about the geometry where to interpolate from and the coordinates there to interpolate to. It is also initialized, meaning it has precomputed the indices to of grid_in that are supposed to be used. It just does not know about the data of grid_in (and neither of grid_out which will be overwritten anyway). We can now do","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"interpolate!(grid_out,grid_in,interp)\ngrid_out","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"which is identical to interpolate(grid_out,grid_in) but you can reuse interp for other data. The interpolation can also handle various element types (the interpolator interp does not have to be updated for this either)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"grid_out = zeros(FullClenshawGrid{Float16},6);\ninterpolate!(grid_out,grid_in,interp)\ngrid_out","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"and we have converted data from a HEALPixGrid{Float64} (Float64 is always default if not specified) to a FullClenshawGrid{Float16} including the type conversion Float64-Float16 on the fly. Technically there are three data types and their combinations possible: The input data will come with a type, the output array has an element type and the interpolator has precomputed weights with a given type. Say we want to go from Float16 data on an OctahedralGaussianGrid to Float16 on a FullClenshawGrid but using Float32 precision for the interpolation itself, we would do this by","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"grid_in = randn(OctahedralGaussianGrid{Float16},24)\ngrid_out = zeros(FullClenshawGrid{Float16},24)\ninterp = RingGrids.interpolator(Float32,grid_out,grid_in)\ninterpolate!(grid_out,grid_in,interp)\ngrid_out","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"As a last example we want to illustrate a situation where we would always want to interplate onto 10 coordinates, but their locations may change. In order to avoid recreating an interpolator object we would do (AnvilInterpolator is described in Anvil interpolator)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"npoints = 10 # number of coordinates to interpolate onto\ninterp = AnvilInterpolator(Float32,HEALPixGrid,24,npoints)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"with the first argument being the number format used during interpolation, then the input grid type, its resolution in terms of nlat_half and then the number of points to interpolate onto. However, interp is not yet initialized as it does not know about the destination coordinates yet. Let's define them, but note that we already decided there's only 10 of them above.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"latds = collect(0.0:5.0:45.0)\nlonds = collect(-10.0:2.0:8.0)\nnothing # hide","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"now we can update the locator inside our interpolator as follows","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"RingGrids.update_locator!(interp,latds,londs)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"With data matching the input from above, a nlat_half=24 HEALPixGrid, and allocate 10-element output vector","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"output_vec = zeros(10)\ngrid_input = rand(HEALPixGrid,24)\nnothing # hide","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"we can use the interpolator as follows","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"interpolate!(output_vec,grid_input,interp)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"which is the approximately the same as doing it directly without creating an interpolator first and updating its locator","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"interpolate(latds,londs,grid_input)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"but allows for a reuse of the interpolator. Note that the two output arrays are not exactly identical because we manually set our interpolator interp to use Float32 for the interplation whereas the default is Float64.","category":"page"},{"location":"ringgrids/#Anvil-interpolator","page":"Submodule: RingGrids","title":"Anvil interpolator","text":"","category":"section"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"Currently the only interpolator implemented is a 4-point bilinear interpolator, which schematically works as follows. Anvil interpolation is the bilinear average of a,b,c,d which are values at grid points in an anvil-shaped configuration at location x, which is denoted by Δab,Δcd,Δy, the fraction of distances between a-b,c-d, and ab-cd, respectively. Note that a,c and b,d do not necessarily share the same longitude/x-coordinate.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":" 0..............1 # fraction of distance Δab between a,b\n |< Δab >|\n\n0^ a -------- o - b # anvil-shaped average of a,b,c,d at location x\n.Δy |\n. |\n.v x \n. |\n1 c ------ o ---- d\n\n |< Δcd >|\n 0...............1 # fraction of distance Δcd between c,d\n\n^ fraction of distance Δy between a-b and c-d.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"This interpolation is chosen as by definiton of the ring grids, a and b share the same latitude, so do c and d, but the longitudes can be different for all four, a,b,c,d.","category":"page"},{"location":"ringgrids/#Function-index","page":"Submodule: RingGrids","title":"Function index","text":"","category":"section"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"RingGrids.each_index_in_ring\nRingGrids.eachgridpoint\nRingGrids.eachring\nRingGrids.whichring\nRingGrids.get_nlons","category":"page"},{"location":"ringgrids/#SpeedyWeather.RingGrids.each_index_in_ring","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.each_index_in_ring","text":"i = each_index_in_ring(grid,j)\n\nUnitRange i to access data on grid grid on ring j.\n\n\n\n\n\n","category":"function"},{"location":"ringgrids/#SpeedyWeather.RingGrids.eachgridpoint","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.eachgridpoint","text":"ijs = eachgridpoint(grid)\n\nUnitRange ijs to access each grid point on grid grid.\n\n\n\n\n\n","category":"function"},{"location":"ringgrids/#SpeedyWeather.RingGrids.eachring","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.eachring","text":"eachring(grid::SpeedyWeather.RingGrids.AbstractGrid) -> Any\n\n\nVector{UnitRange} rings to loop over every ring of grid grid and then each grid point per ring. To be used like\n\nrings = eachring(grid)\nfor ring in rings\n for ij in ring\n grid[ij]\n\n\n\n\n\neachring(\n grid1::SpeedyWeather.RingGrids.AbstractGrid,\n grids::Grid<:SpeedyWeather.RingGrids.AbstractGrid...\n) -> Any\n\n\nSame as eachring(grid) but performs a bounds check to assess that all grids in grids are of same size.\n\n\n\n\n\n","category":"function"},{"location":"ringgrids/#SpeedyWeather.RingGrids.whichring","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.whichring","text":"whichring(\n ij::Integer,\n rings::Vector{UnitRange{Int64}}\n) -> Int64\n\n\nObtain ring index j from gridpoint ij and Vector{UnitRange} describing rind indices as obtained from eachring(::Grid)\n\n\n\n\n\n","category":"function"},{"location":"ringgrids/#SpeedyWeather.RingGrids.get_nlons","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.get_nlons","text":"get_nlons(\n Grid::Type{<:SpeedyWeather.RingGrids.AbstractGrid},\n nlat_half::Integer;\n both_hemispheres\n) -> Any\n\n\nReturns a vector nlons for the number of longitude points per latitude ring, north to south. Provide grid Grid and its resolution parameter nlat_half. For both_hemisphere==false only the northern hemisphere (incl Equator) is returned.\n\n\n\n\n\n","category":"function"},{"location":"#SpeedyWeather.jl-documentation","page":"Home","title":"SpeedyWeather.jl documentation","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Welcome to the documentation for SpeedyWeather.jl a global atmospheric circulation model with simple parametrizations to represent physical processes such as clouds, precipitation and radiation.","category":"page"},{"location":"#Overview","page":"Home","title":"Overview","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"SpeedyWeather.jl is a global spectral model that uses a spherical harmonic transform to perform some calculations in spectral space (time integration, gradients, linear terms) and some in grid-point space (advection, non-linear terms, parameterizations). The prognostic variables used are vorticity, divergence, absolute temperature, logarithm of surface pressure and specific humidity. The time stepping uses a leapfrog scheme with additional filters and a semi-implicit formulation for gravity waves. The default resolution is T31 (96x48 grid points on a regular Gaussian grid, about 400km at the Equator) and 8 vertical levels.","category":"page"},{"location":"","page":"Home","title":"Home","text":"Simple parameterizations are used to represent the physical processes convection, large-scale condensation, clouds, short-wave radiation, long-waves radiation, surface fluxes of momentum and energy, and vertical diffusion.","category":"page"},{"location":"#Manual-outline","page":"Home","title":"Manual outline","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"See the following pages of the documentation for more details","category":"page"},{"location":"","page":"Home","title":"Home","text":"Installation\nHow to run SpeedyWeather.jl\nSpherical harmonic transform\nGrids\nDynamical core\nParametrizations\nExtending SpeedyWeather","category":"page"},{"location":"","page":"Home","title":"Home","text":"and the submodules","category":"page"},{"location":"","page":"Home","title":"Home","text":"RingGrids and their interpolation \nLowerTriangularMatrices \nSpeedyTransforms","category":"page"},{"location":"","page":"Home","title":"Home","text":"and the original documentation by Molteni and Kucharski.","category":"page"},{"location":"#Developers","page":"Home","title":"Developers","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"The development of SpeedyWeather.jl is lead by Milan Klöwer and current and past contributors include","category":"page"},{"location":"","page":"Home","title":"Home","text":"Tom Kimpson\nAlistair White\nMaximilian Gelbrecht\nDavid Meyer\nDaisuke Hotta\nNavid Constantinou","category":"page"},{"location":"","page":"Home","title":"Home","text":"Any contributions are always welcome!","category":"page"},{"location":"#Funding","page":"Home","title":"Funding","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"MK received funding by the European Research Council under Horizon 2020 within the ITHACA project, grant agreement number 741112 from 2021-2022. Since 2023 this project is also funded by the National Science Foundation NSF.","category":"page"},{"location":"time_integration/#Time-integration","page":"Time integration","title":"Time integration","text":"","category":"section"},{"location":"time_integration/","page":"Time integration","title":"Time integration","text":"SpeedyWeather.jl uses a leapfrog time scheme with a Robert's and William's filter to dampen the computational mode and achieve 3rd order accuracy.","category":"page"},{"location":"time_integration/#Oscillation-equation","page":"Time integration","title":"Oscillation equation","text":"","category":"section"},{"location":"time_integration/","page":"Time integration","title":"Time integration","text":"fracdFdt = iomega F","category":"page"},{"location":"time_integration/#Implementation-details","page":"Time integration","title":"Implementation details","text":"","category":"section"}] +} diff --git a/previews/PR349/siteinfo.js b/previews/PR349/siteinfo.js new file mode 100644 index 000000000..b82ce3d08 --- /dev/null +++ b/previews/PR349/siteinfo.js @@ -0,0 +1 @@ +var DOCUMENTER_CURRENT_VERSION = "previews/PR349"; diff --git a/previews/PR349/spectral_transform/index.html b/previews/PR349/spectral_transform/index.html new file mode 100644 index 000000000..893a97e08 --- /dev/null +++ b/previews/PR349/spectral_transform/index.html @@ -0,0 +1,45 @@ + +Spherical harmonic transform · SpeedyWeather.jl

          Spherical Harmonic Transform

          The following sections outline the implementation of the spherical harmonic transform (in short spectral transform) between the coefficients of the spherical harmonics (the spectral space) and the grid space on a longitude-latitude regular Gaussian grid.

          Inspiration

          The spectral transform implemented by SpeedyWeather.jl follows largely Justin Willmert's CMB.jl package and makes use of AssociatedLegendrePolynomials.jl and FFTW.jl (for Float32/64) or GenericFFT.jl (for generic) for the Fourier transform. Justin described his work in a Blog series [1][2][3][4][5][6][7][8].

          Spherical harmonics

          The spherical harmonics $Y_{lm}$ of degree $l$ and order $m$ over the longitude $\phi = (0,2\pi)$ and colatitudes $\theta = (-\pi/2,\pi/2)$, are

          \[Y_{lm}(\phi, \theta) = \lambda_l^m(\sin\theta) e^{im\phi}\]

          with $\lambda_l^m$ being the pre-normalized associated Legendre polynomials, and $e^{im\phi}$ are the complex exponentials (the Fourier modes). Together they form a set of orthogonal basis functions on the sphere. For an interactive visualisation of the spherical harmonics, see here.

          Latitudes versus colatitudes

          The implementations of the spherical transforms in SpeedyWeather.jl use colatitudes $\theta = (0,\pi)$ (0 at the north pole) but the dynamical core uses latitudes $\theta = (-\pi/2,\pi/2)$ ($\pi/2$ at the north pole). However, all arrays are always sorted north to south such that [i,1] will access the northern-most grid points. Note: We may also use latitudes in the spherical harmonic transform in the future for consistency.

          Synthesis (spectral to grid)

          The synthesis (or inverse transform) takes the spectral coefficients $a_{lm}$ and transforms them to grid-point values $f(\phi,\theta)$ (for the sake of simplicity first regarded as continuous). The synthesis is a linear combination of the spherical harmonics $Y_{lm}$ with non-zero coefficients.

          \[f(\phi,\theta) = \sum_{l=0}^{\infty} \sum_{m=-l}^l a_{lm} Y_{lm}(\phi,\theta)\]

          We obtain an approximation with a finite set of $a_{l,m}$ by truncating the series after $l = l_{max}$.

          Analysis (grid to spectral)

          Starting in grid-point space we can transform a field $f(\lambda,\theta)$ into the spectral space of the spherical harmonics by

          \[a_{l,m} = \int_0^{2\pi} \int_{-\tfrac{\pi}{2}}^\tfrac{\pi}{2} f(\lambda,\theta) Y_{l,m}(\lambda,\theta) \cos \theta d\theta d\lambda\]

          This integral has to be discretized to when grid-point values $f(\lambda_i,\theta_i)$ are used. For more details, see [7],[8].

          Spectral packing

          Spectral packing is the way how the coefficients $a_{lm}$ of the spherical harmonics of a given spectral field are stored in an array. SpeedyWeather.jl uses the conventional spectral packing of degree $l$ and order $m$ as illustrated in the following image (Cyp, CC BY-SA 3.0, via Wikimedia Commons)

          Every row represents an order $l \geq 0$, starting from $l=0$ at the top. Every column represents an order $m \geq 0$, starting from $m=0$ on the left. The coefficients of these spherical harmonics are directly mapped into a matrix $a_{lm}$ as

          $m$
          $l$$a_{00}$
          $a_{10}$$a_{11}$
          $a_{20}$$a_{12}$$a_{22}$
          $a_{30}$$a_{13}$$a_{23}$$a_{33}$

          which is consistently extended for higher degrees and orders. Consequently, all spectral fields are lower-triangular matrices with complex entries. The upper triangle excluding the diagonal explicitly stores zeros. Note that internally vector fields include an additional degree, such that $l_{max} = m_{max} + 1$ (see Gradients in spherical coordinates for more information). The harmonics with $a_{l0}$ (the first column) are also called zonal harmonics as they are constant with longitude $\phi$. The harmonics with $a_{ll}$ (the main diagonal) are also called sectoral harmonics as they essentially split the sphere into $2l$ sectors in longitude $\phi$ without a zero-crossing in latitude.

          Array indices

          For a spectral field alms note that due to Julia's 1-based indexing the coefficient $a_{lm}$ is obtained via alms[l+1,m+1].

          Fortran speedy does not use the same spectral packing as SpeedyWeather.jl. The alternative packing $l',m'$ therein uses $l'=m$ and $m'=l-m$ as summarized in the following table.

          degree $l$order $m$$l'=m$$m'=l-m$
          0000
          1001
          1110
          2002
          2111
          2220
          3003
          ............

          This alternative packing uses the top-left triangle of a coefficient matrix, and the degrees and orders from above are stored at the following indices

          $m'$
          $l'$$a_{00}$$a_{10}$$a_{20}$$a_{30}$
          $a_{11}$$a_{21}$$a_{31}$
          $a_{22}$$a_{32}$
          $a_{33}$

          This spectral packing is not used in SpeedyWeather.jl but illustrated here for completeness and comparison with Fortran-speedy.

          Example transforms

          julia> using SpeedyWeather
          +julia> alms = zeros(ComplexF64,3,3)    # spectral coefficients
          +julia> alms[2,2] = 1                   # only l=1,m=1 harmonic
          +julia> map = gridded(alms)             # convert to grid space
          +8×4 Matrix{Float64}:
          + -0.324541  -0.600363  -0.600363  -0.324541
          + -0.134429  -0.248678  -0.248678  -0.134429
          +  0.134429   0.248678   0.248678   0.134429
          +  0.324541   0.600363   0.600363   0.324541
          +  0.324541   0.600363   0.600363   0.324541
          +  0.134429   0.248678   0.248678   0.134429
          + -0.134429  -0.248678  -0.248678  -0.134429
          + -0.324541  -0.600363  -0.600363  -0.324541
          + 
          +julia> spectral(map)                   # back to spectral space
          +3×3 Matrix{ComplexF64}:
          + 0.0+0.0im  0.0+0.0im          0.0+0.0im
          + 0.0+0.0im  1.0+3.60727e-17im  0.0+0.0im
          + 0.0+0.0im  0.0+0.0im          0.0+0.0im

          and we have successfully reobtained the $l=m=1$ spherical harmonic.

          Available horizontal resolutions

          SpeedyWeather.jl uses triangular truncation such that only spherical harmonics with $l \leq l_{max}$ and $|m| \leq m_{max}$ are explicitly represented. This is usually described as $Tm_{max}$, with $l_{max} = m_{max}$ (although in vector quantities require one more degree $l$ in the recursion relation of meridional gradients). For example, T31 is the spectral resolution with $l_{max} = m_{max} = 31$. Note that the degree $l$ and order $m$ are mathematically 0-based, such that the corresponding coefficient matrix is of size 32x32.

          Using triangular truncation[9], there are constraints on the corresponding grid resolution. Let nlon, nlat be the number of longitudes, latitudes on a regular Gaussian grid. Then spectral and grid resolution have to be chosen such that

          • $nlon \geq 3l_{max}+1$
          • $nlat \geq (3l_{max}+1)/2$

          In general, we choose $nlon = 2nlat$, and ideally $nlon$ is easily Fourier-transformable, e.g. $nlon = 2^i3^j5^k$ with some integers $i,j,k \geq 0$. SpeedyWeather.jl is tested at the following horizontal resolutions, with $\Delta x = \tfrac{2\pi R}{nlon}$ as the approximate grid spacing at the Equator

          $l_{max}$nlonnlat$\Delta x$
          31 (default)9648400 km
          4212864300 km
          85256128160 km
          17051225680 km
          341102451240 km
          6822048102420 km

          Choosing trunc as argument in run_speedy will automatically choose nlon,nlat as presented in the table. Other common choices are T63 (192x96), T127 (384x192), T255 (768x384), T511 (1536x768), among others.

          Derivatives in spherical coordinates

          Horizontal gradients in spherical coordinates are defined for a scalar field $A$ and the latitudes $\theta$ and longitudes $\lambda$ as

          \[\nabla A = \left(\frac{1}{R\cos\theta}\frac{\partial A}{\partial \lambda}, \frac{1}{R}\frac{\partial A}{\partial \theta} \right).\]

          However, the divergence of a vector field $\mathbf{u} = (u,v)$ includes additional $\cos(\theta)$ scalings

          \[\nabla \cdot \mathbf{u} = \frac{1}{R\cos\theta}\frac{\partial u}{\partial \lambda} + +\frac{1}{R\cos\theta}\frac{\partial (v \cos\theta)}{\partial \theta},\]

          and similar for the curl

          \[\nabla \times \mathbf{u} = \frac{1}{R\cos\theta}\frac{\partial v}{\partial \lambda} - +\frac{1}{R\cos\theta}\frac{\partial (u \cos\theta)}{\partial \theta}.\]

          The radius of the sphere (i.e. Earth) is $R$. The zonal gradient scales with $1/\cos(\theta)$ as the longitudes converge towards the poles (note that $\theta$ describes latitudes here, defintions using colatitudes replace the $\cos$ with a $\sin$.)

          Starting with a spectral field of vorticity $\zeta$ and divergence $\mathcal{D}$ one can obtain stream function $\Psi$ and velocity potential $\Phi$ by inverting the Laplace operator $\nabla^2$:

          \[\Psi = \nabla^{-2}\zeta, \quad \Phi = \nabla^{-2}\mathcal{D}.\]

          The velocities $u,v$ are then obtained from $(u,v) = \nabla^\bot\Psi + \nabla\Phi$ following the defintion from above and $\nabla^\bot = (-R^{-1}\partial_\theta, (R\cos\theta)^{-1}\partial_\lambda)$

          \[\begin{aligned} +u &= -\frac{1}{R}\partial_\theta\Psi + \frac{1}{R\cos\theta}\partial_\lambda\Phi \\ +v &= +\frac{1}{R}\partial_\theta\Phi + \frac{1}{R\cos\theta}\partial_\lambda\Psi. +\end{aligned}\]

          Alternatively, we can use the velocities $U = u\cos\theta, V = v\cos\theta$, which we do as the meridional gradient for spherical harmonics is easier implemented with a $\cos\theta$-scaling included, and because the divergence and curl in spherical coordinates evaluates the meridional gradient with $U,V$ and not $u,v$. From $u,v$ we can return to $\zeta, \mathcal{D}$ via

          \[\begin{aligned} +\zeta &= \frac{1}{R\cos\theta}\partial_\lambda v - \frac{1}{R\cos\theta}\partial_\theta (u \cos\theta) \\ +\mathcal{D} &= \frac{1}{R\cos\theta}\partial_\lambda u + \frac{1}{R\cos\theta}\partial_\theta (v \cos\theta). +\end{aligned}\]

          Equivalently, we have

          \[\begin{aligned} +U &= -\frac{\cos\theta}{R}\partial_\theta\Psi + \frac{1}{R}\partial_\lambda\Phi \\ +V &= +\frac{\cos\theta}{R}\partial_\theta\Phi + \frac{1}{R}\partial_\lambda\Psi \\ +\zeta &= \frac{1}{R}\partial_\lambda \left( \frac{V}{\cos^2\theta} \right) - +\frac{\cos\theta}{R}\partial_\theta \left( \frac{U}{\cos^2\theta} \right) \\ +\mathcal{D} &= \frac{1}{R}\partial_\lambda \left( \frac{U}{\cos^2\theta} \right) + +\frac{\cos\theta}{R}\partial_\theta \left( \frac{V}{\cos^2\theta} \right). +\end{aligned}\]

          which is a more convenient formulation as required $\cos\theta$ scalings are reduced to a minimum. The remaining $(U,V)*\cos^{-2}\theta$ are done in grid-point space and usually in combination with other operations like the computation of the vorticity flux. But also note that SpeedyWeather.jl scales the equations with the radius R (see Radius scaling) such that the divisions by R drop out too. As described in Meridional derivative, it is more convenient to implement $\cos\theta \partial_\theta$ via a recursion relation for the Legendre polynomials than $\partial_\theta$ directly. How the operators $\nabla, \nabla \times, \nabla \cdot$ can be implemented with spherical harmonics is presented in the following sections.

          Zonal derivative

          The zonal derivative of a scalar field $\Psi$ in spectral space is the zonal derivative of all its respective spherical harmonics $\Psi_{lm}(\phi,\theta)$ (now we use $\phi$ for longitudes to avoid confusion with the Legendre polynomials $\lambda_{lm}$)

          \[v_{lm} = \frac{1}{R \cos(\theta)} \frac{\partial}{\partial \phi} \left( \lambda_l^m(\cos\theta) e^{im\phi} \right) = +\frac{im}{R \cos(\theta)} \lambda_l^m(\cos\theta) e^{im\phi} = \frac{im}{R \cos(\theta)} \Psi_{lm}\]

          So for every spectral harmonic, $\cos(\theta)v_{lm}$ is obtained from $\Psi_{lm}$ via a multiplication with $im/R$. Unscaling the $\cos(\theta)$-factor is done after transforming the spectral coefficients $v_{lm}$ into grid-point space. As discussed in Radius scaling, SpeedyWeather.jl scales the stream function as $\tilde{\Psi} = R^{-1}\Psi$ such that the division by radius $R$ in the gradients can be omitted. The zonal derivative becomes therefore effectively for each spherical harmonic a scaling with its (imaginary) order $im$. The spherical harmonics are essentially just a Fourier transform in zonal direction and the derivative a multiplication with the respective wave number $m$ times imaginary $i$.

          Meridional derivative

          The meridioinal derivative of the spherical harmonics is a derivative of the Legendre polynomials for which the following recursion relation applies[10],[11]

          \[\cos\theta \frac{dP_{l,m}}{d\theta} = -l\epsilon_{l+1,m}P_{l+1,m} + (l+1)\epsilon_{l,m}P_{l-1,m}.\]

          with recursion factors

          \[\epsilon_{l,m} = \sqrt{\frac{l^2-m^2}{4l^2-1}}\]

          In the following we use the example of obtaining the zonal velocity $u$ from the stream function $\Psi$, which is through the negative meridional gradient. For the meridional derivative itself the leading minus sign has to be omitted. Starting with the spectral expansion

          \[\Psi(\lambda,\theta) = \sum_{l,m}\Psi_{l,m}P_{l,m}(\sin\theta)e^{im\lambda}\]

          we multiply with $-R^{-1}\cos\theta\partial_\theta$ to obtain

          \[\cos\theta\left(-\frac{1}{R}\partial_\theta\Psi \right) = -\frac{1}{R}\sum_{l,m}\Psi_{l,m}e^{im\lambda}\cos\theta\partial_\theta P_{l,m}\]

          at which point the recursion from above can be applied. Collecting terms proportional to $P_{l,m}$ then yields

          \[(\cos(\theta)u)_{l,m} = -\frac{1}{R}(-(l-1)\epsilon_{l,m}\Psi_{l-1,m} + (l+2)\epsilon_{l+1,m}\Psi_{l+1,m})\]

          To obtain the coefficient of each spherical harmonic $l,m$ of the meridional gradient of a spectral field, two coefficients at $l-1,m$ and $l+1,m$ have to be combined. This means that the coefficient of a gradient $((\cos\theta) u)_{lm}$ is a linear combination of the coefficients of one higher and one lower degree $\Psi_{l+1,m},\Psi_{l-1,m}$. As the coefficient $\Psi_{lm}$ with $m<l$ are zero, the sectoral harmonics ($l=m$) of the gradients are obtained from the first off-diagonal only. However, the $l=l_{max}$ harmonics of the gradients require the $l_{max}-1$ as well as the $l_{max}+1$ harmonics. In SpeedyWeather.jl vector quantitie like $u,v$ use therefore one more meridional mode than scalar quantities such as vorticity $\zeta$ or stream function $\Psi$. The meridional derivative in SpeedyWeather.jl also omits the $1/R$-scaling as explained for the Zonal derivative and in Radius scaling.

          Divergence and curl in spherical harmonics

          The meridional gradient as described above can be applied to scalars, such as $\Psi$ and $\Phi$ in the conversion to velocities $(u,v) = \nabla^\bot\Psi + \nabla\Phi$, however, the operators curl $\nabla \times$ and divergence $\nabla \cdot$ in spherical coordinates involve a $\cos\theta$ scaling before the meridional gradient is applied. How to translate this to spectral coefficients has to be derived separately[10],[11].

          The spectral transform of vorticity $\zeta$ is

          \[\zeta_{l,m} = \frac{1}{2\pi}\int_{-\tfrac{\pi}{2}}^\tfrac{\pi}{2}\int_0^{2\pi} \zeta(\lambda,\theta) P_{l,m}(\sin\theta) e^{im\lambda} d\lambda \cos\theta d\theta\]

          Given that $R\zeta = \cos^{-1}\partial_\lambda v - \cos^{-1}\partial_\theta (u \cos\theta)$, we therefore have to evaluate a meridional integral of the form

          \[\int P_{l,m} \frac{1}{\cos \theta} \partial_\theta(u \cos\theta)) \cos \theta d\theta\]

          which can be solved through integration by parts. As $u\cos\theta = 0$ at $\theta = \pm \tfrac{\pi}{2}$ only the integral

          \[= -\int \partial_\theta P_{l,m} (u \cos\theta) d\theta = -\int \cos\theta \partial_\theta P_{l,m} (\frac{u}{\cos\theta}) \cos\theta d\theta\]

          remains. Inserting the recurrence relation from the Meridional derivative turns this into

          \[= -\int \left(-l \epsilon_{l+1,m}P_{l+1,m} + (l+1)\epsilon_{l,m} P_{l-1,m} \right) (\frac{u}{\cos\theta}) \cos \theta d\theta\]

          Now we expand $(\tfrac{u}{\cos\theta})$ but only the $l,m$ harmonic will project onto$P_{l,m}$. Let $u^* = u\cos^{-1}\theta, v^* = v\cos^{-1}\theta$ we then have in total

          \[\begin{aligned} +R\zeta_{l,m} &= imv^*_{l,m} + (l+1)\epsilon_{l,m}u^*_{l-1,m} - l\epsilon_{l+1,m}u^*_{l+1,m} \\ +RD_{l,m} &= imu^*_{l,m} - (l+1)\epsilon_{l,m}v^*_{l-1,m} + l\epsilon_{l+1,m}v^*_{l+1,m} \\ +\end{aligned}\]

          And the divergence $D$ is similar, but $(u,v) \to (-v,u)$. We have moved the scaling with the radius $R$ directly into $\zeta,D$ as further described in Radius scaling.

          Laplacian

          The spectral Laplacian is easily applied to the coefficients $\Psi_{lm}$ of a spectral field as the spherical harmonics are eigenfunctions of the Laplace operator $\nabla^2$ in spherical coordinates with eigenvalues $-l(l+1)$ divided by the radius squared $R^2$, i.e. $\nabla^2 \Psi$ becomes $\tfrac{-l(l+1)}{R^2}\Psi_{lm}$ in spectral space. For example, vorticity $\zeta$ and streamfunction $\Psi$ are related by $\zeta = \nabla^2\Psi$ in the barotropic vorticity model. Hence, in spectral space this is equivalent for every spectral mode of degree $l$ and order $m$ to

          \[\zeta_{l,m} = \frac{-l(l+1)}{R^2}\Psi_{l,m}\]

          This can be easily inverted to obtain the stream function $\Psi$ from vorticity $\zeta$ instead. In order to avoid division by zero, we set $\Psi_{0,0}$ here, given that the stream function is only defined up to a constant anyway.

          \[\begin{aligned} +\Psi_{l,m} &= \frac{R^2}{-l(l+1)}\zeta_{l,m} \quad \forall~l,m > 0,\\ +\Psi_{0,0} &= 0. +\end{aligned}\]

          See also Horizontal diffusion and Normalization of diffusion.

          U,V from vorticity and divergence

          After having discussed the zonal and meridional derivatives with spherical harmonics as well as the Laplace operator, we can derive the conversion from vorticity $\zeta$ and divergence $D$ (which are prognostic variables) to $U=u\cos\theta, V=v\cos\theta$. Both are linear operations that act either solely on a given harmonic (the zonal gradient and the Laplace operator) or are linear combinations between one lower and one higher degree $l$ (the meridional gradient). It is therefore computationally more efficient to compute $U,V$ directly from $\zeta,D$ instead of calculating stream function and velocity potential first. In total we have

          \[\begin{aligned} +U_{l,m} &= -\frac{im}{l(l+1)}(RD)_{l,m} + \frac{\epsilon_{l+1,m}}{l+1}(R\zeta)_{l+1,m} - \frac{\epsilon_{l,m}}{l}(R\zeta)_{l-1,m} \\ +V_{l,m} &= -\frac{im}{l(l+1)}(R\zeta)_{l,m} - \frac{\epsilon_{l+1,m}}{l+1}(RD)_{l+1,m} + \frac{\epsilon_{l,m}}{l}(RD)_{l-1,m} \\ +\end{aligned}\]

          We have moved the scaling with the radius $R$ directly into $\zeta,D$ as further described in Radius scaling.

          References

          diff --git a/previews/PR349/speedytransforms/index.html b/previews/PR349/speedytransforms/index.html new file mode 100644 index 000000000..f4191d295 --- /dev/null +++ b/previews/PR349/speedytransforms/index.html @@ -0,0 +1,2 @@ + +Submodule: SpeedyTransforms · SpeedyWeather.jl

          SpeedyTransforms

          SpeedyTransforms is a submodule that has been developed for SpeedyWeather.jl which is technically independent (SpeedyWeather.jl however imports it) and can also be used without running simulations. It is just not put into its own respective repository.

          Functions

          diff --git a/previews/PR349/time_integration/index.html b/previews/PR349/time_integration/index.html new file mode 100644 index 000000000..26d4d97c7 --- /dev/null +++ b/previews/PR349/time_integration/index.html @@ -0,0 +1,2 @@ + +Time integration · SpeedyWeather.jl
          diff --git a/previews/PR360/assets/documenter.js b/previews/PR360/assets/documenter.js new file mode 100644 index 000000000..6adfbbbf4 --- /dev/null +++ b/previews/PR360/assets/documenter.js @@ -0,0 +1,331 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'highlight-julia': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia.min', + 'headroom': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/headroom.min', + 'jqueryui': 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min', + 'katex-auto-render': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/contrib/auto-render.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + 'headroom-jquery': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/jQuery.headroom.min', + 'katex': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/katex.min', + 'highlight': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/highlight.min', + 'highlight-julia-repl': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia-repl.min', + }, + shim: { + "highlight-julia": { + "deps": [ + "highlight" + ] + }, + "katex-auto-render": { + "deps": [ + "katex" + ] + }, + "headroom-jquery": { + "deps": [ + "jquery", + "headroom" + ] + }, + "highlight-julia-repl": { + "deps": [ + "highlight" + ] + } +} +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'katex', 'katex-auto-render'], function($, katex, renderMathInElement) { +$(document).ready(function() { + renderMathInElement( + document.body, + { + "delimiters": [ + { + "left": "$", + "right": "$", + "display": false + }, + { + "left": "$$", + "right": "$$", + "display": true + }, + { + "left": "\\[", + "right": "\\]", + "display": true + } + ] +} + + ); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'highlight', 'highlight-julia', 'highlight-julia-repl'], function($) { +$(document).ready(function() { + hljs.highlightAll(); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require([], function() { +function addCopyButtonCallbacks() { + for (const el of document.getElementsByTagName("pre")) { + const button = document.createElement("button"); + button.classList.add("copy-button", "fas", "fa-copy"); + el.appendChild(button); + + const success = function () { + button.classList.add("success", "fa-check"); + button.classList.remove("fa-copy"); + }; + + const failure = function () { + button.classList.add("error", "fa-times"); + button.classList.remove("fa-copy"); + }; + + button.addEventListener("click", function () { + copyToClipboard(el.innerText).then(success, failure); + + setTimeout(function () { + button.classList.add("fa-copy"); + button.classList.remove("success", "fa-check", "fa-times"); + }, 5000); + }); + } +} + +function copyToClipboard(text) { + // clipboard API is only available in secure contexts + if (window.navigator && window.navigator.clipboard) { + return window.navigator.clipboard.writeText(text); + } else { + return new Promise(function (resolve, reject) { + try { + const el = document.createElement("textarea"); + el.textContent = text; + el.style.position = "fixed"; + el.style.opacity = 0; + document.body.appendChild(el); + el.select(); + document.execCommand("copy"); + + resolve(); + } catch (err) { + reject(err); + } finally { + document.body.removeChild(el); + } + }); + } +} + +if (document.readyState === "loading") { + document.addEventListener("DOMContentLoaded", addCopyButtonCallbacks); +} else { + addCopyButtonCallbacks(); +} + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'headroom', 'headroom-jquery'], function($, Headroom) { + +// Manages the top navigation bar (hides it when the user starts scrolling down on the +// mobile). +window.Headroom = Headroom; // work around buggy module loading? +$(document).ready(function() { + $('#documenter .docs-navbar').headroom({ + "tolerance": {"up": 10, "down": 10}, + }); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Modal settings dialog +$(document).ready(function() { + var settings = $('#documenter-settings'); + $('#documenter-settings-button').click(function(){ + settings.toggleClass('is-active'); + }); + // Close the dialog if X is clicked + $('#documenter-settings button.delete').click(function(){ + settings.removeClass('is-active'); + }); + // Close dialog if ESC is pressed + $(document).keyup(function(e) { + if (e.keyCode == 27) settings.removeClass('is-active'); + }); +}); + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Manages the showing and hiding of the sidebar. +$(document).ready(function() { + var sidebar = $("#documenter > .docs-sidebar"); + var sidebar_button = $("#documenter-sidebar-button") + sidebar_button.click(function(ev) { + ev.preventDefault(); + sidebar.toggleClass('visible'); + if (sidebar.hasClass('visible')) { + // Makes sure that the current menu item is visible in the sidebar. + $("#documenter .docs-menu a.is-active").focus(); + } + }); + $("#documenter > .docs-main").bind('click', function(ev) { + if ($(ev.target).is(sidebar_button)) { + return; + } + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + }); +}) + +// Resizes the package name / sitename in the sidebar if it is too wide. +// Inspired by: https://github.com/davatron5000/FitText.js +$(document).ready(function() { + e = $("#documenter .docs-autofit"); + function resize() { + var L = parseInt(e.css('max-width'), 10); + var L0 = e.width(); + if(L0 > L) { + var h0 = parseInt(e.css('font-size'), 10); + e.css('font-size', L * h0 / L0); + // TODO: make sure it survives resizes? + } + } + // call once and then register events + resize(); + $(window).resize(resize); + $(window).on('orientationchange', resize); +}); + +// Scroll the navigation bar to the currently selected menu item +$(document).ready(function() { + var sidebar = $("#documenter .docs-menu").get(0); + var active = $("#documenter .docs-menu .is-active").get(0); + if(typeof active !== 'undefined') { + sidebar.scrollTop = active.offsetTop - sidebar.offsetTop - 15; + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +function set_theme(theme) { + var active = null; + var disabled = []; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + var themename = ss.ownerNode.getAttribute("data-theme-name"); + if(themename === null) continue; // ignore non-theme stylesheets + // Find the active theme + if(themename === theme) active = ss; + else disabled.push(ss); + } + if(active !== null) { + active.disabled = false; + if(active.ownerNode.getAttribute("data-theme-primary") === null) { + document.getElementsByTagName('html')[0].className = "theme--" + theme; + } else { + document.getElementsByTagName('html')[0].className = ""; + } + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + + // Store the theme in localStorage + if(typeof(window.localStorage) !== "undefined") { + window.localStorage.setItem("documenter-theme", theme); + } else { + console.error("Browser does not support window.localStorage"); + } +} + +// Theme picker setup +$(document).ready(function() { + // onchange callback + $('#documenter-themepicker').change(function themepick_callback(ev){ + var themename = $('#documenter-themepicker option:selected').attr('value'); + set_theme(themename); + }); + + // Make sure that the themepicker displays the correct theme when the theme is retrieved + // from localStorage + if(typeof(window.localStorage) !== "undefined") { + var theme = window.localStorage.getItem("documenter-theme"); + if(theme !== null) { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = (e.value === theme); + }) + } else { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = $("html").hasClass(`theme--${e.value}`); + }) + } + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// update the version selector with info from the siteinfo.js and ../versions.js files +$(document).ready(function() { + // If the version selector is disabled with DOCUMENTER_VERSION_SELECTOR_DISABLED in the + // siteinfo.js file, we just return immediately and not display the version selector. + if (typeof DOCUMENTER_VERSION_SELECTOR_DISABLED === 'boolean' && DOCUMENTER_VERSION_SELECTOR_DISABLED) { + return; + } + + var version_selector = $("#documenter .docs-version-selector"); + var version_selector_select = $("#documenter .docs-version-selector select"); + + version_selector_select.change(function(x) { + target_href = version_selector_select.children("option:selected").get(0).value; + window.location.href = target_href; + }); + + // add the current version to the selector based on siteinfo.js, but only if the selector is empty + if (typeof DOCUMENTER_CURRENT_VERSION !== 'undefined' && $('#version-selector > option').length == 0) { + var option = $(""); + version_selector_select.append(option); + } + + if (typeof DOC_VERSIONS !== 'undefined') { + var existing_versions = version_selector_select.children("option"); + var existing_versions_texts = existing_versions.map(function(i,x){return x.text}); + DOC_VERSIONS.forEach(function(each) { + var version_url = documenterBaseURL + "/../" + each; + var existing_id = $.inArray(each, existing_versions_texts); + // if not already in the version selector, add it as a new option, + // otherwise update the old option with the URL and enable it + if (existing_id == -1) { + var option = $(""); + version_selector_select.append(option); + } else { + var option = existing_versions[existing_id]; + option.value = version_url; + option.disabled = false; + } + }); + } + + // only show the version selector if the selector has been populated + if (version_selector_select.children("option").length > 0) { + version_selector.toggleClass("visible"); + } +}) + +}) diff --git a/previews/PR360/assets/search.js b/previews/PR360/assets/search.js new file mode 100644 index 000000000..c133f7410 --- /dev/null +++ b/previews/PR360/assets/search.js @@ -0,0 +1,267 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'lunr': 'https://cdnjs.cloudflare.com/ajax/libs/lunr.js/2.3.9/lunr.min', + 'lodash': 'https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + } +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'lunr', 'lodash'], function($, lunr, _) { + +$(document).ready(function() { + // parseUri 1.2.2 + // (c) Steven Levithan + // MIT License + function parseUri (str) { + var o = parseUri.options, + m = o.parser[o.strictMode ? "strict" : "loose"].exec(str), + uri = {}, + i = 14; + + while (i--) uri[o.key[i]] = m[i] || ""; + + uri[o.q.name] = {}; + uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) { + if ($1) uri[o.q.name][$1] = $2; + }); + + return uri; + }; + parseUri.options = { + strictMode: false, + key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"], + q: { + name: "queryKey", + parser: /(?:^|&)([^&=]*)=?([^&]*)/g + }, + parser: { + strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, + loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ + } + }; + + $("#search-form").submit(function(e) { + e.preventDefault() + }) + + // list below is the lunr 2.1.3 list minus the intersect with names(Base) + // (all, any, get, in, is, only, which) and (do, else, for, let, where, while, with) + // ideally we'd just filter the original list but it's not available as a variable + lunr.stopWordFilter = lunr.generateStopWordFilter([ + 'a', + 'able', + 'about', + 'across', + 'after', + 'almost', + 'also', + 'am', + 'among', + 'an', + 'and', + 'are', + 'as', + 'at', + 'be', + 'because', + 'been', + 'but', + 'by', + 'can', + 'cannot', + 'could', + 'dear', + 'did', + 'does', + 'either', + 'ever', + 'every', + 'from', + 'got', + 'had', + 'has', + 'have', + 'he', + 'her', + 'hers', + 'him', + 'his', + 'how', + 'however', + 'i', + 'if', + 'into', + 'it', + 'its', + 'just', + 'least', + 'like', + 'likely', + 'may', + 'me', + 'might', + 'most', + 'must', + 'my', + 'neither', + 'no', + 'nor', + 'not', + 'of', + 'off', + 'often', + 'on', + 'or', + 'other', + 'our', + 'own', + 'rather', + 'said', + 'say', + 'says', + 'she', + 'should', + 'since', + 'so', + 'some', + 'than', + 'that', + 'the', + 'their', + 'them', + 'then', + 'there', + 'these', + 'they', + 'this', + 'tis', + 'to', + 'too', + 'twas', + 'us', + 'wants', + 'was', + 'we', + 'were', + 'what', + 'when', + 'who', + 'whom', + 'why', + 'will', + 'would', + 'yet', + 'you', + 'your' + ]) + + // add . as a separator, because otherwise "title": "Documenter.Anchors.add!" + // would not find anything if searching for "add!", only for the entire qualification + lunr.tokenizer.separator = /[\s\-\.]+/ + + // custom trimmer that doesn't strip @ and !, which are used in julia macro and function names + lunr.trimmer = function (token) { + return token.update(function (s) { + return s.replace(/^[^a-zA-Z0-9@!]+/, '').replace(/[^a-zA-Z0-9@!]+$/, '') + }) + } + + lunr.Pipeline.registerFunction(lunr.stopWordFilter, 'juliaStopWordFilter') + lunr.Pipeline.registerFunction(lunr.trimmer, 'juliaTrimmer') + + var index = lunr(function () { + this.ref('location') + this.field('title',{boost: 100}) + this.field('text') + documenterSearchIndex['docs'].forEach(function(e) { + this.add(e) + }, this) + }) + var store = {} + + documenterSearchIndex['docs'].forEach(function(e) { + store[e.location] = {title: e.title, category: e.category, page: e.page} + }) + + $(function(){ + searchresults = $('#documenter-search-results'); + searchinfo = $('#documenter-search-info'); + searchbox = $('#documenter-search-query'); + searchform = $('.docs-search'); + sidebar = $('.docs-sidebar'); + function update_search(querystring) { + tokens = lunr.tokenizer(querystring) + results = index.query(function (q) { + tokens.forEach(function (t) { + q.term(t.toString(), { + fields: ["title"], + boost: 100, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["title"], + boost: 10, + usePipeline: true, + editDistance: 2, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["text"], + boost: 1, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + }) + }) + searchinfo.text("Number of results: " + results.length) + searchresults.empty() + results.forEach(function(result) { + data = store[result.ref] + link = $(''+data.title+'') + link.attr('href', documenterBaseURL+'/'+result.ref) + if (data.category != "page"){ + cat = $('('+data.category+', '+data.page+')') + } else { + cat = $('('+data.category+')') + } + li = $('
        2. ').append(link).append(" ").append(cat) + searchresults.append(li) + }) + } + + function update_search_box() { + querystring = searchbox.val() + update_search(querystring) + } + + searchbox.keyup(_.debounce(update_search_box, 250)) + searchbox.change(update_search_box) + + // Disable enter-key form submission for the searchbox on the search page + // and just re-run search rather than refresh the whole page. + searchform.keypress( + function(event){ + if (event.which == '13') { + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + update_search_box(); + event.preventDefault(); + } + } + ); + + search_query_uri = parseUri(window.location).queryKey["q"] + if(search_query_uri !== undefined) { + search_query = decodeURIComponent(search_query_uri.replace(/\+/g, '%20')) + searchbox.val(search_query) + } + update_search_box(); + }) +}) + +}) diff --git a/previews/PR360/assets/themes/documenter-dark.css b/previews/PR360/assets/themes/documenter-dark.css new file mode 100644 index 000000000..0bf1af7d5 --- /dev/null +++ b/previews/PR360/assets/themes/documenter-dark.css @@ -0,0 +1,7702 @@ +@charset "UTF-8"; +/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */ +@keyframes spinAround { + from { + transform: rotate(0deg); } + to { + transform: rotate(359deg); } } + +html.theme--documenter-dark .tabs, html.theme--documenter-dark .pagination-previous, +html.theme--documenter-dark .pagination-next, +html.theme--documenter-dark .pagination-link, +html.theme--documenter-dark .pagination-ellipsis, html.theme--documenter-dark .breadcrumb, html.theme--documenter-dark .file, html.theme--documenter-dark .button, .is-unselectable, html.theme--documenter-dark .modal-close, html.theme--documenter-dark .delete { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after, html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after { + border: 3px solid transparent; + border-radius: 2px; + border-right: 0; + border-top: 0; + content: " "; + display: block; + height: 0.625em; + margin-top: -0.4375em; + pointer-events: none; + position: absolute; + top: 50%; + transform: rotate(-45deg); + transform-origin: center; + width: 0.625em; } + +html.theme--documenter-dark .admonition:not(:last-child), html.theme--documenter-dark .tabs:not(:last-child), html.theme--documenter-dark .message:not(:last-child), html.theme--documenter-dark .list:not(:last-child), html.theme--documenter-dark .level:not(:last-child), html.theme--documenter-dark .breadcrumb:not(:last-child), html.theme--documenter-dark .highlight:not(:last-child), html.theme--documenter-dark .block:not(:last-child), html.theme--documenter-dark .title:not(:last-child), +html.theme--documenter-dark .subtitle:not(:last-child), html.theme--documenter-dark .table-container:not(:last-child), html.theme--documenter-dark .table:not(:last-child), html.theme--documenter-dark .progress:not(:last-child), html.theme--documenter-dark .notification:not(:last-child), html.theme--documenter-dark .content:not(:last-child), html.theme--documenter-dark .box:not(:last-child) { + margin-bottom: 1.5rem; } + +html.theme--documenter-dark .modal-close, html.theme--documenter-dark .delete { + -moz-appearance: none; + -webkit-appearance: none; + background-color: rgba(10, 10, 10, 0.2); + border: none; + border-radius: 290486px; + cursor: pointer; + pointer-events: auto; + display: inline-block; + flex-grow: 0; + flex-shrink: 0; + font-size: 0; + height: 20px; + max-height: 20px; + max-width: 20px; + min-height: 20px; + min-width: 20px; + outline: none; + position: relative; + vertical-align: top; + width: 20px; } + html.theme--documenter-dark .modal-close::before, html.theme--documenter-dark .delete::before, html.theme--documenter-dark .modal-close::after, html.theme--documenter-dark .delete::after { + background-color: white; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + html.theme--documenter-dark .modal-close::before, html.theme--documenter-dark .delete::before { + height: 2px; + width: 50%; } + html.theme--documenter-dark .modal-close::after, html.theme--documenter-dark .delete::after { + height: 50%; + width: 2px; } + html.theme--documenter-dark .modal-close:hover, html.theme--documenter-dark .delete:hover, html.theme--documenter-dark .modal-close:focus, html.theme--documenter-dark .delete:focus { + background-color: rgba(10, 10, 10, 0.3); } + html.theme--documenter-dark .modal-close:active, html.theme--documenter-dark .delete:active { + background-color: rgba(10, 10, 10, 0.4); } + html.theme--documenter-dark .is-small.modal-close, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.modal-close, html.theme--documenter-dark .is-small.delete, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.delete { + height: 16px; + max-height: 16px; + max-width: 16px; + min-height: 16px; + min-width: 16px; + width: 16px; } + html.theme--documenter-dark .is-medium.modal-close, html.theme--documenter-dark .is-medium.delete { + height: 24px; + max-height: 24px; + max-width: 24px; + min-height: 24px; + min-width: 24px; + width: 24px; } + html.theme--documenter-dark .is-large.modal-close, html.theme--documenter-dark .is-large.delete { + height: 32px; + max-height: 32px; + max-width: 32px; + min-height: 32px; + min-width: 32px; + width: 32px; } + +html.theme--documenter-dark .control.is-loading::after, html.theme--documenter-dark .select.is-loading::after, html.theme--documenter-dark .loader, html.theme--documenter-dark .button.is-loading::after { + animation: spinAround 500ms infinite linear; + border: 2px solid #dbdee0; + border-radius: 290486px; + border-right-color: transparent; + border-top-color: transparent; + content: ""; + display: block; + height: 1em; + position: relative; + width: 1em; } + +html.theme--documenter-dark .hero-video, html.theme--documenter-dark .modal-background, html.theme--documenter-dark .modal, html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img, +html.theme--documenter-dark .image.is-square .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img, +html.theme--documenter-dark .image.is-1by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img, +html.theme--documenter-dark .image.is-5by4 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img, +html.theme--documenter-dark .image.is-4by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img, +html.theme--documenter-dark .image.is-3by2 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img, +html.theme--documenter-dark .image.is-5by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img, +html.theme--documenter-dark .image.is-16by9 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img, +html.theme--documenter-dark .image.is-2by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img, +html.theme--documenter-dark .image.is-3by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img, +html.theme--documenter-dark .image.is-4by5 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img, +html.theme--documenter-dark .image.is-3by4 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img, +html.theme--documenter-dark .image.is-2by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img, +html.theme--documenter-dark .image.is-3by5 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img, +html.theme--documenter-dark .image.is-9by16 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img, +html.theme--documenter-dark .image.is-1by2 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img, +html.theme--documenter-dark .image.is-1by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, .is-overlay { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; } + +html.theme--documenter-dark .pagination-previous, +html.theme--documenter-dark .pagination-next, +html.theme--documenter-dark .pagination-link, +html.theme--documenter-dark .pagination-ellipsis, html.theme--documenter-dark .file-cta, +html.theme--documenter-dark .file-name, html.theme--documenter-dark .select select, html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark .button { + -moz-appearance: none; + -webkit-appearance: none; + align-items: center; + border: 1px solid transparent; + border-radius: 0.4em; + box-shadow: none; + display: inline-flex; + font-size: 15px; + height: 2.25em; + justify-content: flex-start; + line-height: 1.5; + padding-bottom: calc(0.375em - 1px); + padding-left: calc(0.625em - 1px); + padding-right: calc(0.625em - 1px); + padding-top: calc(0.375em - 1px); + position: relative; + vertical-align: top; } + html.theme--documenter-dark .pagination-previous:focus, + html.theme--documenter-dark .pagination-next:focus, + html.theme--documenter-dark .pagination-link:focus, + html.theme--documenter-dark .pagination-ellipsis:focus, html.theme--documenter-dark .file-cta:focus, + html.theme--documenter-dark .file-name:focus, html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .button:focus, html.theme--documenter-dark .is-focused.pagination-previous, + html.theme--documenter-dark .is-focused.pagination-next, + html.theme--documenter-dark .is-focused.pagination-link, + html.theme--documenter-dark .is-focused.pagination-ellipsis, html.theme--documenter-dark .is-focused.file-cta, + html.theme--documenter-dark .is-focused.file-name, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-focused.button, html.theme--documenter-dark .pagination-previous:active, + html.theme--documenter-dark .pagination-next:active, + html.theme--documenter-dark .pagination-link:active, + html.theme--documenter-dark .pagination-ellipsis:active, html.theme--documenter-dark .file-cta:active, + html.theme--documenter-dark .file-name:active, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .button:active, html.theme--documenter-dark .is-active.pagination-previous, + html.theme--documenter-dark .is-active.pagination-next, + html.theme--documenter-dark .is-active.pagination-link, + html.theme--documenter-dark .is-active.pagination-ellipsis, html.theme--documenter-dark .is-active.file-cta, + html.theme--documenter-dark .is-active.file-name, html.theme--documenter-dark .select select.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .is-active.button { + outline: none; } + html.theme--documenter-dark .pagination-previous[disabled], + html.theme--documenter-dark .pagination-next[disabled], + html.theme--documenter-dark .pagination-link[disabled], + html.theme--documenter-dark .pagination-ellipsis[disabled], html.theme--documenter-dark .file-cta[disabled], + html.theme--documenter-dark .file-name[disabled], html.theme--documenter-dark .select select[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], html.theme--documenter-dark .button[disabled], fieldset[disabled] html.theme--documenter-dark .pagination-previous, html.theme--documenter-dark fieldset[disabled] .pagination-previous, + fieldset[disabled] html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark fieldset[disabled] .pagination-next, + fieldset[disabled] html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark fieldset[disabled] .pagination-link, + fieldset[disabled] html.theme--documenter-dark .pagination-ellipsis, + html.theme--documenter-dark fieldset[disabled] .pagination-ellipsis, fieldset[disabled] html.theme--documenter-dark .file-cta, html.theme--documenter-dark fieldset[disabled] .file-cta, + fieldset[disabled] html.theme--documenter-dark .file-name, + html.theme--documenter-dark fieldset[disabled] .file-name, fieldset[disabled] html.theme--documenter-dark .select select, fieldset[disabled] html.theme--documenter-dark .textarea, fieldset[disabled] html.theme--documenter-dark .input, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark fieldset[disabled] .select select, html.theme--documenter-dark .select fieldset[disabled] select, html.theme--documenter-dark fieldset[disabled] .textarea, html.theme--documenter-dark fieldset[disabled] .input, html.theme--documenter-dark fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, fieldset[disabled] html.theme--documenter-dark .button, html.theme--documenter-dark fieldset[disabled] .button { + cursor: not-allowed; } + +/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */ +html, +body, +p, +ol, +ul, +li, +dl, +dt, +dd, +blockquote, +figure, +fieldset, +legend, +textarea, +pre, +iframe, +hr, +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + padding: 0; } + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: 100%; + font-weight: normal; } + +ul { + list-style: none; } + +button, +input, +select, +textarea { + margin: 0; } + +html { + box-sizing: border-box; } + +*, *::before, *::after { + box-sizing: inherit; } + +img, +embed, +iframe, +object, +video { + height: auto; + max-width: 100%; } + +audio { + max-width: 100%; } + +iframe { + border: 0; } + +table { + border-collapse: collapse; + border-spacing: 0; } + +td, +th { + padding: 0; } + td:not([align]), + th:not([align]) { + text-align: left; } + +.is-clearfix::after { + clear: both; + content: " "; + display: table; } + +.is-pulled-left { + float: left !important; } + +.is-pulled-right { + float: right !important; } + +.is-clipped { + overflow: hidden !important; } + +.is-size-1 { + font-size: 3rem !important; } + +.is-size-2 { + font-size: 2.5rem !important; } + +.is-size-3 { + font-size: 2rem !important; } + +.is-size-4 { + font-size: 1.5rem !important; } + +.is-size-5 { + font-size: 1.25rem !important; } + +.is-size-6 { + font-size: 15px !important; } + +.is-size-7, html.theme--documenter-dark .docstring > section > a.docs-sourcelink { + font-size: 0.85em !important; } + +@media screen and (max-width: 768px) { + .is-size-1-mobile { + font-size: 3rem !important; } + .is-size-2-mobile { + font-size: 2.5rem !important; } + .is-size-3-mobile { + font-size: 2rem !important; } + .is-size-4-mobile { + font-size: 1.5rem !important; } + .is-size-5-mobile { + font-size: 1.25rem !important; } + .is-size-6-mobile { + font-size: 15px !important; } + .is-size-7-mobile { + font-size: 0.85em !important; } } + +@media screen and (min-width: 769px), print { + .is-size-1-tablet { + font-size: 3rem !important; } + .is-size-2-tablet { + font-size: 2.5rem !important; } + .is-size-3-tablet { + font-size: 2rem !important; } + .is-size-4-tablet { + font-size: 1.5rem !important; } + .is-size-5-tablet { + font-size: 1.25rem !important; } + .is-size-6-tablet { + font-size: 15px !important; } + .is-size-7-tablet { + font-size: 0.85em !important; } } + +@media screen and (max-width: 1055px) { + .is-size-1-touch { + font-size: 3rem !important; } + .is-size-2-touch { + font-size: 2.5rem !important; } + .is-size-3-touch { + font-size: 2rem !important; } + .is-size-4-touch { + font-size: 1.5rem !important; } + .is-size-5-touch { + font-size: 1.25rem !important; } + .is-size-6-touch { + font-size: 15px !important; } + .is-size-7-touch { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1056px) { + .is-size-1-desktop { + font-size: 3rem !important; } + .is-size-2-desktop { + font-size: 2.5rem !important; } + .is-size-3-desktop { + font-size: 2rem !important; } + .is-size-4-desktop { + font-size: 1.5rem !important; } + .is-size-5-desktop { + font-size: 1.25rem !important; } + .is-size-6-desktop { + font-size: 15px !important; } + .is-size-7-desktop { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1216px) { + .is-size-1-widescreen { + font-size: 3rem !important; } + .is-size-2-widescreen { + font-size: 2.5rem !important; } + .is-size-3-widescreen { + font-size: 2rem !important; } + .is-size-4-widescreen { + font-size: 1.5rem !important; } + .is-size-5-widescreen { + font-size: 1.25rem !important; } + .is-size-6-widescreen { + font-size: 15px !important; } + .is-size-7-widescreen { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1408px) { + .is-size-1-fullhd { + font-size: 3rem !important; } + .is-size-2-fullhd { + font-size: 2.5rem !important; } + .is-size-3-fullhd { + font-size: 2rem !important; } + .is-size-4-fullhd { + font-size: 1.5rem !important; } + .is-size-5-fullhd { + font-size: 1.25rem !important; } + .is-size-6-fullhd { + font-size: 15px !important; } + .is-size-7-fullhd { + font-size: 0.85em !important; } } + +.has-text-centered { + text-align: center !important; } + +.has-text-justified { + text-align: justify !important; } + +.has-text-left { + text-align: left !important; } + +.has-text-right { + text-align: right !important; } + +@media screen and (max-width: 768px) { + .has-text-centered-mobile { + text-align: center !important; } } + +@media screen and (min-width: 769px), print { + .has-text-centered-tablet { + text-align: center !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-centered-tablet-only { + text-align: center !important; } } + +@media screen and (max-width: 1055px) { + .has-text-centered-touch { + text-align: center !important; } } + +@media screen and (min-width: 1056px) { + .has-text-centered-desktop { + text-align: center !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-centered-desktop-only { + text-align: center !important; } } + +@media screen and (min-width: 1216px) { + .has-text-centered-widescreen { + text-align: center !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-centered-widescreen-only { + text-align: center !important; } } + +@media screen and (min-width: 1408px) { + .has-text-centered-fullhd { + text-align: center !important; } } + +@media screen and (max-width: 768px) { + .has-text-justified-mobile { + text-align: justify !important; } } + +@media screen and (min-width: 769px), print { + .has-text-justified-tablet { + text-align: justify !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-justified-tablet-only { + text-align: justify !important; } } + +@media screen and (max-width: 1055px) { + .has-text-justified-touch { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) { + .has-text-justified-desktop { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-justified-desktop-only { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) { + .has-text-justified-widescreen { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-justified-widescreen-only { + text-align: justify !important; } } + +@media screen and (min-width: 1408px) { + .has-text-justified-fullhd { + text-align: justify !important; } } + +@media screen and (max-width: 768px) { + .has-text-left-mobile { + text-align: left !important; } } + +@media screen and (min-width: 769px), print { + .has-text-left-tablet { + text-align: left !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-left-tablet-only { + text-align: left !important; } } + +@media screen and (max-width: 1055px) { + .has-text-left-touch { + text-align: left !important; } } + +@media screen and (min-width: 1056px) { + .has-text-left-desktop { + text-align: left !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-left-desktop-only { + text-align: left !important; } } + +@media screen and (min-width: 1216px) { + .has-text-left-widescreen { + text-align: left !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-left-widescreen-only { + text-align: left !important; } } + +@media screen and (min-width: 1408px) { + .has-text-left-fullhd { + text-align: left !important; } } + +@media screen and (max-width: 768px) { + .has-text-right-mobile { + text-align: right !important; } } + +@media screen and (min-width: 769px), print { + .has-text-right-tablet { + text-align: right !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-right-tablet-only { + text-align: right !important; } } + +@media screen and (max-width: 1055px) { + .has-text-right-touch { + text-align: right !important; } } + +@media screen and (min-width: 1056px) { + .has-text-right-desktop { + text-align: right !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-right-desktop-only { + text-align: right !important; } } + +@media screen and (min-width: 1216px) { + .has-text-right-widescreen { + text-align: right !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-right-widescreen-only { + text-align: right !important; } } + +@media screen and (min-width: 1408px) { + .has-text-right-fullhd { + text-align: right !important; } } + +.is-capitalized { + text-transform: capitalize !important; } + +.is-lowercase { + text-transform: lowercase !important; } + +.is-uppercase { + text-transform: uppercase !important; } + +.is-italic { + font-style: italic !important; } + +.has-text-white { + color: white !important; } + +a.has-text-white:hover, a.has-text-white:focus { + color: #e6e6e6 !important; } + +.has-background-white { + background-color: white !important; } + +.has-text-black { + color: #0a0a0a !important; } + +a.has-text-black:hover, a.has-text-black:focus { + color: black !important; } + +.has-background-black { + background-color: #0a0a0a !important; } + +.has-text-light { + color: #ecf0f1 !important; } + +a.has-text-light:hover, a.has-text-light:focus { + color: #cfd9db !important; } + +.has-background-light { + background-color: #ecf0f1 !important; } + +.has-text-dark { + color: #282f2f !important; } + +a.has-text-dark:hover, a.has-text-dark:focus { + color: #111414 !important; } + +.has-background-dark { + background-color: #282f2f !important; } + +.has-text-primary { + color: #375a7f !important; } + +a.has-text-primary:hover, a.has-text-primary:focus { + color: #28415b !important; } + +.has-background-primary { + background-color: #375a7f !important; } + +.has-text-link { + color: #1abc9c !important; } + +a.has-text-link:hover, a.has-text-link:focus { + color: #148f77 !important; } + +.has-background-link { + background-color: #1abc9c !important; } + +.has-text-info { + color: #024c7d !important; } + +a.has-text-info:hover, a.has-text-info:focus { + color: #012d4b !important; } + +.has-background-info { + background-color: #024c7d !important; } + +.has-text-success { + color: #008438 !important; } + +a.has-text-success:hover, a.has-text-success:focus { + color: #005122 !important; } + +.has-background-success { + background-color: #008438 !important; } + +.has-text-warning { + color: #ad8100 !important; } + +a.has-text-warning:hover, a.has-text-warning:focus { + color: #7a5b00 !important; } + +.has-background-warning { + background-color: #ad8100 !important; } + +.has-text-danger { + color: #9e1b0d !important; } + +a.has-text-danger:hover, a.has-text-danger:focus { + color: #6f1309 !important; } + +.has-background-danger { + background-color: #9e1b0d !important; } + +.has-text-black-bis { + color: #121212 !important; } + +.has-background-black-bis { + background-color: #121212 !important; } + +.has-text-black-ter { + color: #242424 !important; } + +.has-background-black-ter { + background-color: #242424 !important; } + +.has-text-grey-darker { + color: #282f2f !important; } + +.has-background-grey-darker { + background-color: #282f2f !important; } + +.has-text-grey-dark { + color: #343c3d !important; } + +.has-background-grey-dark { + background-color: #343c3d !important; } + +.has-text-grey { + color: #5e6d6f !important; } + +.has-background-grey { + background-color: #5e6d6f !important; } + +.has-text-grey-light { + color: #8c9b9d !important; } + +.has-background-grey-light { + background-color: #8c9b9d !important; } + +.has-text-grey-lighter { + color: #dbdee0 !important; } + +.has-background-grey-lighter { + background-color: #dbdee0 !important; } + +.has-text-white-ter { + color: #ecf0f1 !important; } + +.has-background-white-ter { + background-color: #ecf0f1 !important; } + +.has-text-white-bis { + color: #fafafa !important; } + +.has-background-white-bis { + background-color: #fafafa !important; } + +.has-text-weight-light { + font-weight: 300 !important; } + +.has-text-weight-normal { + font-weight: 400 !important; } + +.has-text-weight-medium { + font-weight: 500 !important; } + +.has-text-weight-semibold { + font-weight: 600 !important; } + +.has-text-weight-bold { + font-weight: 700 !important; } + +.is-family-primary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-secondary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-sans-serif { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-monospace { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-family-code { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-block { + display: block !important; } + +@media screen and (max-width: 768px) { + .is-block-mobile { + display: block !important; } } + +@media screen and (min-width: 769px), print { + .is-block-tablet { + display: block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-block-tablet-only { + display: block !important; } } + +@media screen and (max-width: 1055px) { + .is-block-touch { + display: block !important; } } + +@media screen and (min-width: 1056px) { + .is-block-desktop { + display: block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-block-desktop-only { + display: block !important; } } + +@media screen and (min-width: 1216px) { + .is-block-widescreen { + display: block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-block-widescreen-only { + display: block !important; } } + +@media screen and (min-width: 1408px) { + .is-block-fullhd { + display: block !important; } } + +.is-flex { + display: flex !important; } + +@media screen and (max-width: 768px) { + .is-flex-mobile { + display: flex !important; } } + +@media screen and (min-width: 769px), print { + .is-flex-tablet { + display: flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-flex-tablet-only { + display: flex !important; } } + +@media screen and (max-width: 1055px) { + .is-flex-touch { + display: flex !important; } } + +@media screen and (min-width: 1056px) { + .is-flex-desktop { + display: flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-flex-desktop-only { + display: flex !important; } } + +@media screen and (min-width: 1216px) { + .is-flex-widescreen { + display: flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-flex-widescreen-only { + display: flex !important; } } + +@media screen and (min-width: 1408px) { + .is-flex-fullhd { + display: flex !important; } } + +.is-inline { + display: inline !important; } + +@media screen and (max-width: 768px) { + .is-inline-mobile { + display: inline !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-tablet { + display: inline !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-tablet-only { + display: inline !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-touch { + display: inline !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-desktop { + display: inline !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-desktop-only { + display: inline !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-widescreen { + display: inline !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-widescreen-only { + display: inline !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-fullhd { + display: inline !important; } } + +.is-inline-block { + display: inline-block !important; } + +@media screen and (max-width: 768px) { + .is-inline-block-mobile { + display: inline-block !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-block-tablet { + display: inline-block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-block-tablet-only { + display: inline-block !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-block-touch { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-block-desktop { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-block-desktop-only { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-block-widescreen { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-block-widescreen-only { + display: inline-block !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-block-fullhd { + display: inline-block !important; } } + +.is-inline-flex { + display: inline-flex !important; } + +@media screen and (max-width: 768px) { + .is-inline-flex-mobile { + display: inline-flex !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-flex-tablet { + display: inline-flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-flex-tablet-only { + display: inline-flex !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-flex-touch { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-flex-desktop { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-flex-desktop-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-flex-widescreen { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-flex-widescreen-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-flex-fullhd { + display: inline-flex !important; } } + +.is-hidden { + display: none !important; } + +.is-sr-only { + border: none !important; + clip: rect(0, 0, 0, 0) !important; + height: 0.01em !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + white-space: nowrap !important; + width: 0.01em !important; } + +@media screen and (max-width: 768px) { + .is-hidden-mobile { + display: none !important; } } + +@media screen and (min-width: 769px), print { + .is-hidden-tablet { + display: none !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-hidden-tablet-only { + display: none !important; } } + +@media screen and (max-width: 1055px) { + .is-hidden-touch { + display: none !important; } } + +@media screen and (min-width: 1056px) { + .is-hidden-desktop { + display: none !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-hidden-desktop-only { + display: none !important; } } + +@media screen and (min-width: 1216px) { + .is-hidden-widescreen { + display: none !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-hidden-widescreen-only { + display: none !important; } } + +@media screen and (min-width: 1408px) { + .is-hidden-fullhd { + display: none !important; } } + +.is-invisible { + visibility: hidden !important; } + +@media screen and (max-width: 768px) { + .is-invisible-mobile { + visibility: hidden !important; } } + +@media screen and (min-width: 769px), print { + .is-invisible-tablet { + visibility: hidden !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-invisible-tablet-only { + visibility: hidden !important; } } + +@media screen and (max-width: 1055px) { + .is-invisible-touch { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) { + .is-invisible-desktop { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-invisible-desktop-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) { + .is-invisible-widescreen { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-invisible-widescreen-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1408px) { + .is-invisible-fullhd { + visibility: hidden !important; } } + +.is-marginless { + margin: 0 !important; } + +.is-paddingless { + padding: 0 !important; } + +.is-radiusless { + border-radius: 0 !important; } + +.is-shadowless { + box-shadow: none !important; } + +.is-relative { + position: relative !important; } + +html.theme--documenter-dark { + /* This file contain the overall layout. + * + * The main container is
          that is identified by id #documenter. + */ + /*! + 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 +*/ + /* Comment */ + /* Red */ + /* Orange */ + /* Yellow */ + /* Green */ + /* Blue */ + /* Purple */ } + html.theme--documenter-dark html { + background-color: #1f2424; + font-size: 16px; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + html.theme--documenter-dark article, + html.theme--documenter-dark aside, + html.theme--documenter-dark figure, + html.theme--documenter-dark footer, + html.theme--documenter-dark header, + html.theme--documenter-dark hgroup, + html.theme--documenter-dark section { + display: block; } + html.theme--documenter-dark body, + html.theme--documenter-dark button, + html.theme--documenter-dark input, + html.theme--documenter-dark select, + html.theme--documenter-dark textarea { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; } + html.theme--documenter-dark code, + html.theme--documenter-dark pre { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; } + html.theme--documenter-dark body { + color: #fff; + font-size: 1em; + font-weight: 400; + line-height: 1.5; } + html.theme--documenter-dark a { + color: #1abc9c; + cursor: pointer; + text-decoration: none; } + html.theme--documenter-dark a strong { + color: currentColor; } + html.theme--documenter-dark a:hover { + color: #1dd2af; } + html.theme--documenter-dark code { + background-color: rgba(255, 255, 255, 0.05); + color: #ececec; + font-size: 0.875em; + font-weight: normal; + padding: 0.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: 0.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: 0.875em; + overflow-x: auto; + padding: 1.25rem 1.5rem; + white-space: pre; + word-wrap: normal; } + html.theme--documenter-dark pre code { + background-color: transparent; + color: currentColor; + font-size: 1em; + padding: 0; } + html.theme--documenter-dark table td, + html.theme--documenter-dark table th { + vertical-align: top; } + html.theme--documenter-dark table td:not([align]), + html.theme--documenter-dark table th:not([align]) { + text-align: left; } + html.theme--documenter-dark table th { + color: #f2f2f2; } + html.theme--documenter-dark .box { + background-color: #343c3d; + border-radius: 8px; + box-shadow: none; + color: #fff; + display: block; + padding: 1.25rem; } + html.theme--documenter-dark a.box:hover, html.theme--documenter-dark a.box:focus { + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #1abc9c; } + html.theme--documenter-dark a.box:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #1abc9c; } + html.theme--documenter-dark .button { + background-color: #282f2f; + border-color: #4c5759; + border-width: 1px; + color: #375a7f; + cursor: pointer; + justify-content: center; + padding-bottom: calc(0.375em - 1px); + padding-left: 0.75em; + padding-right: 0.75em; + padding-top: calc(0.375em - 1px); + text-align: center; + white-space: nowrap; } + html.theme--documenter-dark .button strong { + color: inherit; } + html.theme--documenter-dark .button .icon, html.theme--documenter-dark .button .icon.is-small, html.theme--documenter-dark .button #documenter .docs-sidebar form.docs-search > input.icon, html.theme--documenter-dark #documenter .docs-sidebar .button form.docs-search > input.icon, html.theme--documenter-dark .button .icon.is-medium, html.theme--documenter-dark .button .icon.is-large { + height: 1.5em; + width: 1.5em; } + html.theme--documenter-dark .button .icon:first-child:not(:last-child) { + margin-left: calc(-0.375em - 1px); + margin-right: 0.1875em; } + html.theme--documenter-dark .button .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: calc(-0.375em - 1px); } + html.theme--documenter-dark .button .icon:first-child:last-child { + margin-left: calc(-0.375em - 1px); + margin-right: calc(-0.375em - 1px); } + html.theme--documenter-dark .button:hover, html.theme--documenter-dark .button.is-hovered { + border-color: #8c9b9d; + color: #f2f2f2; } + html.theme--documenter-dark .button:focus, html.theme--documenter-dark .button.is-focused { + border-color: #8c9b9d; + color: #17a689; } + html.theme--documenter-dark .button:focus:not(:active), html.theme--documenter-dark .button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .button:active, html.theme--documenter-dark .button.is-active { + border-color: #343c3d; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text { + background-color: transparent; + border-color: transparent; + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .button.is-text:hover, html.theme--documenter-dark .button.is-text.is-hovered, html.theme--documenter-dark .button.is-text:focus, html.theme--documenter-dark .button.is-text.is-focused { + background-color: #282f2f; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text:active, html.theme--documenter-dark .button.is-text.is-active { + background-color: #1d2122; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-text { + background-color: transparent; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-white { + background-color: white; + 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: white; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-white.is-inverted { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .button.is-white.is-inverted:hover, html.theme--documenter-dark .button.is-white.is-inverted.is-hovered { + background-color: black; } + 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: white; } + 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: white; + color: white; } + 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: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white.is-outlined.is-loading::after { + border-color: transparent transparent white white !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: white; + box-shadow: none; + color: white; } + 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: white; } + 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 white white !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: white; } + html.theme--documenter-dark .button.is-black:hover, html.theme--documenter-dark .button.is-black.is-hovered { + background-color: #040404; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black:focus, html.theme--documenter-dark .button.is-black.is-focused { + border-color: transparent; + color: white; } + 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: black; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-black.is-inverted { + background-color: white; + 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: white; + border-color: transparent; + box-shadow: none; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-loading::after { + border-color: transparent transparent white white !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: white; } + 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 white white !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: white; + color: white; } + 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: white; + 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: white; + box-shadow: none; + color: white; } + html.theme--documenter-dark .button.is-light { + background-color: #ecf0f1; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:hover, html.theme--documenter-dark .button.is-light.is-hovered { + background-color: #e5eaec; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:focus, html.theme--documenter-dark .button.is-light.is-focused { + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:focus:not(:active), html.theme--documenter-dark .button.is-light.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } + html.theme--documenter-dark .button.is-light:active, html.theme--documenter-dark .button.is-light.is-active { + background-color: #dde4e6; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light { + background-color: #ecf0f1; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-light.is-inverted { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-hovered { + background-color: #1d2122; } + html.theme--documenter-dark .button.is-light.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted { + background-color: #282f2f; + border-color: transparent; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-loading::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-light.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-outlined.is-focused { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-light.is-outlined.is-loading::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-light.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-light.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #282f2f; + color: #282f2f; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-focused { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #282f2f; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark, html.theme--documenter-dark .content kbd.button { + background-color: #282f2f; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:hover, html.theme--documenter-dark .content kbd.button:hover, html.theme--documenter-dark .button.is-dark.is-hovered, html.theme--documenter-dark .content kbd.button.is-hovered { + background-color: #232829; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:focus, html.theme--documenter-dark .content kbd.button:focus, html.theme--documenter-dark .button.is-dark.is-focused, html.theme--documenter-dark .content kbd.button.is-focused { + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:focus:not(:active), html.theme--documenter-dark .content kbd.button:focus:not(:active), html.theme--documenter-dark .button.is-dark.is-focused:not(:active), html.theme--documenter-dark .content kbd.button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } + html.theme--documenter-dark .button.is-dark:active, html.theme--documenter-dark .content kbd.button:active, html.theme--documenter-dark .button.is-dark.is-active, html.theme--documenter-dark .content kbd.button.is-active { + background-color: #1d2122; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark[disabled], html.theme--documenter-dark .content kbd.button[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark, fieldset[disabled] html.theme--documenter-dark .content kbd.button { + background-color: #282f2f; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-dark.is-inverted, html.theme--documenter-dark .content kbd.button.is-inverted { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted:hover, html.theme--documenter-dark .content kbd.button.is-inverted:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-hovered { + background-color: #dde4e6; } + html.theme--documenter-dark .button.is-dark.is-inverted[disabled], html.theme--documenter-dark .content kbd.button.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted { + background-color: #ecf0f1; + border-color: transparent; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-loading::after, html.theme--documenter-dark .content kbd.button.is-loading::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-dark.is-outlined, html.theme--documenter-dark .content kbd.button.is-outlined { + background-color: transparent; + border-color: #282f2f; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-outlined.is-focused { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark.is-outlined.is-loading::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-dark.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-outlined, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-outlined { + background-color: transparent; + border-color: #282f2f; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-focused { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-primary, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink { + background-color: #375a7f; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:hover, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-hovered.docs-sourcelink { + background-color: #335476; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:focus, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:focus:not(:active), html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus:not(:active), html.theme--documenter-dark .button.is-primary.is-focused:not(:active), html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) { + box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } + html.theme--documenter-dark .button.is-primary:active, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:active, html.theme--documenter-dark .button.is-primary.is-active, html.theme--documenter-dark .docstring > section > a.button.is-active.docs-sourcelink { + background-color: #2f4d6d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary[disabled], html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink { + background-color: #375a7f; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-primary.is-inverted, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-primary.is-inverted[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-loading.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-primary.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #375a7f; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink { + background-color: #375a7f; + border-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .button.is-primary.is-outlined.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after { + border-color: transparent transparent #375a7f #375a7f !important; } + html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-primary.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-outlined, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #375a7f; + box-shadow: none; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink { + background-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #375a7f #375a7f !important; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-link { + background-color: #1abc9c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:hover, html.theme--documenter-dark .button.is-link.is-hovered { + background-color: #18b193; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:focus, html.theme--documenter-dark .button.is-link.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:focus:not(:active), html.theme--documenter-dark .button.is-link.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .button.is-link:active, html.theme--documenter-dark .button.is-link.is-active { + background-color: #17a689; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link { + background-color: #1abc9c; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-link.is-inverted { + background-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-link.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-link.is-outlined { + background-color: transparent; + border-color: #1abc9c; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-outlined.is-focused { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .button.is-link.is-outlined.is-loading::after { + border-color: transparent transparent #1abc9c #1abc9c !important; } + html.theme--documenter-dark .button.is-link.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-link.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-outlined { + background-color: transparent; + border-color: #1abc9c; + box-shadow: none; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #1abc9c #1abc9c !important; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-info { + background-color: #024c7d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:hover, html.theme--documenter-dark .button.is-info.is-hovered { + background-color: #024470; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:focus, html.theme--documenter-dark .button.is-info.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:focus:not(:active), html.theme--documenter-dark .button.is-info.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } + html.theme--documenter-dark .button.is-info:active, html.theme--documenter-dark .button.is-info.is-active { + background-color: #023d64; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info { + background-color: #024c7d; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-info.is-inverted { + background-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-info.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-info.is-outlined { + background-color: transparent; + border-color: #024c7d; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-outlined.is-focused { + background-color: #024c7d; + border-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .button.is-info.is-outlined.is-loading::after { + border-color: transparent transparent #024c7d #024c7d !important; } + html.theme--documenter-dark .button.is-info.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-info.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-outlined { + background-color: transparent; + border-color: #024c7d; + box-shadow: none; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #024c7d #024c7d !important; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-success { + background-color: #008438; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:hover, html.theme--documenter-dark .button.is-success.is-hovered { + background-color: #007733; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:focus, html.theme--documenter-dark .button.is-success.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:focus:not(:active), html.theme--documenter-dark .button.is-success.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } + html.theme--documenter-dark .button.is-success:active, html.theme--documenter-dark .button.is-success.is-active { + background-color: #006b2d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success { + background-color: #008438; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-success.is-inverted { + background-color: #fff; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-success.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-success.is-outlined { + background-color: transparent; + border-color: #008438; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-outlined.is-focused { + background-color: #008438; + border-color: #008438; + color: #fff; } + html.theme--documenter-dark .button.is-success.is-outlined.is-loading::after { + border-color: transparent transparent #008438 #008438 !important; } + html.theme--documenter-dark .button.is-success.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-success.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-outlined { + background-color: transparent; + border-color: #008438; + box-shadow: none; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #008438 #008438 !important; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-warning { + background-color: #ad8100; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:hover, html.theme--documenter-dark .button.is-warning.is-hovered { + background-color: #a07700; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:focus, html.theme--documenter-dark .button.is-warning.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:focus:not(:active), html.theme--documenter-dark .button.is-warning.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } + html.theme--documenter-dark .button.is-warning:active, html.theme--documenter-dark .button.is-warning.is-active { + background-color: #946e00; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning { + background-color: #ad8100; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-warning.is-inverted { + background-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-warning.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ad8100; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-outlined.is-focused { + background-color: #ad8100; + border-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .button.is-warning.is-outlined.is-loading::after { + border-color: transparent transparent #ad8100 #ad8100 !important; } + html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-warning.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ad8100; + box-shadow: none; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ad8100 #ad8100 !important; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-danger { + background-color: #9e1b0d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:hover, html.theme--documenter-dark .button.is-danger.is-hovered { + background-color: #92190c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:focus, html.theme--documenter-dark .button.is-danger.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:focus:not(:active), html.theme--documenter-dark .button.is-danger.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } + html.theme--documenter-dark .button.is-danger:active, html.theme--documenter-dark .button.is-danger.is-active { + background-color: #86170b; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger { + background-color: #9e1b0d; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-danger.is-inverted { + background-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-danger.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-danger.is-outlined { + background-color: transparent; + border-color: #9e1b0d; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-outlined.is-focused { + background-color: #9e1b0d; + border-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .button.is-danger.is-outlined.is-loading::after { + border-color: transparent transparent #9e1b0d #9e1b0d !important; } + html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-danger.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-outlined { + background-color: transparent; + border-color: #9e1b0d; + box-shadow: none; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #9e1b0d #9e1b0d !important; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .button.is-normal { + font-size: 15px; } + html.theme--documenter-dark .button.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .button.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .button[disabled], fieldset[disabled] html.theme--documenter-dark .button { + background-color: #8c9b9d; + border-color: #dbdee0; + box-shadow: none; + opacity: 0.5; } + html.theme--documenter-dark .button.is-fullwidth { + display: flex; + width: 100%; } + html.theme--documenter-dark .button.is-loading { + color: transparent !important; + pointer-events: none; } + html.theme--documenter-dark .button.is-loading::after { + position: absolute; + left: calc(50% - (1em / 2)); + top: calc(50% - (1em / 2)); + position: absolute !important; } + html.theme--documenter-dark .button.is-static { + background-color: #282f2f; + border-color: #5e6d6f; + color: #dbdee0; + box-shadow: none; + pointer-events: none; } + html.theme--documenter-dark .button.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .buttons { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .buttons .button { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .buttons .button:not(:last-child):not(.is-fullwidth) { + margin-right: 0.5rem; } + html.theme--documenter-dark .buttons:last-child { + margin-bottom: -0.5rem; } + html.theme--documenter-dark .buttons:not(:last-child) { + margin-bottom: 1rem; } + html.theme--documenter-dark .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) { + font-size: 1.25rem; } + html.theme--documenter-dark .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) { + font-size: 1.5rem; } + html.theme--documenter-dark .buttons.has-addons .button:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .buttons.has-addons .button:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + margin-right: -1px; } + html.theme--documenter-dark .buttons.has-addons .button:last-child { + margin-right: 0; } + html.theme--documenter-dark .buttons.has-addons .button:hover, html.theme--documenter-dark .buttons.has-addons .button.is-hovered { + z-index: 2; } + html.theme--documenter-dark .buttons.has-addons .button:focus, html.theme--documenter-dark .buttons.has-addons .button.is-focused, html.theme--documenter-dark .buttons.has-addons .button:active, html.theme--documenter-dark .buttons.has-addons .button.is-active, html.theme--documenter-dark .buttons.has-addons .button.is-selected { + z-index: 3; } + html.theme--documenter-dark .buttons.has-addons .button:focus:hover, html.theme--documenter-dark .buttons.has-addons .button.is-focused:hover, html.theme--documenter-dark .buttons.has-addons .button:active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-selected:hover { + z-index: 4; } + html.theme--documenter-dark .buttons.has-addons .button.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .buttons.is-centered { + justify-content: center; } + html.theme--documenter-dark .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + html.theme--documenter-dark .buttons.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + html.theme--documenter-dark .container { + flex-grow: 1; + margin: 0 auto; + position: relative; + width: auto; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .container { + max-width: 992px; } + html.theme--documenter-dark .container.is-fluid { + margin-left: 32px; + margin-right: 32px; + max-width: none; } } + @media screen and (max-width: 1215px) { + html.theme--documenter-dark .container.is-widescreen { + max-width: 1152px; } } + @media screen and (max-width: 1407px) { + html.theme--documenter-dark .container.is-fullhd { + max-width: 1344px; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .container { + max-width: 1152px; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .container { + max-width: 1344px; } } + html.theme--documenter-dark .content li + li { + margin-top: 0.25em; } + html.theme--documenter-dark .content p:not(:last-child), + html.theme--documenter-dark .content dl:not(:last-child), + html.theme--documenter-dark .content ol:not(:last-child), + html.theme--documenter-dark .content ul:not(:last-child), + html.theme--documenter-dark .content blockquote:not(:last-child), + html.theme--documenter-dark .content pre:not(:last-child), + html.theme--documenter-dark .content table:not(:last-child) { + margin-bottom: 1em; } + html.theme--documenter-dark .content h1, + html.theme--documenter-dark .content h2, + html.theme--documenter-dark .content h3, + html.theme--documenter-dark .content h4, + html.theme--documenter-dark .content h5, + html.theme--documenter-dark .content h6 { + color: #f2f2f2; + font-weight: 600; + line-height: 1.125; } + html.theme--documenter-dark .content h1 { + font-size: 2em; + margin-bottom: 0.5em; } + html.theme--documenter-dark .content h1:not(:first-child) { + margin-top: 1em; } + html.theme--documenter-dark .content h2 { + font-size: 1.75em; + margin-bottom: 0.5714em; } + html.theme--documenter-dark .content h2:not(:first-child) { + margin-top: 1.1428em; } + html.theme--documenter-dark .content h3 { + font-size: 1.5em; + margin-bottom: 0.6666em; } + html.theme--documenter-dark .content h3:not(:first-child) { + margin-top: 1.3333em; } + html.theme--documenter-dark .content h4 { + font-size: 1.25em; + margin-bottom: 0.8em; } + html.theme--documenter-dark .content h5 { + font-size: 1.125em; + margin-bottom: 0.8888em; } + html.theme--documenter-dark .content h6 { + font-size: 1em; + margin-bottom: 1em; } + html.theme--documenter-dark .content blockquote { + background-color: #282f2f; + border-left: 5px solid #5e6d6f; + padding: 1.25em 1.5em; } + html.theme--documenter-dark .content ol { + list-style-position: outside; + margin-left: 2em; + margin-top: 1em; } + html.theme--documenter-dark .content ol:not([type]) { + list-style-type: decimal; } + html.theme--documenter-dark .content ol.is-lower-alpha:not([type]) { + list-style-type: lower-alpha; } + html.theme--documenter-dark .content ol.is-lower-roman:not([type]) { + list-style-type: lower-roman; } + html.theme--documenter-dark .content ol.is-upper-alpha:not([type]) { + list-style-type: upper-alpha; } + html.theme--documenter-dark .content ol.is-upper-roman:not([type]) { + list-style-type: upper-roman; } + html.theme--documenter-dark .content ul { + list-style: disc outside; + margin-left: 2em; + margin-top: 1em; } + html.theme--documenter-dark .content ul ul { + list-style-type: circle; + margin-top: 0.5em; } + html.theme--documenter-dark .content ul ul ul { + list-style-type: square; } + html.theme--documenter-dark .content dd { + margin-left: 2em; } + html.theme--documenter-dark .content figure { + margin-left: 2em; + margin-right: 2em; + text-align: center; } + html.theme--documenter-dark .content figure:not(:first-child) { + margin-top: 2em; } + html.theme--documenter-dark .content figure:not(:last-child) { + margin-bottom: 2em; } + html.theme--documenter-dark .content figure img { + display: inline-block; } + html.theme--documenter-dark .content figure figcaption { + font-style: italic; } + html.theme--documenter-dark .content pre { + -webkit-overflow-scrolling: touch; + overflow-x: auto; + padding: 0; + white-space: pre; + word-wrap: normal; } + html.theme--documenter-dark .content sup, + html.theme--documenter-dark .content sub { + font-size: 75%; } + html.theme--documenter-dark .content table { + width: 100%; } + html.theme--documenter-dark .content table td, + html.theme--documenter-dark .content table th { + border: 1px solid #5e6d6f; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + html.theme--documenter-dark .content table th { + color: #f2f2f2; } + html.theme--documenter-dark .content table th:not([align]) { + text-align: left; } + html.theme--documenter-dark .content table thead td, + html.theme--documenter-dark .content table thead th { + border-width: 0 0 2px; + color: #f2f2f2; } + html.theme--documenter-dark .content table tfoot td, + html.theme--documenter-dark .content table tfoot th { + border-width: 2px 0 0; + color: #f2f2f2; } + html.theme--documenter-dark .content table tbody tr:last-child td, + html.theme--documenter-dark .content table tbody tr:last-child th { + border-bottom-width: 0; } + html.theme--documenter-dark .content .tabs li + li { + margin-top: 0; } + html.theme--documenter-dark .content.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.content { + font-size: 0.85em; } + html.theme--documenter-dark .content.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .content.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .icon { + align-items: center; + display: inline-flex; + justify-content: center; + height: 1.5rem; + width: 1.5rem; } + html.theme--documenter-dark .icon.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.icon { + height: 1rem; + width: 1rem; } + html.theme--documenter-dark .icon.is-medium { + height: 2rem; + width: 2rem; } + html.theme--documenter-dark .icon.is-large { + height: 3rem; + width: 3rem; } + html.theme--documenter-dark .image, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img { + display: block; + position: relative; } + html.theme--documenter-dark .image img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img { + display: block; + height: auto; + width: 100%; } + html.theme--documenter-dark .image img.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img.is-rounded { + border-radius: 290486px; } + html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img, + html.theme--documenter-dark .image.is-square .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img, + html.theme--documenter-dark .image.is-1by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img, + html.theme--documenter-dark .image.is-5by4 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img, + html.theme--documenter-dark .image.is-4by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img, + html.theme--documenter-dark .image.is-3by2 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img, + html.theme--documenter-dark .image.is-5by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img, + html.theme--documenter-dark .image.is-16by9 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img, + html.theme--documenter-dark .image.is-2by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img, + html.theme--documenter-dark .image.is-3by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img, + html.theme--documenter-dark .image.is-4by5 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img, + html.theme--documenter-dark .image.is-3by4 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img, + html.theme--documenter-dark .image.is-2by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img, + html.theme--documenter-dark .image.is-3by5 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img, + html.theme--documenter-dark .image.is-9by16 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img, + html.theme--documenter-dark .image.is-1by2 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img, + html.theme--documenter-dark .image.is-1by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio { + height: 100%; + width: 100%; } + html.theme--documenter-dark .image.is-square, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square, html.theme--documenter-dark .image.is-1by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 { + padding-top: 100%; } + html.theme--documenter-dark .image.is-5by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 { + padding-top: 80%; } + html.theme--documenter-dark .image.is-4by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 { + padding-top: 75%; } + html.theme--documenter-dark .image.is-3by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 { + padding-top: 66.6666%; } + html.theme--documenter-dark .image.is-5by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 { + padding-top: 60%; } + html.theme--documenter-dark .image.is-16by9, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 { + padding-top: 56.25%; } + html.theme--documenter-dark .image.is-2by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 { + padding-top: 50%; } + html.theme--documenter-dark .image.is-3by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 { + padding-top: 33.3333%; } + html.theme--documenter-dark .image.is-4by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 { + padding-top: 125%; } + html.theme--documenter-dark .image.is-3by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 { + padding-top: 133.3333%; } + html.theme--documenter-dark .image.is-2by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 { + padding-top: 150%; } + html.theme--documenter-dark .image.is-3by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 { + padding-top: 166.6666%; } + html.theme--documenter-dark .image.is-9by16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 { + padding-top: 177.7777%; } + html.theme--documenter-dark .image.is-1by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 { + padding-top: 200%; } + html.theme--documenter-dark .image.is-1by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 { + padding-top: 300%; } + html.theme--documenter-dark .image.is-16x16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16x16 { + height: 16px; + width: 16px; } + html.theme--documenter-dark .image.is-24x24, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-24x24 { + height: 24px; + width: 24px; } + html.theme--documenter-dark .image.is-32x32, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-32x32 { + height: 32px; + width: 32px; } + html.theme--documenter-dark .image.is-48x48, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-48x48 { + height: 48px; + width: 48px; } + html.theme--documenter-dark .image.is-64x64, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-64x64 { + height: 64px; + width: 64px; } + html.theme--documenter-dark .image.is-96x96, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-96x96 { + height: 96px; + width: 96px; } + html.theme--documenter-dark .image.is-128x128, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-128x128 { + height: 128px; + width: 128px; } + html.theme--documenter-dark .notification { + background-color: #282f2f; + border-radius: 0.4em; + padding: 1.25rem 2.5rem 1.25rem 1.5rem; + position: relative; } + html.theme--documenter-dark .notification a:not(.button):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + html.theme--documenter-dark .notification strong { + color: currentColor; } + html.theme--documenter-dark .notification code, + html.theme--documenter-dark .notification pre { + background: white; } + html.theme--documenter-dark .notification pre code { + background: transparent; } + html.theme--documenter-dark .notification > .delete { + position: absolute; + right: 0.5rem; + top: 0.5rem; } + html.theme--documenter-dark .notification .title, + html.theme--documenter-dark .notification .subtitle, + html.theme--documenter-dark .notification .content { + color: currentColor; } + html.theme--documenter-dark .notification.is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .notification.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .notification.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .notification.is-dark, html.theme--documenter-dark .content kbd.notification { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .notification.is-primary, html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .notification.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .notification.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .notification.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .notification.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .notification.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .progress { + -moz-appearance: none; + -webkit-appearance: none; + border: none; + border-radius: 290486px; + display: block; + height: 15px; + overflow: hidden; + padding: 0; + width: 100%; } + html.theme--documenter-dark .progress::-webkit-progress-bar { + background-color: #5e6d6f; } + html.theme--documenter-dark .progress::-webkit-progress-value { + background-color: #dbdee0; } + html.theme--documenter-dark .progress::-moz-progress-bar { + background-color: #dbdee0; } + html.theme--documenter-dark .progress::-ms-fill { + background-color: #dbdee0; + border: none; } + html.theme--documenter-dark .progress.is-white::-webkit-progress-value { + background-color: white; } + html.theme--documenter-dark .progress.is-white::-moz-progress-bar { + background-color: white; } + html.theme--documenter-dark .progress.is-white::-ms-fill { + background-color: white; } + html.theme--documenter-dark .progress.is-white:indeterminate { + background-image: linear-gradient(to right, white 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-black::-webkit-progress-value { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black::-moz-progress-bar { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black::-ms-fill { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black:indeterminate { + background-image: linear-gradient(to right, #0a0a0a 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-light::-webkit-progress-value { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light::-moz-progress-bar { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light::-ms-fill { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light:indeterminate { + background-image: linear-gradient(to right, #ecf0f1 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-dark::-webkit-progress-value, html.theme--documenter-dark .content kbd.progress::-webkit-progress-value { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark::-moz-progress-bar, html.theme--documenter-dark .content kbd.progress::-moz-progress-bar { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark::-ms-fill, html.theme--documenter-dark .content kbd.progress::-ms-fill { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark:indeterminate, html.theme--documenter-dark .content kbd.progress:indeterminate { + background-image: linear-gradient(to right, #282f2f 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-primary::-webkit-progress-value, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary::-moz-progress-bar, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary::-ms-fill, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-ms-fill { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary:indeterminate, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink:indeterminate { + background-image: linear-gradient(to right, #375a7f 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-link::-webkit-progress-value { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link::-moz-progress-bar { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link::-ms-fill { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link:indeterminate { + background-image: linear-gradient(to right, #1abc9c 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-info::-webkit-progress-value { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info::-moz-progress-bar { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info::-ms-fill { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info:indeterminate { + background-image: linear-gradient(to right, #024c7d 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-success::-webkit-progress-value { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success::-moz-progress-bar { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success::-ms-fill { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success:indeterminate { + background-image: linear-gradient(to right, #008438 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-warning::-webkit-progress-value { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning::-moz-progress-bar { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning::-ms-fill { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning:indeterminate { + background-image: linear-gradient(to right, #ad8100 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-danger::-webkit-progress-value { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger::-moz-progress-bar { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger::-ms-fill { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger:indeterminate { + background-image: linear-gradient(to right, #9e1b0d 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress:indeterminate { + animation-duration: 1.5s; + animation-iteration-count: infinite; + animation-name: moveIndeterminate; + animation-timing-function: linear; + background-color: #5e6d6f; + background-image: linear-gradient(to right, #fff 30%, #5e6d6f 30%); + background-position: top left; + background-repeat: no-repeat; + background-size: 150% 150%; } + html.theme--documenter-dark .progress:indeterminate::-webkit-progress-bar { + background-color: transparent; } + html.theme--documenter-dark .progress:indeterminate::-moz-progress-bar { + background-color: transparent; } + html.theme--documenter-dark .progress.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.progress { + height: 0.85em; } + html.theme--documenter-dark .progress.is-medium { + height: 1.25rem; } + html.theme--documenter-dark .progress.is-large { + height: 1.5rem; } + +@keyframes moveIndeterminate { + from { + background-position: 200% 0; } + to { + background-position: -200% 0; } } + html.theme--documenter-dark .table { + background-color: #343c3d; + color: #fff; } + html.theme--documenter-dark .table td, + html.theme--documenter-dark .table th { + border: 1px solid #5e6d6f; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + html.theme--documenter-dark .table td.is-white, + html.theme--documenter-dark .table th.is-white { + background-color: white; + border-color: white; + 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: white; } + html.theme--documenter-dark .table td.is-light, + html.theme--documenter-dark .table th.is-light { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .table td.is-dark, + html.theme--documenter-dark .table th.is-dark { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .table td.is-primary, + html.theme--documenter-dark .table th.is-primary { + background-color: #375a7f; + border-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table td.is-link, + html.theme--documenter-dark .table th.is-link { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .table td.is-info, + html.theme--documenter-dark .table th.is-info { + background-color: #024c7d; + border-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .table td.is-success, + html.theme--documenter-dark .table th.is-success { + background-color: #008438; + border-color: #008438; + color: #fff; } + html.theme--documenter-dark .table td.is-warning, + html.theme--documenter-dark .table th.is-warning { + background-color: #ad8100; + border-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .table td.is-danger, + html.theme--documenter-dark .table th.is-danger { + background-color: #9e1b0d; + border-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .table td.is-narrow, + html.theme--documenter-dark .table th.is-narrow { + white-space: nowrap; + width: 1%; } + html.theme--documenter-dark .table td.is-selected, + html.theme--documenter-dark .table th.is-selected { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table td.is-selected a, + html.theme--documenter-dark .table td.is-selected strong, + html.theme--documenter-dark .table th.is-selected a, + html.theme--documenter-dark .table th.is-selected strong { + color: currentColor; } + html.theme--documenter-dark .table th { + color: #f2f2f2; } + html.theme--documenter-dark .table th:not([align]) { + text-align: left; } + html.theme--documenter-dark .table tr.is-selected { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table tr.is-selected a, + html.theme--documenter-dark .table tr.is-selected strong { + color: currentColor; } + html.theme--documenter-dark .table tr.is-selected td, + html.theme--documenter-dark .table tr.is-selected th { + border-color: #fff; + color: currentColor; } + html.theme--documenter-dark .table thead { + background-color: transparent; } + 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: transparent; } + 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: transparent; } + html.theme--documenter-dark .table tbody tr:last-child td, + html.theme--documenter-dark .table tbody tr:last-child th { + border-bottom-width: 0; } + html.theme--documenter-dark .table.is-bordered td, + html.theme--documenter-dark .table.is-bordered th { + border-width: 1px; } + html.theme--documenter-dark .table.is-bordered tr:last-child td, + html.theme--documenter-dark .table.is-bordered tr:last-child th { + border-bottom-width: 1px; } + html.theme--documenter-dark .table.is-fullwidth { + width: 100%; } + html.theme--documenter-dark .table.is-hoverable tbody tr:not(.is-selected):hover { + background-color: #282f2f; } + html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover { + background-color: #282f2f; } + html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) { + background-color: #2d3435; } + html.theme--documenter-dark .table.is-narrow td, + html.theme--documenter-dark .table.is-narrow th { + padding: 0.25em 0.5em; } + html.theme--documenter-dark .table.is-striped tbody tr:not(.is-selected):nth-child(even) { + background-color: #282f2f; } + html.theme--documenter-dark .table-container { + -webkit-overflow-scrolling: touch; + overflow: auto; + overflow-y: hidden; + max-width: 100%; } + html.theme--documenter-dark .tags { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .tags .tag, html.theme--documenter-dark .tags .content kbd, html.theme--documenter-dark .content .tags kbd, html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .tags .tag:not(:last-child), html.theme--documenter-dark .tags .content kbd:not(:last-child), html.theme--documenter-dark .content .tags kbd:not(:last-child), html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0.5rem; } + html.theme--documenter-dark .tags:last-child { + margin-bottom: -0.5rem; } + html.theme--documenter-dark .tags:not(:last-child) { + margin-bottom: 1rem; } + html.theme--documenter-dark .tags.are-medium .tag:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .content kbd:not(.is-normal):not(.is-large), html.theme--documenter-dark .content .tags.are-medium kbd:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large) { + font-size: 15px; } + html.theme--documenter-dark .tags.are-large .tag:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .content kbd:not(.is-normal):not(.is-medium), html.theme--documenter-dark .content .tags.are-large kbd:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium) { + font-size: 1.25rem; } + html.theme--documenter-dark .tags.is-centered { + justify-content: center; } + html.theme--documenter-dark .tags.is-centered .tag, html.theme--documenter-dark .tags.is-centered .content kbd, html.theme--documenter-dark .content .tags.is-centered kbd, html.theme--documenter-dark .tags.is-centered .docstring > section > a.docs-sourcelink { + margin-right: 0.25rem; + margin-left: 0.25rem; } + html.theme--documenter-dark .tags.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .tags.is-right .tag:not(:first-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:first-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0.5rem; } + html.theme--documenter-dark .tags.is-right .tag:not(:last-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:last-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0; } + html.theme--documenter-dark .tags.has-addons .tag, html.theme--documenter-dark .tags.has-addons .content kbd, html.theme--documenter-dark .content .tags.has-addons kbd, html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink { + margin-right: 0; } + html.theme--documenter-dark .tags.has-addons .tag:not(:first-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:first-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0; + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .tags.has-addons .tag:not(:last-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:last-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .tag:not(body), html.theme--documenter-dark .content kbd:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) { + align-items: center; + background-color: #282f2f; + border-radius: 0.4em; + color: #fff; + display: inline-flex; + font-size: 0.85em; + height: 2em; + justify-content: center; + line-height: 1.5; + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + html.theme--documenter-dark .tag:not(body) .delete, html.theme--documenter-dark .content kbd:not(body) .delete, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .delete { + margin-left: 0.25rem; + margin-right: -0.375rem; } + html.theme--documenter-dark .tag.is-white:not(body), html.theme--documenter-dark .content kbd.is-white:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-white:not(body) { + background-color: white; + 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: white; } + html.theme--documenter-dark .tag.is-light:not(body), html.theme--documenter-dark .content kbd.is-light:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-light:not(body) { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .tag.is-dark:not(body), html.theme--documenter-dark .content kbd:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-dark:not(body), html.theme--documenter-dark .content .docstring > section > kbd:not(body) { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .tag.is-primary:not(body), html.theme--documenter-dark .content kbd.is-primary:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .tag.is-link:not(body), html.theme--documenter-dark .content kbd.is-link:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-link:not(body) { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .tag.is-info:not(body), html.theme--documenter-dark .content kbd.is-info:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-info:not(body) { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .tag.is-success:not(body), html.theme--documenter-dark .content kbd.is-success:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-success:not(body) { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .tag.is-warning:not(body), html.theme--documenter-dark .content kbd.is-warning:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-warning:not(body) { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .tag.is-danger:not(body), html.theme--documenter-dark .content kbd.is-danger:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-danger:not(body) { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .tag.is-normal:not(body), html.theme--documenter-dark .content kbd.is-normal:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-normal:not(body) { + font-size: 0.85em; } + html.theme--documenter-dark .tag.is-medium:not(body), html.theme--documenter-dark .content kbd.is-medium:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-medium:not(body) { + font-size: 15px; } + html.theme--documenter-dark .tag.is-large:not(body), html.theme--documenter-dark .content kbd.is-large:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-large:not(body) { + font-size: 1.25rem; } + html.theme--documenter-dark .tag:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .content kbd:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child) { + margin-left: -0.375em; + margin-right: 0.1875em; } + html.theme--documenter-dark .tag:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .content kbd:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: -0.375em; } + html.theme--documenter-dark .tag:not(body) .icon:first-child:last-child, html.theme--documenter-dark .content kbd:not(body) .icon:first-child:last-child, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child { + margin-left: -0.375em; + margin-right: -0.375em; } + html.theme--documenter-dark .tag.is-delete:not(body), html.theme--documenter-dark .content kbd.is-delete:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body) { + margin-left: 1px; + padding: 0; + position: relative; + width: 2em; } + html.theme--documenter-dark .tag.is-delete:not(body)::before, html.theme--documenter-dark .content kbd.is-delete:not(body)::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::before, html.theme--documenter-dark .tag.is-delete:not(body)::after, html.theme--documenter-dark .content kbd.is-delete:not(body)::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + background-color: currentColor; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + html.theme--documenter-dark .tag.is-delete:not(body)::before, html.theme--documenter-dark .content kbd.is-delete:not(body)::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::before { + height: 1px; + width: 50%; } + html.theme--documenter-dark .tag.is-delete:not(body)::after, html.theme--documenter-dark .content kbd.is-delete:not(body)::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + height: 50%; + width: 1px; } + html.theme--documenter-dark .tag.is-delete:not(body):hover, html.theme--documenter-dark .content kbd.is-delete:not(body):hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):hover, html.theme--documenter-dark .tag.is-delete:not(body):focus, html.theme--documenter-dark .content kbd.is-delete:not(body):focus, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):focus { + background-color: #1d2122; } + html.theme--documenter-dark .tag.is-delete:not(body):active, html.theme--documenter-dark .content kbd.is-delete:not(body):active, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):active { + background-color: #111414; } + html.theme--documenter-dark .tag.is-rounded:not(body), html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:not(body), html.theme--documenter-dark .content kbd.is-rounded:not(body), html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-rounded:not(body) { + border-radius: 290486px; } + html.theme--documenter-dark a.tag:hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:hover { + text-decoration: underline; } + html.theme--documenter-dark .title, + html.theme--documenter-dark .subtitle { + word-break: break-word; } + html.theme--documenter-dark .title em, + html.theme--documenter-dark .title span, + html.theme--documenter-dark .subtitle em, + html.theme--documenter-dark .subtitle span { + font-weight: inherit; } + html.theme--documenter-dark .title sub, + html.theme--documenter-dark .subtitle sub { + font-size: 0.75em; } + html.theme--documenter-dark .title sup, + html.theme--documenter-dark .subtitle sup { + font-size: 0.75em; } + html.theme--documenter-dark .title .tag, html.theme--documenter-dark .title .content kbd, html.theme--documenter-dark .content .title kbd, html.theme--documenter-dark .title .docstring > section > a.docs-sourcelink, + html.theme--documenter-dark .subtitle .tag, + html.theme--documenter-dark .subtitle .content kbd, + html.theme--documenter-dark .content .subtitle kbd, + html.theme--documenter-dark .subtitle .docstring > section > a.docs-sourcelink { + vertical-align: middle; } + html.theme--documenter-dark .title { + color: #fff; + font-size: 2rem; + font-weight: 500; + line-height: 1.125; } + html.theme--documenter-dark .title strong { + color: inherit; + font-weight: inherit; } + html.theme--documenter-dark .title + .highlight { + margin-top: -0.75rem; } + html.theme--documenter-dark .title:not(.is-spaced) + .subtitle { + margin-top: -1.25rem; } + html.theme--documenter-dark .title.is-1 { + font-size: 3rem; } + html.theme--documenter-dark .title.is-2 { + font-size: 2.5rem; } + html.theme--documenter-dark .title.is-3 { + font-size: 2rem; } + html.theme--documenter-dark .title.is-4 { + font-size: 1.5rem; } + html.theme--documenter-dark .title.is-5 { + font-size: 1.25rem; } + html.theme--documenter-dark .title.is-6 { + font-size: 15px; } + html.theme--documenter-dark .title.is-7 { + font-size: 0.85em; } + html.theme--documenter-dark .subtitle { + color: #8c9b9d; + font-size: 1.25rem; + font-weight: 400; + line-height: 1.25; } + html.theme--documenter-dark .subtitle strong { + color: #8c9b9d; + font-weight: 600; } + html.theme--documenter-dark .subtitle:not(.is-spaced) + .title { + margin-top: -1.25rem; } + html.theme--documenter-dark .subtitle.is-1 { + font-size: 3rem; } + html.theme--documenter-dark .subtitle.is-2 { + font-size: 2.5rem; } + html.theme--documenter-dark .subtitle.is-3 { + font-size: 2rem; } + html.theme--documenter-dark .subtitle.is-4 { + font-size: 1.5rem; } + html.theme--documenter-dark .subtitle.is-5 { + font-size: 1.25rem; } + html.theme--documenter-dark .subtitle.is-6 { + font-size: 15px; } + html.theme--documenter-dark .subtitle.is-7 { + font-size: 0.85em; } + html.theme--documenter-dark .heading { + display: block; + font-size: 11px; + letter-spacing: 1px; + margin-bottom: 5px; + text-transform: uppercase; } + html.theme--documenter-dark .highlight { + font-weight: 400; + max-width: 100%; + overflow: hidden; + padding: 0; } + html.theme--documenter-dark .highlight pre { + overflow: auto; + max-width: 100%; } + html.theme--documenter-dark .number { + align-items: center; + background-color: #282f2f; + border-radius: 290486px; + display: inline-flex; + font-size: 1.25rem; + height: 2em; + justify-content: center; + margin-right: 1.5rem; + min-width: 2.5em; + padding: 0.25rem 0.5rem; + text-align: center; + vertical-align: top; } + html.theme--documenter-dark .select select, html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + background-color: #1f2424; + border-color: #5e6d6f; + border-radius: 0.4em; + color: #dbdee0; } + html.theme--documenter-dark .select select::-moz-placeholder, html.theme--documenter-dark .textarea::-moz-placeholder, html.theme--documenter-dark .input::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select::-webkit-input-placeholder, html.theme--documenter-dark .textarea::-webkit-input-placeholder, html.theme--documenter-dark .input::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select:-moz-placeholder, html.theme--documenter-dark .textarea:-moz-placeholder, html.theme--documenter-dark .input:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select:-ms-input-placeholder, html.theme--documenter-dark .textarea:-ms-input-placeholder, html.theme--documenter-dark .input:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select:hover, html.theme--documenter-dark .textarea:hover, html.theme--documenter-dark .input:hover, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:hover, html.theme--documenter-dark .select select.is-hovered, html.theme--documenter-dark .is-hovered.textarea, html.theme--documenter-dark .is-hovered.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-hovered { + border-color: #8c9b9d; } + html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .select select.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + border-color: #1abc9c; + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .select select[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], fieldset[disabled] html.theme--documenter-dark .select select, fieldset[disabled] html.theme--documenter-dark .textarea, fieldset[disabled] html.theme--documenter-dark .input, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + background-color: #8c9b9d; + border-color: #282f2f; + box-shadow: none; + color: white; } + html.theme--documenter-dark .select select[disabled]::-moz-placeholder, html.theme--documenter-dark .textarea[disabled]::-moz-placeholder, html.theme--documenter-dark .input[disabled]::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .select select::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .input::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .select select[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .textarea[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .input[disabled]::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .select select::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .input::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .select select[disabled]:-moz-placeholder, html.theme--documenter-dark .textarea[disabled]:-moz-placeholder, html.theme--documenter-dark .input[disabled]:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .select select:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .input:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .select select[disabled]:-ms-input-placeholder, html.theme--documenter-dark .textarea[disabled]:-ms-input-placeholder, html.theme--documenter-dark .input[disabled]:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .select select:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .input:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1); + max-width: 100%; + width: 100%; } + html.theme--documenter-dark .textarea[readonly], html.theme--documenter-dark .input[readonly], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[readonly] { + box-shadow: none; } + html.theme--documenter-dark .is-white.textarea, html.theme--documenter-dark .is-white.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white { + border-color: white; } + 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: 0.85em; } + html.theme--documenter-dark .is-medium.textarea, html.theme--documenter-dark .is-medium.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .is-large.textarea, html.theme--documenter-dark .is-large.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .is-fullwidth.textarea, html.theme--documenter-dark .is-fullwidth.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-fullwidth { + display: block; + width: 100%; } + html.theme--documenter-dark .is-inline.textarea, html.theme--documenter-dark .is-inline.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-inline { + display: inline; + width: auto; } + html.theme--documenter-dark .input.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .input.is-static, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-static { + background-color: transparent; + border-color: transparent; + box-shadow: none; + padding-left: 0; + padding-right: 0; } + html.theme--documenter-dark .textarea { + display: block; + max-width: 100%; + min-width: 100%; + padding: 0.625em; + resize: vertical; } + html.theme--documenter-dark .textarea:not([rows]) { + max-height: 600px; + min-height: 120px; } + html.theme--documenter-dark .textarea[rows] { + height: initial; } + html.theme--documenter-dark .textarea.has-fixed-size { + resize: none; } + html.theme--documenter-dark .radio, html.theme--documenter-dark .checkbox { + cursor: pointer; + display: inline-block; + line-height: 1.25; + position: relative; } + html.theme--documenter-dark .radio input, html.theme--documenter-dark .checkbox input { + cursor: pointer; } + html.theme--documenter-dark .radio:hover, html.theme--documenter-dark .checkbox:hover { + color: #8c9b9d; } + html.theme--documenter-dark .radio[disabled], html.theme--documenter-dark .checkbox[disabled], fieldset[disabled] html.theme--documenter-dark .radio, fieldset[disabled] html.theme--documenter-dark .checkbox { + color: white; + cursor: not-allowed; } + html.theme--documenter-dark .radio + .radio { + margin-left: 0.5em; } + html.theme--documenter-dark .select { + display: inline-block; + max-width: 100%; + position: relative; + vertical-align: top; } + html.theme--documenter-dark .select:not(.is-multiple) { + height: 2.25em; } + html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after { + border-color: #1abc9c; + right: 1.125em; + z-index: 4; } + html.theme--documenter-dark .select.is-rounded select, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select select { + border-radius: 290486px; + padding-left: 1em; } + html.theme--documenter-dark .select select { + cursor: pointer; + display: block; + font-size: 1em; + max-width: 100%; + outline: none; } + html.theme--documenter-dark .select select::-ms-expand { + display: none; } + html.theme--documenter-dark .select select[disabled]:hover, fieldset[disabled] html.theme--documenter-dark .select select:hover { + border-color: #282f2f; } + html.theme--documenter-dark .select select:not([multiple]) { + padding-right: 2.5em; } + html.theme--documenter-dark .select select[multiple] { + height: auto; + padding: 0; } + html.theme--documenter-dark .select select[multiple] option { + padding: 0.5em 1em; } + html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading):hover::after { + border-color: #8c9b9d; } + html.theme--documenter-dark .select.is-white:not(:hover)::after { + border-color: white; } + html.theme--documenter-dark .select.is-white select { + border-color: white; } + 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: black; } + 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: 0.85em; } + html.theme--documenter-dark .select.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .select.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .select.is-disabled::after { + border-color: white; } + html.theme--documenter-dark .select.is-fullwidth { + width: 100%; } + html.theme--documenter-dark .select.is-fullwidth select { + width: 100%; } + html.theme--documenter-dark .select.is-loading::after { + margin-top: 0; + position: absolute; + right: 0.625em; + top: 0.625em; + transform: none; } + html.theme--documenter-dark .select.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.85em; } + html.theme--documenter-dark .select.is-loading.is-medium:after { + font-size: 1.25rem; } + html.theme--documenter-dark .select.is-loading.is-large:after { + font-size: 1.5rem; } + html.theme--documenter-dark .file { + align-items: stretch; + display: flex; + justify-content: flex-start; + position: relative; } + html.theme--documenter-dark .file.is-white .file-cta { + background-color: white; + 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: white; } + 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: white; } + 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: white; } + html.theme--documenter-dark .file.is-black:active .file-cta, html.theme--documenter-dark .file.is-black.is-active .file-cta { + background-color: black; + border-color: transparent; + color: white; } + html.theme--documenter-dark .file.is-light .file-cta { + background-color: #ecf0f1; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-light:hover .file-cta, html.theme--documenter-dark .file.is-light.is-hovered .file-cta { + background-color: #e5eaec; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-light:focus .file-cta, html.theme--documenter-dark .file.is-light.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(236, 240, 241, 0.25); + color: #282f2f; } + html.theme--documenter-dark .file.is-light:active .file-cta, html.theme--documenter-dark .file.is-light.is-active .file-cta { + background-color: #dde4e6; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-dark .file-cta, html.theme--documenter-dark .content kbd.file .file-cta { + background-color: #282f2f; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:hover .file-cta, html.theme--documenter-dark .content kbd.file:hover .file-cta, html.theme--documenter-dark .file.is-dark.is-hovered .file-cta, html.theme--documenter-dark .content kbd.file.is-hovered .file-cta { + background-color: #232829; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:focus .file-cta, html.theme--documenter-dark .content kbd.file:focus .file-cta, html.theme--documenter-dark .file.is-dark.is-focused .file-cta, html.theme--documenter-dark .content kbd.file.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(40, 47, 47, 0.25); + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:active .file-cta, html.theme--documenter-dark .content kbd.file:active .file-cta, html.theme--documenter-dark .file.is-dark.is-active .file-cta, html.theme--documenter-dark .content kbd.file.is-active .file-cta { + background-color: #1d2122; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-primary .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink .file-cta { + background-color: #375a7f; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-primary:hover .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:hover .file-cta, html.theme--documenter-dark .file.is-primary.is-hovered .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-hovered.docs-sourcelink .file-cta { + background-color: #335476; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-primary:focus .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:focus .file-cta, html.theme--documenter-dark .file.is-primary.is-focused .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-focused.docs-sourcelink .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(55, 90, 127, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-primary:active .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:active .file-cta, html.theme--documenter-dark .file.is-primary.is-active .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-active.docs-sourcelink .file-cta { + background-color: #2f4d6d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link .file-cta { + background-color: #1abc9c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link:hover .file-cta, html.theme--documenter-dark .file.is-link.is-hovered .file-cta { + background-color: #18b193; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link:focus .file-cta, html.theme--documenter-dark .file.is-link.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(26, 188, 156, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-link:active .file-cta, html.theme--documenter-dark .file.is-link.is-active .file-cta { + background-color: #17a689; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info .file-cta { + background-color: #024c7d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info:hover .file-cta, html.theme--documenter-dark .file.is-info.is-hovered .file-cta { + background-color: #024470; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info:focus .file-cta, html.theme--documenter-dark .file.is-info.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(2, 76, 125, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-info:active .file-cta, html.theme--documenter-dark .file.is-info.is-active .file-cta { + background-color: #023d64; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success .file-cta { + background-color: #008438; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success:hover .file-cta, html.theme--documenter-dark .file.is-success.is-hovered .file-cta { + background-color: #007733; + 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: 0.85em; } + html.theme--documenter-dark .file.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .file.is-medium .file-icon .fa { + font-size: 21px; } + html.theme--documenter-dark .file.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .file.is-large .file-icon .fa { + font-size: 28px; } + html.theme--documenter-dark .file.has-name .file-cta { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .file.has-name .file-name { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .file.has-name.is-empty .file-cta { + border-radius: 0.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: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .file.is-boxed.has-name .file-name { + border-radius: 0 0 0.4em 0.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 0.4em 0.4em 0; } + html.theme--documenter-dark .file.is-right .file-name { + border-radius: 0.4em 0 0 0.4em; + border-width: 1px 0 1px 1px; + order: -1; } + html.theme--documenter-dark .file-label { + align-items: stretch; + display: flex; + cursor: pointer; + justify-content: flex-start; + overflow: hidden; + position: relative; } + html.theme--documenter-dark .file-label:hover .file-cta { + background-color: #e5eaec; + color: #282f2f; } + html.theme--documenter-dark .file-label:hover .file-name { + border-color: #596668; } + html.theme--documenter-dark .file-label:active .file-cta { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .file-label:active .file-name { + border-color: #535f61; } + html.theme--documenter-dark .file-input { + height: 100%; + left: 0; + opacity: 0; + outline: none; + position: absolute; + top: 0; + width: 100%; } + html.theme--documenter-dark .file-cta, + html.theme--documenter-dark .file-name { + border-color: #5e6d6f; + border-radius: 0.4em; + font-size: 1em; + padding-left: 1em; + padding-right: 1em; + white-space: nowrap; } + html.theme--documenter-dark .file-cta { + background-color: #ecf0f1; + color: #343c3d; } + html.theme--documenter-dark .file-name { + border-color: #5e6d6f; + border-style: solid; + border-width: 1px 1px 1px 0; + display: block; + max-width: 16em; + overflow: hidden; + text-align: left; + text-overflow: ellipsis; } + html.theme--documenter-dark .file-icon { + align-items: center; + display: flex; + height: 1em; + justify-content: center; + margin-right: 0.5em; + width: 1em; } + html.theme--documenter-dark .file-icon .fa { + font-size: 14px; } + html.theme--documenter-dark .label { + color: #282f2f; + display: block; + font-size: 15px; + font-weight: 700; } + html.theme--documenter-dark .label:not(:last-child) { + margin-bottom: 0.5em; } + html.theme--documenter-dark .label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.label { + font-size: 0.85em; } + html.theme--documenter-dark .label.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .label.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .help { + display: block; + font-size: 0.85em; + margin-top: 0.25rem; } + html.theme--documenter-dark .help.is-white { + color: white; } + html.theme--documenter-dark .help.is-black { + color: #0a0a0a; } + html.theme--documenter-dark .help.is-light { + color: #ecf0f1; } + html.theme--documenter-dark .help.is-dark, html.theme--documenter-dark .content kbd.help { + color: #282f2f; } + html.theme--documenter-dark .help.is-primary, html.theme--documenter-dark .docstring > section > a.help.docs-sourcelink { + color: #375a7f; } + html.theme--documenter-dark .help.is-link { + color: #1abc9c; } + html.theme--documenter-dark .help.is-info { + color: #024c7d; } + html.theme--documenter-dark .help.is-success { + color: #008438; } + html.theme--documenter-dark .help.is-warning { + color: #ad8100; } + html.theme--documenter-dark .help.is-danger { + color: #9e1b0d; } + html.theme--documenter-dark .field:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .field.has-addons { + display: flex; + justify-content: flex-start; } + html.theme--documenter-dark .field.has-addons .control:not(:last-child) { + margin-right: -1px; } + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .button, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .input, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .select select { + border-radius: 0; } + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .button, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .input, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .select select { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .button, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .input, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .select select { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):hover, html.theme--documenter-dark .field.has-addons .control .button.is-hovered:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input.is-hovered:not([disabled]), + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-hovered:not([disabled]), + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-hovered:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select.is-hovered:not([disabled]) { + z-index: 2; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus, html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]), html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active, html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]), + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]), + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]), + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]), + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]) { + z-index: 3; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus:hover, html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]):hover, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active:hover, html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]):hover { + z-index: 4; } + html.theme--documenter-dark .field.has-addons .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .field.has-addons.has-addons-centered { + justify-content: center; } + html.theme--documenter-dark .field.has-addons.has-addons-right { + justify-content: flex-end; } + html.theme--documenter-dark .field.has-addons.has-addons-fullwidth .control { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .field.is-grouped { + display: flex; + justify-content: flex-start; } + html.theme--documenter-dark .field.is-grouped > .control { + flex-shrink: 0; } + html.theme--documenter-dark .field.is-grouped > .control:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + html.theme--documenter-dark .field.is-grouped > .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .field.is-grouped.is-grouped-centered { + justify-content: center; } + html.theme--documenter-dark .field.is-grouped.is-grouped-right { + justify-content: flex-end; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline { + flex-wrap: wrap; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:last-child, html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:not(:last-child) { + margin-bottom: 0; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field.is-horizontal { + display: flex; } } + html.theme--documenter-dark .field-label .label { + font-size: inherit; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .field-label { + margin-bottom: 0.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field-label { + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + margin-right: 1.5rem; + text-align: right; } + html.theme--documenter-dark .field-label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.field-label { + font-size: 0.85em; + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-normal { + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-medium { + font-size: 1.25rem; + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-large { + font-size: 1.5rem; + padding-top: 0.375em; } } + html.theme--documenter-dark .field-body .field .field { + margin-bottom: 0; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field-body { + display: flex; + flex-basis: 0; + flex-grow: 5; + flex-shrink: 1; } + html.theme--documenter-dark .field-body .field { + margin-bottom: 0; } + html.theme--documenter-dark .field-body > .field { + flex-shrink: 1; } + html.theme--documenter-dark .field-body > .field:not(.is-narrow) { + flex-grow: 1; } + html.theme--documenter-dark .field-body > .field:not(:last-child) { + margin-right: 0.75rem; } } + html.theme--documenter-dark .control { + box-sizing: border-box; + clear: both; + font-size: 15px; + position: relative; + text-align: left; } + html.theme--documenter-dark .control.has-icons-left .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select:focus ~ .icon { + color: #5e6d6f; } + html.theme--documenter-dark .control.has-icons-left .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-small ~ .icon { + font-size: 0.85em; } + html.theme--documenter-dark .control.has-icons-left .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-medium ~ .icon { + font-size: 1.25rem; } + html.theme--documenter-dark .control.has-icons-left .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-large ~ .icon { + font-size: 1.5rem; } + html.theme--documenter-dark .control.has-icons-left .icon, html.theme--documenter-dark .control.has-icons-right .icon { + color: #dbdee0; + height: 2.25em; + pointer-events: none; + position: absolute; + top: 0; + width: 2.25em; + z-index: 4; } + html.theme--documenter-dark .control.has-icons-left .input, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input, + html.theme--documenter-dark .control.has-icons-left .select select { + padding-left: 2.25em; } + html.theme--documenter-dark .control.has-icons-left .icon.is-left { + left: 0; } + html.theme--documenter-dark .control.has-icons-right .input, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input, + html.theme--documenter-dark .control.has-icons-right .select select { + padding-right: 2.25em; } + html.theme--documenter-dark .control.has-icons-right .icon.is-right { + right: 0; } + html.theme--documenter-dark .control.is-loading::after { + position: absolute !important; + right: 0.625em; + top: 0.625em; + z-index: 4; } + html.theme--documenter-dark .control.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.85em; } + html.theme--documenter-dark .control.is-loading.is-medium:after { + font-size: 1.25rem; } + html.theme--documenter-dark .control.is-loading.is-large:after { + font-size: 1.5rem; } + html.theme--documenter-dark .breadcrumb { + font-size: 15px; + white-space: nowrap; } + html.theme--documenter-dark .breadcrumb a { + align-items: center; + color: #1abc9c; + display: flex; + justify-content: center; + padding: 0 0.75em; } + html.theme--documenter-dark .breadcrumb a:hover { + color: #1dd2af; } + html.theme--documenter-dark .breadcrumb li { + align-items: center; + display: flex; } + html.theme--documenter-dark .breadcrumb li:first-child a { + padding-left: 0; } + html.theme--documenter-dark .breadcrumb li.is-active a { + color: #f2f2f2; + cursor: default; + pointer-events: none; } + html.theme--documenter-dark .breadcrumb li + li::before { + color: #8c9b9d; + content: "\0002f"; } + html.theme--documenter-dark .breadcrumb ul, + html.theme--documenter-dark .breadcrumb ol { + align-items: flex-start; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .breadcrumb .icon:first-child { + margin-right: 0.5em; } + html.theme--documenter-dark .breadcrumb .icon:last-child { + margin-left: 0.5em; } + html.theme--documenter-dark .breadcrumb.is-centered ol, + html.theme--documenter-dark .breadcrumb.is-centered ul { + justify-content: center; } + html.theme--documenter-dark .breadcrumb.is-right ol, + html.theme--documenter-dark .breadcrumb.is-right ul { + justify-content: flex-end; } + html.theme--documenter-dark .breadcrumb.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.breadcrumb { + font-size: 0.85em; } + html.theme--documenter-dark .breadcrumb.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .breadcrumb.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .breadcrumb.has-arrow-separator li + li::before { + content: "\02192"; } + html.theme--documenter-dark .breadcrumb.has-bullet-separator li + li::before { + content: "\02022"; } + html.theme--documenter-dark .breadcrumb.has-dot-separator li + li::before { + content: "\000b7"; } + html.theme--documenter-dark .breadcrumb.has-succeeds-separator li + li::before { + content: "\0227B"; } + html.theme--documenter-dark .card { + background-color: white; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #fff; + max-width: 100%; + position: relative; } + html.theme--documenter-dark .card-header { + background-color: transparent; + align-items: stretch; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + display: flex; } + html.theme--documenter-dark .card-header-title { + align-items: center; + color: #f2f2f2; + display: flex; + flex-grow: 1; + font-weight: 700; + padding: 0.75rem; } + html.theme--documenter-dark .card-header-title.is-centered { + justify-content: center; } + html.theme--documenter-dark .card-header-icon { + align-items: center; + cursor: pointer; + display: flex; + justify-content: center; + padding: 0.75rem; } + html.theme--documenter-dark .card-image { + display: block; + position: relative; } + html.theme--documenter-dark .card-content { + background-color: transparent; + padding: 1.5rem; } + html.theme--documenter-dark .card-footer { + background-color: transparent; + border-top: 1px solid #5e6d6f; + align-items: stretch; + display: flex; } + html.theme--documenter-dark .card-footer-item { + align-items: center; + display: flex; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + justify-content: center; + padding: 0.75rem; } + html.theme--documenter-dark .card-footer-item:not(:last-child) { + border-right: 1px solid #5e6d6f; } + html.theme--documenter-dark .card .media:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .dropdown { + display: inline-flex; + position: relative; + vertical-align: top; } + html.theme--documenter-dark .dropdown.is-active .dropdown-menu, html.theme--documenter-dark .dropdown.is-hoverable:hover .dropdown-menu { + display: block; } + html.theme--documenter-dark .dropdown.is-right .dropdown-menu { + left: auto; + right: 0; } + html.theme--documenter-dark .dropdown.is-up .dropdown-menu { + bottom: 100%; + padding-bottom: 4px; + padding-top: initial; + top: auto; } + html.theme--documenter-dark .dropdown-menu { + display: none; + left: 0; + min-width: 12rem; + padding-top: 4px; + position: absolute; + top: 100%; + z-index: 20; } + html.theme--documenter-dark .dropdown-content { + background-color: #282f2f; + border-radius: 0.4em; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + html.theme--documenter-dark .dropdown-item { + color: #fff; + display: block; + font-size: 0.875rem; + line-height: 1.5; + padding: 0.375rem 1rem; + position: relative; } + html.theme--documenter-dark a.dropdown-item, + html.theme--documenter-dark button.dropdown-item { + padding-right: 3rem; + text-align: left; + white-space: nowrap; + width: 100%; } + html.theme--documenter-dark a.dropdown-item:hover, + html.theme--documenter-dark button.dropdown-item:hover { + background-color: #282f2f; + color: #0a0a0a; } + html.theme--documenter-dark a.dropdown-item.is-active, + html.theme--documenter-dark button.dropdown-item.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .dropdown-divider { + background-color: #5e6d6f; + border: none; + display: block; + height: 1px; + margin: 0.5rem 0; } + html.theme--documenter-dark .level { + align-items: center; + justify-content: space-between; } + html.theme--documenter-dark .level code { + border-radius: 0.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: 0.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: 0.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: 0.75rem; } } + html.theme--documenter-dark .level-left { + align-items: center; + justify-content: flex-start; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .level-left + .level-right { + margin-top: 1.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-left { + display: flex; } } + html.theme--documenter-dark .level-right { + align-items: center; + justify-content: flex-end; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-right { + display: flex; } } + html.theme--documenter-dark .list { + background-color: white; + border-radius: 0.4em; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .list-item { + display: block; + padding: 0.5em 1em; } + html.theme--documenter-dark .list-item:not(a) { + color: #fff; } + html.theme--documenter-dark .list-item:first-child { + border-top-left-radius: 0.4em; + border-top-right-radius: 0.4em; } + html.theme--documenter-dark .list-item:last-child { + border-bottom-left-radius: 0.4em; + border-bottom-right-radius: 0.4em; } + html.theme--documenter-dark .list-item:not(:last-child) { + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .list-item.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark a.list-item { + background-color: #282f2f; + cursor: pointer; } + html.theme--documenter-dark .media { + align-items: flex-start; + display: flex; + text-align: left; } + html.theme--documenter-dark .media .content:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .media .media { + border-top: 1px solid rgba(94, 109, 111, 0.5); + display: flex; + padding-top: 0.75rem; } + html.theme--documenter-dark .media .media .content:not(:last-child), + html.theme--documenter-dark .media .media .control:not(:last-child) { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .media .media .media { + padding-top: 0.5rem; } + html.theme--documenter-dark .media .media .media + .media { + margin-top: 0.5rem; } + html.theme--documenter-dark .media + .media { + border-top: 1px solid rgba(94, 109, 111, 0.5); + margin-top: 1rem; + padding-top: 1rem; } + html.theme--documenter-dark .media.is-large + .media { + margin-top: 1.5rem; + padding-top: 1.5rem; } + html.theme--documenter-dark .media-left, + html.theme--documenter-dark .media-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .media-left { + margin-right: 1rem; } + html.theme--documenter-dark .media-right { + margin-left: 1rem; } + html.theme--documenter-dark .media-content { + flex-basis: auto; + flex-grow: 1; + flex-shrink: 1; + text-align: left; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .media-content { + overflow-x: auto; } } + html.theme--documenter-dark .menu { + font-size: 15px; } + html.theme--documenter-dark .menu.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.menu { + font-size: 0.85em; } + html.theme--documenter-dark .menu.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .menu.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .menu-list { + line-height: 1.25; } + html.theme--documenter-dark .menu-list a { + border-radius: 3px; + color: #fff; + display: block; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .menu-list a:hover { + background-color: #282f2f; + color: #f2f2f2; } + html.theme--documenter-dark .menu-list a.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .menu-list li ul { + border-left: 1px solid #5e6d6f; + margin: 0.75em; + padding-left: 0.75em; } + html.theme--documenter-dark .menu-label { + color: white; + font-size: 0.75em; + letter-spacing: 0.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: 0.4em; + font-size: 15px; } + html.theme--documenter-dark .message strong { + color: currentColor; } + html.theme--documenter-dark .message a:not(.button):not(.tag):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + html.theme--documenter-dark .message.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.message { + font-size: 0.85em; } + html.theme--documenter-dark .message.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .message.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .message.is-white { + background-color: white; } + html.theme--documenter-dark .message.is-white .message-header { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .message.is-white .message-body { + border-color: white; + color: #4d4d4d; } + html.theme--documenter-dark .message.is-black { + background-color: #fafafa; } + html.theme--documenter-dark .message.is-black .message-header { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .message.is-black .message-body { + border-color: #0a0a0a; + color: #090909; } + html.theme--documenter-dark .message.is-light { + background-color: #f9fafb; } + html.theme--documenter-dark .message.is-light .message-header { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .message.is-light .message-body { + border-color: #ecf0f1; + color: #505050; } + html.theme--documenter-dark .message.is-dark, html.theme--documenter-dark .content kbd.message { + background-color: #f9fafa; } + html.theme--documenter-dark .message.is-dark .message-header, html.theme--documenter-dark .content kbd.message .message-header { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .message.is-dark .message-body, html.theme--documenter-dark .content kbd.message .message-body { + border-color: #282f2f; + color: #212526; } + html.theme--documenter-dark .message.is-primary, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink { + background-color: #f8fafc; } + html.theme--documenter-dark .message.is-primary .message-header, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-header { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .message.is-primary .message-body, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-body { + border-color: #375a7f; + color: #2b4159; } + html.theme--documenter-dark .message.is-link { + background-color: #f6fefc; } + html.theme--documenter-dark .message.is-link .message-header { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .message.is-link .message-body { + border-color: #1abc9c; + color: #0b2f28; } + html.theme--documenter-dark .message.is-info { + background-color: #f5fbff; } + html.theme--documenter-dark .message.is-info .message-header { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .message.is-info .message-body { + border-color: #024c7d; + color: #033659; } + html.theme--documenter-dark .message.is-success { + background-color: #f5fff9; } + html.theme--documenter-dark .message.is-success .message-header { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .message.is-success .message-body { + border-color: #008438; + color: #023518; } + html.theme--documenter-dark .message.is-warning { + background-color: #fffcf5; } + html.theme--documenter-dark .message.is-warning .message-header { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .message.is-warning .message-body { + border-color: #ad8100; + color: #3d2e03; } + html.theme--documenter-dark .message.is-danger { + background-color: #fef6f6; } + html.theme--documenter-dark .message.is-danger .message-header { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .message.is-danger .message-body { + border-color: #9e1b0d; + color: #7a170c; } + html.theme--documenter-dark .message-header { + align-items: center; + background-color: #fff; + border-radius: 0.4em 0.4em 0 0; + color: rgba(0, 0, 0, 0.7); + display: flex; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em 1em; + position: relative; } + html.theme--documenter-dark .message-header .delete { + flex-grow: 0; + flex-shrink: 0; + margin-left: 0.75em; } + html.theme--documenter-dark .message-header + .message-body { + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .message-body { + border-color: #5e6d6f; + border-radius: 0.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: white; } + html.theme--documenter-dark .message-body pre code { + background-color: transparent; } + html.theme--documenter-dark .modal { + align-items: center; + display: none; + flex-direction: column; + justify-content: center; + overflow: hidden; + position: fixed; + z-index: 40; } + html.theme--documenter-dark .modal.is-active { + display: flex; } + html.theme--documenter-dark .modal-background { + background-color: rgba(10, 10, 10, 0.86); } + html.theme--documenter-dark .modal-content, + html.theme--documenter-dark .modal-card { + margin: 0 20px; + max-height: calc(100vh - 160px); + overflow: auto; + position: relative; + width: 100%; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .modal-content, + html.theme--documenter-dark .modal-card { + margin: 0 auto; + max-height: calc(100vh - 40px); + width: 640px; } } + html.theme--documenter-dark .modal-close { + background: none; + height: 40px; + position: fixed; + right: 20px; + top: 20px; + width: 40px; } + html.theme--documenter-dark .modal-card { + display: flex; + flex-direction: column; + max-height: calc(100vh - 40px); + overflow: hidden; + -ms-overflow-y: visible; } + html.theme--documenter-dark .modal-card-head, + html.theme--documenter-dark .modal-card-foot { + align-items: center; + background-color: #282f2f; + display: flex; + flex-shrink: 0; + justify-content: flex-start; + padding: 20px; + position: relative; } + html.theme--documenter-dark .modal-card-head { + border-bottom: 1px solid #5e6d6f; + border-top-left-radius: 8px; + border-top-right-radius: 8px; } + html.theme--documenter-dark .modal-card-title { + color: #f2f2f2; + flex-grow: 1; + flex-shrink: 0; + font-size: 1.5rem; + line-height: 1; } + html.theme--documenter-dark .modal-card-foot { + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark .modal-card-foot .button:not(:last-child) { + margin-right: 0.5em; } + html.theme--documenter-dark .modal-card-body { + -webkit-overflow-scrolling: touch; + background-color: white; + 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: white; + 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: white; + color: #0a0a0a; } } + html.theme--documenter-dark .navbar.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link { + color: white; } + 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: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link::after { + border-color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-burger { + color: white; } + @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: white; } + 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: black; + color: white; } + 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: white; } + 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: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-dropdown a.navbar-item.is-active { + background-color: #0a0a0a; + color: white; } } + html.theme--documenter-dark .navbar.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link { + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link::after { + border-color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-burger { + color: #282f2f; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-light .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link { + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link::after { + border-color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-dropdown a.navbar-item.is-active { + background-color: #ecf0f1; + color: #282f2f; } } + html.theme--documenter-dark .navbar.is-dark, html.theme--documenter-dark .content kbd.navbar { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link { + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-burger, html.theme--documenter-dark .content kbd.navbar .navbar-burger { + color: #ecf0f1; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-dark .navbar-start > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-end > .navbar-item, + html.theme--documenter-dark .content kbd.navbar .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link { + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link::after, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-dropdown a.navbar-item.is-active { + background-color: #282f2f; + color: #ecf0f1; } } + html.theme--documenter-dark .navbar.is-primary, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-burger, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-primary .navbar-start > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-end > .navbar-item, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link::after, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { + background-color: #375a7f; + color: #fff; } } + html.theme--documenter-dark .navbar.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-link .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-dropdown a.navbar-item.is-active { + background-color: #1abc9c; + color: #fff; } } + html.theme--documenter-dark .navbar.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-info .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-dropdown a.navbar-item.is-active { + background-color: #024c7d; + color: #fff; } } + html.theme--documenter-dark .navbar.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-success .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-dropdown a.navbar-item.is-active { + background-color: #008438; + color: #fff; } } + html.theme--documenter-dark .navbar.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-warning .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-dropdown a.navbar-item.is-active { + background-color: #ad8100; + color: #fff; } } + html.theme--documenter-dark .navbar.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-danger .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-dropdown a.navbar-item.is-active { + background-color: #9e1b0d; + color: #fff; } } + html.theme--documenter-dark .navbar > .container { + align-items: stretch; + display: flex; + min-height: 4rem; + width: 100%; } + html.theme--documenter-dark .navbar.has-shadow { + box-shadow: 0 2px 0 0 #282f2f; } + html.theme--documenter-dark .navbar.is-fixed-bottom, html.theme--documenter-dark .navbar.is-fixed-top { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + html.theme--documenter-dark .navbar.is-fixed-bottom { + bottom: 0; } + html.theme--documenter-dark .navbar.is-fixed-bottom.has-shadow { + box-shadow: 0 -2px 0 0 #282f2f; } + html.theme--documenter-dark .navbar.is-fixed-top { + top: 0; } + html.theme--documenter-dark html.has-navbar-fixed-top, + html.theme--documenter-dark body.has-navbar-fixed-top { + padding-top: 4rem; } + html.theme--documenter-dark html.has-navbar-fixed-bottom, + html.theme--documenter-dark body.has-navbar-fixed-bottom { + padding-bottom: 4rem; } + html.theme--documenter-dark .navbar-brand, + html.theme--documenter-dark .navbar-tabs { + align-items: stretch; + display: flex; + flex-shrink: 0; + min-height: 4rem; } + html.theme--documenter-dark .navbar-brand a.navbar-item:focus, html.theme--documenter-dark .navbar-brand a.navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .navbar-tabs { + -webkit-overflow-scrolling: touch; + max-width: 100vw; + overflow-x: auto; + overflow-y: hidden; } + html.theme--documenter-dark .navbar-burger { + color: #fff; + cursor: pointer; + display: block; + height: 4rem; + position: relative; + width: 4rem; + margin-left: auto; } + html.theme--documenter-dark .navbar-burger span { + background-color: currentColor; + display: block; + height: 1px; + left: calc(50% - 8px); + position: absolute; + transform-origin: center; + transition-duration: 86ms; + transition-property: background-color, opacity, transform; + transition-timing-function: ease-out; + width: 16px; } + html.theme--documenter-dark .navbar-burger span:nth-child(1) { + top: calc(50% - 6px); } + html.theme--documenter-dark .navbar-burger span:nth-child(2) { + top: calc(50% - 1px); } + html.theme--documenter-dark .navbar-burger span:nth-child(3) { + top: calc(50% + 4px); } + html.theme--documenter-dark .navbar-burger:hover { + background-color: rgba(0, 0, 0, 0.05); } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(1) { + transform: translateY(5px) rotate(45deg); } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(2) { + opacity: 0; } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(3) { + transform: translateY(-5px) rotate(-45deg); } + html.theme--documenter-dark .navbar-menu { + display: none; } + html.theme--documenter-dark .navbar-item, + html.theme--documenter-dark .navbar-link { + color: #fff; + display: block; + line-height: 1.5; + padding: 0.5rem 0.75rem; + position: relative; } + html.theme--documenter-dark .navbar-item .icon:only-child, + html.theme--documenter-dark .navbar-link .icon:only-child { + margin-left: -0.25rem; + margin-right: -0.25rem; } + html.theme--documenter-dark a.navbar-item, + html.theme--documenter-dark .navbar-link { + cursor: pointer; } + html.theme--documenter-dark a.navbar-item:focus, html.theme--documenter-dark a.navbar-item:focus-within, html.theme--documenter-dark a.navbar-item:hover, html.theme--documenter-dark a.navbar-item.is-active, + html.theme--documenter-dark .navbar-link:focus, + html.theme--documenter-dark .navbar-link:focus-within, + html.theme--documenter-dark .navbar-link:hover, + html.theme--documenter-dark .navbar-link.is-active { + background-color: transparent; + color: #1abc9c; } + html.theme--documenter-dark .navbar-item { + display: block; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .navbar-item img { + max-height: 1.75rem; } + html.theme--documenter-dark .navbar-item.has-dropdown { + padding: 0; } + html.theme--documenter-dark .navbar-item.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .navbar-item.is-tab { + border-bottom: 1px solid transparent; + min-height: 4rem; + padding-bottom: calc(0.5rem - 1px); } + html.theme--documenter-dark .navbar-item.is-tab:focus, html.theme--documenter-dark .navbar-item.is-tab:hover { + background-color: transparent; + border-bottom-color: #1abc9c; } + html.theme--documenter-dark .navbar-item.is-tab.is-active { + background-color: transparent; + 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: 0.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: transparent; + color: #dbdee0; } + html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active { + background-color: transparent; + color: #1abc9c; } + html.theme--documenter-dark .navbar-burger { + display: none; } + html.theme--documenter-dark .navbar-item, + html.theme--documenter-dark .navbar-link { + align-items: center; + display: flex; } + html.theme--documenter-dark .navbar-item { + display: flex; } + html.theme--documenter-dark .navbar-item.has-dropdown { + align-items: stretch; } + html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-link::after { + transform: rotate(135deg) translate(0.25em, -0.25em); } + html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-dropdown { + border-bottom: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 8px 8px 0 0; + border-top: none; + bottom: 100%; + box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1); + top: auto; } + html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown { + display: block; } + .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed { + opacity: 1; + pointer-events: auto; + transform: translateY(0); } + html.theme--documenter-dark .navbar-menu { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .navbar-start { + justify-content: flex-start; + margin-right: auto; } + html.theme--documenter-dark .navbar-end { + justify-content: flex-end; + margin-left: auto; } + html.theme--documenter-dark .navbar-dropdown { + background-color: #375a7f; + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + border-top: 1px solid rgba(0, 0, 0, 0.2); + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1); + display: none; + font-size: 0.875rem; + left: 0; + min-width: 100%; + position: absolute; + top: 100%; + z-index: 20; } + html.theme--documenter-dark .navbar-dropdown .navbar-item { + padding: 0.375rem 1rem; + white-space: nowrap; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item { + padding-right: 3rem; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item:focus, html.theme--documenter-dark .navbar-dropdown a.navbar-item:hover { + background-color: transparent; + color: #dbdee0; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item.is-active { + background-color: transparent; + 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: transparent; } + 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: transparent; } } + html.theme--documenter-dark .hero.is-fullheight-with-navbar { + min-height: calc(100vh - 4rem); } + html.theme--documenter-dark .pagination { + font-size: 15px; + margin: -0.25rem; } + html.theme--documenter-dark .pagination.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination { + font-size: 0.85em; } + html.theme--documenter-dark .pagination.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .pagination.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .pagination.is-rounded .pagination-previous, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous, + html.theme--documenter-dark .pagination.is-rounded .pagination-next, + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next { + padding-left: 1em; + padding-right: 1em; + border-radius: 290486px; } + html.theme--documenter-dark .pagination.is-rounded .pagination-link, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link { + border-radius: 290486px; } + html.theme--documenter-dark .pagination, + html.theme--documenter-dark .pagination-list { + align-items: center; + display: flex; + justify-content: center; + text-align: center; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark .pagination-ellipsis { + font-size: 1em; + justify-content: center; + margin: 0.25rem; + padding-left: 0.5em; + padding-right: 0.5em; + text-align: center; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-link { + border-color: #5e6d6f; + color: #1abc9c; + min-width: 2.25em; } + html.theme--documenter-dark .pagination-previous:hover, + html.theme--documenter-dark .pagination-next:hover, + html.theme--documenter-dark .pagination-link:hover { + border-color: #8c9b9d; + color: #1dd2af; } + html.theme--documenter-dark .pagination-previous:focus, + html.theme--documenter-dark .pagination-next:focus, + html.theme--documenter-dark .pagination-link:focus { + border-color: #8c9b9d; } + html.theme--documenter-dark .pagination-previous:active, + html.theme--documenter-dark .pagination-next:active, + html.theme--documenter-dark .pagination-link:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); } + html.theme--documenter-dark .pagination-previous[disabled], + html.theme--documenter-dark .pagination-next[disabled], + html.theme--documenter-dark .pagination-link[disabled] { + background-color: #dbdee0; + border-color: #dbdee0; + box-shadow: none; + color: #5e6d6f; + opacity: 0.5; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next { + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + html.theme--documenter-dark .pagination-link.is-current { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .pagination-ellipsis { + color: #8c9b9d; + pointer-events: none; } + html.theme--documenter-dark .pagination-list { + flex-wrap: wrap; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .pagination { + flex-wrap: wrap; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .pagination-list li { + flex-grow: 1; + flex-shrink: 1; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .pagination-list { + flex-grow: 1; + flex-shrink: 1; + justify-content: flex-start; + order: 1; } + html.theme--documenter-dark .pagination-previous { + order: 2; } + html.theme--documenter-dark .pagination-next { + order: 3; } + html.theme--documenter-dark .pagination { + justify-content: space-between; } + html.theme--documenter-dark .pagination.is-centered .pagination-previous { + order: 1; } + html.theme--documenter-dark .pagination.is-centered .pagination-list { + justify-content: center; + order: 2; } + html.theme--documenter-dark .pagination.is-centered .pagination-next { + order: 3; } + html.theme--documenter-dark .pagination.is-right .pagination-previous { + order: 1; } + html.theme--documenter-dark .pagination.is-right .pagination-next { + order: 2; } + html.theme--documenter-dark .pagination.is-right .pagination-list { + justify-content: flex-end; + order: 3; } } + html.theme--documenter-dark .panel { + font-size: 15px; } + html.theme--documenter-dark .panel:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .panel-heading, + html.theme--documenter-dark .panel-tabs, + html.theme--documenter-dark .panel-block { + border-bottom: 1px solid #5e6d6f; + border-left: 1px solid #5e6d6f; + border-right: 1px solid #5e6d6f; } + html.theme--documenter-dark .panel-heading:first-child, + html.theme--documenter-dark .panel-tabs:first-child, + html.theme--documenter-dark .panel-block:first-child { + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark .panel-heading { + background-color: #282f2f; + border-radius: 0.4em 0.4em 0 0; + color: #f2f2f2; + font-size: 1.25em; + font-weight: 300; + line-height: 1.25; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .panel-tabs { + align-items: flex-end; + display: flex; + font-size: 0.875em; + justify-content: center; } + html.theme--documenter-dark .panel-tabs a { + border-bottom: 1px solid #5e6d6f; + margin-bottom: -1px; + padding: 0.5em; } + html.theme--documenter-dark .panel-tabs a.is-active { + border-bottom-color: #343c3d; + color: #17a689; } + html.theme--documenter-dark .panel-list a { + color: #fff; } + html.theme--documenter-dark .panel-list a:hover { + color: #1abc9c; } + html.theme--documenter-dark .panel-block { + align-items: center; + color: #f2f2f2; + display: flex; + justify-content: flex-start; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .panel-block input[type="checkbox"] { + margin-right: 0.75em; } + html.theme--documenter-dark .panel-block > .control { + flex-grow: 1; + flex-shrink: 1; + width: 100%; } + html.theme--documenter-dark .panel-block.is-wrapped { + flex-wrap: wrap; } + html.theme--documenter-dark .panel-block.is-active { + border-left-color: #1abc9c; + color: #17a689; } + html.theme--documenter-dark .panel-block.is-active .panel-icon { + color: #1abc9c; } + html.theme--documenter-dark a.panel-block, + html.theme--documenter-dark label.panel-block { + cursor: pointer; } + html.theme--documenter-dark a.panel-block:hover, + html.theme--documenter-dark label.panel-block:hover { + background-color: #282f2f; } + html.theme--documenter-dark .panel-icon { + display: inline-block; + font-size: 14px; + height: 1em; + line-height: 1em; + text-align: center; + vertical-align: top; + width: 1em; + color: white; + margin-right: 0.75em; } + html.theme--documenter-dark .panel-icon .fa { + font-size: inherit; + line-height: inherit; } + html.theme--documenter-dark .tabs { + -webkit-overflow-scrolling: touch; + align-items: stretch; + display: flex; + font-size: 15px; + justify-content: space-between; + overflow: hidden; + overflow-x: auto; + white-space: nowrap; } + html.theme--documenter-dark .tabs a { + align-items: center; + border-bottom-color: #5e6d6f; + border-bottom-style: solid; + border-bottom-width: 1px; + color: #fff; + display: flex; + justify-content: center; + margin-bottom: -1px; + padding: 0.5em 1em; + vertical-align: top; } + html.theme--documenter-dark .tabs a:hover { + border-bottom-color: #f2f2f2; + color: #f2f2f2; } + html.theme--documenter-dark .tabs li { + display: block; } + html.theme--documenter-dark .tabs li.is-active a { + border-bottom-color: #1abc9c; + color: #1abc9c; } + html.theme--documenter-dark .tabs ul { + align-items: center; + border-bottom-color: #5e6d6f; + border-bottom-style: solid; + border-bottom-width: 1px; + display: flex; + flex-grow: 1; + flex-shrink: 0; + justify-content: flex-start; } + html.theme--documenter-dark .tabs ul.is-left { + padding-right: 0.75em; } + html.theme--documenter-dark .tabs ul.is-center { + flex: none; + justify-content: center; + padding-left: 0.75em; + padding-right: 0.75em; } + html.theme--documenter-dark .tabs ul.is-right { + justify-content: flex-end; + padding-left: 0.75em; } + html.theme--documenter-dark .tabs .icon:first-child { + margin-right: 0.5em; } + html.theme--documenter-dark .tabs .icon:last-child { + margin-left: 0.5em; } + html.theme--documenter-dark .tabs.is-centered ul { + justify-content: center; } + html.theme--documenter-dark .tabs.is-right ul { + justify-content: flex-end; } + html.theme--documenter-dark .tabs.is-boxed a { + border: 1px solid transparent; + border-radius: 0.4em 0.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: white; + border-color: #5e6d6f; + border-bottom-color: transparent !important; } + html.theme--documenter-dark .tabs.is-fullwidth li { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .tabs.is-toggle a { + border-color: #5e6d6f; + border-style: solid; + border-width: 1px; + margin-bottom: 0; + position: relative; } + html.theme--documenter-dark .tabs.is-toggle a:hover { + background-color: #282f2f; + border-color: #8c9b9d; + z-index: 2; } + html.theme--documenter-dark .tabs.is-toggle li + li { + margin-left: -1px; } + html.theme--documenter-dark .tabs.is-toggle li:first-child a { + border-radius: 0.4em 0 0 0.4em; } + html.theme--documenter-dark .tabs.is-toggle li:last-child a { + border-radius: 0 0.4em 0.4em 0; } + html.theme--documenter-dark .tabs.is-toggle li.is-active a { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; + z-index: 1; } + html.theme--documenter-dark .tabs.is-toggle ul { + border-bottom: none; } + html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:first-child a { + border-bottom-left-radius: 290486px; + border-top-left-radius: 290486px; + padding-left: 1.25em; } + html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:last-child a { + border-bottom-right-radius: 290486px; + border-top-right-radius: 290486px; + padding-right: 1.25em; } + html.theme--documenter-dark .tabs.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.tabs { + font-size: 0.85em; } + html.theme--documenter-dark .tabs.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .tabs.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .column { + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + padding: 0.75rem; } + .columns.is-mobile > html.theme--documenter-dark .column.is-narrow { + flex: none; } + .columns.is-mobile > html.theme--documenter-dark .column.is-full { + flex: none; + width: 100%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-three-quarters { + flex: none; + width: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-two-thirds { + flex: none; + width: 66.6666%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-half { + flex: none; + width: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-third { + flex: none; + width: 33.3333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-quarter { + flex: none; + width: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-fifth { + flex: none; + width: 20%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-two-fifths { + flex: none; + width: 40%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-three-fifths { + flex: none; + width: 60%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-four-fifths { + flex: none; + width: 80%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-quarters { + margin-left: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-thirds { + margin-left: 66.6666%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-half { + margin-left: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-third { + margin-left: 33.3333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-quarter { + margin-left: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-fifth { + margin-left: 20%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-fifths { + margin-left: 40%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-fifths { + margin-left: 60%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-four-fifths { + margin-left: 80%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-0 { + flex: none; + width: 0%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-0 { + margin-left: 0%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-1 { + flex: none; + width: 8.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-1 { + margin-left: 8.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-2 { + flex: none; + width: 16.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-2 { + margin-left: 16.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-3 { + flex: none; + width: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-3 { + margin-left: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-4 { + flex: none; + width: 33.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-4 { + margin-left: 33.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-5 { + flex: none; + width: 41.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-5 { + margin-left: 41.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-6 { + flex: none; + width: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-6 { + margin-left: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-7 { + flex: none; + width: 58.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-7 { + margin-left: 58.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-8 { + flex: none; + width: 66.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-8 { + margin-left: 66.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-9 { + flex: none; + width: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-9 { + margin-left: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-10 { + flex: none; + width: 83.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-10 { + margin-left: 83.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-11 { + flex: none; + width: 91.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-11 { + margin-left: 91.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-12 { + flex: none; + width: 100%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-12 { + margin-left: 100%; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .column.is-narrow-mobile { + flex: none; } + html.theme--documenter-dark .column.is-full-mobile { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-mobile { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-mobile { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-mobile { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-mobile { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-mobile { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-mobile { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-mobile { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-mobile { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-mobile { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-mobile { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-mobile { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-mobile { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-mobile { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-mobile { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-mobile { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-mobile { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-mobile { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-mobile { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-mobile { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-mobile { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-mobile { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-mobile { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-mobile { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-mobile { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-mobile { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-mobile { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-mobile { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-mobile { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-mobile { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-mobile { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-mobile { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-mobile { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-mobile { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-mobile { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-mobile { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-mobile { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-mobile { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-mobile { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-mobile { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-mobile { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-mobile { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-mobile { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-mobile { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-mobile { + margin-left: 100%; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .column.is-narrow, html.theme--documenter-dark .column.is-narrow-tablet { + flex: none; } + html.theme--documenter-dark .column.is-full, html.theme--documenter-dark .column.is-full-tablet { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters, html.theme--documenter-dark .column.is-three-quarters-tablet { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds, html.theme--documenter-dark .column.is-two-thirds-tablet { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half, html.theme--documenter-dark .column.is-half-tablet { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third, html.theme--documenter-dark .column.is-one-third-tablet { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter, html.theme--documenter-dark .column.is-one-quarter-tablet { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth, html.theme--documenter-dark .column.is-one-fifth-tablet { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths, html.theme--documenter-dark .column.is-two-fifths-tablet { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths, html.theme--documenter-dark .column.is-three-fifths-tablet { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths, html.theme--documenter-dark .column.is-four-fifths-tablet { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters, html.theme--documenter-dark .column.is-offset-three-quarters-tablet { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds, html.theme--documenter-dark .column.is-offset-two-thirds-tablet { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half, html.theme--documenter-dark .column.is-offset-half-tablet { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third, html.theme--documenter-dark .column.is-offset-one-third-tablet { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter, html.theme--documenter-dark .column.is-offset-one-quarter-tablet { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth, html.theme--documenter-dark .column.is-offset-one-fifth-tablet { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths, html.theme--documenter-dark .column.is-offset-two-fifths-tablet { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths, html.theme--documenter-dark .column.is-offset-three-fifths-tablet { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths, html.theme--documenter-dark .column.is-offset-four-fifths-tablet { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0, html.theme--documenter-dark .column.is-0-tablet { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0, html.theme--documenter-dark .column.is-offset-0-tablet { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1, html.theme--documenter-dark .column.is-1-tablet { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1, html.theme--documenter-dark .column.is-offset-1-tablet { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2, html.theme--documenter-dark .column.is-2-tablet { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2, html.theme--documenter-dark .column.is-offset-2-tablet { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3, html.theme--documenter-dark .column.is-3-tablet { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3, html.theme--documenter-dark .column.is-offset-3-tablet { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4, html.theme--documenter-dark .column.is-4-tablet { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4, html.theme--documenter-dark .column.is-offset-4-tablet { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5, html.theme--documenter-dark .column.is-5-tablet { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5, html.theme--documenter-dark .column.is-offset-5-tablet { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6, html.theme--documenter-dark .column.is-6-tablet { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6, html.theme--documenter-dark .column.is-offset-6-tablet { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7, html.theme--documenter-dark .column.is-7-tablet { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7, html.theme--documenter-dark .column.is-offset-7-tablet { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8, html.theme--documenter-dark .column.is-8-tablet { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8, html.theme--documenter-dark .column.is-offset-8-tablet { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9, html.theme--documenter-dark .column.is-9-tablet { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9, html.theme--documenter-dark .column.is-offset-9-tablet { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10, html.theme--documenter-dark .column.is-10-tablet { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10, html.theme--documenter-dark .column.is-offset-10-tablet { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11, html.theme--documenter-dark .column.is-11-tablet { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11, html.theme--documenter-dark .column.is-offset-11-tablet { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12, html.theme--documenter-dark .column.is-12-tablet { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12, html.theme--documenter-dark .column.is-offset-12-tablet { + margin-left: 100%; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .column.is-narrow-touch { + flex: none; } + html.theme--documenter-dark .column.is-full-touch { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-touch { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-touch { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-touch { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-touch { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-touch { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-touch { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-touch { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-touch { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-touch { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-touch { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-touch { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-touch { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-touch { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-touch { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-touch { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-touch { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-touch { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-touch { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-touch { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-touch { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-touch { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-touch { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-touch { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-touch { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-touch { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-touch { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-touch { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-touch { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-touch { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-touch { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-touch { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-touch { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-touch { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-touch { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-touch { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-touch { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-touch { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-touch { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-touch { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-touch { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-touch { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-touch { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-touch { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-touch { + margin-left: 100%; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .column.is-narrow-desktop { + flex: none; } + html.theme--documenter-dark .column.is-full-desktop { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-desktop { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-desktop { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-desktop { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-desktop { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-desktop { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-desktop { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-desktop { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-desktop { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-desktop { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-desktop { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-desktop { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-desktop { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-desktop { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-desktop { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-desktop { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-desktop { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-desktop { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-desktop { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-desktop { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-desktop { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-desktop { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-desktop { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-desktop { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-desktop { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-desktop { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-desktop { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-desktop { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-desktop { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-desktop { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-desktop { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-desktop { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-desktop { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-desktop { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-desktop { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-desktop { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-desktop { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-desktop { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-desktop { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-desktop { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-desktop { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-desktop { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-desktop { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-desktop { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-desktop { + margin-left: 100%; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .column.is-narrow-widescreen { + flex: none; } + html.theme--documenter-dark .column.is-full-widescreen { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-widescreen { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-widescreen { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-widescreen { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-widescreen { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-widescreen { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-widescreen { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-widescreen { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-widescreen { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-widescreen { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-widescreen { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-widescreen { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-widescreen { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-widescreen { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-widescreen { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-widescreen { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-widescreen { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-widescreen { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-widescreen { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-widescreen { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-widescreen { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-widescreen { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-widescreen { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-widescreen { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-widescreen { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-widescreen { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-widescreen { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-widescreen { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-widescreen { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-widescreen { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-widescreen { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-widescreen { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-widescreen { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-widescreen { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-widescreen { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-widescreen { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-widescreen { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-widescreen { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-widescreen { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-widescreen { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-widescreen { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-widescreen { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-widescreen { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-widescreen { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-widescreen { + margin-left: 100%; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .column.is-narrow-fullhd { + flex: none; } + html.theme--documenter-dark .column.is-full-fullhd { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-fullhd { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-fullhd { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-fullhd { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-fullhd { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-fullhd { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-fullhd { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-fullhd { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-fullhd { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-fullhd { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-fullhd { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-fullhd { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-fullhd { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-fullhd { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-fullhd { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-fullhd { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-fullhd { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-fullhd { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-fullhd { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-fullhd { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-fullhd { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-fullhd { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-fullhd { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-fullhd { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-fullhd { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-fullhd { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-fullhd { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-fullhd { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-fullhd { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-fullhd { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-fullhd { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-fullhd { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-fullhd { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-fullhd { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-fullhd { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-fullhd { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-fullhd { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-fullhd { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-fullhd { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-fullhd { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-fullhd { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-fullhd { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-fullhd { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-fullhd { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-fullhd { + margin-left: 100%; } } + html.theme--documenter-dark .columns { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + html.theme--documenter-dark .columns:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .columns:not(:last-child) { + margin-bottom: calc(1.5rem - 0.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: 0.25rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-1-mobile { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-1-tablet { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-1-tablet-only { + --columnGap: 0.25rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-1-touch { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-1-desktop { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-1-desktop-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-1-widescreen { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-1-widescreen-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-1-fullhd { + --columnGap: 0.25rem; } } + html.theme--documenter-dark .columns.is-variable.is-2 { + --columnGap: 0.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-2-mobile { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-2-tablet { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-2-tablet-only { + --columnGap: 0.5rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-2-touch { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-2-desktop { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-2-desktop-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-2-widescreen { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-2-widescreen-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-2-fullhd { + --columnGap: 0.5rem; } } + html.theme--documenter-dark .columns.is-variable.is-3 { + --columnGap: 0.75rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-3-mobile { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-3-tablet { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-3-tablet-only { + --columnGap: 0.75rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-3-touch { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-3-desktop { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-3-desktop-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-3-widescreen { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-3-widescreen-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-3-fullhd { + --columnGap: 0.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: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + html.theme--documenter-dark .tile.is-ancestor:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .tile.is-ancestor:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .tile.is-child { + margin: 0 !important; } + html.theme--documenter-dark .tile.is-parent { + padding: 0.75rem; } + html.theme--documenter-dark .tile.is-vertical { + flex-direction: column; } + html.theme--documenter-dark .tile.is-vertical > .tile.is-child:not(:last-child) { + margin-bottom: 1.5rem !important; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .tile:not(.is-child) { + display: flex; } + html.theme--documenter-dark .tile.is-1 { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .tile.is-2 { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .tile.is-3 { + flex: none; + width: 25%; } + html.theme--documenter-dark .tile.is-4 { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .tile.is-5 { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .tile.is-6 { + flex: none; + width: 50%; } + html.theme--documenter-dark .tile.is-7 { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .tile.is-8 { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .tile.is-9 { + flex: none; + width: 75%; } + html.theme--documenter-dark .tile.is-10 { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .tile.is-11 { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .tile.is-12 { + flex: none; + width: 100%; } } + html.theme--documenter-dark .hero { + align-items: stretch; + display: flex; + flex-direction: column; + justify-content: space-between; } + html.theme--documenter-dark .hero .navbar { + background: none; } + html.theme--documenter-dark .hero .tabs ul { + border-bottom: none; } + html.theme--documenter-dark .hero.is-white { + background-color: white; + 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: white; } } + html.theme--documenter-dark .hero.is-white .navbar-item, + html.theme--documenter-dark .hero.is-white .navbar-link { + color: rgba(10, 10, 10, 0.7); } + html.theme--documenter-dark .hero.is-white a.navbar-item:hover, html.theme--documenter-dark .hero.is-white a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-white .navbar-link:hover, + html.theme--documenter-dark .hero.is-white .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .tabs a { + color: #0a0a0a; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-white .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-white .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a { + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a:hover { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .hero.is-white.is-bold { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 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%, white 71%, white 100%); } } + html.theme--documenter-dark .hero.is-black { + background-color: #0a0a0a; + color: white; } + 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: white; } + 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: white; } + @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: black; + color: white; } + html.theme--documenter-dark .hero.is-black .tabs a { + color: white; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-black .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-black .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-black .tabs.is-boxed a, html.theme--documenter-dark .hero.is-black .tabs.is-toggle a { + color: white; } + 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: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-black.is-bold { + background-image: linear-gradient(141deg, black 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, black 0%, #0a0a0a 71%, #181616 100%); } } + html.theme--documenter-dark .hero.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-light strong { + color: inherit; } + html.theme--documenter-dark .hero.is-light .title { + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .subtitle { + color: rgba(40, 47, 47, 0.9); } + html.theme--documenter-dark .hero.is-light .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-light .subtitle strong { + color: #282f2f; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-light .navbar-menu { + background-color: #ecf0f1; } } + html.theme--documenter-dark .hero.is-light .navbar-item, + html.theme--documenter-dark .hero.is-light .navbar-link { + color: rgba(40, 47, 47, 0.7); } + html.theme--documenter-dark .hero.is-light a.navbar-item:hover, html.theme--documenter-dark .hero.is-light a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-light .navbar-link:hover, + html.theme--documenter-dark .hero.is-light .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .tabs a { + color: #282f2f; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-light .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-light .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a { + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a:hover { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-light.is-bold { + background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-light.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); } } + html.theme--documenter-dark .hero.is-dark, html.theme--documenter-dark .content kbd.hero { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-dark strong, + html.theme--documenter-dark .content kbd.hero strong { + color: inherit; } + html.theme--documenter-dark .hero.is-dark .title, html.theme--documenter-dark .content kbd.hero .title { + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .subtitle, html.theme--documenter-dark .content kbd.hero .subtitle { + color: rgba(236, 240, 241, 0.9); } + html.theme--documenter-dark .hero.is-dark .subtitle a:not(.button), html.theme--documenter-dark .content kbd.hero .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-dark .subtitle strong, + html.theme--documenter-dark .content kbd.hero .subtitle strong { + color: #ecf0f1; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-dark .navbar-menu, html.theme--documenter-dark .content kbd.hero .navbar-menu { + background-color: #282f2f; } } + html.theme--documenter-dark .hero.is-dark .navbar-item, html.theme--documenter-dark .content kbd.hero .navbar-item, + html.theme--documenter-dark .hero.is-dark .navbar-link, + html.theme--documenter-dark .content kbd.hero .navbar-link { + color: rgba(236, 240, 241, 0.7); } + html.theme--documenter-dark .hero.is-dark a.navbar-item:hover, html.theme--documenter-dark .content kbd.hero a.navbar-item:hover, html.theme--documenter-dark .hero.is-dark a.navbar-item.is-active, html.theme--documenter-dark .content kbd.hero a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-dark .navbar-link:hover, + html.theme--documenter-dark .content kbd.hero .navbar-link:hover, + html.theme--documenter-dark .hero.is-dark .navbar-link.is-active, + html.theme--documenter-dark .content kbd.hero .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .tabs a, html.theme--documenter-dark .content kbd.hero .tabs a { + color: #ecf0f1; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-dark .tabs a:hover, html.theme--documenter-dark .content kbd.hero .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-dark .tabs li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a { + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a:hover { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .hero.is-dark.is-bold, html.theme--documenter-dark .content kbd.hero.is-bold { + background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-dark.is-bold .navbar-menu, html.theme--documenter-dark .content kbd.hero.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); } } + html.theme--documenter-dark .hero.is-primary, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-primary strong, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink strong { + color: inherit; } + html.theme--documenter-dark .hero.is-primary .title, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .title { + color: #fff; } + html.theme--documenter-dark .hero.is-primary .subtitle, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-primary .subtitle a:not(.button), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-primary .subtitle strong, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-primary .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-menu { + background-color: #375a7f; } } + html.theme--documenter-dark .hero.is-primary .navbar-item, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-item, + html.theme--documenter-dark .hero.is-primary .navbar-link, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-primary a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, html.theme--documenter-dark .hero.is-primary a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-primary .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link:hover, + html.theme--documenter-dark .hero.is-primary .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .hero.is-primary .tabs a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-primary .tabs a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-primary .tabs li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .hero.is-primary.is-bold, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink { + background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-primary.is-bold .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu { + background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); } } + html.theme--documenter-dark .hero.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-link strong { + color: inherit; } + html.theme--documenter-dark .hero.is-link .title { + color: #fff; } + html.theme--documenter-dark .hero.is-link .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-link .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-link .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-link .navbar-menu { + background-color: #1abc9c; } } + html.theme--documenter-dark .hero.is-link .navbar-item, + html.theme--documenter-dark .hero.is-link .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-link a.navbar-item:hover, html.theme--documenter-dark .hero.is-link a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-link .navbar-link:hover, + html.theme--documenter-dark .hero.is-link .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .hero.is-link .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-link .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-link .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .hero.is-link.is-bold { + background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-link.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); } } + html.theme--documenter-dark .hero.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-info strong { + color: inherit; } + html.theme--documenter-dark .hero.is-info .title { + color: #fff; } + html.theme--documenter-dark .hero.is-info .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-info .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-info .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-info .navbar-menu { + background-color: #024c7d; } } + html.theme--documenter-dark .hero.is-info .navbar-item, + html.theme--documenter-dark .hero.is-info .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-info a.navbar-item:hover, html.theme--documenter-dark .hero.is-info a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-info .navbar-link:hover, + html.theme--documenter-dark .hero.is-info .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .hero.is-info .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-info .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-info .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .hero.is-info.is-bold { + background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-info.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); } } + html.theme--documenter-dark .hero.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-success strong { + color: inherit; } + html.theme--documenter-dark .hero.is-success .title { + color: #fff; } + html.theme--documenter-dark .hero.is-success .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-success .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-success .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-success .navbar-menu { + background-color: #008438; } } + html.theme--documenter-dark .hero.is-success .navbar-item, + html.theme--documenter-dark .hero.is-success .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-success a.navbar-item:hover, html.theme--documenter-dark .hero.is-success a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-success .navbar-link:hover, + html.theme--documenter-dark .hero.is-success .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .hero.is-success .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-success .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-success .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #008438; } + html.theme--documenter-dark .hero.is-success.is-bold { + background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-success.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); } } + html.theme--documenter-dark .hero.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-warning strong { + color: inherit; } + html.theme--documenter-dark .hero.is-warning .title { + color: #fff; } + html.theme--documenter-dark .hero.is-warning .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-warning .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-warning .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-warning .navbar-menu { + background-color: #ad8100; } } + html.theme--documenter-dark .hero.is-warning .navbar-item, + html.theme--documenter-dark .hero.is-warning .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-warning a.navbar-item:hover, html.theme--documenter-dark .hero.is-warning a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-warning .navbar-link:hover, + html.theme--documenter-dark .hero.is-warning .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .hero.is-warning .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-warning .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-warning .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .hero.is-warning.is-bold { + background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-warning.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); } } + html.theme--documenter-dark .hero.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-danger strong { + color: inherit; } + html.theme--documenter-dark .hero.is-danger .title { + color: #fff; } + html.theme--documenter-dark .hero.is-danger .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-danger .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-danger .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-danger .navbar-menu { + background-color: #9e1b0d; } } + html.theme--documenter-dark .hero.is-danger .navbar-item, + html.theme--documenter-dark .hero.is-danger .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-danger a.navbar-item:hover, html.theme--documenter-dark .hero.is-danger a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-danger .navbar-link:hover, + html.theme--documenter-dark .hero.is-danger .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .hero.is-danger .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-danger .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-danger .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .hero.is-danger.is-bold { + background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-danger.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); } } + html.theme--documenter-dark .hero.is-small .hero-body, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.hero .hero-body { + padding-bottom: 1.5rem; + padding-top: 1.5rem; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero.is-medium .hero-body { + padding-bottom: 9rem; + padding-top: 9rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero.is-large .hero-body { + padding-bottom: 18rem; + padding-top: 18rem; } } + html.theme--documenter-dark .hero.is-halfheight .hero-body, html.theme--documenter-dark .hero.is-fullheight .hero-body, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body { + align-items: center; + display: flex; } + html.theme--documenter-dark .hero.is-halfheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body > .container { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .hero.is-halfheight { + min-height: 50vh; } + html.theme--documenter-dark .hero.is-fullheight { + min-height: 100vh; } + html.theme--documenter-dark .hero-video { + overflow: hidden; } + html.theme--documenter-dark .hero-video video { + left: 50%; + min-height: 100%; + min-width: 100%; + position: absolute; + top: 50%; + transform: translate3d(-50%, -50%, 0); } + html.theme--documenter-dark .hero-video.is-transparent { + opacity: 0.3; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero-video { + display: none; } } + html.theme--documenter-dark .hero-buttons { + margin-top: 1.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero-buttons .button { + display: flex; } + html.theme--documenter-dark .hero-buttons .button:not(:last-child) { + margin-bottom: 0.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero-buttons { + display: flex; + justify-content: center; } + html.theme--documenter-dark .hero-buttons .button:not(:last-child) { + margin-right: 1.5rem; } } + html.theme--documenter-dark .hero-head, + html.theme--documenter-dark .hero-foot { + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .hero-body { + flex-grow: 1; + flex-shrink: 0; + padding: 3rem 1.5rem; } + html.theme--documenter-dark .section { + padding: 3rem 1.5rem; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .section.is-medium { + padding: 9rem 1.5rem; } + html.theme--documenter-dark .section.is-large { + padding: 18rem 1.5rem; } } + html.theme--documenter-dark .footer { + background-color: #282f2f; + padding: 3rem 1.5rem 6rem; } + html.theme--documenter-dark hr { + height: 1px; } + html.theme--documenter-dark h6 { + text-transform: uppercase; + letter-spacing: 0.5px; } + html.theme--documenter-dark .hero { + background-color: #343c3d; } + html.theme--documenter-dark a { + transition: all 200ms ease; } + html.theme--documenter-dark .button { + transition: all 200ms ease; + border-width: 1px; + color: white; } + 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: white; } + 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: white; + 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: white; } + 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: 0.4em; } + html.theme--documenter-dark .card .card-image img { + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .card .card-header { + box-shadow: none; + background-color: rgba(18, 18, 18, 0.2); + border-radius: 0.4em 0.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: white; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-light a:not(.button) { + color: #282f2f; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-dark a:not(.button), html.theme--documenter-dark .content kbd.notification a:not(.button) { + color: #ecf0f1; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-primary a:not(.button), html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-link a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-info a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-success a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-warning a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-danger a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .tag, html.theme--documenter-dark .content kbd, html.theme--documenter-dark .docstring > section > a.docs-sourcelink { + border-radius: 0.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: white; } + html.theme--documenter-dark .message-body { + border-width: 1px; + border-color: #343c3d; } + html.theme--documenter-dark .navbar { + border-radius: 0.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 0.4em 0.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: transparent; } + html.theme--documenter-dark .hero.is-black .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-light .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + 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: transparent; } + 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: transparent; } + html.theme--documenter-dark .hero.is-link .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-info .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-success .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-warning .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-danger .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark h1 .docs-heading-anchor, html.theme--documenter-dark h1 .docs-heading-anchor:hover, html.theme--documenter-dark h1 .docs-heading-anchor:visited, html.theme--documenter-dark h2 .docs-heading-anchor, html.theme--documenter-dark h2 .docs-heading-anchor:hover, html.theme--documenter-dark h2 .docs-heading-anchor:visited, html.theme--documenter-dark h3 .docs-heading-anchor, html.theme--documenter-dark h3 .docs-heading-anchor:hover, html.theme--documenter-dark h3 .docs-heading-anchor:visited, html.theme--documenter-dark h4 .docs-heading-anchor, html.theme--documenter-dark h4 .docs-heading-anchor:hover, html.theme--documenter-dark h4 .docs-heading-anchor:visited, html.theme--documenter-dark h5 .docs-heading-anchor, html.theme--documenter-dark h5 .docs-heading-anchor:hover, html.theme--documenter-dark h5 .docs-heading-anchor:visited, html.theme--documenter-dark h6 .docs-heading-anchor, html.theme--documenter-dark h6 .docs-heading-anchor:hover, html.theme--documenter-dark h6 .docs-heading-anchor:visited { + color: #f2f2f2; } + html.theme--documenter-dark h1 .docs-heading-anchor-permalink, html.theme--documenter-dark h2 .docs-heading-anchor-permalink, html.theme--documenter-dark h3 .docs-heading-anchor-permalink, html.theme--documenter-dark h4 .docs-heading-anchor-permalink, html.theme--documenter-dark h5 .docs-heading-anchor-permalink, html.theme--documenter-dark h6 .docs-heading-anchor-permalink { + visibility: hidden; + vertical-align: middle; + margin-left: 0.5em; + font-size: 0.7rem; } + html.theme--documenter-dark h1 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h2 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h3 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h4 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h5 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h6 .docs-heading-anchor-permalink::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f0c1"; } + html.theme--documenter-dark h1:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h2:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h3:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h4:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h5:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h6:hover .docs-heading-anchor-permalink { + visibility: visible; } + html.theme--documenter-dark .docs-light-only { + display: none !important; } + html.theme--documenter-dark pre { + position: relative; + overflow: hidden; } + html.theme--documenter-dark pre code, html.theme--documenter-dark pre code.hljs { + padding: 0 0.75rem !important; + overflow: auto; + display: block; } + html.theme--documenter-dark pre code:first-of-type, html.theme--documenter-dark pre code.hljs:first-of-type { + padding-top: 0.5rem !important; } + html.theme--documenter-dark pre code:last-of-type, html.theme--documenter-dark pre code.hljs:last-of-type { + padding-bottom: 0.5rem !important; } + html.theme--documenter-dark pre .copy-button { + opacity: 0.2; + transition: opacity 0.2s; + position: absolute; + right: 0em; + top: 0em; + padding: 0.5em; + width: 2.5em; + height: 2.5em; + background: transparent; + border: none; + font-family: "Font Awesome 5 Free"; + color: #fff; + cursor: pointer; + text-align: center; } + html.theme--documenter-dark pre .copy-button:focus, html.theme--documenter-dark pre .copy-button:hover { + opacity: 1; + background: rgba(255, 255, 255, 0.1); + color: #1abc9c; } + html.theme--documenter-dark pre .copy-button.success { + color: #259a12; + opacity: 1; } + html.theme--documenter-dark pre .copy-button.error { + color: #cb3c33; + opacity: 1; } + html.theme--documenter-dark pre:hover .copy-button { + opacity: 1; } + html.theme--documenter-dark .admonition { + background-color: #282f2f; + border-style: solid; + border-width: 1px; + border-color: #5e6d6f; + border-radius: 0.4em; + font-size: 15px; } + html.theme--documenter-dark .admonition strong { + color: currentColor; } + html.theme--documenter-dark .admonition.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.admonition { + font-size: 0.85em; } + html.theme--documenter-dark .admonition.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .admonition.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .admonition.is-default { + background-color: #282f2f; + border-color: #5e6d6f; } + html.theme--documenter-dark .admonition.is-default > .admonition-header { + background-color: #5e6d6f; } + 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; } + 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; } + 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; } + 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; } + 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; } + html.theme--documenter-dark .admonition-header { + background-color: #5e6d6f; + align-items: center; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.5rem 0.75rem; + position: relative; } + html.theme--documenter-dark .admonition-header:before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + margin-right: 0.75rem; + content: "\f06a"; } + html.theme--documenter-dark .admonition-body { + color: #fff; + padding: 0.5rem 0.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: transparent; + border: 1px solid #5e6d6f; + box-shadow: none; + max-width: 100%; } + html.theme--documenter-dark .docstring > header { + display: flex; + flex-grow: 1; + align-items: stretch; + padding: 0.5rem 0.75rem; + background-color: #282f2f; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + box-shadow: none; + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .docstring > header code { + background-color: transparent; } + html.theme--documenter-dark .docstring > header .docstring-binding { + margin-right: 0.3em; } + html.theme--documenter-dark .docstring > header .docstring-category { + margin-left: 0.3em; } + html.theme--documenter-dark .docstring > section { + position: relative; + padding: 0.75rem 0.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: 0.375rem; + bottom: 0.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; + border-bottom: 3px solid #9e1b0d; + padding: 10px 35px; + text-align: center; + font-size: 15px; } + html.theme--documenter-dark .outdated-warning-overlay .outdated-warning-closer { + position: absolute; + top: calc(50% - 10px); + right: 18px; + cursor: pointer; + width: 12px; } + html.theme--documenter-dark .outdated-warning-overlay a { + color: #1abc9c; } + html.theme--documenter-dark .outdated-warning-overlay a:hover { + color: #1dd2af; } + html.theme--documenter-dark .content pre { + border: 1px solid #5e6d6f; } + html.theme--documenter-dark .content code { + font-weight: inherit; } + html.theme--documenter-dark .content a code { + color: #1abc9c; } + html.theme--documenter-dark .content h1 code, html.theme--documenter-dark .content h2 code, html.theme--documenter-dark .content h3 code, html.theme--documenter-dark .content h4 code, html.theme--documenter-dark .content h5 code, html.theme--documenter-dark .content h6 code { + color: #f2f2f2; } + html.theme--documenter-dark .content table { + display: block; + width: initial; + max-width: 100%; + overflow-x: auto; } + html.theme--documenter-dark .content blockquote > ul:first-child, html.theme--documenter-dark .content blockquote > ol:first-child, html.theme--documenter-dark .content .admonition-body > ul:first-child, html.theme--documenter-dark .content .admonition-body > ol:first-child { + margin-top: 0; } + html.theme--documenter-dark pre, html.theme--documenter-dark code { + font-variant-ligatures: no-contextual; } + html.theme--documenter-dark .breadcrumb a.is-disabled { + cursor: default; + pointer-events: none; } + html.theme--documenter-dark .breadcrumb a.is-disabled, html.theme--documenter-dark .breadcrumb a.is-disabled:hover { + color: #f2f2f2; } + html.theme--documenter-dark .hljs { + background: initial !important; } + html.theme--documenter-dark .katex .katex-mathml { + top: 0; + right: 0; } + html.theme--documenter-dark .katex-display, html.theme--documenter-dark mjx-container, html.theme--documenter-dark .MathJax_Display { + margin: 0.5em 0 !important; } + html.theme--documenter-dark html { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; } + html.theme--documenter-dark li.no-marker { + list-style: none; } + html.theme--documenter-dark #documenter .docs-main > article { + overflow-wrap: break-word; } + html.theme--documenter-dark #documenter .docs-main > article .math-container { + overflow-x: auto; + overflow-y: hidden; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-main { + max-width: 52rem; + margin-left: 20rem; + padding-right: 1rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main { + width: 100%; } + html.theme--documenter-dark #documenter .docs-main > article { + max-width: 52rem; + margin-left: auto; + margin-right: auto; + margin-bottom: 1rem; + padding: 0 1rem; } + html.theme--documenter-dark #documenter .docs-main > header, html.theme--documenter-dark #documenter .docs-main > nav { + max-width: 100%; + width: 100%; + margin: 0; } } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar { + background-color: #1f2424; + border-bottom: 1px solid #5e6d6f; + z-index: 2; + min-height: 4rem; + margin-bottom: 1rem; + display: flex; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .breadcrumb { + flex-grow: 1; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right { + display: flex; + white-space: nowrap; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-icon, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + display: inline-block; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label { + padding: 0; + margin-left: 0.3em; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button { + margin: auto 0 auto 1rem; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + font-size: 1.5rem; + margin: auto 0 auto 1rem; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar > * { + margin: auto 0; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main header.docs-navbar { + position: sticky; + top: 0; + padding: 0 1rem; + /* For Headroom.js */ + transition-property: top, box-shadow; + -webkit-transition-property: top, box-shadow; + /* Safari */ + transition-duration: 0.3s; + -webkit-transition-duration: 0.3s; + /* Safari */ } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--not-top { + box-shadow: 0.2rem 0rem 0.4rem #171717; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } + 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; + /* Safari */ } } + html.theme--documenter-dark #documenter .docs-main section.footnotes { + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-main section.footnotes li .tag:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .docstring > section > a.docs-sourcelink:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .content kbd:first-child, html.theme--documenter-dark .content #documenter .docs-main section.footnotes li kbd:first-child { + margin-right: 1em; + margin-bottom: 0.4em; } + html.theme--documenter-dark #documenter .docs-main .docs-footer { + display: flex; + flex-wrap: wrap; + margin-left: 0; + margin-right: 0; + border-top: 1px solid #5e6d6f; + padding-top: 1rem; + padding-bottom: 1rem; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main .docs-footer { + padding-left: 1rem; + padding-right: 1rem; } } + html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage, html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-prevpage { + flex-grow: 1; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage { + text-align: right; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .flexbox-break { + flex-basis: 100%; + height: 0; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .footer-message { + font-size: 0.8em; + margin: 0.5em auto 0 auto; + text-align: center; } + html.theme--documenter-dark #documenter .docs-sidebar { + display: flex; + flex-direction: column; + color: #fff; + background-color: #282f2f; + border-right: 1px solid #5e6d6f; + padding: 0; + flex: 0 0 18rem; + z-index: 5; + font-size: 15px; + position: fixed; + left: -18rem; + width: 18rem; + height: 100%; + transition: left 0.3s; + /* Setting up a nicer theme style for the scrollbar */ } + html.theme--documenter-dark #documenter .docs-sidebar.visible { + left: 0; + box-shadow: 0.4rem 0rem 0.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; + /* Managing collapsible submenus */ } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li > .tocitem { + font-weight: bold; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li li { + font-size: 14.25px; + margin-left: 1em; + border-left: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input.collapse-toggle { + display: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.collapsed { + display: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ ul.collapsed { + display: block; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem { + display: flex; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label { + flex-grow: 2; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron { + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; + font-size: 11.25px; + margin-left: 1rem; + margin-top: auto; + margin-bottom: auto; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f054"; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before { + content: "\f078"; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem { + display: block; + padding: 0.5rem 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem:hover { + color: #fff; + background: #282f2f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu a.tocitem:hover, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem:hover { + color: #fff; + background-color: #32393a; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active { + border-top: 1px solid #5e6d6f; + border-bottom: 1px solid #5e6d6f; + background-color: #1f2424; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover { + background-color: #1f2424; + color: #fff; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover { + background-color: #32393a; + color: #fff; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li.is-active:first-child { + border-top: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal { + margin: 0 0.5rem 0.5rem; + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal li { + font-size: 12.75px; + border-left: none; + margin-left: 0; + margin-top: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem { + width: 100%; + padding: 0; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before { + content: "⚬"; + margin-right: 0.4em; } + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search { + margin: auto; + margin-top: 0.5rem; + margin-bottom: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + width: 14.4rem; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar { + width: .3rem; + background: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #3b4445; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover { + background: #4e5a5c; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-sidebar { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar { + width: .3rem; + background: none; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #3b4445; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover { + background: #4e5a5c; } } + html.theme--documenter-dark #documenter .docs-main #documenter-search-info { + margin-bottom: 1rem; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results { + list-style-type: circle; + list-style-position: outside; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results li { + margin-left: 2rem; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results .docs-highlight { + background-color: yellow; } + html.theme--documenter-dark { + background-color: #1f2424; + font-size: 16px; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + html.theme--documenter-dark .ansi span.sgr1 { + font-weight: bolder; } + html.theme--documenter-dark .ansi span.sgr2 { + font-weight: lighter; } + html.theme--documenter-dark .ansi span.sgr3 { + font-style: italic; } + html.theme--documenter-dark .ansi span.sgr4 { + text-decoration: underline; } + html.theme--documenter-dark .ansi span.sgr7 { + color: #1f2424; + background-color: #fff; } + html.theme--documenter-dark .ansi span.sgr8 { + color: transparent; } + html.theme--documenter-dark .ansi span.sgr8 span { + color: transparent; } + html.theme--documenter-dark .ansi span.sgr9 { + text-decoration: line-through; } + html.theme--documenter-dark .ansi span.sgr30 { + color: #242424; } + html.theme--documenter-dark .ansi span.sgr31 { + color: #f6705f; } + html.theme--documenter-dark .ansi span.sgr32 { + color: #4fb43a; } + html.theme--documenter-dark .ansi span.sgr33 { + color: #f4c72f; } + html.theme--documenter-dark .ansi span.sgr34 { + color: #7587f0; } + html.theme--documenter-dark .ansi span.sgr35 { + color: #bc89d3; } + html.theme--documenter-dark .ansi span.sgr36 { + color: #49b6ca; } + html.theme--documenter-dark .ansi span.sgr37 { + color: #b3bdbe; } + html.theme--documenter-dark .ansi span.sgr40 { + background-color: #242424; } + html.theme--documenter-dark .ansi span.sgr41 { + background-color: #f6705f; } + html.theme--documenter-dark .ansi span.sgr42 { + background-color: #4fb43a; } + html.theme--documenter-dark .ansi span.sgr43 { + background-color: #f4c72f; } + html.theme--documenter-dark .ansi span.sgr44 { + background-color: #7587f0; } + html.theme--documenter-dark .ansi span.sgr45 { + background-color: #bc89d3; } + html.theme--documenter-dark .ansi span.sgr46 { + background-color: #49b6ca; } + html.theme--documenter-dark .ansi span.sgr47 { + background-color: #b3bdbe; } + html.theme--documenter-dark .ansi span.sgr90 { + color: #92a0a2; } + html.theme--documenter-dark .ansi span.sgr91 { + color: #ff8674; } + html.theme--documenter-dark .ansi span.sgr92 { + color: #79d462; } + html.theme--documenter-dark .ansi span.sgr93 { + color: #ffe76b; } + html.theme--documenter-dark .ansi span.sgr94 { + color: #8a98ff; } + html.theme--documenter-dark .ansi span.sgr95 { + color: #d2a4e6; } + html.theme--documenter-dark .ansi span.sgr96 { + color: #6bc8db; } + html.theme--documenter-dark .ansi span.sgr97 { + color: #ecf0f1; } + html.theme--documenter-dark .ansi span.sgr100 { + background-color: #92a0a2; } + html.theme--documenter-dark .ansi span.sgr101 { + background-color: #ff8674; } + html.theme--documenter-dark .ansi span.sgr102 { + background-color: #79d462; } + html.theme--documenter-dark .ansi span.sgr103 { + background-color: #ffe76b; } + html.theme--documenter-dark .ansi span.sgr104 { + background-color: #8a98ff; } + html.theme--documenter-dark .ansi span.sgr105 { + background-color: #d2a4e6; } + html.theme--documenter-dark .ansi span.sgr106 { + background-color: #6bc8db; } + html.theme--documenter-dark .ansi span.sgr107 { + background-color: #ecf0f1; } + html.theme--documenter-dark code.language-julia-repl > span.hljs-meta { + color: #4fb43a; + font-weight: bolder; } + html.theme--documenter-dark .hljs { + background: #2b2b2b; + color: #f8f8f2; } + html.theme--documenter-dark .hljs-comment, + html.theme--documenter-dark .hljs-quote { + color: #d4d0ab; } + html.theme--documenter-dark .hljs-variable, + html.theme--documenter-dark .hljs-template-variable, + html.theme--documenter-dark .hljs-tag, + html.theme--documenter-dark .hljs-name, + html.theme--documenter-dark .hljs-selector-id, + html.theme--documenter-dark .hljs-selector-class, + html.theme--documenter-dark .hljs-regexp, + html.theme--documenter-dark .hljs-deletion { + color: #ffa07a; } + html.theme--documenter-dark .hljs-number, + html.theme--documenter-dark .hljs-built_in, + html.theme--documenter-dark .hljs-literal, + html.theme--documenter-dark .hljs-type, + html.theme--documenter-dark .hljs-params, + html.theme--documenter-dark .hljs-meta, + html.theme--documenter-dark .hljs-link { + color: #f5ab35; } + html.theme--documenter-dark .hljs-attribute { + color: #ffd700; } + html.theme--documenter-dark .hljs-string, + html.theme--documenter-dark .hljs-symbol, + html.theme--documenter-dark .hljs-bullet, + html.theme--documenter-dark .hljs-addition { + color: #abe338; } + html.theme--documenter-dark .hljs-title, + html.theme--documenter-dark .hljs-section { + color: #00e0e0; } + html.theme--documenter-dark .hljs-keyword, + html.theme--documenter-dark .hljs-selector-tag { + color: #dcc6e0; } + html.theme--documenter-dark .hljs-emphasis { + font-style: italic; } + html.theme--documenter-dark .hljs-strong { + font-weight: bold; } + @media screen and (-ms-high-contrast: active) { + html.theme--documenter-dark .hljs-addition, + html.theme--documenter-dark .hljs-attribute, + html.theme--documenter-dark .hljs-built_in, + html.theme--documenter-dark .hljs-bullet, + html.theme--documenter-dark .hljs-comment, + html.theme--documenter-dark .hljs-link, + html.theme--documenter-dark .hljs-literal, + html.theme--documenter-dark .hljs-meta, + html.theme--documenter-dark .hljs-number, + html.theme--documenter-dark .hljs-params, + html.theme--documenter-dark .hljs-string, + html.theme--documenter-dark .hljs-symbol, + html.theme--documenter-dark .hljs-type, + html.theme--documenter-dark .hljs-quote { + color: highlight; } + html.theme--documenter-dark .hljs-keyword, + html.theme--documenter-dark .hljs-selector-tag { + font-weight: bold; } } + html.theme--documenter-dark .hljs-subst { + color: #f8f8f2; } diff --git a/previews/PR360/assets/themes/documenter-light.css b/previews/PR360/assets/themes/documenter-light.css new file mode 100644 index 000000000..9595d5b8e --- /dev/null +++ b/previews/PR360/assets/themes/documenter-light.css @@ -0,0 +1,7738 @@ +@charset "UTF-8"; +/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */ +@keyframes spinAround { + from { + transform: rotate(0deg); } + to { + transform: rotate(359deg); } } + +.tabs, .pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis, .breadcrumb, .file, .button, .is-unselectable, .modal-close, .delete { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +.navbar-link:not(.is-arrowless)::after, .select:not(.is-multiple):not(.is-loading)::after { + border: 3px solid transparent; + border-radius: 2px; + border-right: 0; + border-top: 0; + content: " "; + display: block; + height: 0.625em; + margin-top: -0.4375em; + pointer-events: none; + position: absolute; + top: 50%; + transform: rotate(-45deg); + transform-origin: center; + width: 0.625em; } + +.admonition:not(:last-child), .tabs:not(:last-child), .message:not(:last-child), .list:not(:last-child), .level:not(:last-child), .breadcrumb:not(:last-child), .highlight:not(:last-child), .block:not(:last-child), .title:not(:last-child), +.subtitle:not(:last-child), .table-container:not(:last-child), .table:not(:last-child), .progress:not(:last-child), .notification:not(:last-child), .content:not(:last-child), .box:not(:last-child) { + margin-bottom: 1.5rem; } + +.modal-close, .delete { + -moz-appearance: none; + -webkit-appearance: none; + background-color: rgba(10, 10, 10, 0.2); + border: none; + border-radius: 290486px; + cursor: pointer; + pointer-events: auto; + display: inline-block; + flex-grow: 0; + flex-shrink: 0; + font-size: 0; + height: 20px; + max-height: 20px; + max-width: 20px; + min-height: 20px; + min-width: 20px; + outline: none; + position: relative; + vertical-align: top; + width: 20px; } + .modal-close::before, .delete::before, .modal-close::after, .delete::after { + background-color: white; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + .modal-close::before, .delete::before { + height: 2px; + width: 50%; } + .modal-close::after, .delete::after { + height: 50%; + width: 2px; } + .modal-close:hover, .delete:hover, .modal-close:focus, .delete:focus { + background-color: rgba(10, 10, 10, 0.3); } + .modal-close:active, .delete:active { + background-color: rgba(10, 10, 10, 0.4); } + .is-small.modal-close, #documenter .docs-sidebar form.docs-search > input.modal-close, .is-small.delete, #documenter .docs-sidebar form.docs-search > input.delete { + height: 16px; + max-height: 16px; + max-width: 16px; + min-height: 16px; + min-width: 16px; + width: 16px; } + .is-medium.modal-close, .is-medium.delete { + height: 24px; + max-height: 24px; + max-width: 24px; + min-height: 24px; + min-width: 24px; + width: 24px; } + .is-large.modal-close, .is-large.delete { + height: 32px; + max-height: 32px; + max-width: 32px; + min-height: 32px; + min-width: 32px; + width: 32px; } + +.control.is-loading::after, .select.is-loading::after, .loader, .button.is-loading::after { + animation: spinAround 500ms infinite linear; + border: 2px solid #dbdbdb; + border-radius: 290486px; + border-right-color: transparent; + border-top-color: transparent; + content: ""; + display: block; + height: 1em; + position: relative; + width: 1em; } + +.hero-video, .modal-background, .modal, .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img, +.image.is-square .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img, +.image.is-1by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img, +.image.is-5by4 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img, +.image.is-4by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img, +.image.is-3by2 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img, +.image.is-5by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img, +.image.is-16by9 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img, +.image.is-2by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img, +.image.is-3by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img, +.image.is-4by5 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img, +.image.is-3by4 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img, +.image.is-2by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img, +.image.is-3by5 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img, +.image.is-9by16 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img, +.image.is-1by2 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img, +.image.is-1by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, .is-overlay { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; } + +.pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis, .file-cta, +.file-name, .select select, .textarea, .input, #documenter .docs-sidebar form.docs-search > input, .button { + -moz-appearance: none; + -webkit-appearance: none; + align-items: center; + border: 1px solid transparent; + border-radius: 4px; + box-shadow: none; + display: inline-flex; + font-size: 1rem; + height: 2.25em; + justify-content: flex-start; + line-height: 1.5; + padding-bottom: calc(0.375em - 1px); + padding-left: calc(0.625em - 1px); + padding-right: calc(0.625em - 1px); + padding-top: calc(0.375em - 1px); + position: relative; + vertical-align: top; } + .pagination-previous:focus, + .pagination-next:focus, + .pagination-link:focus, + .pagination-ellipsis:focus, .file-cta:focus, + .file-name:focus, .select select:focus, .textarea:focus, .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .button:focus, .is-focused.pagination-previous, + .is-focused.pagination-next, + .is-focused.pagination-link, + .is-focused.pagination-ellipsis, .is-focused.file-cta, + .is-focused.file-name, .select select.is-focused, .is-focused.textarea, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-focused.button, .pagination-previous:active, + .pagination-next:active, + .pagination-link:active, + .pagination-ellipsis:active, .file-cta:active, + .file-name:active, .select select:active, .textarea:active, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .button:active, .is-active.pagination-previous, + .is-active.pagination-next, + .is-active.pagination-link, + .is-active.pagination-ellipsis, .is-active.file-cta, + .is-active.file-name, .select select.is-active, .is-active.textarea, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .is-active.button { + outline: none; } + .pagination-previous[disabled], + .pagination-next[disabled], + .pagination-link[disabled], + .pagination-ellipsis[disabled], .file-cta[disabled], + .file-name[disabled], .select select[disabled], .textarea[disabled], .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], .button[disabled], fieldset[disabled] .pagination-previous, + fieldset[disabled] .pagination-next, + fieldset[disabled] .pagination-link, + fieldset[disabled] .pagination-ellipsis, fieldset[disabled] .file-cta, + fieldset[disabled] .file-name, fieldset[disabled] .select select, .select fieldset[disabled] select, fieldset[disabled] .textarea, fieldset[disabled] .input, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, fieldset[disabled] .button { + cursor: not-allowed; } + +/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */ +html, +body, +p, +ol, +ul, +li, +dl, +dt, +dd, +blockquote, +figure, +fieldset, +legend, +textarea, +pre, +iframe, +hr, +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + padding: 0; } + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: 100%; + font-weight: normal; } + +ul { + list-style: none; } + +button, +input, +select, +textarea { + margin: 0; } + +html { + box-sizing: border-box; } + +*, *::before, *::after { + box-sizing: inherit; } + +img, +embed, +iframe, +object, +video { + height: auto; + max-width: 100%; } + +audio { + max-width: 100%; } + +iframe { + border: 0; } + +table { + border-collapse: collapse; + border-spacing: 0; } + +td, +th { + padding: 0; } + td:not([align]), + th:not([align]) { + text-align: left; } + +html { + background-color: white; + font-size: 16px; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + +article, +aside, +figure, +footer, +header, +hgroup, +section { + display: block; } + +body, +button, +input, +select, +textarea { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; } + +code, +pre { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; } + +body { + color: #222222; + 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: #000000; + font-size: 0.875em; + font-weight: normal; + padding: 0.1em; } + +hr { + background-color: whitesmoke; + 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: 0.875em; } + +span { + font-style: inherit; + font-weight: inherit; } + +strong { + color: #222222; + font-weight: 700; } + +fieldset { + border: none; } + +pre { + -webkit-overflow-scrolling: touch; + background-color: whitesmoke; + color: #222222; + font-size: 0.875em; + overflow-x: auto; + padding: 1.25rem 1.5rem; + white-space: pre; + word-wrap: normal; } + pre code { + background-color: transparent; + color: currentColor; + font-size: 1em; + padding: 0; } + +table td, +table th { + vertical-align: top; } + table td:not([align]), + table th:not([align]) { + text-align: left; } + +table th { + color: #222222; } + +.is-clearfix::after { + clear: both; + content: " "; + display: table; } + +.is-pulled-left { + float: left !important; } + +.is-pulled-right { + float: right !important; } + +.is-clipped { + overflow: hidden !important; } + +.is-size-1 { + font-size: 3rem !important; } + +.is-size-2 { + font-size: 2.5rem !important; } + +.is-size-3 { + font-size: 2rem !important; } + +.is-size-4 { + font-size: 1.5rem !important; } + +.is-size-5 { + font-size: 1.25rem !important; } + +.is-size-6 { + font-size: 1rem !important; } + +.is-size-7, .docstring > section > a.docs-sourcelink { + font-size: 0.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: 0.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: 0.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: 0.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: 0.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: 0.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: 0.75rem !important; } } + +.has-text-centered { + text-align: center !important; } + +.has-text-justified { + text-align: justify !important; } + +.has-text-left { + text-align: left !important; } + +.has-text-right { + text-align: right !important; } + +@media screen and (max-width: 768px) { + .has-text-centered-mobile { + text-align: center !important; } } + +@media screen and (min-width: 769px), print { + .has-text-centered-tablet { + text-align: center !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-centered-tablet-only { + text-align: center !important; } } + +@media screen and (max-width: 1055px) { + .has-text-centered-touch { + text-align: center !important; } } + +@media screen and (min-width: 1056px) { + .has-text-centered-desktop { + text-align: center !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-centered-desktop-only { + text-align: center !important; } } + +@media screen and (min-width: 1216px) { + .has-text-centered-widescreen { + text-align: center !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-centered-widescreen-only { + text-align: center !important; } } + +@media screen and (min-width: 1408px) { + .has-text-centered-fullhd { + text-align: center !important; } } + +@media screen and (max-width: 768px) { + .has-text-justified-mobile { + text-align: justify !important; } } + +@media screen and (min-width: 769px), print { + .has-text-justified-tablet { + text-align: justify !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-justified-tablet-only { + text-align: justify !important; } } + +@media screen and (max-width: 1055px) { + .has-text-justified-touch { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) { + .has-text-justified-desktop { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-justified-desktop-only { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) { + .has-text-justified-widescreen { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-justified-widescreen-only { + text-align: justify !important; } } + +@media screen and (min-width: 1408px) { + .has-text-justified-fullhd { + text-align: justify !important; } } + +@media screen and (max-width: 768px) { + .has-text-left-mobile { + text-align: left !important; } } + +@media screen and (min-width: 769px), print { + .has-text-left-tablet { + text-align: left !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-left-tablet-only { + text-align: left !important; } } + +@media screen and (max-width: 1055px) { + .has-text-left-touch { + text-align: left !important; } } + +@media screen and (min-width: 1056px) { + .has-text-left-desktop { + text-align: left !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-left-desktop-only { + text-align: left !important; } } + +@media screen and (min-width: 1216px) { + .has-text-left-widescreen { + text-align: left !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-left-widescreen-only { + text-align: left !important; } } + +@media screen and (min-width: 1408px) { + .has-text-left-fullhd { + text-align: left !important; } } + +@media screen and (max-width: 768px) { + .has-text-right-mobile { + text-align: right !important; } } + +@media screen and (min-width: 769px), print { + .has-text-right-tablet { + text-align: right !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-right-tablet-only { + text-align: right !important; } } + +@media screen and (max-width: 1055px) { + .has-text-right-touch { + text-align: right !important; } } + +@media screen and (min-width: 1056px) { + .has-text-right-desktop { + text-align: right !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-right-desktop-only { + text-align: right !important; } } + +@media screen and (min-width: 1216px) { + .has-text-right-widescreen { + text-align: right !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-right-widescreen-only { + text-align: right !important; } } + +@media screen and (min-width: 1408px) { + .has-text-right-fullhd { + text-align: right !important; } } + +.is-capitalized { + text-transform: capitalize !important; } + +.is-lowercase { + text-transform: lowercase !important; } + +.is-uppercase { + text-transform: uppercase !important; } + +.is-italic { + font-style: italic !important; } + +.has-text-white { + color: white !important; } + +a.has-text-white:hover, a.has-text-white:focus { + color: #e6e6e6 !important; } + +.has-background-white { + background-color: white !important; } + +.has-text-black { + color: #0a0a0a !important; } + +a.has-text-black:hover, a.has-text-black:focus { + color: black !important; } + +.has-background-black { + background-color: #0a0a0a !important; } + +.has-text-light { + color: whitesmoke !important; } + +a.has-text-light:hover, a.has-text-light:focus { + color: #dbdbdb !important; } + +.has-background-light { + background-color: whitesmoke !important; } + +.has-text-dark { + color: #363636 !important; } + +a.has-text-dark:hover, a.has-text-dark:focus { + color: #1c1c1c !important; } + +.has-background-dark { + background-color: #363636 !important; } + +.has-text-primary { + color: #4eb5de !important; } + +a.has-text-primary:hover, a.has-text-primary:focus { + color: #27a1d2 !important; } + +.has-background-primary { + background-color: #4eb5de !important; } + +.has-text-link { + color: #2e63b8 !important; } + +a.has-text-link:hover, a.has-text-link:focus { + color: #244d8f !important; } + +.has-background-link { + background-color: #2e63b8 !important; } + +.has-text-info { + color: #209cee !important; } + +a.has-text-info:hover, a.has-text-info:focus { + color: #1081cb !important; } + +.has-background-info { + background-color: #209cee !important; } + +.has-text-success { + color: #22c35b !important; } + +a.has-text-success:hover, a.has-text-success:focus { + color: #1a9847 !important; } + +.has-background-success { + background-color: #22c35b !important; } + +.has-text-warning { + color: #ffdd57 !important; } + +a.has-text-warning:hover, a.has-text-warning:focus { + color: #ffd324 !important; } + +.has-background-warning { + background-color: #ffdd57 !important; } + +.has-text-danger { + color: #da0b00 !important; } + +a.has-text-danger:hover, a.has-text-danger:focus { + color: #a70800 !important; } + +.has-background-danger { + background-color: #da0b00 !important; } + +.has-text-black-bis { + color: #121212 !important; } + +.has-background-black-bis { + background-color: #121212 !important; } + +.has-text-black-ter { + color: #242424 !important; } + +.has-background-black-ter { + background-color: #242424 !important; } + +.has-text-grey-darker { + color: #363636 !important; } + +.has-background-grey-darker { + background-color: #363636 !important; } + +.has-text-grey-dark { + color: #4a4a4a !important; } + +.has-background-grey-dark { + background-color: #4a4a4a !important; } + +.has-text-grey { + color: #6b6b6b !important; } + +.has-background-grey { + background-color: #6b6b6b !important; } + +.has-text-grey-light { + color: #b5b5b5 !important; } + +.has-background-grey-light { + background-color: #b5b5b5 !important; } + +.has-text-grey-lighter { + color: #dbdbdb !important; } + +.has-background-grey-lighter { + background-color: #dbdbdb !important; } + +.has-text-white-ter { + color: whitesmoke !important; } + +.has-background-white-ter { + background-color: whitesmoke !important; } + +.has-text-white-bis { + color: #fafafa !important; } + +.has-background-white-bis { + background-color: #fafafa !important; } + +.has-text-weight-light { + font-weight: 300 !important; } + +.has-text-weight-normal { + font-weight: 400 !important; } + +.has-text-weight-medium { + font-weight: 500 !important; } + +.has-text-weight-semibold { + font-weight: 600 !important; } + +.has-text-weight-bold { + font-weight: 700 !important; } + +.is-family-primary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-secondary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-sans-serif { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-monospace { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-family-code { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-block { + display: block !important; } + +@media screen and (max-width: 768px) { + .is-block-mobile { + display: block !important; } } + +@media screen and (min-width: 769px), print { + .is-block-tablet { + display: block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-block-tablet-only { + display: block !important; } } + +@media screen and (max-width: 1055px) { + .is-block-touch { + display: block !important; } } + +@media screen and (min-width: 1056px) { + .is-block-desktop { + display: block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-block-desktop-only { + display: block !important; } } + +@media screen and (min-width: 1216px) { + .is-block-widescreen { + display: block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-block-widescreen-only { + display: block !important; } } + +@media screen and (min-width: 1408px) { + .is-block-fullhd { + display: block !important; } } + +.is-flex { + display: flex !important; } + +@media screen and (max-width: 768px) { + .is-flex-mobile { + display: flex !important; } } + +@media screen and (min-width: 769px), print { + .is-flex-tablet { + display: flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-flex-tablet-only { + display: flex !important; } } + +@media screen and (max-width: 1055px) { + .is-flex-touch { + display: flex !important; } } + +@media screen and (min-width: 1056px) { + .is-flex-desktop { + display: flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-flex-desktop-only { + display: flex !important; } } + +@media screen and (min-width: 1216px) { + .is-flex-widescreen { + display: flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-flex-widescreen-only { + display: flex !important; } } + +@media screen and (min-width: 1408px) { + .is-flex-fullhd { + display: flex !important; } } + +.is-inline { + display: inline !important; } + +@media screen and (max-width: 768px) { + .is-inline-mobile { + display: inline !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-tablet { + display: inline !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-tablet-only { + display: inline !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-touch { + display: inline !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-desktop { + display: inline !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-desktop-only { + display: inline !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-widescreen { + display: inline !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-widescreen-only { + display: inline !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-fullhd { + display: inline !important; } } + +.is-inline-block { + display: inline-block !important; } + +@media screen and (max-width: 768px) { + .is-inline-block-mobile { + display: inline-block !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-block-tablet { + display: inline-block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-block-tablet-only { + display: inline-block !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-block-touch { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-block-desktop { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-block-desktop-only { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-block-widescreen { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-block-widescreen-only { + display: inline-block !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-block-fullhd { + display: inline-block !important; } } + +.is-inline-flex { + display: inline-flex !important; } + +@media screen and (max-width: 768px) { + .is-inline-flex-mobile { + display: inline-flex !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-flex-tablet { + display: inline-flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-flex-tablet-only { + display: inline-flex !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-flex-touch { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-flex-desktop { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-flex-desktop-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-flex-widescreen { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-flex-widescreen-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-flex-fullhd { + display: inline-flex !important; } } + +.is-hidden { + display: none !important; } + +.is-sr-only { + border: none !important; + clip: rect(0, 0, 0, 0) !important; + height: 0.01em !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + white-space: nowrap !important; + width: 0.01em !important; } + +@media screen and (max-width: 768px) { + .is-hidden-mobile { + display: none !important; } } + +@media screen and (min-width: 769px), print { + .is-hidden-tablet { + display: none !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-hidden-tablet-only { + display: none !important; } } + +@media screen and (max-width: 1055px) { + .is-hidden-touch { + display: none !important; } } + +@media screen and (min-width: 1056px) { + .is-hidden-desktop { + display: none !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-hidden-desktop-only { + display: none !important; } } + +@media screen and (min-width: 1216px) { + .is-hidden-widescreen { + display: none !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-hidden-widescreen-only { + display: none !important; } } + +@media screen and (min-width: 1408px) { + .is-hidden-fullhd { + display: none !important; } } + +.is-invisible { + visibility: hidden !important; } + +@media screen and (max-width: 768px) { + .is-invisible-mobile { + visibility: hidden !important; } } + +@media screen and (min-width: 769px), print { + .is-invisible-tablet { + visibility: hidden !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-invisible-tablet-only { + visibility: hidden !important; } } + +@media screen and (max-width: 1055px) { + .is-invisible-touch { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) { + .is-invisible-desktop { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-invisible-desktop-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) { + .is-invisible-widescreen { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-invisible-widescreen-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1408px) { + .is-invisible-fullhd { + visibility: hidden !important; } } + +.is-marginless { + margin: 0 !important; } + +.is-paddingless { + padding: 0 !important; } + +.is-radiusless { + border-radius: 0 !important; } + +.is-shadowless { + box-shadow: none !important; } + +.is-relative { + position: relative !important; } + +.box { + background-color: white; + border-radius: 6px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #222222; + display: block; + padding: 1.25rem; } + +a.box:hover, a.box:focus { + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #2e63b8; } + +a.box:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #2e63b8; } + +.button { + background-color: white; + border-color: #dbdbdb; + border-width: 1px; + color: #363636; + cursor: pointer; + justify-content: center; + padding-bottom: calc(0.375em - 1px); + padding-left: 0.75em; + padding-right: 0.75em; + padding-top: calc(0.375em - 1px); + text-align: center; + white-space: nowrap; } + .button strong { + color: inherit; } + .button .icon, .button .icon.is-small, .button #documenter .docs-sidebar form.docs-search > input.icon, #documenter .docs-sidebar .button form.docs-search > input.icon, .button .icon.is-medium, .button .icon.is-large { + height: 1.5em; + width: 1.5em; } + .button .icon:first-child:not(:last-child) { + margin-left: calc(-0.375em - 1px); + margin-right: 0.1875em; } + .button .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: calc(-0.375em - 1px); } + .button .icon:first-child:last-child { + margin-left: calc(-0.375em - 1px); + margin-right: calc(-0.375em - 1px); } + .button:hover, .button.is-hovered { + border-color: #b5b5b5; + color: #363636; } + .button:focus, .button.is-focused { + border-color: #3c5dcd; + color: #363636; } + .button:focus:not(:active), .button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .button:active, .button.is-active { + border-color: #4a4a4a; + color: #363636; } + .button.is-text { + background-color: transparent; + border-color: transparent; + color: #222222; + text-decoration: underline; } + .button.is-text:hover, .button.is-text.is-hovered, .button.is-text:focus, .button.is-text.is-focused { + background-color: whitesmoke; + color: #222222; } + .button.is-text:active, .button.is-text.is-active { + background-color: #e8e8e8; + color: #222222; } + .button.is-text[disabled], fieldset[disabled] .button.is-text { + background-color: transparent; + border-color: transparent; + box-shadow: none; } + .button.is-white { + background-color: white; + 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: white; + border-color: transparent; + box-shadow: none; } + .button.is-white.is-inverted { + background-color: #0a0a0a; + color: white; } + .button.is-white.is-inverted:hover, .button.is-white.is-inverted.is-hovered { + background-color: black; } + .button.is-white.is-inverted[disabled], fieldset[disabled] .button.is-white.is-inverted { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; + color: white; } + .button.is-white.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + .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: white; + border-color: white; + color: #0a0a0a; } + .button.is-white.is-outlined.is-loading::after { + border-color: transparent transparent white white !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: white; + box-shadow: none; + color: white; } + .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: white; } + .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 white white !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: white; } + .button.is-black:hover, .button.is-black.is-hovered { + background-color: #040404; + border-color: transparent; + color: white; } + .button.is-black:focus, .button.is-black.is-focused { + border-color: transparent; + color: white; } + .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: black; + border-color: transparent; + color: white; } + .button.is-black[disabled], fieldset[disabled] .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; } + .button.is-black.is-inverted { + background-color: white; + 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: white; + border-color: transparent; + box-shadow: none; + color: #0a0a0a; } + .button.is-black.is-loading::after { + border-color: transparent transparent white white !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: white; } + .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 white white !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: white; + color: white; } + .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: white; + 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: white; + box-shadow: none; + color: white; } + .button.is-light { + background-color: whitesmoke; + border-color: transparent; + color: #363636; } + .button.is-light:hover, .button.is-light.is-hovered { + background-color: #eeeeee; + border-color: transparent; + color: #363636; } + .button.is-light:focus, .button.is-light.is-focused { + border-color: transparent; + color: #363636; } + .button.is-light:focus:not(:active), .button.is-light.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } + .button.is-light:active, .button.is-light.is-active { + background-color: #e8e8e8; + border-color: transparent; + color: #363636; } + .button.is-light[disabled], fieldset[disabled] .button.is-light { + background-color: whitesmoke; + border-color: transparent; + box-shadow: none; } + .button.is-light.is-inverted { + background-color: #363636; + color: whitesmoke; } + .button.is-light.is-inverted:hover, .button.is-light.is-inverted.is-hovered { + background-color: #292929; } + .button.is-light.is-inverted[disabled], fieldset[disabled] .button.is-light.is-inverted { + background-color: #363636; + border-color: transparent; + box-shadow: none; + color: whitesmoke; } + .button.is-light.is-loading::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-light.is-outlined { + background-color: transparent; + border-color: whitesmoke; + color: whitesmoke; } + .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: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .button.is-light.is-outlined.is-loading::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-light.is-outlined.is-loading:hover::after, .button.is-light.is-outlined.is-loading.is-hovered::after, .button.is-light.is-outlined.is-loading:focus::after, .button.is-light.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-light.is-outlined[disabled], fieldset[disabled] .button.is-light.is-outlined { + background-color: transparent; + border-color: whitesmoke; + box-shadow: none; + color: whitesmoke; } + .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #363636; + color: #363636; } + .button.is-light.is-inverted.is-outlined:hover, .button.is-light.is-inverted.is-outlined.is-hovered, .button.is-light.is-inverted.is-outlined:focus, .button.is-light.is-inverted.is-outlined.is-focused { + background-color: #363636; + color: whitesmoke; } + .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 whitesmoke whitesmoke !important; } + .button.is-light.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #363636; + box-shadow: none; + color: #363636; } + .button.is-dark, .content kbd.button { + background-color: #363636; + border-color: transparent; + color: whitesmoke; } + .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: whitesmoke; } + .button.is-dark:focus, .content kbd.button:focus, .button.is-dark.is-focused, .content kbd.button.is-focused { + border-color: transparent; + color: whitesmoke; } + .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: whitesmoke; } + .button.is-dark[disabled], .content kbd.button[disabled], fieldset[disabled] .button.is-dark, fieldset[disabled] .content kbd.button, .content fieldset[disabled] kbd.button { + background-color: #363636; + border-color: transparent; + box-shadow: none; } + .button.is-dark.is-inverted, .content kbd.button.is-inverted { + background-color: whitesmoke; + color: #363636; } + .button.is-dark.is-inverted:hover, .content kbd.button.is-inverted:hover, .button.is-dark.is-inverted.is-hovered, .content kbd.button.is-inverted.is-hovered { + background-color: #e8e8e8; } + .button.is-dark.is-inverted[disabled], .content kbd.button.is-inverted[disabled], fieldset[disabled] .button.is-dark.is-inverted, fieldset[disabled] .content kbd.button.is-inverted, .content fieldset[disabled] kbd.button.is-inverted { + background-color: whitesmoke; + border-color: transparent; + box-shadow: none; + color: #363636; } + .button.is-dark.is-loading::after, .content kbd.button.is-loading::after { + border-color: transparent transparent whitesmoke whitesmoke !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: whitesmoke; } + .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 whitesmoke whitesmoke !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: whitesmoke; + color: whitesmoke; } + .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: whitesmoke; + 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: whitesmoke; + box-shadow: none; + color: whitesmoke; } + .button.is-primary, .docstring > section > a.button.docs-sourcelink { + background-color: #4eb5de; + border-color: transparent; + color: #fff; } + .button.is-primary:hover, .docstring > section > a.button.docs-sourcelink:hover, .button.is-primary.is-hovered, .docstring > section > a.button.is-hovered.docs-sourcelink { + background-color: #43b1dc; + border-color: transparent; + color: #fff; } + .button.is-primary:focus, .docstring > section > a.button.docs-sourcelink:focus, .button.is-primary.is-focused, .docstring > section > a.button.is-focused.docs-sourcelink { + border-color: transparent; + color: #fff; } + .button.is-primary:focus:not(:active), .docstring > section > a.button.docs-sourcelink:focus:not(:active), .button.is-primary.is-focused:not(:active), .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) { + box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } + .button.is-primary:active, .docstring > section > a.button.docs-sourcelink:active, .button.is-primary.is-active, .docstring > section > a.button.is-active.docs-sourcelink { + background-color: #39acda; + border-color: transparent; + color: #fff; } + .button.is-primary[disabled], .docstring > section > a.button.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary, fieldset[disabled] .docstring > section > a.button.docs-sourcelink { + background-color: #4eb5de; + border-color: transparent; + box-shadow: none; } + .button.is-primary.is-inverted, .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + color: #4eb5de; } + .button.is-primary.is-inverted:hover, .docstring > section > a.button.is-inverted.docs-sourcelink:hover, .button.is-primary.is-inverted.is-hovered, .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink { + background-color: #f2f2f2; } + .button.is-primary.is-inverted[disabled], .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-inverted, fieldset[disabled] .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #4eb5de; } + .button.is-primary.is-loading::after, .docstring > section > a.button.is-loading.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-primary.is-outlined, .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #4eb5de; + color: #4eb5de; } + .button.is-primary.is-outlined:hover, .docstring > section > a.button.is-outlined.docs-sourcelink:hover, .button.is-primary.is-outlined.is-hovered, .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-outlined:focus, .docstring > section > a.button.is-outlined.docs-sourcelink:focus, .button.is-primary.is-outlined.is-focused, .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink { + background-color: #4eb5de; + border-color: #4eb5de; + color: #fff; } + .button.is-primary.is-outlined.is-loading::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after { + border-color: transparent transparent #4eb5de #4eb5de !important; } + .button.is-primary.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-primary.is-outlined[disabled], .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-outlined, fieldset[disabled] .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #4eb5de; + box-shadow: none; + color: #4eb5de; } + .button.is-primary.is-inverted.is-outlined, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-primary.is-inverted.is-outlined:hover, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, .button.is-primary.is-inverted.is-outlined.is-hovered, .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-inverted.is-outlined:focus, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, .button.is-primary.is-inverted.is-outlined.is-focused, .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink { + background-color: #fff; + color: #4eb5de; } + .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #4eb5de #4eb5de !important; } + .button.is-primary.is-inverted.is-outlined[disabled], .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-inverted.is-outlined, fieldset[disabled] .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-link { + background-color: #2e63b8; + border-color: transparent; + color: #fff; } + .button.is-link:hover, .button.is-link.is-hovered { + background-color: #2b5eae; + border-color: transparent; + color: #fff; } + .button.is-link:focus, .button.is-link.is-focused { + border-color: transparent; + color: #fff; } + .button.is-link:focus:not(:active), .button.is-link.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .button.is-link:active, .button.is-link.is-active { + background-color: #2958a4; + border-color: transparent; + color: #fff; } + .button.is-link[disabled], fieldset[disabled] .button.is-link { + background-color: #2e63b8; + border-color: transparent; + box-shadow: none; } + .button.is-link.is-inverted { + background-color: #fff; + color: #2e63b8; } + .button.is-link.is-inverted:hover, .button.is-link.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-link.is-inverted[disabled], fieldset[disabled] .button.is-link.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #2e63b8; } + .button.is-link.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-link.is-outlined { + background-color: transparent; + border-color: #2e63b8; + color: #2e63b8; } + .button.is-link.is-outlined:hover, .button.is-link.is-outlined.is-hovered, .button.is-link.is-outlined:focus, .button.is-link.is-outlined.is-focused { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + .button.is-link.is-outlined.is-loading::after { + border-color: transparent transparent #2e63b8 #2e63b8 !important; } + .button.is-link.is-outlined.is-loading:hover::after, .button.is-link.is-outlined.is-loading.is-hovered::after, .button.is-link.is-outlined.is-loading:focus::after, .button.is-link.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-link.is-outlined[disabled], fieldset[disabled] .button.is-link.is-outlined { + background-color: transparent; + border-color: #2e63b8; + box-shadow: none; + color: #2e63b8; } + .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-link.is-inverted.is-outlined:hover, .button.is-link.is-inverted.is-outlined.is-hovered, .button.is-link.is-inverted.is-outlined:focus, .button.is-link.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #2e63b8; } + .button.is-link.is-inverted.is-outlined.is-loading:hover::after, .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-link.is-inverted.is-outlined.is-loading:focus::after, .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #2e63b8 #2e63b8 !important; } + .button.is-link.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-info { + background-color: #209cee; + border-color: transparent; + color: #fff; } + .button.is-info:hover, .button.is-info.is-hovered { + background-color: #1497ed; + border-color: transparent; + color: #fff; } + .button.is-info:focus, .button.is-info.is-focused { + border-color: transparent; + color: #fff; } + .button.is-info:focus:not(:active), .button.is-info.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } + .button.is-info:active, .button.is-info.is-active { + background-color: #1190e3; + border-color: transparent; + color: #fff; } + .button.is-info[disabled], fieldset[disabled] .button.is-info { + background-color: #209cee; + border-color: transparent; + box-shadow: none; } + .button.is-info.is-inverted { + background-color: #fff; + color: #209cee; } + .button.is-info.is-inverted:hover, .button.is-info.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-info.is-inverted[disabled], fieldset[disabled] .button.is-info.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #209cee; } + .button.is-info.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-info.is-outlined { + background-color: transparent; + border-color: #209cee; + color: #209cee; } + .button.is-info.is-outlined:hover, .button.is-info.is-outlined.is-hovered, .button.is-info.is-outlined:focus, .button.is-info.is-outlined.is-focused { + background-color: #209cee; + border-color: #209cee; + color: #fff; } + .button.is-info.is-outlined.is-loading::after { + border-color: transparent transparent #209cee #209cee !important; } + .button.is-info.is-outlined.is-loading:hover::after, .button.is-info.is-outlined.is-loading.is-hovered::after, .button.is-info.is-outlined.is-loading:focus::after, .button.is-info.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-info.is-outlined[disabled], fieldset[disabled] .button.is-info.is-outlined { + background-color: transparent; + border-color: #209cee; + box-shadow: none; + color: #209cee; } + .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-info.is-inverted.is-outlined:hover, .button.is-info.is-inverted.is-outlined.is-hovered, .button.is-info.is-inverted.is-outlined:focus, .button.is-info.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #209cee; } + .button.is-info.is-inverted.is-outlined.is-loading:hover::after, .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-info.is-inverted.is-outlined.is-loading:focus::after, .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #209cee #209cee !important; } + .button.is-info.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-success { + background-color: #22c35b; + border-color: transparent; + color: #fff; } + .button.is-success:hover, .button.is-success.is-hovered { + background-color: #20b856; + border-color: transparent; + color: #fff; } + .button.is-success:focus, .button.is-success.is-focused { + border-color: transparent; + color: #fff; } + .button.is-success:focus:not(:active), .button.is-success.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } + .button.is-success:active, .button.is-success.is-active { + background-color: #1ead51; + border-color: transparent; + color: #fff; } + .button.is-success[disabled], fieldset[disabled] .button.is-success { + background-color: #22c35b; + border-color: transparent; + box-shadow: none; } + .button.is-success.is-inverted { + background-color: #fff; + color: #22c35b; } + .button.is-success.is-inverted:hover, .button.is-success.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-success.is-inverted[disabled], fieldset[disabled] .button.is-success.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #22c35b; } + .button.is-success.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-success.is-outlined { + background-color: transparent; + border-color: #22c35b; + color: #22c35b; } + .button.is-success.is-outlined:hover, .button.is-success.is-outlined.is-hovered, .button.is-success.is-outlined:focus, .button.is-success.is-outlined.is-focused { + background-color: #22c35b; + border-color: #22c35b; + color: #fff; } + .button.is-success.is-outlined.is-loading::after { + border-color: transparent transparent #22c35b #22c35b !important; } + .button.is-success.is-outlined.is-loading:hover::after, .button.is-success.is-outlined.is-loading.is-hovered::after, .button.is-success.is-outlined.is-loading:focus::after, .button.is-success.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-success.is-outlined[disabled], fieldset[disabled] .button.is-success.is-outlined { + background-color: transparent; + border-color: #22c35b; + box-shadow: none; + color: #22c35b; } + .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-success.is-inverted.is-outlined:hover, .button.is-success.is-inverted.is-outlined.is-hovered, .button.is-success.is-inverted.is-outlined:focus, .button.is-success.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #22c35b; } + .button.is-success.is-inverted.is-outlined.is-loading:hover::after, .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-success.is-inverted.is-outlined.is-loading:focus::after, .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #22c35b #22c35b !important; } + .button.is-success.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-warning { + background-color: #ffdd57; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:hover, .button.is-warning.is-hovered { + background-color: #ffda4a; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:focus, .button.is-warning.is-focused { + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:focus:not(:active), .button.is-warning.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } + .button.is-warning:active, .button.is-warning.is-active { + background-color: #ffd83e; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning[disabled], fieldset[disabled] .button.is-warning { + background-color: #ffdd57; + border-color: transparent; + box-shadow: none; } + .button.is-warning.is-inverted { + background-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .button.is-warning.is-inverted:hover, .button.is-warning.is-inverted.is-hovered { + background-color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-inverted[disabled], fieldset[disabled] .button.is-warning.is-inverted { + background-color: rgba(0, 0, 0, 0.7); + border-color: transparent; + box-shadow: none; + color: #ffdd57; } + .button.is-warning.is-loading::after { + border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; } + .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ffdd57; + color: #ffdd57; } + .button.is-warning.is-outlined:hover, .button.is-warning.is-outlined.is-hovered, .button.is-warning.is-outlined:focus, .button.is-warning.is-outlined.is-focused { + background-color: #ffdd57; + border-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-outlined.is-loading::after { + border-color: transparent transparent #ffdd57 #ffdd57 !important; } + .button.is-warning.is-outlined.is-loading:hover::after, .button.is-warning.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-outlined.is-loading:focus::after, .button.is-warning.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; } + .button.is-warning.is-outlined[disabled], fieldset[disabled] .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ffdd57; + box-shadow: none; + color: #ffdd57; } + .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-inverted.is-outlined:hover, .button.is-warning.is-inverted.is-outlined.is-hovered, .button.is-warning.is-inverted.is-outlined:focus, .button.is-warning.is-inverted.is-outlined.is-focused { + background-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ffdd57 #ffdd57 !important; } + .button.is-warning.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + box-shadow: none; + color: rgba(0, 0, 0, 0.7); } + .button.is-danger { + background-color: #da0b00; + border-color: transparent; + color: #fff; } + .button.is-danger:hover, .button.is-danger.is-hovered { + background-color: #cd0a00; + border-color: transparent; + color: #fff; } + .button.is-danger:focus, .button.is-danger.is-focused { + border-color: transparent; + color: #fff; } + .button.is-danger:focus:not(:active), .button.is-danger.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } + .button.is-danger:active, .button.is-danger.is-active { + background-color: #c10a00; + border-color: transparent; + color: #fff; } + .button.is-danger[disabled], fieldset[disabled] .button.is-danger { + background-color: #da0b00; + border-color: transparent; + box-shadow: none; } + .button.is-danger.is-inverted { + background-color: #fff; + color: #da0b00; } + .button.is-danger.is-inverted:hover, .button.is-danger.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-danger.is-inverted[disabled], fieldset[disabled] .button.is-danger.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #da0b00; } + .button.is-danger.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-danger.is-outlined { + background-color: transparent; + border-color: #da0b00; + color: #da0b00; } + .button.is-danger.is-outlined:hover, .button.is-danger.is-outlined.is-hovered, .button.is-danger.is-outlined:focus, .button.is-danger.is-outlined.is-focused { + background-color: #da0b00; + border-color: #da0b00; + color: #fff; } + .button.is-danger.is-outlined.is-loading::after { + border-color: transparent transparent #da0b00 #da0b00 !important; } + .button.is-danger.is-outlined.is-loading:hover::after, .button.is-danger.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-outlined.is-loading:focus::after, .button.is-danger.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-danger.is-outlined[disabled], fieldset[disabled] .button.is-danger.is-outlined { + background-color: transparent; + border-color: #da0b00; + box-shadow: none; + color: #da0b00; } + .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-danger.is-inverted.is-outlined:hover, .button.is-danger.is-inverted.is-outlined.is-hovered, .button.is-danger.is-inverted.is-outlined:focus, .button.is-danger.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #da0b00; } + .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #da0b00 #da0b00 !important; } + .button.is-danger.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-small, #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 2px; + font-size: 0.75rem; } + .button.is-normal { + font-size: 1rem; } + .button.is-medium { + font-size: 1.25rem; } + .button.is-large { + font-size: 1.5rem; } + .button[disabled], fieldset[disabled] .button { + background-color: white; + border-color: #dbdbdb; + box-shadow: none; + opacity: 0.5; } + .button.is-fullwidth { + display: flex; + width: 100%; } + .button.is-loading { + color: transparent !important; + pointer-events: none; } + .button.is-loading::after { + position: absolute; + left: calc(50% - (1em / 2)); + top: calc(50% - (1em / 2)); + position: absolute !important; } + .button.is-static { + background-color: whitesmoke; + border-color: #dbdbdb; + color: #6b6b6b; + box-shadow: none; + pointer-events: none; } + .button.is-rounded, #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + +.buttons { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .buttons .button { + margin-bottom: 0.5rem; } + .buttons .button:not(:last-child):not(.is-fullwidth) { + margin-right: 0.5rem; } + .buttons:last-child { + margin-bottom: -0.5rem; } + .buttons:not(:last-child) { + margin-bottom: 1rem; } + .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) { + border-radius: 2px; + font-size: 0.75rem; } + .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) { + font-size: 1.25rem; } + .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) { + font-size: 1.5rem; } + .buttons.has-addons .button:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .buttons.has-addons .button:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + margin-right: -1px; } + .buttons.has-addons .button:last-child { + margin-right: 0; } + .buttons.has-addons .button:hover, .buttons.has-addons .button.is-hovered { + z-index: 2; } + .buttons.has-addons .button:focus, .buttons.has-addons .button.is-focused, .buttons.has-addons .button:active, .buttons.has-addons .button.is-active, .buttons.has-addons .button.is-selected { + z-index: 3; } + .buttons.has-addons .button:focus:hover, .buttons.has-addons .button.is-focused:hover, .buttons.has-addons .button:active:hover, .buttons.has-addons .button.is-active:hover, .buttons.has-addons .button.is-selected:hover { + z-index: 4; } + .buttons.has-addons .button.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .buttons.is-centered { + justify-content: center; } + .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + .buttons.is-right { + justify-content: flex-end; } + .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + +.container { + flex-grow: 1; + margin: 0 auto; + position: relative; + width: auto; } + @media screen and (min-width: 1056px) { + .container { + max-width: 992px; } + .container.is-fluid { + margin-left: 32px; + margin-right: 32px; + max-width: none; } } + @media screen and (max-width: 1215px) { + .container.is-widescreen { + max-width: 1152px; } } + @media screen and (max-width: 1407px) { + .container.is-fullhd { + max-width: 1344px; } } + @media screen and (min-width: 1216px) { + .container { + max-width: 1152px; } } + @media screen and (min-width: 1408px) { + .container { + max-width: 1344px; } } +.content li + li { + margin-top: 0.25em; } + +.content p:not(:last-child), +.content dl:not(:last-child), +.content ol:not(:last-child), +.content ul:not(:last-child), +.content blockquote:not(:last-child), +.content pre:not(:last-child), +.content table:not(:last-child) { + margin-bottom: 1em; } + +.content h1, +.content h2, +.content h3, +.content h4, +.content h5, +.content h6 { + color: #222222; + 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: whitesmoke; + 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: #222222; } + .content table th:not([align]) { + text-align: left; } + .content table thead td, + .content table thead th { + border-width: 0 0 2px; + color: #222222; } + .content table tfoot td, + .content table tfoot th { + border-width: 2px 0 0; + color: #222222; } + .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: 0.75rem; } + +.content.is-medium { + font-size: 1.25rem; } + +.content.is-large { + font-size: 1.5rem; } + +.icon { + align-items: center; + display: inline-flex; + justify-content: center; + height: 1.5rem; + width: 1.5rem; } + .icon.is-small, #documenter .docs-sidebar form.docs-search > input.icon { + height: 1rem; + width: 1rem; } + .icon.is-medium { + height: 2rem; + width: 2rem; } + .icon.is-large { + height: 3rem; + width: 3rem; } + +.image, #documenter .docs-sidebar .docs-logo > img { + display: block; + position: relative; } + .image img, #documenter .docs-sidebar .docs-logo > img img { + display: block; + height: auto; + width: 100%; } + .image img.is-rounded, #documenter .docs-sidebar .docs-logo > img img.is-rounded { + border-radius: 290486px; } + .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img, + .image.is-square .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img, + .image.is-1by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img, + .image.is-5by4 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img, + .image.is-4by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img, + .image.is-3by2 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img, + .image.is-5by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img, + .image.is-16by9 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img, + .image.is-2by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img, + .image.is-3by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img, + .image.is-4by5 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img, + .image.is-3by4 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img, + .image.is-2by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img, + .image.is-3by5 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img, + .image.is-9by16 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img, + .image.is-1by2 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img, + .image.is-1by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio { + height: 100%; + width: 100%; } + .image.is-square, #documenter .docs-sidebar .docs-logo > img.is-square, .image.is-1by1, #documenter .docs-sidebar .docs-logo > img.is-1by1 { + padding-top: 100%; } + .image.is-5by4, #documenter .docs-sidebar .docs-logo > img.is-5by4 { + padding-top: 80%; } + .image.is-4by3, #documenter .docs-sidebar .docs-logo > img.is-4by3 { + padding-top: 75%; } + .image.is-3by2, #documenter .docs-sidebar .docs-logo > img.is-3by2 { + padding-top: 66.6666%; } + .image.is-5by3, #documenter .docs-sidebar .docs-logo > img.is-5by3 { + padding-top: 60%; } + .image.is-16by9, #documenter .docs-sidebar .docs-logo > img.is-16by9 { + padding-top: 56.25%; } + .image.is-2by1, #documenter .docs-sidebar .docs-logo > img.is-2by1 { + padding-top: 50%; } + .image.is-3by1, #documenter .docs-sidebar .docs-logo > img.is-3by1 { + padding-top: 33.3333%; } + .image.is-4by5, #documenter .docs-sidebar .docs-logo > img.is-4by5 { + padding-top: 125%; } + .image.is-3by4, #documenter .docs-sidebar .docs-logo > img.is-3by4 { + padding-top: 133.3333%; } + .image.is-2by3, #documenter .docs-sidebar .docs-logo > img.is-2by3 { + padding-top: 150%; } + .image.is-3by5, #documenter .docs-sidebar .docs-logo > img.is-3by5 { + padding-top: 166.6666%; } + .image.is-9by16, #documenter .docs-sidebar .docs-logo > img.is-9by16 { + padding-top: 177.7777%; } + .image.is-1by2, #documenter .docs-sidebar .docs-logo > img.is-1by2 { + padding-top: 200%; } + .image.is-1by3, #documenter .docs-sidebar .docs-logo > img.is-1by3 { + padding-top: 300%; } + .image.is-16x16, #documenter .docs-sidebar .docs-logo > img.is-16x16 { + height: 16px; + width: 16px; } + .image.is-24x24, #documenter .docs-sidebar .docs-logo > img.is-24x24 { + height: 24px; + width: 24px; } + .image.is-32x32, #documenter .docs-sidebar .docs-logo > img.is-32x32 { + height: 32px; + width: 32px; } + .image.is-48x48, #documenter .docs-sidebar .docs-logo > img.is-48x48 { + height: 48px; + width: 48px; } + .image.is-64x64, #documenter .docs-sidebar .docs-logo > img.is-64x64 { + height: 64px; + width: 64px; } + .image.is-96x96, #documenter .docs-sidebar .docs-logo > img.is-96x96 { + height: 96px; + width: 96px; } + .image.is-128x128, #documenter .docs-sidebar .docs-logo > img.is-128x128 { + height: 128px; + width: 128px; } + +.notification { + background-color: whitesmoke; + border-radius: 4px; + padding: 1.25rem 2.5rem 1.25rem 1.5rem; + position: relative; } + .notification a:not(.button):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + .notification strong { + color: currentColor; } + .notification code, + .notification pre { + background: white; } + .notification pre code { + background: transparent; } + .notification > .delete { + position: absolute; + right: 0.5rem; + top: 0.5rem; } + .notification .title, + .notification .subtitle, + .notification .content { + color: currentColor; } + .notification.is-white { + background-color: white; + color: #0a0a0a; } + .notification.is-black { + background-color: #0a0a0a; + color: white; } + .notification.is-light { + background-color: whitesmoke; + color: #363636; } + .notification.is-dark, .content kbd.notification { + background-color: #363636; + color: whitesmoke; } + .notification.is-primary, .docstring > section > a.notification.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .notification.is-link { + background-color: #2e63b8; + color: #fff; } + .notification.is-info { + background-color: #209cee; + color: #fff; } + .notification.is-success { + background-color: #22c35b; + color: #fff; } + .notification.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .notification.is-danger { + background-color: #da0b00; + color: #fff; } + +.progress { + -moz-appearance: none; + -webkit-appearance: none; + border: none; + border-radius: 290486px; + display: block; + height: 1rem; + overflow: hidden; + padding: 0; + width: 100%; } + .progress::-webkit-progress-bar { + background-color: #dbdbdb; } + .progress::-webkit-progress-value { + background-color: #222222; } + .progress::-moz-progress-bar { + background-color: #222222; } + .progress::-ms-fill { + background-color: #222222; + border: none; } + .progress.is-white::-webkit-progress-value { + background-color: white; } + .progress.is-white::-moz-progress-bar { + background-color: white; } + .progress.is-white::-ms-fill { + background-color: white; } + .progress.is-white:indeterminate { + background-image: linear-gradient(to right, white 30%, #dbdbdb 30%); } + .progress.is-black::-webkit-progress-value { + background-color: #0a0a0a; } + .progress.is-black::-moz-progress-bar { + background-color: #0a0a0a; } + .progress.is-black::-ms-fill { + background-color: #0a0a0a; } + .progress.is-black:indeterminate { + background-image: linear-gradient(to right, #0a0a0a 30%, #dbdbdb 30%); } + .progress.is-light::-webkit-progress-value { + background-color: whitesmoke; } + .progress.is-light::-moz-progress-bar { + background-color: whitesmoke; } + .progress.is-light::-ms-fill { + background-color: whitesmoke; } + .progress.is-light:indeterminate { + background-image: linear-gradient(to right, whitesmoke 30%, #dbdbdb 30%); } + .progress.is-dark::-webkit-progress-value, .content kbd.progress::-webkit-progress-value { + background-color: #363636; } + .progress.is-dark::-moz-progress-bar, .content kbd.progress::-moz-progress-bar { + background-color: #363636; } + .progress.is-dark::-ms-fill, .content kbd.progress::-ms-fill { + background-color: #363636; } + .progress.is-dark:indeterminate, .content kbd.progress:indeterminate { + background-image: linear-gradient(to right, #363636 30%, #dbdbdb 30%); } + .progress.is-primary::-webkit-progress-value, .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value { + background-color: #4eb5de; } + .progress.is-primary::-moz-progress-bar, .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar { + background-color: #4eb5de; } + .progress.is-primary::-ms-fill, .docstring > section > a.progress.docs-sourcelink::-ms-fill { + background-color: #4eb5de; } + .progress.is-primary:indeterminate, .docstring > section > a.progress.docs-sourcelink:indeterminate { + background-image: linear-gradient(to right, #4eb5de 30%, #dbdbdb 30%); } + .progress.is-link::-webkit-progress-value { + background-color: #2e63b8; } + .progress.is-link::-moz-progress-bar { + background-color: #2e63b8; } + .progress.is-link::-ms-fill { + background-color: #2e63b8; } + .progress.is-link:indeterminate { + background-image: linear-gradient(to right, #2e63b8 30%, #dbdbdb 30%); } + .progress.is-info::-webkit-progress-value { + background-color: #209cee; } + .progress.is-info::-moz-progress-bar { + background-color: #209cee; } + .progress.is-info::-ms-fill { + background-color: #209cee; } + .progress.is-info:indeterminate { + background-image: linear-gradient(to right, #209cee 30%, #dbdbdb 30%); } + .progress.is-success::-webkit-progress-value { + background-color: #22c35b; } + .progress.is-success::-moz-progress-bar { + background-color: #22c35b; } + .progress.is-success::-ms-fill { + background-color: #22c35b; } + .progress.is-success:indeterminate { + background-image: linear-gradient(to right, #22c35b 30%, #dbdbdb 30%); } + .progress.is-warning::-webkit-progress-value { + background-color: #ffdd57; } + .progress.is-warning::-moz-progress-bar { + background-color: #ffdd57; } + .progress.is-warning::-ms-fill { + background-color: #ffdd57; } + .progress.is-warning:indeterminate { + background-image: linear-gradient(to right, #ffdd57 30%, #dbdbdb 30%); } + .progress.is-danger::-webkit-progress-value { + background-color: #da0b00; } + .progress.is-danger::-moz-progress-bar { + background-color: #da0b00; } + .progress.is-danger::-ms-fill { + background-color: #da0b00; } + .progress.is-danger:indeterminate { + background-image: linear-gradient(to right, #da0b00 30%, #dbdbdb 30%); } + .progress:indeterminate { + animation-duration: 1.5s; + animation-iteration-count: infinite; + animation-name: moveIndeterminate; + animation-timing-function: linear; + background-color: #dbdbdb; + background-image: linear-gradient(to right, #222222 30%, #dbdbdb 30%); + background-position: top left; + background-repeat: no-repeat; + background-size: 150% 150%; } + .progress:indeterminate::-webkit-progress-bar { + background-color: transparent; } + .progress:indeterminate::-moz-progress-bar { + background-color: transparent; } + .progress.is-small, #documenter .docs-sidebar form.docs-search > input.progress { + height: 0.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: white; + color: #363636; } + .table td, + .table th { + border: 1px solid #dbdbdb; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + .table td.is-white, + .table th.is-white { + background-color: white; + border-color: white; + color: #0a0a0a; } + .table td.is-black, + .table th.is-black { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .table td.is-light, + .table th.is-light { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .table td.is-dark, + .table th.is-dark { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .table td.is-primary, + .table th.is-primary { + background-color: #4eb5de; + border-color: #4eb5de; + color: #fff; } + .table td.is-link, + .table th.is-link { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + .table td.is-info, + .table th.is-info { + background-color: #209cee; + border-color: #209cee; + color: #fff; } + .table td.is-success, + .table th.is-success { + background-color: #22c35b; + border-color: #22c35b; + color: #fff; } + .table td.is-warning, + .table th.is-warning { + background-color: #ffdd57; + border-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .table td.is-danger, + .table th.is-danger { + background-color: #da0b00; + border-color: #da0b00; + color: #fff; } + .table td.is-narrow, + .table th.is-narrow { + white-space: nowrap; + width: 1%; } + .table td.is-selected, + .table th.is-selected { + background-color: #4eb5de; + color: #fff; } + .table td.is-selected a, + .table td.is-selected strong, + .table th.is-selected a, + .table th.is-selected strong { + color: currentColor; } + .table th { + color: #222222; } + .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: transparent; } + .table thead td, + .table thead th { + border-width: 0 0 2px; + color: #222222; } + .table tfoot { + background-color: transparent; } + .table tfoot td, + .table tfoot th { + border-width: 2px 0 0; + color: #222222; } + .table tbody { + background-color: transparent; } + .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: whitesmoke; } + .table.is-narrow td, + .table.is-narrow th { + padding: 0.25em 0.5em; } + .table.is-striped tbody tr:not(.is-selected):nth-child(even) { + background-color: #fafafa; } + +.table-container { + -webkit-overflow-scrolling: touch; + overflow: auto; + overflow-y: hidden; + max-width: 100%; } + +.tags { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .tags .tag, .tags .content kbd, .content .tags kbd, .tags .docstring > section > a.docs-sourcelink { + margin-bottom: 0.5rem; } + .tags .tag:not(:last-child), .tags .content kbd:not(:last-child), .content .tags kbd:not(:last-child), .tags .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0.5rem; } + .tags:last-child { + margin-bottom: -0.5rem; } + .tags:not(:last-child) { + margin-bottom: 1rem; } + .tags.are-medium .tag:not(.is-normal):not(.is-large), .tags.are-medium .content kbd:not(.is-normal):not(.is-large), .content .tags.are-medium kbd:not(.is-normal):not(.is-large), .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large) { + font-size: 1rem; } + .tags.are-large .tag:not(.is-normal):not(.is-medium), .tags.are-large .content kbd:not(.is-normal):not(.is-medium), .content .tags.are-large kbd:not(.is-normal):not(.is-medium), .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium) { + font-size: 1.25rem; } + .tags.is-centered { + justify-content: center; } + .tags.is-centered .tag, .tags.is-centered .content kbd, .content .tags.is-centered kbd, .tags.is-centered .docstring > section > a.docs-sourcelink { + margin-right: 0.25rem; + margin-left: 0.25rem; } + .tags.is-right { + justify-content: flex-end; } + .tags.is-right .tag:not(:first-child), .tags.is-right .content kbd:not(:first-child), .content .tags.is-right kbd:not(:first-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0.5rem; } + .tags.is-right .tag:not(:last-child), .tags.is-right .content kbd:not(:last-child), .content .tags.is-right kbd:not(:last-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0; } + .tags.has-addons .tag, .tags.has-addons .content kbd, .content .tags.has-addons kbd, .tags.has-addons .docstring > section > a.docs-sourcelink { + margin-right: 0; } + .tags.has-addons .tag:not(:first-child), .tags.has-addons .content kbd:not(:first-child), .content .tags.has-addons kbd:not(:first-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0; + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .tags.has-addons .tag:not(:last-child), .tags.has-addons .content kbd:not(:last-child), .content .tags.has-addons kbd:not(:last-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + +.tag:not(body), .content kbd:not(body), .docstring > section > a.docs-sourcelink:not(body) { + align-items: center; + background-color: whitesmoke; + border-radius: 4px; + color: #222222; + display: inline-flex; + font-size: 0.75rem; + height: 2em; + justify-content: center; + line-height: 1.5; + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + .tag:not(body) .delete, .content kbd:not(body) .delete, .docstring > section > a.docs-sourcelink:not(body) .delete { + margin-left: 0.25rem; + margin-right: -0.375rem; } + .tag.is-white:not(body), .content kbd.is-white:not(body), .docstring > section > a.docs-sourcelink.is-white:not(body) { + background-color: white; + 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: white; } + .tag.is-light:not(body), .content kbd.is-light:not(body), .docstring > section > a.docs-sourcelink.is-light:not(body) { + background-color: whitesmoke; + color: #363636; } + .tag.is-dark:not(body), .content kbd:not(body), .docstring > section > a.docs-sourcelink.is-dark:not(body), .content .docstring > section > kbd:not(body) { + background-color: #363636; + color: whitesmoke; } + .tag.is-primary:not(body), .content kbd.is-primary:not(body), .docstring > section > a.docs-sourcelink:not(body) { + background-color: #4eb5de; + color: #fff; } + .tag.is-link:not(body), .content kbd.is-link:not(body), .docstring > section > a.docs-sourcelink.is-link:not(body) { + background-color: #2e63b8; + color: #fff; } + .tag.is-info:not(body), .content kbd.is-info:not(body), .docstring > section > a.docs-sourcelink.is-info:not(body) { + background-color: #209cee; + color: #fff; } + .tag.is-success:not(body), .content kbd.is-success:not(body), .docstring > section > a.docs-sourcelink.is-success:not(body) { + background-color: #22c35b; + color: #fff; } + .tag.is-warning:not(body), .content kbd.is-warning:not(body), .docstring > section > a.docs-sourcelink.is-warning:not(body) { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .tag.is-danger:not(body), .content kbd.is-danger:not(body), .docstring > section > a.docs-sourcelink.is-danger:not(body) { + background-color: #da0b00; + color: #fff; } + .tag.is-normal:not(body), .content kbd.is-normal:not(body), .docstring > section > a.docs-sourcelink.is-normal:not(body) { + font-size: 0.75rem; } + .tag.is-medium:not(body), .content kbd.is-medium:not(body), .docstring > section > a.docs-sourcelink.is-medium:not(body) { + font-size: 1rem; } + .tag.is-large:not(body), .content kbd.is-large:not(body), .docstring > section > a.docs-sourcelink.is-large:not(body) { + font-size: 1.25rem; } + .tag:not(body) .icon:first-child:not(:last-child), .content kbd:not(body) .icon:first-child:not(:last-child), .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child) { + margin-left: -0.375em; + margin-right: 0.1875em; } + .tag:not(body) .icon:last-child:not(:first-child), .content kbd:not(body) .icon:last-child:not(:first-child), .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: -0.375em; } + .tag:not(body) .icon:first-child:last-child, .content kbd:not(body) .icon:first-child:last-child, .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child { + margin-left: -0.375em; + margin-right: -0.375em; } + .tag.is-delete:not(body), .content kbd.is-delete:not(body), .docstring > section > a.docs-sourcelink.is-delete:not(body) { + margin-left: 1px; + padding: 0; + position: relative; + width: 2em; } + .tag.is-delete:not(body)::before, .content kbd.is-delete:not(body)::before, .docstring > section > a.docs-sourcelink.is-delete:not(body)::before, .tag.is-delete:not(body)::after, .content kbd.is-delete:not(body)::after, .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + background-color: currentColor; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + .tag.is-delete:not(body)::before, .content kbd.is-delete:not(body)::before, .docstring > section > a.docs-sourcelink.is-delete:not(body)::before { + height: 1px; + width: 50%; } + .tag.is-delete:not(body)::after, .content kbd.is-delete:not(body)::after, .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + height: 50%; + width: 1px; } + .tag.is-delete:not(body):hover, .content kbd.is-delete:not(body):hover, .docstring > section > a.docs-sourcelink.is-delete:not(body):hover, .tag.is-delete:not(body):focus, .content kbd.is-delete:not(body):focus, .docstring > section > a.docs-sourcelink.is-delete:not(body):focus { + background-color: #e8e8e8; } + .tag.is-delete:not(body):active, .content kbd.is-delete:not(body):active, .docstring > section > a.docs-sourcelink.is-delete:not(body):active { + background-color: #dbdbdb; } + .tag.is-rounded:not(body), #documenter .docs-sidebar form.docs-search > input:not(body), .content kbd.is-rounded:not(body), #documenter .docs-sidebar .content form.docs-search > input:not(body), .docstring > section > a.docs-sourcelink.is-rounded:not(body) { + border-radius: 290486px; } + +a.tag:hover, .docstring > section > a.docs-sourcelink:hover { + text-decoration: underline; } + +.title, +.subtitle { + word-break: break-word; } + .title em, + .title span, + .subtitle em, + .subtitle span { + font-weight: inherit; } + .title sub, + .subtitle sub { + font-size: 0.75em; } + .title sup, + .subtitle sup { + font-size: 0.75em; } + .title .tag, .title .content kbd, .content .title kbd, .title .docstring > section > a.docs-sourcelink, + .subtitle .tag, + .subtitle .content kbd, + .content .subtitle kbd, + .subtitle .docstring > section > a.docs-sourcelink { + vertical-align: middle; } + +.title { + color: #363636; + font-size: 2rem; + font-weight: 600; + line-height: 1.125; } + .title strong { + color: inherit; + font-weight: inherit; } + .title + .highlight { + margin-top: -0.75rem; } + .title:not(.is-spaced) + .subtitle { + margin-top: -1.25rem; } + .title.is-1 { + font-size: 3rem; } + .title.is-2 { + font-size: 2.5rem; } + .title.is-3 { + font-size: 2rem; } + .title.is-4 { + font-size: 1.5rem; } + .title.is-5 { + font-size: 1.25rem; } + .title.is-6 { + font-size: 1rem; } + .title.is-7 { + font-size: 0.75rem; } + +.subtitle { + color: #4a4a4a; + font-size: 1.25rem; + font-weight: 400; + line-height: 1.25; } + .subtitle strong { + color: #363636; + font-weight: 600; } + .subtitle:not(.is-spaced) + .title { + margin-top: -1.25rem; } + .subtitle.is-1 { + font-size: 3rem; } + .subtitle.is-2 { + font-size: 2.5rem; } + .subtitle.is-3 { + font-size: 2rem; } + .subtitle.is-4 { + font-size: 1.5rem; } + .subtitle.is-5 { + font-size: 1.25rem; } + .subtitle.is-6 { + font-size: 1rem; } + .subtitle.is-7 { + font-size: 0.75rem; } + +.heading { + display: block; + font-size: 11px; + letter-spacing: 1px; + margin-bottom: 5px; + text-transform: uppercase; } + +.highlight { + font-weight: 400; + max-width: 100%; + overflow: hidden; + padding: 0; } + .highlight pre { + overflow: auto; + max-width: 100%; } + +.number { + align-items: center; + background-color: whitesmoke; + border-radius: 290486px; + display: inline-flex; + font-size: 1.25rem; + height: 2em; + justify-content: center; + margin-right: 1.5rem; + min-width: 2.5em; + padding: 0.25rem 0.5rem; + text-align: center; + vertical-align: top; } + +.select select, .textarea, .input, #documenter .docs-sidebar form.docs-search > input { + background-color: white; + border-color: #dbdbdb; + border-radius: 4px; + color: #363636; } + .select select::-moz-placeholder, .textarea::-moz-placeholder, .input::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input::-moz-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select::-webkit-input-placeholder, .textarea::-webkit-input-placeholder, .input::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select:-moz-placeholder, .textarea:-moz-placeholder, .input:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input:-moz-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select:-ms-input-placeholder, .textarea:-ms-input-placeholder, .input:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select:hover, .textarea:hover, .input:hover, #documenter .docs-sidebar form.docs-search > input:hover, .select select.is-hovered, .is-hovered.textarea, .is-hovered.input, #documenter .docs-sidebar form.docs-search > input.is-hovered { + border-color: #b5b5b5; } + .select select:focus, .textarea:focus, .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .select select.is-focused, .is-focused.textarea, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .select select:active, .textarea:active, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .select select.is-active, .is-active.textarea, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + border-color: #2e63b8; + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .select select[disabled], .textarea[disabled], .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], fieldset[disabled] .select select, .select fieldset[disabled] select, fieldset[disabled] .textarea, fieldset[disabled] .input, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input { + background-color: whitesmoke; + border-color: whitesmoke; + box-shadow: none; + color: #6b6b6b; } + .select select[disabled]::-moz-placeholder, .textarea[disabled]::-moz-placeholder, .input[disabled]::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, fieldset[disabled] .select select::-moz-placeholder, .select fieldset[disabled] select::-moz-placeholder, fieldset[disabled] .textarea::-moz-placeholder, fieldset[disabled] .input::-moz-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-moz-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-moz-placeholder { + color: rgba(107, 107, 107, 0.3); } + .select select[disabled]::-webkit-input-placeholder, .textarea[disabled]::-webkit-input-placeholder, .input[disabled]::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, fieldset[disabled] .select select::-webkit-input-placeholder, .select fieldset[disabled] select::-webkit-input-placeholder, fieldset[disabled] .textarea::-webkit-input-placeholder, fieldset[disabled] .input::-webkit-input-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-webkit-input-placeholder { + color: rgba(107, 107, 107, 0.3); } + .select select[disabled]:-moz-placeholder, .textarea[disabled]:-moz-placeholder, .input[disabled]:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, fieldset[disabled] .select select:-moz-placeholder, .select fieldset[disabled] select:-moz-placeholder, fieldset[disabled] .textarea:-moz-placeholder, fieldset[disabled] .input:-moz-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-moz-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-moz-placeholder { + color: rgba(107, 107, 107, 0.3); } + .select select[disabled]:-ms-input-placeholder, .textarea[disabled]:-ms-input-placeholder, .input[disabled]:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, fieldset[disabled] .select select:-ms-input-placeholder, .select fieldset[disabled] select:-ms-input-placeholder, fieldset[disabled] .textarea:-ms-input-placeholder, fieldset[disabled] .input:-ms-input-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-ms-input-placeholder { + color: rgba(107, 107, 107, 0.3); } + +.textarea, .input, #documenter .docs-sidebar form.docs-search > input { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1); + max-width: 100%; + width: 100%; } + .textarea[readonly], .input[readonly], #documenter .docs-sidebar form.docs-search > input[readonly] { + box-shadow: none; } + .is-white.textarea, .is-white.input, #documenter .docs-sidebar form.docs-search > input.is-white { + border-color: white; } + .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: whitesmoke; } + .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: 0.75rem; } + .is-medium.textarea, .is-medium.input, #documenter .docs-sidebar form.docs-search > input.is-medium { + font-size: 1.25rem; } + .is-large.textarea, .is-large.input, #documenter .docs-sidebar form.docs-search > input.is-large { + font-size: 1.5rem; } + .is-fullwidth.textarea, .is-fullwidth.input, #documenter .docs-sidebar form.docs-search > input.is-fullwidth { + display: block; + width: 100%; } + .is-inline.textarea, .is-inline.input, #documenter .docs-sidebar form.docs-search > input.is-inline { + display: inline; + width: auto; } + +.input.is-rounded, #documenter .docs-sidebar form.docs-search > input { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + +.input.is-static, #documenter .docs-sidebar form.docs-search > input.is-static { + background-color: transparent; + border-color: transparent; + box-shadow: none; + padding-left: 0; + padding-right: 0; } + +.textarea { + display: block; + max-width: 100%; + min-width: 100%; + padding: 0.625em; + resize: vertical; } + .textarea:not([rows]) { + max-height: 600px; + min-height: 120px; } + .textarea[rows] { + height: initial; } + .textarea.has-fixed-size { + resize: none; } + +.radio, .checkbox { + cursor: pointer; + display: inline-block; + line-height: 1.25; + position: relative; } + .radio input, .checkbox input { + cursor: pointer; } + .radio:hover, .checkbox:hover { + color: #363636; } + .radio[disabled], .checkbox[disabled], fieldset[disabled] .radio, fieldset[disabled] .checkbox { + color: #6b6b6b; + cursor: not-allowed; } + +.radio + .radio { + margin-left: 0.5em; } + +.select { + display: inline-block; + max-width: 100%; + position: relative; + vertical-align: top; } + .select:not(.is-multiple) { + height: 2.25em; } + .select:not(.is-multiple):not(.is-loading)::after { + border-color: #2e63b8; + right: 1.125em; + z-index: 4; } + .select.is-rounded select, #documenter .docs-sidebar form.docs-search > input.select select { + border-radius: 290486px; + padding-left: 1em; } + .select select { + cursor: pointer; + display: block; + font-size: 1em; + max-width: 100%; + outline: none; } + .select select::-ms-expand { + display: none; } + .select select[disabled]:hover, fieldset[disabled] .select select:hover { + border-color: whitesmoke; } + .select select:not([multiple]) { + padding-right: 2.5em; } + .select select[multiple] { + height: auto; + padding: 0; } + .select select[multiple] option { + padding: 0.5em 1em; } + .select:not(.is-multiple):not(.is-loading):hover::after { + border-color: #363636; } + .select.is-white:not(:hover)::after { + border-color: white; } + .select.is-white select { + border-color: white; } + .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: black; } + .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: whitesmoke; } + .select.is-light select { + border-color: whitesmoke; } + .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: 0.75rem; } + .select.is-medium { + font-size: 1.25rem; } + .select.is-large { + font-size: 1.5rem; } + .select.is-disabled::after { + border-color: #6b6b6b; } + .select.is-fullwidth { + width: 100%; } + .select.is-fullwidth select { + width: 100%; } + .select.is-loading::after { + margin-top: 0; + position: absolute; + right: 0.625em; + top: 0.625em; + transform: none; } + .select.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.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: white; + 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: white; } + .file.is-black:hover .file-cta, .file.is-black.is-hovered .file-cta { + background-color: #040404; + border-color: transparent; + color: white; } + .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: white; } + .file.is-black:active .file-cta, .file.is-black.is-active .file-cta { + background-color: black; + border-color: transparent; + color: white; } + .file.is-light .file-cta { + background-color: whitesmoke; + border-color: transparent; + color: #363636; } + .file.is-light:hover .file-cta, .file.is-light.is-hovered .file-cta { + background-color: #eeeeee; + border-color: transparent; + color: #363636; } + .file.is-light:focus .file-cta, .file.is-light.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(245, 245, 245, 0.25); + color: #363636; } + .file.is-light:active .file-cta, .file.is-light.is-active .file-cta { + background-color: #e8e8e8; + border-color: transparent; + color: #363636; } + .file.is-dark .file-cta, .content kbd.file .file-cta { + background-color: #363636; + border-color: transparent; + color: whitesmoke; } + .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: whitesmoke; } + .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: whitesmoke; } + .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: whitesmoke; } + .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: 0.75rem; } + .file.is-medium { + font-size: 1.25rem; } + .file.is-medium .file-icon .fa { + font-size: 21px; } + .file.is-large { + font-size: 1.5rem; } + .file.is-large .file-icon .fa { + font-size: 28px; } + .file.has-name .file-cta { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + .file.has-name .file-name { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .file.has-name.is-empty .file-cta { + border-radius: 4px; } + .file.has-name.is-empty .file-name { + display: none; } + .file.is-boxed .file-label { + flex-direction: column; } + .file.is-boxed .file-cta { + flex-direction: column; + height: auto; + padding: 1em 3em; } + .file.is-boxed .file-name { + border-width: 0 1px 1px; } + .file.is-boxed .file-icon { + height: 1.5em; + width: 1.5em; } + .file.is-boxed .file-icon .fa { + font-size: 21px; } + .file.is-boxed.is-small .file-icon .fa, #documenter .docs-sidebar form.docs-search > input.is-boxed .file-icon .fa { + font-size: 14px; } + .file.is-boxed.is-medium .file-icon .fa { + font-size: 28px; } + .file.is-boxed.is-large .file-icon .fa { + font-size: 35px; } + .file.is-boxed.has-name .file-cta { + border-radius: 4px 4px 0 0; } + .file.is-boxed.has-name .file-name { + border-radius: 0 0 4px 4px; + border-width: 0 1px 1px; } + .file.is-centered { + justify-content: center; } + .file.is-fullwidth .file-label { + width: 100%; } + .file.is-fullwidth .file-name { + flex-grow: 1; + max-width: none; } + .file.is-right { + justify-content: flex-end; } + .file.is-right .file-cta { + border-radius: 0 4px 4px 0; } + .file.is-right .file-name { + border-radius: 4px 0 0 4px; + border-width: 1px 0 1px 1px; + order: -1; } + +.file-label { + align-items: stretch; + display: flex; + cursor: pointer; + justify-content: flex-start; + overflow: hidden; + position: relative; } + .file-label:hover .file-cta { + background-color: #eeeeee; + color: #363636; } + .file-label:hover .file-name { + border-color: #d5d5d5; } + .file-label:active .file-cta { + background-color: #e8e8e8; + color: #363636; } + .file-label:active .file-name { + border-color: #cfcfcf; } + +.file-input { + height: 100%; + left: 0; + opacity: 0; + outline: none; + position: absolute; + top: 0; + width: 100%; } + +.file-cta, +.file-name { + border-color: #dbdbdb; + border-radius: 4px; + font-size: 1em; + padding-left: 1em; + padding-right: 1em; + white-space: nowrap; } + +.file-cta { + background-color: whitesmoke; + color: #4a4a4a; } + +.file-name { + border-color: #dbdbdb; + border-style: solid; + border-width: 1px 1px 1px 0; + display: block; + max-width: 16em; + overflow: hidden; + text-align: left; + text-overflow: ellipsis; } + +.file-icon { + align-items: center; + display: flex; + height: 1em; + justify-content: center; + margin-right: 0.5em; + width: 1em; } + .file-icon .fa { + font-size: 14px; } + +.label { + color: #363636; + display: block; + font-size: 1rem; + font-weight: 700; } + .label:not(:last-child) { + margin-bottom: 0.5em; } + .label.is-small, #documenter .docs-sidebar form.docs-search > input.label { + font-size: 0.75rem; } + .label.is-medium { + font-size: 1.25rem; } + .label.is-large { + font-size: 1.5rem; } + +.help { + display: block; + font-size: 0.75rem; + margin-top: 0.25rem; } + .help.is-white { + color: white; } + .help.is-black { + color: #0a0a0a; } + .help.is-light { + color: whitesmoke; } + .help.is-dark, .content kbd.help { + color: #363636; } + .help.is-primary, .docstring > section > a.help.docs-sourcelink { + color: #4eb5de; } + .help.is-link { + color: #2e63b8; } + .help.is-info { + color: #209cee; } + .help.is-success { + color: #22c35b; } + .help.is-warning { + color: #ffdd57; } + .help.is-danger { + color: #da0b00; } + +.field:not(:last-child) { + margin-bottom: 0.75rem; } + +.field.has-addons { + display: flex; + justify-content: flex-start; } + .field.has-addons .control:not(:last-child) { + margin-right: -1px; } + .field.has-addons .control:not(:first-child):not(:last-child) .button, + .field.has-addons .control:not(:first-child):not(:last-child) .input, + .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input, + .field.has-addons .control:not(:first-child):not(:last-child) .select select { + border-radius: 0; } + .field.has-addons .control:first-child:not(:only-child) .button, + .field.has-addons .control:first-child:not(:only-child) .input, + .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input, + .field.has-addons .control:first-child:not(:only-child) .select select { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + .field.has-addons .control:last-child:not(:only-child) .button, + .field.has-addons .control:last-child:not(:only-child) .input, + .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input, + .field.has-addons .control:last-child:not(:only-child) .select select { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .field.has-addons .control .button:not([disabled]):hover, .field.has-addons .control .button.is-hovered:not([disabled]), + .field.has-addons .control .input:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover, + .field.has-addons .control .input.is-hovered:not([disabled]), + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-hovered:not([disabled]), + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-hovered:not([disabled]), + .field.has-addons .control .select select:not([disabled]):hover, + .field.has-addons .control .select select.is-hovered:not([disabled]) { + z-index: 2; } + .field.has-addons .control .button:not([disabled]):focus, .field.has-addons .control .button.is-focused:not([disabled]), .field.has-addons .control .button:not([disabled]):active, .field.has-addons .control .button.is-active:not([disabled]), + .field.has-addons .control .input:not([disabled]):focus, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus, + .field.has-addons .control .input.is-focused:not([disabled]), + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]), + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]), + .field.has-addons .control .input:not([disabled]):active, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active, + .field.has-addons .control .input.is-active:not([disabled]), + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]), + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]), + .field.has-addons .control .select select:not([disabled]):focus, + .field.has-addons .control .select select.is-focused:not([disabled]), + .field.has-addons .control .select select:not([disabled]):active, + .field.has-addons .control .select select.is-active:not([disabled]) { + z-index: 3; } + .field.has-addons .control .button:not([disabled]):focus:hover, .field.has-addons .control .button.is-focused:not([disabled]):hover, .field.has-addons .control .button:not([disabled]):active:hover, .field.has-addons .control .button.is-active:not([disabled]):hover, + .field.has-addons .control .input:not([disabled]):focus:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover, + .field.has-addons .control .input.is-focused:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]):hover, + .field.has-addons .control .input:not([disabled]):active:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover, + .field.has-addons .control .input.is-active:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]):hover, + .field.has-addons .control .select select:not([disabled]):focus:hover, + .field.has-addons .control .select select.is-focused:not([disabled]):hover, + .field.has-addons .control .select select:not([disabled]):active:hover, + .field.has-addons .control .select select.is-active:not([disabled]):hover { + z-index: 4; } + .field.has-addons .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .field.has-addons.has-addons-centered { + justify-content: center; } + .field.has-addons.has-addons-right { + justify-content: flex-end; } + .field.has-addons.has-addons-fullwidth .control { + flex-grow: 1; + flex-shrink: 0; } + +.field.is-grouped { + display: flex; + justify-content: flex-start; } + .field.is-grouped > .control { + flex-shrink: 0; } + .field.is-grouped > .control:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + .field.is-grouped > .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .field.is-grouped.is-grouped-centered { + justify-content: center; } + .field.is-grouped.is-grouped-right { + justify-content: flex-end; } + .field.is-grouped.is-grouped-multiline { + flex-wrap: wrap; } + .field.is-grouped.is-grouped-multiline > .control:last-child, .field.is-grouped.is-grouped-multiline > .control:not(:last-child) { + margin-bottom: 0.75rem; } + .field.is-grouped.is-grouped-multiline:last-child { + margin-bottom: -0.75rem; } + .field.is-grouped.is-grouped-multiline:not(:last-child) { + margin-bottom: 0; } + +@media screen and (min-width: 769px), print { + .field.is-horizontal { + display: flex; } } + +.field-label .label { + font-size: inherit; } + +@media screen and (max-width: 768px) { + .field-label { + margin-bottom: 0.5rem; } } + +@media screen and (min-width: 769px), print { + .field-label { + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + margin-right: 1.5rem; + text-align: right; } + .field-label.is-small, #documenter .docs-sidebar form.docs-search > input.field-label { + font-size: 0.75rem; + padding-top: 0.375em; } + .field-label.is-normal { + padding-top: 0.375em; } + .field-label.is-medium { + font-size: 1.25rem; + padding-top: 0.375em; } + .field-label.is-large { + font-size: 1.5rem; + padding-top: 0.375em; } } + +.field-body .field .field { + margin-bottom: 0; } + +@media screen and (min-width: 769px), print { + .field-body { + display: flex; + flex-basis: 0; + flex-grow: 5; + flex-shrink: 1; } + .field-body .field { + margin-bottom: 0; } + .field-body > .field { + flex-shrink: 1; } + .field-body > .field:not(.is-narrow) { + flex-grow: 1; } + .field-body > .field:not(:last-child) { + margin-right: 0.75rem; } } + +.control { + box-sizing: border-box; + clear: both; + font-size: 1rem; + position: relative; + text-align: left; } + .control.has-icons-left .input:focus ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon, + .control.has-icons-left .select:focus ~ .icon, .control.has-icons-right .input:focus ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon, + .control.has-icons-right .select:focus ~ .icon { + color: #6b6b6b; } + .control.has-icons-left .input.is-small ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon, + .control.has-icons-left .select.is-small ~ .icon, .control.has-icons-right .input.is-small ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon, + .control.has-icons-right .select.is-small ~ .icon { + font-size: 0.75rem; } + .control.has-icons-left .input.is-medium ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon, + .control.has-icons-left .select.is-medium ~ .icon, .control.has-icons-right .input.is-medium ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon, + .control.has-icons-right .select.is-medium ~ .icon { + font-size: 1.25rem; } + .control.has-icons-left .input.is-large ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon, + .control.has-icons-left .select.is-large ~ .icon, .control.has-icons-right .input.is-large ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon, + .control.has-icons-right .select.is-large ~ .icon { + font-size: 1.5rem; } + .control.has-icons-left .icon, .control.has-icons-right .icon { + color: #dbdbdb; + height: 2.25em; + pointer-events: none; + position: absolute; + top: 0; + width: 2.25em; + z-index: 4; } + .control.has-icons-left .input, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input, + .control.has-icons-left .select select { + padding-left: 2.25em; } + .control.has-icons-left .icon.is-left { + left: 0; } + .control.has-icons-right .input, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input, + .control.has-icons-right .select select { + padding-right: 2.25em; } + .control.has-icons-right .icon.is-right { + right: 0; } + .control.is-loading::after { + position: absolute !important; + right: 0.625em; + top: 0.625em; + z-index: 4; } + .control.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.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 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: #222222; + cursor: default; + pointer-events: none; } + .breadcrumb li + li::before { + color: #b5b5b5; + content: "\0002f"; } + .breadcrumb ul, + .breadcrumb ol { + align-items: flex-start; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .breadcrumb .icon:first-child { + margin-right: 0.5em; } + .breadcrumb .icon:last-child { + margin-left: 0.5em; } + .breadcrumb.is-centered ol, + .breadcrumb.is-centered ul { + justify-content: center; } + .breadcrumb.is-right ol, + .breadcrumb.is-right ul { + justify-content: flex-end; } + .breadcrumb.is-small, #documenter .docs-sidebar form.docs-search > input.breadcrumb { + font-size: 0.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: white; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #222222; + max-width: 100%; + position: relative; } + +.card-header { + background-color: transparent; + align-items: stretch; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + display: flex; } + +.card-header-title { + align-items: center; + color: #222222; + display: flex; + flex-grow: 1; + font-weight: 700; + padding: 0.75rem; } + .card-header-title.is-centered { + justify-content: center; } + +.card-header-icon { + align-items: center; + cursor: pointer; + display: flex; + justify-content: center; + padding: 0.75rem; } + +.card-image { + display: block; + position: relative; } + +.card-content { + background-color: transparent; + padding: 1.5rem; } + +.card-footer { + background-color: transparent; + border-top: 1px solid #dbdbdb; + align-items: stretch; + display: flex; } + +.card-footer-item { + align-items: center; + display: flex; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + justify-content: center; + padding: 0.75rem; } + .card-footer-item:not(:last-child) { + border-right: 1px solid #dbdbdb; } + +.card .media:not(:last-child) { + margin-bottom: 1.5rem; } + +.dropdown { + display: inline-flex; + position: relative; + vertical-align: top; } + .dropdown.is-active .dropdown-menu, .dropdown.is-hoverable:hover .dropdown-menu { + display: block; } + .dropdown.is-right .dropdown-menu { + left: auto; + right: 0; } + .dropdown.is-up .dropdown-menu { + bottom: 100%; + padding-bottom: 4px; + padding-top: initial; + top: auto; } + +.dropdown-menu { + display: none; + left: 0; + min-width: 12rem; + padding-top: 4px; + position: absolute; + top: 100%; + z-index: 20; } + +.dropdown-content { + background-color: white; + border-radius: 4px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + +.dropdown-item { + color: #4a4a4a; + display: block; + font-size: 0.875rem; + line-height: 1.5; + padding: 0.375rem 1rem; + position: relative; } + +a.dropdown-item, +button.dropdown-item { + padding-right: 3rem; + text-align: left; + white-space: nowrap; + width: 100%; } + a.dropdown-item:hover, + button.dropdown-item:hover { + background-color: whitesmoke; + color: #0a0a0a; } + a.dropdown-item.is-active, + button.dropdown-item.is-active { + background-color: #2e63b8; + color: #fff; } + +.dropdown-divider { + background-color: #dbdbdb; + border: none; + display: block; + height: 1px; + margin: 0.5rem 0; } + +.level { + align-items: center; + justify-content: space-between; } + .level code { + border-radius: 4px; } + .level img { + display: inline-block; + vertical-align: top; } + .level.is-mobile { + display: flex; } + .level.is-mobile .level-left, + .level.is-mobile .level-right { + display: flex; } + .level.is-mobile .level-left + .level-right { + margin-top: 0; } + .level.is-mobile .level-item:not(:last-child) { + margin-bottom: 0; + margin-right: 0.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: 0.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: 0.75rem; } } +.level-left { + align-items: center; + justify-content: flex-start; } + @media screen and (max-width: 768px) { + .level-left + .level-right { + margin-top: 1.5rem; } } + @media screen and (min-width: 769px), print { + .level-left { + display: flex; } } +.level-right { + align-items: center; + justify-content: flex-end; } + @media screen and (min-width: 769px), print { + .level-right { + display: flex; } } +.list { + background-color: white; + border-radius: 4px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); } + +.list-item { + display: block; + padding: 0.5em 1em; } + .list-item:not(a) { + color: #222222; } + .list-item:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; } + .list-item:last-child { + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; } + .list-item:not(:last-child) { + border-bottom: 1px solid #dbdbdb; } + .list-item.is-active { + background-color: #2e63b8; + color: #fff; } + +a.list-item { + background-color: whitesmoke; + cursor: pointer; } + +.media { + align-items: flex-start; + display: flex; + text-align: left; } + .media .content:not(:last-child) { + margin-bottom: 0.75rem; } + .media .media { + border-top: 1px solid rgba(219, 219, 219, 0.5); + display: flex; + padding-top: 0.75rem; } + .media .media .content:not(:last-child), + .media .media .control:not(:last-child) { + margin-bottom: 0.5rem; } + .media .media .media { + padding-top: 0.5rem; } + .media .media .media + .media { + margin-top: 0.5rem; } + .media + .media { + border-top: 1px solid rgba(219, 219, 219, 0.5); + margin-top: 1rem; + padding-top: 1rem; } + .media.is-large + .media { + margin-top: 1.5rem; + padding-top: 1.5rem; } + +.media-left, +.media-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + +.media-left { + margin-right: 1rem; } + +.media-right { + margin-left: 1rem; } + +.media-content { + flex-basis: auto; + flex-grow: 1; + flex-shrink: 1; + text-align: left; } + +@media screen and (max-width: 768px) { + .media-content { + overflow-x: auto; } } + +.menu { + font-size: 1rem; } + .menu.is-small, #documenter .docs-sidebar form.docs-search > input.menu { + font-size: 0.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: #222222; + display: block; + padding: 0.5em 0.75em; } + .menu-list a:hover { + background-color: whitesmoke; + color: #222222; } + .menu-list a.is-active { + background-color: #2e63b8; + color: #fff; } + .menu-list li ul { + border-left: 1px solid #dbdbdb; + margin: 0.75em; + padding-left: 0.75em; } + +.menu-label { + color: #6b6b6b; + font-size: 0.75em; + letter-spacing: 0.1em; + text-transform: uppercase; } + .menu-label:not(:first-child) { + margin-top: 1em; } + .menu-label:not(:last-child) { + margin-bottom: 1em; } + +.message { + background-color: whitesmoke; + 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: 0.75rem; } + .message.is-medium { + font-size: 1.25rem; } + .message.is-large { + font-size: 1.5rem; } + .message.is-white { + background-color: white; } + .message.is-white .message-header { + background-color: white; + color: #0a0a0a; } + .message.is-white .message-body { + border-color: white; + color: #4d4d4d; } + .message.is-black { + background-color: #fafafa; } + .message.is-black .message-header { + background-color: #0a0a0a; + color: white; } + .message.is-black .message-body { + border-color: #0a0a0a; + color: #090909; } + .message.is-light { + background-color: #fafafa; } + .message.is-light .message-header { + background-color: whitesmoke; + color: #363636; } + .message.is-light .message-body { + border-color: whitesmoke; + color: #505050; } + .message.is-dark, .content kbd.message { + background-color: #fafafa; } + .message.is-dark .message-header, .content kbd.message .message-header { + background-color: #363636; + color: whitesmoke; } + .message.is-dark .message-body, .content kbd.message .message-body { + border-color: #363636; + color: #2a2a2a; } + .message.is-primary, .docstring > section > a.message.docs-sourcelink { + background-color: #f6fbfd; } + .message.is-primary .message-header, .docstring > section > a.message.docs-sourcelink .message-header { + background-color: #4eb5de; + color: #fff; } + .message.is-primary .message-body, .docstring > section > a.message.docs-sourcelink .message-body { + border-color: #4eb5de; + color: #1f556a; } + .message.is-link { + background-color: #f7f9fd; } + .message.is-link .message-header { + background-color: #2e63b8; + color: #fff; } + .message.is-link .message-body { + border-color: #2e63b8; + color: #264981; } + .message.is-info { + background-color: #f6fbfe; } + .message.is-info .message-header { + background-color: #209cee; + color: #fff; } + .message.is-info .message-body { + border-color: #209cee; + color: #12537d; } + .message.is-success { + background-color: #f6fdf9; } + .message.is-success .message-header { + background-color: #22c35b; + color: #fff; } + .message.is-success .message-body { + border-color: #22c35b; + color: #0f361d; } + .message.is-warning { + background-color: #fffdf5; } + .message.is-warning .message-header { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .message.is-warning .message-body { + border-color: #ffdd57; + color: #3c3108; } + .message.is-danger { + background-color: #fff5f5; } + .message.is-danger .message-header { + background-color: #da0b00; + color: #fff; } + .message.is-danger .message-body { + border-color: #da0b00; + color: #9b0c04; } + +.message-header { + align-items: center; + background-color: #222222; + border-radius: 4px 4px 0 0; + color: #fff; + display: flex; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em 1em; + position: relative; } + .message-header .delete { + flex-grow: 0; + flex-shrink: 0; + margin-left: 0.75em; } + .message-header + .message-body { + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; } + +.message-body { + border-color: #dbdbdb; + border-radius: 4px; + border-style: solid; + border-width: 0 0 0 4px; + color: #222222; + padding: 1.25em 1.5em; } + .message-body code, + .message-body pre { + background-color: white; } + .message-body pre code { + background-color: transparent; } + +.modal { + align-items: center; + display: none; + flex-direction: column; + justify-content: center; + overflow: hidden; + position: fixed; + z-index: 40; } + .modal.is-active { + display: flex; } + +.modal-background { + background-color: rgba(10, 10, 10, 0.86); } + +.modal-content, +.modal-card { + margin: 0 20px; + max-height: calc(100vh - 160px); + overflow: auto; + position: relative; + width: 100%; } + @media screen and (min-width: 769px), print { + .modal-content, + .modal-card { + margin: 0 auto; + max-height: calc(100vh - 40px); + width: 640px; } } +.modal-close { + background: none; + height: 40px; + position: fixed; + right: 20px; + top: 20px; + width: 40px; } + +.modal-card { + display: flex; + flex-direction: column; + max-height: calc(100vh - 40px); + overflow: hidden; + -ms-overflow-y: visible; } + +.modal-card-head, +.modal-card-foot { + align-items: center; + background-color: whitesmoke; + 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: #222222; + flex-grow: 1; + flex-shrink: 0; + font-size: 1.5rem; + line-height: 1; } + +.modal-card-foot { + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + border-top: 1px solid #dbdbdb; } + .modal-card-foot .button:not(:last-child) { + margin-right: 0.5em; } + +.modal-card-body { + -webkit-overflow-scrolling: touch; + background-color: white; + flex-grow: 1; + flex-shrink: 1; + overflow: auto; + padding: 20px; } + +.navbar { + background-color: white; + min-height: 3.25rem; + position: relative; + z-index: 30; } + .navbar.is-white { + background-color: white; + 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: white; + color: #0a0a0a; } } + .navbar.is-black { + background-color: #0a0a0a; + color: white; } + .navbar.is-black .navbar-brand > .navbar-item, + .navbar.is-black .navbar-brand .navbar-link { + color: white; } + .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: black; + color: white; } + .navbar.is-black .navbar-brand .navbar-link::after { + border-color: white; } + .navbar.is-black .navbar-burger { + color: white; } + @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: white; } + .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: black; + color: white; } + .navbar.is-black .navbar-start .navbar-link::after, + .navbar.is-black .navbar-end .navbar-link::after { + border-color: white; } + .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: black; + color: white; } + .navbar.is-black .navbar-dropdown a.navbar-item.is-active { + background-color: #0a0a0a; + color: white; } } + .navbar.is-light { + background-color: whitesmoke; + color: #363636; } + .navbar.is-light .navbar-brand > .navbar-item, + .navbar.is-light .navbar-brand .navbar-link { + color: #363636; } + .navbar.is-light .navbar-brand > a.navbar-item:focus, .navbar.is-light .navbar-brand > a.navbar-item:hover, .navbar.is-light .navbar-brand > a.navbar-item.is-active, + .navbar.is-light .navbar-brand .navbar-link:focus, + .navbar.is-light .navbar-brand .navbar-link:hover, + .navbar.is-light .navbar-brand .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-brand .navbar-link::after { + border-color: #363636; } + .navbar.is-light .navbar-burger { + color: #363636; } + @media screen and (min-width: 1056px) { + .navbar.is-light .navbar-start > .navbar-item, + .navbar.is-light .navbar-start .navbar-link, + .navbar.is-light .navbar-end > .navbar-item, + .navbar.is-light .navbar-end .navbar-link { + color: #363636; } + .navbar.is-light .navbar-start > a.navbar-item:focus, .navbar.is-light .navbar-start > a.navbar-item:hover, .navbar.is-light .navbar-start > a.navbar-item.is-active, + .navbar.is-light .navbar-start .navbar-link:focus, + .navbar.is-light .navbar-start .navbar-link:hover, + .navbar.is-light .navbar-start .navbar-link.is-active, + .navbar.is-light .navbar-end > a.navbar-item:focus, + .navbar.is-light .navbar-end > a.navbar-item:hover, + .navbar.is-light .navbar-end > a.navbar-item.is-active, + .navbar.is-light .navbar-end .navbar-link:focus, + .navbar.is-light .navbar-end .navbar-link:hover, + .navbar.is-light .navbar-end .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-start .navbar-link::after, + .navbar.is-light .navbar-end .navbar-link::after { + border-color: #363636; } + .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #363636; } } + .navbar.is-dark, .content kbd.navbar { + background-color: #363636; + color: whitesmoke; } + .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: whitesmoke; } + .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: whitesmoke; } + .navbar.is-dark .navbar-brand .navbar-link::after, .content kbd.navbar .navbar-brand .navbar-link::after { + border-color: whitesmoke; } + .navbar.is-dark .navbar-burger, .content kbd.navbar .navbar-burger { + color: whitesmoke; } + @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: whitesmoke; } + .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: whitesmoke; } + .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: whitesmoke; } + .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: whitesmoke; } + .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, .content kbd.navbar .navbar-dropdown a.navbar-item.is-active { + background-color: #363636; + color: whitesmoke; } } + .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 whitesmoke; } + .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 whitesmoke; } + .navbar.is-fixed-top { + top: 0; } + +html.has-navbar-fixed-top, +body.has-navbar-fixed-top { + padding-top: 3.25rem; } + +html.has-navbar-fixed-bottom, +body.has-navbar-fixed-bottom { + padding-bottom: 3.25rem; } + +.navbar-brand, +.navbar-tabs { + align-items: stretch; + display: flex; + flex-shrink: 0; + min-height: 3.25rem; } + +.navbar-brand a.navbar-item:focus, .navbar-brand a.navbar-item:hover { + background-color: transparent; } + +.navbar-tabs { + -webkit-overflow-scrolling: touch; + max-width: 100vw; + overflow-x: auto; + overflow-y: hidden; } + +.navbar-burger { + color: #4a4a4a; + cursor: pointer; + display: block; + height: 3.25rem; + position: relative; + width: 3.25rem; + margin-left: auto; } + .navbar-burger span { + background-color: currentColor; + display: block; + height: 1px; + left: calc(50% - 8px); + position: absolute; + transform-origin: center; + transition-duration: 86ms; + transition-property: background-color, opacity, transform; + transition-timing-function: ease-out; + width: 16px; } + .navbar-burger span:nth-child(1) { + top: calc(50% - 6px); } + .navbar-burger span:nth-child(2) { + top: calc(50% - 1px); } + .navbar-burger span:nth-child(3) { + top: calc(50% + 4px); } + .navbar-burger:hover { + background-color: rgba(0, 0, 0, 0.05); } + .navbar-burger.is-active span:nth-child(1) { + transform: translateY(5px) rotate(45deg); } + .navbar-burger.is-active span:nth-child(2) { + opacity: 0; } + .navbar-burger.is-active span:nth-child(3) { + transform: translateY(-5px) rotate(-45deg); } + +.navbar-menu { + display: none; } + +.navbar-item, +.navbar-link { + color: #4a4a4a; + display: block; + line-height: 1.5; + padding: 0.5rem 0.75rem; + position: relative; } + .navbar-item .icon:only-child, + .navbar-link .icon:only-child { + margin-left: -0.25rem; + margin-right: -0.25rem; } + +a.navbar-item, +.navbar-link { + cursor: pointer; } + a.navbar-item:focus, a.navbar-item:focus-within, a.navbar-item:hover, a.navbar-item.is-active, + .navbar-link:focus, + .navbar-link:focus-within, + .navbar-link:hover, + .navbar-link.is-active { + background-color: #fafafa; + color: #2e63b8; } + +.navbar-item { + display: block; + flex-grow: 0; + flex-shrink: 0; } + .navbar-item img { + max-height: 1.75rem; } + .navbar-item.has-dropdown { + padding: 0; } + .navbar-item.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .navbar-item.is-tab { + border-bottom: 1px solid transparent; + min-height: 3.25rem; + padding-bottom: calc(0.5rem - 1px); } + .navbar-item.is-tab:focus, .navbar-item.is-tab:hover { + background-color: transparent; + border-bottom-color: #2e63b8; } + .navbar-item.is-tab.is-active { + background-color: transparent; + 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: whitesmoke; + 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: white; + 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: whitesmoke; + color: #0a0a0a; } + .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #2e63b8; } + .navbar-burger { + display: none; } + .navbar-item, + .navbar-link { + align-items: center; + display: flex; } + .navbar-item { + display: flex; } + .navbar-item.has-dropdown { + align-items: stretch; } + .navbar-item.has-dropdown-up .navbar-link::after { + transform: rotate(135deg) translate(0.25em, -0.25em); } + .navbar-item.has-dropdown-up .navbar-dropdown { + border-bottom: 2px solid #dbdbdb; + border-radius: 6px 6px 0 0; + border-top: none; + bottom: 100%; + box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1); + top: auto; } + .navbar-item.is-active .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown { + display: block; } + .navbar.is-spaced .navbar-item.is-active .navbar-dropdown, .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed { + opacity: 1; + pointer-events: auto; + transform: translateY(0); } + .navbar-menu { + flex-grow: 1; + flex-shrink: 0; } + .navbar-start { + justify-content: flex-start; + margin-right: auto; } + .navbar-end { + justify-content: flex-end; + margin-left: auto; } + .navbar-dropdown { + background-color: white; + 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: whitesmoke; + color: #0a0a0a; } + .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + 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: transparent; } + .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: -0.25rem; } + .pagination.is-small, #documenter .docs-sidebar form.docs-search > input.pagination { + font-size: 0.75rem; } + .pagination.is-medium { + font-size: 1.25rem; } + .pagination.is-large { + font-size: 1.5rem; } + .pagination.is-rounded .pagination-previous, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous, + .pagination.is-rounded .pagination-next, + #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next { + padding-left: 1em; + padding-right: 1em; + border-radius: 290486px; } + .pagination.is-rounded .pagination-link, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link { + border-radius: 290486px; } + +.pagination, +.pagination-list { + align-items: center; + display: flex; + justify-content: center; + text-align: center; } + +.pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis { + font-size: 1em; + justify-content: center; + margin: 0.25rem; + padding-left: 0.5em; + padding-right: 0.5em; + text-align: center; } + +.pagination-previous, +.pagination-next, +.pagination-link { + border-color: #dbdbdb; + color: #363636; + min-width: 2.25em; } + .pagination-previous:hover, + .pagination-next:hover, + .pagination-link:hover { + border-color: #b5b5b5; + color: #363636; } + .pagination-previous:focus, + .pagination-next:focus, + .pagination-link:focus { + border-color: #3c5dcd; } + .pagination-previous:active, + .pagination-next:active, + .pagination-link:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); } + .pagination-previous[disabled], + .pagination-next[disabled], + .pagination-link[disabled] { + background-color: #dbdbdb; + border-color: #dbdbdb; + box-shadow: none; + color: #6b6b6b; + opacity: 0.5; } + +.pagination-previous, +.pagination-next { + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + +.pagination-link.is-current { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + +.pagination-ellipsis { + color: #b5b5b5; + pointer-events: none; } + +.pagination-list { + flex-wrap: wrap; } + +@media screen and (max-width: 768px) { + .pagination { + flex-wrap: wrap; } + .pagination-previous, + .pagination-next { + flex-grow: 1; + flex-shrink: 1; } + .pagination-list li { + flex-grow: 1; + flex-shrink: 1; } } + +@media screen and (min-width: 769px), print { + .pagination-list { + flex-grow: 1; + flex-shrink: 1; + justify-content: flex-start; + order: 1; } + .pagination-previous { + order: 2; } + .pagination-next { + order: 3; } + .pagination { + justify-content: space-between; } + .pagination.is-centered .pagination-previous { + order: 1; } + .pagination.is-centered .pagination-list { + justify-content: center; + order: 2; } + .pagination.is-centered .pagination-next { + order: 3; } + .pagination.is-right .pagination-previous { + order: 1; } + .pagination.is-right .pagination-next { + order: 2; } + .pagination.is-right .pagination-list { + justify-content: flex-end; + order: 3; } } + +.panel { + font-size: 1rem; } + .panel:not(:last-child) { + margin-bottom: 1.5rem; } + +.panel-heading, +.panel-tabs, +.panel-block { + border-bottom: 1px solid #dbdbdb; + border-left: 1px solid #dbdbdb; + border-right: 1px solid #dbdbdb; } + .panel-heading:first-child, + .panel-tabs:first-child, + .panel-block:first-child { + border-top: 1px solid #dbdbdb; } + +.panel-heading { + background-color: whitesmoke; + border-radius: 4px 4px 0 0; + color: #222222; + font-size: 1.25em; + font-weight: 300; + line-height: 1.25; + padding: 0.5em 0.75em; } + +.panel-tabs { + align-items: flex-end; + display: flex; + font-size: 0.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: #222222; } + .panel-list a:hover { + color: #2e63b8; } + +.panel-block { + align-items: center; + color: #222222; + display: flex; + justify-content: flex-start; + padding: 0.5em 0.75em; } + .panel-block input[type="checkbox"] { + margin-right: 0.75em; } + .panel-block > .control { + flex-grow: 1; + flex-shrink: 1; + width: 100%; } + .panel-block.is-wrapped { + flex-wrap: wrap; } + .panel-block.is-active { + border-left-color: #2e63b8; + color: #363636; } + .panel-block.is-active .panel-icon { + color: #2e63b8; } + +a.panel-block, +label.panel-block { + cursor: pointer; } + a.panel-block:hover, + label.panel-block:hover { + background-color: whitesmoke; } + +.panel-icon { + display: inline-block; + font-size: 14px; + height: 1em; + line-height: 1em; + text-align: center; + vertical-align: top; + width: 1em; + color: #6b6b6b; + margin-right: 0.75em; } + .panel-icon .fa { + font-size: inherit; + line-height: inherit; } + +.tabs { + -webkit-overflow-scrolling: touch; + align-items: stretch; + display: flex; + font-size: 1rem; + justify-content: space-between; + overflow: hidden; + overflow-x: auto; + white-space: nowrap; } + .tabs a { + align-items: center; + border-bottom-color: #dbdbdb; + border-bottom-style: solid; + border-bottom-width: 1px; + color: #222222; + display: flex; + justify-content: center; + margin-bottom: -1px; + padding: 0.5em 1em; + vertical-align: top; } + .tabs a:hover { + border-bottom-color: #222222; + color: #222222; } + .tabs li { + display: block; } + .tabs li.is-active a { + border-bottom-color: #2e63b8; + color: #2e63b8; } + .tabs ul { + align-items: center; + border-bottom-color: #dbdbdb; + border-bottom-style: solid; + border-bottom-width: 1px; + display: flex; + flex-grow: 1; + flex-shrink: 0; + justify-content: flex-start; } + .tabs ul.is-left { + padding-right: 0.75em; } + .tabs ul.is-center { + flex: none; + justify-content: center; + padding-left: 0.75em; + padding-right: 0.75em; } + .tabs ul.is-right { + justify-content: flex-end; + padding-left: 0.75em; } + .tabs .icon:first-child { + margin-right: 0.5em; } + .tabs .icon:last-child { + margin-left: 0.5em; } + .tabs.is-centered ul { + justify-content: center; } + .tabs.is-right ul { + justify-content: flex-end; } + .tabs.is-boxed a { + border: 1px solid transparent; + border-radius: 4px 4px 0 0; } + .tabs.is-boxed a:hover { + background-color: whitesmoke; + border-bottom-color: #dbdbdb; } + .tabs.is-boxed li.is-active a { + background-color: white; + border-color: #dbdbdb; + border-bottom-color: transparent !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: whitesmoke; + border-color: #b5b5b5; + z-index: 2; } + .tabs.is-toggle li + li { + margin-left: -1px; } + .tabs.is-toggle li:first-child a { + border-radius: 4px 0 0 4px; } + .tabs.is-toggle li:last-child a { + border-radius: 0 4px 4px 0; } + .tabs.is-toggle li.is-active a { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; + z-index: 1; } + .tabs.is-toggle ul { + border-bottom: none; } + .tabs.is-toggle.is-toggle-rounded li:first-child a { + border-bottom-left-radius: 290486px; + border-top-left-radius: 290486px; + padding-left: 1.25em; } + .tabs.is-toggle.is-toggle-rounded li:last-child a { + border-bottom-right-radius: 290486px; + border-top-right-radius: 290486px; + padding-right: 1.25em; } + .tabs.is-small, #documenter .docs-sidebar form.docs-search > input.tabs { + font-size: 0.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: 0.75rem; } + .columns.is-mobile > .column.is-narrow { + flex: none; } + .columns.is-mobile > .column.is-full { + flex: none; + width: 100%; } + .columns.is-mobile > .column.is-three-quarters { + flex: none; + width: 75%; } + .columns.is-mobile > .column.is-two-thirds { + flex: none; + width: 66.6666%; } + .columns.is-mobile > .column.is-half { + flex: none; + width: 50%; } + .columns.is-mobile > .column.is-one-third { + flex: none; + width: 33.3333%; } + .columns.is-mobile > .column.is-one-quarter { + flex: none; + width: 25%; } + .columns.is-mobile > .column.is-one-fifth { + flex: none; + width: 20%; } + .columns.is-mobile > .column.is-two-fifths { + flex: none; + width: 40%; } + .columns.is-mobile > .column.is-three-fifths { + flex: none; + width: 60%; } + .columns.is-mobile > .column.is-four-fifths { + flex: none; + width: 80%; } + .columns.is-mobile > .column.is-offset-three-quarters { + margin-left: 75%; } + .columns.is-mobile > .column.is-offset-two-thirds { + margin-left: 66.6666%; } + .columns.is-mobile > .column.is-offset-half { + margin-left: 50%; } + .columns.is-mobile > .column.is-offset-one-third { + margin-left: 33.3333%; } + .columns.is-mobile > .column.is-offset-one-quarter { + margin-left: 25%; } + .columns.is-mobile > .column.is-offset-one-fifth { + margin-left: 20%; } + .columns.is-mobile > .column.is-offset-two-fifths { + margin-left: 40%; } + .columns.is-mobile > .column.is-offset-three-fifths { + margin-left: 60%; } + .columns.is-mobile > .column.is-offset-four-fifths { + margin-left: 80%; } + .columns.is-mobile > .column.is-0 { + flex: none; + width: 0%; } + .columns.is-mobile > .column.is-offset-0 { + margin-left: 0%; } + .columns.is-mobile > .column.is-1 { + flex: none; + width: 8.3333333333%; } + .columns.is-mobile > .column.is-offset-1 { + margin-left: 8.3333333333%; } + .columns.is-mobile > .column.is-2 { + flex: none; + width: 16.6666666667%; } + .columns.is-mobile > .column.is-offset-2 { + margin-left: 16.6666666667%; } + .columns.is-mobile > .column.is-3 { + flex: none; + width: 25%; } + .columns.is-mobile > .column.is-offset-3 { + margin-left: 25%; } + .columns.is-mobile > .column.is-4 { + flex: none; + width: 33.3333333333%; } + .columns.is-mobile > .column.is-offset-4 { + margin-left: 33.3333333333%; } + .columns.is-mobile > .column.is-5 { + flex: none; + width: 41.6666666667%; } + .columns.is-mobile > .column.is-offset-5 { + margin-left: 41.6666666667%; } + .columns.is-mobile > .column.is-6 { + flex: none; + width: 50%; } + .columns.is-mobile > .column.is-offset-6 { + margin-left: 50%; } + .columns.is-mobile > .column.is-7 { + flex: none; + width: 58.3333333333%; } + .columns.is-mobile > .column.is-offset-7 { + margin-left: 58.3333333333%; } + .columns.is-mobile > .column.is-8 { + flex: none; + width: 66.6666666667%; } + .columns.is-mobile > .column.is-offset-8 { + margin-left: 66.6666666667%; } + .columns.is-mobile > .column.is-9 { + flex: none; + width: 75%; } + .columns.is-mobile > .column.is-offset-9 { + margin-left: 75%; } + .columns.is-mobile > .column.is-10 { + flex: none; + width: 83.3333333333%; } + .columns.is-mobile > .column.is-offset-10 { + margin-left: 83.3333333333%; } + .columns.is-mobile > .column.is-11 { + flex: none; + width: 91.6666666667%; } + .columns.is-mobile > .column.is-offset-11 { + margin-left: 91.6666666667%; } + .columns.is-mobile > .column.is-12 { + flex: none; + width: 100%; } + .columns.is-mobile > .column.is-offset-12 { + margin-left: 100%; } + @media screen and (max-width: 768px) { + .column.is-narrow-mobile { + flex: none; } + .column.is-full-mobile { + flex: none; + width: 100%; } + .column.is-three-quarters-mobile { + flex: none; + width: 75%; } + .column.is-two-thirds-mobile { + flex: none; + width: 66.6666%; } + .column.is-half-mobile { + flex: none; + width: 50%; } + .column.is-one-third-mobile { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-mobile { + flex: none; + width: 25%; } + .column.is-one-fifth-mobile { + flex: none; + width: 20%; } + .column.is-two-fifths-mobile { + flex: none; + width: 40%; } + .column.is-three-fifths-mobile { + flex: none; + width: 60%; } + .column.is-four-fifths-mobile { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-mobile { + margin-left: 75%; } + .column.is-offset-two-thirds-mobile { + margin-left: 66.6666%; } + .column.is-offset-half-mobile { + margin-left: 50%; } + .column.is-offset-one-third-mobile { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-mobile { + margin-left: 25%; } + .column.is-offset-one-fifth-mobile { + margin-left: 20%; } + .column.is-offset-two-fifths-mobile { + margin-left: 40%; } + .column.is-offset-three-fifths-mobile { + margin-left: 60%; } + .column.is-offset-four-fifths-mobile { + margin-left: 80%; } + .column.is-0-mobile { + flex: none; + width: 0%; } + .column.is-offset-0-mobile { + margin-left: 0%; } + .column.is-1-mobile { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-mobile { + margin-left: 8.3333333333%; } + .column.is-2-mobile { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-mobile { + margin-left: 16.6666666667%; } + .column.is-3-mobile { + flex: none; + width: 25%; } + .column.is-offset-3-mobile { + margin-left: 25%; } + .column.is-4-mobile { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-mobile { + margin-left: 33.3333333333%; } + .column.is-5-mobile { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-mobile { + margin-left: 41.6666666667%; } + .column.is-6-mobile { + flex: none; + width: 50%; } + .column.is-offset-6-mobile { + margin-left: 50%; } + .column.is-7-mobile { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-mobile { + margin-left: 58.3333333333%; } + .column.is-8-mobile { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-mobile { + margin-left: 66.6666666667%; } + .column.is-9-mobile { + flex: none; + width: 75%; } + .column.is-offset-9-mobile { + margin-left: 75%; } + .column.is-10-mobile { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-mobile { + margin-left: 83.3333333333%; } + .column.is-11-mobile { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-mobile { + margin-left: 91.6666666667%; } + .column.is-12-mobile { + flex: none; + width: 100%; } + .column.is-offset-12-mobile { + margin-left: 100%; } } + @media screen and (min-width: 769px), print { + .column.is-narrow, .column.is-narrow-tablet { + flex: none; } + .column.is-full, .column.is-full-tablet { + flex: none; + width: 100%; } + .column.is-three-quarters, .column.is-three-quarters-tablet { + flex: none; + width: 75%; } + .column.is-two-thirds, .column.is-two-thirds-tablet { + flex: none; + width: 66.6666%; } + .column.is-half, .column.is-half-tablet { + flex: none; + width: 50%; } + .column.is-one-third, .column.is-one-third-tablet { + flex: none; + width: 33.3333%; } + .column.is-one-quarter, .column.is-one-quarter-tablet { + flex: none; + width: 25%; } + .column.is-one-fifth, .column.is-one-fifth-tablet { + flex: none; + width: 20%; } + .column.is-two-fifths, .column.is-two-fifths-tablet { + flex: none; + width: 40%; } + .column.is-three-fifths, .column.is-three-fifths-tablet { + flex: none; + width: 60%; } + .column.is-four-fifths, .column.is-four-fifths-tablet { + flex: none; + width: 80%; } + .column.is-offset-three-quarters, .column.is-offset-three-quarters-tablet { + margin-left: 75%; } + .column.is-offset-two-thirds, .column.is-offset-two-thirds-tablet { + margin-left: 66.6666%; } + .column.is-offset-half, .column.is-offset-half-tablet { + margin-left: 50%; } + .column.is-offset-one-third, .column.is-offset-one-third-tablet { + margin-left: 33.3333%; } + .column.is-offset-one-quarter, .column.is-offset-one-quarter-tablet { + margin-left: 25%; } + .column.is-offset-one-fifth, .column.is-offset-one-fifth-tablet { + margin-left: 20%; } + .column.is-offset-two-fifths, .column.is-offset-two-fifths-tablet { + margin-left: 40%; } + .column.is-offset-three-fifths, .column.is-offset-three-fifths-tablet { + margin-left: 60%; } + .column.is-offset-four-fifths, .column.is-offset-four-fifths-tablet { + margin-left: 80%; } + .column.is-0, .column.is-0-tablet { + flex: none; + width: 0%; } + .column.is-offset-0, .column.is-offset-0-tablet { + margin-left: 0%; } + .column.is-1, .column.is-1-tablet { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1, .column.is-offset-1-tablet { + margin-left: 8.3333333333%; } + .column.is-2, .column.is-2-tablet { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2, .column.is-offset-2-tablet { + margin-left: 16.6666666667%; } + .column.is-3, .column.is-3-tablet { + flex: none; + width: 25%; } + .column.is-offset-3, .column.is-offset-3-tablet { + margin-left: 25%; } + .column.is-4, .column.is-4-tablet { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4, .column.is-offset-4-tablet { + margin-left: 33.3333333333%; } + .column.is-5, .column.is-5-tablet { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5, .column.is-offset-5-tablet { + margin-left: 41.6666666667%; } + .column.is-6, .column.is-6-tablet { + flex: none; + width: 50%; } + .column.is-offset-6, .column.is-offset-6-tablet { + margin-left: 50%; } + .column.is-7, .column.is-7-tablet { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7, .column.is-offset-7-tablet { + margin-left: 58.3333333333%; } + .column.is-8, .column.is-8-tablet { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8, .column.is-offset-8-tablet { + margin-left: 66.6666666667%; } + .column.is-9, .column.is-9-tablet { + flex: none; + width: 75%; } + .column.is-offset-9, .column.is-offset-9-tablet { + margin-left: 75%; } + .column.is-10, .column.is-10-tablet { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10, .column.is-offset-10-tablet { + margin-left: 83.3333333333%; } + .column.is-11, .column.is-11-tablet { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11, .column.is-offset-11-tablet { + margin-left: 91.6666666667%; } + .column.is-12, .column.is-12-tablet { + flex: none; + width: 100%; } + .column.is-offset-12, .column.is-offset-12-tablet { + margin-left: 100%; } } + @media screen and (max-width: 1055px) { + .column.is-narrow-touch { + flex: none; } + .column.is-full-touch { + flex: none; + width: 100%; } + .column.is-three-quarters-touch { + flex: none; + width: 75%; } + .column.is-two-thirds-touch { + flex: none; + width: 66.6666%; } + .column.is-half-touch { + flex: none; + width: 50%; } + .column.is-one-third-touch { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-touch { + flex: none; + width: 25%; } + .column.is-one-fifth-touch { + flex: none; + width: 20%; } + .column.is-two-fifths-touch { + flex: none; + width: 40%; } + .column.is-three-fifths-touch { + flex: none; + width: 60%; } + .column.is-four-fifths-touch { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-touch { + margin-left: 75%; } + .column.is-offset-two-thirds-touch { + margin-left: 66.6666%; } + .column.is-offset-half-touch { + margin-left: 50%; } + .column.is-offset-one-third-touch { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-touch { + margin-left: 25%; } + .column.is-offset-one-fifth-touch { + margin-left: 20%; } + .column.is-offset-two-fifths-touch { + margin-left: 40%; } + .column.is-offset-three-fifths-touch { + margin-left: 60%; } + .column.is-offset-four-fifths-touch { + margin-left: 80%; } + .column.is-0-touch { + flex: none; + width: 0%; } + .column.is-offset-0-touch { + margin-left: 0%; } + .column.is-1-touch { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-touch { + margin-left: 8.3333333333%; } + .column.is-2-touch { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-touch { + margin-left: 16.6666666667%; } + .column.is-3-touch { + flex: none; + width: 25%; } + .column.is-offset-3-touch { + margin-left: 25%; } + .column.is-4-touch { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-touch { + margin-left: 33.3333333333%; } + .column.is-5-touch { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-touch { + margin-left: 41.6666666667%; } + .column.is-6-touch { + flex: none; + width: 50%; } + .column.is-offset-6-touch { + margin-left: 50%; } + .column.is-7-touch { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-touch { + margin-left: 58.3333333333%; } + .column.is-8-touch { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-touch { + margin-left: 66.6666666667%; } + .column.is-9-touch { + flex: none; + width: 75%; } + .column.is-offset-9-touch { + margin-left: 75%; } + .column.is-10-touch { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-touch { + margin-left: 83.3333333333%; } + .column.is-11-touch { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-touch { + margin-left: 91.6666666667%; } + .column.is-12-touch { + flex: none; + width: 100%; } + .column.is-offset-12-touch { + margin-left: 100%; } } + @media screen and (min-width: 1056px) { + .column.is-narrow-desktop { + flex: none; } + .column.is-full-desktop { + flex: none; + width: 100%; } + .column.is-three-quarters-desktop { + flex: none; + width: 75%; } + .column.is-two-thirds-desktop { + flex: none; + width: 66.6666%; } + .column.is-half-desktop { + flex: none; + width: 50%; } + .column.is-one-third-desktop { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-desktop { + flex: none; + width: 25%; } + .column.is-one-fifth-desktop { + flex: none; + width: 20%; } + .column.is-two-fifths-desktop { + flex: none; + width: 40%; } + .column.is-three-fifths-desktop { + flex: none; + width: 60%; } + .column.is-four-fifths-desktop { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-desktop { + margin-left: 75%; } + .column.is-offset-two-thirds-desktop { + margin-left: 66.6666%; } + .column.is-offset-half-desktop { + margin-left: 50%; } + .column.is-offset-one-third-desktop { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-desktop { + margin-left: 25%; } + .column.is-offset-one-fifth-desktop { + margin-left: 20%; } + .column.is-offset-two-fifths-desktop { + margin-left: 40%; } + .column.is-offset-three-fifths-desktop { + margin-left: 60%; } + .column.is-offset-four-fifths-desktop { + margin-left: 80%; } + .column.is-0-desktop { + flex: none; + width: 0%; } + .column.is-offset-0-desktop { + margin-left: 0%; } + .column.is-1-desktop { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-desktop { + margin-left: 8.3333333333%; } + .column.is-2-desktop { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-desktop { + margin-left: 16.6666666667%; } + .column.is-3-desktop { + flex: none; + width: 25%; } + .column.is-offset-3-desktop { + margin-left: 25%; } + .column.is-4-desktop { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-desktop { + margin-left: 33.3333333333%; } + .column.is-5-desktop { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-desktop { + margin-left: 41.6666666667%; } + .column.is-6-desktop { + flex: none; + width: 50%; } + .column.is-offset-6-desktop { + margin-left: 50%; } + .column.is-7-desktop { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-desktop { + margin-left: 58.3333333333%; } + .column.is-8-desktop { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-desktop { + margin-left: 66.6666666667%; } + .column.is-9-desktop { + flex: none; + width: 75%; } + .column.is-offset-9-desktop { + margin-left: 75%; } + .column.is-10-desktop { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-desktop { + margin-left: 83.3333333333%; } + .column.is-11-desktop { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-desktop { + margin-left: 91.6666666667%; } + .column.is-12-desktop { + flex: none; + width: 100%; } + .column.is-offset-12-desktop { + margin-left: 100%; } } + @media screen and (min-width: 1216px) { + .column.is-narrow-widescreen { + flex: none; } + .column.is-full-widescreen { + flex: none; + width: 100%; } + .column.is-three-quarters-widescreen { + flex: none; + width: 75%; } + .column.is-two-thirds-widescreen { + flex: none; + width: 66.6666%; } + .column.is-half-widescreen { + flex: none; + width: 50%; } + .column.is-one-third-widescreen { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-widescreen { + flex: none; + width: 25%; } + .column.is-one-fifth-widescreen { + flex: none; + width: 20%; } + .column.is-two-fifths-widescreen { + flex: none; + width: 40%; } + .column.is-three-fifths-widescreen { + flex: none; + width: 60%; } + .column.is-four-fifths-widescreen { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-widescreen { + margin-left: 75%; } + .column.is-offset-two-thirds-widescreen { + margin-left: 66.6666%; } + .column.is-offset-half-widescreen { + margin-left: 50%; } + .column.is-offset-one-third-widescreen { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-widescreen { + margin-left: 25%; } + .column.is-offset-one-fifth-widescreen { + margin-left: 20%; } + .column.is-offset-two-fifths-widescreen { + margin-left: 40%; } + .column.is-offset-three-fifths-widescreen { + margin-left: 60%; } + .column.is-offset-four-fifths-widescreen { + margin-left: 80%; } + .column.is-0-widescreen { + flex: none; + width: 0%; } + .column.is-offset-0-widescreen { + margin-left: 0%; } + .column.is-1-widescreen { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-widescreen { + margin-left: 8.3333333333%; } + .column.is-2-widescreen { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-widescreen { + margin-left: 16.6666666667%; } + .column.is-3-widescreen { + flex: none; + width: 25%; } + .column.is-offset-3-widescreen { + margin-left: 25%; } + .column.is-4-widescreen { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-widescreen { + margin-left: 33.3333333333%; } + .column.is-5-widescreen { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-widescreen { + margin-left: 41.6666666667%; } + .column.is-6-widescreen { + flex: none; + width: 50%; } + .column.is-offset-6-widescreen { + margin-left: 50%; } + .column.is-7-widescreen { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-widescreen { + margin-left: 58.3333333333%; } + .column.is-8-widescreen { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-widescreen { + margin-left: 66.6666666667%; } + .column.is-9-widescreen { + flex: none; + width: 75%; } + .column.is-offset-9-widescreen { + margin-left: 75%; } + .column.is-10-widescreen { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-widescreen { + margin-left: 83.3333333333%; } + .column.is-11-widescreen { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-widescreen { + margin-left: 91.6666666667%; } + .column.is-12-widescreen { + flex: none; + width: 100%; } + .column.is-offset-12-widescreen { + margin-left: 100%; } } + @media screen and (min-width: 1408px) { + .column.is-narrow-fullhd { + flex: none; } + .column.is-full-fullhd { + flex: none; + width: 100%; } + .column.is-three-quarters-fullhd { + flex: none; + width: 75%; } + .column.is-two-thirds-fullhd { + flex: none; + width: 66.6666%; } + .column.is-half-fullhd { + flex: none; + width: 50%; } + .column.is-one-third-fullhd { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-fullhd { + flex: none; + width: 25%; } + .column.is-one-fifth-fullhd { + flex: none; + width: 20%; } + .column.is-two-fifths-fullhd { + flex: none; + width: 40%; } + .column.is-three-fifths-fullhd { + flex: none; + width: 60%; } + .column.is-four-fifths-fullhd { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-fullhd { + margin-left: 75%; } + .column.is-offset-two-thirds-fullhd { + margin-left: 66.6666%; } + .column.is-offset-half-fullhd { + margin-left: 50%; } + .column.is-offset-one-third-fullhd { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-fullhd { + margin-left: 25%; } + .column.is-offset-one-fifth-fullhd { + margin-left: 20%; } + .column.is-offset-two-fifths-fullhd { + margin-left: 40%; } + .column.is-offset-three-fifths-fullhd { + margin-left: 60%; } + .column.is-offset-four-fifths-fullhd { + margin-left: 80%; } + .column.is-0-fullhd { + flex: none; + width: 0%; } + .column.is-offset-0-fullhd { + margin-left: 0%; } + .column.is-1-fullhd { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-fullhd { + margin-left: 8.3333333333%; } + .column.is-2-fullhd { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-fullhd { + margin-left: 16.6666666667%; } + .column.is-3-fullhd { + flex: none; + width: 25%; } + .column.is-offset-3-fullhd { + margin-left: 25%; } + .column.is-4-fullhd { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-fullhd { + margin-left: 33.3333333333%; } + .column.is-5-fullhd { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-fullhd { + margin-left: 41.6666666667%; } + .column.is-6-fullhd { + flex: none; + width: 50%; } + .column.is-offset-6-fullhd { + margin-left: 50%; } + .column.is-7-fullhd { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-fullhd { + margin-left: 58.3333333333%; } + .column.is-8-fullhd { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-fullhd { + margin-left: 66.6666666667%; } + .column.is-9-fullhd { + flex: none; + width: 75%; } + .column.is-offset-9-fullhd { + margin-left: 75%; } + .column.is-10-fullhd { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-fullhd { + margin-left: 83.3333333333%; } + .column.is-11-fullhd { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-fullhd { + margin-left: 91.6666666667%; } + .column.is-12-fullhd { + flex: none; + width: 100%; } + .column.is-offset-12-fullhd { + margin-left: 100%; } } +.columns { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + .columns:last-child { + margin-bottom: -0.75rem; } + .columns:not(:last-child) { + margin-bottom: calc(1.5rem - 0.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: 0.25rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-1-mobile { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-1-tablet { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-1-tablet-only { + --columnGap: 0.25rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-1-touch { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-1-desktop { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-1-desktop-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-1-widescreen { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-1-widescreen-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-1-fullhd { + --columnGap: 0.25rem; } } + .columns.is-variable.is-2 { + --columnGap: 0.5rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-2-mobile { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-2-tablet { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-2-tablet-only { + --columnGap: 0.5rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-2-touch { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-2-desktop { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-2-desktop-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-2-widescreen { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-2-widescreen-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-2-fullhd { + --columnGap: 0.5rem; } } + .columns.is-variable.is-3 { + --columnGap: 0.75rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-3-mobile { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-3-tablet { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-3-tablet-only { + --columnGap: 0.75rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-3-touch { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-3-desktop { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-3-desktop-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-3-widescreen { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-3-widescreen-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-3-fullhd { + --columnGap: 0.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: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + .tile.is-ancestor:last-child { + margin-bottom: -0.75rem; } + .tile.is-ancestor:not(:last-child) { + margin-bottom: 0.75rem; } + .tile.is-child { + margin: 0 !important; } + .tile.is-parent { + padding: 0.75rem; } + .tile.is-vertical { + flex-direction: column; } + .tile.is-vertical > .tile.is-child:not(:last-child) { + margin-bottom: 1.5rem !important; } + @media screen and (min-width: 769px), print { + .tile:not(.is-child) { + display: flex; } + .tile.is-1 { + flex: none; + width: 8.3333333333%; } + .tile.is-2 { + flex: none; + width: 16.6666666667%; } + .tile.is-3 { + flex: none; + width: 25%; } + .tile.is-4 { + flex: none; + width: 33.3333333333%; } + .tile.is-5 { + flex: none; + width: 41.6666666667%; } + .tile.is-6 { + flex: none; + width: 50%; } + .tile.is-7 { + flex: none; + width: 58.3333333333%; } + .tile.is-8 { + flex: none; + width: 66.6666666667%; } + .tile.is-9 { + flex: none; + width: 75%; } + .tile.is-10 { + flex: none; + width: 83.3333333333%; } + .tile.is-11 { + flex: none; + width: 91.6666666667%; } + .tile.is-12 { + flex: none; + width: 100%; } } +.hero { + align-items: stretch; + display: flex; + flex-direction: column; + justify-content: space-between; } + .hero .navbar { + background: none; } + .hero .tabs ul { + border-bottom: none; } + .hero.is-white { + background-color: white; + 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: white; } } + .hero.is-white .navbar-item, + .hero.is-white .navbar-link { + color: rgba(10, 10, 10, 0.7); } + .hero.is-white a.navbar-item:hover, .hero.is-white a.navbar-item.is-active, + .hero.is-white .navbar-link:hover, + .hero.is-white .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + .hero.is-white .tabs a { + color: #0a0a0a; + opacity: 0.9; } + .hero.is-white .tabs a:hover { + opacity: 1; } + .hero.is-white .tabs li.is-active a { + opacity: 1; } + .hero.is-white .tabs.is-boxed a, .hero.is-white .tabs.is-toggle a { + color: #0a0a0a; } + .hero.is-white .tabs.is-boxed a:hover, .hero.is-white .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-white .tabs.is-boxed li.is-active a, .hero.is-white .tabs.is-boxed li.is-active a:hover, .hero.is-white .tabs.is-toggle li.is-active a, .hero.is-white .tabs.is-toggle li.is-active a:hover { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .hero.is-white.is-bold { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } + @media screen and (max-width: 768px) { + .hero.is-white.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } } + .hero.is-black { + background-color: #0a0a0a; + color: white; } + .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: white; } + .hero.is-black .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-black .subtitle a:not(.button), + .hero.is-black .subtitle strong { + color: white; } + @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: black; + color: white; } + .hero.is-black .tabs a { + color: white; + opacity: 0.9; } + .hero.is-black .tabs a:hover { + opacity: 1; } + .hero.is-black .tabs li.is-active a { + opacity: 1; } + .hero.is-black .tabs.is-boxed a, .hero.is-black .tabs.is-toggle a { + color: white; } + .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: white; + border-color: white; + color: #0a0a0a; } + .hero.is-black.is-bold { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } + @media screen and (max-width: 768px) { + .hero.is-black.is-bold .navbar-menu { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } } + .hero.is-light { + background-color: whitesmoke; + color: #363636; } + .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-light strong { + color: inherit; } + .hero.is-light .title { + color: #363636; } + .hero.is-light .subtitle { + color: rgba(54, 54, 54, 0.9); } + .hero.is-light .subtitle a:not(.button), + .hero.is-light .subtitle strong { + color: #363636; } + @media screen and (max-width: 1055px) { + .hero.is-light .navbar-menu { + background-color: whitesmoke; } } + .hero.is-light .navbar-item, + .hero.is-light .navbar-link { + color: rgba(54, 54, 54, 0.7); } + .hero.is-light a.navbar-item:hover, .hero.is-light a.navbar-item.is-active, + .hero.is-light .navbar-link:hover, + .hero.is-light .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .hero.is-light .tabs a { + color: #363636; + opacity: 0.9; } + .hero.is-light .tabs a:hover { + opacity: 1; } + .hero.is-light .tabs li.is-active a { + opacity: 1; } + .hero.is-light .tabs.is-boxed a, .hero.is-light .tabs.is-toggle a { + color: #363636; } + .hero.is-light .tabs.is-boxed a:hover, .hero.is-light .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-light .tabs.is-boxed li.is-active a, .hero.is-light .tabs.is-boxed li.is-active a:hover, .hero.is-light .tabs.is-toggle li.is-active a, .hero.is-light .tabs.is-toggle li.is-active a:hover { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .hero.is-light.is-bold { + background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } + @media screen and (max-width: 768px) { + .hero.is-light.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } } + .hero.is-dark, .content kbd.hero { + background-color: #363636; + color: whitesmoke; } + .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: whitesmoke; } + .hero.is-dark .subtitle, .content kbd.hero .subtitle { + color: rgba(245, 245, 245, 0.9); } + .hero.is-dark .subtitle a:not(.button), .content kbd.hero .subtitle a:not(.button), + .hero.is-dark .subtitle strong, + .content kbd.hero .subtitle strong { + color: whitesmoke; } + @media screen and (max-width: 1055px) { + .hero.is-dark .navbar-menu, .content kbd.hero .navbar-menu { + background-color: #363636; } } + .hero.is-dark .navbar-item, .content kbd.hero .navbar-item, + .hero.is-dark .navbar-link, + .content kbd.hero .navbar-link { + color: rgba(245, 245, 245, 0.7); } + .hero.is-dark a.navbar-item:hover, .content kbd.hero a.navbar-item:hover, .hero.is-dark a.navbar-item.is-active, .content kbd.hero a.navbar-item.is-active, + .hero.is-dark .navbar-link:hover, + .content kbd.hero .navbar-link:hover, + .hero.is-dark .navbar-link.is-active, + .content kbd.hero .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; } + .hero.is-dark .tabs a, .content kbd.hero .tabs a { + color: whitesmoke; + opacity: 0.9; } + .hero.is-dark .tabs a:hover, .content kbd.hero .tabs a:hover { + opacity: 1; } + .hero.is-dark .tabs li.is-active a, .content kbd.hero .tabs li.is-active a { + opacity: 1; } + .hero.is-dark .tabs.is-boxed a, .content kbd.hero .tabs.is-boxed a, .hero.is-dark .tabs.is-toggle a, .content kbd.hero .tabs.is-toggle a { + color: whitesmoke; } + .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: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .hero.is-dark.is-bold, .content kbd.hero.is-bold { + background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); } + @media screen and (max-width: 768px) { + .hero.is-dark.is-bold .navbar-menu, .content kbd.hero.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); } } + .hero.is-primary, .docstring > section > a.hero.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-primary strong, + .docstring > section > a.hero.docs-sourcelink strong { + color: inherit; } + .hero.is-primary .title, .docstring > section > a.hero.docs-sourcelink .title { + color: #fff; } + .hero.is-primary .subtitle, .docstring > section > a.hero.docs-sourcelink .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-primary .subtitle a:not(.button), .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button), + .hero.is-primary .subtitle strong, + .docstring > section > a.hero.docs-sourcelink .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-primary .navbar-menu, .docstring > section > a.hero.docs-sourcelink .navbar-menu { + background-color: #4eb5de; } } + .hero.is-primary .navbar-item, .docstring > section > a.hero.docs-sourcelink .navbar-item, + .hero.is-primary .navbar-link, + .docstring > section > a.hero.docs-sourcelink .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-primary a.navbar-item:hover, .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, .hero.is-primary a.navbar-item.is-active, .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active, + .hero.is-primary .navbar-link:hover, + .docstring > section > a.hero.docs-sourcelink .navbar-link:hover, + .hero.is-primary .navbar-link.is-active, + .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active { + background-color: #39acda; + color: #fff; } + .hero.is-primary .tabs a, .docstring > section > a.hero.docs-sourcelink .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-primary .tabs a:hover, .docstring > section > a.hero.docs-sourcelink .tabs a:hover { + opacity: 1; } + .hero.is-primary .tabs li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a { + opacity: 1; } + .hero.is-primary .tabs.is-boxed a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, .hero.is-primary .tabs.is-toggle a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a { + color: #fff; } + .hero.is-primary .tabs.is-boxed a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, .hero.is-primary .tabs.is-toggle a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-primary .tabs.is-boxed li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, .hero.is-primary .tabs.is-boxed li.is-active a:hover, .hero.is-primary .tabs.is-toggle li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, .hero.is-primary .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #4eb5de; } + .hero.is-primary.is-bold, .docstring > section > a.hero.is-bold.docs-sourcelink { + background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); } + @media screen and (max-width: 768px) { + .hero.is-primary.is-bold .navbar-menu, .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu { + background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); } } + .hero.is-link { + background-color: #2e63b8; + color: #fff; } + .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-link strong { + color: inherit; } + .hero.is-link .title { + color: #fff; } + .hero.is-link .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-link .subtitle a:not(.button), + .hero.is-link .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-link .navbar-menu { + background-color: #2e63b8; } } + .hero.is-link .navbar-item, + .hero.is-link .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-link a.navbar-item:hover, .hero.is-link a.navbar-item.is-active, + .hero.is-link .navbar-link:hover, + .hero.is-link .navbar-link.is-active { + background-color: #2958a4; + color: #fff; } + .hero.is-link .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-link .tabs a:hover { + opacity: 1; } + .hero.is-link .tabs li.is-active a { + opacity: 1; } + .hero.is-link .tabs.is-boxed a, .hero.is-link .tabs.is-toggle a { + color: #fff; } + .hero.is-link .tabs.is-boxed a:hover, .hero.is-link .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-link .tabs.is-boxed li.is-active a, .hero.is-link .tabs.is-boxed li.is-active a:hover, .hero.is-link .tabs.is-toggle li.is-active a, .hero.is-link .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #2e63b8; } + .hero.is-link.is-bold { + background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); } + @media screen and (max-width: 768px) { + .hero.is-link.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); } } + .hero.is-info { + background-color: #209cee; + color: #fff; } + .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-info strong { + color: inherit; } + .hero.is-info .title { + color: #fff; } + .hero.is-info .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-info .subtitle a:not(.button), + .hero.is-info .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-info .navbar-menu { + background-color: #209cee; } } + .hero.is-info .navbar-item, + .hero.is-info .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-info a.navbar-item:hover, .hero.is-info a.navbar-item.is-active, + .hero.is-info .navbar-link:hover, + .hero.is-info .navbar-link.is-active { + background-color: #1190e3; + color: #fff; } + .hero.is-info .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-info .tabs a:hover { + opacity: 1; } + .hero.is-info .tabs li.is-active a { + opacity: 1; } + .hero.is-info .tabs.is-boxed a, .hero.is-info .tabs.is-toggle a { + color: #fff; } + .hero.is-info .tabs.is-boxed a:hover, .hero.is-info .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-info .tabs.is-boxed li.is-active a, .hero.is-info .tabs.is-boxed li.is-active a:hover, .hero.is-info .tabs.is-toggle li.is-active a, .hero.is-info .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #209cee; } + .hero.is-info.is-bold { + background-image: linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%); } + @media screen and (max-width: 768px) { + .hero.is-info.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%); } } + .hero.is-success { + background-color: #22c35b; + color: #fff; } + .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-success strong { + color: inherit; } + .hero.is-success .title { + color: #fff; } + .hero.is-success .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-success .subtitle a:not(.button), + .hero.is-success .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-success .navbar-menu { + background-color: #22c35b; } } + .hero.is-success .navbar-item, + .hero.is-success .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-success a.navbar-item:hover, .hero.is-success a.navbar-item.is-active, + .hero.is-success .navbar-link:hover, + .hero.is-success .navbar-link.is-active { + background-color: #1ead51; + color: #fff; } + .hero.is-success .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-success .tabs a:hover { + opacity: 1; } + .hero.is-success .tabs li.is-active a { + opacity: 1; } + .hero.is-success .tabs.is-boxed a, .hero.is-success .tabs.is-toggle a { + color: #fff; } + .hero.is-success .tabs.is-boxed a:hover, .hero.is-success .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-success .tabs.is-boxed li.is-active a, .hero.is-success .tabs.is-boxed li.is-active a:hover, .hero.is-success .tabs.is-toggle li.is-active a, .hero.is-success .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #22c35b; } + .hero.is-success.is-bold { + background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); } + @media screen and (max-width: 768px) { + .hero.is-success.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); } } + .hero.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-warning strong { + color: inherit; } + .hero.is-warning .title { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .subtitle { + color: rgba(0, 0, 0, 0.9); } + .hero.is-warning .subtitle a:not(.button), + .hero.is-warning .subtitle strong { + color: rgba(0, 0, 0, 0.7); } + @media screen and (max-width: 1055px) { + .hero.is-warning .navbar-menu { + background-color: #ffdd57; } } + .hero.is-warning .navbar-item, + .hero.is-warning .navbar-link { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning a.navbar-item:hover, .hero.is-warning a.navbar-item.is-active, + .hero.is-warning .navbar-link:hover, + .hero.is-warning .navbar-link.is-active { + background-color: #ffd83e; + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .tabs a { + color: rgba(0, 0, 0, 0.7); + opacity: 0.9; } + .hero.is-warning .tabs a:hover { + opacity: 1; } + .hero.is-warning .tabs li.is-active a { + opacity: 1; } + .hero.is-warning .tabs.is-boxed a, .hero.is-warning .tabs.is-toggle a { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .tabs.is-boxed a:hover, .hero.is-warning .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-warning .tabs.is-boxed li.is-active a, .hero.is-warning .tabs.is-boxed li.is-active a:hover, .hero.is-warning .tabs.is-toggle li.is-active a, .hero.is-warning .tabs.is-toggle li.is-active a:hover { + background-color: rgba(0, 0, 0, 0.7); + border-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .hero.is-warning.is-bold { + background-image: linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%); } + @media screen and (max-width: 768px) { + .hero.is-warning.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%); } } + .hero.is-danger { + background-color: #da0b00; + color: #fff; } + .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-danger strong { + color: inherit; } + .hero.is-danger .title { + color: #fff; } + .hero.is-danger .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-danger .subtitle a:not(.button), + .hero.is-danger .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-danger .navbar-menu { + background-color: #da0b00; } } + .hero.is-danger .navbar-item, + .hero.is-danger .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-danger a.navbar-item:hover, .hero.is-danger a.navbar-item.is-active, + .hero.is-danger .navbar-link:hover, + .hero.is-danger .navbar-link.is-active { + background-color: #c10a00; + color: #fff; } + .hero.is-danger .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-danger .tabs a:hover { + opacity: 1; } + .hero.is-danger .tabs li.is-active a { + opacity: 1; } + .hero.is-danger .tabs.is-boxed a, .hero.is-danger .tabs.is-toggle a { + color: #fff; } + .hero.is-danger .tabs.is-boxed a:hover, .hero.is-danger .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-danger .tabs.is-boxed li.is-active a, .hero.is-danger .tabs.is-boxed li.is-active a:hover, .hero.is-danger .tabs.is-toggle li.is-active a, .hero.is-danger .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #da0b00; } + .hero.is-danger.is-bold { + background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); } + @media screen and (max-width: 768px) { + .hero.is-danger.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); } } + .hero.is-small .hero-body, #documenter .docs-sidebar form.docs-search > input.hero .hero-body { + padding-bottom: 1.5rem; + padding-top: 1.5rem; } + @media screen and (min-width: 769px), print { + .hero.is-medium .hero-body { + padding-bottom: 9rem; + padding-top: 9rem; } } + @media screen and (min-width: 769px), print { + .hero.is-large .hero-body { + padding-bottom: 18rem; + padding-top: 18rem; } } + .hero.is-halfheight .hero-body, .hero.is-fullheight .hero-body, .hero.is-fullheight-with-navbar .hero-body { + align-items: center; + display: flex; } + .hero.is-halfheight .hero-body > .container, .hero.is-fullheight .hero-body > .container, .hero.is-fullheight-with-navbar .hero-body > .container { + flex-grow: 1; + flex-shrink: 1; } + .hero.is-halfheight { + min-height: 50vh; } + .hero.is-fullheight { + min-height: 100vh; } + +.hero-video { + overflow: hidden; } + .hero-video video { + left: 50%; + min-height: 100%; + min-width: 100%; + position: absolute; + top: 50%; + transform: translate3d(-50%, -50%, 0); } + .hero-video.is-transparent { + opacity: 0.3; } + @media screen and (max-width: 768px) { + .hero-video { + display: none; } } +.hero-buttons { + margin-top: 1.5rem; } + @media screen and (max-width: 768px) { + .hero-buttons .button { + display: flex; } + .hero-buttons .button:not(:last-child) { + margin-bottom: 0.75rem; } } + @media screen and (min-width: 769px), print { + .hero-buttons { + display: flex; + justify-content: center; } + .hero-buttons .button:not(:last-child) { + margin-right: 1.5rem; } } +.hero-head, +.hero-foot { + flex-grow: 0; + flex-shrink: 0; } + +.hero-body { + flex-grow: 1; + flex-shrink: 0; + padding: 3rem 1.5rem; } + +.section { + padding: 3rem 1.5rem; } + @media screen and (min-width: 1056px) { + .section.is-medium { + padding: 9rem 1.5rem; } + .section.is-large { + padding: 18rem 1.5rem; } } +.footer { + background-color: #fafafa; + padding: 3rem 1.5rem 6rem; } + +h1 .docs-heading-anchor, h1 .docs-heading-anchor:hover, h1 .docs-heading-anchor:visited, h2 .docs-heading-anchor, h2 .docs-heading-anchor:hover, h2 .docs-heading-anchor:visited, h3 .docs-heading-anchor, h3 .docs-heading-anchor:hover, h3 .docs-heading-anchor:visited, h4 .docs-heading-anchor, h4 .docs-heading-anchor:hover, h4 .docs-heading-anchor:visited, h5 .docs-heading-anchor, h5 .docs-heading-anchor:hover, h5 .docs-heading-anchor:visited, h6 .docs-heading-anchor, h6 .docs-heading-anchor:hover, h6 .docs-heading-anchor:visited { + color: #222222; } + +h1 .docs-heading-anchor-permalink, h2 .docs-heading-anchor-permalink, h3 .docs-heading-anchor-permalink, h4 .docs-heading-anchor-permalink, h5 .docs-heading-anchor-permalink, h6 .docs-heading-anchor-permalink { + visibility: hidden; + vertical-align: middle; + margin-left: 0.5em; + font-size: 0.7rem; } + h1 .docs-heading-anchor-permalink::before, h2 .docs-heading-anchor-permalink::before, h3 .docs-heading-anchor-permalink::before, h4 .docs-heading-anchor-permalink::before, h5 .docs-heading-anchor-permalink::before, h6 .docs-heading-anchor-permalink::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f0c1"; } + +h1:hover .docs-heading-anchor-permalink, h2:hover .docs-heading-anchor-permalink, h3:hover .docs-heading-anchor-permalink, h4:hover .docs-heading-anchor-permalink, h5:hover .docs-heading-anchor-permalink, h6:hover .docs-heading-anchor-permalink { + visibility: visible; } + +.docs-dark-only { + display: none !important; } + +pre { + position: relative; + overflow: hidden; } + pre code, pre code.hljs { + padding: 0 0.75rem !important; + overflow: auto; + display: block; } + pre code:first-of-type, pre code.hljs:first-of-type { + padding-top: 0.5rem !important; } + pre code:last-of-type, pre code.hljs:last-of-type { + padding-bottom: 0.5rem !important; } + pre .copy-button { + opacity: 0.2; + transition: opacity 0.2s; + position: absolute; + right: 0em; + top: 0em; + padding: 0.5em; + width: 2.5em; + height: 2.5em; + background: transparent; + border: none; + font-family: "Font Awesome 5 Free"; + color: #222222; + 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: 0.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 0.75rem; + position: relative; } + .admonition-header:before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + margin-right: 0.75rem; + content: "\f06a"; } + +.admonition-body { + color: #222222; + padding: 0.5rem 0.75rem; } + .admonition-body pre { + background-color: whitesmoke; } + .admonition-body code { + background-color: rgba(0, 0, 0, 0.05); } + +.docstring { + margin-bottom: 1em; + background-color: transparent; + border: 1px solid #dbdbdb; + box-shadow: 2px 2px 3px rgba(10, 10, 10, 0.1); + max-width: 100%; } + .docstring > header { + display: flex; + flex-grow: 1; + align-items: stretch; + padding: 0.5rem 0.75rem; + background-color: whitesmoke; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + box-shadow: none; + border-bottom: 1px solid #dbdbdb; } + .docstring > header code { + background-color: transparent; } + .docstring > header .docstring-binding { + margin-right: 0.3em; } + .docstring > header .docstring-category { + margin-left: 0.3em; } + .docstring > section { + position: relative; + padding: 0.75rem 0.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: 0.375rem; + bottom: 0.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: white; } + +.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: #222222; } + +.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: #222222; } + +.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; } + +/* This file contain the overall layout. + * + * The main container is
          that is identified by id #documenter. + */ +#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: white; + border-bottom: 1px solid #dbdbdb; + z-index: 2; + min-height: 4rem; + margin-bottom: 1rem; + display: flex; } + #documenter .docs-main header.docs-navbar .breadcrumb { + flex-grow: 1; } + #documenter .docs-main header.docs-navbar .docs-right { + display: flex; + white-space: nowrap; } + #documenter .docs-main header.docs-navbar .docs-right .docs-icon, #documenter .docs-main header.docs-navbar .docs-right .docs-label, #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + display: inline-block; } + #documenter .docs-main header.docs-navbar .docs-right .docs-label { + padding: 0; + margin-left: 0.3em; } + #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button { + margin: auto 0 auto 1rem; } + #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + font-size: 1.5rem; + margin: auto 0 auto 1rem; } + #documenter .docs-main header.docs-navbar > * { + margin: auto 0; } + @media screen and (max-width: 1055px) { + #documenter .docs-main header.docs-navbar { + position: sticky; + top: 0; + padding: 0 1rem; + /* For Headroom.js */ + transition-property: top, box-shadow; + -webkit-transition-property: top, box-shadow; + /* Safari */ + transition-duration: 0.3s; + -webkit-transition-duration: 0.3s; + /* Safari */ } + #documenter .docs-main header.docs-navbar.headroom--not-top { + box-shadow: 0.2rem 0rem 0.4rem #bbb; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } + #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; + /* Safari */ } } +#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: whitesmoke; + 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; + /* Setting up a nicer theme style for the scrollbar */ } + #documenter .docs-sidebar.visible { + left: 0; + box-shadow: 0.4rem 0rem 0.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; + /* Managing collapsible submenus */ } + #documenter .docs-sidebar ul.docs-menu > li > .tocitem { + font-weight: bold; } + #documenter .docs-sidebar ul.docs-menu > li li { + font-size: 0.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: 0.75rem; + margin-left: 1rem; + margin-top: auto; + margin-bottom: auto; } + #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f054"; } + #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before { + content: "\f078"; } + #documenter .docs-sidebar ul.docs-menu .tocitem { + display: block; + padding: 0.5rem 0.5rem; } + #documenter .docs-sidebar ul.docs-menu .tocitem, #documenter .docs-sidebar ul.docs-menu .tocitem:hover { + color: #0a0a0a; + background: whitesmoke; } + #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: white; } + #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover { + background-color: white; + 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: 0.85rem; + border-left: none; + margin-left: 0; + margin-top: 0.5rem; } + #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem { + width: 100%; + padding: 0; } + #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before { + content: "⚬"; + margin-right: 0.4em; } + #documenter .docs-sidebar form.docs-search { + margin: auto; + margin-top: 0.5rem; + margin-bottom: 0.5rem; } + #documenter .docs-sidebar form.docs-search > input { + width: 14.4rem; } + @media screen and (min-width: 1056px) { + #documenter .docs-sidebar ul.docs-menu { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar { + width: .3rem; + background: none; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #e0e0e0; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover { + background: #cccccc; } } + @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: #cccccc; } } +#documenter .docs-main #documenter-search-info { + margin-bottom: 1rem; } + +#documenter .docs-main #documenter-search-results { + list-style-type: circle; + list-style-position: outside; } + #documenter .docs-main #documenter-search-results li { + margin-left: 2rem; } + #documenter .docs-main #documenter-search-results .docs-highlight { + background-color: yellow; } + +.ansi span.sgr1 { + font-weight: bolder; } + +.ansi span.sgr2 { + font-weight: lighter; } + +.ansi span.sgr3 { + font-style: italic; } + +.ansi span.sgr4 { + text-decoration: underline; } + +.ansi span.sgr7 { + color: white; + background-color: #222222; } + +.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: whitesmoke; } + +.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: whitesmoke; } + +code.language-julia-repl > span.hljs-meta { + color: #066f00; + font-weight: bolder; } + +/*! + Theme: Default + Description: Original highlight.js style + Author: (c) Ivan Sagalaev + Maintainer: @highlightjs/core-team + Website: https://highlightjs.org/ + License: see project LICENSE + Touched: 2021 +*/ +/* +This is left on purpose making default.css the single file that can be lifted +as-is from the repository directly without the need for a build step + +Typically this "required" baseline CSS is added by `makestuff.js` during build. +*/ +pre code.hljs { + display: block; + overflow-x: auto; } + +code.hljs { + padding: 3px 5px; } + +/* end baseline CSS */ +.hljs { + background: #F0F0F0; + color: #444; } + +/* Base color: saturation 0; */ +.hljs-subst { + /* default */ } + +/* purposely ignored */ +.hljs-comment { + color: #888888; } + +.hljs-tag, +.hljs-punctuation { + color: #444a; } + +.hljs-tag .hljs-name, +.hljs-tag .hljs-attr { + color: #444; } + +.hljs-keyword, +.hljs-attribute, +.hljs-selector-tag, +.hljs-meta .hljs-keyword, +.hljs-doctag, +.hljs-name { + font-weight: bold; } + +/* User color: hue: 0 */ +.hljs-type, +.hljs-string, +.hljs-number, +.hljs-selector-id, +.hljs-selector-class, +.hljs-quote, +.hljs-template-tag, +.hljs-deletion { + color: #880000; } + +.hljs-title, +.hljs-section { + color: #880000; + font-weight: bold; } + +.hljs-regexp, +.hljs-symbol, +.hljs-variable, +.hljs-template-variable, +.hljs-link, +.hljs-selector-attr, +.hljs-operator, +.hljs-selector-pseudo { + color: #BC6060; } + +/* Language color: hue: 90; */ +.hljs-literal { + color: #78A960; } + +.hljs-built_in, +.hljs-bullet, +.hljs-code, +.hljs-addition { + color: #397300; } + +/* Meta color: hue: 200 */ +.hljs-meta { + color: #1f7199; } + +.hljs-meta .hljs-string { + color: #4d99bf; } + +/* Misc effects */ +.hljs-emphasis { + font-style: italic; } + +.hljs-strong { + font-weight: bold; } diff --git a/previews/PR360/assets/themeswap.js b/previews/PR360/assets/themeswap.js new file mode 100644 index 000000000..c58e993e3 --- /dev/null +++ b/previews/PR360/assets/themeswap.js @@ -0,0 +1,66 @@ +// Small function to quickly swap out themes. Gets put into the tag.. +function set_theme_from_local_storage() { + // Intialize the theme to null, which means default + var theme = null; + // If the browser supports the localstorage and is not disabled then try to get the + // documenter theme + if(window.localStorage != null) { + // Get the user-picked theme from localStorage. May be `null`, which means the default + // theme. + theme = window.localStorage.getItem("documenter-theme"); + } + // Check if the browser supports user color preference + var darkPreference = false; + // Check if the users preference is for dark color scheme + if(window.matchMedia('(prefers-color-scheme: dark)').matches === true) { + darkPreference = true; + } + // Initialize a few variables for the loop: + // + // - active: will contain the index of the theme that should be active. Note that there + // is no guarantee that localStorage contains sane values. If `active` stays `null` + // we either could not find the theme or it is the default (primary) theme anyway. + // Either way, we then need to stick to the primary theme. + // + // - disabled: style sheets that should be disabled (i.e. all the theme style sheets + // that are not the currently active theme) + var active = null; var disabled = []; var darkTheme = null; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + // The tag of each style sheet is expected to have a data-theme-name attribute + // which must contain the name of the theme. The names in localStorage much match this. + var themename = ss.ownerNode.getAttribute("data-theme-name"); + // attribute not set => non-theme stylesheet => ignore + if(themename === null) continue; + // To distinguish the default (primary) theme, it needs to have the data-theme-primary + // attribute set. + var isprimary = (ss.ownerNode.getAttribute("data-theme-primary") !== null); + // Check if the theme is primary dark theme + var isDarkTheme = (ss.ownerNode.getAttribute("data-theme-primary-dark") !== null); + // If ss is for dark theme then set the value of darkTheme to the name of the theme + if(isDarkTheme) darkTheme = themename; + // If we find a matching theme (and it's not the default), we'll set active to non-null + if(themename === theme) active = i; + // Store the style sheets of inactive themes so that we could disable them + if(themename !== theme) disabled.push(ss); + } + if(active !== null) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + theme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + else if(darkTheme !== null && darkPreference === true) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + darkTheme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + if (ss.ownerNode.getAttribute("data-theme-name") !== darkTheme) { + ss.disabled = true; + } + }); + } +} +set_theme_from_local_storage(); diff --git a/previews/PR360/assets/warner.js b/previews/PR360/assets/warner.js new file mode 100644 index 000000000..5531c8851 --- /dev/null +++ b/previews/PR360/assets/warner.js @@ -0,0 +1,49 @@ +function maybeAddWarning () { + // DOCUMENTER_NEWEST is defined in versions.js, DOCUMENTER_CURRENT_VERSION and DOCUMENTER_STABLE + // in siteinfo.js. + // If either of these are undefined something went horribly wrong, so we abort. + if ( + window.DOCUMENTER_NEWEST === undefined || + window.DOCUMENTER_CURRENT_VERSION === undefined || + window.DOCUMENTER_STABLE === undefined + ) { + return + }; + + // Current version is not a version number, so we can't tell if it's the newest version. Abort. + if (!/v(\d+\.)*\d+/.test(window.DOCUMENTER_CURRENT_VERSION)) { + return + }; + + // Current version is newest version, so no need to add a warning. + if (window.DOCUMENTER_NEWEST === window.DOCUMENTER_CURRENT_VERSION) { + return + }; + + // Add a noindex meta tag (unless one exists) so that search engines don't index this version of the docs. + if (document.body.querySelector('meta[name="robots"]') === null) { + const meta = document.createElement('meta'); + meta.name = 'robots'; + meta.content = 'noindex'; + + document.getElementsByTagName('head')[0].appendChild(meta); + }; + + const div = document.createElement('div'); + div.classList.add('outdated-warning-overlay'); + const closer = document.createElement('button'); + closer.classList.add('outdated-warning-closer', 'delete'); + closer.addEventListener('click', function () { + document.body.removeChild(div); + }); + const href = window.documenterBaseURL + '/../' + window.DOCUMENTER_STABLE; + div.innerHTML = 'This documentation is not for the latest stable release, but for either the development version or an older release.
          Click here to go to the documentation for the latest stable release.'; + div.appendChild(closer); + document.body.appendChild(div); +}; + +if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', maybeAddWarning); +} else { + maybeAddWarning(); +}; diff --git a/previews/PR360/barotropic/index.html b/previews/PR360/barotropic/index.html new file mode 100644 index 000000000..b627af120 --- /dev/null +++ b/previews/PR360/barotropic/index.html @@ -0,0 +1,12 @@ + +Barotropic model · SpeedyWeather.jl

          Barotropic vorticity model

          The barotropic vorticity model describes the evolution of a 2D non-divergent flow with velocity components $\mathbf{u} = (u,v)$ through self-advection, forces and dissipation. Due to the non-divergent nature of the flow, it can be described by (the vertical component) of the relative vorticity $\zeta = \nabla \times \mathbf{u}$.

          The dynamical core presented here to solve the barotropic vorticity equations largely follows the idealized models with spectral dynamics developed at the Geophysical Fluid Dynamics Laboratory[1]: A barotropic vorticity model[2].

          Many concepts of the Shallow water model and the Primitive equation model are similar, such that for example horizontal diffusion and the Time integration are only explained here.

          Barotropic vorticity equation

          The barotropic vorticity equation is the prognostic equation that describes the time evolution of relative vorticity $\zeta$ with advection, Coriolis force, forcing and diffusion in a single global layer on the sphere.

          \[\frac{\partial \zeta}{\partial t} + \nabla \cdot (\mathbf{u}(\zeta + f)) = +\nabla \times \mathbf{F} + (-1)^{n+1}\nu\nabla^{2n}\zeta\]

          We denote time$t$, velocity vector $\mathbf{u} = (u, v)$, Coriolis parameter $f$, and hyperdiffusion $(-1)^{n+1} \nu \nabla^{2n} \zeta$ ($n$ is the hyperdiffusion order, see Horizontal diffusion). We also include a forcing vector $\mathbf{F} = (F_u,F_v)$ which acts on the zonal velocity $u$ and the meridional velocity $v$ and hence its curl $\nabla \times \mathbf{F}$ is a tendency for relative vorticity $\zeta$.

          Starting with some relative vorticity $\zeta$, the Laplacian is inverted to obtain the stream function $\Psi$

          \[\Psi = \nabla^{-2}\zeta\]

          The zonal velocity $u$ and meridional velocity $v$ are then the (negative) meridional gradient and zonal gradient of $\Psi$

          \[\begin{aligned} +u &= -\frac{1}{R} \frac{\partial \Psi}{\partial \theta} \\ +v &= \frac{1}{R\cos(\theta)} \frac{\partial \Psi}{\partial \phi} \\ +\end{aligned}\]

          which is described in Derivatives in spherical coordinates. Using $u$ and $v$ we can then advect the absolute vorticity $\zeta + f$. In order to avoid to calculate both the curl and the divergence of a flux we rewrite the barotropic vorticity equation as

          \[\frac{\partial \zeta}{\partial t} = +\nabla \times (\mathbf{F} + \mathbf{u}_\perp(\zeta + f)) + (-1)^{n+1}\nu\nabla^{2n}\zeta\]

          with $\mathbf{u}_\perp = (v,-u)$ the rotated velocity vector, because $-\nabla\cdot\mathbf{u} = \nabla \times \mathbf{u}_\perp$. This is the form that is solved in the BarotropicModel, as outlined in the following section.

          Algorithm

          We briefly outline the algorithm that SpeedyWeather.jl uses in order to integrate the barotropic vorticity equation. As an initial step

          0. Start with initial conditions of $\zeta_{lm}$ in spectral space and transform this model state to grid-point space:

          • Invert the Laplacian of vorticity $\zeta_{lm}$ to obtain the stream function $\Psi_{lm}$ in spectral space
          • obtain zonal velocity $(\cos(\theta)u)_{lm}$ through a Meridional derivative
          • obtain meridional velocity $(\cos(\theta)v)_{lm}$ through a Zonal derivative
          • Transform zonal and meridional velocity $(\cos(\theta)u)_{lm}$, $(\cos(\theta)v)_{lm}$ to grid-point space
          • Unscale the $\cos(\theta)$ factor to obtain $u,v$
          • Transform $\zeta_{lm}$ to $\zeta$ in grid-point space

          Now loop over

          1. Compute the forcing vector $\mathbf{F} = (F_u,F_v)$ for $u$ and $v$
          2. Multiply $u,v$ with $\zeta+f$ in grid-point space
          3. Add $A = F_u + v(\zeta + f)$ and $B = F_v - u(\zeta + f)$
          4. Transform these vector components to spectral space $A_{lm}$, $B_{lm}$
          5. Compute the curl of $(A,B)_{lm}$ in spectral space which is the tendency of $\zeta_{lm}$
          6. Compute the horizontal diffusion based on that tendency
          7. Compute a leapfrog time step as described in Time integration with a Robert-Asselin and Williams filter
          8. Transform the new spectral state of $\zeta_{lm}$ to grid-point $u,v,\zeta$ as described in 0.
          9. Possibly do some output
          10. Repeat from 1.

          Horizontal diffusion

          In SpeedyWeather.jl we use hyerdiffusion through an $n$-th power Laplacian $(-1)^{n+1}\nabla^{2n}$ (hyper when $n>1$) which can be implemented as a multiplication of the spectral coefficients $\Psi_{lm}$ with $(-l(l+1))^nR^{-2n}$ (see spectral Laplacian) It is therefore computationally not more expensive to apply hyperdiffusion over diffusion as the $(-l(l+1))^nR^{-2n}$ can be precomputed. Note the sign change $(-1)^{n+1}$ here is such that the dissipative nature of the diffusion operator is retained for $n$ odd and even.

          In SpeedyWeather.jl the diffusion is applied implicitly. For that, consider a leapfrog scheme with time step $\Delta t$ of variable $\zeta$ to obtain from time steps $i-1$ and $i$, the next time step $i+1$

          \[\zeta_{i+1} = \zeta_{i-1} + 2\Delta t d\zeta,\]

          with $d\zeta$ being some tendency evaluated from $\zeta_i$. Now we want to add a diffusion term $(-1)^{n+1}\nu \nabla^{2n}\zeta$ with coefficient $\nu$, which however, is implicitly calculated from $\zeta_{i+1}$, then

          \[\zeta_{i+1} = \zeta_{i-1} + 2\Delta t (d\zeta + (-1)^{n+1} \nu\nabla^{2n}\zeta_{i+1})\]

          As the application of $(-1)^{n+1}\nu\nabla^{2n}$ is, for every spectral mode, equivalent to a multiplication of a constant, we can rewrite this to

          \[\zeta_{i+1} = \frac{\zeta_{i-1} + 2\Delta t d\zeta}{1 - 2\Delta (-1)^{n+1}\nu\nabla^{2n}},\]

          and expand the numerator to

          \[\zeta_{i+1} = \zeta_{i-1} + 2\Delta t \frac{d\zeta + (-1)^{n+1} \nu\nabla^{2n}\zeta_{i-1}}{1 - 2\Delta t (-1)^{n+1}\nu \nabla^{2n}},\]

          Hence the diffusion can be applied implicitly by updating the tendency $d\zeta$ as

          \[d\zeta \to \frac{d\zeta + (-1)^{n+1}\nu\nabla^{2n}\zeta_{i-1}}{1 - 2\Delta t \nu \nabla^{2n}}\]

          which only depends on $\zeta_{i-1}$. Now let $D_\text{explicit} = (-1)^{n+1}\nu\nabla^{2n}$ be the explicit part and $D_\text{implicit} = 1 - (-1)^{n+1} 2\Delta t \nu\nabla^{2n}$ the implicit part. Both parts can be precomputed and are $D_\text{implicit} = 1 - 2\Delta t \nu\nabla^{2n}$ the implicit part. Both parts can be precomputed and are only an element-wise multiplication in spectral space. For every spectral harmonic $l,m$ we do

          \[d\zeta \to D_\text{implicit}^{-1}(d\zeta + D_\text{explicit}\zeta_{i-1}).\]

          Hence 2 multiplications and 1 subtraction with precomputed constants. However, we will normalize the (hyper-)Laplacians as described in the following. This also will take care of the alternating sign such that the diffusion operation is dissipative regardless the power $n$.

          Normalization of diffusion

          In physics, the Laplace operator $\nabla^2$ is often used to represent diffusion due to viscosity in a fluid or diffusion that needs to be added to retain numerical stability. In both cases, the coefficient is $\nu$ of units $\text{m}^2\text{s}^{-1}$ and the full operator reads as $\nu \nabla^2$ with units $(\text{m}^2\text{s}^{-1})(\text{m}^{-2}) = \text{s}^{-1}$. This motivates us to normalize the Laplace operator by a constant of units $\text{m}^{-2}$ and the coefficient by its inverse such that it becomes a damping timescale of unit $\text{s}^{-1}$. Given the application in spectral space we decide to normalize by the largest eigenvalue $-l_\text{max}(l_\text{max}+1)$ such that all entries in the discrete spectral Laplace operator are in $[0,1]$. This also has the effect that the alternating sign drops out, such that higher wavenumbers are always dampened and not amplified. The normalized coefficient $\nu^* = l_\text{max}(l_\text{max}+1)\nu$ (always positive) is therefore reinterpreted as the (inverse) time scale at which the highest wavenumber is dampened to zero due to diffusion. Together we have

          \[D^\text{explicit}_{l,m} = -\nu^* \frac{l(l+1)}{l_\text{max}(l_\text{max}+1)}\]

          and the hyper-Laplacian of power $n$ follows as

          \[D^\text{explicit,n}_{l,m} = -\nu^* \left(\frac{l(l+1)}{l_\text{max}(l_\text{max}+1)}\right)^n\]

          and the implicit part is accordingly $D^\text{implicit,n}_{l,m} = 1 - 2\Delta t D^\text{explicit,n}_{l,m}$. Note that the diffusion time scale $\nu^*$ is then also scaled by the radius, see next section.

          Radius scaling

          Similar to a non-dimensionalization of the equations, SpeedyWeather.jl scales the barotropic vorticity equation with $R^2$ to obtain normalized gradient operators as follows. A scaling for vorticity $\zeta$ and stream function $\Psi$ is used that is

          \[\tilde{\zeta} = \zeta R, \tilde{\Psi} = \Psi R^{-1}.\]

          This is also convenient as vorticity is often $10^{-5}\text{ s}^{-1}$ in the atmosphere, but the streamfunction more like $10^5\text{ m}^2\text{ s}^{-1}$ and so this scaling brings both closer to 1 with a typical radius of the Earth of 6371km. The inversion of the Laplacians in order to obtain $\Psi$ from $\zeta$ therefore becomes

          \[\tilde{\zeta} = \tilde{\nabla}^2 \tilde{\Psi}\]

          where the dimensionless gradients simply omit the scaling with $1/R$, $\tilde{\nabla} = R\nabla$. The Barotropic vorticity equation scaled with $R^2$ is

          \[\partial_{\tilde{t}}\tilde{\zeta} + \tilde{\nabla} \cdot (\mathbf{u}(\tilde{\zeta} + \tilde{f})) = +\nabla \times \tilde{\mathbf{F}} + (-1)^{n+1}\tilde{\nu}\tilde{\nabla}^{2n}\tilde{\zeta}\]

          with

          • $\tilde{t} = tR^{-1}$, the scaled time $t$
          • $\mathbf{u} = (u,v)$, the velocity vector (no scaling applied)
          • $\tilde{f} = fR$, the scaled Coriolis parameter $f$
          • $\tilde{\mathbf{F}} = R\mathbf{F}$, the scaled forcing vector $\mathbf{F}$
          • $\tilde{\nu} = \nu^* R$, the scaled diffusion coefficient $\nu^*$, which itself is normalized to a damping time scale, see Normalization of diffusion.

          So scaling with the radius squared means we can use dimensionless operators, however, this comes at the cost of needing to deal with both a time step in seconds as well as a scaled time step in seconds per meter, which can be confusing. Furthermore, some constants like Coriolis or the diffusion coefficient need to be scaled too during initialisation, which may be confusing too because values are not what users expect them to be. SpeedyWeather.jl follows the logic that the scaling to the prognostic variables is only applied just before the time integration and variables are unscaled for output and after the time integration finished. That way, the scaling is hidden as much as possible from the user. In hopefully many other cases it is clearly denoted that a variable or constant is scaled.

          Time integration

          SpeedyWeather.jl is based on the Leapfrog time integration, which, for relative vorticity $\zeta$, is in its simplest form

          \[\frac{\zeta_{i+1} - \zeta_{i-1}}{2\Delta t} = RHS(\zeta_i),\]

          meaning we step from the previous time step $i-1$, leapfrogging over the current time step$i$ to the next time step $i+1$ by evaluating the tendencies on the right-hand side $RHS$ at the current time step $i$. The time stepping is done in spectral space. Once the right-hand side $RHS$ is evaluated, leapfrogging is a linear operation, meaning that its simply applied to every spectral coefficient $\zeta_{lm}$ as one would evaluate it on every grid point in grid-point models.

          For the Leapfrog time integration two time steps of the prognostic variables have to be stored, $i-1$ and $i$. Time step $i$ is used to evaluate the tendencies which are then added to $i-1$ in a step that also swaps the indices for the next time step $i \to i-1$ and $i+1 \to i$, so that no additional memory than two time steps have to be stored at the same time.

          The Leapfrog time integration has to be initialised with an Euler forward step in order to have a second time step $i+1$ available when starting from $i$ to actually leapfrog over. SpeedyWeather.jl therefore does two initial time steps that are different from the leapfrog time steps that follow and that have been described above.

          1. an Euler forward step with $\Delta t/2$, then
          2. one leapfrog time step with $\Delta t$, then
          3. leapfrog with $2 \Delta t$ till the end

          This is particularly done in a way that after 2. we have $t=0$ at $i-1$ and $t=\Delta t$ at $i$ available so that 3. can start the leapfrogging without any offset from the intuitive spacing $0,\Delta t, 2\Delta t, 3\Delta t,...$. The following schematic can be useful

          time at step $i-1$time at step $i$time step at $i+1$
          Initial conditions$t = 0$
          1: Euler(T) $\quad t = 0$$t=\Delta t/2$
          2: Leapfrog with $\Delta t$$t = 0$(T) $\quad t = \Delta t/2$$t = \Delta t$
          3 to $n$: Leapfrog with $2\Delta t$$t-\Delta t$(T) $\qquad \quad \quad t$$t+\Delta t$

          The time step that is used to evaluate the tendencies is denoted with (T). It is always the time step furthest in time that is available.

          Robert-Asselin and Williams filter

          The standard leapfrog time integration is often combined with a Robert-Asselin filter[Robert66][Asselin72] to dampen a computational mode. The idea is to start with a standard leapfrog step to obtain the next time step $i+1$ but then to correct the current time step $i$ by applying a filter which dampens the computational mode. The filter looks like a discrete Laplacian in time with a $(1, -2, 1)$ stencil, and so, maybe unsurprisingly, is efficient to filter out a "grid-scale oscillation" in time, aka the computational mode. Let $v$ be the unfiltered variable and $u$ be the filtered variable, $F$ the right-hand side tendency, then the standard leapfrog step is

          \[v_{i+1} = u_{i-1} + 2\Delta tF(v_i)\]

          Meaning we start with a filtered variable $u$ at the previous time step $i-1$, evaluate the tendency $F(v_i)$ based on the current time step $i$ to obtain an unfiltered next time step $v_{i+1}$. We then filter the current time step $i$ (which will become $i-1$ on the next iteration)

          \[u_i = v_i + \frac{\nu}{2}(v_{i+1} - 2v_i + u_{i-1})\]

          by adding a discrete Laplacian with coefficient $\tfrac{\nu}{2}$ to it, evaluated from the available filtered and unfiltered time steps centred around $i$: $v_{i-1}$ is not available anymore because it was overwritten by the filtering at the previous iteration, $u_i, u_{i+1}$ are not filtered yet when applying the Laplacian. The filter parameter $\nu$ is typically chosen between 0.01-0.2, with stronger filtering for higher values.

          Williams[Williams2009] then proposed an additional filter step to regain accuracy that is otherwise lost with a strong Robert-Asselin filter[Amezcua2011][Williams2011]. Now let $w$ be unfiltered, $v$ be once filtered, and $u$ twice filtered, then

          \[\begin{aligned} +w_{i+1} &= u_{i-1} + 2\Delta tF(v_i) \\ +u_i &= v_i + \frac{\nu\alpha}{2}(w_{i+1} - 2v_i + u_{i-1}) \\ +v_{i+1} &= w_{i+1} - \frac{\nu(1-\alpha)}{2}(w_{i+1} - 2v_i + u_{i-1}) +\end{aligned}\]

          with the Williams filter parameter $\alpha \in [0.5,1]$. For $\alpha=1$ we're back with the Robert-Asselin filter (the first two lines).

          The Laplacian in the parentheses is often called a displacement, meaning that the filtered value is displaced (or corrected) in the direction of the two surrounding time steps. The Williams filter now also applies the same displacement, but in the opposite direction to the next time step $i+1$ as a correction step (line 3 above) for a once-filtered value $v_{i+1}$ which will then be twice-filtered by the Robert-Asselin filter on the next iteration. For more details see the referenced publications.

          The initial Euler step (see Time integration, Table) is not filtered. Both the the Robert-Asselin and Williams filter are then switched on for all following leapfrog time steps.

          References

          diff --git a/previews/PR360/conventions/index.html b/previews/PR360/conventions/index.html new file mode 100644 index 000000000..4532e8893 --- /dev/null +++ b/previews/PR360/conventions/index.html @@ -0,0 +1,12 @@ + +Style and convention guide · SpeedyWeather.jl

          Style and convention guide

          In SpeedyWeather.jl we've been following the several conventions that are documented here.

          Variable naming

          The prognostic variables in spectral space are called

              vor         # Vorticity of horizontal wind field
          +    div         # Divergence of horizontal wind field
          +    temp        # Absolute temperature [K]
          +    pres_surf   # Logarithm of surface pressure [log(Pa)]
          +    humid       # Specific humidity [g/kg]

          their transforms into grid-point space get a _grid suffix, their tendencies a _tend suffix. Further derived diagnostic dynamic variables are

              u
          +    v
          +    geopot
          +    ...

          Preallocation

          All arrays representing variables are preallocated and grouped into two structs

              Prog::PrognosticVariables
          +    Diag::DiagnosticVariables

          The Diag struct contains further structs which represent the grid-point transformations of the prognostic variables and their tendencies.

              gridvars::GridVariables
          +    tendencies::Tendencies
          +    ...

          Constant arrays are grouped into several structs

          Boundaries

          Julian conventions

          We follow Julia's style guide and highlight here some important aspects of it.

          • Bang (!) convention. A function func does not change its input arguments, however, func! does.

          Hence, func! is often the in-place version of func, avoiding as much memory allocation as possible and often changing its first argument, e.g. func!(out,in) so that argument in is used to calculate out which has been preallocated before function call.

          • Number format flexibility. Numeric literals such as 2.0 or 1/3 are only used in the model setup

          but avoided throughout the code to obtain a fully number format-flexible package using the number format NF as a compile-time variable throughout the code. This often leads to overly specific code whereas a Real would generally suffice. However, this is done to avoid any implicit type conversions.

          diff --git a/previews/PR360/development/index.html b/previews/PR360/development/index.html new file mode 100644 index 000000000..abf5bb109 --- /dev/null +++ b/previews/PR360/development/index.html @@ -0,0 +1,3 @@ + +Development notes · SpeedyWeather.jl

          Development notes

          To run tests, from the path of your local clone of the repository do:

          julia --project=. -e 'import Pkg; Pkg.test()'

          To install dependencies:

          julia --project -e 'import Pkg; Pkg.instantiate()`

          then opening:

          julia --project

          you are able to using SpeedyWeather.

          To generate the docs:

          julia --project=docs -e 'import Pkg; Pkg.develop(path="."); Pkg.instantiate()'
          +julia --project=docs docs/make.jl

          If the docs are generated successfully, you view them by opening docs/build/index.html in your favorite browser.

          diff --git a/previews/PR360/extending/index.html b/previews/PR360/extending/index.html new file mode 100644 index 000000000..f9111020b --- /dev/null +++ b/previews/PR360/extending/index.html @@ -0,0 +1,2 @@ + +Extending SpeedyWeather · SpeedyWeather.jl diff --git a/previews/PR360/functions/index.html b/previews/PR360/functions/index.html new file mode 100644 index 000000000..3156cad3b --- /dev/null +++ b/previews/PR360/functions/index.html @@ -0,0 +1,634 @@ + +Function and type index · SpeedyWeather.jl

          Function and type index

          SpeedyWeather.BarotropicModelType

          The BarotropicModel struct holds all other structs that contain precalculated constants, whether scalars or arrays that do not change throughout model integration.

          • spectral_grid::SpectralGrid: dictates resolution for many other components

          • planet::SpeedyWeather.AbstractPlanet: contains physical and orbital characteristics

          • atmosphere::SpeedyWeather.AbstractAtmosphere

          • forcing::SpeedyWeather.AbstractForcing{NF} where NF<:AbstractFloat

          • initial_conditions::SpeedyWeather.InitialConditions

          • time_stepping::SpeedyWeather.TimeStepper{NF} where NF<:AbstractFloat

          • spectral_transform::SpectralTransform

          • horizontal_diffusion::SpeedyWeather.HorizontalDiffusion{NF} where NF<:AbstractFloat

          • implicit::SpeedyWeather.AbstractImplicit{NF} where NF<:AbstractFloat

          • geometry::Geometry

          • constants::DynamicsConstants

          • device_setup::SpeedyWeather.DeviceSetup

          • output::SpeedyWeather.AbstractOutputWriter

          • feedback::SpeedyWeather.AbstractFeedback

          source
          SpeedyWeather.ClockType

          Clock struct keeps track of the model time, how many days to integrate for and how many time steps this takes

          • time::Dates.DateTime: current model time

          • n_days::Float64: number of days to integrate for, set in run!(::Simulation)

          • n_timesteps::Int64: number of time steps to integrate for, set in initialize!(::Clock,::TimeStepper)

          .

          source
          SpeedyWeather.ColumnVariablesType

          Mutable struct that contains all prognostic (copies thereof) and diagnostic variables in a single column needed to evaluate the physical parametrizations. For now the struct is mutable as we will reuse the struct to iterate over horizontal grid points. Every column vector has nlev entries, from [1] at the top to [end] at the lowermost model level at the planetary boundary layer.

          • nlev::Int64

          • nband::Int64

          • n_stratosphere_levels::Int64

          • jring::Int64

          • lond::AbstractFloat

          • latd::AbstractFloat

          • u::Vector{NF} where NF<:AbstractFloat

          • v::Vector{NF} where NF<:AbstractFloat

          • temp::Vector{NF} where NF<:AbstractFloat

          • humid::Vector{NF} where NF<:AbstractFloat

          • ln_pres::Vector{NF} where NF<:AbstractFloat

          • pres::Vector{NF} where NF<:AbstractFloat

          • u_tend::Vector{NF} where NF<:AbstractFloat

          • v_tend::Vector{NF} where NF<:AbstractFloat

          • temp_tend::Vector{NF} where NF<:AbstractFloat

          • humid_tend::Vector{NF} where NF<:AbstractFloat

          • geopot::Vector{NF} where NF<:AbstractFloat

          • flux_u_upward::Vector{NF} where NF<:AbstractFloat

          • flux_u_downward::Vector{NF} where NF<:AbstractFloat

          • flux_v_upward::Vector{NF} where NF<:AbstractFloat

          • flux_v_downward::Vector{NF} where NF<:AbstractFloat

          • flux_temp_upward::Vector{NF} where NF<:AbstractFloat

          • flux_temp_downward::Vector{NF} where NF<:AbstractFloat

          • flux_humid_upward::Vector{NF} where NF<:AbstractFloat

          • flux_humid_downward::Vector{NF} where NF<:AbstractFloat

          • sat_humid::Vector{NF} where NF<:AbstractFloat

          • sat_vap_pres::Vector{NF} where NF<:AbstractFloat

          • dry_static_energy::Vector{NF} where NF<:AbstractFloat

          • moist_static_energy::Vector{NF} where NF<:AbstractFloat

          • humid_half::Vector{NF} where NF<:AbstractFloat

          • sat_humid_half::Vector{NF} where NF<:AbstractFloat

          • sat_moist_static_energy::Vector{NF} where NF<:AbstractFloat

          • dry_static_energy_half::Vector{NF} where NF<:AbstractFloat

          • sat_moist_static_energy_half::Vector{NF} where NF<:AbstractFloat

          • conditional_instability::Bool

          • activate_convection::Bool

          • cloud_top::Int64

          • excess_humidity::AbstractFloat

          • cloud_base_mass_flux::AbstractFloat

          • precip_convection::AbstractFloat

          • net_flux_humid::Vector{NF} where NF<:AbstractFloat

          • net_flux_dry_static_energy::Vector{NF} where NF<:AbstractFloat

          • entrainment_profile::Vector{NF} where NF<:AbstractFloat

          • precip_large_scale::AbstractFloat

          • wvi::Matrix{NF} where NF<:AbstractFloat

          • tau2::Matrix{NF} where NF<:AbstractFloat

          • dfabs::Vector{NF} where NF<:AbstractFloat

          • fsfcd::AbstractFloat

          • st4a::Matrix{NF} where NF<:AbstractFloat

          • flux::Vector{NF} where NF<:AbstractFloat

          • fsfcu::AbstractFloat

          • ts::AbstractFloat

          • fsfc::AbstractFloat

          • ftop::AbstractFloat

          • stratc::Vector{NF} where NF<:AbstractFloat

          • tyear::AbstractFloat

          • csol::AbstractFloat

          • topsr::AbstractFloat

          • fsol::AbstractFloat

          • ozupp::AbstractFloat

          • ozone::AbstractFloat

          • zenit::AbstractFloat

          • stratz::AbstractFloat

          • albsfc::AbstractFloat

          • ssrd::AbstractFloat

          • ssr::AbstractFloat

          • tsr::AbstractFloat

          • tend_t_rsw::Vector{NF} where NF<:AbstractFloat

          • norm_pres::AbstractFloat

          • icltop::Int64

          • cloudc::AbstractFloat

          • clstr::AbstractFloat

          • qcloud::AbstractFloat

          • fmask::AbstractFloat

          • rel_hum::Vector{NF} where NF<:AbstractFloat

          • grad_dry_static_energy::AbstractFloat

          source
          SpeedyWeather.DeviceSetupType
          DeviceSetup{S<:AbstractDevice}

          Holds information about the device the model is running on and workgroup size.

          • device::AbstractDevice: Device the model is running on
          • device_KA::KernelAbstractions.Device: Device for use with KernelAbstractions
          • n: workgroup size
          source
          SpeedyWeather.DynamicsConstantsType

          Struct holding constants needed at runtime for the dynamical core in number format NF.

          • radius::AbstractFloat: Radius of Planet [m]

          • rotation::AbstractFloat: Angular frequency of Planet's rotation [1/s]

          • gravity::AbstractFloat: Gravitational acceleration [m/s^2]

          • layer_thickness::AbstractFloat: shallow water layer thickness [m]

          • R_dry::AbstractFloat: specific gas constant for dry air [J/kg/K]

          • R_vapour::AbstractFloat: specific gas constant for water vapour [J/kg/K]

          • μ_virt_temp::AbstractFloat: used in Tv = T(1+μq) for virt temp Tv(T,q) calculation

          • cₚ::AbstractFloat: specific heat at constant pressure [J/K/kg]

          • κ::AbstractFloat: = R_dry/cₚ, gas const for air over heat capacity

          • water_density::AbstractFloat: water density [kg/m³]

          • f_coriolis::Vector{NF} where NF<:AbstractFloat: coriolis frequency 1/s = 2Ωsin(lat)radius

          • σ_lnp_A::Vector{NF} where NF<:AbstractFloat: σ-related factor A needed for adiabatic terms

          • σ_lnp_B::Vector{NF} where NF<:AbstractFloat: σ-related factor B needed for adiabatic terms

          • Δp_geopot_half::Vector{NF} where NF<:AbstractFloat: = R*(ln(pk+1) - ln(pk+1/2)), for half level geopotential

          • Δp_geopot_full::Vector{NF} where NF<:AbstractFloat: = R*(ln(pk+1/2) - ln(pk)), for full level geopotential

          • temp_ref_profile::Vector{NF} where NF<:AbstractFloat: reference temperature profile

          source
          SpeedyWeather.DynamicsConstantsMethod
          DynamicsConstants(
          +    spectral_grid::SpectralGrid,
          +    planet::SpeedyWeather.AbstractPlanet,
          +    atmosphere::SpeedyWeather.AbstractAtmosphere,
          +    geometry::Geometry
          +) -> Any
          +

          Generator function for a DynamicsConstants struct.

          source
          SpeedyWeather.EarthType

          Create a struct Earth<:AbstractPlanet, with the following physical/orbital characteristics. Note that radius is not part of it as this should be chosen in SpectralGrid. Keyword arguments are

          • rotation::Float64: angular frequency of Earth's rotation [rad/s]

          • gravity::Float64: gravitational acceleration [m/s^2]

          • daily_cycle::Bool: switch on/off daily cycle

          • length_of_day::Float64: [hrs] in a day

          • seasonal_cycle::Bool: switch on/off seasonal cycle

          • length_of_year::Float64: [days] in a year

          • equinox::Dates.DateTime: time of spring equinox (year irrelevant)

          • axial_tilt::Float64: angle [˚] rotation axis tilt wrt to orbit

          source
          SpeedyWeather.EarthAtmosphereType

          Create a struct EarthAtmosphere<:AbstractPlanet, with the following physical/chemical characteristics. Note that radius is not part of it as this should be chosen in SpectralGrid. Keyword arguments are

          • mol_mass_dry_air::Float64: molar mass of dry air [g/mol]

          • mol_mass_vapour::Float64: molar mass of water vapour [g/mol]

          • cₚ::Float64: specific heat at constant pressure [J/K/kg]

          • R_gas::Float64: universal gas constant [J/K/mol]

          • R_dry::Float64: specific gas constant for dry air [J/kg/K]

          • R_vapour::Float64: specific gas constant for water vapour [J/kg/K]

          • water_density::Float64: water density [kg/m³]

          • latent_heat_condensation::Float64: latent heat of condensation [J/g] for consistency with specific humidity [g/Kg], also called alhc

          • latent_heat_sublimation::Float64: latent heat of sublimation [J/g], also called alhs

          • stefan_boltzmann::Float64: stefan-Boltzmann constant [W/m²/K⁴]

          • lapse_rate::Float64: moist adiabatic temperature lapse rate $-dT/dz$ [K/km]

          • temp_ref::Float64: absolute temperature at surface $z=0$ [K]

          • temp_top::Float64: absolute temperature in stratosphere [K]

          • ΔT_stratosphere::Float64: for stratospheric lapse rate [K] after Jablonowski

          • σ_tropopause::Float64: start of the stratosphere in sigma coordinates

          • σ_boundary_layer::Float64: top of the planetary boundary layer in sigma coordinates

          • scale_height::Float64: scale height for pressure [km]

          • pres_ref::Float64: surface pressure [hPa]

          • scale_height_humid::Float64: scale height for specific humidity [km]

          • relhumid_ref::Float64: relative humidity of near-surface air [1]

          • water_pres_ref::Float64: saturation water vapour pressure [Pa]

          • layer_thickness::Float64: layer thickness for the shallow water model [km]

          source
          SpeedyWeather.EarthOrographyType

          Earth's orography read from file, with smoothing.

          • path::String: path to the folder containing the orography file, pkg path default

          • file::String: filename of orography

          • file_Grid::Type{<:SpeedyWeather.RingGrids.AbstractGrid}: Grid the orography file comes on

          • scale::Float64: scale orography by a factor

          • smoothing::Bool: smooth the orography field?

          • smoothing_power::Float64: power of Laplacian for smoothing

          • smoothing_strength::Float64: highest degree l is multiplied by

          • smoothing_truncation::Int64: resolution of orography in spectral trunc

          • orography::SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat: height [m] on grid-point space.

          • geopot_surf::LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat: surface geopotential, height*gravity [m²/s²]

          source
          SpeedyWeather.EarthOrographyMethod
          EarthOrography(
          +    spectral_grid::SpectralGrid;
          +    kwargs...
          +) -> Any
          +

          Generator function pulling the resolution information from spectral_grid.

          source
          SpeedyWeather.FeedbackType
          Feedback() -> Feedback
          +Feedback(verbose::Bool) -> Feedback
          +Feedback(verbose::Bool, debug::Bool) -> Feedback
          +

          Generator function for a Feedback struct.

          source
          SpeedyWeather.FeedbackType

          Feedback struct that contains options and object for command-line feedback like the progress meter.

          • verbose::Bool: print feedback to REPL?

          • debug::Bool: check for NaRs in the prognostic variables

          • output::Bool: write a progress.txt file? State synced with OutputWriter.output

          • id::Union{Int64, String}: identification of run, taken from ::OutputWriter

          • run_path::String: path to run folder, taken from ::OutputWriter

          • progress_meter::ProgressMeter.Progress: struct containing everything progress related

          • progress_txt::Union{Nothing, IOStream}: txt is a Nothing in case of no output

          • nars_detected::Bool: did Infs/NaNs occur in the simulation?

          source
          SpeedyWeather.GeometryType

          Construct Geometry struct containing parameters and arrays describing an iso-latitude grid <:AbstractGrid and the vertical levels. Pass on SpectralGrid to calculate the following fields

          • spectral_grid::SpectralGrid: SpectralGrid that defines spectral and grid resolution

          • Grid::Type{<:SpeedyWeather.RingGrids.AbstractGrid}: grid of the dynamical core

          • nlat_half::Int64: resolution parameter nlat_half of Grid, # of latitudes on one hemisphere (incl Equator)

          • nlon_max::Int64: maximum number of longitudes (at/around Equator)

          • nlon::Int64: =nlon_max, same (used for compatibility), TODO: still needed?

          • nlat::Int64: number of latitude rings

          • nlev::Int64: number of vertical levels

          • npoints::Int64: total number of grid points

          • radius::AbstractFloat: Planet's radius [m]

          • latd::Vector{Float64}: array of latitudes in degrees (90˚...-90˚)

          • lond::Vector{Float64}: array of longitudes in degrees (0...360˚), empty for non-full grids

          • londs::Vector{NF} where NF<:AbstractFloat: longitude (-180˚...180˚) for each grid point in ring order

          • latds::Vector{NF} where NF<:AbstractFloat: latitude (-90˚...˚90) for each grid point in ring order

          • sinlat::Vector{NF} where NF<:AbstractFloat: sin of latitudes

          • coslat::Vector{NF} where NF<:AbstractFloat: cos of latitudes

          • coslat⁻¹::Vector{NF} where NF<:AbstractFloat: = 1/cos(lat)

          • coslat²::Vector{NF} where NF<:AbstractFloat: = cos²(lat)

          • coslat⁻²::Vector{NF} where NF<:AbstractFloat: # = 1/cos²(lat)

          • σ_levels_half::Vector{NF} where NF<:AbstractFloat: σ at half levels, σ_k+1/2

          • σ_levels_full::Vector{NF} where NF<:AbstractFloat: σ at full levels, σₖ

          • σ_levels_thick::Vector{NF} where NF<:AbstractFloat: σ level thicknesses, σₖ₊₁ - σₖ

          • ln_σ_levels_full::Vector{NF} where NF<:AbstractFloat: log of σ at full levels, include surface (σ=1) as last element

          source
          SpeedyWeather.GeometryMethod
          Geometry(spectral_grid::SpectralGrid) -> Any
          +

          Generator function for Geometry struct based on spectral_grid.

          source
          SpeedyWeather.HeldSuarezType

          Struct that defines the temperature relaxation from Held and Suarez, 1996 BAMS

          • nlat::Int64: number of latitude rings

          • nlev::Int64: number of vertical levels

          • σb::Float64: sigma coordinate below which faster surface relaxation is applied

          • relax_time_slow::Float64: time scale [hrs] for slow global relaxation

          • relax_time_fast::Float64: time scale [hrs] for faster tropical surface relaxation

          • Tmin::Float64: minimum equilibrium temperature [K]

          • Tmax::Float64: maximum equilibrium temperature [K]

          • ΔTy::Float64: meridional temperature gradient [K]

          • Δθz::Float64: vertical temperature gradient [K]

          • κ::Base.RefValue{NF} where NF<:AbstractFloat

          • p₀::Base.RefValue{NF} where NF<:AbstractFloat

          • temp_relax_freq::Matrix{NF} where NF<:AbstractFloat

          • temp_equil_a::Vector{NF} where NF<:AbstractFloat

          • temp_equil_b::Vector{NF} where NF<:AbstractFloat

          source
          SpeedyWeather.HeldSuarezMethod
          HeldSuarez(SG::SpectralGrid; kwargs...) -> Any
          +

          create a HeldSuarez temperature relaxation with arrays allocated given spectral_grid

          source
          SpeedyWeather.HyperDiffusionType

          Struct for horizontal hyper diffusion of vor, div, temp; implicitly in spectral space with a power of the Laplacian (default=4) and the strength controlled by time_scale. Options exist to scale the diffusion by resolution, and adaptive depending on the current vorticity maximum to increase diffusion in active layers. Furthermore the power can be decreased above the tapering_σ to power_stratosphere (default 2). For Barotropic, ShallowWater, the default non-adaptive constant-time scale hyper diffusion is used. Options are

          • trunc::Int64: spectral resolution

          • nlev::Int64: number of vertical levels

          • power::Float64: power of Laplacian

          • time_scale::Float64: diffusion time scales [hrs]

          • resolution_scaling::Float64: stronger diffusion with resolution? 0: constant with trunc, 1: (inverse) linear with trunc, etc

          • power_stratosphere::Float64: different power for tropopause/stratosphere

          • tapering_σ::Float64: linearly scale towards power_stratosphere above this σ

          • adaptive::Bool: adaptive = higher diffusion for layers with higher vorticity levels.

          • vor_max::Float64: above this (absolute) vorticity level [1/s], diffusion is increased

          • adaptive_strength::Float64: increase strength above vor_max by this factor times max(abs(vor))/vor_max

          • ∇²ⁿ_2D::Vector

          • ∇²ⁿ_2D_implicit::Vector

          • ∇²ⁿ::Array{Vector{NF}, 1} where NF

          • ∇²ⁿ_implicit::Array{Vector{NF}, 1} where NF

          source
          SpeedyWeather.HyperDiffusionMethod
          HyperDiffusion(
          +    spectral_grid::SpectralGrid;
          +    kwargs...
          +) -> Any
          +

          Generator function based on the resolutin in spectral_grid. Passes on keyword arguments.

          source
          SpeedyWeather.ImplicitPrimitiveEqType

          Struct that holds various precomputed arrays for the semi-implicit correction to prevent gravity waves from amplifying in the primitive equation model.

          • trunc::Int64: spectral resolution

          • nlev::Int64: number of vertical levels

          • α::Float64: time-step coefficient: 0=explicit, 0.5=centred implicit, 1=backward implicit

          • temp_profile::Vector{NF} where NF<:AbstractFloat: vertical temperature profile, obtained from diagn

          • ξ::Base.RefValue{NF} where NF<:AbstractFloat: time step 2α*Δt packed in RefValue for mutability

          • R::Matrix{NF} where NF<:AbstractFloat: divergence: operator for the geopotential calculation

          • U::Vector{NF} where NF<:AbstractFloat: divergence: the -RdTₖ∇² term excl the eigenvalues from ∇² for divergence

          • L::Matrix{NF} where NF<:AbstractFloat: temperature: operator for the TₖD + κTₖDlnps/Dt term

          • W::Vector{NF} where NF<:AbstractFloat: pressure: vertical averaging of the -D̄ term in the log surface pres equation

          • L0::Vector{NF} where NF<:AbstractFloat: components to construct L, 1/ 2Δσ

          • L1::Matrix{NF} where NF<:AbstractFloat: vert advection term in the temperature equation (below+above)

          • L2::Vector{NF} where NF<:AbstractFloat: factor in front of the divsumabove term

          • L3::Matrix{NF} where NF<:AbstractFloat: sumabove operator itself

          • L4::Vector{NF} where NF<:AbstractFloat: factor in front of div term in Dlnps/Dt

          • S::Matrix{NF} where NF<:AbstractFloat: for every l the matrix to be inverted

          • S⁻¹::Array{NF, 3} where NF<:AbstractFloat: combined inverted operator: S = 1 - ξ²(RL + UW)

          source
          SpeedyWeather.ImplicitShallowWaterType

          Struct that holds various precomputed arrays for the semi-implicit correction to prevent gravity waves from amplifying in the shallow water model.

          • trunc::Int64

          • α::Float64: coefficient for semi-implicit computations to filter gravity waves

          • H::Base.RefValue{NF} where NF<:AbstractFloat

          • ξH::Base.RefValue{NF} where NF<:AbstractFloat

          • g∇²::Vector{NF} where NF<:AbstractFloat

          • ξg∇²::Vector{NF} where NF<:AbstractFloat

          • S⁻¹::Vector{NF} where NF<:AbstractFloat

          source
          SpeedyWeather.JablonowskiRelaxationMethod
          JablonowskiRelaxation(SG::SpectralGrid; kwargs...) -> Any
          +

          create a JablonowskiRelaxation temperature relaxation with arrays allocated given spectral_grid

          source
          SpeedyWeather.KeepbitsType

          Number of mantissa bits to keep for each prognostic variable when compressed for netCDF and .jld2 data output.

          • u::Int64

          • v::Int64

          • vor::Int64

          • div::Int64

          • temp::Int64

          • pres::Int64

          • humid::Int64

          • precip_cond::Int64

          • precip_conv::Int64

          source
          SpeedyWeather.LeapfrogType

          Leapfrog time stepping defined by the following fields

          • trunc::Int64: spectral resolution (max degree of spherical harmonics)

          • Δt_at_T31::Float64: time step in minutes for T31, scale linearly to trunc

          • radius::Any: radius of sphere [m], used for scaling

          • robert_filter::Any: Robert (1966) time filter coefficeint to suppress comput. mode

          • williams_filter::Any: Williams time filter (Amezcua 2011) coefficient for 3rd order acc

          • Δt_sec::Int64: time step Δt [s] at specified resolution

          • Δt::Any: time step Δt [s/m] at specified resolution, scaled by 1/radius

          • Δt_hrs::Float64: convert time step Δt from minutes to hours

          source
          SpeedyWeather.LeapfrogMethod
          Leapfrog(spectral_grid::SpectralGrid; kwargs...) -> Any
          +

          Generator function for a Leapfrog struct using spectral_grid for the resolution information.

          source
          SpeedyWeather.LinearDragType

          Linear boundary layer drag Following Held and Suarez, 1996 BAMS

          • σb::Float64

          • time_scale::Float64

          • nlev::Int64

          • drag_coefs::Vector{NF} where NF<:AbstractFloat

          source
          SpeedyWeather.MagnusCoefsType

          Parameters for computing saturation vapour pressure using the August-Roche-Magnus formula,

          eᵢ(T) = e₀ * exp(Cᵢ * (T - T₀) / (T - Tᵢ)),

          where T is in Kelvin and i = 1,2 for saturation with respect to water and ice, respectively.

          • e₀::AbstractFloat: Saturation vapour pressure at 0°C [Pa]

          • T₀::AbstractFloat: 0°C in Kelvin

          • T₁::AbstractFloat

          • T₂::AbstractFloat

          • C₁::AbstractFloat

          • C₂::AbstractFloat

          source
          SpeedyWeather.NoOrographyType

          Orography with zero height in orography and zero surface geopotential geopot_surf.

          • orography::SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat: height [m] on grid-point space.

          • geopot_surf::LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat: surface geopotential, height*gravity [m²/s²]

          source
          SpeedyWeather.NoOrographyMethod
          NoOrography(spectral_grid::SpectralGrid) -> NoOrography
          +

          Generator function pulling the resolution information from spectral_grid.

          source
          SpeedyWeather.OutputWriterType

          NetCDF output writer. Contains all output options and auxiliary fields for output interpolation. To be initialised with OutputWriter(::SpectralGrid,::Type{<:ModelSetup},kwargs...) to pass on the resolution information and the model type which chooses which variables to output. Options include

          • spectral_grid::SpectralGrid

          • output::Bool

          • path::String: [OPTION] path to output folder, run_???? will be created within

          • id::String: [OPTION] run identification number/string

          • run_path::String

          • filename::String: [OPTION] name of the output netcdf file

          • write_restart::Bool: [OPTION] also write restart file if output==true?

          • pkg_version::VersionNumber

          • startdate::Dates.DateTime

          • output_dt::Float64: [OPTION] output frequency, time step [hrs]

          • output_dt_sec::Int64: actual output time step [sec]

          • output_vars::Vector{Symbol}: [OPTION] which variables to output, u, v, vor, div, pres, temp, humid

          • missing_value::Union{Float32, Float64}: [OPTION] missing value to be used in netcdf output

          • compression_level::Int64: [OPTION] lossless compression level; 1=low but fast, 9=high but slow

          • keepbits::SpeedyWeather.Keepbits: [OPTION] mantissa bits to keep for every variable

          • output_every_n_steps::Int64

          • timestep_counter::Int64

          • output_counter::Int64

          • netcdf_file::Union{Nothing, NetCDF.NcFile}

          • input_Grid::Type{<:SpeedyWeather.RingGrids.AbstractGrid}

          • as_matrix::Bool: [OPTION] sort grid points into a matrix (interpolation-free), for OctahedralClenshawGrid, OctaHEALPixGrid only

          • quadrant_rotation::NTuple{4, Int64}

          • matrix_quadrant::NTuple{4, Tuple{Int64, Int64}}

          • output_Grid::Type{<:SpeedyWeather.RingGrids.AbstractFullGrid}: [OPTION] the grid used for output, full grids only

          • nlat_half::Int64: [OPTION] the resolution of the output grid, default: same nlat_half as in the dynamical core

          • nlon::Int64

          • nlat::Int64

          • npoints::Int64

          • nlev::Int64

          • interpolator::SpeedyWeather.RingGrids.AbstractInterpolator

          • u::Matrix{NF} where NF<:Union{Float32, Float64}

          • v::Matrix{NF} where NF<:Union{Float32, Float64}

          • vor::Matrix{NF} where NF<:Union{Float32, Float64}

          • div::Matrix{NF} where NF<:Union{Float32, Float64}

          • temp::Matrix{NF} where NF<:Union{Float32, Float64}

          • pres::Matrix{NF} where NF<:Union{Float32, Float64}

          • humid::Matrix{NF} where NF<:Union{Float32, Float64}

          • precip_cond::Matrix{NF} where NF<:Union{Float32, Float64}

          • precip_conv::Matrix{NF} where NF<:Union{Float32, Float64}

          source
          SpeedyWeather.PrimitiveDryModelType

          The PrimitiveDryModel struct holds all other structs that contain precalculated constants, whether scalars or arrays that do not change throughout model integration.

          • spectral_grid::SpectralGrid: dictates resolution for many other components

          • planet::SpeedyWeather.AbstractPlanet: contains physical and orbital characteristics

          • atmosphere::SpeedyWeather.AbstractAtmosphere

          • initial_conditions::SpeedyWeather.InitialConditions

          • orography::SpeedyWeather.AbstractOrography{NF} where NF<:AbstractFloat

          • physics::Bool

          • boundary_layer_drag::SpeedyWeather.BoundaryLayerDrag{NF} where NF<:AbstractFloat

          • temperature_relaxation::SpeedyWeather.TemperatureRelaxation{NF} where NF<:AbstractFloat

          • static_energy_diffusion::SpeedyWeather.VerticalDiffusion{NF} where NF<:AbstractFloat

          • time_stepping::SpeedyWeather.TimeStepper{NF} where NF<:AbstractFloat

          • spectral_transform::SpectralTransform

          • horizontal_diffusion::SpeedyWeather.HorizontalDiffusion{NF} where NF<:AbstractFloat

          • implicit::SpeedyWeather.AbstractImplicit{NF} where NF<:AbstractFloat

          • geometry::Geometry

          • constants::DynamicsConstants

          • device_setup::SpeedyWeather.DeviceSetup

          • output::SpeedyWeather.AbstractOutputWriter

          • feedback::SpeedyWeather.AbstractFeedback

          source
          SpeedyWeather.PrimitiveWetModelType

          The PrimitiveDryModel struct holds all other structs that contain precalculated constants, whether scalars or arrays that do not change throughout model integration.

          • spectral_grid::SpectralGrid: dictates resolution for many other components

          • planet::SpeedyWeather.AbstractPlanet: contains physical and orbital characteristics

          • atmosphere::SpeedyWeather.AbstractAtmosphere

          • initial_conditions::SpeedyWeather.InitialConditions

          • orography::SpeedyWeather.AbstractOrography{NF} where NF<:AbstractFloat

          • physics::Bool

          • thermodynamics::SpeedyWeather.Thermodynamics{NF} where NF<:AbstractFloat

          • boundary_layer_drag::SpeedyWeather.BoundaryLayerDrag{NF} where NF<:AbstractFloat

          • temperature_relaxation::SpeedyWeather.TemperatureRelaxation{NF} where NF<:AbstractFloat

          • static_energy_diffusion::SpeedyWeather.VerticalDiffusion{NF} where NF<:AbstractFloat

          • large_scale_condensation::SpeedyWeather.AbstractCondensation{NF} where NF<:AbstractFloat

          • time_stepping::SpeedyWeather.TimeStepper{NF} where NF<:AbstractFloat

          • spectral_transform::SpectralTransform

          • horizontal_diffusion::SpeedyWeather.HorizontalDiffusion{NF} where NF<:AbstractFloat

          • implicit::SpeedyWeather.AbstractImplicit{NF} where NF<:AbstractFloat

          • geometry::Geometry

          • constants::DynamicsConstants

          • device_setup::SpeedyWeather.DeviceSetup

          • output::SpeedyWeather.AbstractOutputWriter

          • feedback::SpeedyWeather.AbstractFeedback

          source
          SpeedyWeather.ShallowWaterModelType

          The ShallowWaterModel struct holds all other structs that contain precalculated constants, whether scalars or arrays that do not change throughout model integration.

          • spectral_grid::SpectralGrid: dictates resolution for many other components

          • planet::SpeedyWeather.AbstractPlanet: contains physical and orbital characteristics

          • atmosphere::SpeedyWeather.AbstractAtmosphere

          • forcing::SpeedyWeather.AbstractForcing{NF} where NF<:AbstractFloat

          • initial_conditions::SpeedyWeather.InitialConditions

          • orography::SpeedyWeather.AbstractOrography{NF} where NF<:AbstractFloat

          • time_stepping::SpeedyWeather.TimeStepper{NF} where NF<:AbstractFloat

          • spectral_transform::SpectralTransform

          • horizontal_diffusion::SpeedyWeather.HorizontalDiffusion{NF} where NF<:AbstractFloat

          • implicit::SpeedyWeather.AbstractImplicit{NF} where NF<:AbstractFloat

          • geometry::Geometry

          • constants::DynamicsConstants

          • device_setup::SpeedyWeather.DeviceSetup

          • output::SpeedyWeather.AbstractOutputWriter

          • feedback::SpeedyWeather.AbstractFeedback

          source
          SpeedyWeather.SimulationType

          Simulation is a container struct to be used with run!(::Simulation). It contains

          • prognostic_variables::PrognosticVariables: define the current state of the model

          • diagnostic_variables::DiagnosticVariables: contain the tendencies and auxiliary arrays to compute them

          • model::SpeedyWeather.ModelSetup: all parameters, constant at runtime

          source
          SpeedyWeather.SpectralGridType

          Defines the horizontal spectral resolution and corresponding grid and the vertical coordinate for SpeedyWeather.jl. Options are

          • NF::Type{<:AbstractFloat}: number format used throughout the model

          • trunc::Int64: horizontal resolution as the maximum degree of spherical harmonics

          • Grid::Type{<:SpeedyWeather.RingGrids.AbstractGrid}: horizontal grid used for calculations in grid-point space

          • dealiasing::Float64: how to match spectral with grid resolution: dealiasing factor, 1=linear, 2=quadratic, 3=cubic grid

          • radius::Float64: radius of the sphere [m]

          • nlat_half::Int64: number of latitude rings on one hemisphere (Equator incl)

          • npoints::Int64: total number of grid points in the horizontal

          • nlev::Int64: number of vertical levels

          • vertical_coordinates::SpeedyWeather.VerticalCoordinates: coordinates used to discretize the vertical

          nlat_half and npoints should not be chosen but are derived from trunc, Grid and dealiasing.

          source
          SpeedyWeather.SpeedyCondensationType

          Large scale condensation as in Fortran SPEEDY with default values from therein.

          • nlev::Int64: number of vertical levels

          • threshold_boundary_layer::Float64: Relative humidity threshold for boundary layer

          • threshold_range::Float64: Vertical range of relative humidity threshold

          • threshold_max::Float64: Maximum relative humidity threshold [1]

          • time_scale::Float64: Relaxation time for humidity [hrs]

          • n_stratosphere_levels::Base.RefValue{Int64}

          • humid_tend_max::Vector{NF} where NF<:AbstractFloat

          • relative_threshold::Vector{NF} where NF<:AbstractFloat

          source
          SpeedyWeather.SpeedyTransforms.SpectralTransformMethod
          SpectralTransform(
          +    spectral_grid::SpectralGrid;
          +    recompute_legendre,
          +    kwargs...
          +) -> SpectralTransform
          +

          Generator function for a SpectralTransform struct pulling in parameters from a SpectralGrid struct.

          source
          SpeedyWeather.StartFromFileType

          Restart from a previous SpeedyWeather.jl simulation via the restart file restart.jld2 Applies interpolation in the horizontal but not in the vertical. restart.jld2 is identified by

          • path::String: path for restart file

          • id::Union{Int64, String}: run_id of restart file in run_????/restart.jld2

          source
          SpeedyWeather.StartWithRandomVorticityType

          Start with random vorticity as initial conditions

          • power::Float64: Power of the spectral distribution k^power

          • amplitude::Float64: (approximate) amplitude in [1/s], used as standard deviation of spherical harmonic coefficients

          source
          SpeedyWeather.StaticEnergyDiffusionType

          Diffusion of dry static energy: A relaxation towards a reference gradient of static energy wrt to geopotential, see Fortran SPEEDY documentation.

          • time_scale::Float64: time scale [hrs] for strength

          • static_energy_lapse_rate::Float64: [1] ∂SE/∂Φ, vertical gradient of static energy SE with geopotential Φ

          • Fstar::Base.RefValue{NF} where NF<:AbstractFloat

          source
          SpeedyWeather.TendenciesType
          Tendencies{Grid<:AbstractGrid,NF<:AbstractFloat}

          Struct holding the tendencies of the prognostic spectral variables for a given layer.

          source
          SpeedyWeather.ZonalJetType

          Create a struct that contains all parameters for the Galewsky et al, 2004 zonal jet intitial conditions for the shallow water model. Default values as in Galewsky.

          • latitude::Float64: jet latitude [˚N]

          • width::Float64: jet width [˚], default ≈ 19.29˚

          • umax::Float64: jet maximum velocity [m/s]

          • perturb_lat::Float64: perturbation latitude [˚N], position in jet by default

          • perturb_lon::Float64: perturbation longitude [˚E]

          • perturb_xwidth::Float64: perturbation zonal extent [˚], default ≈ 19.1˚

          • perturb_ywidth::Float64: perturbation meridinoal extent [˚], default ≈ 3.8˚

          • perturb_height::Float64: perturbation amplitude [m]

          source
          SpeedyWeather.ZonalRidgeType

          Zonal ridge orography after Jablonowski and Williamson, 2006.

          • η₀::Float64: conversion from σ to Jablonowski's ηᵥ-coordinates

          • u₀::Float64: max amplitude of zonal wind [m/s] that scales orography height

          • orography::SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat: height [m] on grid-point space.

          • geopot_surf::LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat: surface geopotential, height*gravity [m²/s²]

          source
          SpeedyWeather.ZonalRidgeMethod
          ZonalRidge(spectral_grid::SpectralGrid; kwargs...) -> Any
          +

          Generator function pulling the resolution information from spectral_grid.

          source
          SpeedyWeather.ZonalWindType

          Create a struct that contains all parameters for the Jablonowski and Williamson, 2006 intitial conditions for the primitive equation model. Default values as in Jablonowski.

          • η₀::Float64: conversion from σ to Jablonowski's ηᵥ-coordinates

          • u₀::Float64: max amplitude of zonal wind [m/s]

          • perturb_lat::Float64: perturbation centred at [˚N]

          • perturb_lon::Float64: perturbation centred at [˚E]

          • perturb_uₚ::Float64: perturbation strength [m/s]

          • perturb_radius::Float64: radius of Gaussian perturbation in units of Earth's radius [1]

          • ΔT::Float64: temperature difference used for stratospheric lapse rate [K], Jablonowski uses ΔT = 4.8e5 [K]

          • Tmin::Float64: minimum temperature [K] of profile

          • pressure_on_orography::Bool: initialize pressure given the atmosphere.lapse_rate on orography?

          source
          Base.copy!Method
          copy!(progn_new::PrognosticVariables, progn_old::PrognosticVariables)

          Copies entries of progn_old into progn_new. Only copies those variables that are present in the model of both progn_new and progn_old.

          source
          SpeedyWeather.DeviceMethod
          Device()

          Return default used device for internal purposes, either CPUDevice or GPUDevice if a GPU is available.

          source
          SpeedyWeather.DeviceArrayMethod
          DeviceArray(device::AbstractDevice, x)

          Adapts x to a CuArray when device<:GPUDevice is used, otherwise a regular Array. Uses adapt, thus also can return SubArrays etc.

          source
          SpeedyWeather.DeviceArrayNotAdaptMethod
          DeviceArrayNotAdapt(device::AbstractDevice, x)

          Returns a CuArray when device<:GPUDevice is used, otherwise a regular Array. Doesn't uses adapt, therefore always returns CuArray/Array

          source
          SpeedyWeather.SpeedyTransforms.gridded!Method
          gridded!(
          +    diagn::DiagnosticVariables,
          +    progn::PrognosticVariables,
          +    lf::Int64,
          +    model::SpeedyWeather.ModelSetup
          +)
          +

          Propagate the spectral state of progn to diagn using time step/leapfrog index lf. Function barrier that calls gridded! for the respective model.

          source
          SpeedyWeather.SpeedyTransforms.gridded!Method
          gridded!(
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
          +    progn::SpeedyWeather.PrognosticLayerTimesteps,
          +    lf::Int64,
          +    model::Barotropic
          +)
          +

          Propagate the spectral state of the prognostic variables progn to the diagnostic variables in diagn for the barotropic vorticity model. Updates grid vorticity, spectral stream function and spectral and grid velocities u,v.

          source
          SpeedyWeather.SpeedyTransforms.gridded!Method
          gridded!(
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
          +    progn::SpeedyWeather.PrognosticLayerTimesteps,
          +    lf::Int64,
          +    model::PrimitiveEquation
          +)
          +

          Propagate the spectral state of the prognostic variables progn to the diagnostic variables in diagn for primitive equation models. Updates grid vorticity, grid divergence, grid temperature, pressure (pres_grid) and the velocities u,v.

          source
          SpeedyWeather.SpeedyTransforms.gridded!Method
          gridded!(
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
          +    progn::SpeedyWeather.PrognosticLayerTimesteps,
          +    lf::Int64,
          +    model::ShallowWater
          +)
          +

          Propagate the spectral state of the prognostic variables progn to the diagnostic variables in diagn for the shallow water model. Updates grid vorticity, grid divergence, grid interface displacement (pres_grid) and the velocities u,v.

          source
          SpeedyWeather._scale_lat!Method
          _scale_lat!(
          +    A::SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},
          +    v::AbstractVector
          +)
          +

          Generic latitude scaling applied to A in-place with latitude-like vector v.

          source
          SpeedyWeather.allocateMethod
          allocate(
          +    _::Type{PrognosticVariables},
          +    spectral_grid::SpectralGrid,
          +    _::Type{Model<:SpeedyWeather.ModelSetup}
          +) -> PrognosticVariables
          +
          source
          SpeedyWeather.bernoulli_potential!Method
          bernoulli_potential!(
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF},
          +    S::SpectralTransform
          +) -> LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat
          +

          Computes the Laplace operator ∇² of the Bernoulli potential B in spectral space.

          1. computes the kinetic energy KE = ½(u²+v²) on the grid
          2. transforms KE to spectral space
          3. adds geopotential for the Bernoulli potential in spectral space
          4. takes the Laplace operator.

          This version is used for both ShallowWater and PrimitiveEquation, only the geopotential calculation in geopotential! differs.

          source
          SpeedyWeather.boundary_layer_drag!Method
          boundary_layer_drag!(
          +    column::ColumnVariables,
          +    scheme::LinearDrag
          +)
          +

          Compute tendency for boundary layer drag of a column and add to its tendencies fields

          source
          SpeedyWeather.create_output_folderMethod
          create_output_folder(
          +    path::String,
          +    id::Union{Int64, String}
          +) -> String
          +

          Creates a new folder run_* with the identification id. Also returns the full path run_path of that folder.

          source
          SpeedyWeather.default_sigma_coordinatesMethod
          default_sigma_coordinates(nlev::Integer) -> Any
          +

          Vertical sigma coordinates defined by their nlev+1 half levels σ_levels_half. Sigma coordinates are fraction of surface pressure (p/p0) and are sorted from top (stratosphere) to bottom (surface). The first half level is at 0 the last at 1. Evaluate a generalised logistic function with coefficients in P for the distribution of values in between. Default coefficients follow the L31 configuration historically used at ECMWF.

          source
          SpeedyWeather.dry_static_energy!Method
          dry_static_energy!(
          +    column::ColumnVariables,
          +    constants::DynamicsConstants
          +)
          +

          Compute the dry static energy SE = cₚT + Φ (latent heat times temperature plus geopotential) for the column.

          source
          SpeedyWeather.dynamics_tendencies!Function
          dynamics_tendencies!(
          +    diagn::DiagnosticVariables,
          +    progn::PrognosticVariables,
          +    model::PrimitiveEquation
          +) -> Any
          +dynamics_tendencies!(
          +    diagn::DiagnosticVariables,
          +    progn::PrognosticVariables,
          +    model::PrimitiveEquation,
          +    lf::Int64
          +) -> Any
          +

          Calculate all tendencies for the PrimitiveEquation model (wet or dry).

          source
          SpeedyWeather.dynamics_tendencies!Method
          dynamics_tendencies!(
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
          +    time::Dates.DateTime,
          +    model::Barotropic
          +)
          +

          Calculate all tendencies for the BarotropicModel.

          source
          SpeedyWeather.dynamics_tendencies!Method
          dynamics_tendencies!(
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
          +    surface::SpeedyWeather.SurfaceVariables,
          +    pres::LowerTriangularMatrix,
          +    time::Dates.DateTime,
          +    model::ShallowWater
          +)
          +

          Calculate all tendencies for the ShallowWaterModel.

          source
          SpeedyWeather.first_timesteps!Method
          first_timesteps!(
          +    progn::PrognosticVariables,
          +    diagn::DiagnosticVariables,
          +    model::SpeedyWeather.ModelSetup,
          +    output::SpeedyWeather.AbstractOutputWriter
          +) -> typeof(time)
          +

          Performs the first two initial time steps (Euler forward, unfiltered leapfrog) to populate the prognostic variables with two time steps (t=0,Δt) that can then be used in the normal leap frogging.

          source
          SpeedyWeather.flux_divergence!Method
          flux_divergence!(
          +    A_tend::LowerTriangularMatrix{Complex{NF}},
          +    A_grid::SpeedyWeather.RingGrids.AbstractGrid{NF},
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF},
          +    G::Geometry{NF},
          +    S::SpectralTransform{NF};
          +    add,
          +    flipsign
          +)
          +

          Computes ∇⋅((u,v)*A) with the option to add/overwrite A_tend and to flip_sign of the flux divergence by doing so.

          • A_tend = ∇⋅((u,v)*A) for add=false, flip_sign=false
          • A_tend = -∇⋅((u,v)*A) for add=false, flip_sign=true
          • A_tend += ∇⋅((u,v)*A) for add=true, flip_sign=false
          • A_tend -= ∇⋅((u,v)*A) for add=true, flip_sign=true
          source
          SpeedyWeather.fluxes_to_tendencies!Method
          fluxes_to_tendencies!(
          +    column::ColumnVariables,
          +    geometry::Geometry,
          +    constants::DynamicsConstants
          +)
          +

          Convert the fluxes on half levels to tendencies on full levels.

          source
          SpeedyWeather.geopotential!Method
          geopotential!(
          +    diagn::DiagnosticVariables,
          +    O::SpeedyWeather.AbstractOrography,
          +    C::DynamicsConstants
          +)
          +

          Compute spectral geopotential geopot from spectral temperature temp and spectral surface geopotential geopot_surf (orography*gravity).

          source
          SpeedyWeather.geopotential!Method
          geopotential!(
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
          +    pres::LowerTriangularMatrix,
          +    C::DynamicsConstants
          +) -> Any
          +

          calculates the geopotential in the ShallowWaterModel as g*η, i.e. gravity times the interface displacement (field pres)

          source
          SpeedyWeather.geopotential!Method
          geopotential!(temp::Vector, C::DynamicsConstants) -> Vector
          +

          Calculate the geopotential based on temp in a single column. This exclues the surface geopotential that would need to be added to the returned vector. Function not used in the dynamical core but for post-processing and analysis.

          source
          SpeedyWeather.get_column!Method
          get_column!(
          +    C::ColumnVariables,
          +    D::DiagnosticVariables,
          +    ij::Integer,
          +    jring::Integer,
          +    G::Geometry
          +)
          +

          Update C::ColumnVariables by copying the prognostic variables from D::DiagnosticVariables at gridpoint index ij. Provide G::Geometry for coordinate information.

          source
          SpeedyWeather.get_run_idMethod
          get_run_id(path::String, id::String) -> String
          +

          Checks existing run_???? folders in path to determine a 4-digit id number by counting up. E.g. if folder run_0001 exists it will return the string "0002". Does not create a folder for the returned run id.

          source
          SpeedyWeather.get_thermodynamics!Method
          get_thermodynamics!(
          +    column::ColumnVariables,
          +    model::PrimitiveWet
          +)
          +

          Calculate thermodynamic quantities like saturation vapour pressure, saturation specific humidity, dry static energy, moist static energy and saturation moist static energy from the prognostic column variables.

          source
          SpeedyWeather.get_varMethod
          get_var(progn::PrognosticVariables, var_name::Symbol; lf::Integer=1)

          Returns the prognostic variable var_name at leapfrog index lf as a Vector{LowerTriangularMatrices}.

          source
          SpeedyWeather.hasMethod
          has(
          +    M::Type{<:SpeedyWeather.ModelSetup},
          +    var_name::Symbol
          +) -> Bool
          +

          Returns true if the model M has a prognostic variable var_name, false otherwise. The default fallback is that all variables are included.

          source
          SpeedyWeather.horizontal_diffusion!Function
          horizontal_diffusion!(
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
          +    progn::SpeedyWeather.PrognosticLayerTimesteps,
          +    model::Barotropic
          +)
          +horizontal_diffusion!(
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
          +    progn::SpeedyWeather.PrognosticLayerTimesteps,
          +    model::Barotropic,
          +    lf::Int64
          +)
          +

          Apply horizontal diffusion to vorticity in the Barotropic models.

          source
          SpeedyWeather.horizontal_diffusion!Function
          horizontal_diffusion!(
          +    progn::SpeedyWeather.PrognosticLayerTimesteps,
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
          +    model::ShallowWater
          +)
          +horizontal_diffusion!(
          +    progn::SpeedyWeather.PrognosticLayerTimesteps,
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
          +    model::ShallowWater,
          +    lf::Int64
          +)
          +

          Apply horizontal diffusion to vorticity and diffusion in the ShallowWater models.

          source
          SpeedyWeather.horizontal_diffusion!Function
          horizontal_diffusion!(
          +    progn::SpeedyWeather.PrognosticLayerTimesteps,
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
          +    model::PrimitiveEquation
          +) -> Union{Nothing, Bool}
          +horizontal_diffusion!(
          +    progn::SpeedyWeather.PrognosticLayerTimesteps,
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
          +    model::PrimitiveEquation,
          +    lf::Int64
          +) -> Union{Nothing, Bool}
          +

          Apply horizontal diffusion applied to vorticity, diffusion and temperature in the PrimitiveEquation models. Uses the constant diffusion for temperature but possibly adaptive diffusion for vorticity and divergence.

          source
          SpeedyWeather.horizontal_diffusion!Method
          horizontal_diffusion!(
          +    tendency::LowerTriangularMatrix{Complex{NF<:AbstractFloat}},
          +    A::LowerTriangularMatrix{Complex{NF<:AbstractFloat}},
          +    ∇²ⁿ_expl::AbstractArray{NF<:AbstractFloat, 1},
          +    ∇²ⁿ_impl::AbstractArray{NF<:AbstractFloat, 1}
          +)
          +

          Apply horizontal diffusion to a 2D field A in spectral space by updating its tendency tendency with an implicitly calculated diffusion term. The implicit diffusion of the next time step is split into an explicit part ∇²ⁿ_expl and an implicit part ∇²ⁿ_impl, such that both can be calculated in a single forward step by using A as well as its tendency tendency.

          source
          SpeedyWeather.implicit_correction!Method
          implicit_correction!(
          +    diagn::DiagnosticVariables,
          +    implicit::SpeedyWeather.ImplicitPrimitiveEq,
          +    progn::PrognosticVariables
          +) -> Any
          +

          Apply the implicit corrections to dampen gravity waves in the primitive equation models.

          source
          SpeedyWeather.implicit_correction!Method
          implicit_correction!(
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF},
          +    progn::SpeedyWeather.PrognosticLayerTimesteps{NF},
          +    diagn_surface::SpeedyWeather.SurfaceVariables{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF},
          +    progn_surface::SpeedyWeather.PrognosticSurfaceTimesteps{NF},
          +    implicit::SpeedyWeather.ImplicitShallowWater
          +)
          +

          Apply correction to the tendencies in diagn to prevent the gravity waves from amplifying. The correction is implicitly evaluated using the parameter implicit.α to switch between forward, centered implicit or backward evaluation of the gravity wave terms.

          source
          SpeedyWeather.initial_conditions!Method
          initial_conditions!(
          +    progn_new::PrognosticVariables,
          +    initial_conditions::StartFromFile,
          +    model::SpeedyWeather.ModelSetup
          +) -> PrognosticVariables
          +

          Restart from a previous SpeedyWeather.jl simulation via the restart file restart.jld2 Applies interpolation in the horizontal but not in the vertical.

          source
          SpeedyWeather.initial_conditions!Method
          initial_conditions!(
          +    progn::PrognosticVariables,
          +    initial_conditions::ZonalJet,
          +    model::ShallowWater
          +) -> LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat
          +

          Initial conditions from Galewsky, 2004, Tellus

          source
          SpeedyWeather.initial_conditions!Method
          initial_conditions!(
          +    progn::PrognosticVariables{NF},
          +    initial_conditions::StartWithRandomVorticity,
          +    model::SpeedyWeather.ModelSetup
          +)
          +

          Start with random vorticity as initial conditions

          source
          SpeedyWeather.initial_conditions!Method
          initial_conditions!(
          +    progn::PrognosticVariables{NF},
          +    initial_conditions::ZonalWind,
          +    model::PrimitiveEquation
          +)
          +

          Initial conditions from Jablonowski and Williamson, 2006, QJR Meteorol. Soc

          source
          SpeedyWeather.initialize!Function
          initialize!(
          +    scheme::HyperDiffusion,
          +    k::Int64,
          +    G::Geometry,
          +    L::SpeedyWeather.TimeStepper
          +)
          +initialize!(
          +    scheme::HyperDiffusion,
          +    k::Int64,
          +    G::Geometry,
          +    L::SpeedyWeather.TimeStepper,
          +    vor_max::Real
          +)
          +

          Precomputes the hyper diffusion terms in scheme for layer k based on the model time step in L, the vertical level sigma level in G, and the current (absolute) vorticity maximum level vor_max

          source
          SpeedyWeather.initialize!Method
          initialize!(model::Barotropic) -> SpeedyWeather.Simulation
          +

          Calls all initialize! functions for components of model, except for model.output and model.feedback which are always called at in time_stepping!.

          source
          SpeedyWeather.initialize!Method
          initialize!(
          +    orog::EarthOrography,
          +    P::SpeedyWeather.AbstractPlanet,
          +    S::SpectralTransform,
          +    G::Geometry
          +) -> LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat
          +

          Initialize the arrays orography,geopot_surf in orog by reading the orography field from file.

          source
          SpeedyWeather.initialize!Method
          initialize!(
          +    feedback::Feedback,
          +    clock::SpeedyWeather.Clock,
          +    model::SpeedyWeather.ModelSetup
          +) -> Union{Nothing, IOStream}
          +

          Initializes the a Feedback struct.

          source
          SpeedyWeather.initialize!Method
          initialize!(scheme::HeldSuarez, model::PrimitiveEquation)
          +

          initialize the HeldSuarez temperature relaxation by precomputing terms for the equilibrium temperature Teq.

          source
          SpeedyWeather.initialize!Method
          initialize!(
          +    scheme::HyperDiffusion,
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
          +    G::Geometry,
          +    L::SpeedyWeather.TimeStepper
          +)
          +

          Pre-function to other initialize!(::HyperDiffusion) initialisors that calculates the (absolute) vorticity maximum for the layer of diagn.

          source
          SpeedyWeather.initialize!Method
          initialize!(
          +    scheme::HyperDiffusion,
          +    model::SpeedyWeather.ModelSetup
          +)
          +

          Precomputes the hyper diffusion terms in scheme based on the model time step, and possibly with a changing strength/power in the vertical.

          source
          SpeedyWeather.initialize!Method
          initialize!(
          +    scheme::HyperDiffusion,
          +    L::SpeedyWeather.TimeStepper
          +)
          +

          Precomputes the 2D hyper diffusion terms in scheme based on the model time step.

          source
          SpeedyWeather.initialize!Method
          initialize!(
          +    scheme::JablonowskiRelaxation,
          +    model::PrimitiveEquation
          +)
          +

          initialize the JablonowskiRelaxation temperature relaxation by precomputing terms for the equilibrium temperature Teq and the frequency (strength of relaxation).

          source
          SpeedyWeather.initialize!Method
          initialize!(scheme::LinearDrag, model::PrimitiveEquation)
          +

          Precomputes the drag coefficients for this BoundaryLayerDrag scheme.

          source
          SpeedyWeather.initialize!Method
          initialize!(
          +    scheme::NoTemperatureRelaxation,
          +    model::PrimitiveEquation
          +)
          +

          just passes, does not need any initialization.

          source
          SpeedyWeather.initialize!Method
          initialize!(model::PrimitiveDry) -> SpeedyWeather.Simulation
          +

          Calls all initialize! functions for components of model, except for model.output and model.feedback which are always called at in time_stepping! and model.implicit which is done in first_timesteps!.

          source
          SpeedyWeather.initialize!Method
          initialize!(model::PrimitiveWet) -> SpeedyWeather.Simulation
          +

          Calls all initialize! functions for components of model, except for model.output and model.feedback which are always called at in time_stepping! and model.implicit which is done in first_timesteps!.

          source
          SpeedyWeather.initialize!Method
          initialize!(model::ShallowWater) -> SpeedyWeather.Simulation
          +

          Calls all initialize! functions for components of model, except for model.output and model.feedback which are always called at in time_stepping! and model.implicit which is done in first_timesteps!.

          source
          SpeedyWeather.initialize!Method
          initialize!(
          +    scheme::SpeedyCondensation,
          +    model::PrimitiveEquation
          +)
          +

          Initialize the SpeedyCondensation scheme.

          source
          SpeedyWeather.initialize!Method
          initialize!(
          +    clock::SpeedyWeather.Clock,
          +    time_stepping::SpeedyWeather.TimeStepper
          +) -> SpeedyWeather.Clock
          +

          Initialize the clock with the time step Δt in the time_stepping.

          source
          SpeedyWeather.initialize!Method
          initialize!(
          +    implicit::SpeedyWeather.ImplicitPrimitiveEq,
          +    i::Integer,
          +    dt::Real,
          +    diagn::DiagnosticVariables,
          +    geometry::Geometry,
          +    constants::DynamicsConstants
          +)
          +

          Reinitialize implicit occasionally based on time step i and implicit.recalculate.

          source
          SpeedyWeather.initialize!Method
          initialize!(
          +    implicit::SpeedyWeather.ImplicitPrimitiveEq,
          +    dt::Real,
          +    diagn::DiagnosticVariables,
          +    geometry::Geometry,
          +    constants::DynamicsConstants
          +)
          +

          Initialize the implicit terms for the PrimitiveEquation models.

          source
          SpeedyWeather.initialize!Method
          initialize!(
          +    implicit::SpeedyWeather.ImplicitShallowWater,
          +    dt::Real,
          +    constants::DynamicsConstants
          +)
          +

          Update the implicit terms in implicit for the shallow water model as they depend on the time step dt.

          source
          SpeedyWeather.initialize!Method
          initialize!(
          +    orog::ZonalRidge,
          +    P::SpeedyWeather.AbstractPlanet,
          +    S::SpectralTransform,
          +    G::Geometry
          +) -> LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat
          +

          Initialize the arrays orography,geopot_surf in orog following Jablonowski and Williamson, 2006.

          source
          SpeedyWeather.initialize!Method
          initialize!(
          +    output::OutputWriter{output_NF, Model},
          +    feedback::SpeedyWeather.AbstractFeedback,
          +    time_stepping::SpeedyWeather.TimeStepper,
          +    diagn::DiagnosticVariables,
          +    model
          +)
          +

          Creates a netcdf file on disk and the corresponding netcdf_file object preallocated with output variables and dimensions. write_output! then writes consecuitive time steps into this file.

          source
          SpeedyWeather.initialize!Method
          initialize!(
          +    scheme::SpeedyWeather.StaticEnergyDiffusion{NF},
          +    model::PrimitiveEquation
          +) -> Any
          +

          Initialize dry static energy diffusion.

          source
          SpeedyWeather.initialize_geopotentialMethod
          initialize_geopotential(
          +    σ_levels_full::Vector,
          +    σ_levels_half::Vector,
          +    R_dry::Real
          +) -> Tuple{Vector{Float64}, Vector{Float64}}
          +

          Precomputes constants for the vertical integration of the geopotential, defined as

          Φ_{k+1/2} = Φ_{k+1} + R*T_{k+1}*(ln(p_{k+1}) - ln(p_{k+1/2})) (half levels) Φ_k = Φ_{k+1/2} + R*T_k*(ln(p_{k+1/2}) - ln(p_k)) (full levels)

          Same formula but k → k-1/2.

          source
          SpeedyWeather.large_scale_condensation!Method
          large_scale_condensation!(
          +    column::ColumnVariables{NF},
          +    scheme::SpeedyCondensation,
          +    geometry::Geometry,
          +    constants::DynamicsConstants,
          +    atmosphere::SpeedyWeather.AbstractAtmosphere,
          +    time_stepping::SpeedyWeather.TimeStepper
          +)
          +

          Large-scale condensation for a column by relaxation back to a reference relative humidity if larger than that. Calculates the tendencies for specific humidity and temperature and integrates the large-scale precipitation vertically for output.

          source
          SpeedyWeather.launch_kernel!Method
          launch_kernel!(device_setup::DeviceSetup, kernel!, ndrange, kernel_args...)

          Launches the kernel! on the device_setup with ndrange computations over the kernel and arguments kernel_args

          source
          SpeedyWeather.leapfrog!Method
          leapfrog!(
          +    A_old::LowerTriangularMatrix{Complex{NF<:AbstractFloat}},
          +    A_new::LowerTriangularMatrix{Complex{NF<:AbstractFloat}},
          +    tendency::LowerTriangularMatrix{Complex{NF<:AbstractFloat}},
          +    dt::Real,
          +    lf::Int64,
          +    L::Leapfrog{NF<:AbstractFloat}
          +)
          +

          Performs one leapfrog time step with (lf=2) or without (lf=1) Robert+Williams filter (see Williams (2009), Montly Weather Review, Eq. 7-9).

          source
          SpeedyWeather.linear_pressure_gradient!Method
          linear_pressure_gradient!(
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
          +    surface::SpeedyWeather.PrognosticSurfaceTimesteps,
          +    lf::Int64,
          +    C::DynamicsConstants,
          +    I::SpeedyWeather.ImplicitPrimitiveEq
          +) -> LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat
          +

          Add the linear contribution of the pressure gradient to the geopotential. The pressure gradient in the divergence equation takes the form

          -∇⋅(Rd*Tᵥ*∇lnpₛ) = -∇⋅(Rd*Tᵥ'*∇lnpₛ) - ∇²(Rd*Tₖ*lnpₛ)

          So that the second term inside the Laplace operator can be added to the geopotential. Rd is the gas constant, Tᵥ the virtual temperature and Tᵥ' its anomaly wrt to the average or reference temperature Tₖ, lnpₛ is the logarithm of surface pressure.

          source
          SpeedyWeather.linear_virtual_temperature!Method
          linear_virtual_temperature!(
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
          +    progn::SpeedyWeather.PrognosticLayerTimesteps,
          +    constants::DynamicsConstants,
          +    lf::Int64
          +) -> Any
          +

          Calculates a linearised virtual temperature Tᵥ as

          Tᵥ = T + Tₖμq

          With absolute temperature T, layer-average temperarture Tₖ (computed in temperature_average!), specific humidity q and

          μ = (1-ξ)/ξ, ξ = R_dry/R_vapour.

          in spectral space.

          source
          SpeedyWeather.linear_virtual_temperature!Method
          linear_virtual_temperature!(
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
          +    progn::SpeedyWeather.PrognosticLayerTimesteps,
          +    model::PrimitiveDry,
          +    lf::Integer
          +) -> LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat
          +

          Linear virtual temperature for model::PrimitiveDry: Just copy over arrays from temp to temp_virt at timestep lf in spectral space as humidity is zero in this model.

          source
          SpeedyWeather.load_trajectoryMethod
          load_trajectory(
          +    var_name::Union{String, Symbol},
          +    model::SpeedyWeather.ModelSetup
          +) -> Any
          +

          Loads a var_name trajectory of the model M that has been saved in a netCDF file during the time stepping.

          source
          SpeedyWeather.moist_static_energy!Method
          moist_static_energy!(
          +    column::ColumnVariables,
          +    thermodynamics::SpeedyWeather.Thermodynamics
          +)
          +

          Compute the moist static energy

          MSE = SE + Lc*Q = cₚT + Φ + Lc*Q

          with the static energy SE, the latent heat of condensation Lc, the geopotential Φ. As well as the saturation moist static energy which replaces Q with Q_sat

          source
          SpeedyWeather.nansMethod
          A = nans(T,dims...)

          Allocate array A with NaNs of type T. Similar to zeros(T,dims...).

          source
          SpeedyWeather.nar_detection!Method
          nar_detection!(
          +    feedback::Feedback,
          +    progn::PrognosticVariables
          +) -> Union{Nothing, Bool}
          +

          Detect NaR (Not-a-Real) in the prognostic variables.

          source
          SpeedyWeather.parameterization_tendencies!Method
          parameterization_tendencies!(
          +    diagn::DiagnosticVariables,
          +    time::Dates.DateTime,
          +    model::PrimitiveEquation
          +) -> Any
          +

          Compute tendencies for u,v,temp,humid from physical parametrizations. Extract for each vertical atmospheric column the prognostic variables (stored in diagn as they are grid-point transformed), loop over all grid-points, compute all parametrizations on a single-column basis, then write the tendencies back into a horizontal field of tendencies.

          source
          SpeedyWeather.pressure_on_orography!Method
          pressure_on_orography!(
          +    progn::PrognosticVariables,
          +    model::PrimitiveEquation
          +)
          +

          Initialize surface pressure on orography by integrating the hydrostatic equation with the reference temperature lapse rate.

          source
          SpeedyWeather.readable_secsMethod
          readable_secs(secs::Real) -> Dates.CompoundPeriod
          +

          Returns Dates.CompoundPeriod rounding to either (days, hours), (hours, minutes), (minutes, seconds), or seconds with 1 decimal place accuracy for >10s and two for less. E.g.

          julia> readable_secs(12345)
          +3 hours, 26 minutes
          source
          SpeedyWeather.remaining_timeMethod
          remaining_time(p::ProgressMeter.Progress) -> String
          +

          Estimates the remaining time from a ProgresssMeter.Progress. Adapted from ProgressMeter.jl

          source
          SpeedyWeather.reset_column!Method
          reset_column!(column::ColumnVariables{NF})
          +

          Set the accumulators (tendencies but also vertical sums and similar) back to zero for column to be reused at other grid points.

          source
          SpeedyWeather.run!Method
          run!(
          +    simulation::SpeedyWeather.Simulation;
          +    initialize,
          +    n_days,
          +    startdate,
          +    output
          +) -> PrognosticVariables
          +

          Run a SpeedyWeather.jl simulation. The simulation.model is assumed to be initialized, otherwise use initialize=true as keyword argument.

          source
          SpeedyWeather.saturation_humidity!Method
          saturation_humidity!(
          +    column::ColumnVariables,
          +    thermodynamics::SpeedyWeather.Thermodynamics
          +)
          +

          Compute (1) the saturation vapour pressure as a function of temperature using the August-Roche-Magnus formula,

          eᵢ(T) = e₀ * exp(Cᵢ * (T - T₀) / (T - Tᵢ)),

          where T is in Kelvin and i = 1,2 for saturation with respect to water and ice, respectively. And (2) the saturation specific humidity according to the formula,

          0.622 * e / (p - (1 - 0.622) * e),

          where e is the saturation vapour pressure, p is the pressure, and 0.622 is the ratio of the molecular weight of water to dry air.

          source
          SpeedyWeather.scale!Method
          scale!(progn::PrognosticVariables, scale::Real) -> Real
          +

          Scales the prognostic variables vorticity and divergence with the Earth's radius which is used in the dynamical core.

          source
          SpeedyWeather.scale!Method
          scale!(
          +    progn::PrognosticVariables{NF},
          +    var::Symbol,
          +    scale::Real
          +)
          +

          Scale the variable var inside progn with scalar scale.

          source
          SpeedyWeather.set_pressure!Function
          set_pressure!(progn::PrognosticVariables{NF}, 
          +              pressure::AbstractGrid, 
          +              lf::Integer=1) where NF

          Sets the prognostic variable with the surface pressure in grid space at leapfrog index lf.

          source
          SpeedyWeather.set_pressure!Function
          set_pressure!(progn::PrognosticVariables{NF}, 
          +              pressure::AbstractMatrix, 
          +              Grid::Type{<:AbstractGrid}, 
          +              lf::Integer=1) where NF

          Sets the prognostic variable with the surface pressure in grid space at leapfrog index lf.

          source
          SpeedyWeather.set_pressure!Method
          set_pressure!(progn::PrognosticVariables{NF}, 
          +              pressure::AbstractGrid, 
          +              M::ModelSetup;
          +              lf::Integer=1) where NF

          Sets the prognostic variable with the surface pressure in grid space at leapfrog index lf.

          source
          SpeedyWeather.set_pressure!Method
          set_pressure!(progn::PrognosticVariables{NF}, 
          +              pressure::LowerTriangularMatrix;
          +              lf::Integer=1) where NF

          Sets the prognostic variable with the surface pressure in spectral space at leapfrog index lf.

          source
          SpeedyWeather.set_var!Method
          function set_var!(progn::PrognosticVariables{NF}, 
          +                  varname::Symbol, 
          +                  s::Number;
          +                  lf::Integer=1) where NF

          Sets all values of prognostic variable varname at leapfrog index lf to the scalar s.

          source
          SpeedyWeather.set_var!Method
          set_var!(progn::PrognosticVariables{NF}, 
          +         varname::Symbol, 
          +         var::Vector{<:AbstractMatrix}, 
          +         Grid::Type{<:AbstractGrid}=FullGaussianGrid;
          +         lf::Integer=1) where NF

          Sets the prognostic variable with the name varname in all layers at leapfrog index lf with values given in var a vector with all information for all layers in grid space.

          source
          SpeedyWeather.set_var!Method
          set_var!(progn::PrognosticVariables{NF},        
          +         varname::Symbol, 
          +         var::Vector{<:LowerTriangularMatrix};
          +         lf::Integer=1) where NF

          Sets the prognostic variable with the name varname in all layers at leapfrog index lf with values given in var a vector with all information for all layers in spectral space.

          source
          SpeedyWeather.set_var!Method
          set_var!(progn::PrognosticVariables{NF}, 
          +         varname::Symbol, 
          +         var::Vector{<:AbstractGrid}, 
          +         M::ModelSetup;
          +         lf::Integer=1) where NF

          Sets the prognostic variable with the name varname in all layers at leapfrog index lf with values given in var a vector with all information for all layers in grid space.

          source
          SpeedyWeather.set_var!Method
          set_var!(progn::PrognosticVariables{NF},        
          +         varname::Symbol, 
          +         var::Vector{<:AbstractGrid};
          +         lf::Integer=1) where NF

          Sets the prognostic variable with the name varname in all layers at leapfrog index lf with values given in var a vector with all information for all layers in grid space.

          source
          SpeedyWeather.speedstringMethod
          speedstring(sec_per_iter, dt_in_sec) -> String
          +

          define a ProgressMeter.speedstring method that also takes a time step dt_in_sec to translate sec/iteration to days/days-like speeds.

          source
          SpeedyWeather.surface_pressure_tendency!Method
          surface_pressure_tendency!( Prog::PrognosticVariables,
          +                            Diag::DiagnosticVariables,
          +                            lf::Int,
          +                            M::PrimitiveEquation)

          Computes the tendency of the logarithm of surface pressure as

          -(ū*px + v̄*py) - D̄

          with ū,v̄ being the vertically averaged velocities; px, py the gradients of the logarithm of surface pressure ln(p_s) and D̄ the vertically averaged divergence.

          1. Calculate ∇ln(p_s) in spectral space, convert to grid.
          2. Multiply ū,v̄ with ∇ln(p_s) in grid-point space, convert to spectral.
          3. D̄ is subtracted in spectral space.
          4. Set tendency of the l=m=0 mode to 0 for better mass conservation.
          source
          SpeedyWeather.temperature_average!Method
          temperature_average!(
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
          +    temp::LowerTriangularMatrix,
          +    S::SpectralTransform
          +) -> Any
          +

          Calculates the average temperature of a layer from the l=m=0 harmonic and stores the result in diagn.temp_average

          source
          SpeedyWeather.temperature_relaxation!Method
          temperature_relaxation!(
          +    column::ColumnVariables,
          +    scheme::JablonowskiRelaxation
          +)
          +

          Apply HeldSuarez-like temperature relaxation to the Jablonowski and Williamson vertical profile.

          source
          SpeedyWeather.temperature_tendency!Method
          temperature_tendency!(
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
          +    C::DynamicsConstants,
          +    G::Geometry,
          +    S::SpectralTransform,
          +    I::SpeedyWeather.ImplicitPrimitiveEq
          +)
          +

          Compute the temperature tendency

          ∂T/∂t += -∇⋅((u,v)*T') + T'D + κTᵥ*Dlnp/Dt

          += because the tendencies already contain parameterizations and vertical advection. T' is the anomaly with respect to the reference/average temperature. Tᵥ is the virtual temperature used in the adiabatic term κTᵥ*Dlnp/Dt.

          source
          SpeedyWeather.time_stepping!Method
          time_stepping!(
          +    progn::PrognosticVariables,
          +    diagn::DiagnosticVariables,
          +    model::SpeedyWeather.ModelSetup
          +) -> PrognosticVariables
          +

          Main time loop that that initializes output and feedback, loops over all time steps and calls the output and feedback functions.

          source
          SpeedyWeather.timestep!Function
          timestep!(
          +    progn::PrognosticVariables,
          +    diagn::DiagnosticVariables,
          +    dt::Real,
          +    i::Integer,
          +    model::Barotropic
          +)
          +timestep!(
          +    progn::PrognosticVariables,
          +    diagn::DiagnosticVariables,
          +    dt::Real,
          +    i::Integer,
          +    model::Barotropic,
          +    lf1::Int64
          +)
          +timestep!(
          +    progn::PrognosticVariables,
          +    diagn::DiagnosticVariables,
          +    dt::Real,
          +    i::Integer,
          +    model::Barotropic,
          +    lf1::Int64,
          +    lf2::Int64
          +)
          +

          Calculate a single time step for the model <: Barotropic.

          source
          SpeedyWeather.timestep!Method
          timestep!(
          +    progn::PrognosticVariables{NF<:AbstractFloat},
          +    diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},
          +    dt::Real,
          +    i::Integer,
          +    model::PrimitiveEquation
          +) -> Any
          +timestep!(
          +    progn::PrognosticVariables{NF<:AbstractFloat},
          +    diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},
          +    dt::Real,
          +    i::Integer,
          +    model::PrimitiveEquation,
          +    lf1::Int64
          +) -> Any
          +timestep!(
          +    progn::PrognosticVariables{NF<:AbstractFloat},
          +    diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},
          +    dt::Real,
          +    i::Integer,
          +    model::PrimitiveEquation,
          +    lf1::Int64,
          +    lf2::Int64
          +) -> Any
          +

          Calculate a single time step for the model<:PrimitiveEquation

          source
          SpeedyWeather.timestep!Method
          timestep!(
          +    progn::PrognosticVariables{NF<:AbstractFloat},
          +    diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},
          +    dt::Real,
          +    i::Integer,
          +    model::ShallowWater
          +) -> Union{Nothing, SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat}
          +timestep!(
          +    progn::PrognosticVariables{NF<:AbstractFloat},
          +    diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},
          +    dt::Real,
          +    i::Integer,
          +    model::ShallowWater,
          +    lf1::Int64
          +) -> Union{Nothing, SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat}
          +timestep!(
          +    progn::PrognosticVariables{NF<:AbstractFloat},
          +    diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},
          +    dt::Real,
          +    i::Integer,
          +    model::ShallowWater,
          +    lf1::Int64,
          +    lf2::Int64
          +) -> Union{Nothing, SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat}
          +

          Calculate a single time step for the model <: ShallowWater.

          source
          SpeedyWeather.unscale!Method
          unscale!(variable::AbstractArray, scale::Real) -> Any
          +

          Undo the radius-scaling for any variable. Method used for netcdf output.

          source
          SpeedyWeather.unscale!Method
          unscale!(progn::PrognosticVariables) -> Int64
          +

          Undo the radius-scaling of vorticity and divergence from scale!(progn,scale::Real).

          source
          SpeedyWeather.vertical_integration!Method
          vertical_integration!(Diag::DiagnosticVariables,G::Geometry)

          Calculates the vertically averaged (weighted by the thickness of the σ level) velocities (*coslat) and divergence. E.g.

          u_mean = ∑_k=1^nlev Δσ_k * u_k

          u,v are averaged in grid-point space, divergence in spectral space.

          source
          SpeedyWeather.virtual_temperature!Method
          virtual_temperature!(
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
          +    temp::LowerTriangularMatrix,
          +    constants::DynamicsConstants
          +)
          +

          Calculates the virtual temperature Tᵥ as

          Tᵥ = T(1+μq)

          With absolute temperature T, specific humidity q and

          μ = (1-ξ)/ξ, ξ = R_dry/R_vapour.

          in grid-point space.

          source
          SpeedyWeather.virtual_temperature!Method
          virtual_temperature!(
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
          +    temp::LowerTriangularMatrix,
          +    model::PrimitiveDry
          +) -> SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat
          +

          Virtual temperature in grid-point space: For the PrimitiveDry temperature and virtual temperature are the same (humidity=0). Just copy over the arrays.

          source
          SpeedyWeather.volume_flux_divergence!Method
          volume_flux_divergence!(
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
          +    surface::SpeedyWeather.SurfaceVariables,
          +    orog::SpeedyWeather.AbstractOrography,
          +    constants::DynamicsConstants,
          +    G::Geometry,
          +    S::SpectralTransform
          +)
          +

          Computes the (negative) divergence of the volume fluxes uh,vh for the continuity equation, -∇⋅(uh,vh).

          source
          SpeedyWeather.vordiv_tendencies!Method
          vordiv_tendencies!(
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
          +    surf::SpeedyWeather.SurfaceVariables,
          +    C::DynamicsConstants,
          +    G::Geometry,
          +    S::SpectralTransform
          +)
          +

          Tendencies for vorticity and divergence. Excluding Bernoulli potential with geopotential and linear pressure gradient inside the Laplace operator, which are added later in spectral space.

          u_tend +=  v*(f+ζ) - RTᵥ'*∇lnp_x
          +v_tend += -u*(f+ζ) - RTᵥ'*∇lnp_y

          += because the tendencies already contain the parameterizations and vertical advection. f is coriolis, ζ relative vorticity, R the gas constant Tᵥ' the virtual temperature anomaly, ∇lnp the gradient of surface pressure and _x and _y its zonal/meridional components. The tendencies are then curled/dived to get the tendencies for vorticity/divergence in spectral space

          ∂ζ/∂t = ∇×(u_tend,v_tend)
          +∂D/∂t = ∇⋅(u_tend,v_tend) + ...

          + ... because there's more terms added later for divergence.

          source
          SpeedyWeather.vordiv_tendencies!Method
          vordiv_tendencies!(
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
          +    surf::SpeedyWeather.SurfaceVariables,
          +    model::PrimitiveEquation
          +)
          +

          Function barrier to unpack model.

          source
          SpeedyWeather.vorticity_flux!Method
          vorticity_flux!(
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
          +    model::Barotropic
          +)
          +

          Vorticity flux tendency in the barotropic vorticity equation

          ∂ζ/∂t = ∇×(u_tend,v_tend)

          with

          u_tend = Fᵤ + v*(ζ+f) v_tend = Fᵥ - u*(ζ+f)

          with Fᵤ,Fᵥ the forcing from forcing! already in u_tend_grid/v_tend_grid and vorticity ζ, coriolis f.

          source
          SpeedyWeather.vorticity_flux!Method
          vorticity_flux!(
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
          +    model::ShallowWater
          +)
          +

          Vorticity flux tendency in the shallow water equations

          ∂ζ/∂t = ∇×(u_tend,v_tend) ∂D/∂t = ∇⋅(u_tend,v_tend)

          with

          u_tend = Fᵤ + v*(ζ+f) v_tend = Fᵥ - u*(ζ+f)

          with Fᵤ,Fᵥ the forcing from forcing! already in u_tend_grid/v_tend_grid and vorticity ζ, coriolis f.

          source
          SpeedyWeather.vorticity_flux_curldiv!Method
          vorticity_flux_curldiv!(
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
          +    C::DynamicsConstants,
          +    G::Geometry,
          +    S::SpectralTransform;
          +    div
          +)
          +

          Compute the vorticity advection as the curl/div of the vorticity fluxes

          ∂ζ/∂t = ∇×(u_tend,v_tend) ∂D/∂t = ∇⋅(u_tend,v_tend)

          with

          u_tend = Fᵤ + v*(ζ+f) v_tend = Fᵥ - u*(ζ+f)

          with Fᵤ,Fᵥ from u_tend_grid/v_tend_grid that are assumed to be alread set in forcing!. Set div=false for the BarotropicModel which doesn't require the divergence tendency.

          source
          SpeedyWeather.workgroup_sizeMethod
          workgroup_size(dev::AbstractDevice)

          Returns a workgroup size depending on dev. WIP: Will be expanded in the future to also include grid information.

          source
          SpeedyWeather.write_column_tendencies!Method
          write_column_tendencies!(
          +    D::DiagnosticVariables,
          +    C::ColumnVariables,
          +    ij::Int64
          +)
          +

          Write the parametrization tendencies from C::ColumnVariables into the horizontal fields of tendencies stored in D::DiagnosticVariables at gridpoint index ij.

          source
          SpeedyWeather.write_netcdf_time!Method
          write_netcdf_time!(
          +    output::OutputWriter,
          +    time::Dates.DateTime
          +)
          +

          Write the current time time::DateTime to the netCDF file in output::OutputWriter.

          source
          SpeedyWeather.write_netcdf_variables!Method
          write_netcdf_variables!(
          +    output::OutputWriter,
          +    diagn::DiagnosticVariables{NF, Grid, Model}
          +)
          +

          Write diagnostic variables from diagn to the netCDF file in output::OutputWriter.

          source
          SpeedyWeather.write_output!Method
          write_output!(
          +    outputter::OutputWriter,
          +    time::Dates.DateTime,
          +    diagn::DiagnosticVariables
          +)
          +

          Writes the variables from diagn of time step i at time time into outputter.netcdf_file. Simply escapes for no netcdf output of if output shouldn't be written on this time step. Interpolates onto output grid and resolution as specified in outputter, converts to output number format, truncates the mantissa for higher compression and applies lossless compression.

          source
          SpeedyWeather.write_restart_fileMethod
          write_restart_file(
          +    progn::PrognosticVariables,
          +    output::OutputWriter
          +) -> Union{Nothing, String}
          +

          A restart file restart.jld2 with the prognostic variables is written to the output folder (or current path) that can be used to restart the model. restart.jld2 will then be used as initial conditions. The prognostic variables are bitrounded for compression and the 2nd leapfrog time step is discarded. Variables in restart file are unscaled.

          source
          diff --git a/previews/PR360/grids/index.html b/previews/PR360/grids/index.html new file mode 100644 index 000000000..f811ee906 --- /dev/null +++ b/previews/PR360/grids/index.html @@ -0,0 +1,7 @@ + +Grids · SpeedyWeather.jl

          Grids

          The spectral transform (the Spherical Harmonic Transform) in SpeedyWeather.jl supports any ring-based equi-longitude grid. Several grids are already implemented but other can be added. The following pages will describe an overview of these grids and but let's start but how they can be used

          julia> spectral_grid = SpectralGrid(Grid = FullGaussianGrid)
          +SpectralGrid:
          + Spectral:   T31 LowerTriangularMatrix{Complex{Float32}}, radius = 6.371e6 m
          + Grid:       4608-element, 48-ring FullGaussianGrid{Float32} (quadratic)
          + Resolution: 333km (average)
          + Vertical:   8-level SigmaCoordinates

          The life of every SpeedyWeather.jl simulation starts with a SpectralGrid object which defines the resolution in spectral and in grid-point space. The generator SpectralGrid() can take as a keyword argument Grid which can be any of the grids described below. The resolution of the grid, however, is not directly chosen, but determined from the spectral resolution trunc and the dealiasing factor. More in Matching spectral and grid resolution.

          RingGrids is a module too!

          While RingGrids is the underlying module that SpeedyWeather.jl uses for data structs on the sphere, the module can also be used independently of SpeedyWeather, for example to interpolate between data on different grids. See RingGrids

          Ring-based equi-longitude grids

          SpeedyWeather.jl's spectral transform supports all ring-based equi-longitude grids. These grids have their grid points located on rings with constant latitude and on these rings the points are equi-spaced in longitude. There is technically no constrain on the spacing of the latitude rings, but the Legendre transform requires a quadrature to map those to spectral space and back. Common choices for latitudes are the Gaussian latitudes which use the Gaussian quadrature, or equi-angle latitudes (i.e. just regular latitudes but excluding the poles) that use the Clenshaw-Curtis quadrature. The longitudes have to be equi-spaced on every ring, which is necessary for the fast Fourier transform, as one would otherwise need to use a non-uniform Fourier transform. In SpeedyWeather.jl the first grid point on any ring can have a longitudinal offset though, for example by spacing 4 points around the globe at 45˚E, 135˚E, 225˚E, and 315˚E. In this case the offset is 45˚E as the first point is not at 0˚E.

          Is the FullClenshawGrid a longitude-latitude grid?

          Short answer: Yes. The FullClenshawGrid is a specific longitude-latitude grid with equi-angle spacing. The most common grids for geoscientific data use regular spacings for 0-360˚E in longitude and 90˚N-90˚S. The FullClenshawGrid does that too, but it does not have a point on the North or South pole, and the central latitude ring sits exactly on the Equator. We name it Clenshaw following the Clenshaw-Curtis quadrature that is used in the Legendre transfrom in the same way as Gaussian refers to the Gaussian quadrature.

          Implemented grids

          All grids in SpeedyWeather.jl are a subtype of AbstractGrid, i.e. <: AbstractGrid. We further distinguish between full, and reduced grids. Full grids have the same number of longitude points on every latitude ring (i.e. points converge towards the poles) and reduced grids reduce the number of points towards the poles to have them more evenly spread out across the globe. More evenly does not necessarily mean that a grid is equal-area, meaning that every grid cell covers exactly the same area (although the shape changes).

          Currently the following full grids <: AbstractFullGrid are implemented

          • FullGaussianGrid, a full grid with Gaussian latitudes
          • FullClenshawGrid, a full grid with equi-angle latitudes

          and additionally we have FullHEALPixGrid and FullOctaHEALPixGrid which are the full grid equivalents to the HEALPix grid and the OctaHEALPix grid discussed below. Full grid equivalent means that they have the same latitude rings, but no reduction in the number of points per ring towards the poles and no longitude offset. Other implemented reduced grids are

          • OctahedralGaussianGrid, a reduced grid with Gaussian latitudes based on an octahedron
          • OctahedralClenshawGrid, similar but based on equi-angle latitudes
          • HEALPixGrid, an equal-area grid based on a dodecahedron with 12 faces
          • OctaHEALPixGrid, an equal-area grid from the class of HEALPix grids but based on an octahedron.

          An overview of these grids is visualised here

          Overview of implemented grids in SpeedyWeather.jl

          Visualised are each grid's grid points (white dots) and grid faces (white lines). All grids shown have 16 latitude rings on one hemisphere, Equator included. The total number of grid points is denoted in the top left of every subplot. The sphere is shaded with grey, orange and turquoise regions to denote the hemispheres in a and b, the 8 octahedral faces c, d,f and the 12 dodecahedral faces (or base pixels) in e. Coastlines are added for orientation.

          Grid resolution

          All grids use the same resolution parameter nlat_half, i.e. the number of rings on one hemisphere, Equator included. The Gaussian grids (full and reduced) do not have a ring on the equator, so their total number of rings nlat is always even and twice nlat_half. Clenshaw-Curtis grids and the HEALPix grids have a ring on the equator such their total number of rings is always odd and one less than the Gaussian grids at the same nlat_half.

          HEALPix grids do not use Nside as resolution parameter

          The original formulation for HEALPix grids use $N_{side}$, the number of grid points along the edges of each basepixel (8 in the figure above), SpeedyWeather.jl uses nlat_half, the number of rings on one hemisphere, Equator included, for all grids. This is done for consistency across grids. We may use $N_{side}$ for the documentation or within functions though.

          Related: Effective grid resolution and Available horizontal resolutions.

          Matching spectral and grid resolution

          A given spectral resolution can be matched to a variety of grid resolutions. A cubic grid, for example, combines a spectral truncation $T$ with a grid resolution $N$ (=nlat_half) such that $T + 1 = N$. Using T31 and an O32 is therefore often abbreviated as Tco31 meaning that the spherical harmonics are truncated at $l_{max}=31$ in combination with N=32, i.e. 64 latitude rings in total on an octahedral Gaussian grid. In SpeedyWeather.jl the choice of the order of truncation is controlled with the dealiasing parameter in the SpectralGrid construction.

          Let J be the total number of rings. Then we have

          • $T \approx J$ for linear truncation, i.e. dealiasing = 1
          • $\frac{3}{2}T \approx J$ for quadratic truncation, i.e. dealiasing = 2
          • $2T \approx J$ for cubic truncation, , i.e. dealiasing = 3

          and in general $\frac{m+1}{2}T \approx J$ for m-th order truncation. So the higher the truncation order the more grid points are used in combination with the same spectral resolution. A higher truncation order therefore makes all grid-point calculations more expensive, but can represent products of terms on the grid (which will have higher wavenumber components) to a higher accuracy as more grid points are available within a given wavelength. Using a sufficiently high truncation is therefore one way to avoid aliasing. A quick overview of how the grid resolution changes when dealiasing is passed onto SpectralGrid on the FullGaussianGrid

          truncdealiasingFullGaussianGrid size
          31164x32
          31296x48
          313128x64
          42196x48
          422128x64
          423192x96
          .........

          You will obtain this information every time you create a SpectralGrid(;Grid,trunc,dealiasing).

          Full Gaussian grid

          ...

          Full Clenshaw-Curtis grid

          ...

          Octahedral Gaussian grid

          ...

          HEALPix grid

          Technically, HEALPix grids are a class of grids that tessalate the sphere into faces that are often called basepixels. For each member of this class there are $N_\varphi$ basepixels in zonal direction and $N_\theta$ basepixels in meridional direction. For $N_\varphi = 4$ and $N_\theta = 3$ we obtain the classical HEALPix grid with $N_\varphi N_\theta = 12$ basepixels shown above in Implemented grids. Each basepixel has a quadratic number of grid points in them. There's an equatorial zone where the number of zonal grid points is constant (always $2N$, so 32 at $N=16$) and there are polar caps above and below the equatorial zone with the border at $\cos(\theta) = 2/3$ ($\theta$ in colatitudes).

          Following Górski, 2004[1], the $z=cos(\theta)$ colatitude of the $j$-th ring in the north polar cap, $j=1,...,N_{side}$ with $2N_{side} = N$ is

          \[z = 1 - \frac{j^2}{3N_{side}^2}\]

          and on that ring, the longitude $\phi$ of the $i$-th point ($i$ is the in-ring-index) is at

          \[\phi = \frac{\pi}{2j}(i-\tfrac{1}{2})\]

          The in-ring index $i$ goes from $i=1,...,4$ for the first (i.e. northern-most) ring, $i=1,...,8$ for the second ring and $i = 1,...,4j$ for the $j$-th ring in the northern polar cap.

          In the north equatorial belt $j=N_{side},...,2N_{side}$ this changes to

          \[z = \frac{4}{3} - \frac{2j}{3N_{side}}\]

          and the longitudes change to ($i$ is always $i = 1,...,4N_{side}$ in the equatorial belt meaning the number of longitude points is constant here)

          \[\phi = \frac{\pi}{2N_{side}}(i - \frac{s}{2}), \quad s = (j - N_{side} + 1) \mod 2\]

          The modulo function comes in as there is an alternating longitudinal offset from the prime meridian (see Implemented grids). For the southern hemisphere the grid point locations can be obtained by mirror symmetry.

          Grid cell boundaries

          The cell boundaries are obtained by setting $i = k + 1/2$ or $i = k + 1/2 + j$ (half indices) into the equations above, such that $z(\phi,k)$, a function for the cosine of colatitude $z$ of index $k$ and the longitude $\phi$ is obtained. These are then (northern polar cap)

          \[z = 1 - \frac{k^2}{3N_{side}^2}\left(\frac{\pi}{2\phi_t}\right)^2, \quad z = 1 - \frac{k^2}{3N_{side}^2}\left(\frac{\pi}{2\phi_t - \pi}\right)^2\]

          with $\phi_t = \phi \mod \tfrac{\pi}{2}$ and in the equatorial belt

          \[z = \frac{2}{3}-\frac{4k}{3N_{side}} \pm \frac{8\phi}{3\pi}\]

          OctaHEALPix grid

          While the classic HEALPix grid is based on a dodecahedron, other choices for $N_\varphi$ and $N_\theta$ in the class of HEALPix grids will change the number of faces there are in zonal/meridional direction. With $N_\varphi = 4$ and $N_\theta = 1$ we obtain a HEALPix grid that is based on an octahedron, which has the convenient property that there are twice as many longitude points around the equator than there are latitude rings between the poles. This is a desirable for truncation as this matches the distances too, $2\pi$ around the Equator versus $\pi$ between the poles. $N_\varphi = 6, N_\theta = 2$ or $N_\varphi = 8, N_\theta = 3$ are other possible choices for this, but also more complicated. See Górski, 2004[1] for further examples and visualizations of these grids.

          We call the $N_\varphi = 4, N_\theta = 1$ HEALPix grid the OctaHEALPix grid, which combines the equal-area property of the HEALPix grids with the octahedron that's also used in the OctahedralGaussianGrid or the OctahedralClenshawGrid. As $N_\theta = 1$ there is no equatorial belt which simplifies the grid. The latitude of the $j$-th isolatitude ring on the OctaHEALPixGrid is defined by

          \[z = 1 - \frac{j^2}{N^2},\]

          with $j=1,...,N$, and similarly for the southern hemisphere by symmetry. On this grid $N_{side} = N$ where $N$= nlat_half, the number of latitude rings on one hemisphere, Equator included, because each of the 4 basepixels spans from pole to pole and covers a quarter of the sphere. The longitudes with in-ring- index $i = 1,...,4j$ are

          \[\phi = \frac{\pi}{2j}(i - \tfrac{1}{2})\]

          and again, the southern hemisphere grid points are obtained by symmetry.

          Grid cell boundaries

          Similar to the grid cell boundaries for the HEALPix grid, the OctaHEALPix grid's boundaries are

          \[z = 1 - \frac{k^2}{N^2}\left(\frac{\pi}{2\phi_t}\right)^2, \quad z = 1 - \frac{k^2}{N^2}\left(\frac{\pi}{2\phi_t - \pi}\right)^2\]

          The $3N_{side}^2$ in the denominator of the HEALPix grid came simply $N^2$ for the OctaHEALPix grid and there's no separate equation for the equatorial belt (which doesn't exist in the OctaHEALPix grid).

          References

          • 1Górski, Hivon, Banday, Wandelt, Hansen, Reinecke, Bartelmann, 2004. HEALPix: A FRAMEWORK FOR HIGH-RESOLUTION DISCRETIZATION AND FAST ANALYSIS OF DATA DISTRIBUTED ON THE SPHERE, The Astrophysical Journal. doi:10.1086/427976
          diff --git a/previews/PR360/how_to_run_speedy/index.html b/previews/PR360/how_to_run_speedy/index.html new file mode 100644 index 000000000..dcecc5b18 --- /dev/null +++ b/previews/PR360/how_to_run_speedy/index.html @@ -0,0 +1,57 @@ + +How to run SpeedyWeather.jl · SpeedyWeather.jl

          How to run SpeedyWeather.jl

          Creating a SpeedyWeather.jl simulation and running it consists conceptually of 4 steps

          1. Create a SpectralGrid which defines the grid and spectral resolution
          2. Create a model
          3. Initialize a model to obtain a Simulation.
          4. Run the simulation.

          In the following we will describe these steps in more detail, but let's start with some examples first.

          Example 1: 2D turbulence on a non-rotating sphere

          We want to use the barotropic model to simulate some free-decaying 2D turbulence on the sphere without rotation. We start by defining the SpectralGrid object. To have a resolution of about 100km, we choose a spectral resolution of T127 (see Available horizontal resolutions) and nlev=1 vertical levels. The SpectralGrid object will provide us with some more information

          julia> spectral_grid = SpectralGrid(trunc=127,nlev=1)
          +SpectralGrid:
          + Spectral:   T127 LowerTriangularMatrix{Complex{Float32}}, radius = 6.371e6 m
          + Grid:       40320-element, 192-ring OctahedralGaussianGrid{Float32} (quadratic)
          + Resolution: 112km (average)
          + Vertical:   1-level SigmaCoordinates

          We could have specified further options, but let's ignore that for now. Next step we create a planet that's like Earth but not rotating

          julia> still_earth = Earth(rotation=0)
          +Main.SpeedyWeather.Earth
          +  rotation: Float64 0.0
          +  gravity: Float64 9.81
          +  daily_cycle: Bool true
          +  length_of_day: Float64 24.0
          +  seasonal_cycle: Bool true
          +  length_of_year: Float64 365.25
          +  equinox: Dates.DateTime
          +  axial_tilt: Float64 23.4

          There are other options to create a planet but they are irrelevant for the barotropic vorticity equations. We also want to specify the initial conditions, randomly distributed vorticity is already defined

          julia> initial_conditions = StartWithRandomVorticity()
          +StartWithRandomVorticity
          +  power_law: Float64 -3.0
          +  amplitude: Float64 1.0e-5

          By default, the power of vorticity is spectrally distributed with $k^{-3}$, $k$ being the horizontal wavenumber, and the amplitude is $10^{-5}\text{ s}^{-1}$.

          Now we want to construct a BarotropicModel with these

          julia> model = BarotropicModel(;spectral_grid, initial_conditions, planet=still_earth);

          The model contains all the parameters, but isn't initialized yet, which we can do with and then run it.

          julia> simulation = initialize!(model);
          +julia> run!(simulation,n_days=30)

          The run! command will always return the prognostic variables, which, by default, are plotted for surface relative vorticity with a unicode plot. The resolution of the plot is not necessarily representative but it lets us have a quick look at the result

          Barotropic vorticity unicode plot

          Woohoo! I can see turbulence! You could pick up where this simulation stopped by simply doing run!(simulation,n_days=50) again. We didn't store any output, which you can do by run!(simulation,output=true), which will switch on NetCDF output with default settings. More options on output in NetCDF output.

          Example 2: Shallow water with mountains

          As a second example, let's investigate the Galewsky et al.[1] test case for the shallow water equations with and without mountains. As the shallow water system has also only one level, we can reuse the SpectralGrid from Example 1.

          julia> spectral_grid = SpectralGrid(trunc=127,nlev=1)

          Now as a first simulation, we want to disable any orography, so we create a NoOrography

          julia> orography = NoOrography(spectral_grid)
          +NoOrography{Float32, OctahedralGaussianGrid{Float32}}

          Although the orography is zero, you have to pass on spectral_grid so that it can still initialize zero-arrays of the right size and element type. Awesome. This time the initial conditions should be set the the Galewsky et al.[1] zonal jet, which is already defined as

          julia> initial_conditions = ZonalJet()
          +ZonalJet
          +  latitude: Float64 45.0
          +  width: Float64 19.28571428571429
          +  umax: Float64 80.0
          +  perturb_lat: Float64 45.0
          +  perturb_lon: Float64 270.0
          +  perturb_xwidth: Float64 19.098593171027442
          +  perturb_ywidth: Float64 3.819718634205488
          +  perturb_height: Float64 120.0

          The jet sits at 45˚N with a maximum velocity of 80m/s and a perturbation as described in their paper. Now we construct a model, but this time a ShallowWaterModel

          julia> model = ShallowWaterModel(;spectral_grid, orography, initial_conditions);
          +julia> simulation = initialize!(model);

          Galewsky jet unicode plot

          Oh yeah. That looks like the wobbly jet in their paper. Let's run it again for another 6 days but this time also store NetCDF output.

          julia> run!(simulation,n_days=6,output=true)
          +Weather is speedy: run 0002 100%|███████████████████████| Time: 0:00:12 (115.37 years/day)

          The progress bar tells us that the simulation run got the identification "0002", meaning that data is stored in the folder /run_0002, so let's plot that data properly (and not just using UnicodePlots).

          julia> using PyPlot, NCDatasets
          +julia> ds = NCDataset("run_0002/output.nc");
          +julia> ds["vor"]
          +vor (384 × 192 × 1 × 25)
          +  Datatype:    Float32
          +  Dimensions:  lon × lat × lev × time
          +  Attributes:
          +   units                = 1/s
          +   missing_value        = NaN
          +   long_name            = relative vorticity
          +   _FillValue           = NaN

          Vorticity vor is stored as a 384x192x1x25 array, we may want to look at the first time step, which is the end of the previous simulation (time=6days) which we didn't store output for.

          julia> vor = ds["vor"][:,:,1,1];
          +julia> lat = ds["lat"][:];
          +julia> lon = ds["lon"][:];
          +julia> pcolormesh(lon,lat,vor')

          Which looks like

          Galewsky jet pyplot

          You see that the unicode plot heavily coarse-grains the simulation, well it's unicode after all! And now the last time step, that means time=12days is

          julia> vor = ds["vor"][:,:,1,25];
          +julia> pcolormesh(lon,lat,vor')

          Galewsky jet pyplot

          The jet broke up into many small eddies, but the turbulence is still confined to the northern hemisphere, cool! How this may change when we add mountains (we had NoOrography above!), say Earth's orography, you may ask? Let's try it out! We create an EarthOrography struct like so

          julia> orography = EarthOrography(spectral_grid)
          +EarthOrography{Float32, OctahedralGaussianGrid{Float32}}:
          + path::String = SpeedyWeather.jl/input_data
          + file::String = orography_F512.nc
          + scale::Float64 = 1.0
          + smoothing::Bool = true
          + smoothing_power::Float64 = 1.0
          + smoothing_strength::Float64 = 0.1
          + smoothing_truncation::Int64 = 85

          It will read the orography from file as shown, and there are some smoothing options too, but let's not change them. Same as before, create a model, initialize into a simulation, run. This time directly for 12 days so that we can compare with the last plot

          julia> model = ShallowWaterModel(;spectral_grid, orography, initial_conditions);
          +julia> simulation = initialize!(model);
          +julia> run!(simulation,n_days=12,output=true)
          +Weather is speedy: run 0003 100%|███████████████████████| Time: 0:00:35 (79.16 years/day)

          This time the run got the id "0003", but otherwise we do as before.

          Galewsky jet pyplot

          Interesting! The initial conditions have zero velocity in the southern hemisphere, but still, one can see some imprint of the orography on vorticity. You can spot the coastline of Antarctica; the Andes and Greenland are somewhat visible too. Mountains also completely changed the flow after 12 days, probably not surprising!

          SpectralGrid

          The life of every SpeedyWeather.jl simulation starts with a SpectralGrid object. We have seen some examples above, now let's look into the details

          Missing docstring.

          Missing docstring for SpectralGrid. Check Documenter's build log for details.

          References

          [1] Galewsky, Scott, Polvani, 2004. An initial-value problem for testing numerical models of the global shallow-water equations, Tellus A. DOI: 10.3402/tellusa.v56i5.14436

          diff --git a/previews/PR360/index.html b/previews/PR360/index.html new file mode 100644 index 000000000..185a7836d --- /dev/null +++ b/previews/PR360/index.html @@ -0,0 +1,2 @@ + +Home · SpeedyWeather.jl

          SpeedyWeather.jl documentation

          Welcome to the documentation for SpeedyWeather.jl a global atmospheric circulation model with simple parametrizations to represent physical processes such as clouds, precipitation and radiation.

          Overview

          SpeedyWeather.jl is a global spectral model that uses a spherical harmonic transform to simulate the general circulation of the atmosphere. The prognostic variables used are vorticity, divergence, temperature, surface pressure and specific humidity. Simple parameterizations represent various climate processes: Radiation, clouds, precipitation, surface fluxes, among others.

          SpeedyWeather.jl defines

          • BarotropicModel for the 2D barotropic vorticity equation
          • ShallowWaterModel for the 2D shallow water equations
          • PrimitiveDryModel for the 3D primitive equations without humidity
          • PrimitiveWetModel for the 3D primitive equations with humidity

          and solves these equations in spherical coordinates as described in this documentation.

          Manual outline

          See the following pages of the documentation for more details

          and the submodules

          and the original documentation by Molteni and Kucharski.

          Developers

          The development of SpeedyWeather.jl is lead by Milan Klöwer and current and past contributors include

          Any contributions are always welcome!

          Funding

          MK received funding by the European Research Council under Horizon 2020 within the ITHACA project, grant agreement number 741112 from 2021-2022. Since 2023 this project is also funded by the National Science Foundation NSF.

          diff --git a/previews/PR360/installation/index.html b/previews/PR360/installation/index.html new file mode 100644 index 000000000..a47ca543c --- /dev/null +++ b/previews/PR360/installation/index.html @@ -0,0 +1,3 @@ + +Installation · SpeedyWeather.jl

          Installation

          SpeedyWeather.jl is registered in the Julia Registry. In most cases just open the Julia REPL and type

          julia> using Pkg
          +julia> Pkg.add("SpeedyWeather")

          or, equivalently, (] opens the package manager)

          julia>] add SpeedyWeather

          which will automatically install the latest release and all necessary dependencies. If you run into any troubles please raise an issue.

          However, you may want to make use of the latest features, then install directly from the main branch with

          julia> Pkg.add(url="https://github.com/SpeedyWeather/SpeedyWeather.jl",rev="main")

          other branches than main can be similarly installed. You can also type, equivalently,

          julia>] add https://github.com/SpeedyWeather/SpeedyWeather.jl#main

          Compatibility with Julia versions

          SpeedyWeather.jl usually lives on the latest minor release and/or its predecessor. At the moment (June 2023) this means

          • Julia v1.8
          • Julia v1.9

          are supported, but we dropped the support of earlier versions.

          diff --git a/previews/PR360/lowertriangularmatrices/index.html b/previews/PR360/lowertriangularmatrices/index.html new file mode 100644 index 000000000..545d28476 --- /dev/null +++ b/previews/PR360/lowertriangularmatrices/index.html @@ -0,0 +1,60 @@ + +Submodule: LowerTriangularMatrices · SpeedyWeather.jl

          LowerTriangularMatrices

          LowerTriangularMatrices is a submodule that has been developed for SpeedyWeather.jl which is technically independent (SpeedyWeather.jl however imports it and so does SpeedyTransforms) and can also be used without running simulations. It is just not put into its own respective repository.

          This module defines LowerTriangularMatrix, a lower triangular matrix, which in contrast to LinearAlgebra.LowerTriangular does not store the entries above the diagonal. SpeedyWeather.jl uses LowerTriangularMatrix which is defined as a subtype of AbstractMatrix to store the spherical harmonic coefficients (see Spectral packing).

          Creation of LowerTriangularMatrix

          A LowerTriangularMatrix can be created using zeros,ones,rand, or randn

          julia> using SpeedyWeather.LowerTriangularMatrices
          +
          +julia> L = rand(LowerTriangularMatrix{Float32},5,5)
          +5×5 LowerTriangularMatrix{Float32}:
          + 0.912744   0.0        0.0       0.0       0.0
          + 0.0737592  0.230592   0.0       0.0       0.0
          + 0.799679   0.0765255  0.888098  0.0       0.0
          + 0.670835   0.997938   0.505276  0.492966  0.0
          + 0.949321   0.193692   0.793623  0.152817  0.357968

          or the undef initializor LowerTriangularMatrix{Float32}(undef,3,3). The element type is arbitrary though, you can use any type T too.

          Alternatively, it can be created through conversion from Matrix, which drops the upper triangle entries and sets them to zero

          julia> M = rand(Float16,3,3)
          +3×3 Matrix{Float16}:
          + 0.2222  0.694    0.3452
          + 0.2158  0.04443  0.274
          + 0.9746  0.793    0.6294
          +
          +julia> LowerTriangularMatrix(M)
          +3×3 LowerTriangularMatrix{Float16}:
          + 0.2222  0.0      0.0
          + 0.2158  0.04443  0.0
          + 0.9746  0.793    0.6294

          Indexing LowerTriangularMatrix

          LowerTriangularMatrix supports two types of indexing: 1) by denoting two indices, column and row [l,m] or 2) by denoting a single index [lm]. The double index works as expected

          julia> L
          +3×3 LowerTriangularMatrix{Float16}:
          + 0.1499  0.0    0.0
          + 0.1177  0.478  0.0
          + 0.1709  0.756  0.3223
          +
          +julia> L[2,2]
          +Float16(0.478)

          But the single index skips the zero entries in the upper triangle, i.e.

          julia> L[4]
          +Float16(0.478)

          which, important, is different from single indices of an AbstractMatrix

          julia> Matrix(L)[4]
          +Float16(0.0)

          In performance-critical code a single index should be used, as this directly maps to the index of the underlying data vector. The double index is somewhat slower as it first has to be converted to the corresponding single index.

          Consequently, many loops in SpeedyWeather.jl are build with the following structure

          n,m = size(L)
          +ij = 0
          +for j in 1:m
          +    for i in j:n
          +        ij += 1
          +        L[ij] = i+j
          +    end
          +end

          which loops over all lower triangle entries of L::LowerTriangularMatrix and the single index ij is simply counted up. However, one could also use [i,j] as indices in the loop body or to perform any calculation (i+j here). An iterator over all entries in the lower triangle can be created by

          for ij in eachindex(L)
          +    # do something
          +end

          The setindex! functionality of matrixes will throw a BoundsError when trying to write into the upper triangle of a LowerTriangularMatrix, for example

          julia> L[2,1] = 0    # valid index
          +0
          +
          +julia> L[1,2] = 0    # invalid index in the upper triangle
          +ERROR: BoundsError: attempt to access 3×3 LowerTriangularMatrix{Float32} at index [1, 2]

          Linear algebra with LowerTriangularMatrix

          The LowerTriangularMatrices module's main purpose is not linear algebra, and it's implementation may not be efficient, however, many operations work as expected

          julia> L = rand(LowerTriangularMatrix{Float32},3,3)
          +3×3 LowerTriangularMatrix{Float32}:
          + 0.57649   0.0       0.0
          + 0.348685  0.875371  0.0
          + 0.881923  0.850552  0.998306
          +
          +julia> L + L
          +3×3 LowerTriangularMatrix{Float32}:
          + 1.15298   0.0      0.0
          + 0.697371  1.75074  0.0
          + 1.76385   1.7011   1.99661
          +
          +julia> L * L
          +3×3 Matrix{Float32}:
          + 0.332341  0.0       0.0
          + 0.506243  0.766275  0.0
          + 1.68542   1.59366   0.996616

          Note, however, that the latter includes a conversion to Matrix, which is true for many operations, including inv or \. Hence when trying to do more sophisticated linear algebra with LowerTriangularMatrix we quickly leave lower triangular-land and go back to normal matrix-land.

          Function and type index

          SpeedyWeather.LowerTriangularMatrices.LowerTriangularMatrixType
          L = LowerTriangularMatrix{T}(v::Vector{T},m::Int,n::Int)

          A lower triangular matrix implementation that only stores the non-zero entries explicitly. L<:AbstractMatrix although in general we have L[i] != Matrix(L)[i], the former skips zero entries, tha latter includes them.

          source
          Base.fill!Method
          fill!(L::LowerTriangularMatrix,x)

          Fills the elements of L with x. Faster than fill!(::AbstractArray,x) as only the non-zero elements in L are assigned with x.

          source
          SpeedyWeather.LowerTriangularMatrices.eachharmonicMethod
          unit_range = eachharmonic(Ls::LowerTriangularMatrix...)

          creates unit_range::UnitRange to loop over all non-zeros in the LowerTriangularMatrices provided as arguments. Checks bounds first. All LowerTriangularMatrix's need to be of the same size. Like eachindex but skips the upper triangle with zeros in L.

          source
          SpeedyWeather.LowerTriangularMatrices.ij2kMethod
          k = ij2k(   i::Integer,     # row index of matrix
          +            j::Integer,     # column index of matrix
          +            m::Integer)     # number of rows in matrix

          Converts the index pair i,j of an mxn LowerTriangularMatrix L to a single index k that indexes the same element in the corresponding vector that stores only the lower triangle (the non-zero entries) of L.

          source
          diff --git a/previews/PR360/output/index.html b/previews/PR360/output/index.html new file mode 100644 index 000000000..e33509c50 --- /dev/null +++ b/previews/PR360/output/index.html @@ -0,0 +1,32 @@ + +NetCDF output · SpeedyWeather.jl

          NetCDF output

          SpeedyWeather.jl uses NetCDF to output the data of a simulation. The following describes the details of this and how to change the way in which the NetCDF output is written. There are many options to this available.

          Accessing the NetCDF output writer

          The output writer is a component of every Model, i.e. BarotropicModel, ShallowWaterModel, PrimitiveDryModel and PrimitiveWetModel, hence a non-default output writer can be passed on as a keyword argument to the model constructor

          julia> using SpeedyWeather
          +julia> spectral_grid = SpectralGrid()
          +julia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry)
          +julia> model = PrimitiveDryModel(;spectral_grid, output=my_output_writer)

          So after we have defined the grid through the SpectralGrid object we can use and change the implemented OutputWriter by passing on the following arguments

          julia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry, kwargs...)

          the spectral_grid has to be the first argument then the model type (Barotropic, ShallowWater, PrimitiveDry, PrimitiveWet) which helps the output writer to make default choices on which variables to output. However, we can also pass on further keyword arguments. So let's start with an example.

          Example 1: NetCDF output every hour

          If we want to increase the frequency of the output we can choose output_dt (default =6 in hours) like so

          julia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry, output_dt=1)
          +julia> model = PrimitiveDryModel(;spectral_grid, output=my_output_writer)

          which will now output every hour. It is important to pass on the new output writer my_output_writer to the model constructor, otherwise it will not be part of your model and the default is used instead. Note that output_dt has to be understood as the minimum frequency or maximum output time step. Example, we run the model at a resolution of T85 and the time step is going to be 670s

          julia> spectral_grid = SpectralGrid(trunc=85)
          +julia> time_stepper = Leapfrog(spectral_grid)
          +Leapfrog{Float32}:
          +...
          + Δt_sec::Int64 = 670
          +...

          This means that after 32 time steps 5h 57min and 20s will have passed where output will happen as the next time step would be >6h. The time axis of the NetCDF output will look like

          julia> using NCDatasets
          +julia> ds = NCDataset("run_0001/output.nc");
          +julia> ds["time"][:]
          +5-element Vector{Dates.DateTime}:
          + 2000-01-01T00:00:00
          + 2000-01-01T05:57:20
          + 2000-01-01T11:54:40
          + 2000-01-01T17:52:00
          + 2000-01-01T23:49:20
          +
          +julia> diff(ds["time"][:])
          +4-element Vector{Dates.Millisecond}:
          + 21440000 milliseconds
          + 21440000 milliseconds
          + 21440000 milliseconds
          + 21440000 milliseconds

          This is so that we don't interpolate in time during output to hit exactly every 6 hours, but at the same time have a constant spacing in time between output time steps.

          Example 2: Output onto a higher/lower resolution grid

          Say we want to run the model at a given horizontal resolution but want to output on another resolution, the OutputWriter takes as argument output_Grid<:AbstractFullGrid and nlat_half::Int. So for example output_Grid=FullClenshawGrid and nlat_half=48 will always interpolate onto a regular 192x95 longitude-latitude grid of 1.875˚ resolution, regardless the grid and resolution used for the model integration.

          julia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry, output_Grid=FullClenshawGrid, nlat_half=48)

          Note that by default the output is on the corresponding full of the grid used in the dynamical core so that interpolation only happens at most in the zonal direction as they share the location of the latitude rings. You can check this by

          julia> RingGrids.full_grid(OctahedralGaussianGrid)
          +FullGaussianGrid

          So the corresponding full grid of an OctahedralGaussianGrid is the FullGaussiangrid and the same resolution nlat_half is chosen by default in the output writer (which you can change though as shown above). Overview of the corresponding full grids

          GridCorresponding full grid
          FullGaussianGridFullGaussianGrid
          FullClenshawGridFullClenshawGrid
          OctahadralGaussianGridFullGaussianGrid
          OctahedralClensawhGridFullClenshawGrid
          HEALPixGridFullHEALPixGrid
          OctaHEALPixGridFullOctaHEALPixGrid

          The grids FullHEALPixGrid, FullOctaHEALPixGrid share the same latitude rings as their reduced grids, but have always as many longitude points as they are at most around the equator. These grids are not tested in the dynamical core (but you may use them experimentally) and mostly designed for output purposes.

          Example 3: Changing the output path or identification

          That's easy by passing on path="/my/favourite/path/" and the folder run_* with * the identification of the run (that's the id keyword, which can be manually set but is also automatically determined as a number counting up depending on which folders already exist) will be created within.

          julia> path = pwd()
          +"/Users/milan"
          +julia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry, path=path)

          This folder must already exist. If you want to give your run a name/identification you can pass on id

          julia> my_output_writer = OutputWriter(spectral_grid,PrimitiveDry,id="diffusion_test");

          which will be used instead of a 4 digit number like 0001, 0002 which is automatically determined if id is not provided. You will see the id of the run in the progress bar

          Weather is speedy: run diffusion_test 100%|███████████████████████| Time: 0:00:12 (19.20 years/day)

          and the run folder, here run_diffusion_test, is also named accordingly

          shell> ls
          +...
          +run_diffusion_test
          +...

          Further options

          Further options are described in the OutputWriter docstring, (also accessible via julia>?OutputWriter for example). Note that some fields are actual options, but others are derived from the options you provided or are arrays/objects the output writer needs, but shouldn't be passed on by the user. The actual options are declared as [OPTION] in the following

          Missing docstring.

          Missing docstring for OutputWriter. Check Documenter's build log for details.

          diff --git a/previews/PR360/parameterizations/index.html b/previews/PR360/parameterizations/index.html new file mode 100644 index 000000000..158d329f4 --- /dev/null +++ b/previews/PR360/parameterizations/index.html @@ -0,0 +1,2 @@ + +Parameterizations · SpeedyWeather.jl diff --git a/previews/PR360/primitiveequation/index.html b/previews/PR360/primitiveequation/index.html new file mode 100644 index 000000000..2409f7746 --- /dev/null +++ b/previews/PR360/primitiveequation/index.html @@ -0,0 +1,14 @@ + +Primitive equation model · SpeedyWeather.jl

          Primitive equation model

          The primitive equations are a hydrostatic approximation of the compressible Navier-Stokes equations for an ideal gas on a rotating sphere. We largely follow the idealised spectral dynamical core developed by GFDL[1] and documented therein[2].

          The primitive equations solved by SpeedyWeather.jl for relative vorticity $\zeta$, divergence $\mathcal{D}$, logarithm of surface pressure $\ln p_s$, temperature $T$ and specific humidity $q$ are

          \[\begin{aligned} +\frac{\partial \zeta}{\partial t} &= \nabla \times (\mathbf{\mathcal{P}}_\mathbf{u} ++ (f+\zeta)\mathbf{u}_\perp - W(\mathbf{u}) - R_dT_v\nabla \ln p_s) \\ +\frac{\partial \mathcal{D}}{\partial t} &= \nabla \cdot (\mathcal{P}_\mathbf{u} ++ (f+\zeta)\mathbf{u}_\perp - W(\mathbf{u}) - R_dT_v\nabla \ln p_s) - \nabla^2(\frac{1}{2}(u^2 + v^2) + \Phi) \\ +\frac{\partial \ln p_s}{\partial t} &= -\frac{1}{p_s} \nabla \cdot \int_0^{p_s} \mathbf{u}~dp \\ +\frac{\partial T}{\partial t} &= \mathcal{P}_T -\nabla\cdot(\mathbf{u}T) + T\mathcal{D} - W(T) + \kappa T_v \frac{D \ln p}{Dt} \\ +\frac{\partial q}{\partial t} &= \mathcal{P}_q -\nabla\cdot(\mathbf{u}q) + q\mathcal{D} - W(q)\\ +\end{aligned}\]

          with velocity $\mathbf{u} = (u,v)$, rotated velocity $\mathbf{u}_\perp = (v,-u)$, Coriolis parameter $f$, $W$ the vertical advection operator, dry air gas constant $R_d$, virtual temperature $T_v$, geopotential $\Phi$, pressure $p$, thermodynamic $\kappa = R\_d/c_p$ with $c_p$ the heat capacity at constant pressure. Horizontal hyper diffusion of the form $(-1)^{n+1}\nu\nabla^{2n}$ with coefficient $\nu$ and power $n$ is added for every variable that is advected, meaning $\zeta, \mathcal{D}, T, q$, but left out here for clarity, see Horizontal diffusion.

          The parameterizations for the tendencies of $u,v,T,q$ from physical processes are denoted as $\mathcal{P}_\mathbf{u} = (\mathcal{P}_u, \mathcal{P}_v), \mathcal{P}_T, \mathcal{P}_q$ and are further described in the corresponding sections, see Parameterizations.

          SpeedyWeather.jl implements a PrimitiveWet and a PrimitiveDry dynamical core. For a dry atmosphere, we have $q = 0$ and the virtual temperature $T_v = T$ equals the temperature (often called absolute to distinguish from the virtual temperature). The terms in the primitive equations and their discretizations are discussed in the following sections.

          Virtual temperature

          In short: Virtual temperature

          Virtual temperature is the temperature dry air would need to have to be as light as moist air. It is used in the dynamical core to include the effect of humidity on the density while replacing density through the ideal gas law with temperature.

          We assume the atmosphere to be composed of two ideal gases: Dry air and water vapour. Given a specific humidity $q$ both gases mix, their pressures $p_d$, $p_w$ ($d$ for dry, $w$ for water vapour), and densities $\rho_d, \rho_w$ add in a given air parcel that has temperature $T$. The ideal gas law then holds for both gases

          \[\begin{aligned} +p_d &= \rho_d R_d T \\ +p_w &= \rho_w R_w T \\ +\end{aligned}\]

          with the respective specific gas constants $R_d = R/m_d$ and $R_w = R/m_w$ obtained from the univeral gas constant $R$ divided by the molecular masses of the gas. The total pressure $p$ in the air parcel is

          \[p = p_d + p_w = (\rho_d R_d + \rho_w R_w)T\]

          We ultimately want to replace the density $\rho = \rho_w + \rho_d$ in the dynamical core, using the ideal gas law, with the temperature $T$, so that we never have to calculate the density explicitly. However, in order to not deal with two densities (dry air and water vapour) we would like to replace temperature with a virtual temperature that includes the effect of humidity on the density. So, whereever we use the ideal gas law to replace density with temperature, we would use the virtual temperature, which is a function of the absolute temperature and specific humidity, instead. A higher specific humidity in an air parcel lowers the density as water vapour is lighter than dry air. Consequently, the virtual temperature of moist air is higher than its absolute temperature because warmer air is lighter too at constant pressure. We therefore think of the virtual temperature as the temperature dry air would need to have to be as light as moist air.

          Starting with the last equation, with some manipulation we can write the ideal gas law as total density $rho$ times a gas constant times the virtual temperature that is supposed to be a function of absolute temperature, humidity and some constants

          \[p = (\rho R_d + \rho_w (R_w - R_d)) T = \rho R_d (1 + +\frac{1 - \tfrac{R_d}{R_w}}{\tfrac{R_d}{R_w}} \frac{\rho_w}{\rho_w + \rho_d})T\]

          Now we identify

          \[\mu = \frac{1 - \tfrac{R_d}{R_w}}{\tfrac{R_d}{R_w}}\]

          as some constant that is positive for water vapour being lighter than dry air ($\tfrac{R_d}{R_w} = \tfrac{m_w}{m_d} < 1$) and

          \[q = \frac{\rho_w}{\rho_w + \rho_d}\]

          as the specific humidity. Given temperature $T$ and specific humidity $q$, we can therefore calculate the virtual temperature $T_v$ as

          \[T_v = (1 + \mu q)T\]

          For completeness we want to mention here that the above product, because it is a product of two variables $q,T$ has to be computed in grid-point space, see [Spectral Transform]. To obtain an approximation to the virtual temperature in spectral space without expensive transforms one can linearize

          \[T_v = T + \mu q\bar{T}\]

          With a global constant temperature $\bar{T}$, for example obtained from the $l=m=0$ mode, $\bar{T} = T_{0,0}\frac{1}{\sqrt{4\pi}}$ but depending on the normalization of the spherical harmonics that factor needs adjustment.

          Vertical coordinates

          General

          Let $\Psi(x,y,z,t)$

          SpeedyWeather.jl currently uses sigma coordinates for the vertical.

          \[\sigma = \frac{p}{p_s}\]

          \[p_k = \sigma_kp_s\]

          \[\Delta p_k = p_{k+1} - p_k = \Delta \sigma_k p_s\]

          Geopotential

          In the hydrostatic approximation the vertical momentum equation becomes

          \[\frac{\partial p}{\partial z} = -\rho g,\]

          meaning that the (negative) vertical pressure gradient is given by the density in that layer times the gravitational acceleration. The heavier the fluid the more the pressure will increase below. Inserting the ideal gas law

          \[\frac{\partial gz}{\partial p} = -\frac{R_dT_v}{p},\]

          with the geopotential $\Phi = gz$ we can write this in terms of the logarithm of pressure

          \[\frac{\partial \Phi}{\partial \ln p} = -R_dT_v.\]

          Note that we use the Virtual temperature here as we replaced the density through the ideal gas law with temperature. Given a vertical temperature profile $T_v$ and the (constant) surface geopotential $\Phi_s = gz_s$ where $z_s$ is the orography, we can integrate this equation from the surface to the top to obtain $\Phi_k$ on every layer $k$. The surface is at $k = N+\tfrac{1}{2}$ (see Vertical coordinates) with $N$ vertical levels. We can integrate the geopotential onto half levels as

          \[\Phi_{k-\tfrac{1}{2}} = \Phi_{k+\tfrac{1}{2}} + R_dT^v_k(\ln p_{k+1/2} - \ln p_{k-1/2})\]

          Surface pressure tendency

          Vertical advection

          Pressure gradient force

          Temperature equation

          Semi-implicit time stepping

          Horizontal diffusion

          Algorithm

          Scaled primitive equations

          References

          diff --git a/previews/PR360/ringgrids/index.html b/previews/PR360/ringgrids/index.html new file mode 100644 index 000000000..bf2111c61 --- /dev/null +++ b/previews/PR360/ringgrids/index.html @@ -0,0 +1,333 @@ + +Submodule: RingGrids · SpeedyWeather.jl

          RingGrids

          RingGrids is a submodule that has been developed for SpeedyWeather.jl which is technically independent (SpeedyWeather.jl however imports it and so does SpeedyTransforms) and can also be used without running simulations. It is just not put into its own respective repository.

          RingGrids defines several iso-latitude grids, which are mathematically described in the section on Grids. In brief, they include the regular latitude-longitude grids (here called FullClenshawGrid) as well as grids which latitudes are shifted to the Gaussian latitudes and reduced grids, meaning that they have a decreasing number of longitudinal points towards the poles to be more equal-area than full grids.

          RingGrids defines and exports the following grids:

          • full grids: FullClenshawGrid, FullGaussianGrid, FullHEALPix, and FullOctaHEALPix
          • reduced grids: OctahedralGaussianGrid, OctahedralClenshawGrid, OctaHEALPixGrid and HEALPixGrid

          The following explanation of how to use these can be mostly applied to any of them, however, there are certain functions that are not defined, e.g. the full grids can be trivially converted to a Matrix (i.e. they are rectangular grids) but not the OctahedralGaussianGrid.

          What is a ring?

          We use the term ring, short for iso-latitude ring, to refer to a sequence of grid points that all share the same latitude. A latitude-longitude grid is a ring grid, as it organises its grid-points into rings. However, other grids, like the cubed-sphere are not based on iso-latitude rings. SpeedyWeather.jl only works with ring grids because its a requirement for the Spherical Harmonic Transform to be efficient. See Grids.

          Creating data on a RingGrid

          Every grid in RingGrids has a grid.data field, which is a vector containing the data on the grid. The grid points are unravelled west to east then north to south, meaning that it starts at 90˚N and 0˚E then walks eastward for 360˚ before jumping on the next latitude ring further south, this way circling around the sphere till reaching the south pole. This may also be called ring order.

          Data in a Matrix which follows this ring order can be put on a FullGaussianGrid like so

          using SpeedyWeather.RingGrids
          +map = randn(Float32,8,4)
          8×4 Matrix{Float32}:
          +  0.0520047   1.41985     -0.529034    0.892185
          + -0.530978    0.793295     2.12638     0.655403
          +  0.134581   -0.461556     0.142656   -0.0928563
          +  1.00223    -0.00937193  -0.198196   -1.41984
          +  0.53307    -1.20177      0.236307    0.568025
          + -0.033349   -0.195812    -0.969265   -0.376265
          +  2.13305     2.03202      0.0606568   0.342504
          + -0.186087   -1.58949     -0.0900659   0.622451
          grid = FullGaussianGrid(map)
          32-element, 4-ring FullGaussianGrid{Float32}:
          +  0.052004684
          + -0.5309779
          +  0.13458085
          +  1.0022306
          +  0.5330696
          + -0.033349022
          +  2.1330464
          + -0.1860869
          +  1.4198513
          +  0.7932946
          +  ⋮
          + -0.09006585
          +  0.8921848
          +  0.65540254
          + -0.092856266
          + -1.4198364
          +  0.56802505
          + -0.376265
          +  0.34250358
          +  0.622451

          A full Gaussian grid has always $2N$ x $N$ grid points, but a FullClenshawGrid has $2N$ x $N-1$, if those dimensions don't match, the creation will throw an error. To reobtain the data from a grid, you can access its data field which returns a normal Vector

          grid.data
          32-element Vector{Float32}:
          +  0.052004684
          + -0.5309779
          +  0.13458085
          +  1.0022306
          +  0.5330696
          + -0.033349022
          +  2.1330464
          + -0.1860869
          +  1.4198513
          +  0.7932946
          +  ⋮
          + -0.09006585
          +  0.8921848
          +  0.65540254
          + -0.092856266
          + -1.4198364
          +  0.56802505
          + -0.376265
          +  0.34250358
          +  0.622451

          Which can be reshaped to reobtain map from above. Alternatively you can Matrix(grid) to do this in one step

          map == Matrix(FullGaussianGrid(map))
          true

          You can also use zeros,ones,rand,randn to create a grid, whereby nlat_half, i.e. the number of latitude rings on one hemisphere, Equator included, is used as a resolution parameter and here as a second argument.

          nlat_half = 4
          +grid = randn(OctahedralGaussianGrid{Float16},nlat_half)
          208-element, 8-ring OctahedralGaussianGrid{Float16}:
          +  1.846
          +  1.012
          +  0.2214
          +  0.6733
          + -0.3623
          +  0.3933
          + -1.403
          +  1.271
          + -0.2487
          + -1.081
          +  ⋮
          + -0.1162
          + -0.9077
          + -0.4045
          + -1.031
          + -0.6226
          +  0.047
          +  0.8228
          +  1.848
          + -0.8237

          and any element type T can be used for OctahedralGaussianGrid{T} and similar for other grid types.

          Visualising RingGrid data

          As only the full grids can be reshaped into a matrix, the underlying data structure of any AbstractGrid is a vector. As shown in the examples above, one can therefore inspect the data as if it was a vector. But as that data has, through its <:AbstractGrid type, all the geometric information available to plot it on a map, RingGrids also exports plot function, based on UnicodePlots' heatmap.

          nlat_half = 24
          +grid = randn(OctahedralGaussianGrid,nlat_half)
          +plot(grid)
                             48-ring OctahedralGaussianGrid{Float64}                
          +       ┌────────────────────────────────────────────────────────────┐  3  
          +    90 ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ┌──┐
          +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄
          +       ▄▄▄▄▄▄▄▄ ▄▄
          +       ▄▄▄▄▄ ▄▄
          +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄
          +       ▄▄▄▄▄▄▄▄▄▄▄ ▄▄
          +       ▄▄ ▄▄
          +    ˚N ▄▄ ▄▄
          +       ▄▄▄▄▄▄▄ ▄▄
          +       ▄▄▄▄▄▄▄▄▄▄▄ ▄▄
          +       ▄▄▄▄▄▄▄ ▄▄
          +       ▄▄▄▄▄▄ ▄▄
          +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄
          +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄
          +   -90 ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ └──┘
          +       └────────────────────────────────────────────────────────────┘ -3  
          +        0                           ˚E                           360      

          Indexing RingGrids

          All RingGrids have a single index ij which follows the ring order. While this is obviously not super exciting here are some examples how to make better use of the information that the data sits on a grid.

          We obtain the latitudes of the rings of a grid by calling get_latd (get_lond is only defined for full grids, or use get_latdlonds for latitudes, longitudes per grid point not per ring)

          grid = randn(OctahedralClenshawGrid,5)
          +latd = get_latd(grid)
          9-element Vector{Float64}:
          +  72.0
          +  54.0
          +  36.0
          +  18.0
          +   0.0
          + -18.0
          + -36.0
          + -54.0
          + -72.0

          Now we could calculate Coriolis and add it on the grid as follows

          rotation = 7.29e-5                  # angular frequency of Earth's rotation [rad/s]
          +coriolis = 2rotation*sind.(latd)    # vector of coriolis parameters per latitude ring
          +
          +rings = eachring(grid)
          +for (j,ring) in enumerate(rings)
          +    f = coriolis[j]
          +    for ij in ring
          +        grid[ij] += f
          +    end
          +end

          eachring creates a vector of UnitRange indices, such that we can loop over the ring index j (j=1 being closest to the North pole) pull the coriolis parameter at that latitude and then loop over all in-ring indices i (changing longitudes) to do something on the grid. Something similar can be done to scale/unscale with the cosine of latitude for example. We can always loop over all grid-points like so

          for ij in eachgridpoint(grid)
          +    grid[ij]
          +end

          or use eachindex instead.

          Interpolation on RingGrids

          In most cases we will want to use RingGrids so that our data directly comes with the geometric information of where the grid-point is one the sphere. We have seen how to use get_latd, get_lond, ... for that above. This information generally can also be used to interpolate our data from grid to another or to request an interpolated value on some coordinates. Using our data on grid which is an OctahedralGaussianGrid from above we can use the interpolate function to get it onto a FullGaussianGrid (or any other grid for purpose)

          grid = randn(OctahedralGaussianGrid{Float32},4)
          208-element, 8-ring OctahedralGaussianGrid{Float32}:
          +  0.37183258
          + -1.527656
          + -0.26795366
          + -0.5973983
          + -0.75698525
          +  0.06461231
          +  1.7546288
          + -0.107781015
          + -1.1595726
          + -0.45825553
          +  ⋮
          + -0.38383147
          +  0.38422176
          + -0.37192705
          +  0.36367306
          +  0.9521286
          +  2.1885285
          +  0.081807174
          + -0.2169543
          + -0.31280652
          interpolate(FullGaussianGrid,grid)
          128-element, 8-ring FullGaussianGrid{Float64}:
          +  0.37183257937431335
          + -1.2127303779125214
          + -0.43267597258090973
          + -0.7170885056257248
          +  0.06461230665445328
          +  1.2890263199806213
          + -0.633676789700985
          + -0.6335847973823547
          +  1.3989825248718262
          + -0.313617467880249
          +  ⋮
          +  0.547592893242836
          + -0.4586203396320343
          + -0.19181816279888153
          +  0.0061473548412323
          +  0.17977303266525135
          +  0.9521285891532898
          +  1.6618481874465942
          + -0.06757356971502304
          + -0.28884346410632133

          By default this will linearly interpolate (it's an Anvil interpolator, see below) onto a grid with the same nlat_half, but we can also coarse-grain or fine-grain by specifying nlat_half directly as 2nd argument

          interpolate(FullGaussianGrid,6,grid)
          288-element, 12-ring FullGaussianGrid{Float64}:
          +  0.20485772838734867
          + -0.8718543201836895
          + -0.5159538210174621
          + -0.34237844803743933
          + -0.4906088093288413
          + -0.46983404120552996
          + -0.004117113402467454
          +  0.9538571365719155
          +  0.3008965848386158
          + -0.4791015672034492
          +  ⋮
          +  0.07095091107487218
          + -0.01943179747394884
          +  0.38085649851490333
          +  0.7144184694698825
          +  1.4152632545043993
          +  0.600087806810772
          +  0.02080507138352275
          + -0.10253872870325856
          + -0.12635039827504016

          So we got from an 8-ring OctahedralGaussianGrid{Float16} to a 12-ring FullGaussianGrid{Float64}, so it did a conversion from Float16 to Float64 on the fly too, because the default precision is Float64 unless specified. interpolate(FullGaussianGrid{Float16},6,grid) would have interpolated onto a grid with element type Float16.

          One can also interpolate onto a given coordinate ˚N, ˚E like so

          interpolate(30.0,10.0,grid)
          0.07829903f0

          we interpolated the data from grid onto 30˚N, 10˚E. To do this simultaneously for many coordinates they can be packed into a vector too

          interpolate([30.0,40.0,50.0],[10.0,10.0,10.0],grid)
          3-element Vector{Float32}:
          +  0.07829903
          +  0.024300827
          + -0.055751357

          which returns the data on grid at 30˚N, 40˚N, 50˚N, and 10˚E respectively. Note how the interpolation here retains the element type of grid.

          Performance for RingGrid interpolation

          Every time an interpolation like interpolate(30.0,10.0,grid) is called, several things happen, which are important to understand to know how to get the fastest interpolation out of this module in a given situation. Under the hood an interpolation takes three arguments

          • output vector
          • input grid
          • interpolator

          The output vector is just an array into which the interpolated data is written, providing this prevents unnecessary allocation of memory in case the destination array of the interpolation already exists. The input grid contains the data which is subject to interpolation, it must come on a ring grid, however, its coordinate information is actually already in the interpolator. The interpolator knows about the geometry of the grid the data is coming on and the coordinates it is supposed to interpolate onto. It has therefore precalculated the indices that are needed to access the right data on the input grid and the weights it needs to apply in the actual interpolation operation. The only thing it does not know is the actual data values of that grid. So in the case you want to interpolate from grid A to grid B many times, you can just reuse the same interpolator. If you want to change the coordinates of the output grid but its total number of points remain constants then you can update the locator inside the interpolator and only else you will need to create a new interpolator. Let's look at this in practice. Say we have two grids an want to interpolate between them

          grid_in = rand(HEALPixGrid,4)
          +grid_out = zeros(FullClenshawGrid,6)
          +interp = RingGrids.interpolator(grid_out,grid_in)
          SpeedyWeather.RingGrids.AnvilInterpolator{Float64, HEALPixGrid{Float64}}(SpeedyWeather.RingGrids.GridGeometry{HEALPixGrid{Float64}}(4, 7, 48, [90.0, 66.44353569089876, 41.8103148957786, 19.471220634490685, 0.0, -19.47122063449071, -41.81031489577862, -66.44353569089876, -90.00000000000001], [45.0, 135.0, 225.0, 315.0, 22.5, 67.5, 112.5, 157.5, 202.5, 247.49999999999997  …  112.5, 157.5, 202.5, 247.49999999999997, 292.5, 337.5, 45.0, 135.0, 225.0, 315.0], UnitRange{Int64}[1:4, 5:12, 13:20, 21:28, 29:36, 37:44, 45:48], [4, 8, 8, 8, 8, 8, 4], [45.0, 22.5, 0.0, 22.5, 0.0, 22.5, 45.0]), SpeedyWeather.RingGrids.AnvilLocator{Float64}(264, [0, 0, 0, 0, 0, 0, 0, 0, 0, 0  …  7, 7, 7, 7, 7, 7, 7, 7, 7, 7], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0  …  46, 46, 47, 47, 47, 47, 47, 48, 48, 48], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0  …  47, 47, 48, 48, 48, 48, 48, 45, 45, 45], [4, 4, 4, 1, 1, 1, 1, 1, 1, 2  …  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1], [1, 1, 1, 2, 2, 2, 2, 2, 2, 3  …  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1], [0.6367678868600251, 0.6367678868600251, 0.6367678868600251, 0.6367678868600251, 0.6367678868600251, 0.6367678868600251, 0.6367678868600251, 0.6367678868600251, 0.6367678868600251, 0.6367678868600251  …  0.3632321131399741, 0.3632321131399741, 0.3632321131399741, 0.3632321131399741, 0.3632321131399741, 0.3632321131399741, 0.3632321131399741, 0.3632321131399741, 0.3632321131399741, 0.3632321131399741], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0  …  0.8333333333333333, 0.9999999999999998, 0.16666666666666652, 0.33333333333333304, 0.5, 0.6666666666666665, 0.8333333333333326, 0.0, 0.16666666666666652, 0.3333333333333326], [0.5, 0.6666666666666667, 0.8333333333333333, 0.0, 0.16666666666666657, 0.33333333333333315, 0.5, 0.6666666666666666, 0.8333333333333331, 0.0  …  0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]))

          Now we have created an interpolator interp which knows about the geometry where to interpolate from and the coordinates there to interpolate to. It is also initialized, meaning it has precomputed the indices to of grid_in that are supposed to be used. It just does not know about the data of grid_in (and neither of grid_out which will be overwritten anyway). We can now do

          interpolate!(grid_out,grid_in,interp)
          +grid_out
          264-element, 11-ring FullClenshawGrid{Float64}:
          + 0.29296127426465235
          + 0.2644820841789709
          + 0.2360028940932894
          + 0.20752370400760792
          + 0.3046046479943313
          + 0.40168559198105475
          + 0.4987665359677783
          + 0.5958474799545018
          + 0.6929284239412252
          + 0.7900093679279487
          + ⋮
          + 0.2779825994134143
          + 0.3542590274621793
          + 0.4305354555109442
          + 0.5068118835597093
          + 0.5830883116084743
          + 0.6593647396572391
          + 0.7356411677060044
          + 0.658684325063195
          + 0.5817274824203859

          which is identical to interpolate(grid_out,grid_in) but you can reuse interp for other data. The interpolation can also handle various element types (the interpolator interp does not have to be updated for this either)

          grid_out = zeros(FullClenshawGrid{Float16},6);
          +interpolate!(grid_out,grid_in,interp)
          +grid_out
          264-element, 11-ring FullClenshawGrid{Float16}:
          + 0.293
          + 0.2644
          + 0.236
          + 0.2075
          + 0.3047
          + 0.4016
          + 0.4988
          + 0.5957
          + 0.693
          + 0.79
          + ⋮
          + 0.278
          + 0.3542
          + 0.4304
          + 0.507
          + 0.583
          + 0.659
          + 0.736
          + 0.6587
          + 0.5815

          and we have converted data from a HEALPixGrid{Float64} (Float64 is always default if not specified) to a FullClenshawGrid{Float16} including the type conversion Float64-Float16 on the fly. Technically there are three data types and their combinations possible: The input data will come with a type, the output array has an element type and the interpolator has precomputed weights with a given type. Say we want to go from Float16 data on an OctahedralGaussianGrid to Float16 on a FullClenshawGrid but using Float32 precision for the interpolation itself, we would do this by

          grid_in = randn(OctahedralGaussianGrid{Float16},24)
          +grid_out = zeros(FullClenshawGrid{Float16},24)
          +interp = RingGrids.interpolator(Float32,grid_out,grid_in)
          +interpolate!(grid_out,grid_in,interp)
          +grid_out
          4512-element, 47-ring FullClenshawGrid{Float16}:
          + -0.1599
          + -0.01105
          +  0.1378
          +  0.2869
          +  0.4355
          +  0.3972
          +  0.1393
          + -0.1186
          + -0.3765
          + -0.6465
          +  ⋮
          +  0.3809
          +  0.493
          +  0.5737
          +  0.6543
          +  0.7354
          +  0.4392
          +  0.003263
          + -0.4329
          + -0.8687

          As a last example we want to illustrate a situation where we would always want to interpolate onto 10 coordinates, but their locations may change. In order to avoid recreating an interpolator object we would do (AnvilInterpolator is described in Anvil interpolator)

          npoints = 10    # number of coordinates to interpolate onto
          +interp = AnvilInterpolator(Float32,HEALPixGrid,24,npoints)
          SpeedyWeather.RingGrids.AnvilInterpolator{Float32, HEALPixGrid}(SpeedyWeather.RingGrids.GridGeometry{HEALPixGrid}(24, 47, 1728, [90.0, 86.10076357950555, 82.19700324028634, 78.28414760510762, 74.35752898700072, 70.41233167174659, 66.44353569089876, 62.445854167002665, 58.41366190347208, 54.34091230386124  …  -54.340912303861266, -58.41366190347208, -62.445854167002665, -66.44353569089876, -70.41233167174661, -74.35752898700072, -78.28414760510763, -82.19700324028634, -86.10076357950557, -90.00000000000001], [45.0, 135.0, 225.0, 315.0, 22.5, 67.5, 112.5, 157.5, 202.5, 247.49999999999997  …  112.5, 157.5, 202.5, 247.49999999999997, 292.5, 337.5, 45.0, 135.0, 225.0, 315.0], UnitRange{Int64}[1:4, 5:12, 13:24, 25:40, 41:60, 61:84, 85:112, 113:144, 145:180, 181:220  …  1509:1548, 1549:1584, 1585:1616, 1617:1644, 1645:1668, 1669:1688, 1689:1704, 1705:1716, 1717:1724, 1725:1728], [4, 8, 12, 16, 20, 24, 28, 32, 36, 40  …  40, 36, 32, 28, 24, 20, 16, 12, 8, 4], [45.0, 22.5, 14.999999999999998, 11.25, 9.0, 7.499999999999999, 6.428571428571429, 5.625, 5.0, 4.5  …  4.5, 5.0, 5.625, 6.428571428571429, 7.499999999999999, 9.0, 11.25, 14.999999999999998, 22.5, 45.0]), SpeedyWeather.RingGrids.AnvilLocator{Float32}(10, [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], Float32[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], Float32[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], Float32[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]))

          with the first argument being the number format used during interpolation, then the input grid type, its resolution in terms of nlat_half and then the number of points to interpolate onto. However, interp is not yet initialized as it does not know about the destination coordinates yet. Let's define them, but note that we already decided there's only 10 of them above.

          latds = collect(0.0:5.0:45.0)
          +londs = collect(-10.0:2.0:8.0)

          now we can update the locator inside our interpolator as follows

          RingGrids.update_locator!(interp,latds,londs)

          With data matching the input from above, a nlat_half=24 HEALPixGrid, and allocate 10-element output vector

          output_vec = zeros(10)
          +grid_input = rand(HEALPixGrid,24)

          we can use the interpolator as follows

          interpolate!(output_vec,grid_input,interp)
          10-element Vector{Float64}:
          + 0.7020587082789173
          + 0.10703732062067199
          + 0.4113323265478216
          + 0.6128336109186788
          + 0.7807567263737122
          + 0.6168021173489411
          + 0.8696335153131974
          + 0.6057673644235845
          + 0.5458500745785677
          + 0.17881603029011092

          which is the approximately the same as doing it directly without creating an interpolator first and updating its locator

          interpolate(latds,londs,grid_input)
          10-element Vector{Float64}:
          + 0.7020587118503869
          + 0.10703732116653467
          + 0.41133232384601937
          + 0.6128336092647131
          + 0.7807567241435575
          + 0.6168021204365152
          + 0.869633514096587
          + 0.6057673546798552
          + 0.5458500812442746
          + 0.1788160297470736

          but allows for a reuse of the interpolator. Note that the two output arrays are not exactly identical because we manually set our interpolator interp to use Float32 for the interpolation whereas the default is Float64.

          Anvil interpolator

          Currently the only interpolator implemented is a 4-point bilinear interpolator, which schematically works as follows. Anvil interpolation is the bilinear average of a,b,c,d which are values at grid points in an anvil-shaped configuration at location x, which is denoted by Δab,Δcd,Δy, the fraction of distances between a-b,c-d, and ab-cd, respectively. Note that a,c and b,d do not necessarily share the same longitude/x-coordinate.

                  0..............1    # fraction of distance Δab between a,b
          +        |<  Δab   >|
          +
          +0^      a -------- o - b    # anvil-shaped average of a,b,c,d at location x
          +.Δy                |
          +.                  |
          +.v                 x 
          +.                  |
          +1         c ------ o ---- d
          +
          +          |<  Δcd >|
          +          0...............1 # fraction of distance Δcd between c,d
          +
          +^ fraction of distance Δy between a-b and c-d.

          This interpolation is chosen as by definition of the ring grids, a and b share the same latitude, so do c and d, but the longitudes can be different for all four, a,b,c,d.

          Function index

          SpeedyWeather.RingGrids.AbstractFullGridType
          abstract type AbstractFullGrid{T} <: AbstractGrid{T} end

          An AbstractFullGrid is a horizontal grid with a constant number of longitude points across latitude rings. Different latitudes can be used, Gaussian latitudes, equi-angle latitdes, or others.

          source
          SpeedyWeather.RingGrids.AbstractGridType
          abstract type AbstractGrid{T} <: AbstractVector{T} end

          The abstract supertype for all spatial grids on the sphere supported by SpeedyWeather.jl. Every new grid has to be of the form

          abstract type AbstractGridClass{T} <: AbstractGrid{T} end
          +struct MyNewGrid{T} <: AbstractGridClass{T}
          +    data::Vector{T}     # all grid points unravelled into a vector
          +    nlat_half::Int      # resolution: latitude rings on one hemisphere (Equator incl)
          +end

          MyNewGrid should belong to a grid class like AbstractFullGrid, AbstractOctahedralGrid or AbstractHEALPixGrid (that already exist but you may introduce a new class of grids) that share certain features such as the number of longitude points per latitude ring and indexing, but may have different latitudes or offset rotations. Each new grid Grid (or grid class) then has to implement the following methods (as an example, see octahedral.jl)

          Fundamental grid properties getnpoints # total number of grid points nlatodd # does the grid have an odd number of latitude rings? getnlat # total number of latitude rings getnlat_half # number of latitude rings on one hemisphere incl Equator

          Indexing getnlonmax # maximum number of longitudes points (at the Equator) getnlonperring # number of longitudes on ring j eachindexinring # a unit range that indexes all longitude points on a ring

          Coordinates getcolat # vector of colatitudes (radians) getcolatlon # vectors of colatitudes, longitudes (both radians)

          Spectral truncation truncationorder # linear, quadratic, cubic = 1,2,3 for grid gettruncation # spectral truncation given a grid resolution get_resolution # grid resolution given a spectral truncation

          Quadrature weights and solid angles getquadratureweights # = sinθ Δθ for grid points on ring j for meridional integration getsolidangle # = sinθ Δθ Δϕ, solid angle of grid points on ring j

          source
          SpeedyWeather.RingGrids.AbstractHEALPixGridType
          abstract type AbstractHEALPixGrid{T} <: AbstractGrid{T} end

          An AbstractHEALPixGrid is a horizontal grid similar to the standard HEALPixGrid, but different latitudes can be used, the default HEALPix latitudes or others.

          source
          SpeedyWeather.RingGrids.AbstractInterpolatorType
          abstract type AbstractInterpolator{NF,G} end

          Supertype for Interpolators. Every Interpolator <: AbstractInterpolator is expected to have two fields,

          • geometry, which describes the grid G to interpolate from
          • locator, which locates the indices on G and their weights to interpolate onto a new grid.

          NF is the number format used to calculate the interpolation, which can be different from the input data and/or the interpolated data on the new grid.

          source
          SpeedyWeather.RingGrids.AbstractLocatorType
          AbstractLocator{NF}

          Supertype of every Locator, which locates the indices on a grid to be used to perform an interpolation. E.g. AnvilLocator uses a 4-point stencil for every new coordinate to interpolate onto. Higher order stencils can be implemented by defining OtherLocator <: AbstractLocactor.

          source
          SpeedyWeather.RingGrids.AbstractOctaHEALPixGridType
          abstract type AbstractOctaHEALPixGrid{T} <: AbstractGrid{T} end

          An AbstractOctaHEALPixGrid is a horizontal grid similar to the standard OctahedralGrid, but the number of points in the ring closest to the Poles starts from 4 instead of 20, and the longitude of the first point in each ring is shifted as in HEALPixGrid. Also, different latitudes can be used.

          source
          SpeedyWeather.RingGrids.AbstractOctahedralGridType
          abstract type AbstractOctahedralGrid{T} <: AbstractGrid{T} end

          An AbstractOctahedralGrid is a horizontal grid with 16+4i longitude points on the latitude ring i starting with i=1 around the pole. Different latitudes can be used, Gaussian latitudes, equi-angle latitdes, or others.

          source
          SpeedyWeather.RingGrids.AnvilLocatorType
          AnvilLocator{NF<:AbstractFloat} <: AbtractLocator

          Contains arrays that locates grid points of a given field to be uses in an interpolation and their weights. This Locator is a 4-point average in an anvil-shaped grid-point arrangement between two latitude rings.

          source
          SpeedyWeather.RingGrids.AnvilLocatorMethod
          L = AnvilLocator(   ::Type{NF},         # number format used for the interpolation
          +                    npoints::Integer    # number of points to interpolate onto
          +                    ) where {NF<:AbstractFloat}

          Zero generator function for the 4-point average AnvilLocator. Use update_locator! to update the grid indices used for interpolation and their weights. The number format NF is the format used for the calculations within the interpolation, the input data and/or output data formats may differ.

          source
          SpeedyWeather.RingGrids.FullClenshawGridType
          G = FullClenshawGrid{T}

          A FullClenshawGrid is a regular latitude-longitude grid with an odd number of nlat equi-spaced latitudes, the central latitude ring is on the Equator. The same nlon longitudes for every latitude ring. The grid points are closer in zonal direction around the poles. The values of all grid points are stored in a vector field data that unravels the data 0 to 360˚, then ring by ring, which are sorted north to south.

          source
          SpeedyWeather.RingGrids.FullGaussianGridType
          G = FullGaussianGrid{T}

          A full Gaussian grid is a regular latitude-longitude grid that uses nlat Gaussian latitudes, and the same nlon longitudes for every latitude ring. The grid points are closer in zonal direction around the poles. The values of all grid points are stored in a vector field v that unravels the data 0 to 360˚, then ring by ring, which are sorted north to south.

          source
          SpeedyWeather.RingGrids.FullHEALPixGridType
          G = FullHEALPixGrid{T}

          A full HEALPix grid is a regular latitude-longitude grid that uses nlat latitudes from the HEALPix grid, and the same nlon longitudes for every latitude ring. The grid points are closer in zonal direction around the poles. The values of all grid points are stored in a vector field v that unravels the data 0 to 360˚, then ring by ring, which are sorted north to south.

          source
          SpeedyWeather.RingGrids.FullOctaHEALPixGridType
          G = FullOctaHEALPixGrid{T}

          A full OctaHEALPix grid is a regular latitude-longitude grid that uses nlat OctaHEALPix latitudes, and the same nlon longitudes for every latitude ring. The grid points are closer in zonal direction around the poles. The values of all grid points are stored in a vector field v that unravels the data 0 to 360˚, then ring by ring, which are sorted north to south.

          source
          SpeedyWeather.RingGrids.GridGeometryMethod
          G = GridGeometry(   Grid::Type{<:AbstractGrid},
          +                    nlat_half::Integer)

          Precomputed arrays describing the geometry of the Grid with resolution nlat_half. Contains latitudes and longitudes of grid points, their ring index j and their unravelled indices ij.

          source
          SpeedyWeather.RingGrids.HEALPixGridType
          H = HEALPixGrid{T}

          A HEALPix grid with 12 faces, each nsidexnside grid points, each covering the same area. The number of latitude rings on one hemisphere (incl Equator) nlat_half is used as resolution parameter. The values of all grid points are stored in a vector field v that unravels the data 0 to 360˚, then ring by ring, which are sorted north to south.

          source
          SpeedyWeather.RingGrids.OctaHEALPixGridType
          H = OctaHEALPixGrid{T}

          A OctaHEALPix grid with 4 base faces, each nlat_halfxnlat_half grid points, each covering the same area. The values of all grid points are stored in a vector field data that unravels the data 0 to 360˚, then ring by ring, which are sorted north to south.

          source
          SpeedyWeather.RingGrids.OctahedralClenshawGridType
          G = OctahedralClenshawGrid{T}

          An Octahedral Clenshaw grid that uses nlat equi-spaced latitudes. Like FullClenshawGrid, the central latitude ring is on the Equator. Like OctahedralGaussianGrid, the number of longitude points per latitude ring decreases towards the poles. Starting with 20 equi-spaced longitude points (starting at 0˚E) on the rings around the poles, each latitude ring towards the equator has consecuitively 4 more points, one for each face of the octahedron. E.g. 20,24,28,32,...nlon-4,nlon,nlon,nlon-4,...,32,28,24,20. The maximum number of longitue points is nlon. The values of all grid points are stored in a vector field v that unravels the data 0 to 360˚, then ring by ring, which are sorted north to south.

          source
          SpeedyWeather.RingGrids.OctahedralGaussianGridType
          G = OctahedralGaussianGrid{T}

          An Octahedral Gaussian grid that uses nlat Gaussian latitudes, but a decreasing number of longitude points per latitude ring towards the poles. Starting with 20 equi-spaced longitude points (starting at 0˚E) on the rings around the poles, each latitude ring towards the equator has consecuitively 4 more points, one for each face of the octahedron. E.g. 20,24,28,32,...nlon-4,nlon,nlon,nlon-4,...,32,28,24,20. The maximum number of longitue points is nlon. The values of all grid points are stored in a vector field v that unravels the data 0 to 360˚, then ring by ring, which are sorted north to south.

          source
          SpeedyWeather.RingGrids.Matrix!Method
          Matrix!(M::AbstractMatrix,
          +        G::OctaHEALPixGrid;
          +        quadrant_rotation=(0,1,2,3),
          +        matrix_quadrant=((2,2),(1,2),(1,1),(2,1)),
          +        )

          Sorts the gridpoints in G into the matrix M without interpolation. Every quadrant of the grid G is rotated as specified in quadrant_rotation, 0 is no rotation, 1 is 90˚ clockwise, 2 is 180˚ etc. Grid quadrants are counted eastward starting from 0˚E. The grid quadrants are moved into the matrix quadrant (i,j) as specified. Defaults are equivalent to centered at 0˚E and a rotation such that the North Pole is at M's midpoint.

          source
          SpeedyWeather.RingGrids.Matrix!Method
          Matrix!(M::AbstractMatrix,
          +        G::OctahedralClenshawGrid;
          +        quadrant_rotation=(0,1,2,3),
          +        matrix_quadrant=((2,2),(1,2),(1,1),(2,1)),
          +        )

          Sorts the gridpoints in G into the matrix M without interpolation. Every quadrant of the grid G is rotated as specified in quadrant_rotation, 0 is no rotation, 1 is 90˚ clockwise, 2 is 180˚ etc. Grid quadrants are counted eastward starting from 0˚E. The grid quadrants are moved into the matrix quadrant (i,j) as specified. Defaults are equivalent to centered at 0˚E and a rotation such that the North Pole is at M's midpoint.

          source
          SpeedyWeather.RingGrids.Matrix!Method
          Matrix!(MGs::Tuple{AbstractMatrix{T},OctaHEALPixGrid}...;kwargs...)

          Like Matrix!(::AbstractMatrix,::OctaHEALPixGrid) but for simultaneous processing of tuples ((M1,G1),(M2,G2),...) with matrices Mi and grids Gi. All matrices and grids have to be of the same size respectively.

          source
          SpeedyWeather.RingGrids.Matrix!Method
          Matrix!(MGs::Tuple{AbstractMatrix{T},OctahedralClenshawGrid}...;kwargs...)

          Like Matrix!(::AbstractMatrix,::OctahedralClenshawGrid) but for simultaneous processing of tuples ((M1,G1),(M2,G2),...) with matrices Mi and grids Gi. All matrices and grids have to be of the same size respectively.

          source
          SpeedyWeather.RingGrids.anvil_averageMethod
          anvil_average(a, b, c, d, Δab, Δcd, Δy) -> Any
          +

          The bilinear average of a,b,c,d which are values at grid points in an anvil-shaped configuration at location x, which is denoted by Δab,Δcd,Δy, the fraction of distances between a-b,c-d, and ab-cd, respectively. Note that a,c and b,d do not necessarily share the same longitude/x-coordinate. See schematic:

                      0..............1    # fraction of distance Δab between a,b
          +            |<  Δab   >|
          +
          +    0^      a -------- o - b    # anvil-shaped average of a,b,c,d at location x
          +    .Δy                |
          +    .                  |
          +    .v                 x 
          +    .                  |
          +    1         c ------ o ---- d
          +
          +              |<  Δcd >|
          +              0...............1 # fraction of distance Δcd between c,d

          ^ fraction of distance Δy between a-b and c-d.

          source
          SpeedyWeather.RingGrids.average_on_polesMethod
          average_on_poles(
          +    A::SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},
          +    rings::Vector{<:UnitRange{<:Integer}}
          +) -> Tuple{Any, Any}
          +

          Computes the average at the North and South pole from a given grid A and it's precomputed ring indices rings. The North pole average is an equally weighted average of all grid points on the northern-most ring. Similar for the South pole.

          source
          SpeedyWeather.RingGrids.average_on_polesMethod
          average_on_poles(
          +    A::SpeedyWeather.RingGrids.AbstractGrid{NF<:Integer},
          +    rings::Vector{<:UnitRange{<:Integer}}
          +) -> Tuple{Any, Any}
          +

          Method for A::Abstract{T<:Integer} which rounds the averaged values to return the same number format NF.

          source
          SpeedyWeather.RingGrids.eachringMethod
          eachring(grid::SpeedyWeather.RingGrids.AbstractGrid) -> Any
          +

          Vector{UnitRange} rings to loop over every ring of grid grid and then each grid point per ring. To be used like

          rings = eachring(grid)
          +for ring in rings
          +    for ij in ring
          +        grid[ij]
          source
          SpeedyWeather.RingGrids.eachringMethod
          eachring(
          +    grid1::SpeedyWeather.RingGrids.AbstractGrid,
          +    grids::Grid<:SpeedyWeather.RingGrids.AbstractGrid...
          +) -> Any
          +

          Same as eachring(grid) but performs a bounds check to assess that all grids in grids are of same size.

          source
          SpeedyWeather.RingGrids.get_nlonsMethod
          get_nlons(
          +    Grid::Type{<:SpeedyWeather.RingGrids.AbstractGrid},
          +    nlat_half::Integer;
          +    both_hemispheres
          +) -> Any
          +

          Returns a vector nlons for the number of longitude points per latitude ring, north to south. Provide grid Grid and its resolution parameter nlat_half. For both_hemisphere==false only the northern hemisphere (incl Equator) is returned.

          source
          SpeedyWeather.RingGrids.whichringMethod
          whichring(
          +    ij::Integer,
          +    rings::Vector{UnitRange{Int64}}
          +) -> Int64
          +

          Obtain ring index j from gridpoint ij and Vector{UnitRange} describing rind indices as obtained from eachring(::Grid)

          source
          diff --git a/previews/PR360/search/index.html b/previews/PR360/search/index.html new file mode 100644 index 000000000..d88516603 --- /dev/null +++ b/previews/PR360/search/index.html @@ -0,0 +1,2 @@ + +Search · SpeedyWeather.jl diff --git a/previews/PR360/search_index.js b/previews/PR360/search_index.js new file mode 100644 index 000000000..c97668e0c --- /dev/null +++ b/previews/PR360/search_index.js @@ -0,0 +1,3 @@ +var documenterSearchIndex = {"docs": +[{"location":"parameterizations/#parameterizations","page":"Parameterizations","title":"Parameterizations","text":"","category":"section"},{"location":"parameterizations/","page":"Parameterizations","title":"Parameterizations","text":"This page describes the mathematical formulation of the parameterizations used in SpeedyWeather.jl to represent physical processes in the atmosphere. Every section is followed by a brief description of implementation details.","category":"page"},{"location":"parameterizations/#Convection","page":"Parameterizations","title":"Convection","text":"","category":"section"},{"location":"parameterizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"parameterizations/#Large-scale-condensation","page":"Parameterizations","title":"Large-scale condensation","text":"","category":"section"},{"location":"parameterizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"parameterizations/#Clouds","page":"Parameterizations","title":"Clouds","text":"","category":"section"},{"location":"parameterizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"parameterizations/#Short-wave-radiation","page":"Parameterizations","title":"Short-wave radiation","text":"","category":"section"},{"location":"parameterizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"parameterizations/#Long-wave-radiation","page":"Parameterizations","title":"Long-wave radiation","text":"","category":"section"},{"location":"parameterizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"parameterizations/#Surface-fluxes-of-momentum-and-energy","page":"Parameterizations","title":"Surface fluxes of momentum and energy","text":"","category":"section"},{"location":"parameterizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"parameterizations/#Vertical-diffusion","page":"Parameterizations","title":"Vertical diffusion","text":"","category":"section"},{"location":"parameterizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"development/#Development-notes","page":"Development notes","title":"Development notes","text":"","category":"section"},{"location":"development/","page":"Development notes","title":"Development notes","text":"To run tests, from the path of your local clone of the repository do:","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"julia --project=. -e 'import Pkg; Pkg.test()'","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"To install dependencies:","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"julia --project -e 'import Pkg; Pkg.instantiate()`","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"then opening:","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"julia --project","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"you are able to using SpeedyWeather.","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"To generate the docs:","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"julia --project=docs -e 'import Pkg; Pkg.develop(path=\".\"); Pkg.instantiate()'\njulia --project=docs docs/make.jl","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"If the docs are generated successfully, you view them by opening docs/build/index.html in your favorite browser.","category":"page"},{"location":"barotropic/#Barotropic-vorticity-model","page":"Barotropic model","title":"Barotropic vorticity model","text":"","category":"section"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"The barotropic vorticity model describes the evolution of a 2D non-divergent flow with velocity components mathbfu = (uv) through self-advection, forces and dissipation. Due to the non-divergent nature of the flow, it can be described by (the vertical component) of the relative vorticity zeta = nabla times mathbfu.","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"The dynamical core presented here to solve the barotropic vorticity equations largely follows the idealized models with spectral dynamics developed at the Geophysical Fluid Dynamics Laboratory[1]: A barotropic vorticity model[2].","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"Many concepts of the Shallow water model and the Primitive equation model are similar, such that for example horizontal diffusion and the Time integration are only explained here.","category":"page"},{"location":"barotropic/#Barotropic-vorticity-equation","page":"Barotropic model","title":"Barotropic vorticity equation","text":"","category":"section"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"The barotropic vorticity equation is the prognostic equation that describes the time evolution of relative vorticity zeta with advection, Coriolis force, forcing and diffusion in a single global layer on the sphere.","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"fracpartial zetapartial t + nabla cdot (mathbfu(zeta + f)) =\nnabla times mathbfF + (-1)^n+1nunabla^2nzeta","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"We denote timet, velocity vector mathbfu = (u v), Coriolis parameter f, and hyperdiffusion (-1)^n+1 nu nabla^2n zeta (n is the hyperdiffusion order, see Horizontal diffusion). We also include a forcing vector mathbfF = (F_uF_v) which acts on the zonal velocity u and the meridional velocity v and hence its curl nabla times mathbfF is a tendency for relative vorticity zeta.","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"Starting with some relative vorticity zeta, the Laplacian is inverted to obtain the stream function Psi","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"Psi = nabla^-2zeta","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"The zonal velocity u and meridional velocity v are then the (negative) meridional gradient and zonal gradient of Psi","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"beginaligned\nu = -frac1R fracpartial Psipartial theta \nv = frac1Rcos(theta) fracpartial Psipartial phi \nendaligned","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"which is described in Derivatives in spherical coordinates. Using u and v we can then advect the absolute vorticity zeta + f. In order to avoid to calculate both the curl and the divergence of a flux we rewrite the barotropic vorticity equation as","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"fracpartial zetapartial t =\nnabla times (mathbfF + mathbfu_perp(zeta + f)) + (-1)^n+1nunabla^2nzeta","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"with mathbfu_perp = (v-u) the rotated velocity vector, because -nablacdotmathbfu = nabla times mathbfu_perp. This is the form that is solved in the BarotropicModel, as outlined in the following section.","category":"page"},{"location":"barotropic/#Algorithm","page":"Barotropic model","title":"Algorithm","text":"","category":"section"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"We briefly outline the algorithm that SpeedyWeather.jl uses in order to integrate the barotropic vorticity equation. As an initial step","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"0. Start with initial conditions of zeta_lm in spectral space and transform this model state to grid-point space:","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"Invert the Laplacian of vorticity zeta_lm to obtain the stream function Psi_lm in spectral space\nobtain zonal velocity (cos(theta)u)_lm through a Meridional derivative\nobtain meridional velocity (cos(theta)v)_lm through a Zonal derivative\nTransform zonal and meridional velocity (cos(theta)u)_lm, (cos(theta)v)_lm to grid-point space\nUnscale the cos(theta) factor to obtain uv\nTransform zeta_lm to zeta in grid-point space","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"Now loop over","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"Compute the forcing vector mathbfF = (F_uF_v) for u and v\nMultiply uv with zeta+f in grid-point space\nAdd A = F_u + v(zeta + f) and B = F_v - u(zeta + f)\nTransform these vector components to spectral space A_lm, B_lm\nCompute the curl of (AB)_lm in spectral space which is the tendency of zeta_lm\nCompute the horizontal diffusion based on that tendency\nCompute a leapfrog time step as described in Time integration with a Robert-Asselin and Williams filter\nTransform the new spectral state of zeta_lm to grid-point uvzeta as described in 0.\nPossibly do some output\nRepeat from 1.","category":"page"},{"location":"barotropic/#diffusion","page":"Barotropic model","title":"Horizontal diffusion","text":"","category":"section"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"In SpeedyWeather.jl we use hyerdiffusion through an n-th power Laplacian (-1)^n+1nabla^2n (hyper when n1) which can be implemented as a multiplication of the spectral coefficients Psi_lm with (-l(l+1))^nR^-2n (see spectral Laplacian) It is therefore computationally not more expensive to apply hyperdiffusion over diffusion as the (-l(l+1))^nR^-2n can be precomputed. Note the sign change (-1)^n+1 here is such that the dissipative nature of the diffusion operator is retained for n odd and even.","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"In SpeedyWeather.jl the diffusion is applied implicitly. For that, consider a leapfrog scheme with time step Delta t of variable zeta to obtain from time steps i-1 and i, the next time step i+1","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"zeta_i+1 = zeta_i-1 + 2Delta t dzeta","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"with dzeta being some tendency evaluated from zeta_i. Now we want to add a diffusion term (-1)^n+1nu nabla^2nzeta with coefficient nu, which however, is implicitly calculated from zeta_i+1, then","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"zeta_i+1 = zeta_i-1 + 2Delta t (dzeta + (-1)^n+1 nunabla^2nzeta_i+1)","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"As the application of (-1)^n+1nunabla^2n is, for every spectral mode, equivalent to a multiplication of a constant, we can rewrite this to","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"zeta_i+1 = fraczeta_i-1 + 2Delta t dzeta1 - 2Delta (-1)^n+1nunabla^2n","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"and expand the numerator to","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"zeta_i+1 = zeta_i-1 + 2Delta t fracdzeta + (-1)^n+1 nunabla^2nzeta_i-11 - 2Delta t (-1)^n+1nu nabla^2n","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"Hence the diffusion can be applied implicitly by updating the tendency dzeta as","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"dzeta to fracdzeta + (-1)^n+1nunabla^2nzeta_i-11 - 2Delta t nu nabla^2n","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"which only depends on zeta_i-1. Now let D_textexplicit = (-1)^n+1nunabla^2n be the explicit part and D_textimplicit = 1 - (-1)^n+1 2Delta t nunabla^2n the implicit part. Both parts can be precomputed and are D_textimplicit = 1 - 2Delta t nunabla^2n the implicit part. Both parts can be precomputed and are only an element-wise multiplication in spectral space. For every spectral harmonic lm we do","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"dzeta to D_textimplicit^-1(dzeta + D_textexplicitzeta_i-1)","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"Hence 2 multiplications and 1 subtraction with precomputed constants. However, we will normalize the (hyper-)Laplacians as described in the following. This also will take care of the alternating sign such that the diffusion operation is dissipative regardless the power n.","category":"page"},{"location":"barotropic/#Normalization-of-diffusion","page":"Barotropic model","title":"Normalization of diffusion","text":"","category":"section"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"In physics, the Laplace operator nabla^2 is often used to represent diffusion due to viscosity in a fluid or diffusion that needs to be added to retain numerical stability. In both cases, the coefficient is nu of units textm^2texts^-1 and the full operator reads as nu nabla^2 with units (textm^2texts^-1)(textm^-2) = texts^-1. This motivates us to normalize the Laplace operator by a constant of units textm^-2 and the coefficient by its inverse such that it becomes a damping timescale of unit texts^-1. Given the application in spectral space we decide to normalize by the largest eigenvalue -l_textmax(l_textmax+1) such that all entries in the discrete spectral Laplace operator are in 01. This also has the effect that the alternating sign drops out, such that higher wavenumbers are always dampened and not amplified. The normalized coefficient nu^* = l_textmax(l_textmax+1)nu (always positive) is therefore reinterpreted as the (inverse) time scale at which the highest wavenumber is dampened to zero due to diffusion. Together we have ","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"D^textexplicit_lm = -nu^* fracl(l+1)l_textmax(l_textmax+1)","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"and the hyper-Laplacian of power n follows as","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"D^textexplicitn_lm = -nu^* left(fracl(l+1)l_textmax(l_textmax+1)right)^n","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"and the implicit part is accordingly D^textimplicitn_lm = 1 - 2Delta t D^textexplicitn_lm. Note that the diffusion time scale nu^* is then also scaled by the radius, see next section.","category":"page"},{"location":"barotropic/#scaling","page":"Barotropic model","title":"Radius scaling","text":"","category":"section"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"Similar to a non-dimensionalization of the equations, SpeedyWeather.jl scales the barotropic vorticity equation with R^2 to obtain normalized gradient operators as follows. A scaling for vorticity zeta and stream function Psi is used that is","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"tildezeta = zeta R tildePsi = Psi R^-1","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"This is also convenient as vorticity is often 10^-5text s^-1 in the atmosphere, but the streamfunction more like 10^5text m^2text s^-1 and so this scaling brings both closer to 1 with a typical radius of the Earth of 6371km. The inversion of the Laplacians in order to obtain Psi from zeta therefore becomes","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"tildezeta = tildenabla^2 tildePsi","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"where the dimensionless gradients simply omit the scaling with 1R, tildenabla = Rnabla. The Barotropic vorticity equation scaled with R^2 is","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"partial_tildettildezeta + tildenabla cdot (mathbfu(tildezeta + tildef)) =\nnabla times tildemathbfF + (-1)^n+1tildenutildenabla^2ntildezeta","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"with","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"tildet = tR^-1, the scaled time t\nmathbfu = (uv), the velocity vector (no scaling applied)\ntildef = fR, the scaled Coriolis parameter f\ntildemathbfF = RmathbfF, the scaled forcing vector mathbfF\ntildenu = nu^* R, the scaled diffusion coefficient nu^*, which itself is normalized to a damping time scale, see Normalization of diffusion.","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"So scaling with the radius squared means we can use dimensionless operators, however, this comes at the cost of needing to deal with both a time step in seconds as well as a scaled time step in seconds per meter, which can be confusing. Furthermore, some constants like Coriolis or the diffusion coefficient need to be scaled too during initialisation, which may be confusing too because values are not what users expect them to be. SpeedyWeather.jl follows the logic that the scaling to the prognostic variables is only applied just before the time integration and variables are unscaled for output and after the time integration finished. That way, the scaling is hidden as much as possible from the user. In hopefully many other cases it is clearly denoted that a variable or constant is scaled.","category":"page"},{"location":"barotropic/#leapfrog","page":"Barotropic model","title":"Time integration","text":"","category":"section"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"SpeedyWeather.jl is based on the Leapfrog time integration, which, for relative vorticity zeta, is in its simplest form","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"fraczeta_i+1 - zeta_i-12Delta t = RHS(zeta_i)","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"meaning we step from the previous time step i-1, leapfrogging over the current time stepi to the next time step i+1 by evaluating the tendencies on the right-hand side RHS at the current time step i. The time stepping is done in spectral space. Once the right-hand side RHS is evaluated, leapfrogging is a linear operation, meaning that its simply applied to every spectral coefficient zeta_lm as one would evaluate it on every grid point in grid-point models.","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"For the Leapfrog time integration two time steps of the prognostic variables have to be stored, i-1 and i. Time step i is used to evaluate the tendencies which are then added to i-1 in a step that also swaps the indices for the next time step i to i-1 and i+1 to i, so that no additional memory than two time steps have to be stored at the same time.","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"The Leapfrog time integration has to be initialised with an Euler forward step in order to have a second time step i+1 available when starting from i to actually leapfrog over. SpeedyWeather.jl therefore does two initial time steps that are different from the leapfrog time steps that follow and that have been described above.","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"an Euler forward step with Delta t2, then\none leapfrog time step with Delta t, then\nleapfrog with 2 Delta t till the end","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"This is particularly done in a way that after 2. we have t=0 at i-1 and t=Delta t at i available so that 3. can start the leapfrogging without any offset from the intuitive spacing 0Delta t 2Delta t 3Delta t. The following schematic can be useful","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":" time at step i-1 time at step i time step at i+1\nInitial conditions t = 0 \n1: Euler (T) quad t = 0 t=Delta t2 \n2: Leapfrog with Delta t t = 0 (T) quad t = Delta t2 t = Delta t\n3 to n: Leapfrog with 2Delta t t-Delta t (T) qquad quad quad t t+Delta t","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"The time step that is used to evaluate the tendencies is denoted with (T). It is always the time step furthest in time that is available.","category":"page"},{"location":"barotropic/#Robert-Asselin-and-Williams-filter","page":"Barotropic model","title":"Robert-Asselin and Williams filter","text":"","category":"section"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"The standard leapfrog time integration is often combined with a Robert-Asselin filter[Robert66][Asselin72] to dampen a computational mode. The idea is to start with a standard leapfrog step to obtain the next time step i+1 but then to correct the current time step i by applying a filter which dampens the computational mode. The filter looks like a discrete Laplacian in time with a (1 -2 1) stencil, and so, maybe unsurprisingly, is efficient to filter out a \"grid-scale oscillation\" in time, aka the computational mode. Let v be the unfiltered variable and u be the filtered variable, F the right-hand side tendency, then the standard leapfrog step is","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"v_i+1 = u_i-1 + 2Delta tF(v_i)","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"Meaning we start with a filtered variable u at the previous time step i-1, evaluate the tendency F(v_i) based on the current time step i to obtain an unfiltered next time step v_i+1. We then filter the current time step i (which will become i-1 on the next iteration)","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"u_i = v_i + fracnu2(v_i+1 - 2v_i + u_i-1)","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"by adding a discrete Laplacian with coefficient tfracnu2 to it, evaluated from the available filtered and unfiltered time steps centred around i: v_i-1 is not available anymore because it was overwritten by the filtering at the previous iteration, u_i u_i+1 are not filtered yet when applying the Laplacian. The filter parameter nu is typically chosen between 0.01-0.2, with stronger filtering for higher values.","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"Williams[Williams2009] then proposed an additional filter step to regain accuracy that is otherwise lost with a strong Robert-Asselin filter[Amezcua2011][Williams2011]. Now let w be unfiltered, v be once filtered, and u twice filtered, then","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"beginaligned\nw_i+1 = u_i-1 + 2Delta tF(v_i) \nu_i = v_i + fracnualpha2(w_i+1 - 2v_i + u_i-1) \nv_i+1 = w_i+1 - fracnu(1-alpha)2(w_i+1 - 2v_i + u_i-1)\nendaligned","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"with the Williams filter parameter alpha in 051. For alpha=1 we're back with the Robert-Asselin filter (the first two lines).","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"The Laplacian in the parentheses is often called a displacement, meaning that the filtered value is displaced (or corrected) in the direction of the two surrounding time steps. The Williams filter now also applies the same displacement, but in the opposite direction to the next time step i+1 as a correction step (line 3 above) for a once-filtered value v_i+1 which will then be twice-filtered by the Robert-Asselin filter on the next iteration. For more details see the referenced publications.","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"The initial Euler step (see Time integration, Table) is not filtered. Both the the Robert-Asselin and Williams filter are then switched on for all following leapfrog time steps.","category":"page"},{"location":"barotropic/#References","page":"Barotropic model","title":"References","text":"","category":"section"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"[1]: Geophysical Fluid Dynamics Laboratory, Idealized models with spectral dynamics","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"[2]: Geophysical Fluid Dynamics Laboratory, The barotropic vorticity equation.","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"[Robert66]: Robert, André. “The Integration of a Low Order Spectral Form of the Primitive Meteorological Equations.” Journal of the Meteorological Society of Japan 44 (1966): 237-245.","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"[Asselin72]: ASSELIN, R., 1972: Frequency Filter for Time Integrations. Mon. Wea. Rev., 100, 487–490, doi:10.1175/1520-0493(1972)100<0487:FFFTI>2.3.CO;2","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"[Williams2009]: Williams, P. D., 2009: A Proposed Modification to the Robert–Asselin Time Filter. Mon. Wea. Rev., 137, 2538–2546, 10.1175/2009MWR2724.1.","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"[Amezcua2011]: Amezcua, J., E. Kalnay, and P. D. Williams, 2011: The Effects of the RAW Filter on the Climatology and Forecast Skill of the SPEEDY Model. Mon. Wea. Rev., 139, 608–619, doi:10.1175/2010MWR3530.1. ","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"[Williams2011]: Williams, P. D., 2011: The RAW Filter: An Improvement to the Robert–Asselin Filter in Semi-Implicit Integrations. Mon. Wea. Rev., 139, 1996–2007, doi:10.1175/2010MWR3601.1. ","category":"page"},{"location":"installation/#Installation","page":"Installation","title":"Installation","text":"","category":"section"},{"location":"installation/","page":"Installation","title":"Installation","text":"SpeedyWeather.jl is registered in the Julia Registry. In most cases just open the Julia REPL and type","category":"page"},{"location":"installation/","page":"Installation","title":"Installation","text":"julia> using Pkg\njulia> Pkg.add(\"SpeedyWeather\")","category":"page"},{"location":"installation/","page":"Installation","title":"Installation","text":"or, equivalently, (] opens the package manager)","category":"page"},{"location":"installation/","page":"Installation","title":"Installation","text":"julia>] add SpeedyWeather","category":"page"},{"location":"installation/","page":"Installation","title":"Installation","text":"which will automatically install the latest release and all necessary dependencies. If you run into any troubles please raise an issue.","category":"page"},{"location":"installation/","page":"Installation","title":"Installation","text":"However, you may want to make use of the latest features, then install directly from the main branch with","category":"page"},{"location":"installation/","page":"Installation","title":"Installation","text":"julia> Pkg.add(url=\"https://github.com/SpeedyWeather/SpeedyWeather.jl\",rev=\"main\")","category":"page"},{"location":"installation/","page":"Installation","title":"Installation","text":"other branches than main can be similarly installed. You can also type, equivalently,","category":"page"},{"location":"installation/","page":"Installation","title":"Installation","text":"julia>] add https://github.com/SpeedyWeather/SpeedyWeather.jl#main","category":"page"},{"location":"installation/#Compatibility-with-Julia-versions","page":"Installation","title":"Compatibility with Julia versions","text":"","category":"section"},{"location":"installation/","page":"Installation","title":"Installation","text":"SpeedyWeather.jl usually lives on the latest minor release and/or its predecessor. At the moment (June 2023) this means ","category":"page"},{"location":"installation/","page":"Installation","title":"Installation","text":"Julia v1.8\nJulia v1.9","category":"page"},{"location":"installation/","page":"Installation","title":"Installation","text":"are supported, but we dropped the support of earlier versions.","category":"page"},{"location":"output/#NetCDF-output","page":"NetCDF output","title":"NetCDF output","text":"","category":"section"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"SpeedyWeather.jl uses NetCDF to output the data of a simulation. The following describes the details of this and how to change the way in which the NetCDF output is written. There are many options to this available.","category":"page"},{"location":"output/#Accessing-the-NetCDF-output-writer","page":"NetCDF output","title":"Accessing the NetCDF output writer","text":"","category":"section"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"The output writer is a component of every Model, i.e. BarotropicModel, ShallowWaterModel, PrimitiveDryModel and PrimitiveWetModel, hence a non-default output writer can be passed on as a keyword argument to the model constructor","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"julia> using SpeedyWeather\njulia> spectral_grid = SpectralGrid()\njulia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry)\njulia> model = PrimitiveDryModel(;spectral_grid, output=my_output_writer)","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"So after we have defined the grid through the SpectralGrid object we can use and change the implemented OutputWriter by passing on the following arguments","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"julia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry, kwargs...)","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"the spectral_grid has to be the first argument then the model type (Barotropic, ShallowWater, PrimitiveDry, PrimitiveWet) which helps the output writer to make default choices on which variables to output. However, we can also pass on further keyword arguments. So let's start with an example.","category":"page"},{"location":"output/#Example-1:-NetCDF-output-every-hour","page":"NetCDF output","title":"Example 1: NetCDF output every hour","text":"","category":"section"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"If we want to increase the frequency of the output we can choose output_dt (default =6 in hours) like so","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"julia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry, output_dt=1)\njulia> model = PrimitiveDryModel(;spectral_grid, output=my_output_writer)","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"which will now output every hour. It is important to pass on the new output writer my_output_writer to the model constructor, otherwise it will not be part of your model and the default is used instead. Note that output_dt has to be understood as the minimum frequency or maximum output time step. Example, we run the model at a resolution of T85 and the time step is going to be 670s","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"julia> spectral_grid = SpectralGrid(trunc=85)\njulia> time_stepper = Leapfrog(spectral_grid)\nLeapfrog{Float32}:\n...\n Δt_sec::Int64 = 670\n...","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"This means that after 32 time steps 5h 57min and 20s will have passed where output will happen as the next time step would be >6h. The time axis of the NetCDF output will look like","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"julia> using NCDatasets\njulia> ds = NCDataset(\"run_0001/output.nc\");\njulia> ds[\"time\"][:]\n5-element Vector{Dates.DateTime}:\n 2000-01-01T00:00:00\n 2000-01-01T05:57:20\n 2000-01-01T11:54:40\n 2000-01-01T17:52:00\n 2000-01-01T23:49:20\n\njulia> diff(ds[\"time\"][:])\n4-element Vector{Dates.Millisecond}:\n 21440000 milliseconds\n 21440000 milliseconds\n 21440000 milliseconds\n 21440000 milliseconds","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"This is so that we don't interpolate in time during output to hit exactly every 6 hours, but at the same time have a constant spacing in time between output time steps.","category":"page"},{"location":"output/#Example-2:-Output-onto-a-higher/lower-resolution-grid","page":"NetCDF output","title":"Example 2: Output onto a higher/lower resolution grid","text":"","category":"section"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"Say we want to run the model at a given horizontal resolution but want to output on another resolution, the OutputWriter takes as argument output_Grid<:AbstractFullGrid and nlat_half::Int. So for example output_Grid=FullClenshawGrid and nlat_half=48 will always interpolate onto a regular 192x95 longitude-latitude grid of 1.875˚ resolution, regardless the grid and resolution used for the model integration.","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"julia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry, output_Grid=FullClenshawGrid, nlat_half=48)","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"Note that by default the output is on the corresponding full of the grid used in the dynamical core so that interpolation only happens at most in the zonal direction as they share the location of the latitude rings. You can check this by","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"julia> RingGrids.full_grid(OctahedralGaussianGrid)\nFullGaussianGrid","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"So the corresponding full grid of an OctahedralGaussianGrid is the FullGaussiangrid and the same resolution nlat_half is chosen by default in the output writer (which you can change though as shown above). Overview of the corresponding full grids","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"Grid Corresponding full grid\nFullGaussianGrid FullGaussianGrid\nFullClenshawGrid FullClenshawGrid\nOctahadralGaussianGrid FullGaussianGrid\nOctahedralClensawhGrid FullClenshawGrid\nHEALPixGrid FullHEALPixGrid\nOctaHEALPixGrid FullOctaHEALPixGrid","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"The grids FullHEALPixGrid, FullOctaHEALPixGrid share the same latitude rings as their reduced grids, but have always as many longitude points as they are at most around the equator. These grids are not tested in the dynamical core (but you may use them experimentally) and mostly designed for output purposes.","category":"page"},{"location":"output/#Example-3:-Changing-the-output-path-or-identification","page":"NetCDF output","title":"Example 3: Changing the output path or identification","text":"","category":"section"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"That's easy by passing on path=\"/my/favourite/path/\" and the folder run_* with * the identification of the run (that's the id keyword, which can be manually set but is also automatically determined as a number counting up depending on which folders already exist) will be created within.","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"julia> path = pwd()\n\"/Users/milan\"\njulia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry, path=path)","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"This folder must already exist. If you want to give your run a name/identification you can pass on id","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"julia> my_output_writer = OutputWriter(spectral_grid,PrimitiveDry,id=\"diffusion_test\");","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"which will be used instead of a 4 digit number like 0001, 0002 which is automatically determined if id is not provided. You will see the id of the run in the progress bar","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"Weather is speedy: run diffusion_test 100%|███████████████████████| Time: 0:00:12 (19.20 years/day)","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"and the run folder, here run_diffusion_test, is also named accordingly","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"shell> ls\n...\nrun_diffusion_test\n...","category":"page"},{"location":"output/#Further-options","page":"NetCDF output","title":"Further options","text":"","category":"section"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"Further options are described in the OutputWriter docstring, (also accessible via julia>?OutputWriter for example). Note that some fields are actual options, but others are derived from the options you provided or are arrays/objects the output writer needs, but shouldn't be passed on by the user. The actual options are declared as [OPTION] in the following","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"OutputWriter","category":"page"},{"location":"functions/#Function-and-type-index","page":"Function and type index","title":"Function and type index","text":"","category":"section"},{"location":"functions/","page":"Function and type index","title":"Function and type index","text":"Modules = [SpeedyWeather]","category":"page"},{"location":"functions/#SpeedyWeather.AbstractDevice","page":"Function and type index","title":"SpeedyWeather.AbstractDevice","text":"abstract type AbstractDevice\n\nSupertype of all devices SpeedyWeather.jl can ran on\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.BarotropicModel","page":"Function and type index","title":"SpeedyWeather.BarotropicModel","text":"The BarotropicModel struct holds all other structs that contain precalculated constants, whether scalars or arrays that do not change throughout model integration.\n\nspectral_grid::SpectralGrid: dictates resolution for many other components\nplanet::SpeedyWeather.AbstractPlanet: contains physical and orbital characteristics\natmosphere::SpeedyWeather.AbstractAtmosphere\nforcing::SpeedyWeather.AbstractForcing{NF} where NF<:AbstractFloat\ninitial_conditions::SpeedyWeather.InitialConditions\ntime_stepping::SpeedyWeather.TimeStepper{NF} where NF<:AbstractFloat\nspectral_transform::SpectralTransform\nhorizontal_diffusion::SpeedyWeather.HorizontalDiffusion{NF} where NF<:AbstractFloat\nimplicit::SpeedyWeather.AbstractImplicit{NF} where NF<:AbstractFloat\ngeometry::Geometry\nconstants::DynamicsConstants\ndevice_setup::SpeedyWeather.DeviceSetup\noutput::SpeedyWeather.AbstractOutputWriter\nfeedback::SpeedyWeather.AbstractFeedback\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.CPUDevice","page":"Function and type index","title":"SpeedyWeather.CPUDevice","text":"CPUDevice <: AbstractDevice\n\nIndicates that SpeedyWeather.jl runs on a single CPU \n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.Clock","page":"Function and type index","title":"SpeedyWeather.Clock","text":"Clock struct keeps track of the model time, how many days to integrate for and how many time steps this takes\n\ntime::Dates.DateTime: current model time\nn_days::Float64: number of days to integrate for, set in run!(::Simulation)\nn_timesteps::Int64: number of time steps to integrate for, set in initialize!(::Clock,::TimeStepper)\n\n.\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.ColumnVariables","page":"Function and type index","title":"SpeedyWeather.ColumnVariables","text":"Mutable struct that contains all prognostic (copies thereof) and diagnostic variables in a single column needed to evaluate the physical parametrizations. For now the struct is mutable as we will reuse the struct to iterate over horizontal grid points. Every column vector has nlev entries, from [1] at the top to [end] at the lowermost model level at the planetary boundary layer.\n\nnlev::Int64\nnband::Int64\nn_stratosphere_levels::Int64\njring::Int64\nlond::AbstractFloat\nlatd::AbstractFloat\nu::Vector{NF} where NF<:AbstractFloat\nv::Vector{NF} where NF<:AbstractFloat\ntemp::Vector{NF} where NF<:AbstractFloat\nhumid::Vector{NF} where NF<:AbstractFloat\nln_pres::Vector{NF} where NF<:AbstractFloat\npres::Vector{NF} where NF<:AbstractFloat\nu_tend::Vector{NF} where NF<:AbstractFloat\nv_tend::Vector{NF} where NF<:AbstractFloat\ntemp_tend::Vector{NF} where NF<:AbstractFloat\nhumid_tend::Vector{NF} where NF<:AbstractFloat\ngeopot::Vector{NF} where NF<:AbstractFloat\nflux_u_upward::Vector{NF} where NF<:AbstractFloat\nflux_u_downward::Vector{NF} where NF<:AbstractFloat\nflux_v_upward::Vector{NF} where NF<:AbstractFloat\nflux_v_downward::Vector{NF} where NF<:AbstractFloat\nflux_temp_upward::Vector{NF} where NF<:AbstractFloat\nflux_temp_downward::Vector{NF} where NF<:AbstractFloat\nflux_humid_upward::Vector{NF} where NF<:AbstractFloat\nflux_humid_downward::Vector{NF} where NF<:AbstractFloat\nsat_humid::Vector{NF} where NF<:AbstractFloat\nsat_vap_pres::Vector{NF} where NF<:AbstractFloat\ndry_static_energy::Vector{NF} where NF<:AbstractFloat\nmoist_static_energy::Vector{NF} where NF<:AbstractFloat\nhumid_half::Vector{NF} where NF<:AbstractFloat\nsat_humid_half::Vector{NF} where NF<:AbstractFloat\nsat_moist_static_energy::Vector{NF} where NF<:AbstractFloat\ndry_static_energy_half::Vector{NF} where NF<:AbstractFloat\nsat_moist_static_energy_half::Vector{NF} where NF<:AbstractFloat\nconditional_instability::Bool\nactivate_convection::Bool\ncloud_top::Int64\nexcess_humidity::AbstractFloat\ncloud_base_mass_flux::AbstractFloat\nprecip_convection::AbstractFloat\nnet_flux_humid::Vector{NF} where NF<:AbstractFloat\nnet_flux_dry_static_energy::Vector{NF} where NF<:AbstractFloat\nentrainment_profile::Vector{NF} where NF<:AbstractFloat\nprecip_large_scale::AbstractFloat\nwvi::Matrix{NF} where NF<:AbstractFloat\ntau2::Matrix{NF} where NF<:AbstractFloat\ndfabs::Vector{NF} where NF<:AbstractFloat\nfsfcd::AbstractFloat\nst4a::Matrix{NF} where NF<:AbstractFloat\nflux::Vector{NF} where NF<:AbstractFloat\nfsfcu::AbstractFloat\nts::AbstractFloat\nfsfc::AbstractFloat\nftop::AbstractFloat\nstratc::Vector{NF} where NF<:AbstractFloat\ntyear::AbstractFloat\ncsol::AbstractFloat\ntopsr::AbstractFloat\nfsol::AbstractFloat\nozupp::AbstractFloat\nozone::AbstractFloat\nzenit::AbstractFloat\nstratz::AbstractFloat\nalbsfc::AbstractFloat\nssrd::AbstractFloat\nssr::AbstractFloat\ntsr::AbstractFloat\ntend_t_rsw::Vector{NF} where NF<:AbstractFloat\nnorm_pres::AbstractFloat\nicltop::Int64\ncloudc::AbstractFloat\nclstr::AbstractFloat\nqcloud::AbstractFloat\nfmask::AbstractFloat\nrel_hum::Vector{NF} where NF<:AbstractFloat\ngrad_dry_static_energy::AbstractFloat\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.DeviceSetup","page":"Function and type index","title":"SpeedyWeather.DeviceSetup","text":"DeviceSetup{S<:AbstractDevice}\n\nHolds information about the device the model is running on and workgroup size. \n\ndevice::AbstractDevice: Device the model is running on \ndevice_KA::KernelAbstractions.Device: Device for use with KernelAbstractions\nn: workgroup size \n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.DiagnosticVariables","page":"Function and type index","title":"SpeedyWeather.DiagnosticVariables","text":"DiagnosticVariables{Grid<:AbstractGrid,NF<:AbstractFloat}\n\nStruct holding the diagnostic variables.\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.DynamicsConstants","page":"Function and type index","title":"SpeedyWeather.DynamicsConstants","text":"Struct holding constants needed at runtime for the dynamical core in number format NF.\n\nradius::AbstractFloat: Radius of Planet [m]\nrotation::AbstractFloat: Angular frequency of Planet's rotation [1/s]\ngravity::AbstractFloat: Gravitational acceleration [m/s^2]\nlayer_thickness::AbstractFloat: shallow water layer thickness [m]\nR_dry::AbstractFloat: specific gas constant for dry air [J/kg/K]\nR_vapour::AbstractFloat: specific gas constant for water vapour [J/kg/K]\nμ_virt_temp::AbstractFloat: used in Tv = T(1+μq) for virt temp Tv(T,q) calculation\ncₚ::AbstractFloat: specific heat at constant pressure [J/K/kg]\nκ::AbstractFloat: = R_dry/cₚ, gas const for air over heat capacity\nwater_density::AbstractFloat: water density [kg/m³]\nf_coriolis::Vector{NF} where NF<:AbstractFloat: coriolis frequency 1/s = 2Ωsin(lat)radius\nσ_lnp_A::Vector{NF} where NF<:AbstractFloat: σ-related factor A needed for adiabatic terms\nσ_lnp_B::Vector{NF} where NF<:AbstractFloat: σ-related factor B needed for adiabatic terms\nΔp_geopot_half::Vector{NF} where NF<:AbstractFloat: = R*(ln(pk+1) - ln(pk+1/2)), for half level geopotential\nΔp_geopot_full::Vector{NF} where NF<:AbstractFloat: = R*(ln(pk+1/2) - ln(pk)), for full level geopotential\ntemp_ref_profile::Vector{NF} where NF<:AbstractFloat: reference temperature profile\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.DynamicsConstants-Tuple{SpectralGrid, SpeedyWeather.AbstractPlanet, SpeedyWeather.AbstractAtmosphere, Geometry}","page":"Function and type index","title":"SpeedyWeather.DynamicsConstants","text":"DynamicsConstants(\n spectral_grid::SpectralGrid,\n planet::SpeedyWeather.AbstractPlanet,\n atmosphere::SpeedyWeather.AbstractAtmosphere,\n geometry::Geometry\n) -> Any\n\n\nGenerator function for a DynamicsConstants struct.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.DynamicsVariables","page":"Function and type index","title":"SpeedyWeather.DynamicsVariables","text":"DynamicsVariables{Grid<:AbstractGrid,NF<:AbstractFloat}\n\nStruct holding intermediate quantities for the dynamics of a given layer.\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.Earth","page":"Function and type index","title":"SpeedyWeather.Earth","text":"Create a struct Earth<:AbstractPlanet, with the following physical/orbital characteristics. Note that radius is not part of it as this should be chosen in SpectralGrid. Keyword arguments are\n\nrotation::Float64: angular frequency of Earth's rotation [rad/s]\ngravity::Float64: gravitational acceleration [m/s^2]\ndaily_cycle::Bool: switch on/off daily cycle\nlength_of_day::Float64: [hrs] in a day\nseasonal_cycle::Bool: switch on/off seasonal cycle\nlength_of_year::Float64: [days] in a year\nequinox::Dates.DateTime: time of spring equinox (year irrelevant)\naxial_tilt::Float64: angle [˚] rotation axis tilt wrt to orbit\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.EarthAtmosphere","page":"Function and type index","title":"SpeedyWeather.EarthAtmosphere","text":"Create a struct EarthAtmosphere<:AbstractPlanet, with the following physical/chemical characteristics. Note that radius is not part of it as this should be chosen in SpectralGrid. Keyword arguments are\n\nmol_mass_dry_air::Float64: molar mass of dry air [g/mol]\nmol_mass_vapour::Float64: molar mass of water vapour [g/mol]\ncₚ::Float64: specific heat at constant pressure [J/K/kg]\nR_gas::Float64: universal gas constant [J/K/mol]\nR_dry::Float64: specific gas constant for dry air [J/kg/K]\nR_vapour::Float64: specific gas constant for water vapour [J/kg/K]\nwater_density::Float64: water density [kg/m³]\nlatent_heat_condensation::Float64: latent heat of condensation [J/g] for consistency with specific humidity [g/Kg], also called alhc\nlatent_heat_sublimation::Float64: latent heat of sublimation [J/g], also called alhs\nstefan_boltzmann::Float64: stefan-Boltzmann constant [W/m²/K⁴]\nlapse_rate::Float64: moist adiabatic temperature lapse rate -dTdz [K/km]\ntemp_ref::Float64: absolute temperature at surface z=0 [K]\ntemp_top::Float64: absolute temperature in stratosphere [K]\nΔT_stratosphere::Float64: for stratospheric lapse rate [K] after Jablonowski\nσ_tropopause::Float64: start of the stratosphere in sigma coordinates\nσ_boundary_layer::Float64: top of the planetary boundary layer in sigma coordinates\nscale_height::Float64: scale height for pressure [km]\npres_ref::Float64: surface pressure [hPa]\nscale_height_humid::Float64: scale height for specific humidity [km]\nrelhumid_ref::Float64: relative humidity of near-surface air [1]\nwater_pres_ref::Float64: saturation water vapour pressure [Pa]\nlayer_thickness::Float64: layer thickness for the shallow water model [km]\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.EarthOrography","page":"Function and type index","title":"SpeedyWeather.EarthOrography","text":"Earth's orography read from file, with smoothing.\n\npath::String: path to the folder containing the orography file, pkg path default\nfile::String: filename of orography\nfile_Grid::Type{<:SpeedyWeather.RingGrids.AbstractGrid}: Grid the orography file comes on\nscale::Float64: scale orography by a factor\nsmoothing::Bool: smooth the orography field?\nsmoothing_power::Float64: power of Laplacian for smoothing\nsmoothing_strength::Float64: highest degree l is multiplied by\nsmoothing_truncation::Int64: resolution of orography in spectral trunc\norography::SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat: height [m] on grid-point space.\ngeopot_surf::LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat: surface geopotential, height*gravity [m²/s²]\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.EarthOrography-Tuple{SpectralGrid}","page":"Function and type index","title":"SpeedyWeather.EarthOrography","text":"EarthOrography(\n spectral_grid::SpectralGrid;\n kwargs...\n) -> Any\n\n\nGenerator function pulling the resolution information from spectral_grid.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.Feedback","page":"Function and type index","title":"SpeedyWeather.Feedback","text":"Feedback() -> Feedback\nFeedback(verbose::Bool) -> Feedback\nFeedback(verbose::Bool, debug::Bool) -> Feedback\n\n\nGenerator function for a Feedback struct.\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.Feedback-2","page":"Function and type index","title":"SpeedyWeather.Feedback","text":"Feedback struct that contains options and object for command-line feedback like the progress meter.\n\nverbose::Bool: print feedback to REPL?\ndebug::Bool: check for NaRs in the prognostic variables\noutput::Bool: write a progress.txt file? State synced with OutputWriter.output\nid::Union{Int64, String}: identification of run, taken from ::OutputWriter\nrun_path::String: path to run folder, taken from ::OutputWriter\nprogress_meter::ProgressMeter.Progress: struct containing everything progress related\nprogress_txt::Union{Nothing, IOStream}: txt is a Nothing in case of no output\nnars_detected::Bool: did Infs/NaNs occur in the simulation?\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.GPUDevice","page":"Function and type index","title":"SpeedyWeather.GPUDevice","text":"GPUDevice <: AbstractDevice\n\nIndicates that SpeedyWeather.jl runs on a single GPU\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.GenLogisticCoefs","page":"Function and type index","title":"SpeedyWeather.GenLogisticCoefs","text":"Coefficients of the generalised logistic function to describe the vertical coordinate. Default coefficients A,K,C,Q,B,M,ν are fitted to the old L31 configuration at ECMWF.\n\nFollowing the notation of https://en.wikipedia.org/wiki/Generalisedlogisticfunction (Dec 15 2021).\n\nChange default parameters for more/fewer levels in the stratosphere vs troposphere vs boundary layer.\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.Geometry","page":"Function and type index","title":"SpeedyWeather.Geometry","text":"Construct Geometry struct containing parameters and arrays describing an iso-latitude grid <:AbstractGrid and the vertical levels. Pass on SpectralGrid to calculate the following fields\n\nspectral_grid::SpectralGrid: SpectralGrid that defines spectral and grid resolution\nGrid::Type{<:SpeedyWeather.RingGrids.AbstractGrid}: grid of the dynamical core\nnlat_half::Int64: resolution parameter nlat_half of Grid, # of latitudes on one hemisphere (incl Equator)\nnlon_max::Int64: maximum number of longitudes (at/around Equator)\nnlon::Int64: =nlon_max, same (used for compatibility), TODO: still needed?\nnlat::Int64: number of latitude rings\nnlev::Int64: number of vertical levels\nnpoints::Int64: total number of grid points\nradius::AbstractFloat: Planet's radius [m]\nlatd::Vector{Float64}: array of latitudes in degrees (90˚...-90˚)\nlond::Vector{Float64}: array of longitudes in degrees (0...360˚), empty for non-full grids\nlonds::Vector{NF} where NF<:AbstractFloat: longitude (-180˚...180˚) for each grid point in ring order\nlatds::Vector{NF} where NF<:AbstractFloat: latitude (-90˚...˚90) for each grid point in ring order\nsinlat::Vector{NF} where NF<:AbstractFloat: sin of latitudes\ncoslat::Vector{NF} where NF<:AbstractFloat: cos of latitudes\ncoslat⁻¹::Vector{NF} where NF<:AbstractFloat: = 1/cos(lat)\ncoslat²::Vector{NF} where NF<:AbstractFloat: = cos²(lat)\ncoslat⁻²::Vector{NF} where NF<:AbstractFloat: # = 1/cos²(lat)\nσ_levels_half::Vector{NF} where NF<:AbstractFloat: σ at half levels, σ_k+1/2\nσ_levels_full::Vector{NF} where NF<:AbstractFloat: σ at full levels, σₖ\nσ_levels_thick::Vector{NF} where NF<:AbstractFloat: σ level thicknesses, σₖ₊₁ - σₖ\nln_σ_levels_full::Vector{NF} where NF<:AbstractFloat: log of σ at full levels, include surface (σ=1) as last element\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.Geometry-Tuple{SpectralGrid}","page":"Function and type index","title":"SpeedyWeather.Geometry","text":"Geometry(spectral_grid::SpectralGrid) -> Any\n\n\nGenerator function for Geometry struct based on spectral_grid.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.GridVariables","page":"Function and type index","title":"SpeedyWeather.GridVariables","text":"GridVariables{NF<:AbstractFloat}\n\nStruct holding the prognostic spectral variables of a given layer in grid point space.\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.HeldSuarez","page":"Function and type index","title":"SpeedyWeather.HeldSuarez","text":"Struct that defines the temperature relaxation from Held and Suarez, 1996 BAMS\n\nnlat::Int64: number of latitude rings\nnlev::Int64: number of vertical levels\nσb::Float64: sigma coordinate below which faster surface relaxation is applied\nrelax_time_slow::Float64: time scale [hrs] for slow global relaxation\nrelax_time_fast::Float64: time scale [hrs] for faster tropical surface relaxation\nTmin::Float64: minimum equilibrium temperature [K]\nTmax::Float64: maximum equilibrium temperature [K]\nΔTy::Float64: meridional temperature gradient [K]\nΔθz::Float64: vertical temperature gradient [K]\nκ::Base.RefValue{NF} where NF<:AbstractFloat\np₀::Base.RefValue{NF} where NF<:AbstractFloat\ntemp_relax_freq::Matrix{NF} where NF<:AbstractFloat\ntemp_equil_a::Vector{NF} where NF<:AbstractFloat\ntemp_equil_b::Vector{NF} where NF<:AbstractFloat\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.HeldSuarez-Tuple{SpectralGrid}","page":"Function and type index","title":"SpeedyWeather.HeldSuarez","text":"HeldSuarez(SG::SpectralGrid; kwargs...) -> Any\n\n\ncreate a HeldSuarez temperature relaxation with arrays allocated given spectral_grid\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.HyperDiffusion","page":"Function and type index","title":"SpeedyWeather.HyperDiffusion","text":"Struct for horizontal hyper diffusion of vor, div, temp; implicitly in spectral space with a power of the Laplacian (default=4) and the strength controlled by time_scale. Options exist to scale the diffusion by resolution, and adaptive depending on the current vorticity maximum to increase diffusion in active layers. Furthermore the power can be decreased above the tapering_σ to power_stratosphere (default 2). For Barotropic, ShallowWater, the default non-adaptive constant-time scale hyper diffusion is used. Options are\n\ntrunc::Int64: spectral resolution\nnlev::Int64: number of vertical levels\npower::Float64: power of Laplacian\ntime_scale::Float64: diffusion time scales [hrs]\nresolution_scaling::Float64: stronger diffusion with resolution? 0: constant with trunc, 1: (inverse) linear with trunc, etc\npower_stratosphere::Float64: different power for tropopause/stratosphere\ntapering_σ::Float64: linearly scale towards power_stratosphere above this σ\nadaptive::Bool: adaptive = higher diffusion for layers with higher vorticity levels.\nvor_max::Float64: above this (absolute) vorticity level [1/s], diffusion is increased\nadaptive_strength::Float64: increase strength above vor_max by this factor times max(abs(vor))/vor_max\n∇²ⁿ_2D::Vector\n∇²ⁿ_2D_implicit::Vector\n∇²ⁿ::Array{Vector{NF}, 1} where NF\n∇²ⁿ_implicit::Array{Vector{NF}, 1} where NF\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.HyperDiffusion-Tuple{SpectralGrid}","page":"Function and type index","title":"SpeedyWeather.HyperDiffusion","text":"HyperDiffusion(\n spectral_grid::SpectralGrid;\n kwargs...\n) -> Any\n\n\nGenerator function based on the resolutin in spectral_grid. Passes on keyword arguments.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.ImplicitPrimitiveEq","page":"Function and type index","title":"SpeedyWeather.ImplicitPrimitiveEq","text":"Struct that holds various precomputed arrays for the semi-implicit correction to prevent gravity waves from amplifying in the primitive equation model.\n\ntrunc::Int64: spectral resolution\nnlev::Int64: number of vertical levels\nα::Float64: time-step coefficient: 0=explicit, 0.5=centred implicit, 1=backward implicit\ntemp_profile::Vector{NF} where NF<:AbstractFloat: vertical temperature profile, obtained from diagn\nξ::Base.RefValue{NF} where NF<:AbstractFloat: time step 2α*Δt packed in RefValue for mutability\nR::Matrix{NF} where NF<:AbstractFloat: divergence: operator for the geopotential calculation\nU::Vector{NF} where NF<:AbstractFloat: divergence: the -RdTₖ∇² term excl the eigenvalues from ∇² for divergence\nL::Matrix{NF} where NF<:AbstractFloat: temperature: operator for the TₖD + κTₖDlnps/Dt term\nW::Vector{NF} where NF<:AbstractFloat: pressure: vertical averaging of the -D̄ term in the log surface pres equation\nL0::Vector{NF} where NF<:AbstractFloat: components to construct L, 1/ 2Δσ\nL1::Matrix{NF} where NF<:AbstractFloat: vert advection term in the temperature equation (below+above)\nL2::Vector{NF} where NF<:AbstractFloat: factor in front of the divsumabove term\nL3::Matrix{NF} where NF<:AbstractFloat: sumabove operator itself\nL4::Vector{NF} where NF<:AbstractFloat: factor in front of div term in Dlnps/Dt\nS::Matrix{NF} where NF<:AbstractFloat: for every l the matrix to be inverted\nS⁻¹::Array{NF, 3} where NF<:AbstractFloat: combined inverted operator: S = 1 - ξ²(RL + UW)\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.ImplicitPrimitiveEq-Tuple{SpectralGrid, Vararg{Any}}","page":"Function and type index","title":"SpeedyWeather.ImplicitPrimitiveEq","text":"ImplicitPrimitiveEq(\n spectral_grid::SpectralGrid,\n kwargs...\n) -> Any\n\n\nGenerator using the resolution from SpectralGrid.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.ImplicitShallowWater","page":"Function and type index","title":"SpeedyWeather.ImplicitShallowWater","text":"Struct that holds various precomputed arrays for the semi-implicit correction to prevent gravity waves from amplifying in the shallow water model.\n\ntrunc::Int64\nα::Float64: coefficient for semi-implicit computations to filter gravity waves\nH::Base.RefValue{NF} where NF<:AbstractFloat\nξH::Base.RefValue{NF} where NF<:AbstractFloat\ng∇²::Vector{NF} where NF<:AbstractFloat\nξg∇²::Vector{NF} where NF<:AbstractFloat\nS⁻¹::Vector{NF} where NF<:AbstractFloat\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.ImplicitShallowWater-Tuple{SpectralGrid, Vararg{Any}}","page":"Function and type index","title":"SpeedyWeather.ImplicitShallowWater","text":"ImplicitShallowWater(\n spectral_grid::SpectralGrid,\n kwargs...\n) -> Any\n\n\nGenerator using the resolution from spectral_grid.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.JablonowskiRelaxation","page":"Function and type index","title":"SpeedyWeather.JablonowskiRelaxation","text":"HeldSuarez-like temperature relaxation, but towards the Jablonowski temperature profile with increasing temperatures in the stratosphere.\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.JablonowskiRelaxation-Tuple{SpectralGrid}","page":"Function and type index","title":"SpeedyWeather.JablonowskiRelaxation","text":"JablonowskiRelaxation(SG::SpectralGrid; kwargs...) -> Any\n\n\ncreate a JablonowskiRelaxation temperature relaxation with arrays allocated given spectral_grid\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.Keepbits","page":"Function and type index","title":"SpeedyWeather.Keepbits","text":"Number of mantissa bits to keep for each prognostic variable when compressed for netCDF and .jld2 data output.\n\nu::Int64\nv::Int64\nvor::Int64\ndiv::Int64\ntemp::Int64\npres::Int64\nhumid::Int64\nprecip_cond::Int64\nprecip_conv::Int64\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.Leapfrog","page":"Function and type index","title":"SpeedyWeather.Leapfrog","text":"Leapfrog time stepping defined by the following fields\n\ntrunc::Int64: spectral resolution (max degree of spherical harmonics)\nΔt_at_T31::Float64: time step in minutes for T31, scale linearly to trunc\nradius::Any: radius of sphere [m], used for scaling\nrobert_filter::Any: Robert (1966) time filter coefficeint to suppress comput. mode\nwilliams_filter::Any: Williams time filter (Amezcua 2011) coefficient for 3rd order acc\nΔt_sec::Int64: time step Δt [s] at specified resolution\nΔt::Any: time step Δt [s/m] at specified resolution, scaled by 1/radius\nΔt_hrs::Float64: convert time step Δt from minutes to hours\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.Leapfrog-Tuple{SpectralGrid}","page":"Function and type index","title":"SpeedyWeather.Leapfrog","text":"Leapfrog(spectral_grid::SpectralGrid; kwargs...) -> Any\n\n\nGenerator function for a Leapfrog struct using spectral_grid for the resolution information.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.LinearDrag","page":"Function and type index","title":"SpeedyWeather.LinearDrag","text":"Linear boundary layer drag Following Held and Suarez, 1996 BAMS\n\nσb::Float64\ntime_scale::Float64\nnlev::Int64\ndrag_coefs::Vector{NF} where NF<:AbstractFloat\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.LinearDrag-Tuple{SpectralGrid}","page":"Function and type index","title":"SpeedyWeather.LinearDrag","text":"LinearDrag(SG::SpectralGrid; kwargs...) -> Any\n\n\nGenerator function using nlev from SG::SpectralGrid\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.MagnusCoefs","page":"Function and type index","title":"SpeedyWeather.MagnusCoefs","text":"Parameters for computing saturation vapour pressure using the August-Roche-Magnus formula,\n\neᵢ(T) = e₀ * exp(Cᵢ * (T - T₀) / (T - Tᵢ)),\n\nwhere T is in Kelvin and i = 1,2 for saturation with respect to water and ice, respectively.\n\ne₀::AbstractFloat: Saturation vapour pressure at 0°C [Pa]\nT₀::AbstractFloat: 0°C in Kelvin\nT₁::AbstractFloat\nT₂::AbstractFloat\nC₁::AbstractFloat\nC₂::AbstractFloat\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.NoBoundaryLayerDrag","page":"Function and type index","title":"SpeedyWeather.NoBoundaryLayerDrag","text":"Concrete type that disables the boundary layer drag scheme.\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.NoOrography","page":"Function and type index","title":"SpeedyWeather.NoOrography","text":"Orography with zero height in orography and zero surface geopotential geopot_surf.\n\norography::SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat: height [m] on grid-point space.\ngeopot_surf::LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat: surface geopotential, height*gravity [m²/s²]\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.NoOrography-Tuple{SpectralGrid}","page":"Function and type index","title":"SpeedyWeather.NoOrography","text":"NoOrography(spectral_grid::SpectralGrid) -> NoOrography\n\n\nGenerator function pulling the resolution information from spectral_grid.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.OutputWriter","page":"Function and type index","title":"SpeedyWeather.OutputWriter","text":"NetCDF output writer. Contains all output options and auxiliary fields for output interpolation. To be initialised with OutputWriter(::SpectralGrid,::Type{<:ModelSetup},kwargs...) to pass on the resolution information and the model type which chooses which variables to output. Options include\n\nspectral_grid::SpectralGrid\noutput::Bool\npath::String: [OPTION] path to output folder, run_???? will be created within\nid::String: [OPTION] run identification number/string\nrun_path::String\nfilename::String: [OPTION] name of the output netcdf file\nwrite_restart::Bool: [OPTION] also write restart file if output==true?\npkg_version::VersionNumber\nstartdate::Dates.DateTime\noutput_dt::Float64: [OPTION] output frequency, time step [hrs]\noutput_dt_sec::Int64: actual output time step [sec]\noutput_vars::Vector{Symbol}: [OPTION] which variables to output, u, v, vor, div, pres, temp, humid\nmissing_value::Union{Float32, Float64}: [OPTION] missing value to be used in netcdf output\ncompression_level::Int64: [OPTION] lossless compression level; 1=low but fast, 9=high but slow\nkeepbits::SpeedyWeather.Keepbits: [OPTION] mantissa bits to keep for every variable\noutput_every_n_steps::Int64\ntimestep_counter::Int64\noutput_counter::Int64\nnetcdf_file::Union{Nothing, NetCDF.NcFile}\ninput_Grid::Type{<:SpeedyWeather.RingGrids.AbstractGrid}\nas_matrix::Bool: [OPTION] sort grid points into a matrix (interpolation-free), for OctahedralClenshawGrid, OctaHEALPixGrid only\nquadrant_rotation::NTuple{4, Int64}\nmatrix_quadrant::NTuple{4, Tuple{Int64, Int64}}\noutput_Grid::Type{<:SpeedyWeather.RingGrids.AbstractFullGrid}: [OPTION] the grid used for output, full grids only\nnlat_half::Int64: [OPTION] the resolution of the output grid, default: same nlat_half as in the dynamical core\nnlon::Int64\nnlat::Int64\nnpoints::Int64\nnlev::Int64\ninterpolator::SpeedyWeather.RingGrids.AbstractInterpolator\nu::Matrix{NF} where NF<:Union{Float32, Float64}\nv::Matrix{NF} where NF<:Union{Float32, Float64}\nvor::Matrix{NF} where NF<:Union{Float32, Float64}\ndiv::Matrix{NF} where NF<:Union{Float32, Float64}\ntemp::Matrix{NF} where NF<:Union{Float32, Float64}\npres::Matrix{NF} where NF<:Union{Float32, Float64}\nhumid::Matrix{NF} where NF<:Union{Float32, Float64}\nprecip_cond::Matrix{NF} where NF<:Union{Float32, Float64}\nprecip_conv::Matrix{NF} where NF<:Union{Float32, Float64}\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.PrimitiveDryModel","page":"Function and type index","title":"SpeedyWeather.PrimitiveDryModel","text":"The PrimitiveDryModel struct holds all other structs that contain precalculated constants, whether scalars or arrays that do not change throughout model integration.\n\nspectral_grid::SpectralGrid: dictates resolution for many other components\nplanet::SpeedyWeather.AbstractPlanet: contains physical and orbital characteristics\natmosphere::SpeedyWeather.AbstractAtmosphere\ninitial_conditions::SpeedyWeather.InitialConditions\norography::SpeedyWeather.AbstractOrography{NF} where NF<:AbstractFloat\nphysics::Bool\nboundary_layer_drag::SpeedyWeather.BoundaryLayerDrag{NF} where NF<:AbstractFloat\ntemperature_relaxation::SpeedyWeather.TemperatureRelaxation{NF} where NF<:AbstractFloat\nstatic_energy_diffusion::SpeedyWeather.VerticalDiffusion{NF} where NF<:AbstractFloat\ntime_stepping::SpeedyWeather.TimeStepper{NF} where NF<:AbstractFloat\nspectral_transform::SpectralTransform\nhorizontal_diffusion::SpeedyWeather.HorizontalDiffusion{NF} where NF<:AbstractFloat\nimplicit::SpeedyWeather.AbstractImplicit{NF} where NF<:AbstractFloat\ngeometry::Geometry\nconstants::DynamicsConstants\ndevice_setup::SpeedyWeather.DeviceSetup\noutput::SpeedyWeather.AbstractOutputWriter\nfeedback::SpeedyWeather.AbstractFeedback\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.PrimitiveWetModel","page":"Function and type index","title":"SpeedyWeather.PrimitiveWetModel","text":"The PrimitiveDryModel struct holds all other structs that contain precalculated constants, whether scalars or arrays that do not change throughout model integration.\n\nspectral_grid::SpectralGrid: dictates resolution for many other components\nplanet::SpeedyWeather.AbstractPlanet: contains physical and orbital characteristics\natmosphere::SpeedyWeather.AbstractAtmosphere\ninitial_conditions::SpeedyWeather.InitialConditions\norography::SpeedyWeather.AbstractOrography{NF} where NF<:AbstractFloat\nphysics::Bool\nthermodynamics::SpeedyWeather.Thermodynamics{NF} where NF<:AbstractFloat\nboundary_layer_drag::SpeedyWeather.BoundaryLayerDrag{NF} where NF<:AbstractFloat\ntemperature_relaxation::SpeedyWeather.TemperatureRelaxation{NF} where NF<:AbstractFloat\nstatic_energy_diffusion::SpeedyWeather.VerticalDiffusion{NF} where NF<:AbstractFloat\nlarge_scale_condensation::SpeedyWeather.AbstractCondensation{NF} where NF<:AbstractFloat\ntime_stepping::SpeedyWeather.TimeStepper{NF} where NF<:AbstractFloat\nspectral_transform::SpectralTransform\nhorizontal_diffusion::SpeedyWeather.HorizontalDiffusion{NF} where NF<:AbstractFloat\nimplicit::SpeedyWeather.AbstractImplicit{NF} where NF<:AbstractFloat\ngeometry::Geometry\nconstants::DynamicsConstants\ndevice_setup::SpeedyWeather.DeviceSetup\noutput::SpeedyWeather.AbstractOutputWriter\nfeedback::SpeedyWeather.AbstractFeedback\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.ShallowWaterModel","page":"Function and type index","title":"SpeedyWeather.ShallowWaterModel","text":"The ShallowWaterModel struct holds all other structs that contain precalculated constants, whether scalars or arrays that do not change throughout model integration.\n\nspectral_grid::SpectralGrid: dictates resolution for many other components\nplanet::SpeedyWeather.AbstractPlanet: contains physical and orbital characteristics\natmosphere::SpeedyWeather.AbstractAtmosphere\nforcing::SpeedyWeather.AbstractForcing{NF} where NF<:AbstractFloat\ninitial_conditions::SpeedyWeather.InitialConditions\norography::SpeedyWeather.AbstractOrography{NF} where NF<:AbstractFloat\ntime_stepping::SpeedyWeather.TimeStepper{NF} where NF<:AbstractFloat\nspectral_transform::SpectralTransform\nhorizontal_diffusion::SpeedyWeather.HorizontalDiffusion{NF} where NF<:AbstractFloat\nimplicit::SpeedyWeather.AbstractImplicit{NF} where NF<:AbstractFloat\ngeometry::Geometry\nconstants::DynamicsConstants\ndevice_setup::SpeedyWeather.DeviceSetup\noutput::SpeedyWeather.AbstractOutputWriter\nfeedback::SpeedyWeather.AbstractFeedback\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.Simulation","page":"Function and type index","title":"SpeedyWeather.Simulation","text":"Simulation is a container struct to be used with run!(::Simulation). It contains\n\nprognostic_variables::PrognosticVariables: define the current state of the model\ndiagnostic_variables::DiagnosticVariables: contain the tendencies and auxiliary arrays to compute them\nmodel::SpeedyWeather.ModelSetup: all parameters, constant at runtime\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.SpectralGrid","page":"Function and type index","title":"SpeedyWeather.SpectralGrid","text":"Defines the horizontal spectral resolution and corresponding grid and the vertical coordinate for SpeedyWeather.jl. Options are\n\nNF::Type{<:AbstractFloat}: number format used throughout the model\ntrunc::Int64: horizontal resolution as the maximum degree of spherical harmonics\nGrid::Type{<:SpeedyWeather.RingGrids.AbstractGrid}: horizontal grid used for calculations in grid-point space\ndealiasing::Float64: how to match spectral with grid resolution: dealiasing factor, 1=linear, 2=quadratic, 3=cubic grid\nradius::Float64: radius of the sphere [m]\nnlat_half::Int64: number of latitude rings on one hemisphere (Equator incl)\nnpoints::Int64: total number of grid points in the horizontal\nnlev::Int64: number of vertical levels\nvertical_coordinates::SpeedyWeather.VerticalCoordinates: coordinates used to discretize the vertical\n\nnlat_half and npoints should not be chosen but are derived from trunc, Grid and dealiasing.\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.SpeedyCondensation","page":"Function and type index","title":"SpeedyWeather.SpeedyCondensation","text":"Large scale condensation as in Fortran SPEEDY with default values from therein.\n\nnlev::Int64: number of vertical levels\nthreshold_boundary_layer::Float64: Relative humidity threshold for boundary layer\nthreshold_range::Float64: Vertical range of relative humidity threshold\nthreshold_max::Float64: Maximum relative humidity threshold [1]\ntime_scale::Float64: Relaxation time for humidity [hrs]\nn_stratosphere_levels::Base.RefValue{Int64}\nhumid_tend_max::Vector{NF} where NF<:AbstractFloat\nrelative_threshold::Vector{NF} where NF<:AbstractFloat\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.SpectralTransform-Tuple{SpectralGrid}","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.SpectralTransform","text":"SpectralTransform(\n spectral_grid::SpectralGrid;\n recompute_legendre,\n kwargs...\n) -> SpectralTransform\n\n\nGenerator function for a SpectralTransform struct pulling in parameters from a SpectralGrid struct.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.StartFromFile","page":"Function and type index","title":"SpeedyWeather.StartFromFile","text":"Restart from a previous SpeedyWeather.jl simulation via the restart file restart.jld2 Applies interpolation in the horizontal but not in the vertical. restart.jld2 is identified by\n\npath::String: path for restart file\nid::Union{Int64, String}: run_id of restart file in run_????/restart.jld2\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.StartWithRandomVorticity","page":"Function and type index","title":"SpeedyWeather.StartWithRandomVorticity","text":"Start with random vorticity as initial conditions\n\npower::Float64: Power of the spectral distribution k^power\namplitude::Float64: (approximate) amplitude in [1/s], used as standard deviation of spherical harmonic coefficients\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.StaticEnergyDiffusion","page":"Function and type index","title":"SpeedyWeather.StaticEnergyDiffusion","text":"Diffusion of dry static energy: A relaxation towards a reference gradient of static energy wrt to geopotential, see Fortran SPEEDY documentation.\n\ntime_scale::Float64: time scale [hrs] for strength\nstatic_energy_lapse_rate::Float64: [1] ∂SE/∂Φ, vertical gradient of static energy SE with geopotential Φ\nFstar::Base.RefValue{NF} where NF<:AbstractFloat\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.Tendencies","page":"Function and type index","title":"SpeedyWeather.Tendencies","text":"Tendencies{Grid<:AbstractGrid,NF<:AbstractFloat}\n\nStruct holding the tendencies of the prognostic spectral variables for a given layer.\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.ZonalJet","page":"Function and type index","title":"SpeedyWeather.ZonalJet","text":"Create a struct that contains all parameters for the Galewsky et al, 2004 zonal jet intitial conditions for the shallow water model. Default values as in Galewsky.\n\nlatitude::Float64: jet latitude [˚N]\nwidth::Float64: jet width [˚], default ≈ 19.29˚\numax::Float64: jet maximum velocity [m/s]\nperturb_lat::Float64: perturbation latitude [˚N], position in jet by default\nperturb_lon::Float64: perturbation longitude [˚E]\nperturb_xwidth::Float64: perturbation zonal extent [˚], default ≈ 19.1˚\nperturb_ywidth::Float64: perturbation meridinoal extent [˚], default ≈ 3.8˚\nperturb_height::Float64: perturbation amplitude [m]\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.ZonalRidge","page":"Function and type index","title":"SpeedyWeather.ZonalRidge","text":"Zonal ridge orography after Jablonowski and Williamson, 2006.\n\nη₀::Float64: conversion from σ to Jablonowski's ηᵥ-coordinates\nu₀::Float64: max amplitude of zonal wind [m/s] that scales orography height\norography::SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat: height [m] on grid-point space.\ngeopot_surf::LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat: surface geopotential, height*gravity [m²/s²]\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.ZonalRidge-Tuple{SpectralGrid}","page":"Function and type index","title":"SpeedyWeather.ZonalRidge","text":"ZonalRidge(spectral_grid::SpectralGrid; kwargs...) -> Any\n\n\nGenerator function pulling the resolution information from spectral_grid.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.ZonalWind","page":"Function and type index","title":"SpeedyWeather.ZonalWind","text":"Create a struct that contains all parameters for the Jablonowski and Williamson, 2006 intitial conditions for the primitive equation model. Default values as in Jablonowski.\n\nη₀::Float64: conversion from σ to Jablonowski's ηᵥ-coordinates\nu₀::Float64: max amplitude of zonal wind [m/s]\nperturb_lat::Float64: perturbation centred at [˚N]\nperturb_lon::Float64: perturbation centred at [˚E]\nperturb_uₚ::Float64: perturbation strength [m/s]\nperturb_radius::Float64: radius of Gaussian perturbation in units of Earth's radius [1]\nΔT::Float64: temperature difference used for stratospheric lapse rate [K], Jablonowski uses ΔT = 4.8e5 [K]\nTmin::Float64: minimum temperature [K] of profile\npressure_on_orography::Bool: initialize pressure given the atmosphere.lapse_rate on orography?\n\n\n\n\n\n","category":"type"},{"location":"functions/#Base.copy!-Tuple{PrognosticVariables, PrognosticVariables}","page":"Function and type index","title":"Base.copy!","text":"copy!(progn_new::PrognosticVariables, progn_old::PrognosticVariables)\n\nCopies entries of progn_old into progn_new. Only copies those variables that are present in the model of both progn_new and progn_old.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.Device-Tuple{}","page":"Function and type index","title":"SpeedyWeather.Device","text":"Device()\n\nReturn default used device for internal purposes, either CPUDevice or GPUDevice if a GPU is available.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.DeviceArray-Tuple{SpeedyWeather.GPUDevice, Any}","page":"Function and type index","title":"SpeedyWeather.DeviceArray","text":"DeviceArray(device::AbstractDevice, x)\n\nAdapts x to a CuArray when device<:GPUDevice is used, otherwise a regular Array. Uses adapt, thus also can return SubArrays etc.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.DeviceArrayNotAdapt-Tuple{SpeedyWeather.GPUDevice, Any}","page":"Function and type index","title":"SpeedyWeather.DeviceArrayNotAdapt","text":"DeviceArrayNotAdapt(device::AbstractDevice, x)\n\nReturns a CuArray when device<:GPUDevice is used, otherwise a regular Array. Doesn't uses adapt, therefore always returns CuArray/Array\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.Device_KernelAbstractions-Tuple{SpeedyWeather.CPUDevice}","page":"Function and type index","title":"SpeedyWeather.Device_KernelAbstractions","text":"Device_KernelAbstractions(::AbstractDevice)\n\nReturn used device for use with KernelAbstractions\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.Device_KernelAbstractions-Tuple{}","page":"Function and type index","title":"SpeedyWeather.Device_KernelAbstractions","text":"Device_KernelAbstractions()\n\nReturn default used device for KernelAbstractions, either CPU or CUDADevice if a GPU is available\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.gridded!-Tuple{DiagnosticVariables, PrognosticVariables, Int64, SpeedyWeather.ModelSetup}","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.gridded!","text":"gridded!(\n diagn::DiagnosticVariables,\n progn::PrognosticVariables,\n lf::Int64,\n model::SpeedyWeather.ModelSetup\n)\n\n\nPropagate the spectral state of progn to diagn using time step/leapfrog index lf. Function barrier that calls gridded! for the respective model.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.gridded!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, SpeedyWeather.PrognosticLayerTimesteps, Int64, Barotropic}","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.gridded!","text":"gridded!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n progn::SpeedyWeather.PrognosticLayerTimesteps,\n lf::Int64,\n model::Barotropic\n)\n\n\nPropagate the spectral state of the prognostic variables progn to the diagnostic variables in diagn for the barotropic vorticity model. Updates grid vorticity, spectral stream function and spectral and grid velocities u,v.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.gridded!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, SpeedyWeather.PrognosticLayerTimesteps, Int64, PrimitiveEquation}","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.gridded!","text":"gridded!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n progn::SpeedyWeather.PrognosticLayerTimesteps,\n lf::Int64,\n model::PrimitiveEquation\n)\n\n\nPropagate the spectral state of the prognostic variables progn to the diagnostic variables in diagn for primitive equation models. Updates grid vorticity, grid divergence, grid temperature, pressure (pres_grid) and the velocities u,v.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.gridded!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, SpeedyWeather.PrognosticLayerTimesteps, Int64, ShallowWater}","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.gridded!","text":"gridded!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n progn::SpeedyWeather.PrognosticLayerTimesteps,\n lf::Int64,\n model::ShallowWater\n)\n\n\nPropagate the spectral state of the prognostic variables progn to the diagnostic variables in diagn for the shallow water model. Updates grid vorticity, grid divergence, grid interface displacement (pres_grid) and the velocities u,v.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather._scale_lat!-Union{Tuple{NF}, Tuple{SpeedyWeather.RingGrids.AbstractGrid{NF}, AbstractVector}} where NF<:AbstractFloat","page":"Function and type index","title":"SpeedyWeather._scale_lat!","text":"_scale_lat!(\n A::SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},\n v::AbstractVector\n)\n\n\nGeneric latitude scaling applied to A in-place with latitude-like vector v.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.allocate-Union{Tuple{Model}, Tuple{Type{PrognosticVariables}, SpectralGrid, Type{Model}}} where Model<:SpeedyWeather.ModelSetup","page":"Function and type index","title":"SpeedyWeather.allocate","text":"allocate(\n _::Type{PrognosticVariables},\n spectral_grid::SpectralGrid,\n _::Type{Model<:SpeedyWeather.ModelSetup}\n) -> PrognosticVariables\n\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.bernoulli_potential!-Union{Tuple{NF}, Tuple{SpeedyWeather.DiagnosticVariablesLayer{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF}, SpectralTransform}} where NF","page":"Function and type index","title":"SpeedyWeather.bernoulli_potential!","text":"bernoulli_potential!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF},\n S::SpectralTransform\n) -> LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat\n\n\nComputes the Laplace operator ∇² of the Bernoulli potential B in spectral space.\n\ncomputes the kinetic energy KE = ½(u²+v²) on the grid\ntransforms KE to spectral space\nadds geopotential for the Bernoulli potential in spectral space\ntakes the Laplace operator.\n\nThis version is used for both ShallowWater and PrimitiveEquation, only the geopotential calculation in geopotential! differs.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.boundary_layer_drag!-Tuple{ColumnVariables, LinearDrag}","page":"Function and type index","title":"SpeedyWeather.boundary_layer_drag!","text":"boundary_layer_drag!(\n column::ColumnVariables,\n scheme::LinearDrag\n)\n\n\nCompute tendency for boundary layer drag of a column and add to its tendencies fields\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.boundary_layer_drag!-Tuple{ColumnVariables, SpeedyWeather.NoBoundaryLayerDrag, PrimitiveEquation}","page":"Function and type index","title":"SpeedyWeather.boundary_layer_drag!","text":"NoBoundaryLayer scheme just passes.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.clip_negatives!-Union{Tuple{AbstractArray{T}}, Tuple{T}} where T","page":"Function and type index","title":"SpeedyWeather.clip_negatives!","text":"clip_negatives!(A::AbstractArray)\n\nSet all negative entries a in A to zero.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.create_output_folder-Tuple{String, Union{Int64, String}}","page":"Function and type index","title":"SpeedyWeather.create_output_folder","text":"create_output_folder(\n path::String,\n id::Union{Int64, String}\n) -> String\n\n\nCreates a new folder run_* with the identification id. Also returns the full path run_path of that folder.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.default_sigma_coordinates-Tuple{Integer}","page":"Function and type index","title":"SpeedyWeather.default_sigma_coordinates","text":"default_sigma_coordinates(nlev::Integer) -> Any\n\n\nVertical sigma coordinates defined by their nlev+1 half levels σ_levels_half. Sigma coordinates are fraction of surface pressure (p/p0) and are sorted from top (stratosphere) to bottom (surface). The first half level is at 0 the last at 1. Evaluate a generalised logistic function with coefficients in P for the distribution of values in between. Default coefficients follow the L31 configuration historically used at ECMWF.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.dry_static_energy!-Tuple{ColumnVariables, DynamicsConstants}","page":"Function and type index","title":"SpeedyWeather.dry_static_energy!","text":"dry_static_energy!(\n column::ColumnVariables,\n constants::DynamicsConstants\n)\n\n\nCompute the dry static energy SE = cₚT + Φ (latent heat times temperature plus geopotential) for the column.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.dynamics_tendencies!","page":"Function and type index","title":"SpeedyWeather.dynamics_tendencies!","text":"dynamics_tendencies!(\n diagn::DiagnosticVariables,\n progn::PrognosticVariables,\n model::PrimitiveEquation\n) -> Any\ndynamics_tendencies!(\n diagn::DiagnosticVariables,\n progn::PrognosticVariables,\n model::PrimitiveEquation,\n lf::Int64\n) -> Any\n\n\nCalculate all tendencies for the PrimitiveEquation model (wet or dry).\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.dynamics_tendencies!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, Dates.DateTime, Barotropic}","page":"Function and type index","title":"SpeedyWeather.dynamics_tendencies!","text":"dynamics_tendencies!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n time::Dates.DateTime,\n model::Barotropic\n)\n\n\nCalculate all tendencies for the BarotropicModel.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.dynamics_tendencies!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, SpeedyWeather.SurfaceVariables, LowerTriangularMatrix, Dates.DateTime, ShallowWater}","page":"Function and type index","title":"SpeedyWeather.dynamics_tendencies!","text":"dynamics_tendencies!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n surface::SpeedyWeather.SurfaceVariables,\n pres::LowerTriangularMatrix,\n time::Dates.DateTime,\n model::ShallowWater\n)\n\n\nCalculate all tendencies for the ShallowWaterModel.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.first_timesteps!-Tuple{PrognosticVariables, DiagnosticVariables, SpeedyWeather.ModelSetup, SpeedyWeather.AbstractOutputWriter}","page":"Function and type index","title":"SpeedyWeather.first_timesteps!","text":"first_timesteps!(\n progn::PrognosticVariables,\n diagn::DiagnosticVariables,\n model::SpeedyWeather.ModelSetup,\n output::SpeedyWeather.AbstractOutputWriter\n) -> typeof(time)\n\n\nPerforms the first two initial time steps (Euler forward, unfiltered leapfrog) to populate the prognostic variables with two time steps (t=0,Δt) that can then be used in the normal leap frogging.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.flipsign!-Tuple{AbstractArray}","page":"Function and type index","title":"SpeedyWeather.flipsign!","text":"flipgsign!(A::AbstractArray)\n\nLike -A but in-place.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.flux_divergence!-Union{Tuple{NF}, Tuple{LowerTriangularMatrix{Complex{NF}}, SpeedyWeather.RingGrids.AbstractGrid{NF}, SpeedyWeather.DiagnosticVariablesLayer{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF}, Geometry{NF}, SpectralTransform{NF}}} where NF","page":"Function and type index","title":"SpeedyWeather.flux_divergence!","text":"flux_divergence!(\n A_tend::LowerTriangularMatrix{Complex{NF}},\n A_grid::SpeedyWeather.RingGrids.AbstractGrid{NF},\n diagn::SpeedyWeather.DiagnosticVariablesLayer{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF},\n G::Geometry{NF},\n S::SpectralTransform{NF};\n add,\n flipsign\n)\n\n\nComputes ∇⋅((u,v)*A) with the option to add/overwrite A_tend and to flip_sign of the flux divergence by doing so.\n\nA_tend = ∇⋅((u,v)*A) for add=false, flip_sign=false\nA_tend = -∇⋅((u,v)*A) for add=false, flip_sign=true\nA_tend += ∇⋅((u,v)*A) for add=true, flip_sign=false\nA_tend -= ∇⋅((u,v)*A) for add=true, flip_sign=true\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.fluxes_to_tendencies!-Tuple{ColumnVariables, Geometry, DynamicsConstants}","page":"Function and type index","title":"SpeedyWeather.fluxes_to_tendencies!","text":"fluxes_to_tendencies!(\n column::ColumnVariables,\n geometry::Geometry,\n constants::DynamicsConstants\n)\n\n\nConvert the fluxes on half levels to tendencies on full levels.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.generalised_logistic-Tuple{Any, SpeedyWeather.GenLogisticCoefs}","page":"Function and type index","title":"SpeedyWeather.generalised_logistic","text":"Generalised logistic function based on the coefficients in coefs.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.geopotential!-Tuple{DiagnosticVariables, SpeedyWeather.AbstractOrography, DynamicsConstants}","page":"Function and type index","title":"SpeedyWeather.geopotential!","text":"geopotential!(\n diagn::DiagnosticVariables,\n O::SpeedyWeather.AbstractOrography,\n C::DynamicsConstants\n)\n\n\nCompute spectral geopotential geopot from spectral temperature temp and spectral surface geopotential geopot_surf (orography*gravity).\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.geopotential!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, LowerTriangularMatrix, DynamicsConstants}","page":"Function and type index","title":"SpeedyWeather.geopotential!","text":"geopotential!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n pres::LowerTriangularMatrix,\n C::DynamicsConstants\n) -> Any\n\n\ncalculates the geopotential in the ShallowWaterModel as g*η, i.e. gravity times the interface displacement (field pres)\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.geopotential!-Tuple{Vector, DynamicsConstants}","page":"Function and type index","title":"SpeedyWeather.geopotential!","text":"geopotential!(temp::Vector, C::DynamicsConstants) -> Vector\n\n\nCalculate the geopotential based on temp in a single column. This exclues the surface geopotential that would need to be added to the returned vector. Function not used in the dynamical core but for post-processing and analysis.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.get_column!-Tuple{ColumnVariables, DiagnosticVariables, Int64, Geometry}","page":"Function and type index","title":"SpeedyWeather.get_column!","text":"Recalculate ring index if not provided.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.get_column!-Tuple{ColumnVariables, DiagnosticVariables, Integer, Integer, Geometry}","page":"Function and type index","title":"SpeedyWeather.get_column!","text":"get_column!(\n C::ColumnVariables,\n D::DiagnosticVariables,\n ij::Integer,\n jring::Integer,\n G::Geometry\n)\n\n\nUpdate C::ColumnVariables by copying the prognostic variables from D::DiagnosticVariables at gridpoint index ij. Provide G::Geometry for coordinate information.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.get_full_output_file_path-Tuple{OutputWriter}","page":"Function and type index","title":"SpeedyWeather.get_full_output_file_path","text":"get_full_output_file_path(output::OutputWriter) -> String\n\n\nReturns the full path of the output file after it was created.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.get_run_id-Tuple{String, String}","page":"Function and type index","title":"SpeedyWeather.get_run_id","text":"get_run_id(path::String, id::String) -> String\n\n\nChecks existing run_???? folders in path to determine a 4-digit id number by counting up. E.g. if folder run_0001 exists it will return the string \"0002\". Does not create a folder for the returned run id.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.get_thermodynamics!-Tuple{ColumnVariables, PrimitiveDry}","page":"Function and type index","title":"SpeedyWeather.get_thermodynamics!","text":"get_thermodynamics!(\n column::ColumnVariables,\n model::PrimitiveDry\n)\n\n\nCalculate the dry static energy for the primitive dry model.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.get_thermodynamics!-Tuple{ColumnVariables, PrimitiveWet}","page":"Function and type index","title":"SpeedyWeather.get_thermodynamics!","text":"get_thermodynamics!(\n column::ColumnVariables,\n model::PrimitiveWet\n)\n\n\nCalculate thermodynamic quantities like saturation vapour pressure, saturation specific humidity, dry static energy, moist static energy and saturation moist static energy from the prognostic column variables.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.get_var-Tuple{PrognosticVariables, Symbol}","page":"Function and type index","title":"SpeedyWeather.get_var","text":"get_var(progn::PrognosticVariables, var_name::Symbol; lf::Integer=1)\n\nReturns the prognostic variable var_name at leapfrog index lf as a Vector{LowerTriangularMatrices}.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.has-Tuple{Type{<:SpeedyWeather.ModelSetup}, Symbol}","page":"Function and type index","title":"SpeedyWeather.has","text":"has(\n M::Type{<:SpeedyWeather.ModelSetup},\n var_name::Symbol\n) -> Bool\n\n\nReturns true if the model M has a prognostic variable var_name, false otherwise. The default fallback is that all variables are included. \n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.horizontal_diffusion!","page":"Function and type index","title":"SpeedyWeather.horizontal_diffusion!","text":"horizontal_diffusion!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n progn::SpeedyWeather.PrognosticLayerTimesteps,\n model::Barotropic\n)\nhorizontal_diffusion!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n progn::SpeedyWeather.PrognosticLayerTimesteps,\n model::Barotropic,\n lf::Int64\n)\n\n\nApply horizontal diffusion to vorticity in the Barotropic models.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.horizontal_diffusion!-2","page":"Function and type index","title":"SpeedyWeather.horizontal_diffusion!","text":"horizontal_diffusion!(\n progn::SpeedyWeather.PrognosticLayerTimesteps,\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n model::ShallowWater\n)\nhorizontal_diffusion!(\n progn::SpeedyWeather.PrognosticLayerTimesteps,\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n model::ShallowWater,\n lf::Int64\n)\n\n\nApply horizontal diffusion to vorticity and diffusion in the ShallowWater models.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.horizontal_diffusion!-3","page":"Function and type index","title":"SpeedyWeather.horizontal_diffusion!","text":"horizontal_diffusion!(\n progn::SpeedyWeather.PrognosticLayerTimesteps,\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n model::PrimitiveEquation\n) -> Union{Nothing, Bool}\nhorizontal_diffusion!(\n progn::SpeedyWeather.PrognosticLayerTimesteps,\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n model::PrimitiveEquation,\n lf::Int64\n) -> Union{Nothing, Bool}\n\n\nApply horizontal diffusion applied to vorticity, diffusion and temperature in the PrimitiveEquation models. Uses the constant diffusion for temperature but possibly adaptive diffusion for vorticity and divergence.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.horizontal_diffusion!-Union{Tuple{NF}, Tuple{LowerTriangularMatrix{Complex{NF}}, LowerTriangularMatrix{Complex{NF}}, AbstractVector{NF}, AbstractVector{NF}}} where NF<:AbstractFloat","page":"Function and type index","title":"SpeedyWeather.horizontal_diffusion!","text":"horizontal_diffusion!(\n tendency::LowerTriangularMatrix{Complex{NF<:AbstractFloat}},\n A::LowerTriangularMatrix{Complex{NF<:AbstractFloat}},\n ∇²ⁿ_expl::AbstractArray{NF<:AbstractFloat, 1},\n ∇²ⁿ_impl::AbstractArray{NF<:AbstractFloat, 1}\n)\n\n\nApply horizontal diffusion to a 2D field A in spectral space by updating its tendency tendency with an implicitly calculated diffusion term. The implicit diffusion of the next time step is split into an explicit part ∇²ⁿ_expl and an implicit part ∇²ⁿ_impl, such that both can be calculated in a single forward step by using A as well as its tendency tendency.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.implicit_correction!-Tuple{DiagnosticVariables, SpeedyWeather.ImplicitPrimitiveEq, PrognosticVariables}","page":"Function and type index","title":"SpeedyWeather.implicit_correction!","text":"implicit_correction!(\n diagn::DiagnosticVariables,\n implicit::SpeedyWeather.ImplicitPrimitiveEq,\n progn::PrognosticVariables\n) -> Any\n\n\nApply the implicit corrections to dampen gravity waves in the primitive equation models.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.implicit_correction!-Union{Tuple{NF}, Tuple{SpeedyWeather.DiagnosticVariablesLayer{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF}, SpeedyWeather.PrognosticLayerTimesteps{NF}, SpeedyWeather.SurfaceVariables{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF}, SpeedyWeather.PrognosticSurfaceTimesteps{NF}, SpeedyWeather.ImplicitShallowWater}} where NF","page":"Function and type index","title":"SpeedyWeather.implicit_correction!","text":"implicit_correction!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF},\n progn::SpeedyWeather.PrognosticLayerTimesteps{NF},\n diagn_surface::SpeedyWeather.SurfaceVariables{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF},\n progn_surface::SpeedyWeather.PrognosticSurfaceTimesteps{NF},\n implicit::SpeedyWeather.ImplicitShallowWater\n)\n\n\nApply correction to the tendencies in diagn to prevent the gravity waves from amplifying. The correction is implicitly evaluated using the parameter implicit.α to switch between forward, centered implicit or backward evaluation of the gravity wave terms.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initial_conditions!-Tuple{PrognosticVariables, StartFromFile, SpeedyWeather.ModelSetup}","page":"Function and type index","title":"SpeedyWeather.initial_conditions!","text":"initial_conditions!(\n progn_new::PrognosticVariables,\n initial_conditions::StartFromFile,\n model::SpeedyWeather.ModelSetup\n) -> PrognosticVariables\n\n\nRestart from a previous SpeedyWeather.jl simulation via the restart file restart.jld2 Applies interpolation in the horizontal but not in the vertical.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initial_conditions!-Tuple{PrognosticVariables, ZonalJet, ShallowWater}","page":"Function and type index","title":"SpeedyWeather.initial_conditions!","text":"initial_conditions!(\n progn::PrognosticVariables,\n initial_conditions::ZonalJet,\n model::ShallowWater\n) -> LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat\n\n\nInitial conditions from Galewsky, 2004, Tellus\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initial_conditions!-Union{Tuple{NF}, Tuple{PrognosticVariables{NF}, StartWithRandomVorticity, SpeedyWeather.ModelSetup}} where NF","page":"Function and type index","title":"SpeedyWeather.initial_conditions!","text":"initial_conditions!(\n progn::PrognosticVariables{NF},\n initial_conditions::StartWithRandomVorticity,\n model::SpeedyWeather.ModelSetup\n)\n\n\nStart with random vorticity as initial conditions\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initial_conditions!-Union{Tuple{NF}, Tuple{PrognosticVariables{NF}, ZonalWind, PrimitiveEquation}} where NF","page":"Function and type index","title":"SpeedyWeather.initial_conditions!","text":"initial_conditions!(\n progn::PrognosticVariables{NF},\n initial_conditions::ZonalWind,\n model::PrimitiveEquation\n)\n\n\nInitial conditions from Jablonowski and Williamson, 2006, QJR Meteorol. Soc\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initial_conditions-Tuple{Model} where Model","page":"Function and type index","title":"SpeedyWeather.initial_conditions","text":"initial_conditions(model) -> PrognosticVariables\n\n\nAllocate the prognostic variables and then set to initial conditions.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(\n scheme::HyperDiffusion,\n k::Int64,\n G::Geometry,\n L::SpeedyWeather.TimeStepper\n)\ninitialize!(\n scheme::HyperDiffusion,\n k::Int64,\n G::Geometry,\n L::SpeedyWeather.TimeStepper,\n vor_max::Real\n)\n\n\nPrecomputes the hyper diffusion terms in scheme for layer k based on the model time step in L, the vertical level sigma level in G, and the current (absolute) vorticity maximum level vor_max\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{Barotropic}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(model::Barotropic) -> SpeedyWeather.Simulation\n\n\nCalls all initialize! functions for components of model, except for model.output and model.feedback which are always called at in time_stepping!.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{EarthOrography, SpeedyWeather.AbstractPlanet, SpectralTransform, Geometry}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(\n orog::EarthOrography,\n P::SpeedyWeather.AbstractPlanet,\n S::SpectralTransform,\n G::Geometry\n) -> LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat\n\n\nInitialize the arrays orography,geopot_surf in orog by reading the orography field from file.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{Feedback, SpeedyWeather.Clock, SpeedyWeather.ModelSetup}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(\n feedback::Feedback,\n clock::SpeedyWeather.Clock,\n model::SpeedyWeather.ModelSetup\n) -> Union{Nothing, IOStream}\n\n\nInitializes the a Feedback struct.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{HeldSuarez, PrimitiveEquation}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(scheme::HeldSuarez, model::PrimitiveEquation)\n\n\ninitialize the HeldSuarez temperature relaxation by precomputing terms for the equilibrium temperature Teq.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{HyperDiffusion, SpeedyWeather.DiagnosticVariablesLayer, Geometry, SpeedyWeather.TimeStepper}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(\n scheme::HyperDiffusion,\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n G::Geometry,\n L::SpeedyWeather.TimeStepper\n)\n\n\nPre-function to other initialize!(::HyperDiffusion) initialisors that calculates the (absolute) vorticity maximum for the layer of diagn.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{HyperDiffusion, SpeedyWeather.ModelSetup}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(\n scheme::HyperDiffusion,\n model::SpeedyWeather.ModelSetup\n)\n\n\nPrecomputes the hyper diffusion terms in scheme based on the model time step, and possibly with a changing strength/power in the vertical.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{HyperDiffusion, SpeedyWeather.TimeStepper}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(\n scheme::HyperDiffusion,\n L::SpeedyWeather.TimeStepper\n)\n\n\nPrecomputes the 2D hyper diffusion terms in scheme based on the model time step.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{JablonowskiRelaxation, PrimitiveEquation}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(\n scheme::JablonowskiRelaxation,\n model::PrimitiveEquation\n)\n\n\ninitialize the JablonowskiRelaxation temperature relaxation by precomputing terms for the equilibrium temperature Teq and the frequency (strength of relaxation).\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{LinearDrag, PrimitiveEquation}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(scheme::LinearDrag, model::PrimitiveEquation)\n\n\nPrecomputes the drag coefficients for this BoundaryLayerDrag scheme.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{NoTemperatureRelaxation, PrimitiveEquation}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(\n scheme::NoTemperatureRelaxation,\n model::PrimitiveEquation\n)\n\n\njust passes, does not need any initialization.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{PrimitiveDry}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(model::PrimitiveDry) -> SpeedyWeather.Simulation\n\n\nCalls all initialize! functions for components of model, except for model.output and model.feedback which are always called at in time_stepping! and model.implicit which is done in first_timesteps!.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{PrimitiveWet}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(model::PrimitiveWet) -> SpeedyWeather.Simulation\n\n\nCalls all initialize! functions for components of model, except for model.output and model.feedback which are always called at in time_stepping! and model.implicit which is done in first_timesteps!.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{ShallowWater}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(model::ShallowWater) -> SpeedyWeather.Simulation\n\n\nCalls all initialize! functions for components of model, except for model.output and model.feedback which are always called at in time_stepping! and model.implicit which is done in first_timesteps!.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{SpeedyCondensation, PrimitiveEquation}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(\n scheme::SpeedyCondensation,\n model::PrimitiveEquation\n)\n\n\nInitialize the SpeedyCondensation scheme.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{SpeedyWeather.Clock, SpeedyWeather.TimeStepper}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(\n clock::SpeedyWeather.Clock,\n time_stepping::SpeedyWeather.TimeStepper\n) -> SpeedyWeather.Clock\n\n\nInitialize the clock with the time step Δt in the time_stepping.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{SpeedyWeather.ImplicitPrimitiveEq, Integer, Real, DiagnosticVariables, Geometry, DynamicsConstants}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(\n implicit::SpeedyWeather.ImplicitPrimitiveEq,\n i::Integer,\n dt::Real,\n diagn::DiagnosticVariables,\n geometry::Geometry,\n constants::DynamicsConstants\n)\n\n\nReinitialize implicit occasionally based on time step i and implicit.recalculate.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{SpeedyWeather.ImplicitPrimitiveEq, Real, DiagnosticVariables, Geometry, DynamicsConstants}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(\n implicit::SpeedyWeather.ImplicitPrimitiveEq,\n dt::Real,\n diagn::DiagnosticVariables,\n geometry::Geometry,\n constants::DynamicsConstants\n)\n\n\nInitialize the implicit terms for the PrimitiveEquation models.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{SpeedyWeather.ImplicitShallowWater, Real, DynamicsConstants}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(\n implicit::SpeedyWeather.ImplicitShallowWater,\n dt::Real,\n constants::DynamicsConstants\n)\n\n\nUpdate the implicit terms in implicit for the shallow water model as they depend on the time step dt.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{SpeedyWeather.NoBoundaryLayerDrag, PrimitiveEquation}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"NoBoundaryLayer scheme does not need any initialisation.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{ZonalRidge, SpeedyWeather.AbstractPlanet, SpectralTransform, Geometry}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(\n orog::ZonalRidge,\n P::SpeedyWeather.AbstractPlanet,\n S::SpectralTransform,\n G::Geometry\n) -> LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat\n\n\nInitialize the arrays orography,geopot_surf in orog following Jablonowski and Williamson, 2006.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Union{Tuple{Model}, Tuple{output_NF}, Tuple{OutputWriter{output_NF, Model}, SpeedyWeather.AbstractFeedback, SpeedyWeather.TimeStepper, DiagnosticVariables, Model}} where {output_NF, Model}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(\n output::OutputWriter{output_NF, Model},\n feedback::SpeedyWeather.AbstractFeedback,\n time_stepping::SpeedyWeather.TimeStepper,\n diagn::DiagnosticVariables,\n model\n)\n\n\nCreates a netcdf file on disk and the corresponding netcdf_file object preallocated with output variables and dimensions. write_output! then writes consecuitive time steps into this file.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Union{Tuple{NF}, Tuple{SpeedyWeather.StaticEnergyDiffusion{NF}, PrimitiveEquation}} where NF","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(\n scheme::SpeedyWeather.StaticEnergyDiffusion{NF},\n model::PrimitiveEquation\n) -> Any\n\n\nInitialize dry static energy diffusion.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize_geopotential-Tuple{Vector, Vector, Real}","page":"Function and type index","title":"SpeedyWeather.initialize_geopotential","text":"initialize_geopotential(\n σ_levels_full::Vector,\n σ_levels_half::Vector,\n R_dry::Real\n) -> Tuple{Vector{Float64}, Vector{Float64}}\n\n\nPrecomputes constants for the vertical integration of the geopotential, defined as\n\nΦ_{k+1/2} = Φ_{k+1} + R*T_{k+1}*(ln(p_{k+1}) - ln(p_{k+1/2})) (half levels) Φ_k = Φ_{k+1/2} + R*T_k*(ln(p_{k+1/2}) - ln(p_k)) (full levels)\n\nSame formula but k → k-1/2.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.isdecreasing-Tuple{Vector}","page":"Function and type index","title":"SpeedyWeather.isdecreasing","text":"true/false = isdecreasing(v::Vector)\n\nCheck whether elements of a vector v are strictly decreasing.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.isincreasing-Tuple{Vector}","page":"Function and type index","title":"SpeedyWeather.isincreasing","text":"true/false = isincreasing(v::Vector)\n\nCheck whether elements of a vector v are strictly increasing.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.large_scale_condensation!-Tuple{ColumnVariables, PrimitiveDry}","page":"Function and type index","title":"SpeedyWeather.large_scale_condensation!","text":"large_scale_condensation!(\n column::ColumnVariables,\n model::PrimitiveDry\n)\n\n\nNo condensation in a PrimitiveDry model.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.large_scale_condensation!-Tuple{ColumnVariables, PrimitiveWet}","page":"Function and type index","title":"SpeedyWeather.large_scale_condensation!","text":"Function barrier only.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.large_scale_condensation!-Union{Tuple{NF}, Tuple{ColumnVariables{NF}, SpeedyCondensation, Geometry, DynamicsConstants, SpeedyWeather.AbstractAtmosphere, SpeedyWeather.TimeStepper}} where NF","page":"Function and type index","title":"SpeedyWeather.large_scale_condensation!","text":"large_scale_condensation!(\n column::ColumnVariables{NF},\n scheme::SpeedyCondensation,\n geometry::Geometry,\n constants::DynamicsConstants,\n atmosphere::SpeedyWeather.AbstractAtmosphere,\n time_stepping::SpeedyWeather.TimeStepper\n)\n\n\nLarge-scale condensation for a column by relaxation back to a reference relative humidity if larger than that. Calculates the tendencies for specific humidity and temperature and integrates the large-scale precipitation vertically for output.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.launch_kernel!-Tuple{SpeedyWeather.DeviceSetup, Any, Any, Vararg{Any}}","page":"Function and type index","title":"SpeedyWeather.launch_kernel!","text":"launch_kernel!(device_setup::DeviceSetup, kernel!, ndrange, kernel_args...)\n\nLaunches the kernel! on the device_setup with ndrange computations over the kernel and arguments kernel_args\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.leapfrog!-Union{Tuple{NF}, Tuple{LowerTriangularMatrix{Complex{NF}}, LowerTriangularMatrix{Complex{NF}}, LowerTriangularMatrix{Complex{NF}}, Real, Int64, Leapfrog{NF}}} where NF<:AbstractFloat","page":"Function and type index","title":"SpeedyWeather.leapfrog!","text":"leapfrog!(\n A_old::LowerTriangularMatrix{Complex{NF<:AbstractFloat}},\n A_new::LowerTriangularMatrix{Complex{NF<:AbstractFloat}},\n tendency::LowerTriangularMatrix{Complex{NF<:AbstractFloat}},\n dt::Real,\n lf::Int64,\n L::Leapfrog{NF<:AbstractFloat}\n)\n\n\nPerforms one leapfrog time step with (lf=2) or without (lf=1) Robert+Williams filter (see Williams (2009), Montly Weather Review, Eq. 7-9).\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.linear_pressure_gradient!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, SpeedyWeather.PrognosticSurfaceTimesteps, Int64, DynamicsConstants, SpeedyWeather.ImplicitPrimitiveEq}","page":"Function and type index","title":"SpeedyWeather.linear_pressure_gradient!","text":"linear_pressure_gradient!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n surface::SpeedyWeather.PrognosticSurfaceTimesteps,\n lf::Int64,\n C::DynamicsConstants,\n I::SpeedyWeather.ImplicitPrimitiveEq\n) -> LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat\n\n\nAdd the linear contribution of the pressure gradient to the geopotential. The pressure gradient in the divergence equation takes the form\n\n-∇⋅(Rd*Tᵥ*∇lnpₛ) = -∇⋅(Rd*Tᵥ'*∇lnpₛ) - ∇²(Rd*Tₖ*lnpₛ)\n\nSo that the second term inside the Laplace operator can be added to the geopotential. Rd is the gas constant, Tᵥ the virtual temperature and Tᵥ' its anomaly wrt to the average or reference temperature Tₖ, lnpₛ is the logarithm of surface pressure.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.linear_virtual_temperature!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, SpeedyWeather.PrognosticLayerTimesteps, DynamicsConstants, Int64}","page":"Function and type index","title":"SpeedyWeather.linear_virtual_temperature!","text":"linear_virtual_temperature!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n progn::SpeedyWeather.PrognosticLayerTimesteps,\n constants::DynamicsConstants,\n lf::Int64\n) -> Any\n\n\nCalculates a linearised virtual temperature Tᵥ as\n\nTᵥ = T + Tₖμq\n\nWith absolute temperature T, layer-average temperarture Tₖ (computed in temperature_average!), specific humidity q and\n\nμ = (1-ξ)/ξ, ξ = R_dry/R_vapour.\n\nin spectral space.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.linear_virtual_temperature!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, SpeedyWeather.PrognosticLayerTimesteps, PrimitiveDry, Integer}","page":"Function and type index","title":"SpeedyWeather.linear_virtual_temperature!","text":"linear_virtual_temperature!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n progn::SpeedyWeather.PrognosticLayerTimesteps,\n model::PrimitiveDry,\n lf::Integer\n) -> LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat\n\n\nLinear virtual temperature for model::PrimitiveDry: Just copy over arrays from temp to temp_virt at timestep lf in spectral space as humidity is zero in this model.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.load_trajectory-Tuple{Union{String, Symbol}, SpeedyWeather.ModelSetup}","page":"Function and type index","title":"SpeedyWeather.load_trajectory","text":"load_trajectory(\n var_name::Union{String, Symbol},\n model::SpeedyWeather.ModelSetup\n) -> Any\n\n\nLoads a var_name trajectory of the model M that has been saved in a netCDF file during the time stepping.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.moist_static_energy!-Tuple{ColumnVariables, SpeedyWeather.Thermodynamics}","page":"Function and type index","title":"SpeedyWeather.moist_static_energy!","text":"moist_static_energy!(\n column::ColumnVariables,\n thermodynamics::SpeedyWeather.Thermodynamics\n)\n\n\nCompute the moist static energy\n\nMSE = SE + Lc*Q = cₚT + Φ + Lc*Q\n\nwith the static energy SE, the latent heat of condensation Lc, the geopotential Φ. As well as the saturation moist static energy which replaces Q with Q_sat\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.nans-Tuple","page":"Function and type index","title":"SpeedyWeather.nans","text":"A = nans(dims...)\n\nAllocate A::Array{Float64} with NaNs.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.nans-Union{Tuple{T}, Tuple{Type{T}, Vararg{Any}}} where T","page":"Function and type index","title":"SpeedyWeather.nans","text":"A = nans(T,dims...)\n\nAllocate array A with NaNs of type T. Similar to zeros(T,dims...).\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.nar_detection!-Tuple{Feedback, PrognosticVariables}","page":"Function and type index","title":"SpeedyWeather.nar_detection!","text":"nar_detection!(\n feedback::Feedback,\n progn::PrognosticVariables\n) -> Union{Nothing, Bool}\n\n\nDetect NaR (Not-a-Real) in the prognostic variables.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.parameterization_tendencies!-Tuple{DiagnosticVariables, Dates.DateTime, PrimitiveEquation}","page":"Function and type index","title":"SpeedyWeather.parameterization_tendencies!","text":"parameterization_tendencies!(\n diagn::DiagnosticVariables,\n time::Dates.DateTime,\n model::PrimitiveEquation\n) -> Any\n\n\nCompute tendencies for u,v,temp,humid from physical parametrizations. Extract for each vertical atmospheric column the prognostic variables (stored in diagn as they are grid-point transformed), loop over all grid-points, compute all parametrizations on a single-column basis, then write the tendencies back into a horizontal field of tendencies.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.pressure_on_orography!-Tuple{PrognosticVariables, PrimitiveEquation}","page":"Function and type index","title":"SpeedyWeather.pressure_on_orography!","text":"pressure_on_orography!(\n progn::PrognosticVariables,\n model::PrimitiveEquation\n)\n\n\nInitialize surface pressure on orography by integrating the hydrostatic equation with the reference temperature lapse rate.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.progress!-Tuple{Feedback}","page":"Function and type index","title":"SpeedyWeather.progress!","text":"progress!(feedback::Feedback)\n\n\nCalls the progress meter and writes every 5% progress increase to txt.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.progress_finish!-Tuple{Feedback}","page":"Function and type index","title":"SpeedyWeather.progress_finish!","text":"progress_finish!(F::Feedback)\n\n\nFinalises the progress meter and the progress txt file.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.readable_secs-Tuple{Real}","page":"Function and type index","title":"SpeedyWeather.readable_secs","text":"readable_secs(secs::Real) -> Dates.CompoundPeriod\n\n\nReturns Dates.CompoundPeriod rounding to either (days, hours), (hours, minutes), (minutes, seconds), or seconds with 1 decimal place accuracy for >10s and two for less. E.g.\n\njulia> readable_secs(12345)\n3 hours, 26 minutes\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.remaining_time-Tuple{ProgressMeter.Progress}","page":"Function and type index","title":"SpeedyWeather.remaining_time","text":"remaining_time(p::ProgressMeter.Progress) -> String\n\n\nEstimates the remaining time from a ProgresssMeter.Progress. Adapted from ProgressMeter.jl\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.reset_column!-Union{Tuple{ColumnVariables{NF}}, Tuple{NF}} where NF","page":"Function and type index","title":"SpeedyWeather.reset_column!","text":"reset_column!(column::ColumnVariables{NF})\n\n\nSet the accumulators (tendencies but also vertical sums and similar) back to zero for column to be reused at other grid points.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.run!-Tuple{SpeedyWeather.Simulation}","page":"Function and type index","title":"SpeedyWeather.run!","text":"run!(\n simulation::SpeedyWeather.Simulation;\n initialize,\n n_days,\n startdate,\n output\n) -> PrognosticVariables\n\n\nRun a SpeedyWeather.jl simulation. The simulation.model is assumed to be initialized, otherwise use initialize=true as keyword argument.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.saturation_humidity!-Tuple{ColumnVariables, SpeedyWeather.Thermodynamics}","page":"Function and type index","title":"SpeedyWeather.saturation_humidity!","text":"saturation_humidity!(\n column::ColumnVariables,\n thermodynamics::SpeedyWeather.Thermodynamics\n)\n\n\nCompute (1) the saturation vapour pressure as a function of temperature using the August-Roche-Magnus formula,\n\neᵢ(T) = e₀ * exp(Cᵢ * (T - T₀) / (T - Tᵢ)),\n\nwhere T is in Kelvin and i = 1,2 for saturation with respect to water and ice, respectively. And (2) the saturation specific humidity according to the formula,\n\n0.622 * e / (p - (1 - 0.622) * e),\n\nwhere e is the saturation vapour pressure, p is the pressure, and 0.622 is the ratio of the molecular weight of water to dry air.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.scale!-Tuple{PrognosticVariables, Real}","page":"Function and type index","title":"SpeedyWeather.scale!","text":"scale!(progn::PrognosticVariables, scale::Real) -> Real\n\n\nScales the prognostic variables vorticity and divergence with the Earth's radius which is used in the dynamical core.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.scale!-Union{Tuple{NF}, Tuple{PrognosticVariables{NF}, Symbol, Real}} where NF","page":"Function and type index","title":"SpeedyWeather.scale!","text":"scale!(\n progn::PrognosticVariables{NF},\n var::Symbol,\n scale::Real\n)\n\n\nScale the variable var inside progn with scalar scale.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.set_divergence!-Tuple{PrognosticVariables, Vararg{Any}}","page":"Function and type index","title":"SpeedyWeather.set_divergence!","text":"set_divergence!(progn::PrognosticVariables, varargs...; kwargs...)\n\nSee set_var!\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.set_humidity!-Tuple{PrognosticVariables, Vararg{Any}}","page":"Function and type index","title":"SpeedyWeather.set_humidity!","text":"set_humidity!(progn::PrognosticVariables, varargs...; kwargs...)\n\nSee set_var!\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.set_pressure!","page":"Function and type index","title":"SpeedyWeather.set_pressure!","text":"set_pressure!(progn::PrognosticVariables{NF}, \n pressure::AbstractGrid, \n lf::Integer=1) where NF\n\nSets the prognostic variable with the surface pressure in grid space at leapfrog index lf.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.set_pressure!-2","page":"Function and type index","title":"SpeedyWeather.set_pressure!","text":"set_pressure!(progn::PrognosticVariables{NF}, \n pressure::AbstractMatrix, \n Grid::Type{<:AbstractGrid}, \n lf::Integer=1) where NF\n\nSets the prognostic variable with the surface pressure in grid space at leapfrog index lf.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.set_pressure!-Tuple{PrognosticVariables, SpeedyWeather.RingGrids.AbstractGrid, SpeedyWeather.ModelSetup}","page":"Function and type index","title":"SpeedyWeather.set_pressure!","text":"set_pressure!(progn::PrognosticVariables{NF}, \n pressure::AbstractGrid, \n M::ModelSetup;\n lf::Integer=1) where NF\n\nSets the prognostic variable with the surface pressure in grid space at leapfrog index lf.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.set_pressure!-Union{Tuple{NF}, Tuple{PrognosticVariables{NF}, LowerTriangularMatrix}} where NF","page":"Function and type index","title":"SpeedyWeather.set_pressure!","text":"set_pressure!(progn::PrognosticVariables{NF}, \n pressure::LowerTriangularMatrix;\n lf::Integer=1) where NF\n\nSets the prognostic variable with the surface pressure in spectral space at leapfrog index lf.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.set_temperature!-Tuple{PrognosticVariables, Vararg{Any}}","page":"Function and type index","title":"SpeedyWeather.set_temperature!","text":"set_temperature!(progn::PrognosticVariables, varargs...; kwargs...)\n\nSee set_var!\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.set_var!-Union{Tuple{NF}, Tuple{PrognosticVariables{NF}, Symbol, Number}} where NF","page":"Function and type index","title":"SpeedyWeather.set_var!","text":"function set_var!(progn::PrognosticVariables{NF}, \n varname::Symbol, \n s::Number;\n lf::Integer=1) where NF\n\nSets all values of prognostic variable varname at leapfrog index lf to the scalar s.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.set_var!-Union{Tuple{NF}, Tuple{PrognosticVariables{NF}, Symbol, Vector{<:AbstractMatrix}}, Tuple{PrognosticVariables{NF}, Symbol, Vector{<:AbstractMatrix}, Type{<:SpeedyWeather.RingGrids.AbstractGrid}}} where NF","page":"Function and type index","title":"SpeedyWeather.set_var!","text":"set_var!(progn::PrognosticVariables{NF}, \n varname::Symbol, \n var::Vector{<:AbstractMatrix}, \n Grid::Type{<:AbstractGrid}=FullGaussianGrid;\n lf::Integer=1) where NF\n\nSets the prognostic variable with the name varname in all layers at leapfrog index lf with values given in var a vector with all information for all layers in grid space.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.set_var!-Union{Tuple{NF}, Tuple{PrognosticVariables{NF}, Symbol, Vector{<:LowerTriangularMatrix}}} where NF","page":"Function and type index","title":"SpeedyWeather.set_var!","text":"set_var!(progn::PrognosticVariables{NF}, \n varname::Symbol, \n var::Vector{<:LowerTriangularMatrix};\n lf::Integer=1) where NF\n\nSets the prognostic variable with the name varname in all layers at leapfrog index lf with values given in var a vector with all information for all layers in spectral space.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.set_var!-Union{Tuple{NF}, Tuple{PrognosticVariables{NF}, Symbol, Vector{<:SpeedyWeather.RingGrids.AbstractGrid}, SpeedyWeather.ModelSetup}} where NF","page":"Function and type index","title":"SpeedyWeather.set_var!","text":"set_var!(progn::PrognosticVariables{NF}, \n varname::Symbol, \n var::Vector{<:AbstractGrid}, \n M::ModelSetup;\n lf::Integer=1) where NF\n\nSets the prognostic variable with the name varname in all layers at leapfrog index lf with values given in var a vector with all information for all layers in grid space.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.set_var!-Union{Tuple{NF}, Tuple{PrognosticVariables{NF}, Symbol, Vector{<:SpeedyWeather.RingGrids.AbstractGrid}}} where NF","page":"Function and type index","title":"SpeedyWeather.set_var!","text":"set_var!(progn::PrognosticVariables{NF}, \n varname::Symbol, \n var::Vector{<:AbstractGrid};\n lf::Integer=1) where NF\n\nSets the prognostic variable with the name varname in all layers at leapfrog index lf with values given in var a vector with all information for all layers in grid space.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.set_vorticity!-Tuple{PrognosticVariables, Vararg{Any}}","page":"Function and type index","title":"SpeedyWeather.set_vorticity!","text":"set_vorticity!(progn::PrognosticVariables, varargs...; kwargs...)\n\nSee set_var!\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.sigma_okay-Tuple{Integer, AbstractVector}","page":"Function and type index","title":"SpeedyWeather.sigma_okay","text":"sigma_okay(nlev::Integer, σ_half::AbstractVector) -> Bool\n\n\nCheck that nlev and σ_half match.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.speedstring-Tuple{Any, Any}","page":"Function and type index","title":"SpeedyWeather.speedstring","text":"speedstring(sec_per_iter, dt_in_sec) -> String\n\n\ndefine a ProgressMeter.speedstring method that also takes a time step dt_in_sec to translate sec/iteration to days/days-like speeds.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.static_energy_diffusion!-Union{Tuple{NF}, Tuple{ColumnVariables{NF}, SpeedyWeather.StaticEnergyDiffusion}} where NF","page":"Function and type index","title":"SpeedyWeather.static_energy_diffusion!","text":"static_energy_diffusion!(\n column::ColumnVariables{NF},\n scheme::SpeedyWeather.StaticEnergyDiffusion\n)\n\n\nApply dry static energy diffusion.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.surface_pressure_tendency!-Tuple{SpeedyWeather.SurfaceVariables, SpectralTransform}","page":"Function and type index","title":"SpeedyWeather.surface_pressure_tendency!","text":"surface_pressure_tendency!( Prog::PrognosticVariables,\n Diag::DiagnosticVariables,\n lf::Int,\n M::PrimitiveEquation)\n\nComputes the tendency of the logarithm of surface pressure as\n\n-(ū*px + v̄*py) - D̄\n\nwith ū,v̄ being the vertically averaged velocities; px, py the gradients of the logarithm of surface pressure ln(p_s) and D̄ the vertically averaged divergence.\n\nCalculate ∇ln(p_s) in spectral space, convert to grid.\nMultiply ū,v̄ with ∇ln(p_s) in grid-point space, convert to spectral.\nD̄ is subtracted in spectral space.\nSet tendency of the l=m=0 mode to 0 for better mass conservation.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.temperature_anomaly!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, SpeedyWeather.ImplicitPrimitiveEq}","page":"Function and type index","title":"SpeedyWeather.temperature_anomaly!","text":"Convert absolute and virtual temperature to anomalies wrt to the reference profile\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.temperature_average!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, LowerTriangularMatrix, SpectralTransform}","page":"Function and type index","title":"SpeedyWeather.temperature_average!","text":"temperature_average!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n temp::LowerTriangularMatrix,\n S::SpectralTransform\n) -> Any\n\n\nCalculates the average temperature of a layer from the l=m=0 harmonic and stores the result in diagn.temp_average\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.temperature_relaxation!-Tuple{ColumnVariables, JablonowskiRelaxation}","page":"Function and type index","title":"SpeedyWeather.temperature_relaxation!","text":"temperature_relaxation!(\n column::ColumnVariables,\n scheme::JablonowskiRelaxation\n)\n\n\nApply HeldSuarez-like temperature relaxation to the Jablonowski and Williamson vertical profile.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.temperature_relaxation!-Tuple{ColumnVariables, NoTemperatureRelaxation}","page":"Function and type index","title":"SpeedyWeather.temperature_relaxation!","text":"temperature_relaxation!(\n column::ColumnVariables,\n scheme::NoTemperatureRelaxation\n)\n\n\njust passes.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.temperature_relaxation!-Union{Tuple{NF}, Tuple{ColumnVariables{NF}, HeldSuarez}} where NF","page":"Function and type index","title":"SpeedyWeather.temperature_relaxation!","text":"temperature_relaxation!(\n column::ColumnVariables{NF},\n scheme::HeldSuarez\n)\n\n\nApply temperature relaxation following Held and Suarez 1996, BAMS.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.temperature_tendency!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, DynamicsConstants, Geometry, SpectralTransform, SpeedyWeather.ImplicitPrimitiveEq}","page":"Function and type index","title":"SpeedyWeather.temperature_tendency!","text":"temperature_tendency!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n C::DynamicsConstants,\n G::Geometry,\n S::SpectralTransform,\n I::SpeedyWeather.ImplicitPrimitiveEq\n)\n\n\nCompute the temperature tendency\n\n∂T/∂t += -∇⋅((u,v)*T') + T'D + κTᵥ*Dlnp/Dt\n\n+= because the tendencies already contain parameterizations and vertical advection. T' is the anomaly with respect to the reference/average temperature. Tᵥ is the virtual temperature used in the adiabatic term κTᵥ*Dlnp/Dt.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.temperature_tendency!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, PrimitiveEquation}","page":"Function and type index","title":"SpeedyWeather.temperature_tendency!","text":"temperature_tendency!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n model::PrimitiveEquation\n)\n\n\nFunction barrier to unpack model.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.time_stepping!-Tuple{PrognosticVariables, DiagnosticVariables, SpeedyWeather.ModelSetup}","page":"Function and type index","title":"SpeedyWeather.time_stepping!","text":"time_stepping!(\n progn::PrognosticVariables,\n diagn::DiagnosticVariables,\n model::SpeedyWeather.ModelSetup\n) -> PrognosticVariables\n\n\nMain time loop that that initializes output and feedback, loops over all time steps and calls the output and feedback functions.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.timestep!","page":"Function and type index","title":"SpeedyWeather.timestep!","text":"timestep!(\n progn::PrognosticVariables,\n diagn::DiagnosticVariables,\n dt::Real,\n i::Integer,\n model::Barotropic\n)\ntimestep!(\n progn::PrognosticVariables,\n diagn::DiagnosticVariables,\n dt::Real,\n i::Integer,\n model::Barotropic,\n lf1::Int64\n)\ntimestep!(\n progn::PrognosticVariables,\n diagn::DiagnosticVariables,\n dt::Real,\n i::Integer,\n model::Barotropic,\n lf1::Int64,\n lf2::Int64\n)\n\n\nCalculate a single time step for the model <: Barotropic.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.timestep!-Union{Tuple{NF}, Tuple{PrognosticVariables{NF}, DiagnosticVariables{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF}, Real, Integer, PrimitiveEquation}, Tuple{PrognosticVariables{NF}, DiagnosticVariables{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF}, Real, Integer, PrimitiveEquation, Int64}, Tuple{PrognosticVariables{NF}, DiagnosticVariables{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF}, Real, Integer, PrimitiveEquation, Int64, Int64}} where NF<:AbstractFloat","page":"Function and type index","title":"SpeedyWeather.timestep!","text":"timestep!(\n progn::PrognosticVariables{NF<:AbstractFloat},\n diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},\n dt::Real,\n i::Integer,\n model::PrimitiveEquation\n) -> Any\ntimestep!(\n progn::PrognosticVariables{NF<:AbstractFloat},\n diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},\n dt::Real,\n i::Integer,\n model::PrimitiveEquation,\n lf1::Int64\n) -> Any\ntimestep!(\n progn::PrognosticVariables{NF<:AbstractFloat},\n diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},\n dt::Real,\n i::Integer,\n model::PrimitiveEquation,\n lf1::Int64,\n lf2::Int64\n) -> Any\n\n\nCalculate a single time step for the model<:PrimitiveEquation\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.timestep!-Union{Tuple{NF}, Tuple{PrognosticVariables{NF}, DiagnosticVariables{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF}, Real, Integer, ShallowWater}, Tuple{PrognosticVariables{NF}, DiagnosticVariables{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF}, Real, Integer, ShallowWater, Int64}, Tuple{PrognosticVariables{NF}, DiagnosticVariables{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF}, Real, Integer, ShallowWater, Int64, Int64}} where NF<:AbstractFloat","page":"Function and type index","title":"SpeedyWeather.timestep!","text":"timestep!(\n progn::PrognosticVariables{NF<:AbstractFloat},\n diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},\n dt::Real,\n i::Integer,\n model::ShallowWater\n) -> Union{Nothing, SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat}\ntimestep!(\n progn::PrognosticVariables{NF<:AbstractFloat},\n diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},\n dt::Real,\n i::Integer,\n model::ShallowWater,\n lf1::Int64\n) -> Union{Nothing, SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat}\ntimestep!(\n progn::PrognosticVariables{NF<:AbstractFloat},\n diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},\n dt::Real,\n i::Integer,\n model::ShallowWater,\n lf1::Int64,\n lf2::Int64\n) -> Union{Nothing, SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat}\n\n\nCalculate a single time step for the model <: ShallowWater.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.underflow!-Union{Tuple{T}, Tuple{AbstractArray{T}, Real}} where T","page":"Function and type index","title":"SpeedyWeather.underflow!","text":"underflow!(A::AbstractArray,ϵ::Real)\n\nUnderflows element a in A to zero if abs(a) < ϵ.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.unscale!-Tuple{AbstractArray, Real}","page":"Function and type index","title":"SpeedyWeather.unscale!","text":"unscale!(variable::AbstractArray, scale::Real) -> Any\n\n\nUndo the radius-scaling for any variable. Method used for netcdf output.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.unscale!-Tuple{PrognosticVariables}","page":"Function and type index","title":"SpeedyWeather.unscale!","text":"unscale!(progn::PrognosticVariables) -> Int64\n\n\nUndo the radius-scaling of vorticity and divergence from scale!(progn,scale::Real).\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.vertical_integration!-Union{Tuple{NF}, Tuple{DiagnosticVariables{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF}, PrognosticVariables{NF}, Int64, Geometry{NF}}} where NF","page":"Function and type index","title":"SpeedyWeather.vertical_integration!","text":"vertical_integration!(Diag::DiagnosticVariables,G::Geometry)\n\nCalculates the vertically averaged (weighted by the thickness of the σ level) velocities (*coslat) and divergence. E.g.\n\nu_mean = ∑_k=1^nlev Δσ_k * u_k\n\nu,v are averaged in grid-point space, divergence in spectral space.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.virtual_temperature!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, LowerTriangularMatrix, DynamicsConstants}","page":"Function and type index","title":"SpeedyWeather.virtual_temperature!","text":"virtual_temperature!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n temp::LowerTriangularMatrix,\n constants::DynamicsConstants\n)\n\n\nCalculates the virtual temperature Tᵥ as\n\nTᵥ = T(1+μq)\n\nWith absolute temperature T, specific humidity q and\n\nμ = (1-ξ)/ξ, ξ = R_dry/R_vapour.\n\nin grid-point space.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.virtual_temperature!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, LowerTriangularMatrix, PrimitiveDry}","page":"Function and type index","title":"SpeedyWeather.virtual_temperature!","text":"virtual_temperature!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n temp::LowerTriangularMatrix,\n model::PrimitiveDry\n) -> SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat\n\n\nVirtual temperature in grid-point space: For the PrimitiveDry temperature and virtual temperature are the same (humidity=0). Just copy over the arrays.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.volume_flux_divergence!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, SpeedyWeather.SurfaceVariables, SpeedyWeather.AbstractOrography, DynamicsConstants, Geometry, SpectralTransform}","page":"Function and type index","title":"SpeedyWeather.volume_flux_divergence!","text":"volume_flux_divergence!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n surface::SpeedyWeather.SurfaceVariables,\n orog::SpeedyWeather.AbstractOrography,\n constants::DynamicsConstants,\n G::Geometry,\n S::SpectralTransform\n)\n\n\nComputes the (negative) divergence of the volume fluxes uh,vh for the continuity equation, -∇⋅(uh,vh).\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.vordiv_tendencies!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, SpeedyWeather.SurfaceVariables, DynamicsConstants, Geometry, SpectralTransform}","page":"Function and type index","title":"SpeedyWeather.vordiv_tendencies!","text":"vordiv_tendencies!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n surf::SpeedyWeather.SurfaceVariables,\n C::DynamicsConstants,\n G::Geometry,\n S::SpectralTransform\n)\n\n\nTendencies for vorticity and divergence. Excluding Bernoulli potential with geopotential and linear pressure gradient inside the Laplace operator, which are added later in spectral space.\n\nu_tend += v*(f+ζ) - RTᵥ'*∇lnp_x\nv_tend += -u*(f+ζ) - RTᵥ'*∇lnp_y\n\n+= because the tendencies already contain the parameterizations and vertical advection. f is coriolis, ζ relative vorticity, R the gas constant Tᵥ' the virtual temperature anomaly, ∇lnp the gradient of surface pressure and _x and _y its zonal/meridional components. The tendencies are then curled/dived to get the tendencies for vorticity/divergence in spectral space\n\n∂ζ/∂t = ∇×(u_tend,v_tend)\n∂D/∂t = ∇⋅(u_tend,v_tend) + ...\n\n+ ... because there's more terms added later for divergence.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.vordiv_tendencies!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, SpeedyWeather.SurfaceVariables, PrimitiveEquation}","page":"Function and type index","title":"SpeedyWeather.vordiv_tendencies!","text":"vordiv_tendencies!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n surf::SpeedyWeather.SurfaceVariables,\n model::PrimitiveEquation\n)\n\n\nFunction barrier to unpack model.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.vorticity_flux!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, Barotropic}","page":"Function and type index","title":"SpeedyWeather.vorticity_flux!","text":"vorticity_flux!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n model::Barotropic\n)\n\n\nVorticity flux tendency in the barotropic vorticity equation\n\n∂ζ/∂t = ∇×(u_tend,v_tend)\n\nwith\n\nu_tend = Fᵤ + v*(ζ+f) v_tend = Fᵥ - u*(ζ+f)\n\nwith Fᵤ,Fᵥ the forcing from forcing! already in u_tend_grid/v_tend_grid and vorticity ζ, coriolis f.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.vorticity_flux!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, ShallowWater}","page":"Function and type index","title":"SpeedyWeather.vorticity_flux!","text":"vorticity_flux!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n model::ShallowWater\n)\n\n\nVorticity flux tendency in the shallow water equations\n\n∂ζ/∂t = ∇×(u_tend,v_tend) ∂D/∂t = ∇⋅(u_tend,v_tend)\n\nwith\n\nu_tend = Fᵤ + v*(ζ+f) v_tend = Fᵥ - u*(ζ+f)\n\nwith Fᵤ,Fᵥ the forcing from forcing! already in u_tend_grid/v_tend_grid and vorticity ζ, coriolis f.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.vorticity_flux_curldiv!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, DynamicsConstants, Geometry, SpectralTransform}","page":"Function and type index","title":"SpeedyWeather.vorticity_flux_curldiv!","text":"vorticity_flux_curldiv!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n C::DynamicsConstants,\n G::Geometry,\n S::SpectralTransform;\n div\n)\n\n\nCompute the vorticity advection as the curl/div of the vorticity fluxes\n\n∂ζ/∂t = ∇×(u_tend,v_tend) ∂D/∂t = ∇⋅(u_tend,v_tend)\n\nwith\n\nu_tend = Fᵤ + v*(ζ+f) v_tend = Fᵥ - u*(ζ+f)\n\nwith Fᵤ,Fᵥ from u_tend_grid/v_tend_grid that are assumed to be alread set in forcing!. Set div=false for the BarotropicModel which doesn't require the divergence tendency.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.workgroup_size-Tuple{SpeedyWeather.AbstractDevice}","page":"Function and type index","title":"SpeedyWeather.workgroup_size","text":"workgroup_size(dev::AbstractDevice)\n\nReturns a workgroup size depending on dev. WIP: Will be expanded in the future to also include grid information. \n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.write_column_tendencies!-Tuple{DiagnosticVariables, ColumnVariables, Int64}","page":"Function and type index","title":"SpeedyWeather.write_column_tendencies!","text":"write_column_tendencies!(\n D::DiagnosticVariables,\n C::ColumnVariables,\n ij::Int64\n)\n\n\nWrite the parametrization tendencies from C::ColumnVariables into the horizontal fields of tendencies stored in D::DiagnosticVariables at gridpoint index ij.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.write_netcdf_time!-Tuple{OutputWriter, Dates.DateTime}","page":"Function and type index","title":"SpeedyWeather.write_netcdf_time!","text":"write_netcdf_time!(\n output::OutputWriter,\n time::Dates.DateTime\n)\n\n\nWrite the current time time::DateTime to the netCDF file in output::OutputWriter.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.write_netcdf_variables!-Union{Tuple{Model}, Tuple{Grid}, Tuple{NF}, Tuple{OutputWriter, DiagnosticVariables{NF, Grid, Model}}} where {NF, Grid, Model}","page":"Function and type index","title":"SpeedyWeather.write_netcdf_variables!","text":"write_netcdf_variables!(\n output::OutputWriter,\n diagn::DiagnosticVariables{NF, Grid, Model}\n)\n\n\nWrite diagnostic variables from diagn to the netCDF file in output::OutputWriter.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.write_output!-Tuple{OutputWriter, Dates.DateTime, DiagnosticVariables}","page":"Function and type index","title":"SpeedyWeather.write_output!","text":"write_output!(\n outputter::OutputWriter,\n time::Dates.DateTime,\n diagn::DiagnosticVariables\n)\n\n\nWrites the variables from diagn of time step i at time time into outputter.netcdf_file. Simply escapes for no netcdf output of if output shouldn't be written on this time step. Interpolates onto output grid and resolution as specified in outputter, converts to output number format, truncates the mantissa for higher compression and applies lossless compression.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.write_restart_file-Tuple{PrognosticVariables, OutputWriter}","page":"Function and type index","title":"SpeedyWeather.write_restart_file","text":"write_restart_file(\n progn::PrognosticVariables,\n output::OutputWriter\n) -> Union{Nothing, String}\n\n\nA restart file restart.jld2 with the prognostic variables is written to the output folder (or current path) that can be used to restart the model. restart.jld2 will then be used as initial conditions. The prognostic variables are bitrounded for compression and the 2nd leapfrog time step is discarded. Variables in restart file are unscaled.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.zero_tendencies!-Tuple{DiagnosticVariables}","page":"Function and type index","title":"SpeedyWeather.zero_tendencies!","text":"zero_tendencies!(diagn::DiagnosticVariables)\n\n\nSet the tendencies in diagn to zero.\n\n\n\n\n\n","category":"method"},{"location":"how_to_run_speedy/#How-to-run-SpeedyWeather.jl","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"","category":"section"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"Creating a SpeedyWeather.jl simulation and running it consists conceptually of 4 steps","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"Create a SpectralGrid which defines the grid and spectral resolution\nCreate a model\nInitialize a model to obtain a Simulation.\nRun the simulation.","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"In the following we will describe these steps in more detail, but let's start with some examples first.","category":"page"},{"location":"how_to_run_speedy/#Example-1:-2D-turbulence-on-a-non-rotating-sphere","page":"How to run SpeedyWeather.jl","title":"Example 1: 2D turbulence on a non-rotating sphere","text":"","category":"section"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"We want to use the barotropic model to simulate some free-decaying 2D turbulence on the sphere without rotation. We start by defining the SpectralGrid object. To have a resolution of about 100km, we choose a spectral resolution of T127 (see Available horizontal resolutions) and nlev=1 vertical levels. The SpectralGrid object will provide us with some more information","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> spectral_grid = SpectralGrid(trunc=127,nlev=1)\nSpectralGrid:\n Spectral: T127 LowerTriangularMatrix{Complex{Float32}}, radius = 6.371e6 m\n Grid: 40320-element, 192-ring OctahedralGaussianGrid{Float32} (quadratic)\n Resolution: 112km (average)\n Vertical: 1-level SigmaCoordinates","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"We could have specified further options, but let's ignore that for now. Next step we create a planet that's like Earth but not rotating","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> still_earth = Earth(rotation=0)\nMain.SpeedyWeather.Earth\n rotation: Float64 0.0\n gravity: Float64 9.81\n daily_cycle: Bool true\n length_of_day: Float64 24.0\n seasonal_cycle: Bool true\n length_of_year: Float64 365.25\n equinox: Dates.DateTime\n axial_tilt: Float64 23.4","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"There are other options to create a planet but they are irrelevant for the barotropic vorticity equations. We also want to specify the initial conditions, randomly distributed vorticity is already defined","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> initial_conditions = StartWithRandomVorticity()\nStartWithRandomVorticity\n power_law: Float64 -3.0\n amplitude: Float64 1.0e-5","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"By default, the power of vorticity is spectrally distributed with k^-3, k being the horizontal wavenumber, and the amplitude is 10^-5text s^-1.","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"Now we want to construct a BarotropicModel with these","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> model = BarotropicModel(;spectral_grid, initial_conditions, planet=still_earth);","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"The model contains all the parameters, but isn't initialized yet, which we can do with and then run it.","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> simulation = initialize!(model);\njulia> run!(simulation,n_days=30)","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"The run! command will always return the prognostic variables, which, by default, are plotted for surface relative vorticity with a unicode plot. The resolution of the plot is not necessarily representative but it lets us have a quick look at the result","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"(Image: Barotropic vorticity unicode plot)","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"Woohoo! I can see turbulence! You could pick up where this simulation stopped by simply doing run!(simulation,n_days=50) again. We didn't store any output, which you can do by run!(simulation,output=true), which will switch on NetCDF output with default settings. More options on output in NetCDF output.","category":"page"},{"location":"how_to_run_speedy/#Example-2:-Shallow-water-with-mountains","page":"How to run SpeedyWeather.jl","title":"Example 2: Shallow water with mountains","text":"","category":"section"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"As a second example, let's investigate the Galewsky et al.[1] test case for the shallow water equations with and without mountains. As the shallow water system has also only one level, we can reuse the SpectralGrid from Example 1.","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> spectral_grid = SpectralGrid(trunc=127,nlev=1)","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"Now as a first simulation, we want to disable any orography, so we create a NoOrography","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> orography = NoOrography(spectral_grid)\nNoOrography{Float32, OctahedralGaussianGrid{Float32}}","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"Although the orography is zero, you have to pass on spectral_grid so that it can still initialize zero-arrays of the right size and element type. Awesome. This time the initial conditions should be set the the Galewsky et al.[1] zonal jet, which is already defined as","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> initial_conditions = ZonalJet()\nZonalJet\n latitude: Float64 45.0\n width: Float64 19.28571428571429\n umax: Float64 80.0\n perturb_lat: Float64 45.0\n perturb_lon: Float64 270.0\n perturb_xwidth: Float64 19.098593171027442\n perturb_ywidth: Float64 3.819718634205488\n perturb_height: Float64 120.0","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"The jet sits at 45˚N with a maximum velocity of 80m/s and a perturbation as described in their paper. Now we construct a model, but this time a ShallowWaterModel","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> model = ShallowWaterModel(;spectral_grid, orography, initial_conditions);\njulia> simulation = initialize!(model);","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"(Image: Galewsky jet unicode plot)","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"Oh yeah. That looks like the wobbly jet in their paper. Let's run it again for another 6 days but this time also store NetCDF output.","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> run!(simulation,n_days=6,output=true)\nWeather is speedy: run 0002 100%|███████████████████████| Time: 0:00:12 (115.37 years/day)","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"The progress bar tells us that the simulation run got the identification \"0002\", meaning that data is stored in the folder /run_0002, so let's plot that data properly (and not just using UnicodePlots).","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> using PyPlot, NCDatasets\njulia> ds = NCDataset(\"run_0002/output.nc\");\njulia> ds[\"vor\"]\nvor (384 × 192 × 1 × 25)\n Datatype: Float32\n Dimensions: lon × lat × lev × time\n Attributes:\n units = 1/s\n missing_value = NaN\n long_name = relative vorticity\n _FillValue = NaN","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"Vorticity vor is stored as a 384x192x1x25 array, we may want to look at the first time step, which is the end of the previous simulation (time=6days) which we didn't store output for.","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> vor = ds[\"vor\"][:,:,1,1];\njulia> lat = ds[\"lat\"][:];\njulia> lon = ds[\"lon\"][:];\njulia> pcolormesh(lon,lat,vor')","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"Which looks like","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"(Image: Galewsky jet pyplot)","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"You see that the unicode plot heavily coarse-grains the simulation, well it's unicode after all! And now the last time step, that means time=12days is","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> vor = ds[\"vor\"][:,:,1,25];\njulia> pcolormesh(lon,lat,vor')","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"(Image: Galewsky jet pyplot)","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"The jet broke up into many small eddies, but the turbulence is still confined to the northern hemisphere, cool! How this may change when we add mountains (we had NoOrography above!), say Earth's orography, you may ask? Let's try it out! We create an EarthOrography struct like so","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> orography = EarthOrography(spectral_grid)\nEarthOrography{Float32, OctahedralGaussianGrid{Float32}}:\n path::String = SpeedyWeather.jl/input_data\n file::String = orography_F512.nc\n scale::Float64 = 1.0\n smoothing::Bool = true\n smoothing_power::Float64 = 1.0\n smoothing_strength::Float64 = 0.1\n smoothing_truncation::Int64 = 85","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"It will read the orography from file as shown, and there are some smoothing options too, but let's not change them. Same as before, create a model, initialize into a simulation, run. This time directly for 12 days so that we can compare with the last plot","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> model = ShallowWaterModel(;spectral_grid, orography, initial_conditions);\njulia> simulation = initialize!(model);\njulia> run!(simulation,n_days=12,output=true)\nWeather is speedy: run 0003 100%|███████████████████████| Time: 0:00:35 (79.16 years/day)","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"This time the run got the id \"0003\", but otherwise we do as before.","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"(Image: Galewsky jet pyplot)","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"Interesting! The initial conditions have zero velocity in the southern hemisphere, but still, one can see some imprint of the orography on vorticity. You can spot the coastline of Antarctica; the Andes and Greenland are somewhat visible too. Mountains also completely changed the flow after 12 days, probably not surprising!","category":"page"},{"location":"how_to_run_speedy/#SpectralGrid","page":"How to run SpeedyWeather.jl","title":"SpectralGrid","text":"","category":"section"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"The life of every SpeedyWeather.jl simulation starts with a SpectralGrid object. We have seen some examples above, now let's look into the details","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"SpectralGrid","category":"page"},{"location":"how_to_run_speedy/#References","page":"How to run SpeedyWeather.jl","title":"References","text":"","category":"section"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"[1] Galewsky, Scott, Polvani, 2004. An initial-value problem for testing numerical models of the global shallow-water equations, Tellus A. DOI: 10.3402/tellusa.v56i5.14436","category":"page"},{"location":"speedytransforms/#SpeedyTransforms","page":"Submodule: SpeedyTransforms","title":"SpeedyTransforms","text":"","category":"section"},{"location":"speedytransforms/","page":"Submodule: SpeedyTransforms","title":"Submodule: SpeedyTransforms","text":"SpeedyTransforms is a submodule that has been developed for SpeedyWeather.jl which is technically independent (SpeedyWeather.jl however imports it) and can also be used without running simulations. It is just not put into its own respective repository.","category":"page"},{"location":"speedytransforms/#Example-transforms","page":"Submodule: SpeedyTransforms","title":"Example transforms","text":"","category":"section"},{"location":"speedytransforms/","page":"Submodule: SpeedyTransforms","title":"Submodule: SpeedyTransforms","text":"julia> using SpeedyWeather\njulia> alms = zeros(ComplexF64,3,3) # spectral coefficients\njulia> alms[2,2] = 1 # only l=1,m=1 harmonic\njulia> map = gridded(alms) # convert to grid space\n8×4 Matrix{Float64}:\n -0.324541 -0.600363 -0.600363 -0.324541\n -0.134429 -0.248678 -0.248678 -0.134429\n 0.134429 0.248678 0.248678 0.134429\n 0.324541 0.600363 0.600363 0.324541\n 0.324541 0.600363 0.600363 0.324541\n 0.134429 0.248678 0.248678 0.134429\n -0.134429 -0.248678 -0.248678 -0.134429\n -0.324541 -0.600363 -0.600363 -0.324541\n \njulia> spectral(map) # back to spectral space\n3×3 Matrix{ComplexF64}:\n 0.0+0.0im 0.0+0.0im 0.0+0.0im\n 0.0+0.0im 1.0+3.60727e-17im 0.0+0.0im\n 0.0+0.0im 0.0+0.0im 0.0+0.0im","category":"page"},{"location":"speedytransforms/","page":"Submodule: SpeedyTransforms","title":"Submodule: SpeedyTransforms","text":"and we have successfully reobtained the l=m=1 spherical harmonic.","category":"page"},{"location":"speedytransforms/#Functions-and-type-index","page":"Submodule: SpeedyTransforms","title":"Functions and type index","text":"","category":"section"},{"location":"speedytransforms/","page":"Submodule: SpeedyTransforms","title":"Submodule: SpeedyTransforms","text":"Modules = [SpeedyWeather.SpeedyTransforms]","category":"page"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.SpectralTransform","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.SpectralTransform","text":"S = SpectralTransform{NF<:AbstractFloat}(...)\n\nSpectralTransform struct that contains all parameters and preallocated arrays for the spectral transform.\n\n\n\n\n\n","category":"type"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.SpectralTransform-Union{Tuple{AbstractArray{Complex{NF}, 2}}, Tuple{NF}} where NF","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.SpectralTransform","text":"S = SpectralTransform( alms::AbstractMatrix{Complex{NF}};\n recompute_legendre::Bool=true,\n Grid::Type{<:AbstractGrid}=DEFAULT_GRID)\n\nGenerator function for a SpectralTransform struct based on the size of the spectral coefficients alms and the grid Grid. Recomputes the Legendre polynomials by default.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.SpectralTransform-Union{Tuple{NF}, Tuple{Type{NF}, Type{<:SpeedyWeather.RingGrids.AbstractGrid}, Int64}} where NF","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.SpectralTransform","text":"S = SpectralTransform(NF,Grid,trunc)\n\nGenerator function for a SpectralTransform struct. With NF the number format, Grid the grid type <:AbstractGrid and spectral truncation trunc this function sets up necessary constants for the spetral transform. Also plans the Fourier transforms, retrieves the colatitudes, and preallocates the Legendre polynomials (if recompute_legendre == false) and quadrature weights.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.SpectralTransform-Union{Tuple{SpeedyWeather.RingGrids.AbstractGrid{NF}}, Tuple{NF}} where NF","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.SpectralTransform","text":"S = SpectralTransform( map::AbstractGrid;\n recompute_legendre::Bool=true)\n\nGenerator function for a SpectralTransform struct based on the size and grid type of gridded field map. Recomputes the Legendre polynomials by default.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.UV_from_vor!-Union{Tuple{NF}, Tuple{LowerTriangularMatrix{Complex{NF}}, LowerTriangularMatrix{Complex{NF}}, LowerTriangularMatrix{Complex{NF}}, SpectralTransform{NF}}} where NF<:AbstractFloat","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.UV_from_vor!","text":"UV_from_vor!( U::LowerTriangularMatrix,\n V::LowerTriangularMatrix,\n vor::LowerTriangularMatrix,\n S::SpectralTransform)\n\nGet U,V (=(u,v)*coslat) from vorticity ζ spectral space (divergence D=0) Two operations are combined into a single linear operation. First, invert the spherical Laplace ∇² operator to get stream function from vorticity. Then compute zonal and meridional gradients to get U,V.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.UV_from_vordiv!-Union{Tuple{NF}, Tuple{LowerTriangularMatrix{Complex{NF}}, LowerTriangularMatrix{Complex{NF}}, LowerTriangularMatrix{Complex{NF}}, LowerTriangularMatrix{Complex{NF}}, SpectralTransform{NF}}} where NF<:AbstractFloat","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.UV_from_vordiv!","text":"UV_from_vordiv!(U::LowerTriangularMatrix,\n V::LowerTriangularMatrix,\n vor::LowerTriangularMatrix,\n div::LowerTriangularMatrix,\n S::SpectralTransform)\n\nGet U,V (=(u,v)*coslat) from vorticity ζ and divergence D in spectral space. Two operations are combined into a single linear operation. First, invert the spherical Laplace ∇² operator to get stream function from vorticity and velocity potential from divergence. Then compute zonal and meridional gradients to get U,V.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms._divergence!-Union{Tuple{NF}, Tuple{Any, LowerTriangularMatrix{Complex{NF}}, LowerTriangularMatrix{Complex{NF}}, LowerTriangularMatrix{Complex{NF}}, SpectralTransform{NF}}} where NF<:AbstractFloat","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms._divergence!","text":"_divergence!( kernel,\n div::LowerTriangularMatrix,\n u::LowerTriangularMatrix,\n v::LowerTriangularMatrix,\n S::SpectralTransform)\n\nGeneric divergence function of vector u,v that writes into the output into div. Generic as it uses the kernel kernel such that curl, div, add or flipsign options are provided through kernel, but otherwise a single function is used.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.curl!-Tuple{LowerTriangularMatrix, LowerTriangularMatrix, LowerTriangularMatrix, SpectralTransform}","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.curl!","text":"curl!( curl::LowerTriangularMatrix,\n u::LowerTriangularMatrix,\n v::LowerTriangularMatrix,\n S::SpectralTransform;\n flipsign::Bool=false,\n add::Bool=false,\n )\n\nCurl of a vector u,v written into curl, curl = ∇×(u,v). u,v are expected to have a 1/coslat-scaling included, then curl is not scaled. flipsign option calculates -∇×(u,v) instead. add option calculates curl += ∇×(u,v) instead. flipsign and add can be combined. This functions only creates the kernel and calls the generic divergence function _divergence! subsequently with flipped u,v -> v,u for the curl.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.divergence!-Tuple{LowerTriangularMatrix, LowerTriangularMatrix, LowerTriangularMatrix, SpectralTransform}","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.divergence!","text":"divergence!(div::LowerTriangularMatrix,\n u::LowerTriangularMatrix,\n v::LowerTriangularMatrix,\n S::SpectralTransform{NF};\n flipsign::Bool=false,\n add::Bool=false,\n )\n\nDivergence of a vector u,v written into div, div = ∇⋅(u,v). u,v are expected to have a 1/coslat-scaling included, then div is not scaled. flipsign option calculates -∇⋅(u,v) instead. add option calculates div += ∇⋅(u,v) instead. flipsign and add can be combined. This functions only creates the kernel and calls the generic divergence function _divergence! subsequently.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.get_recursion_factors-Union{Tuple{NF}, Tuple{Type{NF}, Int64, Int64}} where NF<:AbstractFloat","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.get_recursion_factors","text":"get_recursion_factors( ::Type{NF}, # number format NF\n lmax::Int, # max degree l of spherical harmonics (0-based here)\n mmax::Int # max order m of spherical harmonics\n ) where {NF<:AbstractFloat}\n\nReturns a matrix of recursion factors ϵ up to degree lmax and order mmax of number format NF.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.gridded!-Union{Tuple{NF}, Tuple{SpeedyWeather.RingGrids.AbstractGrid{NF}, LowerTriangularMatrix{Complex{NF}}, SpectralTransform{NF}}} where NF<:AbstractFloat","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.gridded!","text":"gridded!( map::AbstractGrid,\n alms::LowerTriangularMatrix,\n S::SpectralTransform)\n\nSpectral transform (spectral to grid) of the spherical harmonic coefficients alms to a gridded field map. The spectral transform is number format-flexible as long as the parametric types of map, alms, S are identical. The spectral transform is grid-flexible as long as the typeof(map)<:AbstractGrid. Uses the precalculated arrays, FFT plans and other constants in the SpectralTransform struct S.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.gridded-Union{Tuple{AbstractMatrix{T}}, Tuple{T}, Tuple{NF}} where {NF, T<:Complex{NF}}","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.gridded","text":"map = gridded( alms::AbstractMatrix;\n recompute_legendre::Bool=true,\n grid::Type{<:AbstractGrid}=DEFAULT_GRID)\n\nSpectral transform (spectral to grid space) from spherical coefficients alms to a newly allocated gridded field map. Based on the size of alms the grid type grid, the spatial resolution is retrieved based on the truncation defined for grid. SpectralTransform struct S is allocated to execute gridded(alms,S).\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.gridded-Union{Tuple{NF}, Tuple{AbstractMatrix, SpectralTransform{NF}}} where NF","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.gridded","text":"map = gridded( alms::AbstractMatrix,\n S::SpectralTransform)\n\nSpectral transform (spectral to grid space) from spherical coefficients alms to a newly allocated gridded field map with precalculated properties based on the SpectralTransform struct S. alms is converted to a LowerTriangularMatrix to execute the in-place gridded!.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.is_power_2-Tuple{Integer}","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.is_power_2","text":"true/false = is_power_2(i::Integer)\n\nChecks whether an integer i is a power of 2, i.e. i = 2^k, with k = 0,1,2,3,....\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.roundup_fft-Union{Tuple{Integer}, Tuple{T}} where T<:Integer","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.roundup_fft","text":"m = roundup_fft(n::Int;\n small_primes::Vector{Int}=[2,3,5])\n\nReturns an integer m >= n with only small prime factors 2, 3 (default, others can be specified with the keyword argument small_primes) to obtain an efficiently fourier-transformable number of longitudes, m = 2^i * 3^j * 5^k >= n, with i,j,k >=0.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.spectral!-Union{Tuple{NF}, Tuple{LowerTriangularMatrix{Complex{NF}}, SpeedyWeather.RingGrids.AbstractGrid{NF}, SpectralTransform{NF}}} where NF<:AbstractFloat","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.spectral!","text":"spectral!( alms::LowerTriangularMatrix,\n map::AbstractGrid,\n S::SpectralTransform)\n\nSpectral transform (grid to spectral space) from the gridded field map on a grid<:AbstractGrid to a LowerTriangularMatrix of spherical harmonic coefficients alms. Uses FFT in the zonal direction, and a Legendre Transform in the meridional direction exploiting symmetries. The spectral transform is number format-flexible as long as the parametric types of map, alms, S are identical. The spectral transform is grid-flexible as long as the typeof(map)<:AbstractGrid. Uses the precalculated arrays, FFT plans and other constants in the SpectralTransform struct S.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.spectral-Tuple{AbstractMatrix}","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.spectral","text":"alms = spectral( map::AbstractMatrix;\n Grid::Type{<:AbstractGrid}=DEFAULT_GRID,\n kwargs...)\n\nConverts map to grid(map) to execute spectral(map::AbstractGrid;kwargs...).\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.spectral-Union{Tuple{NF}, Tuple{SpeedyWeather.RingGrids.AbstractGrid{NF}, SpectralTransform{NF}}} where NF","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.spectral","text":"alms = spectral( map::AbstractMatrix;\n Grid::Type{<:AbstractGrid}=DEFAULT_GRID,\n kwargs...)\n\nSpectral transform (grid to spectral) map to grid(map) to execute spectral(map::AbstractGrid;kwargs...).\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.spectral-Union{Tuple{SpeedyWeather.RingGrids.AbstractGrid{NF}}, Tuple{NF}} where NF","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.spectral","text":"alms = spectral( map::AbstractGrid;\n Grid::Type{<:AbstractGrid}=DEFAULT_GRID,\n kwargs...)\n\nConverts map to Grid(map) to execute spectral(map::AbstractGrid;kwargs...).\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.spectral_interpolation-Union{Tuple{NF}, Tuple{Type{NF}, LowerTriangularMatrix, Integer, Integer}} where NF","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.spectral_interpolation","text":"alms_interp = spectral_interpolation( ::Type{NF},\n alms::LowerTriangularMatrix,\n ltrunc::Integer,\n mtrunc::Integer\n ) where NF\n\nReturns a spectral coefficient matrix alms_interp that is alms padded with zeros to interpolate in spectral space. If trunc is smaller or equal to the implicit truncation in alms obtained from its size than spectral_truncation is automatically called instead, returning alms_trunc, a coefficient matrix that is smaller than alms, implicitly setting higher degrees and orders to zero.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.spectral_smoothing!-Tuple{LowerTriangularMatrix, Real}","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.spectral_smoothing!","text":"spectral_smoothing!(A::LowerTriangularMatrix,c;power=1)\n\nSmooth the spectral field A following A = (1-(1-c)∇²ⁿ) with power n of a normalised Laplacian so that the highest degree lmax is dampened by multiplication with c. Anti-diffusion for c>1.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.spectral_smoothing-Tuple{LowerTriangularMatrix, Real}","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.spectral_smoothing","text":"A_smooth = spectral_smoothing(A::LowerTriangularMatrix,c;power=1)\n\nSmooth the spectral field A following A_smooth = (1-c*∇²ⁿ)A with power n of a normalised Laplacian so that the highest degree lmax is dampened by multiplication with c. Anti-diffusion for c<0.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.spectral_transform_for_full_grid-Union{Tuple{SpectralTransform{NF}}, Tuple{NF}} where NF","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.spectral_transform_for_full_grid","text":"S2 = spectral_transform_for_full_grid(S::SpectralTransform)\n\nCreate a spectral transform struct S2 similar to the input S, but for the corresponding full grid of the grid in S. The FFT is replanned and lon_offsets are set to 1 (i.e. no rotation). Solid angles for the Legendre transform are recomputed, but all other arrays fields for S, S2 point to the same place in memory, e.g. the Legendre polynomials aren't recomputed or stored twice.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.spectral_truncation!-Tuple{AbstractMatrix, Int64}","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.spectral_truncation!","text":"spectral_truncation!(alms,trunc)\n\nTruncate spectral coefficients alms in-place by setting (a) the upper right triangle to zero and (b) all coefficients for which the degree l is larger than the truncation trunc.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.spectral_truncation!-Tuple{AbstractMatrix}","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.spectral_truncation!","text":"spectral_truncation!(alms)\n\nTruncate spectral coefficients alms in-place by setting the upper right triangle to zero. This is to enforce that all coefficients for which the degree l is larger than order m are zero.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.spectral_truncation!-Union{Tuple{NF}, Tuple{AbstractMatrix{NF}, Integer, Integer}} where NF","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.spectral_truncation!","text":"spectral_truncation!(alms::AbstractMatrix,ltrunc::Integer,mtrunc::Integer)\n\nTruncate spectral coefficients alms in-place by setting (a) the upper right triangle to zero and (b) all coefficients for which the degree l is larger than the truncation ltrunc or order m larger than the truncaction mtrunc.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.spectral_truncation!-Union{Tuple{NF}, Tuple{LowerTriangularMatrix{NF}, Integer, Integer}} where NF","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.spectral_truncation!","text":"spectral_truncation!(alms::LowerTriangularMatrix,ltrunc::Integer,mtrunc::Integer)\n\nTruncate spectral coefficients alms in-place by setting all coefficients for which the degree l is larger than the truncation ltrunc or order m larger than the truncaction mtrunc. Similar to spectral_truncation!(::AbstractMatrix, ...) but skips the upper triangle which is zero by design for LowerTriangularMatrix.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.spectral_truncation-Union{Tuple{NF}, Tuple{Type{NF}, LowerTriangularMatrix, Integer, Integer}} where NF","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.spectral_truncation","text":"alms_trunc = spectral_truncation(alms,trunc)\n\nReturns a spectral coefficient matrix alms_trunc that is truncated from alms to the size (trunc+1)². alms_trunc only contains those coefficient of alms for which m,l ≤ trunc, and l ≥ m are zero anyway. If trunc is larger than the implicit truncation in alms obtained from its size than spectral_interpolation is automatically called instead, returning alms_interp, a coefficient matrix that is larger than alms with padded zero coefficients.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.ϵlm-Tuple{Int64, Int64}","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.ϵlm","text":"ϵ = ϵ(l,m)\n\nRecursion factors ϵ as a function of degree l and order m (0-based) of the spherical harmonics. ϵ(l,m) = sqrt((l^2-m^2)/(4*l^2-1)) with default number format Float64.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.ϵlm-Union{Tuple{NF}, Tuple{Type{NF}, Int64, Int64}} where NF","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.ϵlm","text":"ϵ = ϵ(NF,l,m)\n\nRecursion factors ϵ as a function of degree l and order m (0-based) of the spherical harmonics. ϵ(l,m) = sqrt((l^2-m^2)/(4*l^2-1)) and then converted to number format NF.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.∇²!-Union{Tuple{NF}, Tuple{LowerTriangularMatrix{Complex{NF}}, LowerTriangularMatrix{Complex{NF}}, SpectralTransform{NF}}} where NF<:AbstractFloat","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.∇²!","text":"∇²!( ∇²alms::LowerTriangularMatrix,\n alms::LowerTriangularMatrix,\n S::SpectralTransform;\n add::Bool=false,\n flipsign::Bool=false,\n inverse::Bool=false)\n\nLaplace operator ∇² applied to the spectral coefficients alms in spherical coordinates. The radius R is omitted in the eigenvalues which are precomputed in S. ∇²! is the in-place version which directly stores the output in the first argument ∇²alms.\n\nKeyword arguments\n\nadd=true adds the ∇²(alms) to the output\nflipsign=true computes -∇²(alms) instead\ninverse=true computes ∇⁻²(alms) instead\n\nDefault is add=false, flipsign=false, inverse=false. These options can be combined.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.∇⁻²!-Union{Tuple{NF}, Tuple{LowerTriangularMatrix{Complex{NF}}, LowerTriangularMatrix{Complex{NF}}, SpectralTransform{NF}}} where NF<:AbstractFloat","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.∇⁻²!","text":"∇⁻²!( ∇⁻²alms::LowerTriangularMatrix,\n alms::LowerTriangularMatrix,\n S::SpectralTransform;\n add::Bool=false,\n flipsign::Bool=false)\n\nCalls ∇²!(∇⁻²alms, alms, S; add, flipsign, inverse=true).\n\n\n\n\n\n","category":"method"},{"location":"grids/#Grids","page":"Grids","title":"Grids","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"The spectral transform (the Spherical Harmonic Transform) in SpeedyWeather.jl supports any ring-based equi-longitude grid. Several grids are already implemented but other can be added. The following pages will describe an overview of these grids and but let's start but how they can be used","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"julia> spectral_grid = SpectralGrid(Grid = FullGaussianGrid)\nSpectralGrid:\n Spectral: T31 LowerTriangularMatrix{Complex{Float32}}, radius = 6.371e6 m\n Grid: 4608-element, 48-ring FullGaussianGrid{Float32} (quadratic)\n Resolution: 333km (average)\n Vertical: 8-level SigmaCoordinates","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"The life of every SpeedyWeather.jl simulation starts with a SpectralGrid object which defines the resolution in spectral and in grid-point space. The generator SpectralGrid() can take as a keyword argument Grid which can be any of the grids described below. The resolution of the grid, however, is not directly chosen, but determined from the spectral resolution trunc and the dealiasing factor. More in Matching spectral and grid resolution.","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"info: RingGrids is a module too!\nWhile RingGrids is the underlying module that SpeedyWeather.jl uses for data structs on the sphere, the module can also be used independently of SpeedyWeather, for example to interpolate between data on different grids. See RingGrids","category":"page"},{"location":"grids/#Ring-based-equi-longitude-grids","page":"Grids","title":"Ring-based equi-longitude grids","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"SpeedyWeather.jl's spectral transform supports all ring-based equi-longitude grids. These grids have their grid points located on rings with constant latitude and on these rings the points are equi-spaced in longitude. There is technically no constrain on the spacing of the latitude rings, but the Legendre transform requires a quadrature to map those to spectral space and back. Common choices for latitudes are the Gaussian latitudes which use the Gaussian quadrature, or equi-angle latitudes (i.e. just regular latitudes but excluding the poles) that use the Clenshaw-Curtis quadrature. The longitudes have to be equi-spaced on every ring, which is necessary for the fast Fourier transform, as one would otherwise need to use a non-uniform Fourier transform. In SpeedyWeather.jl the first grid point on any ring can have a longitudinal offset though, for example by spacing 4 points around the globe at 45˚E, 135˚E, 225˚E, and 315˚E. In this case the offset is 45˚E as the first point is not at 0˚E.","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"info: Is the FullClenshawGrid a longitude-latitude grid?\nShort answer: Yes. The FullClenshawGrid is a specific longitude-latitude grid with equi-angle spacing. The most common grids for geoscientific data use regular spacings for 0-360˚E in longitude and 90˚N-90˚S. The FullClenshawGrid does that too, but it does not have a point on the North or South pole, and the central latitude ring sits exactly on the Equator. We name it Clenshaw following the Clenshaw-Curtis quadrature that is used in the Legendre transfrom in the same way as Gaussian refers to the Gaussian quadrature.","category":"page"},{"location":"grids/#Implemented-grids","page":"Grids","title":"Implemented grids","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"All grids in SpeedyWeather.jl are a subtype of AbstractGrid, i.e. <: AbstractGrid. We further distinguish between full, and reduced grids. Full grids have the same number of longitude points on every latitude ring (i.e. points converge towards the poles) and reduced grids reduce the number of points towards the poles to have them more evenly spread out across the globe. More evenly does not necessarily mean that a grid is equal-area, meaning that every grid cell covers exactly the same area (although the shape changes).","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"Currently the following full grids <: AbstractFullGrid are implemented","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"FullGaussianGrid, a full grid with Gaussian latitudes\nFullClenshawGrid, a full grid with equi-angle latitudes","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"and additionally we have FullHEALPixGrid and FullOctaHEALPixGrid which are the full grid equivalents to the HEALPix grid and the OctaHEALPix grid discussed below. Full grid equivalent means that they have the same latitude rings, but no reduction in the number of points per ring towards the poles and no longitude offset. Other implemented reduced grids are","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"OctahedralGaussianGrid, a reduced grid with Gaussian latitudes based on an octahedron\nOctahedralClenshawGrid, similar but based on equi-angle latitudes\nHEALPixGrid, an equal-area grid based on a dodecahedron with 12 faces\nOctaHEALPixGrid, an equal-area grid from the class of HEALPix grids but based on an octahedron.","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"An overview of these grids is visualised here","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"(Image: Overview of implemented grids in SpeedyWeather.jl)","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"Visualised are each grid's grid points (white dots) and grid faces (white lines). All grids shown have 16 latitude rings on one hemisphere, Equator included. The total number of grid points is denoted in the top left of every subplot. The sphere is shaded with grey, orange and turquoise regions to denote the hemispheres in a and b, the 8 octahedral faces c, d,f and the 12 dodecahedral faces (or base pixels) in e. Coastlines are added for orientation.","category":"page"},{"location":"grids/#Grid-resolution","page":"Grids","title":"Grid resolution","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"All grids use the same resolution parameter nlat_half, i.e. the number of rings on one hemisphere, Equator included. The Gaussian grids (full and reduced) do not have a ring on the equator, so their total number of rings nlat is always even and twice nlat_half. Clenshaw-Curtis grids and the HEALPix grids have a ring on the equator such their total number of rings is always odd and one less than the Gaussian grids at the same nlat_half. ","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"info: HEALPix grids do not use Nside as resolution parameter\nThe original formulation for HEALPix grids use N_side, the number of grid points along the edges of each basepixel (8 in the figure above), SpeedyWeather.jl uses nlat_half, the number of rings on one hemisphere, Equator included, for all grids. This is done for consistency across grids. We may use N_side for the documentation or within functions though.","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"Related: Effective grid resolution and Available horizontal resolutions.","category":"page"},{"location":"grids/#Matching-spectral-and-grid-resolution","page":"Grids","title":"Matching spectral and grid resolution","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"A given spectral resolution can be matched to a variety of grid resolutions. A cubic grid, for example, combines a spectral truncation T with a grid resolution N (=nlat_half) such that T + 1 = N. Using T31 and an O32 is therefore often abbreviated as Tco31 meaning that the spherical harmonics are truncated at l_max=31 in combination with N=32, i.e. 64 latitude rings in total on an octahedral Gaussian grid. In SpeedyWeather.jl the choice of the order of truncation is controlled with the dealiasing parameter in the SpectralGrid construction.","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"Let J be the total number of rings. Then we have","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"T approx J for linear truncation, i.e. dealiasing = 1\nfrac32T approx J for quadratic truncation, i.e. dealiasing = 2\n2T approx J for cubic truncation, , i.e. dealiasing = 3","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"and in general fracm+12T approx J for m-th order truncation. So the higher the truncation order the more grid points are used in combination with the same spectral resolution. A higher truncation order therefore makes all grid-point calculations more expensive, but can represent products of terms on the grid (which will have higher wavenumber components) to a higher accuracy as more grid points are available within a given wavelength. Using a sufficiently high truncation is therefore one way to avoid aliasing. A quick overview of how the grid resolution changes when dealiasing is passed onto SpectralGrid on the FullGaussianGrid","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"trunc dealiasing FullGaussianGrid size\n31 1 64x32\n31 2 96x48\n31 3 128x64\n42 1 96x48\n42 2 128x64\n42 3 192x96\n... ... ...","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"You will obtain this information every time you create a SpectralGrid(;Grid,trunc,dealiasing).","category":"page"},{"location":"grids/#FullGaussianGrid","page":"Grids","title":"Full Gaussian grid","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"...","category":"page"},{"location":"grids/#FullClenshawGrid","page":"Grids","title":"Full Clenshaw-Curtis grid","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"...","category":"page"},{"location":"grids/#Octahedral-Gaussian-grid","page":"Grids","title":"Octahedral Gaussian grid","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"...","category":"page"},{"location":"grids/#HEALPix-grid","page":"Grids","title":"HEALPix grid","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"Technically, HEALPix grids are a class of grids that tessalate the sphere into faces that are often called basepixels. For each member of this class there are N_varphi basepixels in zonal direction and N_theta basepixels in meridional direction. For N_varphi = 4 and N_theta = 3 we obtain the classical HEALPix grid with N_varphi N_theta = 12 basepixels shown above in Implemented grids. Each basepixel has a quadratic number of grid points in them. There's an equatorial zone where the number of zonal grid points is constant (always 2N, so 32 at N=16) and there are polar caps above and below the equatorial zone with the border at cos(theta) = 23 (theta in colatitudes).","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"Following Górski, 2004[1], the z=cos(theta) colatitude of the j-th ring in the north polar cap, j=1N_side with 2N_side = N is ","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"z = 1 - fracj^23N_side^2","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"and on that ring, the longitude phi of the i-th point (i is the in-ring-index) is at","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"phi = fracpi2j(i-tfrac12)","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"The in-ring index i goes from i=14 for the first (i.e. northern-most) ring, i=18 for the second ring and i = 14j for the j-th ring in the northern polar cap.","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"In the north equatorial belt j=N_side2N_side this changes to","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"z = frac43 - frac2j3N_side","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"and the longitudes change to (i is always i = 14N_side in the equatorial belt meaning the number of longitude points is constant here)","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"phi = fracpi2N_side(i - fracs2) quad s = (j - N_side + 1) mod 2","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"The modulo function comes in as there is an alternating longitudinal offset from the prime meridian (see Implemented grids). For the southern hemisphere the grid point locations can be obtained by mirror symmetry.","category":"page"},{"location":"grids/#Grid-cell-boundaries","page":"Grids","title":"Grid cell boundaries","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"The cell boundaries are obtained by setting i = k + 12 or i = k + 12 + j (half indices) into the equations above, such that z(phik), a function for the cosine of colatitude z of index k and the longitude phi is obtained. These are then (northern polar cap)","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"z = 1 - frack^23N_side^2left(fracpi2phi_tright)^2 quad z = 1 - frack^23N_side^2left(fracpi2phi_t - piright)^2","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"with phi_t = phi mod tfracpi2 and in the equatorial belt","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"z = frac23-frac4k3N_side pm frac8phi3pi","category":"page"},{"location":"grids/#OctaHEALPix-grid","page":"Grids","title":"OctaHEALPix grid","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"While the classic HEALPix grid is based on a dodecahedron, other choices for N_varphi and N_theta in the class of HEALPix grids will change the number of faces there are in zonal/meridional direction. With N_varphi = 4 and N_theta = 1 we obtain a HEALPix grid that is based on an octahedron, which has the convenient property that there are twice as many longitude points around the equator than there are latitude rings between the poles. This is a desirable for truncation as this matches the distances too, 2pi around the Equator versus pi between the poles. N_varphi = 6 N_theta = 2 or N_varphi = 8 N_theta = 3 are other possible choices for this, but also more complicated. See Górski, 2004[1] for further examples and visualizations of these grids.","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"We call the N_varphi = 4 N_theta = 1 HEALPix grid the OctaHEALPix grid, which combines the equal-area property of the HEALPix grids with the octahedron that's also used in the OctahedralGaussianGrid or the OctahedralClenshawGrid. As N_theta = 1 there is no equatorial belt which simplifies the grid. The latitude of the j-th isolatitude ring on the OctaHEALPixGrid is defined by","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"z = 1 - fracj^2N^2","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"with j=1N, and similarly for the southern hemisphere by symmetry. On this grid N_side = N where N= nlat_half, the number of latitude rings on one hemisphere, Equator included, because each of the 4 basepixels spans from pole to pole and covers a quarter of the sphere. The longitudes with in-ring- index i = 14j are","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"phi = fracpi2j(i - tfrac12)","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"and again, the southern hemisphere grid points are obtained by symmetry.","category":"page"},{"location":"grids/#Grid-cell-boundaries-2","page":"Grids","title":"Grid cell boundaries","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"Similar to the grid cell boundaries for the HEALPix grid, the OctaHEALPix grid's boundaries are","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"z = 1 - frack^2N^2left(fracpi2phi_tright)^2 quad z = 1 - frack^2N^2left(fracpi2phi_t - piright)^2","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"The 3N_side^2 in the denominator of the HEALPix grid came simply N^2 for the OctaHEALPix grid and there's no separate equation for the equatorial belt (which doesn't exist in the OctaHEALPix grid).","category":"page"},{"location":"grids/#References","page":"Grids","title":"References","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"[1]: Górski, Hivon, Banday, Wandelt, Hansen, Reinecke, Bartelmann, 2004. HEALPix: A FRAMEWORK FOR HIGH-RESOLUTION DISCRETIZATION AND FAST ANALYSIS OF DATA DISTRIBUTED ON THE SPHERE, The Astrophysical Journal. doi:10.1086/427976","category":"page"},{"location":"primitiveequation/#Primitive-equation-model","page":"Primitive equation model","title":"Primitive equation model","text":"","category":"section"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"The primitive equations are a hydrostatic approximation of the compressible Navier-Stokes equations for an ideal gas on a rotating sphere. We largely follow the idealised spectral dynamical core developed by GFDL[1] and documented therein[2].","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"The primitive equations solved by SpeedyWeather.jl for relative vorticity zeta, divergence mathcalD, logarithm of surface pressure ln p_s, temperature T and specific humidity q are","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"beginaligned\nfracpartial zetapartial t = nabla times (mathbfmathcalP_mathbfu\n+ (f+zeta)mathbfu_perp - W(mathbfu) - R_dT_vnabla ln p_s) \nfracpartial mathcalDpartial t = nabla cdot (mathcalP_mathbfu\n+ (f+zeta)mathbfu_perp - W(mathbfu) - R_dT_vnabla ln p_s) - nabla^2(frac12(u^2 + v^2) + Phi) \nfracpartial ln p_spartial t = -frac1p_s nabla cdot int_0^p_s mathbfudp \nfracpartial Tpartial t = mathcalP_T -nablacdot(mathbfuT) + TmathcalD - W(T) + kappa T_v fracD ln pDt \nfracpartial qpartial t = mathcalP_q -nablacdot(mathbfuq) + qmathcalD - W(q)\nendaligned","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"with velocity mathbfu = (uv), rotated velocity mathbfu_perp = (v-u), Coriolis parameter f, W the vertical advection operator, dry air gas constant R_d, virtual temperature T_v, geopotential Phi, pressure p, thermodynamic kappa = R_dc_p with c_p the heat capacity at constant pressure. Horizontal hyper diffusion of the form (-1)^n+1nunabla^2n with coefficient nu and power n is added for every variable that is advected, meaning zeta mathcalD T q, but left out here for clarity, see Horizontal diffusion.","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"The parameterizations for the tendencies of uvTq from physical processes are denoted as mathcalP_mathbfu = (mathcalP_u mathcalP_v) mathcalP_T mathcalP_q and are further described in the corresponding sections, see Parameterizations.","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"SpeedyWeather.jl implements a PrimitiveWet and a PrimitiveDry dynamical core. For a dry atmosphere, we have q = 0 and the virtual temperature T_v = T equals the temperature (often called absolute to distinguish from the virtual temperature). The terms in the primitive equations and their discretizations are discussed in the following sections. ","category":"page"},{"location":"primitiveequation/#Virtual-temperature","page":"Primitive equation model","title":"Virtual temperature","text":"","category":"section"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"info: In short: Virtual temperature\nVirtual temperature is the temperature dry air would need to have to be as light as moist air. It is used in the dynamical core to include the effect of humidity on the density while replacing density through the ideal gas law with temperature.","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"We assume the atmosphere to be composed of two ideal gases: Dry air and water vapour. Given a specific humidity q both gases mix, their pressures p_d, p_w (d for dry, w for water vapour), and densities rho_d rho_w add in a given air parcel that has temperature T. The ideal gas law then holds for both gases","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"beginaligned\np_d = rho_d R_d T \np_w = rho_w R_w T \nendaligned","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"with the respective specific gas constants R_d = Rm_d and R_w = Rm_w obtained from the univeral gas constant R divided by the molecular masses of the gas. The total pressure p in the air parcel is","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"p = p_d + p_w = (rho_d R_d + rho_w R_w)T","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"We ultimately want to replace the density rho = rho_w + rho_d in the dynamical core, using the ideal gas law, with the temperature T, so that we never have to calculate the density explicitly. However, in order to not deal with two densities (dry air and water vapour) we would like to replace temperature with a virtual temperature that includes the effect of humidity on the density. So, whereever we use the ideal gas law to replace density with temperature, we would use the virtual temperature, which is a function of the absolute temperature and specific humidity, instead. A higher specific humidity in an air parcel lowers the density as water vapour is lighter than dry air. Consequently, the virtual temperature of moist air is higher than its absolute temperature because warmer air is lighter too at constant pressure. We therefore think of the virtual temperature as the temperature dry air would need to have to be as light as moist air.","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"Starting with the last equation, with some manipulation we can write the ideal gas law as total density rho times a gas constant times the virtual temperature that is supposed to be a function of absolute temperature, humidity and some constants","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"p = (rho R_d + rho_w (R_w - R_d)) T = rho R_d (1 +\nfrac1 - tfracR_dR_wtfracR_dR_w fracrho_wrho_w + rho_d)T","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"Now we identify","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"mu = frac1 - tfracR_dR_wtfracR_dR_w","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"as some constant that is positive for water vapour being lighter than dry air (tfracR_dR_w = tfracm_wm_d 1) and","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"q = fracrho_wrho_w + rho_d","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"as the specific humidity. Given temperature T and specific humidity q, we can therefore calculate the virtual temperature T_v as","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"T_v = (1 + mu q)T","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"For completeness we want to mention here that the above product, because it is a product of two variables qT has to be computed in grid-point space, see [Spectral Transform]. To obtain an approximation to the virtual temperature in spectral space without expensive transforms one can linearize","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"T_v = T + mu qbarT","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"With a global constant temperature barT, for example obtained from the l=m=0 mode, barT = T_00frac1sqrt4pi but depending on the normalization of the spherical harmonics that factor needs adjustment.","category":"page"},{"location":"primitiveequation/#Vertical-coordinates","page":"Primitive equation model","title":"Vertical coordinates","text":"","category":"section"},{"location":"primitiveequation/#General","page":"Primitive equation model","title":"General","text":"","category":"section"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"Let Psi(xyzt) ","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"SpeedyWeather.jl currently uses sigma coordinates for the vertical. ","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"sigma = fracpp_s","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"p_k = sigma_kp_s","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"Delta p_k = p_k+1 - p_k = Delta sigma_k p_s","category":"page"},{"location":"primitiveequation/#Geopotential","page":"Primitive equation model","title":"Geopotential","text":"","category":"section"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"In the hydrostatic approximation the vertical momentum equation becomes","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"fracpartial ppartial z = -rho g","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"meaning that the (negative) vertical pressure gradient is given by the density in that layer times the gravitational acceleration. The heavier the fluid the more the pressure will increase below. Inserting the ideal gas law","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"fracpartial gzpartial p = -fracR_dT_vp","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"with the geopotential Phi = gz we can write this in terms of the logarithm of pressure","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"fracpartial Phipartial ln p = -R_dT_v","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"Note that we use the Virtual temperature here as we replaced the density through the ideal gas law with temperature. Given a vertical temperature profile T_v and the (constant) surface geopotential Phi_s = gz_s where z_s is the orography, we can integrate this equation from the surface to the top to obtain Phi_k on every layer k. The surface is at k = N+tfrac12 (see Vertical coordinates) with N vertical levels. We can integrate the geopotential onto half levels as","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"Phi_k-tfrac12 = Phi_k+tfrac12 + R_dT^v_k(ln p_k+12 - ln p_k-12)","category":"page"},{"location":"primitiveequation/#Surface-pressure-tendency","page":"Primitive equation model","title":"Surface pressure tendency","text":"","category":"section"},{"location":"primitiveequation/#Vertical-advection","page":"Primitive equation model","title":"Vertical advection","text":"","category":"section"},{"location":"primitiveequation/#Pressure-gradient-force","page":"Primitive equation model","title":"Pressure gradient force","text":"","category":"section"},{"location":"primitiveequation/#Temperature-equation","page":"Primitive equation model","title":"Temperature equation","text":"","category":"section"},{"location":"primitiveequation/#implicit_primitive","page":"Primitive equation model","title":"Semi-implicit time stepping","text":"","category":"section"},{"location":"primitiveequation/#Horizontal-diffusion","page":"Primitive equation model","title":"Horizontal diffusion","text":"","category":"section"},{"location":"primitiveequation/#Algorithm","page":"Primitive equation model","title":"Algorithm","text":"","category":"section"},{"location":"primitiveequation/#Scaled-primitive-equations","page":"Primitive equation model","title":"Scaled primitive equations","text":"","category":"section"},{"location":"primitiveequation/#References","page":"Primitive equation model","title":"References","text":"","category":"section"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"[1]: Geophysical Fluid Dynamics Laboratory, Idealized models with spectral dynamics","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"[2]: Geophysical Fluid Dynamics Laboratory, The Spectral Dynamical Core","category":"page"},{"location":"lowertriangularmatrices/#lowertriangularmatrices","page":"Submodule: LowerTriangularMatrices","title":"LowerTriangularMatrices","text":"","category":"section"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"LowerTriangularMatrices is a submodule that has been developed for SpeedyWeather.jl which is technically independent (SpeedyWeather.jl however imports it and so does SpeedyTransforms) and can also be used without running simulations. It is just not put into its own respective repository.","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"This module defines LowerTriangularMatrix, a lower triangular matrix, which in contrast to LinearAlgebra.LowerTriangular does not store the entries above the diagonal. SpeedyWeather.jl uses LowerTriangularMatrix which is defined as a subtype of AbstractMatrix to store the spherical harmonic coefficients (see Spectral packing). ","category":"page"},{"location":"lowertriangularmatrices/#Creation-of-LowerTriangularMatrix","page":"Submodule: LowerTriangularMatrices","title":"Creation of LowerTriangularMatrix","text":"","category":"section"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"A LowerTriangularMatrix can be created using zeros,ones,rand, or randn","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"julia> using SpeedyWeather.LowerTriangularMatrices\n\njulia> L = rand(LowerTriangularMatrix{Float32},5,5)\n5×5 LowerTriangularMatrix{Float32}:\n 0.912744 0.0 0.0 0.0 0.0\n 0.0737592 0.230592 0.0 0.0 0.0\n 0.799679 0.0765255 0.888098 0.0 0.0\n 0.670835 0.997938 0.505276 0.492966 0.0\n 0.949321 0.193692 0.793623 0.152817 0.357968","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"or the undef initializor LowerTriangularMatrix{Float32}(undef,3,3). The element type is arbitrary though, you can use any type T too.","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"Alternatively, it can be created through conversion from Matrix, which drops the upper triangle entries and sets them to zero","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"julia> M = rand(Float16,3,3)\n3×3 Matrix{Float16}:\n 0.2222 0.694 0.3452\n 0.2158 0.04443 0.274\n 0.9746 0.793 0.6294\n\njulia> LowerTriangularMatrix(M)\n3×3 LowerTriangularMatrix{Float16}:\n 0.2222 0.0 0.0\n 0.2158 0.04443 0.0\n 0.9746 0.793 0.6294","category":"page"},{"location":"lowertriangularmatrices/#Indexing-LowerTriangularMatrix","page":"Submodule: LowerTriangularMatrices","title":"Indexing LowerTriangularMatrix","text":"","category":"section"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"LowerTriangularMatrix supports two types of indexing: 1) by denoting two indices, column and row [l,m] or 2) by denoting a single index [lm]. The double index works as expected","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"julia> L\n3×3 LowerTriangularMatrix{Float16}:\n 0.1499 0.0 0.0\n 0.1177 0.478 0.0\n 0.1709 0.756 0.3223\n\njulia> L[2,2]\nFloat16(0.478)","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"But the single index skips the zero entries in the upper triangle, i.e.","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"julia> L[4]\nFloat16(0.478)","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"which, important, is different from single indices of an AbstractMatrix","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"julia> Matrix(L)[4]\nFloat16(0.0)","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"In performance-critical code a single index should be used, as this directly maps to the index of the underlying data vector. The double index is somewhat slower as it first has to be converted to the corresponding single index.","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"Consequently, many loops in SpeedyWeather.jl are build with the following structure","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"n,m = size(L)\nij = 0\nfor j in 1:m\n for i in j:n\n ij += 1\n L[ij] = i+j\n end\nend","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"which loops over all lower triangle entries of L::LowerTriangularMatrix and the single index ij is simply counted up. However, one could also use [i,j] as indices in the loop body or to perform any calculation (i+j here). An iterator over all entries in the lower triangle can be created by","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"for ij in eachindex(L)\n # do something\nend","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"The setindex! functionality of matrixes will throw a BoundsError when trying to write into the upper triangle of a LowerTriangularMatrix, for example","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"julia> L[2,1] = 0 # valid index\n0\n\njulia> L[1,2] = 0 # invalid index in the upper triangle\nERROR: BoundsError: attempt to access 3×3 LowerTriangularMatrix{Float32} at index [1, 2]","category":"page"},{"location":"lowertriangularmatrices/#Linear-algebra-with-LowerTriangularMatrix","page":"Submodule: LowerTriangularMatrices","title":"Linear algebra with LowerTriangularMatrix","text":"","category":"section"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"The LowerTriangularMatrices module's main purpose is not linear algebra, and it's implementation may not be efficient, however, many operations work as expected","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"julia> L = rand(LowerTriangularMatrix{Float32},3,3)\n3×3 LowerTriangularMatrix{Float32}:\n 0.57649 0.0 0.0\n 0.348685 0.875371 0.0\n 0.881923 0.850552 0.998306\n\njulia> L + L\n3×3 LowerTriangularMatrix{Float32}:\n 1.15298 0.0 0.0\n 0.697371 1.75074 0.0\n 1.76385 1.7011 1.99661\n\njulia> L * L\n3×3 Matrix{Float32}:\n 0.332341 0.0 0.0\n 0.506243 0.766275 0.0\n 1.68542 1.59366 0.996616","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"Note, however, that the latter includes a conversion to Matrix, which is true for many operations, including inv or \\. Hence when trying to do more sophisticated linear algebra with LowerTriangularMatrix we quickly leave lower triangular-land and go back to normal matrix-land.","category":"page"},{"location":"lowertriangularmatrices/#Function-and-type-index","page":"Submodule: LowerTriangularMatrices","title":"Function and type index","text":"","category":"section"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"Modules = [SpeedyWeather.LowerTriangularMatrices]","category":"page"},{"location":"lowertriangularmatrices/#SpeedyWeather.LowerTriangularMatrices.LowerTriangularMatrix","page":"Submodule: LowerTriangularMatrices","title":"SpeedyWeather.LowerTriangularMatrices.LowerTriangularMatrix","text":"L = LowerTriangularMatrix{T}(v::Vector{T},m::Int,n::Int)\n\nA lower triangular matrix implementation that only stores the non-zero entries explicitly. L<:AbstractMatrix although in general we have L[i] != Matrix(L)[i], the former skips zero entries, tha latter includes them.\n\n\n\n\n\n","category":"type"},{"location":"lowertriangularmatrices/#SpeedyWeather.LowerTriangularMatrices.LowerTriangularMatrix-Union{Tuple{AbstractMatrix{T}}, Tuple{T}} where T","page":"Submodule: LowerTriangularMatrices","title":"SpeedyWeather.LowerTriangularMatrices.LowerTriangularMatrix","text":"L = LowerTriangularMatrix(M)\n\nCreate a LowerTriangularMatrix L from Matrix M by copying over the non-zero elements in M.\n\n\n\n\n\n","category":"method"},{"location":"lowertriangularmatrices/#Base.fill!-Union{Tuple{T}, Tuple{LowerTriangularMatrix{T}, Any}} where T","page":"Submodule: LowerTriangularMatrices","title":"Base.fill!","text":"fill!(L::LowerTriangularMatrix,x)\n\nFills the elements of L with x. Faster than fill!(::AbstractArray,x) as only the non-zero elements in L are assigned with x.\n\n\n\n\n\n","category":"method"},{"location":"lowertriangularmatrices/#SpeedyWeather.LowerTriangularMatrices.eachharmonic-Tuple{LowerTriangularMatrix}","page":"Submodule: LowerTriangularMatrices","title":"SpeedyWeather.LowerTriangularMatrices.eachharmonic","text":"unit_range = eachharmonic(L::LowerTriangular)\n\ncreates unit_range::UnitRange to loop over all non-zeros in a LowerTriangularMatrix L. Like eachindex but skips the upper triangle with zeros in L.\n\n\n\n\n\n","category":"method"},{"location":"lowertriangularmatrices/#SpeedyWeather.LowerTriangularMatrices.eachharmonic-Tuple{Vararg{LowerTriangularMatrix}}","page":"Submodule: LowerTriangularMatrices","title":"SpeedyWeather.LowerTriangularMatrices.eachharmonic","text":"unit_range = eachharmonic(Ls::LowerTriangularMatrix...)\n\ncreates unit_range::UnitRange to loop over all non-zeros in the LowerTriangularMatrices provided as arguments. Checks bounds first. All LowerTriangularMatrix's need to be of the same size. Like eachindex but skips the upper triangle with zeros in L.\n\n\n\n\n\n","category":"method"},{"location":"lowertriangularmatrices/#SpeedyWeather.LowerTriangularMatrices.ij2k-Tuple{Integer, Integer, Integer}","page":"Submodule: LowerTriangularMatrices","title":"SpeedyWeather.LowerTriangularMatrices.ij2k","text":"k = ij2k( i::Integer, # row index of matrix\n j::Integer, # column index of matrix\n m::Integer) # number of rows in matrix\n\nConverts the index pair i,j of an mxn LowerTriangularMatrix L to a single index k that indexes the same element in the corresponding vector that stores only the lower triangle (the non-zero entries) of L.\n\n\n\n\n\n","category":"method"},{"location":"conventions/#Style-and-convention-guide","page":"Style and convention guide","title":"Style and convention guide","text":"","category":"section"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"In SpeedyWeather.jl we've been following the several conventions that are documented here.","category":"page"},{"location":"conventions/#Variable-naming","page":"Style and convention guide","title":"Variable naming","text":"","category":"section"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"The prognostic variables in spectral space are called","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":" vor # Vorticity of horizontal wind field\n div # Divergence of horizontal wind field\n temp # Absolute temperature [K]\n pres_surf # Logarithm of surface pressure [log(Pa)]\n humid # Specific humidity [g/kg]","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"their transforms into grid-point space get a _grid suffix, their tendencies a _tend suffix. Further derived diagnostic dynamic variables are","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":" u\n v\n geopot\n ...","category":"page"},{"location":"conventions/#Preallocation","page":"Style and convention guide","title":"Preallocation","text":"","category":"section"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"All arrays representing variables are preallocated and grouped into two structs","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":" Prog::PrognosticVariables\n Diag::DiagnosticVariables","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"The Diag struct contains further structs which represent the grid-point transformations of the prognostic variables and their tendencies.","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":" gridvars::GridVariables\n tendencies::Tendencies\n ...","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"Constant arrays are grouped into several structs","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"Boundaries","category":"page"},{"location":"conventions/#Julian-conventions","page":"Style and convention guide","title":"Julian conventions","text":"","category":"section"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"We follow Julia's style guide and highlight here some important aspects of it.","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"Bang (!) convention. A function func does not change its input arguments, however, func! does.","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"Hence, func! is often the in-place version of func, avoiding as much memory allocation as possible and often changing its first argument, e.g. func!(out,in) so that argument in is used to calculate out which has been preallocated before function call.","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"Number format flexibility. Numeric literals such as 2.0 or 1/3 are only used in the model setup","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"but avoided throughout the code to obtain a fully number format-flexible package using the number format NF as a compile-time variable throughout the code. This often leads to overly specific code whereas a Real would generally suffice. However, this is done to avoid any implicit type conversions.","category":"page"},{"location":"shallowwater/#Shallow-water-model","page":"Shallow water model","title":"Shallow water model","text":"","category":"section"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"The shallow water model describes the evolution of a 2D flow described by its velocity and an interface height that conceptually represents pressure. A divergent flow affects the interface height which in turn can impose a pressure gradient force onto the flow. The dynamics include advection, forces, dissipation, and continuity.","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"The following description of the shallow water model largely follows the idealized models with spectral dynamics developed at the Geophysical Fluid Dynamics Laboratory[1]: The Shallow Water Equations[2].","category":"page"},{"location":"shallowwater/#Shallow-water-equations","page":"Shallow water model","title":"Shallow water equations","text":"","category":"section"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"The shallow water equations of velocity mathbfu = (uv) and interface height eta (i.e. the deviation from the fluid's rest height H) are, formulated in terms of relative vorticity zeta = nabla times mathbfu, divergence mathcalD = nabla cdot mathbfu","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"beginaligned\nfracpartial zetapartial t + nabla cdot (mathbfu(zeta + f)) =\nnabla times mathbfF + (-1)^n+1nunabla^2nzeta \nfracpartial mathcalDpartial t - nabla times (mathbfu(zeta + f)) =\nnabla cdot mathbfF -nabla^2(tfrac12(u^2 + v^2) + geta) + (-1)^n+1nunabla^2nmathcalD \nfracpartial etapartial t + nabla cdot (mathbfuh) = F_eta\nendaligned","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"We denote timet, Coriolis parameter f, a forcing vector mathbfF = (F_uF_v), hyperdiffusion (-1)^n+1 nu nabla^2n (n is the hyperdiffusion order, see Horizontal diffusion), gravitational acceleration g, dynamic layer thickness h, and a forcing for the interface height F_eta. In the shallow water model the dynamics layer thickness h is","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"h = eta + H - H_b","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"that is, the layer thickness at rest H plus the interface height eta minus orography H_b.","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"In the shallow water system the flow can be described through uv or zetamathcalD which are related through the stream function Psi and the velocity potential Phi (which is zero in the Barotropic vorticity equation).","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"beginaligned\nzeta = nabla^2 Psi \nmathcalD = nabla^2 Phi \nmathbfu = nabla^perp Psi + nabla Phi\nendaligned","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"With nabla^perp being the rotated gradient operator, in cartesian coordinates xy: nabla^perp = (-partial_y partial_x). See Derivatives in spherical coordinates for further details. Especially because the inversion of the Laplacian and the gradients of Psi Phi can be computed in a single pass, see U,V from vorticity and divergence.","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"The divergence/curl of the vorticity flux mathbfu(zeta + f) are combined with the divergence/curl of the forcing vector mathbfF, as","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"beginaligned\n- nabla cdot (mathbfu(zeta + f)) + nabla times mathbfF =\nnabla times (mathbfF + mathbfu_perp(zeta + f)) \nnabla times (mathbfu(zeta + f)) + nabla cdot mathbfF =\nnabla cdot (mathbfF + mathbfu_perp(zeta + f))\nendaligned","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"equivalently to how this is done in the Barotropic vorticity equation with mathbfu_perp = (v-u).","category":"page"},{"location":"shallowwater/#Algorithm","page":"Shallow water model","title":"Algorithm","text":"","category":"section"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"0. Start with initial conditions of relative vorticity zeta_lm, divergence D_lm, and interface height eta_lm in spectral space and transform this model state to grid-point space:","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"Invert the Laplacian of zeta_lm to obtain the stream function Psi_lm in spectral space\nInvert the Laplacian of D_lm to obtain the velocity potential Phi_lm in spectral space\nobtain velocities U_lm = (cos(theta)u)_lm V_lm = (cos(theta)v)_lm from nabla^perpPsi_lm + nablaPhi_lm\nTransform velocities U_lm, V_lm to grid-point space UV\nUnscale the cos(theta) factor to obtain uv\nTransform zeta_lm, D_lm, eta_lm to zeta D eta in grid-point space","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"Now loop over","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"Compute the forcing vector mathbfF = (F_uF_v) for u and v\nMultiply uv with zeta+f in grid-point space\nAdd A = F_u + v(zeta + f) and B = F_v - u(zeta + f)\nTransform these vector components to spectral space A_lm, B_lm\nCompute the curl of (AB)_lm in spectral space which is the tendency of zeta_lm\nCompute the divergence of (AB)_lm in spectral space which is the tendency of mathcalD_lm\nCompute the kinetic energy frac12(u^2 + v^2) and transform to spectral space\nAdd to the kinetic energy the \"geopotential\" geta_lm in spectral space to obtain the Bernoulli potential\nTake the Laplacian of the Bernoulli potential and subtract from the divergence tendency\nCompute the volume fluxes uhvh in grid-point space via h = eta + H - H_b\nTransform to spectral space and take the divergence for -nabla cdot (mathbfuh) which is the tendency for eta\nAdd possibly forcing F_eta for eta in spectral space\nCorrect the tendencies following the semi-implicit time integration to prevent fast gravity waves from causing numerical instabilities\nCompute the horizontal diffusion based on the zetamathcalD tendencies\nCompute a leapfrog time step as described in Time integration with a Robert-Asselin and Williams filter\nTransform the new spectral state of zeta_lm, mathcalD_lm, eta_lm to grid-point uvzetamathcalDeta as described in 0.\nPossibly do some output\nRepeat from 1.","category":"page"},{"location":"shallowwater/#implicit_swm","page":"Shallow water model","title":"Semi-implicit time integration","text":"","category":"section"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"Probably the biggest advantage of a spectral model is its ability to solve (parts of) the equations implicitly a low computational cost. The reason is that a linear operator can be easily inverted in spectral space, removing the necessity to solve large equation systems. An operation like Psi = nabla^-2zeta in grid-point space is costly because it requires a global communication, coupling all grid points. In spectral space nabla^2 is a diagonal operator, meaning that there is no communication between harmonics and its inversion is therefore easily done on a mode-by-mode basis of the harmonics.","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"This can be made use of when facing time stepping constraints with explicit schemes, where ridiculuously small time steps to resolve fast waves would otherwise result in a horribly slow simulation. In the shallow water system there are gravity waves that propagate at a wave speed of sqrtgH (typically 300m/s), which, in order to not violate the CFL criterion for explicit time stepping, would need to be resolved. Therefore, treating the terms that are responsible for gravity waves implicitly would remove that time stepping constraint and allows us to run the simulation at the time step needed to resolve the advective motion of the atmosphere, which is usually one or two orders of magnitude longer than gravity waves.","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"In the following we will describe how the semi implicit time integration can be combined with the Leapfrog time stepping and the Robert-Asselin and Williams filter for a large increase in numerical stability with gravity waves. Let V_i be the model state of all prognostic variables at time step i, the leapfrog time stepping is then","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"fracV_i+1 - V_i-12Delta t = N(V_i)","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"with the right-hand side operator N evaluated at the current time step i. Now the idea is to split the terms in N into non-linear terms that are evaluated explicitly in N_E and into the linear terms N_I, solved implicitly, that are responsible for the gravity waves. We could already assume to evaluate N_I at i+1, but in fact, we can introduce alpha in 01 so that for alpha=0 we use i-1 (i.e. explicit), for alpha=12 it is centred implicit tfrac12N_I(V_i-1) + tfrac12N_I(V_i+1), and for alpha=1 a fully backwards scheme N_I(V_i+1) evaluated at i+1.","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"fracV_i+1 - V_i-12Delta t = N_E(V_i) + alpha N_I(V_i+1) + (1-alpha)N_I(V_i-1)","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"Let delta V = tfracV_i+1 - V_i-12Delta t be the tendency we need for the Leapfrog time stepping. Introducing xi = 2alphaDelta t we have","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"delta V = N_E(V_i) + N_I(V_i-1) + xi N_I(delta V)","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"because N_I is a linear operator. This is done so that we can solve for delta V by inverting N_I, but let us gather the other terms as G first.","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"G = N_E(V_i) + N_I(V_i-1) = N(V_i) + N_I(V_i-1 - V_i)","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"For the shallow water equations we will only make use of the last formulation, meaning we first evaluate the whole right-hand side N(V_i) at the current time step as we would do with fully explicit time stepping but then add the implicit terms N_I(V_i-1 - V_i) afterwards to move those terms from i to i-1. Note that we could also directly evaluate the implicit terms at i-1 as it is suggested in the previous formulation N_E(V_i) + N_I(V_i-1), the result would be the same. But in general it can be more efficient to do it one or the other way, and in fact it is also possible to combine both ways. This will be discussed in the semi-implicit time stepping for the primitive equations.","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"We can now implicitly solve for delta V by","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"delta V = (1-xi N_I)^-1G","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"So what is N_I? In the shallow water system the gravity waves are caused by","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"beginaligned\nfracpartial mathcalDpartial t = -gnabla^2eta \nfracpartial etapartial t = -HmathcalD\nendaligned","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"which is a linearization of the equations around a state of rest with uniform constant layer thickness h = H. The continuity equation with the -nabla(mathbfuh) term, for example, is linearized to -nabla(mathbfuH) = -HmathcalD. The divergence and continuity equations can now be written following the delta V = G + xi N_I(delta V) formulation from above as a coupled system (The vorticity equation is zero for the linear gravity wave equation in the shallow water equations, hence no semi-implicit correction has to be made to the vorticity tendency).","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"beginaligned\ndelta mathcalD = G_mathcalD - xi g nabla^2 delta eta \ndelta eta = G_mathcaleta - xi H deltamathcalD\nendaligned","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"with","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"beginaligned\nG_mathcalD = N_mathcalD - xi g nabla^2 (eta_i-1 - eta_i) \nG_mathcaleta = N_eta - xi H (mathcalD_i-1 - mathcalD_i)\nendaligned","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"Inserting the second equation into the first, we can first solve for delta mathcalD, and then for delta eta. Reminder that we do this in spectral space to every harmonic independently, so the Laplace operator nabla^2 = -l(l+1) takes the form of its eigenvalue -l(l+1) (normalized to unit sphere, as are the scaled shallow water equations) and its inversion is therefore just the inversion of this scalar.","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"delta D = fracG_mathcalD - xi gnabla^2 G_eta1 - xi^2 H nabla^2 = S^-1(G_mathcalD - xi gnabla^2 G_eta) ","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"Where the last formulation just makes it clear that S = 1 - xi^2 H nabla^2 is the operator to be inverted. delta eta is then obtained via insertion as written above. Equivalently, by adding a superscript l for every degree of the spherical harmonics, we have","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"delta mathcalD^l = fracG_mathcalD^l + xi g l(l+1) G_eta^l1 + xi^2 H l(l+1)","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"The idea of the semi-implicit time stepping is now as follows:","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"Evaluate the right-hand side explicitly at time step i to obtain the explicit, preliminary tendencies N_mathcalDN_eta (and N_zeta without a need for semi-implicit correction)\nMove the implicit terms from i to i-1 when calculating G_mathcalD G_eta\nSolve for delta mathcalD, the new, corrected tendency for divergence.\nWith delta mathcalD obtain delta eta, the new, corrected tendency for eta.\nApply horizontal diffusion as a correction to N_zeta delta mathcalD as outlined in Horizontal diffusion.\nLeapfrog with tendencies that have been corrected for both semi-implicit and diffusion.","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"Some notes on the semi-implicit time stepping","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"The inversion of the semi-implicit time stepping depends on delta t, that means every time the time step changes, the inversion has to be recalculated.\nYou may choose alpha = 12 to dampen gravity waves but initialisation shocks still usually kick off many gravity waves that propagate around the sphere for many days.\nWith increasing alpha 12 these waves are also slowed down, such that for alpha = 1 they quickly disappear in several hours.\nUsing the scaled shallow water equations the time step delta t has to be the scaled time step tildeDelta t = delta tR which is divided by the radius R. Then we use the normalized eigenvalues -l(l+1) which also omit the 1R^2 scaling, see scaled shallow water equations for more details.","category":"page"},{"location":"shallowwater/#scaled_swm","page":"Shallow water model","title":"Scaled shallow water equations","text":"","category":"section"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"Similar to the scaled barotropic vorticity equations, SpeedyWeather.jl scales in the shallow water equations. The vorticity and the divergence equation are scaled with R^2, the radius of the sphere squared, but the continuity equation is scaled with R. We also combine the vorticity flux and forcing into a single divergence/curl operation as mentioned in Shallow water equations above","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"beginaligned\nfracpartial tildezetapartial tildet =\ntildenabla times (tildemathbfF + mathbfu_perp(tildezeta + tildef)) +\n(-1)^n+1tildenutildenabla^2ntildezeta \nfracpartial tildemathcalDpartial tildet =\ntildenabla cdot (tildemathbfF + mathbfu_perp(tildezeta + tildef)) -\ntildenabla^2left(tfrac12(u^2 + v^2) + geta right) +\n(-1)^n+1tildenutildenabla^2ntildemathcalD \nfracpartial etapartial tildet =\n- tildenabla cdot (mathbfuh) + tildeF_eta\nendaligned","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"As in the scaled barotropic vorticity equations, one needs to scale the time step, the Coriolis force, the forcing and the diffusion coefficient, but then enjoys the luxury of working with dimensionless gradient operators. As before, SpeedyWeather.jl will scale vorticity and divergence just before the model integration starts and unscale them upon completion and for output. In the semi-implicit time integration we solve an equation that also has to be scaled. It is with radius squared scaling (because it is the tendency for the divergence equation which is also scaled with R^2)","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"R^2 delta D = R^2fracG_mathcalD - xi gnabla^2 G_eta1 - xi^2 H nabla^2","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"As G_eta is only scaled with R we have","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"tildedelta D = fractildeG_mathcalD - tildexi gtildenabla^2 tildeG_eta1 - tildexi^2 H tildenabla^2","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"The R^2 normalizes the Laplace operator in the numerator, but using the scaled G_eta we also scale xi (which is convenient, because the time step within is the one we use anyway). The denominator S does not actually change because xi^2nabla^2 = tildexi^2tildenabla^2 as xi^2 is scaled with 1R^2, but the Laplace operator with R^2. So overall we just have to use the scaled time step tildeDelta t and normalized eigenvalues for tildenabla^2.","category":"page"},{"location":"shallowwater/#References","page":"Shallow water model","title":"References","text":"","category":"section"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"[1]: Geophysical Fluid Dynamics Laboratory, Idealized models with spectral dynamics","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"[2]: Geophysical Fluid Dynamics Laboratory, The Shallow Water Equations.","category":"page"},{"location":"extending/#New-model-setups","page":"Extending SpeedyWeather","title":"New model setups","text":"","category":"section"},{"location":"extending/","page":"Extending SpeedyWeather","title":"Extending SpeedyWeather","text":"more to come...","category":"page"},{"location":"spectral_transform/#Spherical-Harmonic-Transform","page":"Spherical harmonic transform","title":"Spherical Harmonic Transform","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The following sections outline the implementation of the spherical harmonic transform (in short spectral transform) between the coefficients of the spherical harmonics (the spectral space) and the grid space which can be any of the Implemented grids as defined by RingGrids. This includes the classical full Gaussian grid, a regular longitude-latitude grid called the full Clenshaw grid (FullClenshawGrid), ECMWF's octahedral Gaussian grid[Malardel2016], and HEALPix grids[Gorski2004]. SpeedyWeather.jl's spectral transform module SpeedyTransforms is grid-flexible and can be used with any of these, see Grids.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"info: SpeedyTransforms is a module too!\nSpeedyTransform is the underlying module that SpeedyWeather imports to transform between spectral and grid-point space, which also implements Derivatives in spherical coordinates. You can use this module independently of SpeedyWeather for spectral transforms, see SpeedyTransforms.","category":"page"},{"location":"spectral_transform/#Inspiration","page":"Spherical harmonic transform","title":"Inspiration","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The spectral transform implemented by SpeedyWeather.jl follows largely Justin Willmert's CMB.jl and SphericalHarmonicTransforms.jl package and makes use of AssociatedLegendrePolynomials.jl and FFTW.jl for the Fourier transform. Justin described his work in a Blog series [Willmert2020].","category":"page"},{"location":"spectral_transform/#Spherical-harmonics","page":"Spherical harmonic transform","title":"Spherical harmonics","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The spherical harmonics Y_lm of degree l and order m over the longitude phi = (02pi) and colatitudes theta = (-pi2pi2), are","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Y_lm(phi theta) = lambda_l^m(sintheta) e^imphi","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"with lambda_l^m being the pre-normalized associated Legendre polynomials, and e^imphi are the complex exponentials (the Fourier modes). Together they form a set of orthogonal basis functions on the sphere. For an interactive visualisation of the spherical harmonics, see here.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"info: Latitudes versus colatitudes\nThe implementation of the spectral transforms in SpeedyWeather.jl uses colatitudes theta = (0pi) (0 at the north pole) but the dynamical core uses latitudes theta = (-pi2pi2) (pi2 at the north pole). Note: We may also use latitudes in the spherical harmonic transform in the future for consistency. ","category":"page"},{"location":"spectral_transform/#synthesis","page":"Spherical harmonic transform","title":"Synthesis (spectral to grid)","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The synthesis (or inverse transform) takes the spectral coefficients a_lm and transforms them to grid-point values f(phitheta) (for the sake of simplicity first regarded as continuous). The synthesis is a linear combination of the spherical harmonics Y_lm with non-zero coefficients.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"f(phitheta) = sum_l=0^infty sum_m=-l^l a_lm Y_lm(phitheta)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"We obtain an approximation with a finite set of a_lm by truncating the series in both degree l and order m somehow. Most commonly, a triangular truncation is applied, such that all degrees after l = l_max are discarded. Triangular because the retained array of the coefficients a_lm looks like a triangle. Other truncations like rhomboidal have been studied[Daley78] but are rarely used since. Choosing l_max also constrains m_max and determines the (horizontal) spectral resolution. In SpeedyWeather.jl this resolution as chosen as trunc when creating the SpectralGrid.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"For f being a real-valued there is a symmetry","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"a_l-m = (-1)^m a^*_l+m","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"meaning that the coefficients at -m and m are the same, but the sign of the real and imaginary component can be flipped, as denoted with the (-1)^m and the complex conjugate a_lm^*. As we are only dealing with real-valued fields anyway, we therefore never have to store the negative orders -m and end up with a lower triangular matrix of size (l_max+1) times (m_max+1) or technically (T+1)^2 where T is the truncation trunc. One is added here because the degree l and order m use 0-based indexing but sizes (and so is Julia's indexing) are 1-based.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"For correctness we want to mention here that vector quantities require one more degree l due to the recurrence relation in the Meridional derivative. Hence for practical reasons all spectral fields are represented as a lower triangular matrix of size (m_max + 2) times (m_max +1). And the scalar quantities would just not make use of that last degree, and its entries would be simply zero. We will, however, for the following sections ignore this and only discuss it again in Meridional derivative.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Another consequence of the symmetry mentioned above is that the zonal harmonics, meaning a_lm=0 have no imaginary component. Because these harmonics are zonally constant, a non-zero imaginary component would rotate them around the Earth's axis, which, well, doesn't actually change a real-valued field. ","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Following the notation of [Willmert2020] we can therefore write the truncated synthesis as","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"f(phitheta) = sum_l=0^l_max sum_m=0^l (2-delta_m0) a_lm Y_lm(phitheta)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The (2-delta_m0) factor using the Kronecker delta is used here because of the symmetry we have to count both the m-m order pairs (hence the 2) except for the zonal harmonics which do not have a pair.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Another symmetry arises from the fact that the spherical harmonics are either symmetric or anti-symmetric around the Equator. There is an even/odd combination of degrees and orders so that the sign flips like a checkerboard","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Y_lm(phipi-theta) = (-1)^l+mY_lm(phiphi)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"This means that one only has to compute the Legendre polynomials for one hemisphere and the other one follows with this equality.","category":"page"},{"location":"spectral_transform/#analysis","page":"Spherical harmonic transform","title":"Analysis (grid to spectral)","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Starting in grid-point space we can transform a field f(lambdatheta) into the spectral space of the spherical harmonics by","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"a_lm = int_0^2pi int_0^pi f(phitheta) Y_lm(phitheta) sin theta dtheta dphi","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Note that this notation again uses colatitudes theta, for latitudes the sintheta becomes a costheta and the bounds have to be changed accordingly to (-fracpi2fracpi2). A discretization with N grid points at location (phi_itheta_i), indexed by i can be written as [Willmert2020]","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"hata_lm = sum_i f(phi_itheta_i) Y_lm(phi_itheta_i) sin theta_i Deltatheta Deltaphi","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The hat on a just means that it is an approximation, or an estimate of the true a_lm approx hata_lm. We can essentially make use of the same symmetries as already discussed in Synthesis. Splitting into the Fourier modes e^imphi and the Legendre polynomials lambda_l^m(costheta) (which are defined over -11 so the costheta argument maps them to colatitudes) we have","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"hata_lm = sum_j left sum_i f(phi_itheta_j) e^-imphi_i right lambda_lm(theta_j) sin theta_j Deltatheta Deltaphi","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"So the term in brackets can be separated out as long as the latitude theta_j is constant, which motivates us to restrict the spectral transform to grids with iso-latitude rings, see Grids. Furthermore, this term can be written as a fast Fourier transform, if the phi_i are equally spaced on the latitude ring j. Note that the in-ring index i can depend on the ring index j, so that one can have reduced grids, which have fewer grid points towards the poles, for example. Also the Legendre polynomials only have to be computed for the colatitudes theta_j (and in fact only one hemisphere, due to the north-south symmetry discussed in the Synthesis). It is therefore practical and efficient to design a spectral transform implementation for ring grids, but there is no need to hardcode a specific grid.","category":"page"},{"location":"spectral_transform/#Spectral-packing","page":"Spherical harmonic transform","title":"Spectral packing","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Spectral packing is the way how the coefficients a_lm of the spherical harmonics of a given spectral field are stored in an array. SpeedyWeather.jl uses the conventional spectral packing of degree l and order m as illustrated in the following image (Cyp, CC BY-SA 3.0, via Wikimedia Commons)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Every row represents an order l geq 0, starting from l=0 at the top. Every column represents an order m geq 0, starting from m=0 on the left. The coefficients of these spherical harmonics are directly mapped into a matrix a_lm as ","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":" m \nl a_00 \n a_10 a_11 \n a_20 a_12 a_22 \n a_30 a_13 a_23 a_33","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"which is consistently extended for higher degrees and orders. Consequently, all spectral fields are lower-triangular matrices with complex entries. The upper triangle excluding the diagonal are zero. Note that internally vector fields include an additional degree, such that l_max = m_max + 1 (see Derivatives in spherical coordinates for more information). The harmonics with a_l0 (the first column) are also called zonal harmonics as they are constant with longitude phi. The harmonics with a_ll (the main diagonal) are also called sectoral harmonics as they essentially split the sphere into 2l sectors in longitude phi without a zero-crossing in latitude.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"For correctness it is mentioned here that SpeedyWeather.jl uses a LowerTriangularMatrix type to store the spherical harmonic coefficients. By doing so, the upper triangle is actually not explicitly stored and the data technically unravelled into a vector, but this is hidden as much as possible from the user. For more details see LowerTriangularMatrices.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"info: Array indices\nFor a spectral field a note that due to Julia's 1-based indexing the coefficient a_lm is obtained via a[l+1,m+1]. Alternatively, we may index over 1-based l,m but a comment is usually added for clarification.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Fortran SPEEDY does not use the same spectral packing as SpeedyWeather.jl. The alternative packing lm therein uses l=m and m=l-m as summarized in the following table.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"degree l order m l=m m=l-m\n0 0 0 0\n1 0 0 1\n1 1 1 0\n2 0 0 2\n2 1 1 1\n2 2 2 0\n3 0 0 3\n... ... ... ...","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"This alternative packing uses the top-left triangle of a coefficient matrix, and the degrees and orders from above are stored at the following indices","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":" m \nl a_00 a_10 a_20 a_30\n a_11 a_21 a_31 \n a_22 a_32 \n a_33 ","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"This spectral packing is not used in SpeedyWeather.jl but illustrated here for completeness and comparison with Fortran SPEEDY.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"SpeedyWeather.jl uses triangular truncation such that only spherical harmonics with l leq l_max and m leq m_max are explicitly represented. This is usually described as Tm_max, with l_max = m_max (although in vector quantities require one more degree l in the recursion relation of meridional gradients). For example, T31 is the spectral resolution with l_max = m_max = 31. Note that the degree l and order m are mathematically 0-based, such that the corresponding coefficient matrix is of size 32x32.","category":"page"},{"location":"spectral_transform/#Available-horizontal-resolutions","page":"Spherical harmonic transform","title":"Available horizontal resolutions","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Technically, SpeedyWeather.jl supports arbitrarily chosen resolution parameter trunc when creating the SpectralGrid that refers to the highest non-zero degree l_max that is resolved in spectral space. SpeedyWeather.jl will always try to choose an easily-Fourier transformable[FFT] size of the grid, but as we use FFTW.jl there is quite some flexibility without performance sacrifice. However, this has traditionally lead to typical resolutions that we also use for testing we therefore recommend to use. They are as follows with more details below","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"trunc nlon nlat Delta x\n31 (default) 96 48 400 km\n42 128 64 312 km\n63 192 96 216 km\n85 256 128 165 km\n127 384 192 112 km\n170 512 256 85 km\n255 768 384 58 km\n341 1024 512 43 km\n511 1536 768 29 km\n682 2048 1024 22 km\n1024 3072 1536 14 km\n1365 4092 2048 11 km","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Some remarks on this table","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"This assumes the default quadratic truncation, you can always adapt the grid resolution via the dealiasing option, see Matching spectral and grid resolution\nnlat refers to the total number of latitude rings, see Grids. With non-Gaussian grids, nlat will be one one less, e.g. 47 instead of 48 rings.\nnlon is the number of longitude points on the Full Gaussian Grid, for other grids there will be at most these number of points around the Equator.\nDelta x is the horizontal resolution. For a spectral model there are many ways of estimating this[9]. We use here the square root of the average area a grid cell covers, see Effective grid resolution","category":"page"},{"location":"spectral_transform/#Effective-grid-resolution","page":"Spherical harmonic transform","title":"Effective grid resolution","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"There are many ways to estimate the effective grid resolution of spectral models[9]. Some of them are based on the wavelength a given spectral resolution allows to represent, others on the total number of real variables per area. However, as many atmospheric models do represent a considerable amount of physics on the grid (see Parameterizations) there is also a good argument to include the actual grid resolution into this estimate and not just the spectral resolution. We therefore use the average grid cell area to estimate the resolution","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Delta x = sqrtfrac4pi R^2N","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"with N number of grid points over a sphere with radius R. However, we have to acknowledge that this usually gives higher resolution compared to other methods of estimating the effective resolution, see [Randall2021] for a discussion. You may therefore need to be careful to make claims that, e.g. trunc=85 can resolve the atmospheric dynamics at a scale of 165km.","category":"page"},{"location":"spectral_transform/#Derivatives-in-spherical-coordinates","page":"Spherical harmonic transform","title":"Derivatives in spherical coordinates","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Horizontal gradients in spherical coordinates are defined for a scalar field A and the latitudes theta and longitudes lambda as","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"nabla A = left(frac1Rcosthetafracpartial Apartial lambda frac1Rfracpartial Apartial theta right)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"However, the divergence of a vector field mathbfu = (uv) includes additional cos(theta) scalings","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"nabla cdot mathbfu = frac1Rcosthetafracpartial upartial lambda +\nfrac1Rcosthetafracpartial (v costheta)partial theta","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"and similar for the curl","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"nabla times mathbfu = frac1Rcosthetafracpartial vpartial lambda -\nfrac1Rcosthetafracpartial (u costheta)partial theta","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The radius of the sphere (i.e. Earth) is R. The zonal gradient scales with 1cos(theta) as the longitudes converge towards the poles (note that theta describes latitudes here, definitions using colatitudes replace the cos with a sin.)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Starting with a spectral field of vorticity zeta and divergence mathcalD one can obtain stream function Psi and velocity potential Phi by inverting the Laplace operator nabla^2:","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Psi = nabla^-2zeta quad Phi = nabla^-2mathcalD","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The velocities uv are then obtained from (uv) = nabla^botPsi + nablaPhi following the definition from above and nabla^bot = (-R^-1partial_theta (Rcostheta)^-1partial_lambda)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"beginaligned\nu = -frac1Rpartial_thetaPsi + frac1Rcosthetapartial_lambdaPhi \nv = +frac1Rpartial_thetaPhi + frac1Rcosthetapartial_lambdaPsi\nendaligned","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Alternatively, we can use the velocities U = ucostheta V = vcostheta, which we do as the meridional gradient for spherical harmonics is easier implemented with a costheta-scaling included, and because the divergence and curl in spherical coordinates evaluates the meridional gradient with UV and not uv. From uv we can return to zeta mathcalD via","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"beginaligned\nzeta = frac1Rcosthetapartial_lambda v - frac1Rcosthetapartial_theta (u costheta) \nmathcalD = frac1Rcosthetapartial_lambda u + frac1Rcosthetapartial_theta (v costheta)\nendaligned","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Equivalently, we have","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"beginaligned\nU = -fraccosthetaRpartial_thetaPsi + frac1Rpartial_lambdaPhi \nV = +fraccosthetaRpartial_thetaPhi + frac1Rpartial_lambdaPsi \nzeta = frac1Rpartial_lambda left( fracVcos^2theta right) -\nfraccosthetaRpartial_theta left( fracUcos^2theta right) \nmathcalD = frac1Rpartial_lambda left( fracUcos^2theta right) +\nfraccosthetaRpartial_theta left( fracVcos^2theta right)\nendaligned","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"which is a more convenient formulation because of the way how the Meridional derivative is implemented with a recursion relation, actually computing costheta partial_theta rather than partial_theta directly. The remaining cosine scalings in (UV)*cos^-2theta are done in grid-point space. If one wanted to get back to zeta mathcalD this is how it would be done, but it is often more convenient to unscale UV on the fly in the spectral transform to obtain uv and then divide again by costheta when any gradient (or divergence or curl) is taken. This is because other terms would need that single costheta unscaling too before a gradient is taken. How the operators nabla nabla times nabla cdot can be implemented with spherical harmonics is presented in the following sections.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Also note that SpeedyWeather.jl scales the equations with the radius R (see Radius scaling) such that the divisions by R drop out in this last formulation too.","category":"page"},{"location":"spectral_transform/#Zonal-derivative","page":"Spherical harmonic transform","title":"Zonal derivative","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The zonal derivative of a scalar field Psi in spectral space is the zonal derivative of all its respective spherical harmonics Psi_lm(phitheta) (now we use phi for longitudes to avoid confusion with the Legendre polynomials lambda_lm)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"v_lm = frac1R cos(theta) fracpartialpartial phi left( lambda_l^m(costheta) e^imphi right) =\nfracimR cos(theta) lambda_l^m(costheta) e^imphi = fracimR cos(theta) Psi_lm","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"So for every spectral harmonic, cos(theta)v_lm is obtained from Psi_lm via a multiplication with imR. Unscaling the cos(theta)-factor is done after transforming the spectral coefficients v_lm into grid-point space. As discussed in Radius scaling, SpeedyWeather.jl scales the stream function as tildePsi = R^-1Psi such that the division by radius R in the gradients can be omitted. The zonal derivative becomes therefore effectively for each spherical harmonic a scaling with its (imaginary) order im. The spherical harmonics are essentially just a Fourier transform in zonal direction and the derivative a multiplication with the respective wave number m times imaginary i.","category":"page"},{"location":"spectral_transform/#Meridional-derivative","page":"Spherical harmonic transform","title":"Meridional derivative","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The meridional derivative of the spherical harmonics is a derivative of the Legendre polynomials for which the following recursion relation applies[10],[11]","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"costheta fracdP_lmdtheta = -lepsilon_l+1mP_l+1m + (l+1)epsilon_lmP_l-1m","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"with recursion factors","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"epsilon_lm = sqrtfracl^2-m^24l^2-1","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"In the following we use the example of obtaining the zonal velocity u from the stream function Psi, which is through the negative meridional gradient. For the meridional derivative itself the leading minus sign has to be omitted. Starting with the spectral expansion","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Psi(lambdatheta) = sum_lmPsi_lmP_lm(sintheta)e^imlambda","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"we multiply with -R^-1costhetapartial_theta to obtain","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"costhetaleft(-frac1Rpartial_thetaPsi right) = -frac1Rsum_lmPsi_lme^imlambdacosthetapartial_theta P_lm","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"at which point the recursion from above can be applied. Collecting terms proportional to P_lm then yields","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"(cos(theta)u)_lm = -frac1R(-(l-1)epsilon_lmPsi_l-1m + (l+2)epsilon_l+1mPsi_l+1m)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"To obtain the coefficient of each spherical harmonic lm of the meridional gradient of a spectral field, two coefficients at l-1m and l+1m have to be combined. This means that the coefficient of a gradient ((costheta) u)_lm is a linear combination of the coefficients of one higher and one lower degree Psi_l+1mPsi_l-1m. As the coefficient Psi_lm with ml are zero, the sectoral harmonics (l=m) of the gradients are obtained from the first off-diagonal only. However, the l=l_max harmonics of the gradients require the l_max-1 as well as the l_max+1 harmonics. As a consequence vector quantities like velocity components uv require one more degree l than scalar quantities like vorticity[Bourke72]. However, for easier compatibility all spectral fields in SpeedyWeather.jl use one more degree l, but scalar quantities should not make use of it. Equivalently, the last degree l is set to zero before the time integration, which only advances scalar quantities.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"In SpeedyWeather.jl vector quantities like uv use therefore one more meridional mode than scalar quantities such as vorticity zeta or stream function Psi. The meridional derivative in SpeedyWeather.jl also omits the 1R-scaling as explained for the Zonal derivative and in Radius scaling.","category":"page"},{"location":"spectral_transform/#Divergence-and-curl-in-spherical-harmonics","page":"Spherical harmonic transform","title":"Divergence and curl in spherical harmonics","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The meridional gradient as described above can be applied to scalars, such as Psi and Phi in the conversion to velocities (uv) = nabla^botPsi + nablaPhi, however, the operators curl nabla times and divergence nabla cdot in spherical coordinates involve a costheta scaling before the meridional gradient is applied. How to translate this to spectral coefficients has to be derived separately[10],[11].","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The spectral transform of vorticity zeta is","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"zeta_lm = frac12piint_-tfracpi2^tfracpi2int_0^2pi zeta(lambdatheta)\nP_lm(sintheta) e^imlambda dlambda costheta dtheta","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Given that Rzeta = cos^-1partial_lambda v - cos^-1partial_theta (u costheta), we therefore have to evaluate a meridional integral of the form","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"int P_lm frac1cos theta partial_theta(u costheta)) cos theta dtheta","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"which can be solved through integration by parts. As ucostheta = 0 at theta = pm tfracpi2 only the integral","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"= -int partial_theta P_lm (u costheta) dtheta = -int costheta partial_theta P_lm\n(fracucostheta) costheta dtheta","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"remains. Inserting the recurrence relation from the Meridional derivative turns this into","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"= -int left(-l epsilon_l+1mP_l+1m + (l+1)epsilon_lm P_l-1m right) (fracucostheta)\ncos theta dtheta","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Now we expand (tfracucostheta) but only the lm harmonic will project ontoP_lm. Let u^* = ucos^-1theta v^* = vcos^-1theta we then have in total","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"beginaligned\nRzeta_lm = imv^*_lm + (l+1)epsilon_lmu^*_l-1m - lepsilon_l+1mu^*_l+1m \nRD_lm = imu^*_lm - (l+1)epsilon_lmv^*_l-1m + lepsilon_l+1mv^*_l+1m \nendaligned","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"And the divergence D is similar, but (uv) to (-vu). We have moved the scaling with the radius R directly into zetaD as further described in Radius scaling.","category":"page"},{"location":"spectral_transform/#Laplacian","page":"Spherical harmonic transform","title":"Laplacian","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The spectral Laplacian is easily applied to the coefficients Psi_lm of a spectral field as the spherical harmonics are eigenfunctions of the Laplace operator nabla^2 in spherical coordinates with eigenvalues -l(l+1) divided by the radius squared R^2, i.e. nabla^2 Psi becomes tfrac-l(l+1)R^2Psi_lm in spectral space. For example, vorticity zeta and streamfunction Psi are related by zeta = nabla^2Psi in the barotropic vorticity model. Hence, in spectral space this is equivalent for every spectral mode of degree l and order m to","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"zeta_lm = frac-l(l+1)R^2Psi_lm","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"This can be easily inverted to obtain the stream function Psi from vorticity zeta instead. In order to avoid division by zero, we set Psi_00 here, given that the stream function is only defined up to a constant anyway.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"beginaligned\nPsi_lm = fracR^2-l(l+1)zeta_lm quad foralllm 0\nPsi_00 = 0\nendaligned","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"See also Horizontal diffusion and Normalization of diffusion.","category":"page"},{"location":"spectral_transform/#U,V-from-vorticity-and-divergence","page":"Spherical harmonic transform","title":"U,V from vorticity and divergence","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"After having discussed the zonal and meridional derivatives with spherical harmonics as well as the Laplace operator, we can derive the conversion from vorticity zeta and divergence D (which are prognostic variables) to U=ucostheta V=vcostheta. Both are linear operations that act either solely on a given harmonic (the zonal gradient and the Laplace operator) or are linear combinations between one lower and one higher degree l (the meridional gradient). It is therefore computationally more efficient to compute UV directly from zetaD instead of calculating stream function and velocity potential first. In total we have","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"beginaligned\nU_lm = -fraciml(l+1)(RD)_lm + fracepsilon_l+1ml+1(Rzeta)_l+1m -\nfracepsilon_lml(Rzeta)_l-1m \nV_lm = -fraciml(l+1)(Rzeta)_lm - fracepsilon_l+1ml+1(RD)_l+1m +\nfracepsilon_lml(RD)_l-1m \nendaligned","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"We have moved the scaling with the radius R directly into zetaD as further described in Radius scaling.","category":"page"},{"location":"spectral_transform/#References","page":"Spherical harmonic transform","title":"References","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[Malardel2016]: Malardel S, Wedi N, Deconinck W, Diamantakis M, Kühnlein C, Mozdzynski G, Hamrud M, Smolarkiewicz P. A new grid for the IFS. ECMWF newsletter. 2016;146(23-28):321. doi: 10.21957/zwdu9u5i","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[Gorski2004]: Górski, Hivon, Banday, Wandelt, Hansen, Reinecke, Bartelmann, 2004. HEALPix: A FRAMEWORK FOR HIGH-RESOLUTION DISCRETIZATION AND FAST ANALYSIS OF DATA DISTRIBUTED ON THE SPHERE, The Astrophysical Journal. doi:10.1086/427976","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[Willmert2020]: Justin Willmert, 2020. justinwillmert.comIntroduction to Associated Legendre Polynomials (Legendre.jl Series, Part I)\nCalculating Legendre Polynomials (Legendre.jl Series, Part II)\nPre-normalizing Legendre Polynomials (Legendre.jl Series, Part III)\nMaintaining numerical accuracy in the Legendre recurrences (Legendre.jl Series, Part IV)\nIntroducing Legendre.jl (Legendre.jl Series, Part V)\nNumerical Accuracy of the Spherical Harmonic Recurrence Coefficient (Legendre.jl Series Addendum)\nNotes on Calculating the Spherical Harmonics\nMore Notes on Calculating the Spherical Harmonics: Analysis of maps to harmonic coefficients","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[Daley78]: Roger Daley & Yvon Bourassa (1978) Rhomboidal versus triangular spherical harmonic truncation: Some verification statistics, Atmosphere-Ocean, 16:2, 187-196, DOI: 10.1080/07055900.1978.9649026","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[Randall2021]: David Randall, 2021. An Introduction to Numerical Modeling of the Atmosphere, Chapter 22.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[Durran2010]: Dale Durran, 2010. Numerical Methods for Fluid Dynamics, Springer. In particular section 6.2, 6.4.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[GFDL]: Geophysical Fluid Dynamics Laboratory, The barotropic vorticity equation.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[FFT]: Depending on the implementation of the Fast Fourier Transform (Cooley-Tukey algorithm, or or the Bluestein algorithm) easily Fourier-transformable can mean different things: Vectors of the length n that is a power of two, i.e. n = 2^i is certainly easily Fourier-transformable, but for most FFT implementations so are n = 2^i3^j5^k with ijk some positive integers. In fact, FFTW uses O(n log n) algorithms even for prime sizes.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[Bourke72]: Bourke, W. An Efficient, One-Level, Primitive-Equation Spectral Model. Mon. Wea. Rev. 100, 683–689 (1972). doi:10.1175/1520-0493(1972)100<0683:AEOPSM>2.3.CO;2","category":"page"},{"location":"ringgrids/#RingGrids","page":"Submodule: RingGrids","title":"RingGrids","text":"","category":"section"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"RingGrids is a submodule that has been developed for SpeedyWeather.jl which is technically independent (SpeedyWeather.jl however imports it and so does SpeedyTransforms) and can also be used without running simulations. It is just not put into its own respective repository.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"RingGrids defines several iso-latitude grids, which are mathematically described in the section on Grids. In brief, they include the regular latitude-longitude grids (here called FullClenshawGrid) as well as grids which latitudes are shifted to the Gaussian latitudes and reduced grids, meaning that they have a decreasing number of longitudinal points towards the poles to be more equal-area than full grids.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"RingGrids defines and exports the following grids:","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"full grids: FullClenshawGrid, FullGaussianGrid, FullHEALPix, and FullOctaHEALPix\nreduced grids: OctahedralGaussianGrid, OctahedralClenshawGrid, OctaHEALPixGrid and HEALPixGrid","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"The following explanation of how to use these can be mostly applied to any of them, however, there are certain functions that are not defined, e.g. the full grids can be trivially converted to a Matrix (i.e. they are rectangular grids) but not the OctahedralGaussianGrid.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"note: What is a ring?\nWe use the term ring, short for iso-latitude ring, to refer to a sequence of grid points that all share the same latitude. A latitude-longitude grid is a ring grid, as it organises its grid-points into rings. However, other grids, like the cubed-sphere are not based on iso-latitude rings. SpeedyWeather.jl only works with ring grids because its a requirement for the Spherical Harmonic Transform to be efficient. See Grids.","category":"page"},{"location":"ringgrids/#Creating-data-on-a-RingGrid","page":"Submodule: RingGrids","title":"Creating data on a RingGrid","text":"","category":"section"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"Every grid in RingGrids has a grid.data field, which is a vector containing the data on the grid. The grid points are unravelled west to east then north to south, meaning that it starts at 90˚N and 0˚E then walks eastward for 360˚ before jumping on the next latitude ring further south, this way circling around the sphere till reaching the south pole. This may also be called ring order.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"Data in a Matrix which follows this ring order can be put on a FullGaussianGrid like so","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"using SpeedyWeather.RingGrids\nmap = randn(Float32,8,4)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"grid = FullGaussianGrid(map)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"A full Gaussian grid has always 2N x N grid points, but a FullClenshawGrid has 2N x N-1, if those dimensions don't match, the creation will throw an error. To reobtain the data from a grid, you can access its data field which returns a normal Vector","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"grid.data","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"Which can be reshaped to reobtain map from above. Alternatively you can Matrix(grid) to do this in one step","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"map == Matrix(FullGaussianGrid(map))","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"You can also use zeros,ones,rand,randn to create a grid, whereby nlat_half, i.e. the number of latitude rings on one hemisphere, Equator included, is used as a resolution parameter and here as a second argument.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"nlat_half = 4\ngrid = randn(OctahedralGaussianGrid{Float16},nlat_half)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"and any element type T can be used for OctahedralGaussianGrid{T} and similar for other grid types.","category":"page"},{"location":"ringgrids/#Visualising-RingGrid-data","page":"Submodule: RingGrids","title":"Visualising RingGrid data","text":"","category":"section"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"As only the full grids can be reshaped into a matrix, the underlying data structure of any AbstractGrid is a vector. As shown in the examples above, one can therefore inspect the data as if it was a vector. But as that data has, through its <:AbstractGrid type, all the geometric information available to plot it on a map, RingGrids also exports plot function, based on UnicodePlots' heatmap.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"nlat_half = 24\ngrid = randn(OctahedralGaussianGrid,nlat_half)\nplot(grid)","category":"page"},{"location":"ringgrids/#Indexing-RingGrids","page":"Submodule: RingGrids","title":"Indexing RingGrids","text":"","category":"section"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"All RingGrids have a single index ij which follows the ring order. While this is obviously not super exciting here are some examples how to make better use of the information that the data sits on a grid.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"We obtain the latitudes of the rings of a grid by calling get_latd (get_lond is only defined for full grids, or use get_latdlonds for latitudes, longitudes per grid point not per ring)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"grid = randn(OctahedralClenshawGrid,5)\nlatd = get_latd(grid)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"Now we could calculate Coriolis and add it on the grid as follows","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"rotation = 7.29e-5 # angular frequency of Earth's rotation [rad/s]\ncoriolis = 2rotation*sind.(latd) # vector of coriolis parameters per latitude ring\n\nrings = eachring(grid)\nfor (j,ring) in enumerate(rings)\n f = coriolis[j]\n for ij in ring\n grid[ij] += f\n end\nend","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"eachring creates a vector of UnitRange indices, such that we can loop over the ring index j (j=1 being closest to the North pole) pull the coriolis parameter at that latitude and then loop over all in-ring indices i (changing longitudes) to do something on the grid. Something similar can be done to scale/unscale with the cosine of latitude for example. We can always loop over all grid-points like so","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"for ij in eachgridpoint(grid)\n grid[ij]\nend","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"or use eachindex instead.","category":"page"},{"location":"ringgrids/#Interpolation-on-RingGrids","page":"Submodule: RingGrids","title":"Interpolation on RingGrids","text":"","category":"section"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"In most cases we will want to use RingGrids so that our data directly comes with the geometric information of where the grid-point is one the sphere. We have seen how to use get_latd, get_lond, ... for that above. This information generally can also be used to interpolate our data from grid to another or to request an interpolated value on some coordinates. Using our data on grid which is an OctahedralGaussianGrid from above we can use the interpolate function to get it onto a FullGaussianGrid (or any other grid for purpose)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"grid = randn(OctahedralGaussianGrid{Float32},4)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"interpolate(FullGaussianGrid,grid)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"By default this will linearly interpolate (it's an Anvil interpolator, see below) onto a grid with the same nlat_half, but we can also coarse-grain or fine-grain by specifying nlat_half directly as 2nd argument","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"interpolate(FullGaussianGrid,6,grid)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"So we got from an 8-ring OctahedralGaussianGrid{Float16} to a 12-ring FullGaussianGrid{Float64}, so it did a conversion from Float16 to Float64 on the fly too, because the default precision is Float64 unless specified. interpolate(FullGaussianGrid{Float16},6,grid) would have interpolated onto a grid with element type Float16.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"One can also interpolate onto a given coordinate ˚N, ˚E like so","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"interpolate(30.0,10.0,grid)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"we interpolated the data from grid onto 30˚N, 10˚E. To do this simultaneously for many coordinates they can be packed into a vector too","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"interpolate([30.0,40.0,50.0],[10.0,10.0,10.0],grid)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"which returns the data on grid at 30˚N, 40˚N, 50˚N, and 10˚E respectively. Note how the interpolation here retains the element type of grid.","category":"page"},{"location":"ringgrids/#Performance-for-RingGrid-interpolation","page":"Submodule: RingGrids","title":"Performance for RingGrid interpolation","text":"","category":"section"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"Every time an interpolation like interpolate(30.0,10.0,grid) is called, several things happen, which are important to understand to know how to get the fastest interpolation out of this module in a given situation. Under the hood an interpolation takes three arguments","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"output vector\ninput grid\ninterpolator","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"The output vector is just an array into which the interpolated data is written, providing this prevents unnecessary allocation of memory in case the destination array of the interpolation already exists. The input grid contains the data which is subject to interpolation, it must come on a ring grid, however, its coordinate information is actually already in the interpolator. The interpolator knows about the geometry of the grid the data is coming on and the coordinates it is supposed to interpolate onto. It has therefore precalculated the indices that are needed to access the right data on the input grid and the weights it needs to apply in the actual interpolation operation. The only thing it does not know is the actual data values of that grid. So in the case you want to interpolate from grid A to grid B many times, you can just reuse the same interpolator. If you want to change the coordinates of the output grid but its total number of points remain constants then you can update the locator inside the interpolator and only else you will need to create a new interpolator. Let's look at this in practice. Say we have two grids an want to interpolate between them","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"grid_in = rand(HEALPixGrid,4)\ngrid_out = zeros(FullClenshawGrid,6)\ninterp = RingGrids.interpolator(grid_out,grid_in)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"Now we have created an interpolator interp which knows about the geometry where to interpolate from and the coordinates there to interpolate to. It is also initialized, meaning it has precomputed the indices to of grid_in that are supposed to be used. It just does not know about the data of grid_in (and neither of grid_out which will be overwritten anyway). We can now do","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"interpolate!(grid_out,grid_in,interp)\ngrid_out","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"which is identical to interpolate(grid_out,grid_in) but you can reuse interp for other data. The interpolation can also handle various element types (the interpolator interp does not have to be updated for this either)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"grid_out = zeros(FullClenshawGrid{Float16},6);\ninterpolate!(grid_out,grid_in,interp)\ngrid_out","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"and we have converted data from a HEALPixGrid{Float64} (Float64 is always default if not specified) to a FullClenshawGrid{Float16} including the type conversion Float64-Float16 on the fly. Technically there are three data types and their combinations possible: The input data will come with a type, the output array has an element type and the interpolator has precomputed weights with a given type. Say we want to go from Float16 data on an OctahedralGaussianGrid to Float16 on a FullClenshawGrid but using Float32 precision for the interpolation itself, we would do this by","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"grid_in = randn(OctahedralGaussianGrid{Float16},24)\ngrid_out = zeros(FullClenshawGrid{Float16},24)\ninterp = RingGrids.interpolator(Float32,grid_out,grid_in)\ninterpolate!(grid_out,grid_in,interp)\ngrid_out","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"As a last example we want to illustrate a situation where we would always want to interpolate onto 10 coordinates, but their locations may change. In order to avoid recreating an interpolator object we would do (AnvilInterpolator is described in Anvil interpolator)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"npoints = 10 # number of coordinates to interpolate onto\ninterp = AnvilInterpolator(Float32,HEALPixGrid,24,npoints)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"with the first argument being the number format used during interpolation, then the input grid type, its resolution in terms of nlat_half and then the number of points to interpolate onto. However, interp is not yet initialized as it does not know about the destination coordinates yet. Let's define them, but note that we already decided there's only 10 of them above.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"latds = collect(0.0:5.0:45.0)\nlonds = collect(-10.0:2.0:8.0)\nnothing # hide","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"now we can update the locator inside our interpolator as follows","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"RingGrids.update_locator!(interp,latds,londs)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"With data matching the input from above, a nlat_half=24 HEALPixGrid, and allocate 10-element output vector","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"output_vec = zeros(10)\ngrid_input = rand(HEALPixGrid,24)\nnothing # hide","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"we can use the interpolator as follows","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"interpolate!(output_vec,grid_input,interp)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"which is the approximately the same as doing it directly without creating an interpolator first and updating its locator","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"interpolate(latds,londs,grid_input)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"but allows for a reuse of the interpolator. Note that the two output arrays are not exactly identical because we manually set our interpolator interp to use Float32 for the interpolation whereas the default is Float64.","category":"page"},{"location":"ringgrids/#Anvil-interpolator","page":"Submodule: RingGrids","title":"Anvil interpolator","text":"","category":"section"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"Currently the only interpolator implemented is a 4-point bilinear interpolator, which schematically works as follows. Anvil interpolation is the bilinear average of a,b,c,d which are values at grid points in an anvil-shaped configuration at location x, which is denoted by Δab,Δcd,Δy, the fraction of distances between a-b,c-d, and ab-cd, respectively. Note that a,c and b,d do not necessarily share the same longitude/x-coordinate.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":" 0..............1 # fraction of distance Δab between a,b\n |< Δab >|\n\n0^ a -------- o - b # anvil-shaped average of a,b,c,d at location x\n.Δy |\n. |\n.v x \n. |\n1 c ------ o ---- d\n\n |< Δcd >|\n 0...............1 # fraction of distance Δcd between c,d\n\n^ fraction of distance Δy between a-b and c-d.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"This interpolation is chosen as by definition of the ring grids, a and b share the same latitude, so do c and d, but the longitudes can be different for all four, a,b,c,d.","category":"page"},{"location":"ringgrids/#Function-index","page":"Submodule: RingGrids","title":"Function index","text":"","category":"section"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"Modules = [SpeedyWeather.RingGrids]","category":"page"},{"location":"ringgrids/#SpeedyWeather.RingGrids.AbstractFullGrid","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.AbstractFullGrid","text":"abstract type AbstractFullGrid{T} <: AbstractGrid{T} end\n\nAn AbstractFullGrid is a horizontal grid with a constant number of longitude points across latitude rings. Different latitudes can be used, Gaussian latitudes, equi-angle latitdes, or others.\n\n\n\n\n\n","category":"type"},{"location":"ringgrids/#SpeedyWeather.RingGrids.AbstractGrid","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.AbstractGrid","text":"abstract type AbstractGrid{T} <: AbstractVector{T} end\n\nThe abstract supertype for all spatial grids on the sphere supported by SpeedyWeather.jl. Every new grid has to be of the form\n\nabstract type AbstractGridClass{T} <: AbstractGrid{T} end\nstruct MyNewGrid{T} <: AbstractGridClass{T}\n data::Vector{T} # all grid points unravelled into a vector\n nlat_half::Int # resolution: latitude rings on one hemisphere (Equator incl)\nend\n\nMyNewGrid should belong to a grid class like AbstractFullGrid, AbstractOctahedralGrid or AbstractHEALPixGrid (that already exist but you may introduce a new class of grids) that share certain features such as the number of longitude points per latitude ring and indexing, but may have different latitudes or offset rotations. Each new grid Grid (or grid class) then has to implement the following methods (as an example, see octahedral.jl)\n\nFundamental grid properties getnpoints # total number of grid points nlatodd # does the grid have an odd number of latitude rings? getnlat # total number of latitude rings getnlat_half # number of latitude rings on one hemisphere incl Equator\n\nIndexing getnlonmax # maximum number of longitudes points (at the Equator) getnlonperring # number of longitudes on ring j eachindexinring # a unit range that indexes all longitude points on a ring\n\nCoordinates getcolat # vector of colatitudes (radians) getcolatlon # vectors of colatitudes, longitudes (both radians)\n\nSpectral truncation truncationorder # linear, quadratic, cubic = 1,2,3 for grid gettruncation # spectral truncation given a grid resolution get_resolution # grid resolution given a spectral truncation\n\nQuadrature weights and solid angles getquadratureweights # = sinθ Δθ for grid points on ring j for meridional integration getsolidangle # = sinθ Δθ Δϕ, solid angle of grid points on ring j\n\n\n\n\n\n","category":"type"},{"location":"ringgrids/#SpeedyWeather.RingGrids.AbstractHEALPixGrid","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.AbstractHEALPixGrid","text":"abstract type AbstractHEALPixGrid{T} <: AbstractGrid{T} end\n\nAn AbstractHEALPixGrid is a horizontal grid similar to the standard HEALPixGrid, but different latitudes can be used, the default HEALPix latitudes or others.\n\n\n\n\n\n","category":"type"},{"location":"ringgrids/#SpeedyWeather.RingGrids.AbstractInterpolator","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.AbstractInterpolator","text":"abstract type AbstractInterpolator{NF,G} end\n\nSupertype for Interpolators. Every Interpolator <: AbstractInterpolator is expected to have two fields,\n\ngeometry, which describes the grid G to interpolate from\nlocator, which locates the indices on G and their weights to interpolate onto a new grid.\n\nNF is the number format used to calculate the interpolation, which can be different from the input data and/or the interpolated data on the new grid.\n\n\n\n\n\n","category":"type"},{"location":"ringgrids/#SpeedyWeather.RingGrids.AbstractLocator","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.AbstractLocator","text":"AbstractLocator{NF}\n\nSupertype of every Locator, which locates the indices on a grid to be used to perform an interpolation. E.g. AnvilLocator uses a 4-point stencil for every new coordinate to interpolate onto. Higher order stencils can be implemented by defining OtherLocator <: AbstractLocactor.\n\n\n\n\n\n","category":"type"},{"location":"ringgrids/#SpeedyWeather.RingGrids.AbstractOctaHEALPixGrid","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.AbstractOctaHEALPixGrid","text":"abstract type AbstractOctaHEALPixGrid{T} <: AbstractGrid{T} end\n\nAn AbstractOctaHEALPixGrid is a horizontal grid similar to the standard OctahedralGrid, but the number of points in the ring closest to the Poles starts from 4 instead of 20, and the longitude of the first point in each ring is shifted as in HEALPixGrid. Also, different latitudes can be used.\n\n\n\n\n\n","category":"type"},{"location":"ringgrids/#SpeedyWeather.RingGrids.AbstractOctahedralGrid","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.AbstractOctahedralGrid","text":"abstract type AbstractOctahedralGrid{T} <: AbstractGrid{T} end\n\nAn AbstractOctahedralGrid is a horizontal grid with 16+4i longitude points on the latitude ring i starting with i=1 around the pole. Different latitudes can be used, Gaussian latitudes, equi-angle latitdes, or others.\n\n\n\n\n\n","category":"type"},{"location":"ringgrids/#SpeedyWeather.RingGrids.AnvilLocator","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.AnvilLocator","text":"AnvilLocator{NF<:AbstractFloat} <: AbtractLocator\n\nContains arrays that locates grid points of a given field to be uses in an interpolation and their weights. This Locator is a 4-point average in an anvil-shaped grid-point arrangement between two latitude rings.\n\n\n\n\n\n","category":"type"},{"location":"ringgrids/#SpeedyWeather.RingGrids.AnvilLocator-Union{Tuple{Integer}, Tuple{NF}} where NF<:AbstractFloat","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.AnvilLocator","text":"L = AnvilLocator( ::Type{NF}, # number format used for the interpolation\n npoints::Integer # number of points to interpolate onto\n ) where {NF<:AbstractFloat}\n\nZero generator function for the 4-point average AnvilLocator. Use update_locator! to update the grid indices used for interpolation and their weights. The number format NF is the format used for the calculations within the interpolation, the input data and/or output data formats may differ.\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.FullClenshawGrid","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.FullClenshawGrid","text":"G = FullClenshawGrid{T}\n\nA FullClenshawGrid is a regular latitude-longitude grid with an odd number of nlat equi-spaced latitudes, the central latitude ring is on the Equator. The same nlon longitudes for every latitude ring. The grid points are closer in zonal direction around the poles. The values of all grid points are stored in a vector field data that unravels the data 0 to 360˚, then ring by ring, which are sorted north to south.\n\n\n\n\n\n","category":"type"},{"location":"ringgrids/#SpeedyWeather.RingGrids.FullGaussianGrid","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.FullGaussianGrid","text":"G = FullGaussianGrid{T}\n\nA full Gaussian grid is a regular latitude-longitude grid that uses nlat Gaussian latitudes, and the same nlon longitudes for every latitude ring. The grid points are closer in zonal direction around the poles. The values of all grid points are stored in a vector field v that unravels the data 0 to 360˚, then ring by ring, which are sorted north to south.\n\n\n\n\n\n","category":"type"},{"location":"ringgrids/#SpeedyWeather.RingGrids.FullHEALPixGrid","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.FullHEALPixGrid","text":"G = FullHEALPixGrid{T}\n\nA full HEALPix grid is a regular latitude-longitude grid that uses nlat latitudes from the HEALPix grid, and the same nlon longitudes for every latitude ring. The grid points are closer in zonal direction around the poles. The values of all grid points are stored in a vector field v that unravels the data 0 to 360˚, then ring by ring, which are sorted north to south.\n\n\n\n\n\n","category":"type"},{"location":"ringgrids/#SpeedyWeather.RingGrids.FullOctaHEALPixGrid","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.FullOctaHEALPixGrid","text":"G = FullOctaHEALPixGrid{T}\n\nA full OctaHEALPix grid is a regular latitude-longitude grid that uses nlat OctaHEALPix latitudes, and the same nlon longitudes for every latitude ring. The grid points are closer in zonal direction around the poles. The values of all grid points are stored in a vector field v that unravels the data 0 to 360˚, then ring by ring, which are sorted north to south.\n\n\n\n\n\n","category":"type"},{"location":"ringgrids/#SpeedyWeather.RingGrids.GridGeometry","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.GridGeometry","text":"GridGeometry{G<:AbstractGrid}\n\ncontains general precomputed arrays describing the grid of G.\n\n\n\n\n\n","category":"type"},{"location":"ringgrids/#SpeedyWeather.RingGrids.GridGeometry-Tuple{Type{<:SpeedyWeather.RingGrids.AbstractGrid}, Integer}","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.GridGeometry","text":"G = GridGeometry( Grid::Type{<:AbstractGrid},\n nlat_half::Integer)\n\nPrecomputed arrays describing the geometry of the Grid with resolution nlat_half. Contains latitudes and longitudes of grid points, their ring index j and their unravelled indices ij.\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.HEALPixGrid","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.HEALPixGrid","text":"H = HEALPixGrid{T}\n\nA HEALPix grid with 12 faces, each nsidexnside grid points, each covering the same area. The number of latitude rings on one hemisphere (incl Equator) nlat_half is used as resolution parameter. The values of all grid points are stored in a vector field v that unravels the data 0 to 360˚, then ring by ring, which are sorted north to south.\n\n\n\n\n\n","category":"type"},{"location":"ringgrids/#SpeedyWeather.RingGrids.OctaHEALPixGrid","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.OctaHEALPixGrid","text":"H = OctaHEALPixGrid{T}\n\nA OctaHEALPix grid with 4 base faces, each nlat_halfxnlat_half grid points, each covering the same area. The values of all grid points are stored in a vector field data that unravels the data 0 to 360˚, then ring by ring, which are sorted north to south.\n\n\n\n\n\n","category":"type"},{"location":"ringgrids/#SpeedyWeather.RingGrids.OctahedralClenshawGrid","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.OctahedralClenshawGrid","text":"G = OctahedralClenshawGrid{T}\n\nAn Octahedral Clenshaw grid that uses nlat equi-spaced latitudes. Like FullClenshawGrid, the central latitude ring is on the Equator. Like OctahedralGaussianGrid, the number of longitude points per latitude ring decreases towards the poles. Starting with 20 equi-spaced longitude points (starting at 0˚E) on the rings around the poles, each latitude ring towards the equator has consecuitively 4 more points, one for each face of the octahedron. E.g. 20,24,28,32,...nlon-4,nlon,nlon,nlon-4,...,32,28,24,20. The maximum number of longitue points is nlon. The values of all grid points are stored in a vector field v that unravels the data 0 to 360˚, then ring by ring, which are sorted north to south.\n\n\n\n\n\n","category":"type"},{"location":"ringgrids/#SpeedyWeather.RingGrids.OctahedralGaussianGrid","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.OctahedralGaussianGrid","text":"G = OctahedralGaussianGrid{T}\n\nAn Octahedral Gaussian grid that uses nlat Gaussian latitudes, but a decreasing number of longitude points per latitude ring towards the poles. Starting with 20 equi-spaced longitude points (starting at 0˚E) on the rings around the poles, each latitude ring towards the equator has consecuitively 4 more points, one for each face of the octahedron. E.g. 20,24,28,32,...nlon-4,nlon,nlon,nlon-4,...,32,28,24,20. The maximum number of longitue points is nlon. The values of all grid points are stored in a vector field v that unravels the data 0 to 360˚, then ring by ring, which are sorted north to south.\n\n\n\n\n\n","category":"type"},{"location":"ringgrids/#SpeedyWeather.RingGrids.Matrix!-Tuple{AbstractMatrix, OctaHEALPixGrid}","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.Matrix!","text":"Matrix!(M::AbstractMatrix,\n G::OctaHEALPixGrid;\n quadrant_rotation=(0,1,2,3),\n matrix_quadrant=((2,2),(1,2),(1,1),(2,1)),\n )\n\nSorts the gridpoints in G into the matrix M without interpolation. Every quadrant of the grid G is rotated as specified in quadrant_rotation, 0 is no rotation, 1 is 90˚ clockwise, 2 is 180˚ etc. Grid quadrants are counted eastward starting from 0˚E. The grid quadrants are moved into the matrix quadrant (i,j) as specified. Defaults are equivalent to centered at 0˚E and a rotation such that the North Pole is at M's midpoint.\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.Matrix!-Tuple{AbstractMatrix, OctahedralClenshawGrid}","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.Matrix!","text":"Matrix!(M::AbstractMatrix,\n G::OctahedralClenshawGrid;\n quadrant_rotation=(0,1,2,3),\n matrix_quadrant=((2,2),(1,2),(1,1),(2,1)),\n )\n\nSorts the gridpoints in G into the matrix M without interpolation. Every quadrant of the grid G is rotated as specified in quadrant_rotation, 0 is no rotation, 1 is 90˚ clockwise, 2 is 180˚ etc. Grid quadrants are counted eastward starting from 0˚E. The grid quadrants are moved into the matrix quadrant (i,j) as specified. Defaults are equivalent to centered at 0˚E and a rotation such that the North Pole is at M's midpoint.\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.Matrix!-Union{Tuple{Vararg{Tuple{AbstractMatrix{T}, OctaHEALPixGrid}}}, Tuple{T}} where T","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.Matrix!","text":"Matrix!(MGs::Tuple{AbstractMatrix{T},OctaHEALPixGrid}...;kwargs...)\n\nLike Matrix!(::AbstractMatrix,::OctaHEALPixGrid) but for simultaneous processing of tuples ((M1,G1),(M2,G2),...) with matrices Mi and grids Gi. All matrices and grids have to be of the same size respectively.\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.Matrix!-Union{Tuple{Vararg{Tuple{AbstractMatrix{T}, OctahedralClenshawGrid}}}, Tuple{T}} where T","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.Matrix!","text":"Matrix!(MGs::Tuple{AbstractMatrix{T},OctahedralClenshawGrid}...;kwargs...)\n\nLike Matrix!(::AbstractMatrix,::OctahedralClenshawGrid) but for simultaneous processing of tuples ((M1,G1),(M2,G2),...) with matrices Mi and grids Gi. All matrices and grids have to be of the same size respectively.\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.anvil_average-NTuple{7, Any}","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.anvil_average","text":"anvil_average(a, b, c, d, Δab, Δcd, Δy) -> Any\n\n\nThe bilinear average of a,b,c,d which are values at grid points in an anvil-shaped configuration at location x, which is denoted by Δab,Δcd,Δy, the fraction of distances between a-b,c-d, and ab-cd, respectively. Note that a,c and b,d do not necessarily share the same longitude/x-coordinate. See schematic:\n\n 0..............1 # fraction of distance Δab between a,b\n |< Δab >|\n\n 0^ a -------- o - b # anvil-shaped average of a,b,c,d at location x\n .Δy |\n . |\n .v x \n . |\n 1 c ------ o ---- d\n\n |< Δcd >|\n 0...............1 # fraction of distance Δcd between c,d\n\n^ fraction of distance Δy between a-b and c-d.\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.average_on_poles-Union{Tuple{NF}, Tuple{SpeedyWeather.RingGrids.AbstractGrid{NF}, Vector{<:UnitRange{<:Integer}}}} where NF<:AbstractFloat","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.average_on_poles","text":"average_on_poles(\n A::SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},\n rings::Vector{<:UnitRange{<:Integer}}\n) -> Tuple{Any, Any}\n\n\nComputes the average at the North and South pole from a given grid A and it's precomputed ring indices rings. The North pole average is an equally weighted average of all grid points on the northern-most ring. Similar for the South pole.\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.average_on_poles-Union{Tuple{NF}, Tuple{SpeedyWeather.RingGrids.AbstractGrid{NF}, Vector{<:UnitRange{<:Integer}}}} where NF<:Integer","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.average_on_poles","text":"average_on_poles(\n A::SpeedyWeather.RingGrids.AbstractGrid{NF<:Integer},\n rings::Vector{<:UnitRange{<:Integer}}\n) -> Tuple{Any, Any}\n\n\nMethod for A::Abstract{T<:Integer} which rounds the averaged values to return the same number format NF.\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.each_index_in_ring-Union{Tuple{Grid}, Tuple{Grid, Integer}} where Grid<:SpeedyWeather.RingGrids.AbstractGrid","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.each_index_in_ring","text":"i = each_index_in_ring(grid,j)\n\nUnitRange i to access data on grid grid on ring j.\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.eachgridpoint-Tuple{SpeedyWeather.RingGrids.AbstractGrid}","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.eachgridpoint","text":"ijs = eachgridpoint(grid)\n\nUnitRange ijs to access each grid point on grid grid.\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.eachring-Tuple{SpeedyWeather.RingGrids.AbstractGrid}","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.eachring","text":"eachring(grid::SpeedyWeather.RingGrids.AbstractGrid) -> Any\n\n\nVector{UnitRange} rings to loop over every ring of grid grid and then each grid point per ring. To be used like\n\nrings = eachring(grid)\nfor ring in rings\n for ij in ring\n grid[ij]\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.eachring-Union{Tuple{Grid}, Tuple{Grid, Vararg{Grid}}} where Grid<:SpeedyWeather.RingGrids.AbstractGrid","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.eachring","text":"eachring(\n grid1::SpeedyWeather.RingGrids.AbstractGrid,\n grids::Grid<:SpeedyWeather.RingGrids.AbstractGrid...\n) -> Any\n\n\nSame as eachring(grid) but performs a bounds check to assess that all grids in grids are of same size.\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.extrema_in-Tuple{Vector, Real, Real}","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.extrema_in","text":"true/false = extrema_in(v::Vector,a::Real,b::Real)\n\nFor every element vᵢ in v does a<=vi<=b hold?\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.get_nlons-Tuple{Type{<:SpeedyWeather.RingGrids.AbstractGrid}, Integer}","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.get_nlons","text":"get_nlons(\n Grid::Type{<:SpeedyWeather.RingGrids.AbstractGrid},\n nlat_half::Integer;\n both_hemispheres\n) -> Any\n\n\nReturns a vector nlons for the number of longitude points per latitude ring, north to south. Provide grid Grid and its resolution parameter nlat_half. For both_hemisphere==false only the northern hemisphere (incl Equator) is returned.\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.isdecreasing-Tuple{Vector}","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.isdecreasing","text":"true/false = isdecreasing(v::Vector)\n\nCheck whether elements of a vector v are strictly decreasing.\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.isincreasing-Tuple{Vector}","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.isincreasing","text":"true/false = isincreasing(v::Vector)\n\nCheck whether elements of a vector v are strictly increasing.\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.rotate_matrix_indices_180-Tuple{Integer, Integer, Integer}","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.rotate_matrix_indices_180","text":"i_new,j_new = rotate_matrix_indices_180(i,j,s)\n\nRotate indices i,j of a square matrix of size s x s by 180˚.\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.rotate_matrix_indices_270-Tuple{Integer, Integer, Integer}","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.rotate_matrix_indices_270","text":"i_new,j_new = rotate_matrix_indices_270(i,j,s)\n\nRotate indices i,j of a square matrix of size s x s anti-clockwise by 270˚.\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.rotate_matrix_indices_90-Tuple{Integer, Integer, Integer}","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.rotate_matrix_indices_90","text":"i_new,j_new = rotate_matrix_indices_90(i,j,s)\n\nRotate indices i,j of a square matrix of size s x s anti-clockwise by 90˚.\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.whichring-Tuple{Integer, Vector{UnitRange{Int64}}}","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.whichring","text":"whichring(\n ij::Integer,\n rings::Vector{UnitRange{Int64}}\n) -> Int64\n\n\nObtain ring index j from gridpoint ij and Vector{UnitRange} describing rind indices as obtained from eachring(::Grid)\n\n\n\n\n\n","category":"method"},{"location":"#SpeedyWeather.jl-documentation","page":"Home","title":"SpeedyWeather.jl documentation","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Welcome to the documentation for SpeedyWeather.jl a global atmospheric circulation model with simple parametrizations to represent physical processes such as clouds, precipitation and radiation.","category":"page"},{"location":"#Overview","page":"Home","title":"Overview","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"SpeedyWeather.jl is a global spectral model that uses a spherical harmonic transform to simulate the general circulation of the atmosphere. The prognostic variables used are vorticity, divergence, temperature, surface pressure and specific humidity. Simple parameterizations represent various climate processes: Radiation, clouds, precipitation, surface fluxes, among others.","category":"page"},{"location":"","page":"Home","title":"Home","text":"SpeedyWeather.jl defines ","category":"page"},{"location":"","page":"Home","title":"Home","text":"BarotropicModel for the 2D barotropic vorticity equation\nShallowWaterModel for the 2D shallow water equations\nPrimitiveDryModel for the 3D primitive equations without humidity\nPrimitiveWetModel for the 3D primitive equations with humidity","category":"page"},{"location":"","page":"Home","title":"Home","text":"and solves these equations in spherical coordinates as described in this documentation.","category":"page"},{"location":"#Manual-outline","page":"Home","title":"Manual outline","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"See the following pages of the documentation for more details","category":"page"},{"location":"","page":"Home","title":"Home","text":"Installation\nHow to run SpeedyWeather.jl\nSpherical harmonic transform\nGrids\nBarotropic model\nShallow water model\nPrimitive equation model\nParameterizations\nExtending SpeedyWeather\nNetCDF output","category":"page"},{"location":"","page":"Home","title":"Home","text":"and the submodules","category":"page"},{"location":"","page":"Home","title":"Home","text":"RingGrids\nLowerTriangularMatrices \nSpeedyTransforms","category":"page"},{"location":"","page":"Home","title":"Home","text":"and the original documentation by Molteni and Kucharski.","category":"page"},{"location":"#Developers","page":"Home","title":"Developers","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"The development of SpeedyWeather.jl is lead by Milan Klöwer and current and past contributors include","category":"page"},{"location":"","page":"Home","title":"Home","text":"Tom Kimpson\nAlistair White\nMaximilian Gelbrecht\nDavid Meyer\nDaisuke Hotta\nNavid Constantinou","category":"page"},{"location":"","page":"Home","title":"Home","text":"Any contributions are always welcome!","category":"page"},{"location":"#Funding","page":"Home","title":"Funding","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"MK received funding by the European Research Council under Horizon 2020 within the ITHACA project, grant agreement number 741112 from 2021-2022. Since 2023 this project is also funded by the National Science Foundation NSF.","category":"page"},{"location":"time_integration/#Time-integration","page":"Time integration","title":"Time integration","text":"","category":"section"},{"location":"time_integration/","page":"Time integration","title":"Time integration","text":"SpeedyWeather.jl uses a leapfrog time scheme with a Robert's and Williams filter to dampen the computational mode and achieve 3rd order accuracy.","category":"page"},{"location":"time_integration/#Oscillation-equation","page":"Time integration","title":"Oscillation equation","text":"","category":"section"},{"location":"time_integration/","page":"Time integration","title":"Time integration","text":"fracdFdt = iomega F","category":"page"},{"location":"time_integration/#Implementation-details","page":"Time integration","title":"Implementation details","text":"","category":"section"}] +} diff --git a/previews/PR360/shallowwater/index.html b/previews/PR360/shallowwater/index.html new file mode 100644 index 000000000..5630b4249 --- /dev/null +++ b/previews/PR360/shallowwater/index.html @@ -0,0 +1,36 @@ + +Shallow water model · SpeedyWeather.jl

          Shallow water model

          The shallow water model describes the evolution of a 2D flow described by its velocity and an interface height that conceptually represents pressure. A divergent flow affects the interface height which in turn can impose a pressure gradient force onto the flow. The dynamics include advection, forces, dissipation, and continuity.

          The following description of the shallow water model largely follows the idealized models with spectral dynamics developed at the Geophysical Fluid Dynamics Laboratory[1]: The Shallow Water Equations[2].

          Shallow water equations

          The shallow water equations of velocity $\mathbf{u} = (u,v)$ and interface height $\eta$ (i.e. the deviation from the fluid's rest height $H$) are, formulated in terms of relative vorticity $\zeta = \nabla \times \mathbf{u}$, divergence $\mathcal{D} = \nabla \cdot \mathbf{u}$

          \[\begin{aligned} +\frac{\partial \zeta}{\partial t} + \nabla \cdot (\mathbf{u}(\zeta + f)) &= +\nabla \times \mathbf{F} + (-1)^{n+1}\nu\nabla^{2n}\zeta, \\ +\frac{\partial \mathcal{D}}{\partial t} - \nabla \times (\mathbf{u}(\zeta + f)) &= +\nabla \cdot \mathbf{F} -\nabla^2(\tfrac{1}{2}(u^2 + v^2) + g\eta) + (-1)^{n+1}\nu\nabla^{2n}\mathcal{D}, \\ +\frac{\partial \eta}{\partial t} + \nabla \cdot (\mathbf{u}h) &= F_\eta, +\end{aligned}\]

          We denote time$t$, Coriolis parameter $f$, a forcing vector $\mathbf{F} = (F_u,F_v)$, hyperdiffusion $(-1)^{n+1} \nu \nabla^{2n}$ ($n$ is the hyperdiffusion order, see Horizontal diffusion), gravitational acceleration $g$, dynamic layer thickness $h$, and a forcing for the interface height $F_\eta$. In the shallow water model the dynamics layer thickness $h$ is

          \[h = \eta + H - H_b\]

          that is, the layer thickness at rest $H$ plus the interface height $\eta$ minus orography $H_b$.

          In the shallow water system the flow can be described through $u,v$ or $\zeta,\mathcal{D}$ which are related through the stream function $\Psi$ and the velocity potential $\Phi$ (which is zero in the Barotropic vorticity equation).

          \[\begin{aligned} +\zeta &= \nabla^2 \Psi \\ +\mathcal{D} &= \nabla^2 \Phi \\ +\mathbf{u} &= \nabla^\perp \Psi + \nabla \Phi +\end{aligned}\]

          With $\nabla^\perp$ being the rotated gradient operator, in cartesian coordinates $x,y$: $\nabla^\perp = (-\partial_y, \partial_x)$. See Derivatives in spherical coordinates for further details. Especially because the inversion of the Laplacian and the gradients of $\Psi, \Phi$ can be computed in a single pass, see U,V from vorticity and divergence.

          The divergence/curl of the vorticity flux $\mathbf{u}(\zeta + f)$ are combined with the divergence/curl of the forcing vector $\mathbf{F}$, as

          \[\begin{aligned} +- \nabla \cdot (\mathbf{u}(\zeta + f)) + \nabla \times \mathbf{F} &= +\nabla \times (\mathbf{F} + \mathbf{u}_\perp(\zeta + f)) \\ +\nabla \times (\mathbf{u}(\zeta + f)) + \nabla \cdot \mathbf{F} &= +\nabla \cdot (\mathbf{F} + \mathbf{u}_\perp(\zeta + f)) +\end{aligned}\]

          equivalently to how this is done in the Barotropic vorticity equation with $\mathbf{u}_\perp = (v,-u)$.

          Algorithm

          0. Start with initial conditions of relative vorticity $\zeta_{lm}$, divergence $D_{lm}$, and interface height $\eta_{lm}$ in spectral space and transform this model state to grid-point space:

          • Invert the Laplacian of $\zeta_{lm}$ to obtain the stream function $\Psi_{lm}$ in spectral space
          • Invert the Laplacian of $D_{lm}$ to obtain the velocity potential $\Phi_{lm}$ in spectral space
          • obtain velocities $U_{lm} = (\cos(\theta)u)_{lm}, V_{lm} = (\cos(\theta)v)_{lm}$ from $\nabla^\perp\Psi_{lm} + \nabla\Phi_{lm}$
          • Transform velocities $U_{lm}$, $V_{lm}$ to grid-point space $U,V$
          • Unscale the $\cos(\theta)$ factor to obtain $u,v$
          • Transform $\zeta_{lm}$, $D_{lm}$, $\eta_{lm}$ to $\zeta, D, \eta$ in grid-point space

          Now loop over

          1. Compute the forcing vector $\mathbf{F} = (F_u,F_v)$ for $u$ and $v$
          2. Multiply $u,v$ with $\zeta+f$ in grid-point space
          3. Add $A = F_u + v(\zeta + f)$ and $B = F_v - u(\zeta + f)$
          4. Transform these vector components to spectral space $A_{lm}$, $B_{lm}$
          5. Compute the curl of $(A,B)_{lm}$ in spectral space which is the tendency of $\zeta_{lm}$
          6. Compute the divergence of $(A,B)_{lm}$ in spectral space which is the tendency of $\mathcal{D}_{lm}$
          7. Compute the kinetic energy $\frac{1}{2}(u^2 + v^2)$ and transform to spectral space
          8. Add to the kinetic energy the "geopotential" $g\eta_{lm}$ in spectral space to obtain the Bernoulli potential
          9. Take the Laplacian of the Bernoulli potential and subtract from the divergence tendency
          10. Compute the volume fluxes $uh,vh$ in grid-point space via $h = \eta + H - H_b$
          11. Transform to spectral space and take the divergence for $-\nabla \cdot (\mathbf{u}h)$ which is the tendency for $\eta$
          12. Add possibly forcing $F_\eta$ for $\eta$ in spectral space
          13. Correct the tendencies following the semi-implicit time integration to prevent fast gravity waves from causing numerical instabilities
          14. Compute the horizontal diffusion based on the $\zeta,\mathcal{D}$ tendencies
          15. Compute a leapfrog time step as described in Time integration with a Robert-Asselin and Williams filter
          16. Transform the new spectral state of $\zeta_{lm}$, $\mathcal{D}_{lm}$, $\eta_{lm}$ to grid-point $u,v,\zeta,\mathcal{D},\eta$ as described in 0.
          17. Possibly do some output
          18. Repeat from 1.

          Semi-implicit time integration

          Probably the biggest advantage of a spectral model is its ability to solve (parts of) the equations implicitly a low computational cost. The reason is that a linear operator can be easily inverted in spectral space, removing the necessity to solve large equation systems. An operation like $\Psi = \nabla^{-2}\zeta$ in grid-point space is costly because it requires a global communication, coupling all grid points. In spectral space $\nabla^2$ is a diagonal operator, meaning that there is no communication between harmonics and its inversion is therefore easily done on a mode-by-mode basis of the harmonics.

          This can be made use of when facing time stepping constraints with explicit schemes, where ridiculuously small time steps to resolve fast waves would otherwise result in a horribly slow simulation. In the shallow water system there are gravity waves that propagate at a wave speed of $\sqrt{gH}$ (typically 300m/s), which, in order to not violate the CFL criterion for explicit time stepping, would need to be resolved. Therefore, treating the terms that are responsible for gravity waves implicitly would remove that time stepping constraint and allows us to run the simulation at the time step needed to resolve the advective motion of the atmosphere, which is usually one or two orders of magnitude longer than gravity waves.

          In the following we will describe how the semi implicit time integration can be combined with the Leapfrog time stepping and the Robert-Asselin and Williams filter for a large increase in numerical stability with gravity waves. Let $V_i$ be the model state of all prognostic variables at time step $i$, the leapfrog time stepping is then

          \[\frac{V_{i+1} - V_{i-1}}{2\Delta t} = N(V_{i})\]

          with the right-hand side operator $N$ evaluated at the current time step $i$. Now the idea is to split the terms in $N$ into non-linear terms that are evaluated explicitly in $N_E$ and into the linear terms $N_I$, solved implicitly, that are responsible for the gravity waves. We could already assume to evaluate $N_I$ at $i+1$, but in fact, we can introduce $\alpha \in [0,1]$ so that for $\alpha=0$ we use $i-1$ (i.e. explicit), for $\alpha=1/2$ it is centred implicit $\tfrac{1}{2}N_I(V_{i-1}) + \tfrac{1}{2}N_I(V_{i+1})$, and for $\alpha=1$ a fully backwards scheme $N_I(V_{i+1})$ evaluated at $i+1$.

          \[\frac{V_{i+1} - V_{i-1}}{2\Delta t} = N_E(V_{i}) + \alpha N_I(V_{i+1}) + (1-\alpha)N_I(V_{i-1})\]

          Let $\delta V = \tfrac{V_{i+1} - V_{i-1}}{2\Delta t}$ be the tendency we need for the Leapfrog time stepping. Introducing $\xi = 2\alpha\Delta t$ we have

          \[\delta V = N_E(V_i) + N_I(V_{i-1}) + \xi N_I(\delta V)\]

          because $N_I$ is a linear operator. This is done so that we can solve for $\delta V$ by inverting $N_I$, but let us gather the other terms as $G$ first.

          \[G = N_E(V_i) + N_I(V_{i-1}) = N(V_i) + N_I(V_{i-1} - V_i)\]

          For the shallow water equations we will only make use of the last formulation, meaning we first evaluate the whole right-hand side $N(V_i)$ at the current time step as we would do with fully explicit time stepping but then add the implicit terms $N_I(V_{i-1} - V_i)$ afterwards to move those terms from $i$ to $i-1$. Note that we could also directly evaluate the implicit terms at $i-1$ as it is suggested in the previous formulation $N_E(V_i) + N_I(V_{i-1})$, the result would be the same. But in general it can be more efficient to do it one or the other way, and in fact it is also possible to combine both ways. This will be discussed in the semi-implicit time stepping for the primitive equations.

          We can now implicitly solve for $\delta V$ by

          \[\delta V = (1-\xi N_I)^{-1}G\]

          So what is $N_I$? In the shallow water system the gravity waves are caused by

          \[\begin{aligned} +\frac{\partial \mathcal{D}}{\partial t} &= -g\nabla^2\eta \\ +\frac{\partial \eta}{\partial t} &= -H\mathcal{D}, +\end{aligned}\]

          which is a linearization of the equations around a state of rest with uniform constant layer thickness $h = H$. The continuity equation with the $-\nabla(\mathbf{u}h)$ term, for example, is linearized to $-\nabla(\mathbf{u}H) = -H\mathcal{D}$. The divergence and continuity equations can now be written following the $\delta V = G + \xi N_I(\delta V)$ formulation from above as a coupled system (The vorticity equation is zero for the linear gravity wave equation in the shallow water equations, hence no semi-implicit correction has to be made to the vorticity tendency).

          \[\begin{aligned} +\delta \mathcal{D} &= G_\mathcal{D} - \xi g \nabla^2 \delta \eta \\ +\delta \eta &= G_\mathcal{\eta} - \xi H \delta\mathcal{D} +\end{aligned}\]

          with

          \[\begin{aligned} +G_\mathcal{D} &= N_\mathcal{D} - \xi g \nabla^2 (\eta_{i-1} - \eta_i) \\ +G_\mathcal{\eta} &= N_\eta - \xi H (\mathcal{D}_{i-1} - \mathcal{D}_i) +\end{aligned}\]

          Inserting the second equation into the first, we can first solve for $\delta \mathcal{D}$, and then for $\delta \eta$. Reminder that we do this in spectral space to every harmonic independently, so the Laplace operator $\nabla^2 = -l(l+1)$ takes the form of its eigenvalue $-l(l+1)$ (normalized to unit sphere, as are the scaled shallow water equations) and its inversion is therefore just the inversion of this scalar.

          \[\delta D = \frac{G_\mathcal{D} - \xi g\nabla^2 G_\eta}{1 - \xi^2 H \nabla^2} =: S^{-1}(G_\mathcal{D} - \xi g\nabla^2 G_\eta) \]

          Where the last formulation just makes it clear that $S = 1 - \xi^2 H \nabla^2$ is the operator to be inverted. $\delta \eta$ is then obtained via insertion as written above. Equivalently, by adding a superscript $l$ for every degree of the spherical harmonics, we have

          \[\delta \mathcal{D}^l = \frac{G_\mathcal{D}^l + \xi g l(l+1) G_\eta^l}{1 + \xi^2 H l(l+1)}\]

          The idea of the semi-implicit time stepping is now as follows:

          1. Evaluate the right-hand side explicitly at time step $i$ to obtain the explicit, preliminary tendencies $N_\mathcal{D},N_\eta$ (and $N_\zeta$ without a need for semi-implicit correction)
          2. Move the implicit terms from $i$ to $i-1$ when calculating $G_\mathcal{D}, G_\eta$
          3. Solve for $\delta \mathcal{D}$, the new, corrected tendency for divergence.
          4. With $\delta \mathcal{D}$ obtain $\delta \eta$, the new, corrected tendency for $\eta$.
          5. Apply horizontal diffusion as a correction to $N_\zeta, \delta \mathcal{D}$ as outlined in Horizontal diffusion.
          6. Leapfrog with tendencies that have been corrected for both semi-implicit and diffusion.

          Some notes on the semi-implicit time stepping

          • The inversion of the semi-implicit time stepping depends on $\delta t$, that means every time the time step changes, the inversion has to be recalculated.
          • You may choose $\alpha = 1/2$ to dampen gravity waves but initialisation shocks still usually kick off many gravity waves that propagate around the sphere for many days.
          • With increasing $\alpha > 1/2$ these waves are also slowed down, such that for $\alpha = 1$ they quickly disappear in several hours.
          • Using the scaled shallow water equations the time step $\delta t$ has to be the scaled time step $\tilde{\Delta t} = \delta t/R$ which is divided by the radius $R$. Then we use the normalized eigenvalues $-l(l+1)$ which also omit the $1/R^2$ scaling, see scaled shallow water equations for more details.

          Scaled shallow water equations

          Similar to the scaled barotropic vorticity equations, SpeedyWeather.jl scales in the shallow water equations. The vorticity and the divergence equation are scaled with $R^2$, the radius of the sphere squared, but the continuity equation is scaled with $R$. We also combine the vorticity flux and forcing into a single divergence/curl operation as mentioned in Shallow water equations above

          \[\begin{aligned} +\frac{\partial \tilde{\zeta}}{\partial \tilde{t}} &= +\tilde{\nabla} \times (\tilde{\mathbf{F}} + \mathbf{u}_\perp(\tilde{\zeta} + \tilde{f})) + +(-1)^{n+1}\tilde{\nu}\tilde{\nabla}^{2n}\tilde{\zeta} \\ +\frac{\partial \tilde{\mathcal{D}}}{\partial \tilde{t}} &= +\tilde{\nabla} \cdot (\tilde{\mathbf{F}} + \mathbf{u}_\perp(\tilde{\zeta} + \tilde{f})) - +\tilde{\nabla}^2\left(\tfrac{1}{2}(u^2 + v^2) + g\eta \right) + +(-1)^{n+1}\tilde{\nu}\tilde{\nabla}^{2n}\tilde{\mathcal{D}} \\ +\frac{\partial \eta}{\partial \tilde{t}} &= +- \tilde{\nabla} \cdot (\mathbf{u}h) + \tilde{F}_\eta. +\end{aligned}\]

          As in the scaled barotropic vorticity equations, one needs to scale the time step, the Coriolis force, the forcing and the diffusion coefficient, but then enjoys the luxury of working with dimensionless gradient operators. As before, SpeedyWeather.jl will scale vorticity and divergence just before the model integration starts and unscale them upon completion and for output. In the semi-implicit time integration we solve an equation that also has to be scaled. It is with radius squared scaling (because it is the tendency for the divergence equation which is also scaled with $R^2$)

          \[R^2 \delta D = R^2\frac{G_\mathcal{D} - \xi g\nabla^2 G_\eta}{1 - \xi^2 H \nabla^2}\]

          As $G_\eta$ is only scaled with $R$ we have

          \[\tilde{\delta D} = \frac{\tilde{G_\mathcal{D}} - \tilde{\xi} g\tilde{\nabla}^2 \tilde{G_\eta}}{1 - \tilde{\xi}^2 H \tilde{\nabla}^2}\]

          The $R^2$ normalizes the Laplace operator in the numerator, but using the scaled $G_\eta$ we also scale $\xi$ (which is convenient, because the time step within is the one we use anyway). The denominator $S$ does not actually change because $\xi^2\nabla^2 = \tilde{\xi}^2\tilde{\nabla}^2$ as $\xi^2$ is scaled with $1/R^2$, but the Laplace operator with $R^2$. So overall we just have to use the scaled time step $\tilde{\Delta t}$ and normalized eigenvalues for $\tilde{\nabla}^2$.

          References

          diff --git a/previews/PR360/siteinfo.js b/previews/PR360/siteinfo.js new file mode 100644 index 000000000..33d7c054f --- /dev/null +++ b/previews/PR360/siteinfo.js @@ -0,0 +1 @@ +var DOCUMENTER_CURRENT_VERSION = "previews/PR360"; diff --git a/previews/PR360/spectral_transform/index.html b/previews/PR360/spectral_transform/index.html new file mode 100644 index 000000000..43dbbf1eb --- /dev/null +++ b/previews/PR360/spectral_transform/index.html @@ -0,0 +1,32 @@ + +Spherical harmonic transform · SpeedyWeather.jl

          Spherical Harmonic Transform

          The following sections outline the implementation of the spherical harmonic transform (in short spectral transform) between the coefficients of the spherical harmonics (the spectral space) and the grid space which can be any of the Implemented grids as defined by RingGrids. This includes the classical full Gaussian grid, a regular longitude-latitude grid called the full Clenshaw grid (FullClenshawGrid), ECMWF's octahedral Gaussian grid[Malardel2016], and HEALPix grids[Gorski2004]. SpeedyWeather.jl's spectral transform module SpeedyTransforms is grid-flexible and can be used with any of these, see Grids.

          SpeedyTransforms is a module too!

          SpeedyTransform is the underlying module that SpeedyWeather imports to transform between spectral and grid-point space, which also implements Derivatives in spherical coordinates. You can use this module independently of SpeedyWeather for spectral transforms, see SpeedyTransforms.

          Inspiration

          The spectral transform implemented by SpeedyWeather.jl follows largely Justin Willmert's CMB.jl and SphericalHarmonicTransforms.jl package and makes use of AssociatedLegendrePolynomials.jl and FFTW.jl for the Fourier transform. Justin described his work in a Blog series [Willmert2020].

          Spherical harmonics

          The spherical harmonics $Y_{lm}$ of degree $l$ and order $m$ over the longitude $\phi = (0,2\pi)$ and colatitudes $\theta = (-\pi/2,\pi/2)$, are

          \[Y_{lm}(\phi, \theta) = \lambda_l^m(\sin\theta) e^{im\phi}\]

          with $\lambda_l^m$ being the pre-normalized associated Legendre polynomials, and $e^{im\phi}$ are the complex exponentials (the Fourier modes). Together they form a set of orthogonal basis functions on the sphere. For an interactive visualisation of the spherical harmonics, see here.

          Latitudes versus colatitudes

          The implementation of the spectral transforms in SpeedyWeather.jl uses colatitudes $\theta = (0,\pi)$ (0 at the north pole) but the dynamical core uses latitudes $\theta = (-\pi/2,\pi/2)$ ($\pi/2$ at the north pole). Note: We may also use latitudes in the spherical harmonic transform in the future for consistency.

          Synthesis (spectral to grid)

          The synthesis (or inverse transform) takes the spectral coefficients $a_{lm}$ and transforms them to grid-point values $f(\phi,\theta)$ (for the sake of simplicity first regarded as continuous). The synthesis is a linear combination of the spherical harmonics $Y_{lm}$ with non-zero coefficients.

          \[f(\phi,\theta) = \sum_{l=0}^{\infty} \sum_{m=-l}^l a_{lm} Y_{lm}(\phi,\theta)\]

          We obtain an approximation with a finite set of $a_{l,m}$ by truncating the series in both degree $l$ and order $m$ somehow. Most commonly, a triangular truncation is applied, such that all degrees after $l = l_{max}$ are discarded. Triangular because the retained array of the coefficients $a_{l,m}$ looks like a triangle. Other truncations like rhomboidal have been studied[Daley78] but are rarely used since. Choosing $l_{max}$ also constrains $m_{max}$ and determines the (horizontal) spectral resolution. In SpeedyWeather.jl this resolution as chosen as trunc when creating the SpectralGrid.

          For $f$ being a real-valued there is a symmetry

          \[a_{l,-m} = (-1)^m a^*_{l,+m},\]

          meaning that the coefficients at $-m$ and $m$ are the same, but the sign of the real and imaginary component can be flipped, as denoted with the $(-1)^m$ and the complex conjugate $a_{l,m}^*$. As we are only dealing with real-valued fields anyway, we therefore never have to store the negative orders $-m$ and end up with a lower triangular matrix of size $(l_{max}+1) \times (m_{max}+1)$ or technically $(T+1)^2$ where $T$ is the truncation trunc. One is added here because the degree $l$ and order $m$ use 0-based indexing but sizes (and so is Julia's indexing) are 1-based.

          For correctness we want to mention here that vector quantities require one more degree $l$ due to the recurrence relation in the Meridional derivative. Hence for practical reasons all spectral fields are represented as a lower triangular matrix of size $(m_{max} + 2) \times (m_{max} +1)$. And the scalar quantities would just not make use of that last degree, and its entries would be simply zero. We will, however, for the following sections ignore this and only discuss it again in Meridional derivative.

          Another consequence of the symmetry mentioned above is that the zonal harmonics, meaning $a_{l,m=0}$ have no imaginary component. Because these harmonics are zonally constant, a non-zero imaginary component would rotate them around the Earth's axis, which, well, doesn't actually change a real-valued field.

          Following the notation of [Willmert2020] we can therefore write the truncated synthesis as

          \[f(\phi,\theta) = \sum_{l=0}^{l_{max}} \sum_{m=0}^l (2-\delta_{m0}) a_{lm} Y_{lm}(\phi,\theta)\]

          The $(2-\delta_{m0})$ factor using the Kronecker $\delta$ is used here because of the symmetry we have to count both the $m,-m$ order pairs (hence the $2$) except for the zonal harmonics which do not have a pair.

          Another symmetry arises from the fact that the spherical harmonics are either symmetric or anti-symmetric around the Equator. There is an even/odd combination of degrees and orders so that the sign flips like a checkerboard

          \[Y_{l,m}(\phi,\pi-\theta) = (-1)^{l+m}Y_{lm}(\phi,\phi)\]

          This means that one only has to compute the Legendre polynomials for one hemisphere and the other one follows with this equality.

          Analysis (grid to spectral)

          Starting in grid-point space we can transform a field $f(\lambda,\theta)$ into the spectral space of the spherical harmonics by

          \[a_{l,m} = \int_0^{2\pi} \int_{0}^\pi f(\phi,\theta) Y_{l,m}(\phi,\theta) \sin \theta d\theta d\phi\]

          Note that this notation again uses colatitudes $\theta$, for latitudes the $\sin\theta$ becomes a $\cos\theta$ and the bounds have to be changed accordingly to $(-\frac{\pi}{2},\frac{\pi}{2})$. A discretization with $N$ grid points at location $(\phi_i,\theta_i)$, indexed by $i$ can be written as [Willmert2020]

          \[\hat{a}_{l,m} = \sum_i f(\phi_i,\theta_i) Y_{l,m}(\phi_i,\theta_i) \sin \theta_i \Delta\theta \Delta\phi\]

          The hat on $a$ just means that it is an approximation, or an estimate of the true $a_{lm} \approx \hat{a}_{lm}$. We can essentially make use of the same symmetries as already discussed in Synthesis. Splitting into the Fourier modes $e^{im\phi}$ and the Legendre polynomials $\lambda_l^m(\cos\theta)$ (which are defined over $[-1,1]$ so the $\cos\theta$ argument maps them to colatitudes) we have

          \[\hat{a}_{l,m} = \sum_j \left[ \sum_i f(\phi_i,\theta_j) e^{-im\phi_i} \right] \lambda_{l,m}(\theta_j) \sin \theta_j \Delta\theta \Delta\phi\]

          So the term in brackets can be separated out as long as the latitude $\theta_j$ is constant, which motivates us to restrict the spectral transform to grids with iso-latitude rings, see Grids. Furthermore, this term can be written as a fast Fourier transform, if the $\phi_i$ are equally spaced on the latitude ring $j$. Note that the in-ring index $i$ can depend on the ring index $j$, so that one can have reduced grids, which have fewer grid points towards the poles, for example. Also the Legendre polynomials only have to be computed for the colatitudes $\theta_j$ (and in fact only one hemisphere, due to the north-south symmetry discussed in the Synthesis). It is therefore practical and efficient to design a spectral transform implementation for ring grids, but there is no need to hardcode a specific grid.

          Spectral packing

          Spectral packing is the way how the coefficients $a_{lm}$ of the spherical harmonics of a given spectral field are stored in an array. SpeedyWeather.jl uses the conventional spectral packing of degree $l$ and order $m$ as illustrated in the following image (Cyp, CC BY-SA 3.0, via Wikimedia Commons)

          Every row represents an order $l \geq 0$, starting from $l=0$ at the top. Every column represents an order $m \geq 0$, starting from $m=0$ on the left. The coefficients of these spherical harmonics are directly mapped into a matrix $a_{lm}$ as

          $m$
          $l$$a_{00}$
          $a_{10}$$a_{11}$
          $a_{20}$$a_{12}$$a_{22}$
          $a_{30}$$a_{13}$$a_{23}$$a_{33}$

          which is consistently extended for higher degrees and orders. Consequently, all spectral fields are lower-triangular matrices with complex entries. The upper triangle excluding the diagonal are zero. Note that internally vector fields include an additional degree, such that $l_{max} = m_{max} + 1$ (see Derivatives in spherical coordinates for more information). The harmonics with $a_{l0}$ (the first column) are also called zonal harmonics as they are constant with longitude $\phi$. The harmonics with $a_{ll}$ (the main diagonal) are also called sectoral harmonics as they essentially split the sphere into $2l$ sectors in longitude $\phi$ without a zero-crossing in latitude.

          For correctness it is mentioned here that SpeedyWeather.jl uses a LowerTriangularMatrix type to store the spherical harmonic coefficients. By doing so, the upper triangle is actually not explicitly stored and the data technically unravelled into a vector, but this is hidden as much as possible from the user. For more details see LowerTriangularMatrices.

          Array indices

          For a spectral field a note that due to Julia's 1-based indexing the coefficient $a_{lm}$ is obtained via a[l+1,m+1]. Alternatively, we may index over 1-based l,m but a comment is usually added for clarification.

          Fortran SPEEDY does not use the same spectral packing as SpeedyWeather.jl. The alternative packing $l',m'$ therein uses $l'=m$ and $m'=l-m$ as summarized in the following table.

          degree $l$order $m$$l'=m$$m'=l-m$
          0000
          1001
          1110
          2002
          2111
          2220
          3003
          ............

          This alternative packing uses the top-left triangle of a coefficient matrix, and the degrees and orders from above are stored at the following indices

          $m'$
          $l'$$a_{00}$$a_{10}$$a_{20}$$a_{30}$
          $a_{11}$$a_{21}$$a_{31}$
          $a_{22}$$a_{32}$
          $a_{33}$

          This spectral packing is not used in SpeedyWeather.jl but illustrated here for completeness and comparison with Fortran SPEEDY.

          SpeedyWeather.jl uses triangular truncation such that only spherical harmonics with $l \leq l_{max}$ and $|m| \leq m_{max}$ are explicitly represented. This is usually described as $Tm_{max}$, with $l_{max} = m_{max}$ (although in vector quantities require one more degree $l$ in the recursion relation of meridional gradients). For example, T31 is the spectral resolution with $l_{max} = m_{max} = 31$. Note that the degree $l$ and order $m$ are mathematically 0-based, such that the corresponding coefficient matrix is of size 32x32.

          Available horizontal resolutions

          Technically, SpeedyWeather.jl supports arbitrarily chosen resolution parameter trunc when creating the SpectralGrid that refers to the highest non-zero degree $l_{max}$ that is resolved in spectral space. SpeedyWeather.jl will always try to choose an easily-Fourier transformable[FFT] size of the grid, but as we use FFTW.jl there is quite some flexibility without performance sacrifice. However, this has traditionally lead to typical resolutions that we also use for testing we therefore recommend to use. They are as follows with more details below

          truncnlonnlat$\Delta x$
          31 (default)9648400 km
          4212864312 km
          6319296216 km
          85256128165 km
          127384192112 km
          17051225685 km
          25576838458 km
          341102451243 km
          511153676829 km
          6822048102422 km
          10243072153614 km
          13654092204811 km

          Some remarks on this table

          • This assumes the default quadratic truncation, you can always adapt the grid resolution via the dealiasing option, see Matching spectral and grid resolution
          • nlat refers to the total number of latitude rings, see Grids. With non-Gaussian grids, nlat will be one one less, e.g. 47 instead of 48 rings.
          • nlon is the number of longitude points on the Full Gaussian Grid, for other grids there will be at most these number of points around the Equator.
          • $\Delta x$ is the horizontal resolution. For a spectral model there are many ways of estimating this[9]. We use here the square root of the average area a grid cell covers, see Effective grid resolution

          Effective grid resolution

          There are many ways to estimate the effective grid resolution of spectral models[9]. Some of them are based on the wavelength a given spectral resolution allows to represent, others on the total number of real variables per area. However, as many atmospheric models do represent a considerable amount of physics on the grid (see Parameterizations) there is also a good argument to include the actual grid resolution into this estimate and not just the spectral resolution. We therefore use the average grid cell area to estimate the resolution

          \[\Delta x = \sqrt{\frac{4\pi R^2}{N}}\]

          with $N$ number of grid points over a sphere with radius $R$. However, we have to acknowledge that this usually gives higher resolution compared to other methods of estimating the effective resolution, see [Randall2021] for a discussion. You may therefore need to be careful to make claims that, e.g. trunc=85 can resolve the atmospheric dynamics at a scale of 165km.

          Derivatives in spherical coordinates

          Horizontal gradients in spherical coordinates are defined for a scalar field $A$ and the latitudes $\theta$ and longitudes $\lambda$ as

          \[\nabla A = \left(\frac{1}{R\cos\theta}\frac{\partial A}{\partial \lambda}, \frac{1}{R}\frac{\partial A}{\partial \theta} \right).\]

          However, the divergence of a vector field $\mathbf{u} = (u,v)$ includes additional $\cos(\theta)$ scalings

          \[\nabla \cdot \mathbf{u} = \frac{1}{R\cos\theta}\frac{\partial u}{\partial \lambda} + +\frac{1}{R\cos\theta}\frac{\partial (v \cos\theta)}{\partial \theta},\]

          and similar for the curl

          \[\nabla \times \mathbf{u} = \frac{1}{R\cos\theta}\frac{\partial v}{\partial \lambda} - +\frac{1}{R\cos\theta}\frac{\partial (u \cos\theta)}{\partial \theta}.\]

          The radius of the sphere (i.e. Earth) is $R$. The zonal gradient scales with $1/\cos(\theta)$ as the longitudes converge towards the poles (note that $\theta$ describes latitudes here, definitions using colatitudes replace the $\cos$ with a $\sin$.)

          Starting with a spectral field of vorticity $\zeta$ and divergence $\mathcal{D}$ one can obtain stream function $\Psi$ and velocity potential $\Phi$ by inverting the Laplace operator $\nabla^2$:

          \[\Psi = \nabla^{-2}\zeta, \quad \Phi = \nabla^{-2}\mathcal{D}.\]

          The velocities $u,v$ are then obtained from $(u,v) = \nabla^\bot\Psi + \nabla\Phi$ following the definition from above and $\nabla^\bot = (-R^{-1}\partial_\theta, (R\cos\theta)^{-1}\partial_\lambda)$

          \[\begin{aligned} +u &= -\frac{1}{R}\partial_\theta\Psi + \frac{1}{R\cos\theta}\partial_\lambda\Phi \\ +v &= +\frac{1}{R}\partial_\theta\Phi + \frac{1}{R\cos\theta}\partial_\lambda\Psi. +\end{aligned}\]

          Alternatively, we can use the velocities $U = u\cos\theta, V = v\cos\theta$, which we do as the meridional gradient for spherical harmonics is easier implemented with a $\cos\theta$-scaling included, and because the divergence and curl in spherical coordinates evaluates the meridional gradient with $U,V$ and not $u,v$. From $u,v$ we can return to $\zeta, \mathcal{D}$ via

          \[\begin{aligned} +\zeta &= \frac{1}{R\cos\theta}\partial_\lambda v - \frac{1}{R\cos\theta}\partial_\theta (u \cos\theta) \\ +\mathcal{D} &= \frac{1}{R\cos\theta}\partial_\lambda u + \frac{1}{R\cos\theta}\partial_\theta (v \cos\theta). +\end{aligned}\]

          Equivalently, we have

          \[\begin{aligned} +U &= -\frac{\cos\theta}{R}\partial_\theta\Psi + \frac{1}{R}\partial_\lambda\Phi \\ +V &= +\frac{\cos\theta}{R}\partial_\theta\Phi + \frac{1}{R}\partial_\lambda\Psi \\ +\zeta &= \frac{1}{R}\partial_\lambda \left( \frac{V}{\cos^2\theta} \right) - +\frac{\cos\theta}{R}\partial_\theta \left( \frac{U}{\cos^2\theta} \right) \\ +\mathcal{D} &= \frac{1}{R}\partial_\lambda \left( \frac{U}{\cos^2\theta} \right) + +\frac{\cos\theta}{R}\partial_\theta \left( \frac{V}{\cos^2\theta} \right). +\end{aligned}\]

          which is a more convenient formulation because of the way how the Meridional derivative is implemented with a recursion relation, actually computing $\cos\theta \partial_\theta$ rather than $\partial_\theta$ directly. The remaining cosine scalings in $(U,V)*\cos^{-2}\theta$ are done in grid-point space. If one wanted to get back to $\zeta, \mathcal{D}$ this is how it would be done, but it is often more convenient to unscale $U,V$ on the fly in the spectral transform to obtain $u,v$ and then divide again by $\cos\theta$ when any gradient (or divergence or curl) is taken. This is because other terms would need that single $\cos\theta$ unscaling too before a gradient is taken. How the operators $\nabla, \nabla \times, \nabla \cdot$ can be implemented with spherical harmonics is presented in the following sections.

          Also note that SpeedyWeather.jl scales the equations with the radius R (see Radius scaling) such that the divisions by R drop out in this last formulation too.

          Zonal derivative

          The zonal derivative of a scalar field $\Psi$ in spectral space is the zonal derivative of all its respective spherical harmonics $\Psi_{lm}(\phi,\theta)$ (now we use $\phi$ for longitudes to avoid confusion with the Legendre polynomials $\lambda_{lm}$)

          \[v_{lm} = \frac{1}{R \cos(\theta)} \frac{\partial}{\partial \phi} \left( \lambda_l^m(\cos\theta) e^{im\phi} \right) = +\frac{im}{R \cos(\theta)} \lambda_l^m(\cos\theta) e^{im\phi} = \frac{im}{R \cos(\theta)} \Psi_{lm}\]

          So for every spectral harmonic, $\cos(\theta)v_{lm}$ is obtained from $\Psi_{lm}$ via a multiplication with $im/R$. Unscaling the $\cos(\theta)$-factor is done after transforming the spectral coefficients $v_{lm}$ into grid-point space. As discussed in Radius scaling, SpeedyWeather.jl scales the stream function as $\tilde{\Psi} = R^{-1}\Psi$ such that the division by radius $R$ in the gradients can be omitted. The zonal derivative becomes therefore effectively for each spherical harmonic a scaling with its (imaginary) order $im$. The spherical harmonics are essentially just a Fourier transform in zonal direction and the derivative a multiplication with the respective wave number $m$ times imaginary $i$.

          Meridional derivative

          The meridional derivative of the spherical harmonics is a derivative of the Legendre polynomials for which the following recursion relation applies[10],[11]

          \[\cos\theta \frac{dP_{l,m}}{d\theta} = -l\epsilon_{l+1,m}P_{l+1,m} + (l+1)\epsilon_{l,m}P_{l-1,m}.\]

          with recursion factors

          \[\epsilon_{l,m} = \sqrt{\frac{l^2-m^2}{4l^2-1}}\]

          In the following we use the example of obtaining the zonal velocity $u$ from the stream function $\Psi$, which is through the negative meridional gradient. For the meridional derivative itself the leading minus sign has to be omitted. Starting with the spectral expansion

          \[\Psi(\lambda,\theta) = \sum_{l,m}\Psi_{l,m}P_{l,m}(\sin\theta)e^{im\lambda}\]

          we multiply with $-R^{-1}\cos\theta\partial_\theta$ to obtain

          \[\cos\theta\left(-\frac{1}{R}\partial_\theta\Psi \right) = -\frac{1}{R}\sum_{l,m}\Psi_{l,m}e^{im\lambda}\cos\theta\partial_\theta P_{l,m}\]

          at which point the recursion from above can be applied. Collecting terms proportional to $P_{l,m}$ then yields

          \[(\cos(\theta)u)_{l,m} = -\frac{1}{R}(-(l-1)\epsilon_{l,m}\Psi_{l-1,m} + (l+2)\epsilon_{l+1,m}\Psi_{l+1,m})\]

          To obtain the coefficient of each spherical harmonic $l,m$ of the meridional gradient of a spectral field, two coefficients at $l-1,m$ and $l+1,m$ have to be combined. This means that the coefficient of a gradient $((\cos\theta) u)_{lm}$ is a linear combination of the coefficients of one higher and one lower degree $\Psi_{l+1,m},\Psi_{l-1,m}$. As the coefficient $\Psi_{lm}$ with $m<l$ are zero, the sectoral harmonics ($l=m$) of the gradients are obtained from the first off-diagonal only. However, the $l=l_{max}$ harmonics of the gradients require the $l_{max}-1$ as well as the $l_{max}+1$ harmonics. As a consequence vector quantities like velocity components $u,v$ require one more degree $l$ than scalar quantities like vorticity[Bourke72]. However, for easier compatibility all spectral fields in SpeedyWeather.jl use one more degree $l$, but scalar quantities should not make use of it. Equivalently, the last degree $l$ is set to zero before the time integration, which only advances scalar quantities.

          In SpeedyWeather.jl vector quantities like $u,v$ use therefore one more meridional mode than scalar quantities such as vorticity $\zeta$ or stream function $\Psi$. The meridional derivative in SpeedyWeather.jl also omits the $1/R$-scaling as explained for the Zonal derivative and in Radius scaling.

          Divergence and curl in spherical harmonics

          The meridional gradient as described above can be applied to scalars, such as $\Psi$ and $\Phi$ in the conversion to velocities $(u,v) = \nabla^\bot\Psi + \nabla\Phi$, however, the operators curl $\nabla \times$ and divergence $\nabla \cdot$ in spherical coordinates involve a $\cos\theta$ scaling before the meridional gradient is applied. How to translate this to spectral coefficients has to be derived separately[10],[11].

          The spectral transform of vorticity $\zeta$ is

          \[\zeta_{l,m} = \frac{1}{2\pi}\int_{-\tfrac{\pi}{2}}^\tfrac{\pi}{2}\int_0^{2\pi} \zeta(\lambda,\theta) +P_{l,m}(\sin\theta) e^{im\lambda} d\lambda \cos\theta d\theta\]

          Given that $R\zeta = \cos^{-1}\partial_\lambda v - \cos^{-1}\partial_\theta (u \cos\theta)$, we therefore have to evaluate a meridional integral of the form

          \[\int P_{l,m} \frac{1}{\cos \theta} \partial_\theta(u \cos\theta)) \cos \theta d\theta\]

          which can be solved through integration by parts. As $u\cos\theta = 0$ at $\theta = \pm \tfrac{\pi}{2}$ only the integral

          \[= -\int \partial_\theta P_{l,m} (u \cos\theta) d\theta = -\int \cos\theta \partial_\theta P_{l,m} +(\frac{u}{\cos\theta}) \cos\theta d\theta\]

          remains. Inserting the recurrence relation from the Meridional derivative turns this into

          \[= -\int \left(-l \epsilon_{l+1,m}P_{l+1,m} + (l+1)\epsilon_{l,m} P_{l-1,m} \right) (\frac{u}{\cos\theta}) +\cos \theta d\theta\]

          Now we expand $(\tfrac{u}{\cos\theta})$ but only the $l,m$ harmonic will project onto$P_{l,m}$. Let $u^* = u\cos^{-1}\theta, v^* = v\cos^{-1}\theta$ we then have in total

          \[\begin{aligned} +R\zeta_{l,m} &= imv^*_{l,m} + (l+1)\epsilon_{l,m}u^*_{l-1,m} - l\epsilon_{l+1,m}u^*_{l+1,m} \\ +RD_{l,m} &= imu^*_{l,m} - (l+1)\epsilon_{l,m}v^*_{l-1,m} + l\epsilon_{l+1,m}v^*_{l+1,m} \\ +\end{aligned}\]

          And the divergence $D$ is similar, but $(u,v) \to (-v,u)$. We have moved the scaling with the radius $R$ directly into $\zeta,D$ as further described in Radius scaling.

          Laplacian

          The spectral Laplacian is easily applied to the coefficients $\Psi_{lm}$ of a spectral field as the spherical harmonics are eigenfunctions of the Laplace operator $\nabla^2$ in spherical coordinates with eigenvalues $-l(l+1)$ divided by the radius squared $R^2$, i.e. $\nabla^2 \Psi$ becomes $\tfrac{-l(l+1)}{R^2}\Psi_{lm}$ in spectral space. For example, vorticity $\zeta$ and streamfunction $\Psi$ are related by $\zeta = \nabla^2\Psi$ in the barotropic vorticity model. Hence, in spectral space this is equivalent for every spectral mode of degree $l$ and order $m$ to

          \[\zeta_{l,m} = \frac{-l(l+1)}{R^2}\Psi_{l,m}\]

          This can be easily inverted to obtain the stream function $\Psi$ from vorticity $\zeta$ instead. In order to avoid division by zero, we set $\Psi_{0,0}$ here, given that the stream function is only defined up to a constant anyway.

          \[\begin{aligned} +\Psi_{l,m} &= \frac{R^2}{-l(l+1)}\zeta_{l,m} \quad \forall~l,m > 0,\\ +\Psi_{0,0} &= 0. +\end{aligned}\]

          See also Horizontal diffusion and Normalization of diffusion.

          U,V from vorticity and divergence

          After having discussed the zonal and meridional derivatives with spherical harmonics as well as the Laplace operator, we can derive the conversion from vorticity $\zeta$ and divergence $D$ (which are prognostic variables) to $U=u\cos\theta, V=v\cos\theta$. Both are linear operations that act either solely on a given harmonic (the zonal gradient and the Laplace operator) or are linear combinations between one lower and one higher degree $l$ (the meridional gradient). It is therefore computationally more efficient to compute $U,V$ directly from $\zeta,D$ instead of calculating stream function and velocity potential first. In total we have

          \[\begin{aligned} +U_{l,m} &= -\frac{im}{l(l+1)}(RD)_{l,m} + \frac{\epsilon_{l+1,m}}{l+1}(R\zeta)_{l+1,m} - +\frac{\epsilon_{l,m}}{l}(R\zeta)_{l-1,m} \\ +V_{l,m} &= -\frac{im}{l(l+1)}(R\zeta)_{l,m} - \frac{\epsilon_{l+1,m}}{l+1}(RD)_{l+1,m} + +\frac{\epsilon_{l,m}}{l}(RD)_{l-1,m} \\ +\end{aligned}\]

          We have moved the scaling with the radius $R$ directly into $\zeta,D$ as further described in Radius scaling.

          References

          diff --git a/previews/PR360/speedytransforms/index.html b/previews/PR360/speedytransforms/index.html new file mode 100644 index 000000000..c84f5622f --- /dev/null +++ b/previews/PR360/speedytransforms/index.html @@ -0,0 +1,76 @@ + +Submodule: SpeedyTransforms · SpeedyWeather.jl

          SpeedyTransforms

          SpeedyTransforms is a submodule that has been developed for SpeedyWeather.jl which is technically independent (SpeedyWeather.jl however imports it) and can also be used without running simulations. It is just not put into its own respective repository.

          Example transforms

          julia> using SpeedyWeather
          +julia> alms = zeros(ComplexF64,3,3)    # spectral coefficients
          +julia> alms[2,2] = 1                   # only l=1,m=1 harmonic
          +julia> map = gridded(alms)             # convert to grid space
          +8×4 Matrix{Float64}:
          + -0.324541  -0.600363  -0.600363  -0.324541
          + -0.134429  -0.248678  -0.248678  -0.134429
          +  0.134429   0.248678   0.248678   0.134429
          +  0.324541   0.600363   0.600363   0.324541
          +  0.324541   0.600363   0.600363   0.324541
          +  0.134429   0.248678   0.248678   0.134429
          + -0.134429  -0.248678  -0.248678  -0.134429
          + -0.324541  -0.600363  -0.600363  -0.324541
          + 
          +julia> spectral(map)                   # back to spectral space
          +3×3 Matrix{ComplexF64}:
          + 0.0+0.0im  0.0+0.0im          0.0+0.0im
          + 0.0+0.0im  1.0+3.60727e-17im  0.0+0.0im
          + 0.0+0.0im  0.0+0.0im          0.0+0.0im

          and we have successfully reobtained the $l=m=1$ spherical harmonic.

          Functions and type index

          SpeedyWeather.SpeedyTransforms.SpectralTransformMethod
          S = SpectralTransform(  alms::AbstractMatrix{Complex{NF}};
          +                        recompute_legendre::Bool=true,
          +                        Grid::Type{<:AbstractGrid}=DEFAULT_GRID)

          Generator function for a SpectralTransform struct based on the size of the spectral coefficients alms and the grid Grid. Recomputes the Legendre polynomials by default.

          source
          SpeedyWeather.SpeedyTransforms.SpectralTransformMethod
          S = SpectralTransform(NF,Grid,trunc)

          Generator function for a SpectralTransform struct. With NF the number format, Grid the grid type <:AbstractGrid and spectral truncation trunc this function sets up necessary constants for the spetral transform. Also plans the Fourier transforms, retrieves the colatitudes, and preallocates the Legendre polynomials (if recompute_legendre == false) and quadrature weights.

          source
          SpeedyWeather.SpeedyTransforms.SpectralTransformMethod
          S = SpectralTransform(  map::AbstractGrid;
          +                        recompute_legendre::Bool=true)

          Generator function for a SpectralTransform struct based on the size and grid type of gridded field map. Recomputes the Legendre polynomials by default.

          source
          SpeedyWeather.SpeedyTransforms.UV_from_vor!Method
          UV_from_vor!(   U::LowerTriangularMatrix,
          +                V::LowerTriangularMatrix,
          +                vor::LowerTriangularMatrix,
          +                S::SpectralTransform)

          Get U,V (=(u,v)*coslat) from vorticity ζ spectral space (divergence D=0) Two operations are combined into a single linear operation. First, invert the spherical Laplace ∇² operator to get stream function from vorticity. Then compute zonal and meridional gradients to get U,V.

          source
          SpeedyWeather.SpeedyTransforms.UV_from_vordiv!Method
          UV_from_vordiv!(U::LowerTriangularMatrix,
          +                V::LowerTriangularMatrix,
          +                vor::LowerTriangularMatrix,
          +                div::LowerTriangularMatrix,
          +                S::SpectralTransform)

          Get U,V (=(u,v)*coslat) from vorticity ζ and divergence D in spectral space. Two operations are combined into a single linear operation. First, invert the spherical Laplace ∇² operator to get stream function from vorticity and velocity potential from divergence. Then compute zonal and meridional gradients to get U,V.

          source
          SpeedyWeather.SpeedyTransforms._divergence!Method
          _divergence!(   kernel,
          +                div::LowerTriangularMatrix,
          +                u::LowerTriangularMatrix,
          +                v::LowerTriangularMatrix,
          +                S::SpectralTransform)

          Generic divergence function of vector u,v that writes into the output into div. Generic as it uses the kernel kernel such that curl, div, add or flipsign options are provided through kernel, but otherwise a single function is used.

          source
          SpeedyWeather.SpeedyTransforms.curl!Method
          curl!(  curl::LowerTriangularMatrix,
          +        u::LowerTriangularMatrix,
          +        v::LowerTriangularMatrix,
          +        S::SpectralTransform;
          +        flipsign::Bool=false,
          +        add::Bool=false,
          +        )

          Curl of a vector u,v written into curl, curl = ∇×(u,v). u,v are expected to have a 1/coslat-scaling included, then curl is not scaled. flipsign option calculates -∇×(u,v) instead. add option calculates curl += ∇×(u,v) instead. flipsign and add can be combined. This functions only creates the kernel and calls the generic divergence function _divergence! subsequently with flipped u,v -> v,u for the curl.

          source
          SpeedyWeather.SpeedyTransforms.divergence!Method
          divergence!(div::LowerTriangularMatrix,
          +            u::LowerTriangularMatrix,
          +            v::LowerTriangularMatrix,
          +            S::SpectralTransform{NF};
          +            flipsign::Bool=false,
          +            add::Bool=false,
          +            )

          Divergence of a vector u,v written into div, div = ∇⋅(u,v). u,v are expected to have a 1/coslat-scaling included, then div is not scaled. flipsign option calculates -∇⋅(u,v) instead. add option calculates div += ∇⋅(u,v) instead. flipsign and add can be combined. This functions only creates the kernel and calls the generic divergence function _divergence! subsequently.

          source
          SpeedyWeather.SpeedyTransforms.get_recursion_factorsMethod
          get_recursion_factors(  ::Type{NF}, # number format NF
          +                        lmax::Int,  # max degree l of spherical harmonics (0-based here)
          +                        mmax::Int   # max order m of spherical harmonics
          +                        ) where {NF<:AbstractFloat}

          Returns a matrix of recursion factors ϵ up to degree lmax and order mmax of number format NF.

          source
          SpeedyWeather.SpeedyTransforms.gridded!Method
          gridded!(   map::AbstractGrid,
          +            alms::LowerTriangularMatrix,
          +            S::SpectralTransform)

          Spectral transform (spectral to grid) of the spherical harmonic coefficients alms to a gridded field map. The spectral transform is number format-flexible as long as the parametric types of map, alms, S are identical. The spectral transform is grid-flexible as long as the typeof(map)<:AbstractGrid. Uses the precalculated arrays, FFT plans and other constants in the SpectralTransform struct S.

          source
          SpeedyWeather.SpeedyTransforms.griddedMethod
          map = gridded(  alms::AbstractMatrix;
          +                recompute_legendre::Bool=true,
          +                grid::Type{<:AbstractGrid}=DEFAULT_GRID)

          Spectral transform (spectral to grid space) from spherical coefficients alms to a newly allocated gridded field map. Based on the size of alms the grid type grid, the spatial resolution is retrieved based on the truncation defined for grid. SpectralTransform struct S is allocated to execute gridded(alms,S).

          source
          SpeedyWeather.SpeedyTransforms.griddedMethod
          map = gridded(  alms::AbstractMatrix,
          +                S::SpectralTransform)

          Spectral transform (spectral to grid space) from spherical coefficients alms to a newly allocated gridded field map with precalculated properties based on the SpectralTransform struct S. alms is converted to a LowerTriangularMatrix to execute the in-place gridded!.

          source
          SpeedyWeather.SpeedyTransforms.roundup_fftMethod
          m = roundup_fft(n::Int;
          +                small_primes::Vector{Int}=[2,3,5])

          Returns an integer m >= n with only small prime factors 2, 3 (default, others can be specified with the keyword argument small_primes) to obtain an efficiently fourier-transformable number of longitudes, m = 2^i * 3^j * 5^k >= n, with i,j,k >=0.

          source
          SpeedyWeather.SpeedyTransforms.spectral!Method
          spectral!(  alms::LowerTriangularMatrix,
          +            map::AbstractGrid,
          +            S::SpectralTransform)

          Spectral transform (grid to spectral space) from the gridded field map on a grid<:AbstractGrid to a LowerTriangularMatrix of spherical harmonic coefficients alms. Uses FFT in the zonal direction, and a Legendre Transform in the meridional direction exploiting symmetries. The spectral transform is number format-flexible as long as the parametric types of map, alms, S are identical. The spectral transform is grid-flexible as long as the typeof(map)<:AbstractGrid. Uses the precalculated arrays, FFT plans and other constants in the SpectralTransform struct S.

          source
          SpeedyWeather.SpeedyTransforms.spectralMethod
          alms = spectral(    map::AbstractMatrix;
          +                    Grid::Type{<:AbstractGrid}=DEFAULT_GRID,
          +                    kwargs...)

          Spectral transform (grid to spectral) map to grid(map) to execute spectral(map::AbstractGrid;kwargs...).

          source
          SpeedyWeather.SpeedyTransforms.spectral_interpolationMethod
          alms_interp = spectral_interpolation(   ::Type{NF},
          +                                        alms::LowerTriangularMatrix,
          +                                        ltrunc::Integer,
          +                                        mtrunc::Integer
          +                                        ) where NF

          Returns a spectral coefficient matrix alms_interp that is alms padded with zeros to interpolate in spectral space. If trunc is smaller or equal to the implicit truncation in alms obtained from its size than spectral_truncation is automatically called instead, returning alms_trunc, a coefficient matrix that is smaller than alms, implicitly setting higher degrees and orders to zero.

          source
          SpeedyWeather.SpeedyTransforms.spectral_smoothing!Method
          spectral_smoothing!(A::LowerTriangularMatrix,c;power=1)

          Smooth the spectral field A following A = (1-(1-c)∇²ⁿ) with power n of a normalised Laplacian so that the highest degree lmax is dampened by multiplication with c. Anti-diffusion for c>1.

          source
          SpeedyWeather.SpeedyTransforms.spectral_smoothingMethod
          A_smooth = spectral_smoothing(A::LowerTriangularMatrix,c;power=1)

          Smooth the spectral field A following A_smooth = (1-c*∇²ⁿ)A with power n of a normalised Laplacian so that the highest degree lmax is dampened by multiplication with c. Anti-diffusion for c<0.

          source
          SpeedyWeather.SpeedyTransforms.spectral_transform_for_full_gridMethod
          S2 = spectral_transform_for_full_grid(S::SpectralTransform)

          Create a spectral transform struct S2 similar to the input S, but for the corresponding full grid of the grid in S. The FFT is replanned and lon_offsets are set to 1 (i.e. no rotation). Solid angles for the Legendre transform are recomputed, but all other arrays fields for S, S2 point to the same place in memory, e.g. the Legendre polynomials aren't recomputed or stored twice.

          source
          SpeedyWeather.SpeedyTransforms.spectral_truncation!Method
          spectral_truncation!(alms::AbstractMatrix,ltrunc::Integer,mtrunc::Integer)

          Truncate spectral coefficients alms in-place by setting (a) the upper right triangle to zero and (b) all coefficients for which the degree l is larger than the truncation ltrunc or order m larger than the truncaction mtrunc.

          source
          SpeedyWeather.SpeedyTransforms.spectral_truncation!Method
          spectral_truncation!(alms::LowerTriangularMatrix,ltrunc::Integer,mtrunc::Integer)

          Truncate spectral coefficients alms in-place by setting all coefficients for which the degree l is larger than the truncation ltrunc or order m larger than the truncaction mtrunc. Similar to spectral_truncation!(::AbstractMatrix, ...) but skips the upper triangle which is zero by design for LowerTriangularMatrix.

          source
          SpeedyWeather.SpeedyTransforms.spectral_truncationMethod
          alms_trunc = spectral_truncation(alms,trunc)

          Returns a spectral coefficient matrix alms_trunc that is truncated from alms to the size (trunc+1)². alms_trunc only contains those coefficient of alms for which m,l ≤ trunc, and l ≥ m are zero anyway. If trunc is larger than the implicit truncation in alms obtained from its size than spectral_interpolation is automatically called instead, returning alms_interp, a coefficient matrix that is larger than alms with padded zero coefficients.

          source
          SpeedyWeather.SpeedyTransforms.ϵlmMethod
          ϵ = ϵ(l,m)

          Recursion factors ϵ as a function of degree l and order m (0-based) of the spherical harmonics. ϵ(l,m) = sqrt((l^2-m^2)/(4*l^2-1)) with default number format Float64.

          source
          SpeedyWeather.SpeedyTransforms.ϵlmMethod
          ϵ = ϵ(NF,l,m)

          Recursion factors ϵ as a function of degree l and order m (0-based) of the spherical harmonics. ϵ(l,m) = sqrt((l^2-m^2)/(4*l^2-1)) and then converted to number format NF.

          source
          SpeedyWeather.SpeedyTransforms.∇²!Method
          ∇²!(    ∇²alms::LowerTriangularMatrix,
          +        alms::LowerTriangularMatrix,
          +        S::SpectralTransform;
          +        add::Bool=false,
          +        flipsign::Bool=false,
          +        inverse::Bool=false)

          Laplace operator ∇² applied to the spectral coefficients alms in spherical coordinates. The radius R is omitted in the eigenvalues which are precomputed in S. ∇²! is the in-place version which directly stores the output in the first argument ∇²alms.

          Keyword arguments

          • add=true adds the ∇²(alms) to the output
          • flipsign=true computes -∇²(alms) instead
          • inverse=true computes ∇⁻²(alms) instead

          Default is add=false, flipsign=false, inverse=false. These options can be combined.

          source
          SpeedyWeather.SpeedyTransforms.∇⁻²!Method
          ∇⁻²!(   ∇⁻²alms::LowerTriangularMatrix,
          +        alms::LowerTriangularMatrix,
          +        S::SpectralTransform;
          +        add::Bool=false,
          +        flipsign::Bool=false)

          Calls ∇²!(∇⁻²alms, alms, S; add, flipsign, inverse=true).

          source
          diff --git a/previews/PR360/time_integration/index.html b/previews/PR360/time_integration/index.html new file mode 100644 index 000000000..d906cb0bf --- /dev/null +++ b/previews/PR360/time_integration/index.html @@ -0,0 +1,2 @@ + +Time integration · SpeedyWeather.jl
          diff --git a/previews/PR362/assets/documenter.js b/previews/PR362/assets/documenter.js new file mode 100644 index 000000000..6adfbbbf4 --- /dev/null +++ b/previews/PR362/assets/documenter.js @@ -0,0 +1,331 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'highlight-julia': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia.min', + 'headroom': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/headroom.min', + 'jqueryui': 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min', + 'katex-auto-render': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/contrib/auto-render.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + 'headroom-jquery': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/jQuery.headroom.min', + 'katex': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/katex.min', + 'highlight': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/highlight.min', + 'highlight-julia-repl': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia-repl.min', + }, + shim: { + "highlight-julia": { + "deps": [ + "highlight" + ] + }, + "katex-auto-render": { + "deps": [ + "katex" + ] + }, + "headroom-jquery": { + "deps": [ + "jquery", + "headroom" + ] + }, + "highlight-julia-repl": { + "deps": [ + "highlight" + ] + } +} +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'katex', 'katex-auto-render'], function($, katex, renderMathInElement) { +$(document).ready(function() { + renderMathInElement( + document.body, + { + "delimiters": [ + { + "left": "$", + "right": "$", + "display": false + }, + { + "left": "$$", + "right": "$$", + "display": true + }, + { + "left": "\\[", + "right": "\\]", + "display": true + } + ] +} + + ); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'highlight', 'highlight-julia', 'highlight-julia-repl'], function($) { +$(document).ready(function() { + hljs.highlightAll(); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require([], function() { +function addCopyButtonCallbacks() { + for (const el of document.getElementsByTagName("pre")) { + const button = document.createElement("button"); + button.classList.add("copy-button", "fas", "fa-copy"); + el.appendChild(button); + + const success = function () { + button.classList.add("success", "fa-check"); + button.classList.remove("fa-copy"); + }; + + const failure = function () { + button.classList.add("error", "fa-times"); + button.classList.remove("fa-copy"); + }; + + button.addEventListener("click", function () { + copyToClipboard(el.innerText).then(success, failure); + + setTimeout(function () { + button.classList.add("fa-copy"); + button.classList.remove("success", "fa-check", "fa-times"); + }, 5000); + }); + } +} + +function copyToClipboard(text) { + // clipboard API is only available in secure contexts + if (window.navigator && window.navigator.clipboard) { + return window.navigator.clipboard.writeText(text); + } else { + return new Promise(function (resolve, reject) { + try { + const el = document.createElement("textarea"); + el.textContent = text; + el.style.position = "fixed"; + el.style.opacity = 0; + document.body.appendChild(el); + el.select(); + document.execCommand("copy"); + + resolve(); + } catch (err) { + reject(err); + } finally { + document.body.removeChild(el); + } + }); + } +} + +if (document.readyState === "loading") { + document.addEventListener("DOMContentLoaded", addCopyButtonCallbacks); +} else { + addCopyButtonCallbacks(); +} + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'headroom', 'headroom-jquery'], function($, Headroom) { + +// Manages the top navigation bar (hides it when the user starts scrolling down on the +// mobile). +window.Headroom = Headroom; // work around buggy module loading? +$(document).ready(function() { + $('#documenter .docs-navbar').headroom({ + "tolerance": {"up": 10, "down": 10}, + }); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Modal settings dialog +$(document).ready(function() { + var settings = $('#documenter-settings'); + $('#documenter-settings-button').click(function(){ + settings.toggleClass('is-active'); + }); + // Close the dialog if X is clicked + $('#documenter-settings button.delete').click(function(){ + settings.removeClass('is-active'); + }); + // Close dialog if ESC is pressed + $(document).keyup(function(e) { + if (e.keyCode == 27) settings.removeClass('is-active'); + }); +}); + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Manages the showing and hiding of the sidebar. +$(document).ready(function() { + var sidebar = $("#documenter > .docs-sidebar"); + var sidebar_button = $("#documenter-sidebar-button") + sidebar_button.click(function(ev) { + ev.preventDefault(); + sidebar.toggleClass('visible'); + if (sidebar.hasClass('visible')) { + // Makes sure that the current menu item is visible in the sidebar. + $("#documenter .docs-menu a.is-active").focus(); + } + }); + $("#documenter > .docs-main").bind('click', function(ev) { + if ($(ev.target).is(sidebar_button)) { + return; + } + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + }); +}) + +// Resizes the package name / sitename in the sidebar if it is too wide. +// Inspired by: https://github.com/davatron5000/FitText.js +$(document).ready(function() { + e = $("#documenter .docs-autofit"); + function resize() { + var L = parseInt(e.css('max-width'), 10); + var L0 = e.width(); + if(L0 > L) { + var h0 = parseInt(e.css('font-size'), 10); + e.css('font-size', L * h0 / L0); + // TODO: make sure it survives resizes? + } + } + // call once and then register events + resize(); + $(window).resize(resize); + $(window).on('orientationchange', resize); +}); + +// Scroll the navigation bar to the currently selected menu item +$(document).ready(function() { + var sidebar = $("#documenter .docs-menu").get(0); + var active = $("#documenter .docs-menu .is-active").get(0); + if(typeof active !== 'undefined') { + sidebar.scrollTop = active.offsetTop - sidebar.offsetTop - 15; + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +function set_theme(theme) { + var active = null; + var disabled = []; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + var themename = ss.ownerNode.getAttribute("data-theme-name"); + if(themename === null) continue; // ignore non-theme stylesheets + // Find the active theme + if(themename === theme) active = ss; + else disabled.push(ss); + } + if(active !== null) { + active.disabled = false; + if(active.ownerNode.getAttribute("data-theme-primary") === null) { + document.getElementsByTagName('html')[0].className = "theme--" + theme; + } else { + document.getElementsByTagName('html')[0].className = ""; + } + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + + // Store the theme in localStorage + if(typeof(window.localStorage) !== "undefined") { + window.localStorage.setItem("documenter-theme", theme); + } else { + console.error("Browser does not support window.localStorage"); + } +} + +// Theme picker setup +$(document).ready(function() { + // onchange callback + $('#documenter-themepicker').change(function themepick_callback(ev){ + var themename = $('#documenter-themepicker option:selected').attr('value'); + set_theme(themename); + }); + + // Make sure that the themepicker displays the correct theme when the theme is retrieved + // from localStorage + if(typeof(window.localStorage) !== "undefined") { + var theme = window.localStorage.getItem("documenter-theme"); + if(theme !== null) { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = (e.value === theme); + }) + } else { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = $("html").hasClass(`theme--${e.value}`); + }) + } + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// update the version selector with info from the siteinfo.js and ../versions.js files +$(document).ready(function() { + // If the version selector is disabled with DOCUMENTER_VERSION_SELECTOR_DISABLED in the + // siteinfo.js file, we just return immediately and not display the version selector. + if (typeof DOCUMENTER_VERSION_SELECTOR_DISABLED === 'boolean' && DOCUMENTER_VERSION_SELECTOR_DISABLED) { + return; + } + + var version_selector = $("#documenter .docs-version-selector"); + var version_selector_select = $("#documenter .docs-version-selector select"); + + version_selector_select.change(function(x) { + target_href = version_selector_select.children("option:selected").get(0).value; + window.location.href = target_href; + }); + + // add the current version to the selector based on siteinfo.js, but only if the selector is empty + if (typeof DOCUMENTER_CURRENT_VERSION !== 'undefined' && $('#version-selector > option').length == 0) { + var option = $(""); + version_selector_select.append(option); + } + + if (typeof DOC_VERSIONS !== 'undefined') { + var existing_versions = version_selector_select.children("option"); + var existing_versions_texts = existing_versions.map(function(i,x){return x.text}); + DOC_VERSIONS.forEach(function(each) { + var version_url = documenterBaseURL + "/../" + each; + var existing_id = $.inArray(each, existing_versions_texts); + // if not already in the version selector, add it as a new option, + // otherwise update the old option with the URL and enable it + if (existing_id == -1) { + var option = $(""); + version_selector_select.append(option); + } else { + var option = existing_versions[existing_id]; + option.value = version_url; + option.disabled = false; + } + }); + } + + // only show the version selector if the selector has been populated + if (version_selector_select.children("option").length > 0) { + version_selector.toggleClass("visible"); + } +}) + +}) diff --git a/previews/PR362/assets/search.js b/previews/PR362/assets/search.js new file mode 100644 index 000000000..c133f7410 --- /dev/null +++ b/previews/PR362/assets/search.js @@ -0,0 +1,267 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'lunr': 'https://cdnjs.cloudflare.com/ajax/libs/lunr.js/2.3.9/lunr.min', + 'lodash': 'https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + } +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'lunr', 'lodash'], function($, lunr, _) { + +$(document).ready(function() { + // parseUri 1.2.2 + // (c) Steven Levithan + // MIT License + function parseUri (str) { + var o = parseUri.options, + m = o.parser[o.strictMode ? "strict" : "loose"].exec(str), + uri = {}, + i = 14; + + while (i--) uri[o.key[i]] = m[i] || ""; + + uri[o.q.name] = {}; + uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) { + if ($1) uri[o.q.name][$1] = $2; + }); + + return uri; + }; + parseUri.options = { + strictMode: false, + key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"], + q: { + name: "queryKey", + parser: /(?:^|&)([^&=]*)=?([^&]*)/g + }, + parser: { + strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, + loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ + } + }; + + $("#search-form").submit(function(e) { + e.preventDefault() + }) + + // list below is the lunr 2.1.3 list minus the intersect with names(Base) + // (all, any, get, in, is, only, which) and (do, else, for, let, where, while, with) + // ideally we'd just filter the original list but it's not available as a variable + lunr.stopWordFilter = lunr.generateStopWordFilter([ + 'a', + 'able', + 'about', + 'across', + 'after', + 'almost', + 'also', + 'am', + 'among', + 'an', + 'and', + 'are', + 'as', + 'at', + 'be', + 'because', + 'been', + 'but', + 'by', + 'can', + 'cannot', + 'could', + 'dear', + 'did', + 'does', + 'either', + 'ever', + 'every', + 'from', + 'got', + 'had', + 'has', + 'have', + 'he', + 'her', + 'hers', + 'him', + 'his', + 'how', + 'however', + 'i', + 'if', + 'into', + 'it', + 'its', + 'just', + 'least', + 'like', + 'likely', + 'may', + 'me', + 'might', + 'most', + 'must', + 'my', + 'neither', + 'no', + 'nor', + 'not', + 'of', + 'off', + 'often', + 'on', + 'or', + 'other', + 'our', + 'own', + 'rather', + 'said', + 'say', + 'says', + 'she', + 'should', + 'since', + 'so', + 'some', + 'than', + 'that', + 'the', + 'their', + 'them', + 'then', + 'there', + 'these', + 'they', + 'this', + 'tis', + 'to', + 'too', + 'twas', + 'us', + 'wants', + 'was', + 'we', + 'were', + 'what', + 'when', + 'who', + 'whom', + 'why', + 'will', + 'would', + 'yet', + 'you', + 'your' + ]) + + // add . as a separator, because otherwise "title": "Documenter.Anchors.add!" + // would not find anything if searching for "add!", only for the entire qualification + lunr.tokenizer.separator = /[\s\-\.]+/ + + // custom trimmer that doesn't strip @ and !, which are used in julia macro and function names + lunr.trimmer = function (token) { + return token.update(function (s) { + return s.replace(/^[^a-zA-Z0-9@!]+/, '').replace(/[^a-zA-Z0-9@!]+$/, '') + }) + } + + lunr.Pipeline.registerFunction(lunr.stopWordFilter, 'juliaStopWordFilter') + lunr.Pipeline.registerFunction(lunr.trimmer, 'juliaTrimmer') + + var index = lunr(function () { + this.ref('location') + this.field('title',{boost: 100}) + this.field('text') + documenterSearchIndex['docs'].forEach(function(e) { + this.add(e) + }, this) + }) + var store = {} + + documenterSearchIndex['docs'].forEach(function(e) { + store[e.location] = {title: e.title, category: e.category, page: e.page} + }) + + $(function(){ + searchresults = $('#documenter-search-results'); + searchinfo = $('#documenter-search-info'); + searchbox = $('#documenter-search-query'); + searchform = $('.docs-search'); + sidebar = $('.docs-sidebar'); + function update_search(querystring) { + tokens = lunr.tokenizer(querystring) + results = index.query(function (q) { + tokens.forEach(function (t) { + q.term(t.toString(), { + fields: ["title"], + boost: 100, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["title"], + boost: 10, + usePipeline: true, + editDistance: 2, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["text"], + boost: 1, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + }) + }) + searchinfo.text("Number of results: " + results.length) + searchresults.empty() + results.forEach(function(result) { + data = store[result.ref] + link = $(''+data.title+'') + link.attr('href', documenterBaseURL+'/'+result.ref) + if (data.category != "page"){ + cat = $('('+data.category+', '+data.page+')') + } else { + cat = $('('+data.category+')') + } + li = $('
        3. ').append(link).append(" ").append(cat) + searchresults.append(li) + }) + } + + function update_search_box() { + querystring = searchbox.val() + update_search(querystring) + } + + searchbox.keyup(_.debounce(update_search_box, 250)) + searchbox.change(update_search_box) + + // Disable enter-key form submission for the searchbox on the search page + // and just re-run search rather than refresh the whole page. + searchform.keypress( + function(event){ + if (event.which == '13') { + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + update_search_box(); + event.preventDefault(); + } + } + ); + + search_query_uri = parseUri(window.location).queryKey["q"] + if(search_query_uri !== undefined) { + search_query = decodeURIComponent(search_query_uri.replace(/\+/g, '%20')) + searchbox.val(search_query) + } + update_search_box(); + }) +}) + +}) diff --git a/previews/PR362/assets/themes/documenter-dark.css b/previews/PR362/assets/themes/documenter-dark.css new file mode 100644 index 000000000..c94a294dc --- /dev/null +++ b/previews/PR362/assets/themes/documenter-dark.css @@ -0,0 +1,7 @@ +@keyframes spinAround{from{transform:rotate(0deg)}to{transform:rotate(359deg)}}html.theme--documenter-dark .tabs,html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .breadcrumb,html.theme--documenter-dark .file,html.theme--documenter-dark .button,.is-unselectable,html.theme--documenter-dark .modal-close,html.theme--documenter-dark .delete{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after,html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after{border:3px solid rgba(0,0,0,0);border-radius:2px;border-right:0;border-top:0;content:" ";display:block;height:0.625em;margin-top:-0.4375em;pointer-events:none;position:absolute;top:50%;transform:rotate(-45deg);transform-origin:center;width:0.625em}html.theme--documenter-dark .admonition:not(:last-child),html.theme--documenter-dark .tabs:not(:last-child),html.theme--documenter-dark .message:not(:last-child),html.theme--documenter-dark .list:not(:last-child),html.theme--documenter-dark .level:not(:last-child),html.theme--documenter-dark .breadcrumb:not(:last-child),html.theme--documenter-dark .highlight:not(:last-child),html.theme--documenter-dark .block:not(:last-child),html.theme--documenter-dark .title:not(:last-child),html.theme--documenter-dark .subtitle:not(:last-child),html.theme--documenter-dark .table-container:not(:last-child),html.theme--documenter-dark .table:not(:last-child),html.theme--documenter-dark .progress:not(:last-child),html.theme--documenter-dark .notification:not(:last-child),html.theme--documenter-dark .content:not(:last-child),html.theme--documenter-dark .box:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .modal-close,html.theme--documenter-dark .delete{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,0.2);border:none;border-radius:290486px;cursor:pointer;pointer-events:auto;display:inline-block;flex-grow:0;flex-shrink:0;font-size:0;height:20px;max-height:20px;max-width:20px;min-height:20px;min-width:20px;outline:none;position:relative;vertical-align:top;width:20px}html.theme--documenter-dark .modal-close::before,html.theme--documenter-dark .delete::before,html.theme--documenter-dark .modal-close::after,html.theme--documenter-dark .delete::after{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}html.theme--documenter-dark .modal-close::before,html.theme--documenter-dark .delete::before{height:2px;width:50%}html.theme--documenter-dark .modal-close::after,html.theme--documenter-dark .delete::after{height:50%;width:2px}html.theme--documenter-dark .modal-close:hover,html.theme--documenter-dark .delete:hover,html.theme--documenter-dark .modal-close:focus,html.theme--documenter-dark .delete:focus{background-color:rgba(10,10,10,0.3)}html.theme--documenter-dark .modal-close:active,html.theme--documenter-dark .delete:active{background-color:rgba(10,10,10,0.4)}html.theme--documenter-dark .is-small.modal-close,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.modal-close,html.theme--documenter-dark .is-small.delete,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.delete{height:16px;max-height:16px;max-width:16px;min-height:16px;min-width:16px;width:16px}html.theme--documenter-dark .is-medium.modal-close,html.theme--documenter-dark .is-medium.delete{height:24px;max-height:24px;max-width:24px;min-height:24px;min-width:24px;width:24px}html.theme--documenter-dark .is-large.modal-close,html.theme--documenter-dark .is-large.delete{height:32px;max-height:32px;max-width:32px;min-height:32px;min-width:32px;width:32px}html.theme--documenter-dark .control.is-loading::after,html.theme--documenter-dark .select.is-loading::after,html.theme--documenter-dark .loader,html.theme--documenter-dark .button.is-loading::after{animation:spinAround 500ms infinite linear;border:2px solid #dbdee0;border-radius:290486px;border-right-color:transparent;border-top-color:transparent;content:"";display:block;height:1em;position:relative;width:1em}html.theme--documenter-dark .hero-video,html.theme--documenter-dark .modal-background,html.theme--documenter-dark .modal,html.theme--documenter-dark .image.is-square img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square img,html.theme--documenter-dark .image.is-square .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,html.theme--documenter-dark .image.is-1by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 img,html.theme--documenter-dark .image.is-1by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,html.theme--documenter-dark .image.is-5by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 img,html.theme--documenter-dark .image.is-5by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,html.theme--documenter-dark .image.is-4by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 img,html.theme--documenter-dark .image.is-4by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,html.theme--documenter-dark .image.is-3by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 img,html.theme--documenter-dark .image.is-3by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,html.theme--documenter-dark .image.is-5by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 img,html.theme--documenter-dark .image.is-5by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,html.theme--documenter-dark .image.is-16by9 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 img,html.theme--documenter-dark .image.is-16by9 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,html.theme--documenter-dark .image.is-2by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 img,html.theme--documenter-dark .image.is-2by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,html.theme--documenter-dark .image.is-3by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 img,html.theme--documenter-dark .image.is-3by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,html.theme--documenter-dark .image.is-4by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 img,html.theme--documenter-dark .image.is-4by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,html.theme--documenter-dark .image.is-3by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 img,html.theme--documenter-dark .image.is-3by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,html.theme--documenter-dark .image.is-2by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 img,html.theme--documenter-dark .image.is-2by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,html.theme--documenter-dark .image.is-3by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 img,html.theme--documenter-dark .image.is-3by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,html.theme--documenter-dark .image.is-9by16 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 img,html.theme--documenter-dark .image.is-9by16 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,html.theme--documenter-dark .image.is-1by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 img,html.theme--documenter-dark .image.is-1by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,html.theme--documenter-dark .image.is-1by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 img,html.theme--documenter-dark .image.is-1by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio,.is-overlay{bottom:0;left:0;position:absolute;right:0;top:0}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .file-cta,html.theme--documenter-dark .file-name,html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .button{-moz-appearance:none;-webkit-appearance:none;align-items:center;border:1px solid transparent;border-radius:.4em;box-shadow:none;display:inline-flex;font-size:15px;height:2.25em;justify-content:flex-start;line-height:1.5;padding-bottom:calc(0.375em - 1px);padding-left:calc(0.625em - 1px);padding-right:calc(0.625em - 1px);padding-top:calc(0.375em - 1px);position:relative;vertical-align:top}html.theme--documenter-dark .pagination-previous:focus,html.theme--documenter-dark .pagination-next:focus,html.theme--documenter-dark .pagination-link:focus,html.theme--documenter-dark .pagination-ellipsis:focus,html.theme--documenter-dark .file-cta:focus,html.theme--documenter-dark .file-name:focus,html.theme--documenter-dark .select select:focus,html.theme--documenter-dark .textarea:focus,html.theme--documenter-dark .input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:focus,html.theme--documenter-dark .button:focus,html.theme--documenter-dark .is-focused.pagination-previous,html.theme--documenter-dark .is-focused.pagination-next,html.theme--documenter-dark .is-focused.pagination-link,html.theme--documenter-dark .is-focused.pagination-ellipsis,html.theme--documenter-dark .is-focused.file-cta,html.theme--documenter-dark .is-focused.file-name,html.theme--documenter-dark .select select.is-focused,html.theme--documenter-dark .is-focused.textarea,html.theme--documenter-dark .is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-focused.button,html.theme--documenter-dark .pagination-previous:active,html.theme--documenter-dark .pagination-next:active,html.theme--documenter-dark .pagination-link:active,html.theme--documenter-dark .pagination-ellipsis:active,html.theme--documenter-dark .file-cta:active,html.theme--documenter-dark .file-name:active,html.theme--documenter-dark .select select:active,html.theme--documenter-dark .textarea:active,html.theme--documenter-dark .input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:active,html.theme--documenter-dark .button:active,html.theme--documenter-dark .is-active.pagination-previous,html.theme--documenter-dark .is-active.pagination-next,html.theme--documenter-dark .is-active.pagination-link,html.theme--documenter-dark .is-active.pagination-ellipsis,html.theme--documenter-dark .is-active.file-cta,html.theme--documenter-dark .is-active.file-name,html.theme--documenter-dark .select select.is-active,html.theme--documenter-dark .is-active.textarea,html.theme--documenter-dark .is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .is-active.button{outline:none}html.theme--documenter-dark .pagination-previous[disabled],html.theme--documenter-dark .pagination-next[disabled],html.theme--documenter-dark .pagination-link[disabled],html.theme--documenter-dark .pagination-ellipsis[disabled],html.theme--documenter-dark .file-cta[disabled],html.theme--documenter-dark .file-name[disabled],html.theme--documenter-dark .select select[disabled],html.theme--documenter-dark .textarea[disabled],html.theme--documenter-dark .input[disabled],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled],html.theme--documenter-dark .button[disabled],fieldset[disabled] html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark fieldset[disabled] .pagination-previous,fieldset[disabled] html.theme--documenter-dark .pagination-next,html.theme--documenter-dark fieldset[disabled] .pagination-next,fieldset[disabled] html.theme--documenter-dark .pagination-link,html.theme--documenter-dark fieldset[disabled] .pagination-link,fieldset[disabled] html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark fieldset[disabled] .pagination-ellipsis,fieldset[disabled] html.theme--documenter-dark .file-cta,html.theme--documenter-dark fieldset[disabled] .file-cta,fieldset[disabled] html.theme--documenter-dark .file-name,html.theme--documenter-dark fieldset[disabled] .file-name,fieldset[disabled] html.theme--documenter-dark .select select,fieldset[disabled] html.theme--documenter-dark .textarea,fieldset[disabled] html.theme--documenter-dark .input,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark fieldset[disabled] .select select,html.theme--documenter-dark .select fieldset[disabled] select,html.theme--documenter-dark fieldset[disabled] .textarea,html.theme--documenter-dark fieldset[disabled] .input,html.theme--documenter-dark fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar fieldset[disabled] form.docs-search>input,fieldset[disabled] html.theme--documenter-dark .button,html.theme--documenter-dark fieldset[disabled] .button{cursor:not-allowed}/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */html,body,p,ol,ul,li,dl,dt,dd,blockquote,figure,fieldset,legend,textarea,pre,iframe,hr,h1,h2,h3,h4,h5,h6{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}ul{list-style:none}button,input,select,textarea{margin:0}html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}img,embed,iframe,object,video{height:auto;max-width:100%}audio{max-width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}td:not([align]),th:not([align]){text-align:left}.is-clearfix::after{clear:both;content:" ";display:table}.is-pulled-left{float:left !important}.is-pulled-right{float:right !important}.is-clipped{overflow:hidden !important}.is-size-1{font-size:3rem !important}.is-size-2{font-size:2.5rem !important}.is-size-3{font-size:2rem !important}.is-size-4{font-size:1.5rem !important}.is-size-5{font-size:1.25rem !important}.is-size-6{font-size:15px !important}.is-size-7,html.theme--documenter-dark .docstring>section>a.docs-sourcelink{font-size:.85em !important}@media screen and (max-width: 768px){.is-size-1-mobile{font-size:3rem !important}.is-size-2-mobile{font-size:2.5rem !important}.is-size-3-mobile{font-size:2rem !important}.is-size-4-mobile{font-size:1.5rem !important}.is-size-5-mobile{font-size:1.25rem !important}.is-size-6-mobile{font-size:15px !important}.is-size-7-mobile{font-size:.85em !important}}@media screen and (min-width: 769px),print{.is-size-1-tablet{font-size:3rem !important}.is-size-2-tablet{font-size:2.5rem !important}.is-size-3-tablet{font-size:2rem !important}.is-size-4-tablet{font-size:1.5rem !important}.is-size-5-tablet{font-size:1.25rem !important}.is-size-6-tablet{font-size:15px !important}.is-size-7-tablet{font-size:.85em !important}}@media screen and (max-width: 1055px){.is-size-1-touch{font-size:3rem !important}.is-size-2-touch{font-size:2.5rem !important}.is-size-3-touch{font-size:2rem !important}.is-size-4-touch{font-size:1.5rem !important}.is-size-5-touch{font-size:1.25rem !important}.is-size-6-touch{font-size:15px !important}.is-size-7-touch{font-size:.85em !important}}@media screen and (min-width: 1056px){.is-size-1-desktop{font-size:3rem !important}.is-size-2-desktop{font-size:2.5rem !important}.is-size-3-desktop{font-size:2rem !important}.is-size-4-desktop{font-size:1.5rem !important}.is-size-5-desktop{font-size:1.25rem !important}.is-size-6-desktop{font-size:15px !important}.is-size-7-desktop{font-size:.85em !important}}@media screen and (min-width: 1216px){.is-size-1-widescreen{font-size:3rem !important}.is-size-2-widescreen{font-size:2.5rem !important}.is-size-3-widescreen{font-size:2rem !important}.is-size-4-widescreen{font-size:1.5rem !important}.is-size-5-widescreen{font-size:1.25rem !important}.is-size-6-widescreen{font-size:15px !important}.is-size-7-widescreen{font-size:.85em !important}}@media screen and (min-width: 1408px){.is-size-1-fullhd{font-size:3rem !important}.is-size-2-fullhd{font-size:2.5rem !important}.is-size-3-fullhd{font-size:2rem !important}.is-size-4-fullhd{font-size:1.5rem !important}.is-size-5-fullhd{font-size:1.25rem !important}.is-size-6-fullhd{font-size:15px !important}.is-size-7-fullhd{font-size:.85em !important}}.has-text-centered{text-align:center !important}.has-text-justified{text-align:justify !important}.has-text-left{text-align:left !important}.has-text-right{text-align:right !important}@media screen and (max-width: 768px){.has-text-centered-mobile{text-align:center !important}}@media screen and (min-width: 769px),print{.has-text-centered-tablet{text-align:center !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-centered-tablet-only{text-align:center !important}}@media screen and (max-width: 1055px){.has-text-centered-touch{text-align:center !important}}@media screen and (min-width: 1056px){.has-text-centered-desktop{text-align:center !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-centered-desktop-only{text-align:center !important}}@media screen and (min-width: 1216px){.has-text-centered-widescreen{text-align:center !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-centered-widescreen-only{text-align:center !important}}@media screen and (min-width: 1408px){.has-text-centered-fullhd{text-align:center !important}}@media screen and (max-width: 768px){.has-text-justified-mobile{text-align:justify !important}}@media screen and (min-width: 769px),print{.has-text-justified-tablet{text-align:justify !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-justified-tablet-only{text-align:justify !important}}@media screen and (max-width: 1055px){.has-text-justified-touch{text-align:justify !important}}@media screen and (min-width: 1056px){.has-text-justified-desktop{text-align:justify !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-justified-desktop-only{text-align:justify !important}}@media screen and (min-width: 1216px){.has-text-justified-widescreen{text-align:justify !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-justified-widescreen-only{text-align:justify !important}}@media screen and (min-width: 1408px){.has-text-justified-fullhd{text-align:justify !important}}@media screen and (max-width: 768px){.has-text-left-mobile{text-align:left !important}}@media screen and (min-width: 769px),print{.has-text-left-tablet{text-align:left !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-left-tablet-only{text-align:left !important}}@media screen and (max-width: 1055px){.has-text-left-touch{text-align:left !important}}@media screen and (min-width: 1056px){.has-text-left-desktop{text-align:left !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-left-desktop-only{text-align:left !important}}@media screen and (min-width: 1216px){.has-text-left-widescreen{text-align:left !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-left-widescreen-only{text-align:left !important}}@media screen and (min-width: 1408px){.has-text-left-fullhd{text-align:left !important}}@media screen and (max-width: 768px){.has-text-right-mobile{text-align:right !important}}@media screen and (min-width: 769px),print{.has-text-right-tablet{text-align:right !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-right-tablet-only{text-align:right !important}}@media screen and (max-width: 1055px){.has-text-right-touch{text-align:right !important}}@media screen and (min-width: 1056px){.has-text-right-desktop{text-align:right !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-right-desktop-only{text-align:right !important}}@media screen and (min-width: 1216px){.has-text-right-widescreen{text-align:right !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-right-widescreen-only{text-align:right !important}}@media screen and (min-width: 1408px){.has-text-right-fullhd{text-align:right !important}}.is-capitalized{text-transform:capitalize !important}.is-lowercase{text-transform:lowercase !important}.is-uppercase{text-transform:uppercase !important}.is-italic{font-style:italic !important}.has-text-white{color:#fff !important}a.has-text-white:hover,a.has-text-white:focus{color:#e6e6e6 !important}.has-background-white{background-color:#fff !important}.has-text-black{color:#0a0a0a !important}a.has-text-black:hover,a.has-text-black:focus{color:#000 !important}.has-background-black{background-color:#0a0a0a !important}.has-text-light{color:#ecf0f1 !important}a.has-text-light:hover,a.has-text-light:focus{color:#cfd9db !important}.has-background-light{background-color:#ecf0f1 !important}.has-text-dark{color:#282f2f !important}a.has-text-dark:hover,a.has-text-dark:focus{color:#111414 !important}.has-background-dark{background-color:#282f2f !important}.has-text-primary{color:#375a7f !important}a.has-text-primary:hover,a.has-text-primary:focus{color:#28415b !important}.has-background-primary{background-color:#375a7f !important}.has-text-link{color:#1abc9c !important}a.has-text-link:hover,a.has-text-link:focus{color:#148f77 !important}.has-background-link{background-color:#1abc9c !important}.has-text-info{color:#024c7d !important}a.has-text-info:hover,a.has-text-info:focus{color:#012d4b !important}.has-background-info{background-color:#024c7d !important}.has-text-success{color:#008438 !important}a.has-text-success:hover,a.has-text-success:focus{color:#005122 !important}.has-background-success{background-color:#008438 !important}.has-text-warning{color:#ad8100 !important}a.has-text-warning:hover,a.has-text-warning:focus{color:#7a5b00 !important}.has-background-warning{background-color:#ad8100 !important}.has-text-danger{color:#9e1b0d !important}a.has-text-danger:hover,a.has-text-danger:focus{color:#6f1309 !important}.has-background-danger{background-color:#9e1b0d !important}.has-text-black-bis{color:#121212 !important}.has-background-black-bis{background-color:#121212 !important}.has-text-black-ter{color:#242424 !important}.has-background-black-ter{background-color:#242424 !important}.has-text-grey-darker{color:#282f2f !important}.has-background-grey-darker{background-color:#282f2f !important}.has-text-grey-dark{color:#343c3d !important}.has-background-grey-dark{background-color:#343c3d !important}.has-text-grey{color:#5e6d6f !important}.has-background-grey{background-color:#5e6d6f !important}.has-text-grey-light{color:#8c9b9d !important}.has-background-grey-light{background-color:#8c9b9d !important}.has-text-grey-lighter{color:#dbdee0 !important}.has-background-grey-lighter{background-color:#dbdee0 !important}.has-text-white-ter{color:#ecf0f1 !important}.has-background-white-ter{background-color:#ecf0f1 !important}.has-text-white-bis{color:#fafafa !important}.has-background-white-bis{background-color:#fafafa !important}.has-text-weight-light{font-weight:300 !important}.has-text-weight-normal{font-weight:400 !important}.has-text-weight-medium{font-weight:500 !important}.has-text-weight-semibold{font-weight:600 !important}.has-text-weight-bold{font-weight:700 !important}.is-family-primary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-secondary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-sans-serif{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-monospace{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-family-code{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-block{display:block !important}@media screen and (max-width: 768px){.is-block-mobile{display:block !important}}@media screen and (min-width: 769px),print{.is-block-tablet{display:block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-block-tablet-only{display:block !important}}@media screen and (max-width: 1055px){.is-block-touch{display:block !important}}@media screen and (min-width: 1056px){.is-block-desktop{display:block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-block-desktop-only{display:block !important}}@media screen and (min-width: 1216px){.is-block-widescreen{display:block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-block-widescreen-only{display:block !important}}@media screen and (min-width: 1408px){.is-block-fullhd{display:block !important}}.is-flex{display:flex !important}@media screen and (max-width: 768px){.is-flex-mobile{display:flex !important}}@media screen and (min-width: 769px),print{.is-flex-tablet{display:flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-flex-tablet-only{display:flex !important}}@media screen and (max-width: 1055px){.is-flex-touch{display:flex !important}}@media screen and (min-width: 1056px){.is-flex-desktop{display:flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-flex-desktop-only{display:flex !important}}@media screen and (min-width: 1216px){.is-flex-widescreen{display:flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-flex-widescreen-only{display:flex !important}}@media screen and (min-width: 1408px){.is-flex-fullhd{display:flex !important}}.is-inline{display:inline !important}@media screen and (max-width: 768px){.is-inline-mobile{display:inline !important}}@media screen and (min-width: 769px),print{.is-inline-tablet{display:inline !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-tablet-only{display:inline !important}}@media screen and (max-width: 1055px){.is-inline-touch{display:inline !important}}@media screen and (min-width: 1056px){.is-inline-desktop{display:inline !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-desktop-only{display:inline !important}}@media screen and (min-width: 1216px){.is-inline-widescreen{display:inline !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-widescreen-only{display:inline !important}}@media screen and (min-width: 1408px){.is-inline-fullhd{display:inline !important}}.is-inline-block{display:inline-block !important}@media screen and (max-width: 768px){.is-inline-block-mobile{display:inline-block !important}}@media screen and (min-width: 769px),print{.is-inline-block-tablet{display:inline-block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-block-tablet-only{display:inline-block !important}}@media screen and (max-width: 1055px){.is-inline-block-touch{display:inline-block !important}}@media screen and (min-width: 1056px){.is-inline-block-desktop{display:inline-block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-block-desktop-only{display:inline-block !important}}@media screen and (min-width: 1216px){.is-inline-block-widescreen{display:inline-block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-block-widescreen-only{display:inline-block !important}}@media screen and (min-width: 1408px){.is-inline-block-fullhd{display:inline-block !important}}.is-inline-flex{display:inline-flex !important}@media screen and (max-width: 768px){.is-inline-flex-mobile{display:inline-flex !important}}@media screen and (min-width: 769px),print{.is-inline-flex-tablet{display:inline-flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-flex-tablet-only{display:inline-flex !important}}@media screen and (max-width: 1055px){.is-inline-flex-touch{display:inline-flex !important}}@media screen and (min-width: 1056px){.is-inline-flex-desktop{display:inline-flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-flex-desktop-only{display:inline-flex !important}}@media screen and (min-width: 1216px){.is-inline-flex-widescreen{display:inline-flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-flex-widescreen-only{display:inline-flex !important}}@media screen and (min-width: 1408px){.is-inline-flex-fullhd{display:inline-flex !important}}.is-hidden{display:none !important}.is-sr-only{border:none !important;clip:rect(0, 0, 0, 0) !important;height:0.01em !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:0.01em !important}@media screen and (max-width: 768px){.is-hidden-mobile{display:none !important}}@media screen and (min-width: 769px),print{.is-hidden-tablet{display:none !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-hidden-tablet-only{display:none !important}}@media screen and (max-width: 1055px){.is-hidden-touch{display:none !important}}@media screen and (min-width: 1056px){.is-hidden-desktop{display:none !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-hidden-desktop-only{display:none !important}}@media screen and (min-width: 1216px){.is-hidden-widescreen{display:none !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-hidden-widescreen-only{display:none !important}}@media screen and (min-width: 1408px){.is-hidden-fullhd{display:none !important}}.is-invisible{visibility:hidden !important}@media screen and (max-width: 768px){.is-invisible-mobile{visibility:hidden !important}}@media screen and (min-width: 769px),print{.is-invisible-tablet{visibility:hidden !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-invisible-tablet-only{visibility:hidden !important}}@media screen and (max-width: 1055px){.is-invisible-touch{visibility:hidden !important}}@media screen and (min-width: 1056px){.is-invisible-desktop{visibility:hidden !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-invisible-desktop-only{visibility:hidden !important}}@media screen and (min-width: 1216px){.is-invisible-widescreen{visibility:hidden !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-invisible-widescreen-only{visibility:hidden !important}}@media screen and (min-width: 1408px){.is-invisible-fullhd{visibility:hidden !important}}.is-marginless{margin:0 !important}.is-paddingless{padding:0 !important}.is-radiusless{border-radius:0 !important}.is-shadowless{box-shadow:none !important}.is-relative{position:relative !important}html.theme--documenter-dark{/*! + Theme: a11y-dark + Author: @ericwbailey + Maintainer: @ericwbailey + + Based on the Tomorrow Night Eighties theme: https://github.com/isagalaev/highlight.js/blob/master/src/styles/tomorrow-night-eighties.css +*/}html.theme--documenter-dark html{background-color:#1f2424;font-size:16px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}html.theme--documenter-dark article,html.theme--documenter-dark aside,html.theme--documenter-dark figure,html.theme--documenter-dark footer,html.theme--documenter-dark header,html.theme--documenter-dark hgroup,html.theme--documenter-dark section{display:block}html.theme--documenter-dark body,html.theme--documenter-dark button,html.theme--documenter-dark input,html.theme--documenter-dark select,html.theme--documenter-dark textarea{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif}html.theme--documenter-dark code,html.theme--documenter-dark pre{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto;font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace}html.theme--documenter-dark body{color:#fff;font-size:1em;font-weight:400;line-height:1.5}html.theme--documenter-dark a{color:#1abc9c;cursor:pointer;text-decoration:none}html.theme--documenter-dark a strong{color:currentColor}html.theme--documenter-dark a:hover{color:#1dd2af}html.theme--documenter-dark code{background-color:rgba(255,255,255,0.05);color:#ececec;font-size:.875em;font-weight:normal;padding:.1em}html.theme--documenter-dark hr{background-color:#282f2f;border:none;display:block;height:2px;margin:1.5rem 0}html.theme--documenter-dark img{height:auto;max-width:100%}html.theme--documenter-dark input[type="checkbox"],html.theme--documenter-dark input[type="radio"]{vertical-align:baseline}html.theme--documenter-dark small{font-size:.875em}html.theme--documenter-dark span{font-style:inherit;font-weight:inherit}html.theme--documenter-dark strong{color:#f2f2f2;font-weight:700}html.theme--documenter-dark fieldset{border:none}html.theme--documenter-dark pre{-webkit-overflow-scrolling:touch;background-color:#282f2f;color:#fff;font-size:.875em;overflow-x:auto;padding:1.25rem 1.5rem;white-space:pre;word-wrap:normal}html.theme--documenter-dark pre code{background-color:transparent;color:currentColor;font-size:1em;padding:0}html.theme--documenter-dark table td,html.theme--documenter-dark table th{vertical-align:top}html.theme--documenter-dark table td:not([align]),html.theme--documenter-dark table th:not([align]){text-align:left}html.theme--documenter-dark table th{color:#f2f2f2}html.theme--documenter-dark .box{background-color:#343c3d;border-radius:8px;box-shadow:none;color:#fff;display:block;padding:1.25rem}html.theme--documenter-dark a.box:hover,html.theme--documenter-dark a.box:focus{box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px #1abc9c}html.theme--documenter-dark a.box:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2),0 0 0 1px #1abc9c}html.theme--documenter-dark .button{background-color:#282f2f;border-color:#4c5759;border-width:1px;color:#375a7f;cursor:pointer;justify-content:center;padding-bottom:calc(0.375em - 1px);padding-left:.75em;padding-right:.75em;padding-top:calc(0.375em - 1px);text-align:center;white-space:nowrap}html.theme--documenter-dark .button strong{color:inherit}html.theme--documenter-dark .button .icon,html.theme--documenter-dark .button .icon.is-small,html.theme--documenter-dark .button #documenter .docs-sidebar form.docs-search>input.icon,html.theme--documenter-dark #documenter .docs-sidebar .button form.docs-search>input.icon,html.theme--documenter-dark .button .icon.is-medium,html.theme--documenter-dark .button .icon.is-large{height:1.5em;width:1.5em}html.theme--documenter-dark .button .icon:first-child:not(:last-child){margin-left:calc(-0.375em - 1px);margin-right:0.1875em}html.theme--documenter-dark .button .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:calc(-0.375em - 1px)}html.theme--documenter-dark .button .icon:first-child:last-child{margin-left:calc(-0.375em - 1px);margin-right:calc(-0.375em - 1px)}html.theme--documenter-dark .button:hover,html.theme--documenter-dark .button.is-hovered{border-color:#8c9b9d;color:#f2f2f2}html.theme--documenter-dark .button:focus,html.theme--documenter-dark .button.is-focused{border-color:#8c9b9d;color:#17a689}html.theme--documenter-dark .button:focus:not(:active),html.theme--documenter-dark .button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .button:active,html.theme--documenter-dark .button.is-active{border-color:#343c3d;color:#f2f2f2}html.theme--documenter-dark .button.is-text{background-color:transparent;border-color:transparent;color:#fff;text-decoration:underline}html.theme--documenter-dark .button.is-text:hover,html.theme--documenter-dark .button.is-text.is-hovered,html.theme--documenter-dark .button.is-text:focus,html.theme--documenter-dark .button.is-text.is-focused{background-color:#282f2f;color:#f2f2f2}html.theme--documenter-dark .button.is-text:active,html.theme--documenter-dark .button.is-text.is-active{background-color:#1d2122;color:#f2f2f2}html.theme--documenter-dark .button.is-text[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-text{background-color:transparent;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-white{background-color:#fff;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:hover,html.theme--documenter-dark .button.is-white.is-hovered{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:focus,html.theme--documenter-dark .button.is-white.is-focused{border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white:focus:not(:active),html.theme--documenter-dark .button.is-white.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .button.is-white:active,html.theme--documenter-dark .button.is-white.is-active{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .button.is-white[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white{background-color:#fff;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-white.is-inverted{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted:hover,html.theme--documenter-dark .button.is-white.is-inverted.is-hovered{background-color:#000}html.theme--documenter-dark .button.is-white.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted{background-color:#0a0a0a;border-color:transparent;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-white.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-white.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-white.is-outlined:hover,html.theme--documenter-dark .button.is-white.is-outlined.is-hovered,html.theme--documenter-dark .button.is-white.is-outlined:focus,html.theme--documenter-dark .button.is-white.is-outlined.is-focused{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-white.is-outlined.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-white.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-white.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-white.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-focused{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-white.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-white.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black{background-color:#0a0a0a;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:hover,html.theme--documenter-dark .button.is-black.is-hovered{background-color:#040404;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:focus,html.theme--documenter-dark .button.is-black.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black:focus:not(:active),html.theme--documenter-dark .button.is-black.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .button.is-black:active,html.theme--documenter-dark .button.is-black.is-active{background-color:#000;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-black[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black{background-color:#0a0a0a;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-black.is-inverted{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted:hover,html.theme--documenter-dark .button.is-black.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-black.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-outlined:hover,html.theme--documenter-dark .button.is-black.is-outlined.is-hovered,html.theme--documenter-dark .button.is-black.is-outlined:focus,html.theme--documenter-dark .button.is-black.is-outlined.is-focused{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .button.is-black.is-outlined.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-black.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-black.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-black.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-focused{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-black.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}html.theme--documenter-dark .button.is-black.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-light{background-color:#ecf0f1;border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light:hover,html.theme--documenter-dark .button.is-light.is-hovered{background-color:#e5eaec;border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light:focus,html.theme--documenter-dark .button.is-light.is-focused{border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light:focus:not(:active),html.theme--documenter-dark .button.is-light.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .button.is-light:active,html.theme--documenter-dark .button.is-light.is-active{background-color:#dde4e6;border-color:transparent;color:#282f2f}html.theme--documenter-dark .button.is-light[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light{background-color:#ecf0f1;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-light.is-inverted{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted:hover,html.theme--documenter-dark .button.is-light.is-inverted.is-hovered{background-color:#1d2122}html.theme--documenter-dark .button.is-light.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted{background-color:#282f2f;border-color:transparent;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-loading::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-light.is-outlined{background-color:transparent;border-color:#ecf0f1;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-outlined:hover,html.theme--documenter-dark .button.is-light.is-outlined.is-hovered,html.theme--documenter-dark .button.is-light.is-outlined:focus,html.theme--documenter-dark .button.is-light.is-outlined.is-focused{background-color:#ecf0f1;border-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .button.is-light.is-outlined.is-loading::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-light.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-light.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-outlined{background-color:transparent;border-color:#ecf0f1;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#282f2f;color:#282f2f}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-focused{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-light.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#282f2f;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark,html.theme--documenter-dark .content kbd.button{background-color:#282f2f;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark:hover,html.theme--documenter-dark .content kbd.button:hover,html.theme--documenter-dark .button.is-dark.is-hovered,html.theme--documenter-dark .content kbd.button.is-hovered{background-color:#232829;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark:focus,html.theme--documenter-dark .content kbd.button:focus,html.theme--documenter-dark .button.is-dark.is-focused,html.theme--documenter-dark .content kbd.button.is-focused{border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark:focus:not(:active),html.theme--documenter-dark .content kbd.button:focus:not(:active),html.theme--documenter-dark .button.is-dark.is-focused:not(:active),html.theme--documenter-dark .content kbd.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .button.is-dark:active,html.theme--documenter-dark .content kbd.button:active,html.theme--documenter-dark .button.is-dark.is-active,html.theme--documenter-dark .content kbd.button.is-active{background-color:#1d2122;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .button.is-dark[disabled],html.theme--documenter-dark .content kbd.button[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark,fieldset[disabled] html.theme--documenter-dark .content kbd.button{background-color:#282f2f;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-dark.is-inverted,html.theme--documenter-dark .content kbd.button.is-inverted{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted:hover,html.theme--documenter-dark .content kbd.button.is-inverted:hover,html.theme--documenter-dark .button.is-dark.is-inverted.is-hovered,html.theme--documenter-dark .content kbd.button.is-inverted.is-hovered{background-color:#dde4e6}html.theme--documenter-dark .button.is-dark.is-inverted[disabled],html.theme--documenter-dark .content kbd.button.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted{background-color:#ecf0f1;border-color:transparent;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-loading::after,html.theme--documenter-dark .content kbd.button.is-loading::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-dark.is-outlined,html.theme--documenter-dark .content kbd.button.is-outlined{background-color:transparent;border-color:#282f2f;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-outlined:hover,html.theme--documenter-dark .content kbd.button.is-outlined:hover,html.theme--documenter-dark .button.is-dark.is-outlined.is-hovered,html.theme--documenter-dark .content kbd.button.is-outlined.is-hovered,html.theme--documenter-dark .button.is-dark.is-outlined:focus,html.theme--documenter-dark .content kbd.button.is-outlined:focus,html.theme--documenter-dark .button.is-dark.is-outlined.is-focused,html.theme--documenter-dark .content kbd.button.is-outlined.is-focused{background-color:#282f2f;border-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .button.is-dark.is-outlined.is-loading::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:hover::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:focus::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ecf0f1 #ecf0f1 !important}html.theme--documenter-dark .button.is-dark.is-outlined[disabled],html.theme--documenter-dark .content kbd.button.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-outlined,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-outlined{background-color:transparent;border-color:#282f2f;box-shadow:none;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#ecf0f1;color:#ecf0f1}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:hover,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:focus,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-focused,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-focused{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #282f2f #282f2f !important}html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined[disabled],html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined,fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#ecf0f1;box-shadow:none;color:#ecf0f1}html.theme--documenter-dark .button.is-primary,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink{background-color:#375a7f;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:hover,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-hovered.docs-sourcelink{background-color:#335476;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:focus,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary:focus:not(:active),html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus:not(:active),html.theme--documenter-dark .button.is-primary.is-focused:not(:active),html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink:not(:active){box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .button.is-primary:active,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:active,html.theme--documenter-dark .button.is-primary.is-active,html.theme--documenter-dark .docstring>section>a.button.is-active.docs-sourcelink{background-color:#2f4d6d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-primary[disabled],html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink{background-color:#375a7f;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-primary.is-inverted,html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted:hover,html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-inverted.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-hovered.docs-sourcelink{background-color:#f2f2f2}html.theme--documenter-dark .button.is-primary.is-inverted[disabled],html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;border-color:transparent;box-shadow:none;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-loading::after,html.theme--documenter-dark .docstring>section>a.button.is-loading.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-primary.is-outlined,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#375a7f;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-outlined:hover,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-outlined.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-outlined:focus,html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-outlined.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-focused.docs-sourcelink{background-color:#375a7f;border-color:#375a7f;color:#fff}html.theme--documenter-dark .button.is-primary.is-outlined.is-loading::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink::after{border-color:transparent transparent #375a7f #375a7f !important}html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:hover::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:hover::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:focus::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:focus::after,html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .docstring>section>a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-primary.is-outlined[disabled],html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-outlined,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#375a7f;box-shadow:none;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:hover,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:hover,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:focus,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:focus,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-focused.docs-sourcelink{background-color:#fff;color:#375a7f}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after,html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after,html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #375a7f #375a7f !important}html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined[disabled],html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined,fieldset[disabled] html.theme--documenter-dark .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-link{background-color:#1abc9c;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:hover,html.theme--documenter-dark .button.is-link.is-hovered{background-color:#18b193;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:focus,html.theme--documenter-dark .button.is-link.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link:focus:not(:active),html.theme--documenter-dark .button.is-link.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .button.is-link:active,html.theme--documenter-dark .button.is-link.is-active{background-color:#17a689;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-link[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link{background-color:#1abc9c;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-link.is-inverted{background-color:#fff;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted:hover,html.theme--documenter-dark .button.is-link.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-link.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-link.is-outlined{background-color:transparent;border-color:#1abc9c;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-outlined:hover,html.theme--documenter-dark .button.is-link.is-outlined.is-hovered,html.theme--documenter-dark .button.is-link.is-outlined:focus,html.theme--documenter-dark .button.is-link.is-outlined.is-focused{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .button.is-link.is-outlined.is-loading::after{border-color:transparent transparent #1abc9c #1abc9c !important}html.theme--documenter-dark .button.is-link.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-link.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-outlined{background-color:transparent;border-color:#1abc9c;box-shadow:none;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-focused{background-color:#fff;color:#1abc9c}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #1abc9c #1abc9c !important}html.theme--documenter-dark .button.is-link.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-info{background-color:#024c7d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:hover,html.theme--documenter-dark .button.is-info.is-hovered{background-color:#024470;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:focus,html.theme--documenter-dark .button.is-info.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info:focus:not(:active),html.theme--documenter-dark .button.is-info.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .button.is-info:active,html.theme--documenter-dark .button.is-info.is-active{background-color:#023d64;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-info[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info{background-color:#024c7d;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-info.is-inverted{background-color:#fff;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted:hover,html.theme--documenter-dark .button.is-info.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-info.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#024c7d}html.theme--documenter-dark .button.is-info.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-info.is-outlined{background-color:transparent;border-color:#024c7d;color:#024c7d}html.theme--documenter-dark .button.is-info.is-outlined:hover,html.theme--documenter-dark .button.is-info.is-outlined.is-hovered,html.theme--documenter-dark .button.is-info.is-outlined:focus,html.theme--documenter-dark .button.is-info.is-outlined.is-focused{background-color:#024c7d;border-color:#024c7d;color:#fff}html.theme--documenter-dark .button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #024c7d #024c7d !important}html.theme--documenter-dark .button.is-info.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-info.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-outlined{background-color:transparent;border-color:#024c7d;box-shadow:none;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-focused{background-color:#fff;color:#024c7d}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #024c7d #024c7d !important}html.theme--documenter-dark .button.is-info.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-success{background-color:#008438;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:hover,html.theme--documenter-dark .button.is-success.is-hovered{background-color:#073;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:focus,html.theme--documenter-dark .button.is-success.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success:focus:not(:active),html.theme--documenter-dark .button.is-success.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .button.is-success:active,html.theme--documenter-dark .button.is-success.is-active{background-color:#006b2d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-success[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success{background-color:#008438;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-success.is-inverted{background-color:#fff;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted:hover,html.theme--documenter-dark .button.is-success.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-success.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#008438}html.theme--documenter-dark .button.is-success.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-success.is-outlined{background-color:transparent;border-color:#008438;color:#008438}html.theme--documenter-dark .button.is-success.is-outlined:hover,html.theme--documenter-dark .button.is-success.is-outlined.is-hovered,html.theme--documenter-dark .button.is-success.is-outlined:focus,html.theme--documenter-dark .button.is-success.is-outlined.is-focused{background-color:#008438;border-color:#008438;color:#fff}html.theme--documenter-dark .button.is-success.is-outlined.is-loading::after{border-color:transparent transparent #008438 #008438 !important}html.theme--documenter-dark .button.is-success.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-success.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-outlined{background-color:transparent;border-color:#008438;box-shadow:none;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-focused{background-color:#fff;color:#008438}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #008438 #008438 !important}html.theme--documenter-dark .button.is-success.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-warning{background-color:#ad8100;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:hover,html.theme--documenter-dark .button.is-warning.is-hovered{background-color:#a07700;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:focus,html.theme--documenter-dark .button.is-warning.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning:focus:not(:active),html.theme--documenter-dark .button.is-warning.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .button.is-warning:active,html.theme--documenter-dark .button.is-warning.is-active{background-color:#946e00;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-warning[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning{background-color:#ad8100;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-warning.is-inverted{background-color:#fff;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted:hover,html.theme--documenter-dark .button.is-warning.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-warning.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-warning.is-outlined{background-color:transparent;border-color:#ad8100;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-outlined:hover,html.theme--documenter-dark .button.is-warning.is-outlined.is-hovered,html.theme--documenter-dark .button.is-warning.is-outlined:focus,html.theme--documenter-dark .button.is-warning.is-outlined.is-focused{background-color:#ad8100;border-color:#ad8100;color:#fff}html.theme--documenter-dark .button.is-warning.is-outlined.is-loading::after{border-color:transparent transparent #ad8100 #ad8100 !important}html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-warning.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-outlined{background-color:transparent;border-color:#ad8100;box-shadow:none;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-focused{background-color:#fff;color:#ad8100}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ad8100 #ad8100 !important}html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-danger{background-color:#9e1b0d;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:hover,html.theme--documenter-dark .button.is-danger.is-hovered{background-color:#92190c;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:focus,html.theme--documenter-dark .button.is-danger.is-focused{border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger:focus:not(:active),html.theme--documenter-dark .button.is-danger.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .button.is-danger:active,html.theme--documenter-dark .button.is-danger.is-active{background-color:#86170b;border-color:transparent;color:#fff}html.theme--documenter-dark .button.is-danger[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger{background-color:#9e1b0d;border-color:transparent;box-shadow:none}html.theme--documenter-dark .button.is-danger.is-inverted{background-color:#fff;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted:hover,html.theme--documenter-dark .button.is-danger.is-inverted.is-hovered{background-color:#f2f2f2}html.theme--documenter-dark .button.is-danger.is-inverted[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-loading::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-danger.is-outlined{background-color:transparent;border-color:#9e1b0d;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-outlined:hover,html.theme--documenter-dark .button.is-danger.is-outlined.is-hovered,html.theme--documenter-dark .button.is-danger.is-outlined:focus,html.theme--documenter-dark .button.is-danger.is-outlined.is-focused{background-color:#9e1b0d;border-color:#9e1b0d;color:#fff}html.theme--documenter-dark .button.is-danger.is-outlined.is-loading::after{border-color:transparent transparent #9e1b0d #9e1b0d !important}html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}html.theme--documenter-dark .button.is-danger.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-outlined{background-color:transparent;border-color:#9e1b0d;box-shadow:none;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:hover,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-hovered,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:focus,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-focused{background-color:#fff;color:#9e1b0d}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:hover::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:focus::after,html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #9e1b0d #9e1b0d !important}html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined[disabled],fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}html.theme--documenter-dark .button.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.button{border-radius:3px;font-size:.85em}html.theme--documenter-dark .button.is-normal{font-size:15px}html.theme--documenter-dark .button.is-medium{font-size:1.25rem}html.theme--documenter-dark .button.is-large{font-size:1.5rem}html.theme--documenter-dark .button[disabled],fieldset[disabled] html.theme--documenter-dark .button{background-color:#8c9b9d;border-color:#dbdee0;box-shadow:none;opacity:.5}html.theme--documenter-dark .button.is-fullwidth{display:flex;width:100%}html.theme--documenter-dark .button.is-loading{color:transparent !important;pointer-events:none}html.theme--documenter-dark .button.is-loading::after{position:absolute;left:calc(50% - (1em / 2));top:calc(50% - (1em / 2));position:absolute !important}html.theme--documenter-dark .button.is-static{background-color:#282f2f;border-color:#5e6d6f;color:#dbdee0;box-shadow:none;pointer-events:none}html.theme--documenter-dark .button.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.button{border-radius:290486px;padding-left:1em;padding-right:1em}html.theme--documenter-dark .buttons{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .buttons .button{margin-bottom:0.5rem}html.theme--documenter-dark .buttons .button:not(:last-child):not(.is-fullwidth){margin-right:0.5rem}html.theme--documenter-dark .buttons:last-child{margin-bottom:-0.5rem}html.theme--documenter-dark .buttons:not(:last-child){margin-bottom:1rem}html.theme--documenter-dark .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large){border-radius:3px;font-size:.85em}html.theme--documenter-dark .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large){font-size:1.25rem}html.theme--documenter-dark .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium){font-size:1.5rem}html.theme--documenter-dark .buttons.has-addons .button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .buttons.has-addons .button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}html.theme--documenter-dark .buttons.has-addons .button:last-child{margin-right:0}html.theme--documenter-dark .buttons.has-addons .button:hover,html.theme--documenter-dark .buttons.has-addons .button.is-hovered{z-index:2}html.theme--documenter-dark .buttons.has-addons .button:focus,html.theme--documenter-dark .buttons.has-addons .button.is-focused,html.theme--documenter-dark .buttons.has-addons .button:active,html.theme--documenter-dark .buttons.has-addons .button.is-active,html.theme--documenter-dark .buttons.has-addons .button.is-selected{z-index:3}html.theme--documenter-dark .buttons.has-addons .button:focus:hover,html.theme--documenter-dark .buttons.has-addons .button.is-focused:hover,html.theme--documenter-dark .buttons.has-addons .button:active:hover,html.theme--documenter-dark .buttons.has-addons .button.is-active:hover,html.theme--documenter-dark .buttons.has-addons .button.is-selected:hover{z-index:4}html.theme--documenter-dark .buttons.has-addons .button.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .buttons.is-centered{justify-content:center}html.theme--documenter-dark .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}html.theme--documenter-dark .buttons.is-right{justify-content:flex-end}html.theme--documenter-dark .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}html.theme--documenter-dark .container{flex-grow:1;margin:0 auto;position:relative;width:auto}@media screen and (min-width: 1056px){html.theme--documenter-dark .container{max-width:992px}html.theme--documenter-dark .container.is-fluid{margin-left:32px;margin-right:32px;max-width:none}}@media screen and (max-width: 1215px){html.theme--documenter-dark .container.is-widescreen{max-width:1152px}}@media screen and (max-width: 1407px){html.theme--documenter-dark .container.is-fullhd{max-width:1344px}}@media screen and (min-width: 1216px){html.theme--documenter-dark .container{max-width:1152px}}@media screen and (min-width: 1408px){html.theme--documenter-dark .container{max-width:1344px}}html.theme--documenter-dark .content li+li{margin-top:0.25em}html.theme--documenter-dark .content p:not(:last-child),html.theme--documenter-dark .content dl:not(:last-child),html.theme--documenter-dark .content ol:not(:last-child),html.theme--documenter-dark .content ul:not(:last-child),html.theme--documenter-dark .content blockquote:not(:last-child),html.theme--documenter-dark .content pre:not(:last-child),html.theme--documenter-dark .content table:not(:last-child){margin-bottom:1em}html.theme--documenter-dark .content h1,html.theme--documenter-dark .content h2,html.theme--documenter-dark .content h3,html.theme--documenter-dark .content h4,html.theme--documenter-dark .content h5,html.theme--documenter-dark .content h6{color:#f2f2f2;font-weight:600;line-height:1.125}html.theme--documenter-dark .content h1{font-size:2em;margin-bottom:0.5em}html.theme--documenter-dark .content h1:not(:first-child){margin-top:1em}html.theme--documenter-dark .content h2{font-size:1.75em;margin-bottom:0.5714em}html.theme--documenter-dark .content h2:not(:first-child){margin-top:1.1428em}html.theme--documenter-dark .content h3{font-size:1.5em;margin-bottom:0.6666em}html.theme--documenter-dark .content h3:not(:first-child){margin-top:1.3333em}html.theme--documenter-dark .content h4{font-size:1.25em;margin-bottom:0.8em}html.theme--documenter-dark .content h5{font-size:1.125em;margin-bottom:0.8888em}html.theme--documenter-dark .content h6{font-size:1em;margin-bottom:1em}html.theme--documenter-dark .content blockquote{background-color:#282f2f;border-left:5px solid #5e6d6f;padding:1.25em 1.5em}html.theme--documenter-dark .content ol{list-style-position:outside;margin-left:2em;margin-top:1em}html.theme--documenter-dark .content ol:not([type]){list-style-type:decimal}html.theme--documenter-dark .content ol.is-lower-alpha:not([type]){list-style-type:lower-alpha}html.theme--documenter-dark .content ol.is-lower-roman:not([type]){list-style-type:lower-roman}html.theme--documenter-dark .content ol.is-upper-alpha:not([type]){list-style-type:upper-alpha}html.theme--documenter-dark .content ol.is-upper-roman:not([type]){list-style-type:upper-roman}html.theme--documenter-dark .content ul{list-style:disc outside;margin-left:2em;margin-top:1em}html.theme--documenter-dark .content ul ul{list-style-type:circle;margin-top:0.5em}html.theme--documenter-dark .content ul ul ul{list-style-type:square}html.theme--documenter-dark .content dd{margin-left:2em}html.theme--documenter-dark .content figure{margin-left:2em;margin-right:2em;text-align:center}html.theme--documenter-dark .content figure:not(:first-child){margin-top:2em}html.theme--documenter-dark .content figure:not(:last-child){margin-bottom:2em}html.theme--documenter-dark .content figure img{display:inline-block}html.theme--documenter-dark .content figure figcaption{font-style:italic}html.theme--documenter-dark .content pre{-webkit-overflow-scrolling:touch;overflow-x:auto;padding:0;white-space:pre;word-wrap:normal}html.theme--documenter-dark .content sup,html.theme--documenter-dark .content sub{font-size:75%}html.theme--documenter-dark .content table{width:100%}html.theme--documenter-dark .content table td,html.theme--documenter-dark .content table th{border:1px solid #5e6d6f;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}html.theme--documenter-dark .content table th{color:#f2f2f2}html.theme--documenter-dark .content table th:not([align]){text-align:left}html.theme--documenter-dark .content table thead td,html.theme--documenter-dark .content table thead th{border-width:0 0 2px;color:#f2f2f2}html.theme--documenter-dark .content table tfoot td,html.theme--documenter-dark .content table tfoot th{border-width:2px 0 0;color:#f2f2f2}html.theme--documenter-dark .content table tbody tr:last-child td,html.theme--documenter-dark .content table tbody tr:last-child th{border-bottom-width:0}html.theme--documenter-dark .content .tabs li+li{margin-top:0}html.theme--documenter-dark .content.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.content{font-size:.85em}html.theme--documenter-dark .content.is-medium{font-size:1.25rem}html.theme--documenter-dark .content.is-large{font-size:1.5rem}html.theme--documenter-dark .icon{align-items:center;display:inline-flex;justify-content:center;height:1.5rem;width:1.5rem}html.theme--documenter-dark .icon.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.icon{height:1rem;width:1rem}html.theme--documenter-dark .icon.is-medium{height:2rem;width:2rem}html.theme--documenter-dark .icon.is-large{height:3rem;width:3rem}html.theme--documenter-dark .image,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img{display:block;position:relative}html.theme--documenter-dark .image img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img img{display:block;height:auto;width:100%}html.theme--documenter-dark .image img.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img img.is-rounded{border-radius:290486px}html.theme--documenter-dark .image.is-square img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square img,html.theme--documenter-dark .image.is-square .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,html.theme--documenter-dark .image.is-1by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 img,html.theme--documenter-dark .image.is-1by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,html.theme--documenter-dark .image.is-5by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 img,html.theme--documenter-dark .image.is-5by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,html.theme--documenter-dark .image.is-4by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 img,html.theme--documenter-dark .image.is-4by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,html.theme--documenter-dark .image.is-3by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 img,html.theme--documenter-dark .image.is-3by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,html.theme--documenter-dark .image.is-5by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 img,html.theme--documenter-dark .image.is-5by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,html.theme--documenter-dark .image.is-16by9 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 img,html.theme--documenter-dark .image.is-16by9 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,html.theme--documenter-dark .image.is-2by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 img,html.theme--documenter-dark .image.is-2by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,html.theme--documenter-dark .image.is-3by1 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 img,html.theme--documenter-dark .image.is-3by1 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,html.theme--documenter-dark .image.is-4by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 img,html.theme--documenter-dark .image.is-4by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,html.theme--documenter-dark .image.is-3by4 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 img,html.theme--documenter-dark .image.is-3by4 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,html.theme--documenter-dark .image.is-2by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 img,html.theme--documenter-dark .image.is-2by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,html.theme--documenter-dark .image.is-3by5 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 img,html.theme--documenter-dark .image.is-3by5 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,html.theme--documenter-dark .image.is-9by16 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 img,html.theme--documenter-dark .image.is-9by16 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,html.theme--documenter-dark .image.is-1by2 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 img,html.theme--documenter-dark .image.is-1by2 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,html.theme--documenter-dark .image.is-1by3 img,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 img,html.theme--documenter-dark .image.is-1by3 .has-ratio,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio{height:100%;width:100%}html.theme--documenter-dark .image.is-square,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-square,html.theme--documenter-dark .image.is-1by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by1{padding-top:100%}html.theme--documenter-dark .image.is-5by4,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by4{padding-top:80%}html.theme--documenter-dark .image.is-4by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by3{padding-top:75%}html.theme--documenter-dark .image.is-3by2,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by2{padding-top:66.6666%}html.theme--documenter-dark .image.is-5by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-5by3{padding-top:60%}html.theme--documenter-dark .image.is-16by9,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16by9{padding-top:56.25%}html.theme--documenter-dark .image.is-2by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by1{padding-top:50%}html.theme--documenter-dark .image.is-3by1,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by1{padding-top:33.3333%}html.theme--documenter-dark .image.is-4by5,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-4by5{padding-top:125%}html.theme--documenter-dark .image.is-3by4,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by4{padding-top:133.3333%}html.theme--documenter-dark .image.is-2by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-2by3{padding-top:150%}html.theme--documenter-dark .image.is-3by5,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-3by5{padding-top:166.6666%}html.theme--documenter-dark .image.is-9by16,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-9by16{padding-top:177.7777%}html.theme--documenter-dark .image.is-1by2,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by2{padding-top:200%}html.theme--documenter-dark .image.is-1by3,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-1by3{padding-top:300%}html.theme--documenter-dark .image.is-16x16,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-16x16{height:16px;width:16px}html.theme--documenter-dark .image.is-24x24,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-24x24{height:24px;width:24px}html.theme--documenter-dark .image.is-32x32,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-32x32{height:32px;width:32px}html.theme--documenter-dark .image.is-48x48,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-48x48{height:48px;width:48px}html.theme--documenter-dark .image.is-64x64,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-64x64{height:64px;width:64px}html.theme--documenter-dark .image.is-96x96,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-96x96{height:96px;width:96px}html.theme--documenter-dark .image.is-128x128,html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img.is-128x128{height:128px;width:128px}html.theme--documenter-dark .notification{background-color:#282f2f;border-radius:.4em;padding:1.25rem 2.5rem 1.25rem 1.5rem;position:relative}html.theme--documenter-dark .notification a:not(.button):not(.dropdown-item){color:currentColor;text-decoration:underline}html.theme--documenter-dark .notification strong{color:currentColor}html.theme--documenter-dark .notification code,html.theme--documenter-dark .notification pre{background:#fff}html.theme--documenter-dark .notification pre code{background:transparent}html.theme--documenter-dark .notification>.delete{position:absolute;right:0.5rem;top:0.5rem}html.theme--documenter-dark .notification .title,html.theme--documenter-dark .notification .subtitle,html.theme--documenter-dark .notification .content{color:currentColor}html.theme--documenter-dark .notification.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .notification.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .notification.is-light{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .notification.is-dark,html.theme--documenter-dark .content kbd.notification{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .notification.is-primary,html.theme--documenter-dark .docstring>section>a.notification.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .notification.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .notification.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .notification.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .notification.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .notification.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:290486px;display:block;height:15px;overflow:hidden;padding:0;width:100%}html.theme--documenter-dark .progress::-webkit-progress-bar{background-color:#5e6d6f}html.theme--documenter-dark .progress::-webkit-progress-value{background-color:#dbdee0}html.theme--documenter-dark .progress::-moz-progress-bar{background-color:#dbdee0}html.theme--documenter-dark .progress::-ms-fill{background-color:#dbdee0;border:none}html.theme--documenter-dark .progress.is-white::-webkit-progress-value{background-color:#fff}html.theme--documenter-dark .progress.is-white::-moz-progress-bar{background-color:#fff}html.theme--documenter-dark .progress.is-white::-ms-fill{background-color:#fff}html.theme--documenter-dark .progress.is-white:indeterminate{background-image:linear-gradient(to right, #fff 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-black::-webkit-progress-value{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black::-moz-progress-bar{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black::-ms-fill{background-color:#0a0a0a}html.theme--documenter-dark .progress.is-black:indeterminate{background-image:linear-gradient(to right, #0a0a0a 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-light::-webkit-progress-value{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light::-moz-progress-bar{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light::-ms-fill{background-color:#ecf0f1}html.theme--documenter-dark .progress.is-light:indeterminate{background-image:linear-gradient(to right, #ecf0f1 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-dark::-webkit-progress-value,html.theme--documenter-dark .content kbd.progress::-webkit-progress-value{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark::-moz-progress-bar,html.theme--documenter-dark .content kbd.progress::-moz-progress-bar{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark::-ms-fill,html.theme--documenter-dark .content kbd.progress::-ms-fill{background-color:#282f2f}html.theme--documenter-dark .progress.is-dark:indeterminate,html.theme--documenter-dark .content kbd.progress:indeterminate{background-image:linear-gradient(to right, #282f2f 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-primary::-webkit-progress-value,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-webkit-progress-value{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary::-moz-progress-bar,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-moz-progress-bar{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary::-ms-fill,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink::-ms-fill{background-color:#375a7f}html.theme--documenter-dark .progress.is-primary:indeterminate,html.theme--documenter-dark .docstring>section>a.progress.docs-sourcelink:indeterminate{background-image:linear-gradient(to right, #375a7f 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-link::-webkit-progress-value{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link::-moz-progress-bar{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link::-ms-fill{background-color:#1abc9c}html.theme--documenter-dark .progress.is-link:indeterminate{background-image:linear-gradient(to right, #1abc9c 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-info::-webkit-progress-value{background-color:#024c7d}html.theme--documenter-dark .progress.is-info::-moz-progress-bar{background-color:#024c7d}html.theme--documenter-dark .progress.is-info::-ms-fill{background-color:#024c7d}html.theme--documenter-dark .progress.is-info:indeterminate{background-image:linear-gradient(to right, #024c7d 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-success::-webkit-progress-value{background-color:#008438}html.theme--documenter-dark .progress.is-success::-moz-progress-bar{background-color:#008438}html.theme--documenter-dark .progress.is-success::-ms-fill{background-color:#008438}html.theme--documenter-dark .progress.is-success:indeterminate{background-image:linear-gradient(to right, #008438 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-warning::-webkit-progress-value{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning::-moz-progress-bar{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning::-ms-fill{background-color:#ad8100}html.theme--documenter-dark .progress.is-warning:indeterminate{background-image:linear-gradient(to right, #ad8100 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress.is-danger::-webkit-progress-value{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger::-moz-progress-bar{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger::-ms-fill{background-color:#9e1b0d}html.theme--documenter-dark .progress.is-danger:indeterminate{background-image:linear-gradient(to right, #9e1b0d 30%, #5e6d6f 30%)}html.theme--documenter-dark .progress:indeterminate{animation-duration:1.5s;animation-iteration-count:infinite;animation-name:moveIndeterminate;animation-timing-function:linear;background-color:#5e6d6f;background-image:linear-gradient(to right, #fff 30%, #5e6d6f 30%);background-position:top left;background-repeat:no-repeat;background-size:150% 150%}html.theme--documenter-dark .progress:indeterminate::-webkit-progress-bar{background-color:transparent}html.theme--documenter-dark .progress:indeterminate::-moz-progress-bar{background-color:transparent}html.theme--documenter-dark .progress.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.progress{height:.85em}html.theme--documenter-dark .progress.is-medium{height:1.25rem}html.theme--documenter-dark .progress.is-large{height:1.5rem}@keyframes moveIndeterminate{from{background-position:200% 0}to{background-position:-200% 0}}html.theme--documenter-dark .table{background-color:#343c3d;color:#fff}html.theme--documenter-dark .table td,html.theme--documenter-dark .table th{border:1px solid #5e6d6f;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}html.theme--documenter-dark .table td.is-white,html.theme--documenter-dark .table th.is-white{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .table td.is-black,html.theme--documenter-dark .table th.is-black{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .table td.is-light,html.theme--documenter-dark .table th.is-light{background-color:#ecf0f1;border-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .table td.is-dark,html.theme--documenter-dark .table th.is-dark{background-color:#282f2f;border-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .table td.is-primary,html.theme--documenter-dark .table th.is-primary{background-color:#375a7f;border-color:#375a7f;color:#fff}html.theme--documenter-dark .table td.is-link,html.theme--documenter-dark .table th.is-link{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .table td.is-info,html.theme--documenter-dark .table th.is-info{background-color:#024c7d;border-color:#024c7d;color:#fff}html.theme--documenter-dark .table td.is-success,html.theme--documenter-dark .table th.is-success{background-color:#008438;border-color:#008438;color:#fff}html.theme--documenter-dark .table td.is-warning,html.theme--documenter-dark .table th.is-warning{background-color:#ad8100;border-color:#ad8100;color:#fff}html.theme--documenter-dark .table td.is-danger,html.theme--documenter-dark .table th.is-danger{background-color:#9e1b0d;border-color:#9e1b0d;color:#fff}html.theme--documenter-dark .table td.is-narrow,html.theme--documenter-dark .table th.is-narrow{white-space:nowrap;width:1%}html.theme--documenter-dark .table td.is-selected,html.theme--documenter-dark .table th.is-selected{background-color:#375a7f;color:#fff}html.theme--documenter-dark .table td.is-selected a,html.theme--documenter-dark .table td.is-selected strong,html.theme--documenter-dark .table th.is-selected a,html.theme--documenter-dark .table th.is-selected strong{color:currentColor}html.theme--documenter-dark .table th{color:#f2f2f2}html.theme--documenter-dark .table th:not([align]){text-align:left}html.theme--documenter-dark .table tr.is-selected{background-color:#375a7f;color:#fff}html.theme--documenter-dark .table tr.is-selected a,html.theme--documenter-dark .table tr.is-selected strong{color:currentColor}html.theme--documenter-dark .table tr.is-selected td,html.theme--documenter-dark .table tr.is-selected th{border-color:#fff;color:currentColor}html.theme--documenter-dark .table thead{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table thead td,html.theme--documenter-dark .table thead th{border-width:0 0 2px;color:#f2f2f2}html.theme--documenter-dark .table tfoot{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table tfoot td,html.theme--documenter-dark .table tfoot th{border-width:2px 0 0;color:#f2f2f2}html.theme--documenter-dark .table tbody{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .table tbody tr:last-child td,html.theme--documenter-dark .table tbody tr:last-child th{border-bottom-width:0}html.theme--documenter-dark .table.is-bordered td,html.theme--documenter-dark .table.is-bordered th{border-width:1px}html.theme--documenter-dark .table.is-bordered tr:last-child td,html.theme--documenter-dark .table.is-bordered tr:last-child th{border-bottom-width:1px}html.theme--documenter-dark .table.is-fullwidth{width:100%}html.theme--documenter-dark .table.is-hoverable tbody tr:not(.is-selected):hover{background-color:#282f2f}html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover{background-color:#282f2f}html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even){background-color:#2d3435}html.theme--documenter-dark .table.is-narrow td,html.theme--documenter-dark .table.is-narrow th{padding:0.25em 0.5em}html.theme--documenter-dark .table.is-striped tbody tr:not(.is-selected):nth-child(even){background-color:#282f2f}html.theme--documenter-dark .table-container{-webkit-overflow-scrolling:touch;overflow:auto;overflow-y:hidden;max-width:100%}html.theme--documenter-dark .tags{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .tags .tag,html.theme--documenter-dark .tags .content kbd,html.theme--documenter-dark .content .tags kbd,html.theme--documenter-dark .tags .docstring>section>a.docs-sourcelink{margin-bottom:0.5rem}html.theme--documenter-dark .tags .tag:not(:last-child),html.theme--documenter-dark .tags .content kbd:not(:last-child),html.theme--documenter-dark .content .tags kbd:not(:last-child),html.theme--documenter-dark .tags .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0.5rem}html.theme--documenter-dark .tags:last-child{margin-bottom:-0.5rem}html.theme--documenter-dark .tags:not(:last-child){margin-bottom:1rem}html.theme--documenter-dark .tags.are-medium .tag:not(.is-normal):not(.is-large),html.theme--documenter-dark .tags.are-medium .content kbd:not(.is-normal):not(.is-large),html.theme--documenter-dark .content .tags.are-medium kbd:not(.is-normal):not(.is-large),html.theme--documenter-dark .tags.are-medium .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-large){font-size:15px}html.theme--documenter-dark .tags.are-large .tag:not(.is-normal):not(.is-medium),html.theme--documenter-dark .tags.are-large .content kbd:not(.is-normal):not(.is-medium),html.theme--documenter-dark .content .tags.are-large kbd:not(.is-normal):not(.is-medium),html.theme--documenter-dark .tags.are-large .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-medium){font-size:1.25rem}html.theme--documenter-dark .tags.is-centered{justify-content:center}html.theme--documenter-dark .tags.is-centered .tag,html.theme--documenter-dark .tags.is-centered .content kbd,html.theme--documenter-dark .content .tags.is-centered kbd,html.theme--documenter-dark .tags.is-centered .docstring>section>a.docs-sourcelink{margin-right:0.25rem;margin-left:0.25rem}html.theme--documenter-dark .tags.is-right{justify-content:flex-end}html.theme--documenter-dark .tags.is-right .tag:not(:first-child),html.theme--documenter-dark .tags.is-right .content kbd:not(:first-child),html.theme--documenter-dark .content .tags.is-right kbd:not(:first-child),html.theme--documenter-dark .tags.is-right .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0.5rem}html.theme--documenter-dark .tags.is-right .tag:not(:last-child),html.theme--documenter-dark .tags.is-right .content kbd:not(:last-child),html.theme--documenter-dark .content .tags.is-right kbd:not(:last-child),html.theme--documenter-dark .tags.is-right .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0}html.theme--documenter-dark .tags.has-addons .tag,html.theme--documenter-dark .tags.has-addons .content kbd,html.theme--documenter-dark .content .tags.has-addons kbd,html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink{margin-right:0}html.theme--documenter-dark .tags.has-addons .tag:not(:first-child),html.theme--documenter-dark .tags.has-addons .content kbd:not(:first-child),html.theme--documenter-dark .content .tags.has-addons kbd:not(:first-child),html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0;border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .tags.has-addons .tag:not(:last-child),html.theme--documenter-dark .tags.has-addons .content kbd:not(:last-child),html.theme--documenter-dark .content .tags.has-addons kbd:not(:last-child),html.theme--documenter-dark .tags.has-addons .docstring>section>a.docs-sourcelink:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .tag:not(body),html.theme--documenter-dark .content kbd:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body){align-items:center;background-color:#282f2f;border-radius:.4em;color:#fff;display:inline-flex;font-size:.85em;height:2em;justify-content:center;line-height:1.5;padding-left:0.75em;padding-right:0.75em;white-space:nowrap}html.theme--documenter-dark .tag:not(body) .delete,html.theme--documenter-dark .content kbd:not(body) .delete,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .delete{margin-left:0.25rem;margin-right:-0.375rem}html.theme--documenter-dark .tag.is-white:not(body),html.theme--documenter-dark .content kbd.is-white:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-white:not(body){background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .tag.is-black:not(body),html.theme--documenter-dark .content kbd.is-black:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-black:not(body){background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .tag.is-light:not(body),html.theme--documenter-dark .content kbd.is-light:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-light:not(body){background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .tag.is-dark:not(body),html.theme--documenter-dark .content kbd:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-dark:not(body),html.theme--documenter-dark .content .docstring>section>kbd:not(body){background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .tag.is-primary:not(body),html.theme--documenter-dark .content kbd.is-primary:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body){background-color:#375a7f;color:#fff}html.theme--documenter-dark .tag.is-link:not(body),html.theme--documenter-dark .content kbd.is-link:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-link:not(body){background-color:#1abc9c;color:#fff}html.theme--documenter-dark .tag.is-info:not(body),html.theme--documenter-dark .content kbd.is-info:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-info:not(body){background-color:#024c7d;color:#fff}html.theme--documenter-dark .tag.is-success:not(body),html.theme--documenter-dark .content kbd.is-success:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-success:not(body){background-color:#008438;color:#fff}html.theme--documenter-dark .tag.is-warning:not(body),html.theme--documenter-dark .content kbd.is-warning:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-warning:not(body){background-color:#ad8100;color:#fff}html.theme--documenter-dark .tag.is-danger:not(body),html.theme--documenter-dark .content kbd.is-danger:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-danger:not(body){background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .tag.is-normal:not(body),html.theme--documenter-dark .content kbd.is-normal:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-normal:not(body){font-size:.85em}html.theme--documenter-dark .tag.is-medium:not(body),html.theme--documenter-dark .content kbd.is-medium:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-medium:not(body){font-size:15px}html.theme--documenter-dark .tag.is-large:not(body),html.theme--documenter-dark .content kbd.is-large:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-large:not(body){font-size:1.25rem}html.theme--documenter-dark .tag:not(body) .icon:first-child:not(:last-child),html.theme--documenter-dark .content kbd:not(body) .icon:first-child:not(:last-child),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:first-child:not(:last-child){margin-left:-0.375em;margin-right:0.1875em}html.theme--documenter-dark .tag:not(body) .icon:last-child:not(:first-child),html.theme--documenter-dark .content kbd:not(body) .icon:last-child:not(:first-child),html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:-0.375em}html.theme--documenter-dark .tag:not(body) .icon:first-child:last-child,html.theme--documenter-dark .content kbd:not(body) .icon:first-child:last-child,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:not(body) .icon:first-child:last-child{margin-left:-0.375em;margin-right:-0.375em}html.theme--documenter-dark .tag.is-delete:not(body),html.theme--documenter-dark .content kbd.is-delete:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body){margin-left:1px;padding:0;position:relative;width:2em}html.theme--documenter-dark .tag.is-delete:not(body)::before,html.theme--documenter-dark .content kbd.is-delete:not(body)::before,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::before,html.theme--documenter-dark .tag.is-delete:not(body)::after,html.theme--documenter-dark .content kbd.is-delete:not(body)::after,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::after{background-color:currentColor;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}html.theme--documenter-dark .tag.is-delete:not(body)::before,html.theme--documenter-dark .content kbd.is-delete:not(body)::before,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::before{height:1px;width:50%}html.theme--documenter-dark .tag.is-delete:not(body)::after,html.theme--documenter-dark .content kbd.is-delete:not(body)::after,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body)::after{height:50%;width:1px}html.theme--documenter-dark .tag.is-delete:not(body):hover,html.theme--documenter-dark .content kbd.is-delete:not(body):hover,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):hover,html.theme--documenter-dark .tag.is-delete:not(body):focus,html.theme--documenter-dark .content kbd.is-delete:not(body):focus,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):focus{background-color:#1d2122}html.theme--documenter-dark .tag.is-delete:not(body):active,html.theme--documenter-dark .content kbd.is-delete:not(body):active,html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-delete:not(body):active{background-color:#111414}html.theme--documenter-dark .tag.is-rounded:not(body),html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:not(body),html.theme--documenter-dark .content kbd.is-rounded:not(body),html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input:not(body),html.theme--documenter-dark .docstring>section>a.docs-sourcelink.is-rounded:not(body){border-radius:290486px}html.theme--documenter-dark a.tag:hover,html.theme--documenter-dark .docstring>section>a.docs-sourcelink:hover{text-decoration:underline}html.theme--documenter-dark .title,html.theme--documenter-dark .subtitle{word-break:break-word}html.theme--documenter-dark .title em,html.theme--documenter-dark .title span,html.theme--documenter-dark .subtitle em,html.theme--documenter-dark .subtitle span{font-weight:inherit}html.theme--documenter-dark .title sub,html.theme--documenter-dark .subtitle sub{font-size:.75em}html.theme--documenter-dark .title sup,html.theme--documenter-dark .subtitle sup{font-size:.75em}html.theme--documenter-dark .title .tag,html.theme--documenter-dark .title .content kbd,html.theme--documenter-dark .content .title kbd,html.theme--documenter-dark .title .docstring>section>a.docs-sourcelink,html.theme--documenter-dark .subtitle .tag,html.theme--documenter-dark .subtitle .content kbd,html.theme--documenter-dark .content .subtitle kbd,html.theme--documenter-dark .subtitle .docstring>section>a.docs-sourcelink{vertical-align:middle}html.theme--documenter-dark .title{color:#fff;font-size:2rem;font-weight:500;line-height:1.125}html.theme--documenter-dark .title strong{color:inherit;font-weight:inherit}html.theme--documenter-dark .title+.highlight{margin-top:-0.75rem}html.theme--documenter-dark .title:not(.is-spaced)+.subtitle{margin-top:-1.25rem}html.theme--documenter-dark .title.is-1{font-size:3rem}html.theme--documenter-dark .title.is-2{font-size:2.5rem}html.theme--documenter-dark .title.is-3{font-size:2rem}html.theme--documenter-dark .title.is-4{font-size:1.5rem}html.theme--documenter-dark .title.is-5{font-size:1.25rem}html.theme--documenter-dark .title.is-6{font-size:15px}html.theme--documenter-dark .title.is-7{font-size:.85em}html.theme--documenter-dark .subtitle{color:#8c9b9d;font-size:1.25rem;font-weight:400;line-height:1.25}html.theme--documenter-dark .subtitle strong{color:#8c9b9d;font-weight:600}html.theme--documenter-dark .subtitle:not(.is-spaced)+.title{margin-top:-1.25rem}html.theme--documenter-dark .subtitle.is-1{font-size:3rem}html.theme--documenter-dark .subtitle.is-2{font-size:2.5rem}html.theme--documenter-dark .subtitle.is-3{font-size:2rem}html.theme--documenter-dark .subtitle.is-4{font-size:1.5rem}html.theme--documenter-dark .subtitle.is-5{font-size:1.25rem}html.theme--documenter-dark .subtitle.is-6{font-size:15px}html.theme--documenter-dark .subtitle.is-7{font-size:.85em}html.theme--documenter-dark .heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}html.theme--documenter-dark .highlight{font-weight:400;max-width:100%;overflow:hidden;padding:0}html.theme--documenter-dark .highlight pre{overflow:auto;max-width:100%}html.theme--documenter-dark .number{align-items:center;background-color:#282f2f;border-radius:290486px;display:inline-flex;font-size:1.25rem;height:2em;justify-content:center;margin-right:1.5rem;min-width:2.5em;padding:0.25rem 0.5rem;text-align:center;vertical-align:top}html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{background-color:#1f2424;border-color:#5e6d6f;border-radius:.4em;color:#dbdee0}html.theme--documenter-dark .select select::-moz-placeholder,html.theme--documenter-dark .textarea::-moz-placeholder,html.theme--documenter-dark .input::-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select::-webkit-input-placeholder,html.theme--documenter-dark .textarea::-webkit-input-placeholder,html.theme--documenter-dark .input::-webkit-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select:-moz-placeholder,html.theme--documenter-dark .textarea:-moz-placeholder,html.theme--documenter-dark .input:-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select:-ms-input-placeholder,html.theme--documenter-dark .textarea:-ms-input-placeholder,html.theme--documenter-dark .input:-ms-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(219,222,224,0.3)}html.theme--documenter-dark .select select:hover,html.theme--documenter-dark .textarea:hover,html.theme--documenter-dark .input:hover,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:hover,html.theme--documenter-dark .select select.is-hovered,html.theme--documenter-dark .is-hovered.textarea,html.theme--documenter-dark .is-hovered.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-hovered{border-color:#8c9b9d}html.theme--documenter-dark .select select:focus,html.theme--documenter-dark .textarea:focus,html.theme--documenter-dark .input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:focus,html.theme--documenter-dark .select select.is-focused,html.theme--documenter-dark .is-focused.textarea,html.theme--documenter-dark .is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .select select:active,html.theme--documenter-dark .textarea:active,html.theme--documenter-dark .input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:active,html.theme--documenter-dark .select select.is-active,html.theme--documenter-dark .is-active.textarea,html.theme--documenter-dark .is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{border-color:#1abc9c;box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .select select[disabled],html.theme--documenter-dark .textarea[disabled],html.theme--documenter-dark .input[disabled],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled],fieldset[disabled] html.theme--documenter-dark .select select,fieldset[disabled] html.theme--documenter-dark .textarea,fieldset[disabled] html.theme--documenter-dark .input,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{background-color:#8c9b9d;border-color:#282f2f;box-shadow:none;color:#fff}html.theme--documenter-dark .select select[disabled]::-moz-placeholder,html.theme--documenter-dark .textarea[disabled]::-moz-placeholder,html.theme--documenter-dark .input[disabled]::-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .select select::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .input::-moz-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]::-webkit-input-placeholder,html.theme--documenter-dark .textarea[disabled]::-webkit-input-placeholder,html.theme--documenter-dark .input[disabled]::-webkit-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .select select::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark .input::-webkit-input-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]:-moz-placeholder,html.theme--documenter-dark .textarea[disabled]:-moz-placeholder,html.theme--documenter-dark .input[disabled]:-moz-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .select select:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark .input:-moz-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .select select[disabled]:-ms-input-placeholder,html.theme--documenter-dark .textarea[disabled]:-ms-input-placeholder,html.theme--documenter-dark .input[disabled]:-ms-input-placeholder,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[disabled]:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .select select:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .textarea:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark .input:-ms-input-placeholder,fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(255,255,255,0.3)}html.theme--documenter-dark .textarea,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{box-shadow:inset 0 1px 2px rgba(10,10,10,0.1);max-width:100%;width:100%}html.theme--documenter-dark .textarea[readonly],html.theme--documenter-dark .input[readonly],html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input[readonly]{box-shadow:none}html.theme--documenter-dark .is-white.textarea,html.theme--documenter-dark .is-white.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white{border-color:#fff}html.theme--documenter-dark .is-white.textarea:focus,html.theme--documenter-dark .is-white.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white:focus,html.theme--documenter-dark .is-white.is-focused.textarea,html.theme--documenter-dark .is-white.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-white.textarea:active,html.theme--documenter-dark .is-white.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-white:active,html.theme--documenter-dark .is-white.is-active.textarea,html.theme--documenter-dark .is-white.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .is-black.textarea,html.theme--documenter-dark .is-black.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black{border-color:#0a0a0a}html.theme--documenter-dark .is-black.textarea:focus,html.theme--documenter-dark .is-black.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black:focus,html.theme--documenter-dark .is-black.is-focused.textarea,html.theme--documenter-dark .is-black.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-black.textarea:active,html.theme--documenter-dark .is-black.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-black:active,html.theme--documenter-dark .is-black.is-active.textarea,html.theme--documenter-dark .is-black.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .is-light.textarea,html.theme--documenter-dark .is-light.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light{border-color:#ecf0f1}html.theme--documenter-dark .is-light.textarea:focus,html.theme--documenter-dark .is-light.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light:focus,html.theme--documenter-dark .is-light.is-focused.textarea,html.theme--documenter-dark .is-light.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-light.textarea:active,html.theme--documenter-dark .is-light.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-light:active,html.theme--documenter-dark .is-light.is-active.textarea,html.theme--documenter-dark .is-light.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .is-dark.textarea,html.theme--documenter-dark .content kbd.textarea,html.theme--documenter-dark .is-dark.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark,html.theme--documenter-dark .content kbd.input{border-color:#282f2f}html.theme--documenter-dark .is-dark.textarea:focus,html.theme--documenter-dark .content kbd.textarea:focus,html.theme--documenter-dark .is-dark.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark:focus,html.theme--documenter-dark .content kbd.input:focus,html.theme--documenter-dark .is-dark.is-focused.textarea,html.theme--documenter-dark .content kbd.is-focused.textarea,html.theme--documenter-dark .is-dark.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .content kbd.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input.is-focused,html.theme--documenter-dark .is-dark.textarea:active,html.theme--documenter-dark .content kbd.textarea:active,html.theme--documenter-dark .is-dark.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-dark:active,html.theme--documenter-dark .content kbd.input:active,html.theme--documenter-dark .is-dark.is-active.textarea,html.theme--documenter-dark .content kbd.is-active.textarea,html.theme--documenter-dark .is-dark.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .content kbd.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .is-primary.textarea,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink{border-color:#375a7f}html.theme--documenter-dark .is-primary.textarea:focus,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink:focus,html.theme--documenter-dark .is-primary.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary:focus,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink:focus,html.theme--documenter-dark .is-primary.is-focused.textarea,html.theme--documenter-dark .docstring>section>a.is-focused.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .docstring>section>a.is-focused.input.docs-sourcelink,html.theme--documenter-dark .is-primary.textarea:active,html.theme--documenter-dark .docstring>section>a.textarea.docs-sourcelink:active,html.theme--documenter-dark .is-primary.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-primary:active,html.theme--documenter-dark .docstring>section>a.input.docs-sourcelink:active,html.theme--documenter-dark .is-primary.is-active.textarea,html.theme--documenter-dark .docstring>section>a.is-active.textarea.docs-sourcelink,html.theme--documenter-dark .is-primary.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active,html.theme--documenter-dark .docstring>section>a.is-active.input.docs-sourcelink{box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .is-link.textarea,html.theme--documenter-dark .is-link.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link{border-color:#1abc9c}html.theme--documenter-dark .is-link.textarea:focus,html.theme--documenter-dark .is-link.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link:focus,html.theme--documenter-dark .is-link.is-focused.textarea,html.theme--documenter-dark .is-link.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-link.textarea:active,html.theme--documenter-dark .is-link.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-link:active,html.theme--documenter-dark .is-link.is-active.textarea,html.theme--documenter-dark .is-link.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .is-info.textarea,html.theme--documenter-dark .is-info.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info{border-color:#024c7d}html.theme--documenter-dark .is-info.textarea:focus,html.theme--documenter-dark .is-info.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info:focus,html.theme--documenter-dark .is-info.is-focused.textarea,html.theme--documenter-dark .is-info.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-info.textarea:active,html.theme--documenter-dark .is-info.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-info:active,html.theme--documenter-dark .is-info.is-active.textarea,html.theme--documenter-dark .is-info.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .is-success.textarea,html.theme--documenter-dark .is-success.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success{border-color:#008438}html.theme--documenter-dark .is-success.textarea:focus,html.theme--documenter-dark .is-success.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success:focus,html.theme--documenter-dark .is-success.is-focused.textarea,html.theme--documenter-dark .is-success.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-success.textarea:active,html.theme--documenter-dark .is-success.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-success:active,html.theme--documenter-dark .is-success.is-active.textarea,html.theme--documenter-dark .is-success.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .is-warning.textarea,html.theme--documenter-dark .is-warning.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning{border-color:#ad8100}html.theme--documenter-dark .is-warning.textarea:focus,html.theme--documenter-dark .is-warning.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning:focus,html.theme--documenter-dark .is-warning.is-focused.textarea,html.theme--documenter-dark .is-warning.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-warning.textarea:active,html.theme--documenter-dark .is-warning.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-warning:active,html.theme--documenter-dark .is-warning.is-active.textarea,html.theme--documenter-dark .is-warning.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .is-danger.textarea,html.theme--documenter-dark .is-danger.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger{border-color:#9e1b0d}html.theme--documenter-dark .is-danger.textarea:focus,html.theme--documenter-dark .is-danger.input:focus,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger:focus,html.theme--documenter-dark .is-danger.is-focused.textarea,html.theme--documenter-dark .is-danger.is-focused.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-focused,html.theme--documenter-dark .is-danger.textarea:active,html.theme--documenter-dark .is-danger.input:active,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-danger:active,html.theme--documenter-dark .is-danger.is-active.textarea,html.theme--documenter-dark .is-danger.is-active.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .is-small.textarea,html.theme--documenter-dark .is-small.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{border-radius:3px;font-size:.85em}html.theme--documenter-dark .is-medium.textarea,html.theme--documenter-dark .is-medium.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-medium{font-size:1.25rem}html.theme--documenter-dark .is-large.textarea,html.theme--documenter-dark .is-large.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-large{font-size:1.5rem}html.theme--documenter-dark .is-fullwidth.textarea,html.theme--documenter-dark .is-fullwidth.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-fullwidth{display:block;width:100%}html.theme--documenter-dark .is-inline.textarea,html.theme--documenter-dark .is-inline.input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-inline{display:inline;width:auto}html.theme--documenter-dark .input.is-rounded,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{border-radius:290486px;padding-left:1em;padding-right:1em}html.theme--documenter-dark .input.is-static,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-static{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0}html.theme--documenter-dark .textarea{display:block;max-width:100%;min-width:100%;padding:0.625em;resize:vertical}html.theme--documenter-dark .textarea:not([rows]){max-height:600px;min-height:120px}html.theme--documenter-dark .textarea[rows]{height:initial}html.theme--documenter-dark .textarea.has-fixed-size{resize:none}html.theme--documenter-dark .radio,html.theme--documenter-dark .checkbox{cursor:pointer;display:inline-block;line-height:1.25;position:relative}html.theme--documenter-dark .radio input,html.theme--documenter-dark .checkbox input{cursor:pointer}html.theme--documenter-dark .radio:hover,html.theme--documenter-dark .checkbox:hover{color:#8c9b9d}html.theme--documenter-dark .radio[disabled],html.theme--documenter-dark .checkbox[disabled],fieldset[disabled] html.theme--documenter-dark .radio,fieldset[disabled] html.theme--documenter-dark .checkbox{color:#fff;cursor:not-allowed}html.theme--documenter-dark .radio+.radio{margin-left:0.5em}html.theme--documenter-dark .select{display:inline-block;max-width:100%;position:relative;vertical-align:top}html.theme--documenter-dark .select:not(.is-multiple){height:2.25em}html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after{border-color:#1abc9c;right:1.125em;z-index:4}html.theme--documenter-dark .select.is-rounded select,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.select select{border-radius:290486px;padding-left:1em}html.theme--documenter-dark .select select{cursor:pointer;display:block;font-size:1em;max-width:100%;outline:none}html.theme--documenter-dark .select select::-ms-expand{display:none}html.theme--documenter-dark .select select[disabled]:hover,fieldset[disabled] html.theme--documenter-dark .select select:hover{border-color:#282f2f}html.theme--documenter-dark .select select:not([multiple]){padding-right:2.5em}html.theme--documenter-dark .select select[multiple]{height:auto;padding:0}html.theme--documenter-dark .select select[multiple] option{padding:0.5em 1em}html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading):hover::after{border-color:#8c9b9d}html.theme--documenter-dark .select.is-white:not(:hover)::after{border-color:#fff}html.theme--documenter-dark .select.is-white select{border-color:#fff}html.theme--documenter-dark .select.is-white select:hover,html.theme--documenter-dark .select.is-white select.is-hovered{border-color:#f2f2f2}html.theme--documenter-dark .select.is-white select:focus,html.theme--documenter-dark .select.is-white select.is-focused,html.theme--documenter-dark .select.is-white select:active,html.theme--documenter-dark .select.is-white select.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}html.theme--documenter-dark .select.is-black:not(:hover)::after{border-color:#0a0a0a}html.theme--documenter-dark .select.is-black select{border-color:#0a0a0a}html.theme--documenter-dark .select.is-black select:hover,html.theme--documenter-dark .select.is-black select.is-hovered{border-color:#000}html.theme--documenter-dark .select.is-black select:focus,html.theme--documenter-dark .select.is-black select.is-focused,html.theme--documenter-dark .select.is-black select:active,html.theme--documenter-dark .select.is-black select.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}html.theme--documenter-dark .select.is-light:not(:hover)::after{border-color:#ecf0f1}html.theme--documenter-dark .select.is-light select{border-color:#ecf0f1}html.theme--documenter-dark .select.is-light select:hover,html.theme--documenter-dark .select.is-light select.is-hovered{border-color:#dde4e6}html.theme--documenter-dark .select.is-light select:focus,html.theme--documenter-dark .select.is-light select.is-focused,html.theme--documenter-dark .select.is-light select:active,html.theme--documenter-dark .select.is-light select.is-active{box-shadow:0 0 0 0.125em rgba(236,240,241,0.25)}html.theme--documenter-dark .select.is-dark:not(:hover)::after,html.theme--documenter-dark .content kbd.select:not(:hover)::after{border-color:#282f2f}html.theme--documenter-dark .select.is-dark select,html.theme--documenter-dark .content kbd.select select{border-color:#282f2f}html.theme--documenter-dark .select.is-dark select:hover,html.theme--documenter-dark .content kbd.select select:hover,html.theme--documenter-dark .select.is-dark select.is-hovered,html.theme--documenter-dark .content kbd.select select.is-hovered{border-color:#1d2122}html.theme--documenter-dark .select.is-dark select:focus,html.theme--documenter-dark .content kbd.select select:focus,html.theme--documenter-dark .select.is-dark select.is-focused,html.theme--documenter-dark .content kbd.select select.is-focused,html.theme--documenter-dark .select.is-dark select:active,html.theme--documenter-dark .content kbd.select select:active,html.theme--documenter-dark .select.is-dark select.is-active,html.theme--documenter-dark .content kbd.select select.is-active{box-shadow:0 0 0 0.125em rgba(40,47,47,0.25)}html.theme--documenter-dark .select.is-primary:not(:hover)::after,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink:not(:hover)::after{border-color:#375a7f}html.theme--documenter-dark .select.is-primary select,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select{border-color:#375a7f}html.theme--documenter-dark .select.is-primary select:hover,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:hover,html.theme--documenter-dark .select.is-primary select.is-hovered,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-hovered{border-color:#2f4d6d}html.theme--documenter-dark .select.is-primary select:focus,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:focus,html.theme--documenter-dark .select.is-primary select.is-focused,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-focused,html.theme--documenter-dark .select.is-primary select:active,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select:active,html.theme--documenter-dark .select.is-primary select.is-active,html.theme--documenter-dark .docstring>section>a.select.docs-sourcelink select.is-active{box-shadow:0 0 0 0.125em rgba(55,90,127,0.25)}html.theme--documenter-dark .select.is-link:not(:hover)::after{border-color:#1abc9c}html.theme--documenter-dark .select.is-link select{border-color:#1abc9c}html.theme--documenter-dark .select.is-link select:hover,html.theme--documenter-dark .select.is-link select.is-hovered{border-color:#17a689}html.theme--documenter-dark .select.is-link select:focus,html.theme--documenter-dark .select.is-link select.is-focused,html.theme--documenter-dark .select.is-link select:active,html.theme--documenter-dark .select.is-link select.is-active{box-shadow:0 0 0 0.125em rgba(26,188,156,0.25)}html.theme--documenter-dark .select.is-info:not(:hover)::after{border-color:#024c7d}html.theme--documenter-dark .select.is-info select{border-color:#024c7d}html.theme--documenter-dark .select.is-info select:hover,html.theme--documenter-dark .select.is-info select.is-hovered{border-color:#023d64}html.theme--documenter-dark .select.is-info select:focus,html.theme--documenter-dark .select.is-info select.is-focused,html.theme--documenter-dark .select.is-info select:active,html.theme--documenter-dark .select.is-info select.is-active{box-shadow:0 0 0 0.125em rgba(2,76,125,0.25)}html.theme--documenter-dark .select.is-success:not(:hover)::after{border-color:#008438}html.theme--documenter-dark .select.is-success select{border-color:#008438}html.theme--documenter-dark .select.is-success select:hover,html.theme--documenter-dark .select.is-success select.is-hovered{border-color:#006b2d}html.theme--documenter-dark .select.is-success select:focus,html.theme--documenter-dark .select.is-success select.is-focused,html.theme--documenter-dark .select.is-success select:active,html.theme--documenter-dark .select.is-success select.is-active{box-shadow:0 0 0 0.125em rgba(0,132,56,0.25)}html.theme--documenter-dark .select.is-warning:not(:hover)::after{border-color:#ad8100}html.theme--documenter-dark .select.is-warning select{border-color:#ad8100}html.theme--documenter-dark .select.is-warning select:hover,html.theme--documenter-dark .select.is-warning select.is-hovered{border-color:#946e00}html.theme--documenter-dark .select.is-warning select:focus,html.theme--documenter-dark .select.is-warning select.is-focused,html.theme--documenter-dark .select.is-warning select:active,html.theme--documenter-dark .select.is-warning select.is-active{box-shadow:0 0 0 0.125em rgba(173,129,0,0.25)}html.theme--documenter-dark .select.is-danger:not(:hover)::after{border-color:#9e1b0d}html.theme--documenter-dark .select.is-danger select{border-color:#9e1b0d}html.theme--documenter-dark .select.is-danger select:hover,html.theme--documenter-dark .select.is-danger select.is-hovered{border-color:#86170b}html.theme--documenter-dark .select.is-danger select:focus,html.theme--documenter-dark .select.is-danger select.is-focused,html.theme--documenter-dark .select.is-danger select:active,html.theme--documenter-dark .select.is-danger select.is-active{box-shadow:0 0 0 0.125em rgba(158,27,13,0.25)}html.theme--documenter-dark .select.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.select{border-radius:3px;font-size:.85em}html.theme--documenter-dark .select.is-medium{font-size:1.25rem}html.theme--documenter-dark .select.is-large{font-size:1.5rem}html.theme--documenter-dark .select.is-disabled::after{border-color:#fff}html.theme--documenter-dark .select.is-fullwidth{width:100%}html.theme--documenter-dark .select.is-fullwidth select{width:100%}html.theme--documenter-dark .select.is-loading::after{margin-top:0;position:absolute;right:0.625em;top:0.625em;transform:none}html.theme--documenter-dark .select.is-loading.is-small:after,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.85em}html.theme--documenter-dark .select.is-loading.is-medium:after{font-size:1.25rem}html.theme--documenter-dark .select.is-loading.is-large:after{font-size:1.5rem}html.theme--documenter-dark .file{align-items:stretch;display:flex;justify-content:flex-start;position:relative}html.theme--documenter-dark .file.is-white .file-cta{background-color:#fff;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-white:hover .file-cta,html.theme--documenter-dark .file.is-white.is-hovered .file-cta{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-white:focus .file-cta,html.theme--documenter-dark .file.is-white.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,255,255,0.25);color:#0a0a0a}html.theme--documenter-dark .file.is-white:active .file-cta,html.theme--documenter-dark .file.is-white.is-active .file-cta{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}html.theme--documenter-dark .file.is-black .file-cta{background-color:#0a0a0a;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-black:hover .file-cta,html.theme--documenter-dark .file.is-black.is-hovered .file-cta{background-color:#040404;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-black:focus .file-cta,html.theme--documenter-dark .file.is-black.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(10,10,10,0.25);color:#fff}html.theme--documenter-dark .file.is-black:active .file-cta,html.theme--documenter-dark .file.is-black.is-active .file-cta{background-color:#000;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-light .file-cta{background-color:#ecf0f1;border-color:transparent;color:#282f2f}html.theme--documenter-dark .file.is-light:hover .file-cta,html.theme--documenter-dark .file.is-light.is-hovered .file-cta{background-color:#e5eaec;border-color:transparent;color:#282f2f}html.theme--documenter-dark .file.is-light:focus .file-cta,html.theme--documenter-dark .file.is-light.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(236,240,241,0.25);color:#282f2f}html.theme--documenter-dark .file.is-light:active .file-cta,html.theme--documenter-dark .file.is-light.is-active .file-cta{background-color:#dde4e6;border-color:transparent;color:#282f2f}html.theme--documenter-dark .file.is-dark .file-cta,html.theme--documenter-dark .content kbd.file .file-cta{background-color:#282f2f;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .file.is-dark:hover .file-cta,html.theme--documenter-dark .content kbd.file:hover .file-cta,html.theme--documenter-dark .file.is-dark.is-hovered .file-cta,html.theme--documenter-dark .content kbd.file.is-hovered .file-cta{background-color:#232829;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .file.is-dark:focus .file-cta,html.theme--documenter-dark .content kbd.file:focus .file-cta,html.theme--documenter-dark .file.is-dark.is-focused .file-cta,html.theme--documenter-dark .content kbd.file.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(40,47,47,0.25);color:#ecf0f1}html.theme--documenter-dark .file.is-dark:active .file-cta,html.theme--documenter-dark .content kbd.file:active .file-cta,html.theme--documenter-dark .file.is-dark.is-active .file-cta,html.theme--documenter-dark .content kbd.file.is-active .file-cta{background-color:#1d2122;border-color:transparent;color:#ecf0f1}html.theme--documenter-dark .file.is-primary .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink .file-cta{background-color:#375a7f;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-primary:hover .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:hover .file-cta,html.theme--documenter-dark .file.is-primary.is-hovered .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-hovered.docs-sourcelink .file-cta{background-color:#335476;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-primary:focus .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:focus .file-cta,html.theme--documenter-dark .file.is-primary.is-focused .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-focused.docs-sourcelink .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(55,90,127,0.25);color:#fff}html.theme--documenter-dark .file.is-primary:active .file-cta,html.theme--documenter-dark .docstring>section>a.file.docs-sourcelink:active .file-cta,html.theme--documenter-dark .file.is-primary.is-active .file-cta,html.theme--documenter-dark .docstring>section>a.file.is-active.docs-sourcelink .file-cta{background-color:#2f4d6d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link .file-cta{background-color:#1abc9c;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link:hover .file-cta,html.theme--documenter-dark .file.is-link.is-hovered .file-cta{background-color:#18b193;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-link:focus .file-cta,html.theme--documenter-dark .file.is-link.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(26,188,156,0.25);color:#fff}html.theme--documenter-dark .file.is-link:active .file-cta,html.theme--documenter-dark .file.is-link.is-active .file-cta{background-color:#17a689;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info .file-cta{background-color:#024c7d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info:hover .file-cta,html.theme--documenter-dark .file.is-info.is-hovered .file-cta{background-color:#024470;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-info:focus .file-cta,html.theme--documenter-dark .file.is-info.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(2,76,125,0.25);color:#fff}html.theme--documenter-dark .file.is-info:active .file-cta,html.theme--documenter-dark .file.is-info.is-active .file-cta{background-color:#023d64;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success .file-cta{background-color:#008438;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success:hover .file-cta,html.theme--documenter-dark .file.is-success.is-hovered .file-cta{background-color:#073;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-success:focus .file-cta,html.theme--documenter-dark .file.is-success.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(0,132,56,0.25);color:#fff}html.theme--documenter-dark .file.is-success:active .file-cta,html.theme--documenter-dark .file.is-success.is-active .file-cta{background-color:#006b2d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning .file-cta{background-color:#ad8100;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning:hover .file-cta,html.theme--documenter-dark .file.is-warning.is-hovered .file-cta{background-color:#a07700;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-warning:focus .file-cta,html.theme--documenter-dark .file.is-warning.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(173,129,0,0.25);color:#fff}html.theme--documenter-dark .file.is-warning:active .file-cta,html.theme--documenter-dark .file.is-warning.is-active .file-cta{background-color:#946e00;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger .file-cta{background-color:#9e1b0d;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger:hover .file-cta,html.theme--documenter-dark .file.is-danger.is-hovered .file-cta{background-color:#92190c;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-danger:focus .file-cta,html.theme--documenter-dark .file.is-danger.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(158,27,13,0.25);color:#fff}html.theme--documenter-dark .file.is-danger:active .file-cta,html.theme--documenter-dark .file.is-danger.is-active .file-cta{background-color:#86170b;border-color:transparent;color:#fff}html.theme--documenter-dark .file.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.file{font-size:.85em}html.theme--documenter-dark .file.is-medium{font-size:1.25rem}html.theme--documenter-dark .file.is-medium .file-icon .fa{font-size:21px}html.theme--documenter-dark .file.is-large{font-size:1.5rem}html.theme--documenter-dark .file.is-large .file-icon .fa{font-size:28px}html.theme--documenter-dark .file.has-name .file-cta{border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .file.has-name .file-name{border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .file.has-name.is-empty .file-cta{border-radius:.4em}html.theme--documenter-dark .file.has-name.is-empty .file-name{display:none}html.theme--documenter-dark .file.is-boxed .file-label{flex-direction:column}html.theme--documenter-dark .file.is-boxed .file-cta{flex-direction:column;height:auto;padding:1em 3em}html.theme--documenter-dark .file.is-boxed .file-name{border-width:0 1px 1px}html.theme--documenter-dark .file.is-boxed .file-icon{height:1.5em;width:1.5em}html.theme--documenter-dark .file.is-boxed .file-icon .fa{font-size:21px}html.theme--documenter-dark .file.is-boxed.is-small .file-icon .fa,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-boxed .file-icon .fa{font-size:14px}html.theme--documenter-dark .file.is-boxed.is-medium .file-icon .fa{font-size:28px}html.theme--documenter-dark .file.is-boxed.is-large .file-icon .fa{font-size:35px}html.theme--documenter-dark .file.is-boxed.has-name .file-cta{border-radius:.4em .4em 0 0}html.theme--documenter-dark .file.is-boxed.has-name .file-name{border-radius:0 0 .4em .4em;border-width:0 1px 1px}html.theme--documenter-dark .file.is-centered{justify-content:center}html.theme--documenter-dark .file.is-fullwidth .file-label{width:100%}html.theme--documenter-dark .file.is-fullwidth .file-name{flex-grow:1;max-width:none}html.theme--documenter-dark .file.is-right{justify-content:flex-end}html.theme--documenter-dark .file.is-right .file-cta{border-radius:0 .4em .4em 0}html.theme--documenter-dark .file.is-right .file-name{border-radius:.4em 0 0 .4em;border-width:1px 0 1px 1px;order:-1}html.theme--documenter-dark .file-label{align-items:stretch;display:flex;cursor:pointer;justify-content:flex-start;overflow:hidden;position:relative}html.theme--documenter-dark .file-label:hover .file-cta{background-color:#e5eaec;color:#282f2f}html.theme--documenter-dark .file-label:hover .file-name{border-color:#596668}html.theme--documenter-dark .file-label:active .file-cta{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .file-label:active .file-name{border-color:#535f61}html.theme--documenter-dark .file-input{height:100%;left:0;opacity:0;outline:none;position:absolute;top:0;width:100%}html.theme--documenter-dark .file-cta,html.theme--documenter-dark .file-name{border-color:#5e6d6f;border-radius:.4em;font-size:1em;padding-left:1em;padding-right:1em;white-space:nowrap}html.theme--documenter-dark .file-cta{background-color:#ecf0f1;color:#343c3d}html.theme--documenter-dark .file-name{border-color:#5e6d6f;border-style:solid;border-width:1px 1px 1px 0;display:block;max-width:16em;overflow:hidden;text-align:left;text-overflow:ellipsis}html.theme--documenter-dark .file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-right:0.5em;width:1em}html.theme--documenter-dark .file-icon .fa{font-size:14px}html.theme--documenter-dark .label{color:#282f2f;display:block;font-size:15px;font-weight:700}html.theme--documenter-dark .label:not(:last-child){margin-bottom:0.5em}html.theme--documenter-dark .label.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.label{font-size:.85em}html.theme--documenter-dark .label.is-medium{font-size:1.25rem}html.theme--documenter-dark .label.is-large{font-size:1.5rem}html.theme--documenter-dark .help{display:block;font-size:.85em;margin-top:0.25rem}html.theme--documenter-dark .help.is-white{color:#fff}html.theme--documenter-dark .help.is-black{color:#0a0a0a}html.theme--documenter-dark .help.is-light{color:#ecf0f1}html.theme--documenter-dark .help.is-dark,html.theme--documenter-dark .content kbd.help{color:#282f2f}html.theme--documenter-dark .help.is-primary,html.theme--documenter-dark .docstring>section>a.help.docs-sourcelink{color:#375a7f}html.theme--documenter-dark .help.is-link{color:#1abc9c}html.theme--documenter-dark .help.is-info{color:#024c7d}html.theme--documenter-dark .help.is-success{color:#008438}html.theme--documenter-dark .help.is-warning{color:#ad8100}html.theme--documenter-dark .help.is-danger{color:#9e1b0d}html.theme--documenter-dark .field:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .field.has-addons{display:flex;justify-content:flex-start}html.theme--documenter-dark .field.has-addons .control:not(:last-child){margin-right:-1px}html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .button,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .input,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .select select{border-radius:0}html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .button,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .input,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .select select{border-bottom-right-radius:0;border-top-right-radius:0}html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .button,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .input,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search>input,html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .select select{border-bottom-left-radius:0;border-top-left-radius:0}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .button.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-hovered:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-hovered:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select.is-hovered:not([disabled]){z-index:2}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]),html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus,html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]),html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active,html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]){z-index:3}html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus:hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active:hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]):hover,html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus:hover,html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]):hover,html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active:hover,html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]):hover{z-index:4}html.theme--documenter-dark .field.has-addons .control.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .field.has-addons.has-addons-centered{justify-content:center}html.theme--documenter-dark .field.has-addons.has-addons-right{justify-content:flex-end}html.theme--documenter-dark .field.has-addons.has-addons-fullwidth .control{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .field.is-grouped{display:flex;justify-content:flex-start}html.theme--documenter-dark .field.is-grouped>.control{flex-shrink:0}html.theme--documenter-dark .field.is-grouped>.control:not(:last-child){margin-bottom:0;margin-right:0.75rem}html.theme--documenter-dark .field.is-grouped>.control.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .field.is-grouped.is-grouped-centered{justify-content:center}html.theme--documenter-dark .field.is-grouped.is-grouped-right{justify-content:flex-end}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline{flex-wrap:wrap}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline>.control:last-child,html.theme--documenter-dark .field.is-grouped.is-grouped-multiline>.control:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:last-child{margin-bottom:-0.75rem}html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:not(:last-child){margin-bottom:0}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field.is-horizontal{display:flex}}html.theme--documenter-dark .field-label .label{font-size:inherit}@media screen and (max-width: 768px){html.theme--documenter-dark .field-label{margin-bottom:0.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field-label{flex-basis:0;flex-grow:1;flex-shrink:0;margin-right:1.5rem;text-align:right}html.theme--documenter-dark .field-label.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.field-label{font-size:.85em;padding-top:0.375em}html.theme--documenter-dark .field-label.is-normal{padding-top:0.375em}html.theme--documenter-dark .field-label.is-medium{font-size:1.25rem;padding-top:0.375em}html.theme--documenter-dark .field-label.is-large{font-size:1.5rem;padding-top:0.375em}}html.theme--documenter-dark .field-body .field .field{margin-bottom:0}@media screen and (min-width: 769px),print{html.theme--documenter-dark .field-body{display:flex;flex-basis:0;flex-grow:5;flex-shrink:1}html.theme--documenter-dark .field-body .field{margin-bottom:0}html.theme--documenter-dark .field-body>.field{flex-shrink:1}html.theme--documenter-dark .field-body>.field:not(.is-narrow){flex-grow:1}html.theme--documenter-dark .field-body>.field:not(:last-child){margin-right:0.75rem}}html.theme--documenter-dark .control{box-sizing:border-box;clear:both;font-size:15px;position:relative;text-align:left}html.theme--documenter-dark .control.has-icons-left .input:focus~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input:focus~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input:focus~.icon,html.theme--documenter-dark .control.has-icons-left .select:focus~.icon,html.theme--documenter-dark .control.has-icons-right .input:focus~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input:focus~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input:focus~.icon,html.theme--documenter-dark .control.has-icons-right .select:focus~.icon{color:#5e6d6f}html.theme--documenter-dark .control.has-icons-left .input.is-small~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-small~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-small~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-small~.icon{font-size:.85em}html.theme--documenter-dark .control.has-icons-left .input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-medium~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-medium~.icon{font-size:1.25rem}html.theme--documenter-dark .control.has-icons-left .input.is-large~.icon,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-large~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-large~.icon,html.theme--documenter-dark .control.has-icons-left .select.is-large~.icon,html.theme--documenter-dark .control.has-icons-right .input.is-large~.icon,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-large~.icon,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-large~.icon,html.theme--documenter-dark .control.has-icons-right .select.is-large~.icon{font-size:1.5rem}html.theme--documenter-dark .control.has-icons-left .icon,html.theme--documenter-dark .control.has-icons-right .icon{color:#dbdee0;height:2.25em;pointer-events:none;position:absolute;top:0;width:2.25em;z-index:4}html.theme--documenter-dark .control.has-icons-left .input,html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search>input,html.theme--documenter-dark .control.has-icons-left .select select{padding-left:2.25em}html.theme--documenter-dark .control.has-icons-left .icon.is-left{left:0}html.theme--documenter-dark .control.has-icons-right .input,html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search>input,html.theme--documenter-dark .control.has-icons-right .select select{padding-right:2.25em}html.theme--documenter-dark .control.has-icons-right .icon.is-right{right:0}html.theme--documenter-dark .control.is-loading::after{position:absolute !important;right:0.625em;top:0.625em;z-index:4}html.theme--documenter-dark .control.is-loading.is-small:after,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.85em}html.theme--documenter-dark .control.is-loading.is-medium:after{font-size:1.25rem}html.theme--documenter-dark .control.is-loading.is-large:after{font-size:1.5rem}html.theme--documenter-dark .breadcrumb{font-size:15px;white-space:nowrap}html.theme--documenter-dark .breadcrumb a{align-items:center;color:#1abc9c;display:flex;justify-content:center;padding:0 .75em}html.theme--documenter-dark .breadcrumb a:hover{color:#1dd2af}html.theme--documenter-dark .breadcrumb li{align-items:center;display:flex}html.theme--documenter-dark .breadcrumb li:first-child a{padding-left:0}html.theme--documenter-dark .breadcrumb li.is-active a{color:#f2f2f2;cursor:default;pointer-events:none}html.theme--documenter-dark .breadcrumb li+li::before{color:#8c9b9d;content:"\0002f"}html.theme--documenter-dark .breadcrumb ul,html.theme--documenter-dark .breadcrumb ol{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start}html.theme--documenter-dark .breadcrumb .icon:first-child{margin-right:0.5em}html.theme--documenter-dark .breadcrumb .icon:last-child{margin-left:0.5em}html.theme--documenter-dark .breadcrumb.is-centered ol,html.theme--documenter-dark .breadcrumb.is-centered ul{justify-content:center}html.theme--documenter-dark .breadcrumb.is-right ol,html.theme--documenter-dark .breadcrumb.is-right ul{justify-content:flex-end}html.theme--documenter-dark .breadcrumb.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.breadcrumb{font-size:.85em}html.theme--documenter-dark .breadcrumb.is-medium{font-size:1.25rem}html.theme--documenter-dark .breadcrumb.is-large{font-size:1.5rem}html.theme--documenter-dark .breadcrumb.has-arrow-separator li+li::before{content:"\02192"}html.theme--documenter-dark .breadcrumb.has-bullet-separator li+li::before{content:"\02022"}html.theme--documenter-dark .breadcrumb.has-dot-separator li+li::before{content:"\000b7"}html.theme--documenter-dark .breadcrumb.has-succeeds-separator li+li::before{content:"\0227B"}html.theme--documenter-dark .card{background-color:#fff;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);color:#fff;max-width:100%;position:relative}html.theme--documenter-dark .card-header{background-color:rgba(0,0,0,0);align-items:stretch;box-shadow:0 1px 2px rgba(10,10,10,0.1);display:flex}html.theme--documenter-dark .card-header-title{align-items:center;color:#f2f2f2;display:flex;flex-grow:1;font-weight:700;padding:.75rem}html.theme--documenter-dark .card-header-title.is-centered{justify-content:center}html.theme--documenter-dark .card-header-icon{align-items:center;cursor:pointer;display:flex;justify-content:center;padding:.75rem}html.theme--documenter-dark .card-image{display:block;position:relative}html.theme--documenter-dark .card-content{background-color:rgba(0,0,0,0);padding:1.5rem}html.theme--documenter-dark .card-footer{background-color:rgba(0,0,0,0);border-top:1px solid #5e6d6f;align-items:stretch;display:flex}html.theme--documenter-dark .card-footer-item{align-items:center;display:flex;flex-basis:0;flex-grow:1;flex-shrink:0;justify-content:center;padding:.75rem}html.theme--documenter-dark .card-footer-item:not(:last-child){border-right:1px solid #5e6d6f}html.theme--documenter-dark .card .media:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .dropdown{display:inline-flex;position:relative;vertical-align:top}html.theme--documenter-dark .dropdown.is-active .dropdown-menu,html.theme--documenter-dark .dropdown.is-hoverable:hover .dropdown-menu{display:block}html.theme--documenter-dark .dropdown.is-right .dropdown-menu{left:auto;right:0}html.theme--documenter-dark .dropdown.is-up .dropdown-menu{bottom:100%;padding-bottom:4px;padding-top:initial;top:auto}html.theme--documenter-dark .dropdown-menu{display:none;left:0;min-width:12rem;padding-top:4px;position:absolute;top:100%;z-index:20}html.theme--documenter-dark .dropdown-content{background-color:#282f2f;border-radius:.4em;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);padding-bottom:.5rem;padding-top:.5rem}html.theme--documenter-dark .dropdown-item{color:#fff;display:block;font-size:0.875rem;line-height:1.5;padding:0.375rem 1rem;position:relative}html.theme--documenter-dark a.dropdown-item,html.theme--documenter-dark button.dropdown-item{padding-right:3rem;text-align:left;white-space:nowrap;width:100%}html.theme--documenter-dark a.dropdown-item:hover,html.theme--documenter-dark button.dropdown-item:hover{background-color:#282f2f;color:#0a0a0a}html.theme--documenter-dark a.dropdown-item.is-active,html.theme--documenter-dark button.dropdown-item.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .dropdown-divider{background-color:#5e6d6f;border:none;display:block;height:1px;margin:0.5rem 0}html.theme--documenter-dark .level{align-items:center;justify-content:space-between}html.theme--documenter-dark .level code{border-radius:.4em}html.theme--documenter-dark .level img{display:inline-block;vertical-align:top}html.theme--documenter-dark .level.is-mobile{display:flex}html.theme--documenter-dark .level.is-mobile .level-left,html.theme--documenter-dark .level.is-mobile .level-right{display:flex}html.theme--documenter-dark .level.is-mobile .level-left+.level-right{margin-top:0}html.theme--documenter-dark .level.is-mobile .level-item:not(:last-child){margin-bottom:0;margin-right:.75rem}html.theme--documenter-dark .level.is-mobile .level-item:not(.is-narrow){flex-grow:1}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level{display:flex}html.theme--documenter-dark .level>.level-item:not(.is-narrow){flex-grow:1}}html.theme--documenter-dark .level-item{align-items:center;display:flex;flex-basis:auto;flex-grow:0;flex-shrink:0;justify-content:center}html.theme--documenter-dark .level-item .title,html.theme--documenter-dark .level-item .subtitle{margin-bottom:0}@media screen and (max-width: 768px){html.theme--documenter-dark .level-item:not(:last-child){margin-bottom:.75rem}}html.theme--documenter-dark .level-left,html.theme--documenter-dark .level-right{flex-basis:auto;flex-grow:0;flex-shrink:0}html.theme--documenter-dark .level-left .level-item.is-flexible,html.theme--documenter-dark .level-right .level-item.is-flexible{flex-grow:1}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-left .level-item:not(:last-child),html.theme--documenter-dark .level-right .level-item:not(:last-child){margin-right:.75rem}}html.theme--documenter-dark .level-left{align-items:center;justify-content:flex-start}@media screen and (max-width: 768px){html.theme--documenter-dark .level-left+.level-right{margin-top:1.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-left{display:flex}}html.theme--documenter-dark .level-right{align-items:center;justify-content:flex-end}@media screen and (min-width: 769px),print{html.theme--documenter-dark .level-right{display:flex}}html.theme--documenter-dark .list{background-color:#fff;border-radius:.4em;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1)}html.theme--documenter-dark .list-item{display:block;padding:0.5em 1em}html.theme--documenter-dark .list-item:not(a){color:#fff}html.theme--documenter-dark .list-item:first-child{border-top-left-radius:.4em;border-top-right-radius:.4em}html.theme--documenter-dark .list-item:last-child{border-bottom-left-radius:.4em;border-bottom-right-radius:.4em}html.theme--documenter-dark .list-item:not(:last-child){border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .list-item.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark a.list-item{background-color:#282f2f;cursor:pointer}html.theme--documenter-dark .media{align-items:flex-start;display:flex;text-align:left}html.theme--documenter-dark .media .content:not(:last-child){margin-bottom:0.75rem}html.theme--documenter-dark .media .media{border-top:1px solid rgba(94,109,111,0.5);display:flex;padding-top:0.75rem}html.theme--documenter-dark .media .media .content:not(:last-child),html.theme--documenter-dark .media .media .control:not(:last-child){margin-bottom:0.5rem}html.theme--documenter-dark .media .media .media{padding-top:0.5rem}html.theme--documenter-dark .media .media .media+.media{margin-top:0.5rem}html.theme--documenter-dark .media+.media{border-top:1px solid rgba(94,109,111,0.5);margin-top:1rem;padding-top:1rem}html.theme--documenter-dark .media.is-large+.media{margin-top:1.5rem;padding-top:1.5rem}html.theme--documenter-dark .media-left,html.theme--documenter-dark .media-right{flex-basis:auto;flex-grow:0;flex-shrink:0}html.theme--documenter-dark .media-left{margin-right:1rem}html.theme--documenter-dark .media-right{margin-left:1rem}html.theme--documenter-dark .media-content{flex-basis:auto;flex-grow:1;flex-shrink:1;text-align:left}@media screen and (max-width: 768px){html.theme--documenter-dark .media-content{overflow-x:auto}}html.theme--documenter-dark .menu{font-size:15px}html.theme--documenter-dark .menu.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.menu{font-size:.85em}html.theme--documenter-dark .menu.is-medium{font-size:1.25rem}html.theme--documenter-dark .menu.is-large{font-size:1.5rem}html.theme--documenter-dark .menu-list{line-height:1.25}html.theme--documenter-dark .menu-list a{border-radius:3px;color:#fff;display:block;padding:0.5em 0.75em}html.theme--documenter-dark .menu-list a:hover{background-color:#282f2f;color:#f2f2f2}html.theme--documenter-dark .menu-list a.is-active{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .menu-list li ul{border-left:1px solid #5e6d6f;margin:.75em;padding-left:.75em}html.theme--documenter-dark .menu-label{color:#fff;font-size:.75em;letter-spacing:.1em;text-transform:uppercase}html.theme--documenter-dark .menu-label:not(:first-child){margin-top:1em}html.theme--documenter-dark .menu-label:not(:last-child){margin-bottom:1em}html.theme--documenter-dark .message{background-color:#282f2f;border-radius:.4em;font-size:15px}html.theme--documenter-dark .message strong{color:currentColor}html.theme--documenter-dark .message a:not(.button):not(.tag):not(.dropdown-item){color:currentColor;text-decoration:underline}html.theme--documenter-dark .message.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.message{font-size:.85em}html.theme--documenter-dark .message.is-medium{font-size:1.25rem}html.theme--documenter-dark .message.is-large{font-size:1.5rem}html.theme--documenter-dark .message.is-white{background-color:#fff}html.theme--documenter-dark .message.is-white .message-header{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .message.is-white .message-body{border-color:#fff;color:#4d4d4d}html.theme--documenter-dark .message.is-black{background-color:#fafafa}html.theme--documenter-dark .message.is-black .message-header{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .message.is-black .message-body{border-color:#0a0a0a;color:#090909}html.theme--documenter-dark .message.is-light{background-color:#f9fafb}html.theme--documenter-dark .message.is-light .message-header{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .message.is-light .message-body{border-color:#ecf0f1;color:#505050}html.theme--documenter-dark .message.is-dark,html.theme--documenter-dark .content kbd.message{background-color:#f9fafa}html.theme--documenter-dark .message.is-dark .message-header,html.theme--documenter-dark .content kbd.message .message-header{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .message.is-dark .message-body,html.theme--documenter-dark .content kbd.message .message-body{border-color:#282f2f;color:#212526}html.theme--documenter-dark .message.is-primary,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink{background-color:#f8fafc}html.theme--documenter-dark .message.is-primary .message-header,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink .message-header{background-color:#375a7f;color:#fff}html.theme--documenter-dark .message.is-primary .message-body,html.theme--documenter-dark .docstring>section>a.message.docs-sourcelink .message-body{border-color:#375a7f;color:#2b4159}html.theme--documenter-dark .message.is-link{background-color:#f6fefc}html.theme--documenter-dark .message.is-link .message-header{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .message.is-link .message-body{border-color:#1abc9c;color:#0b2f28}html.theme--documenter-dark .message.is-info{background-color:#f5fbff}html.theme--documenter-dark .message.is-info .message-header{background-color:#024c7d;color:#fff}html.theme--documenter-dark .message.is-info .message-body{border-color:#024c7d;color:#033659}html.theme--documenter-dark .message.is-success{background-color:#f5fff9}html.theme--documenter-dark .message.is-success .message-header{background-color:#008438;color:#fff}html.theme--documenter-dark .message.is-success .message-body{border-color:#008438;color:#023518}html.theme--documenter-dark .message.is-warning{background-color:#fffcf5}html.theme--documenter-dark .message.is-warning .message-header{background-color:#ad8100;color:#fff}html.theme--documenter-dark .message.is-warning .message-body{border-color:#ad8100;color:#3d2e03}html.theme--documenter-dark .message.is-danger{background-color:#fef6f6}html.theme--documenter-dark .message.is-danger .message-header{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .message.is-danger .message-body{border-color:#9e1b0d;color:#7a170c}html.theme--documenter-dark .message-header{align-items:center;background-color:#fff;border-radius:.4em .4em 0 0;color:rgba(0,0,0,0.7);display:flex;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.75em 1em;position:relative}html.theme--documenter-dark .message-header .delete{flex-grow:0;flex-shrink:0;margin-left:0.75em}html.theme--documenter-dark .message-header+.message-body{border-width:0;border-top-left-radius:0;border-top-right-radius:0}html.theme--documenter-dark .message-body{border-color:#5e6d6f;border-radius:.4em;border-style:solid;border-width:0 0 0 4px;color:#fff;padding:1.25em 1.5em}html.theme--documenter-dark .message-body code,html.theme--documenter-dark .message-body pre{background-color:#fff}html.theme--documenter-dark .message-body pre code{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .modal{align-items:center;display:none;flex-direction:column;justify-content:center;overflow:hidden;position:fixed;z-index:40}html.theme--documenter-dark .modal.is-active{display:flex}html.theme--documenter-dark .modal-background{background-color:rgba(10,10,10,0.86)}html.theme--documenter-dark .modal-content,html.theme--documenter-dark .modal-card{margin:0 20px;max-height:calc(100vh - 160px);overflow:auto;position:relative;width:100%}@media screen and (min-width: 769px),print{html.theme--documenter-dark .modal-content,html.theme--documenter-dark .modal-card{margin:0 auto;max-height:calc(100vh - 40px);width:640px}}html.theme--documenter-dark .modal-close{background:none;height:40px;position:fixed;right:20px;top:20px;width:40px}html.theme--documenter-dark .modal-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden;-ms-overflow-y:visible}html.theme--documenter-dark .modal-card-head,html.theme--documenter-dark .modal-card-foot{align-items:center;background-color:#282f2f;display:flex;flex-shrink:0;justify-content:flex-start;padding:20px;position:relative}html.theme--documenter-dark .modal-card-head{border-bottom:1px solid #5e6d6f;border-top-left-radius:8px;border-top-right-radius:8px}html.theme--documenter-dark .modal-card-title{color:#f2f2f2;flex-grow:1;flex-shrink:0;font-size:1.5rem;line-height:1}html.theme--documenter-dark .modal-card-foot{border-bottom-left-radius:8px;border-bottom-right-radius:8px;border-top:1px solid #5e6d6f}html.theme--documenter-dark .modal-card-foot .button:not(:last-child){margin-right:0.5em}html.theme--documenter-dark .modal-card-body{-webkit-overflow-scrolling:touch;background-color:#fff;flex-grow:1;flex-shrink:1;overflow:auto;padding:20px}html.theme--documenter-dark .navbar{background-color:#375a7f;min-height:4rem;position:relative;z-index:30}html.theme--documenter-dark .navbar.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link{color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-brand .navbar-link::after{border-color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-burger{color:#0a0a0a}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-white .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link{color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-white .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-white .navbar-end .navbar-link::after{border-color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .navbar.is-white .navbar-dropdown a.navbar-item.is-active{background-color:#fff;color:#0a0a0a}}html.theme--documenter-dark .navbar.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-black .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-black .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-black .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link{background-color:#000;color:#fff}html.theme--documenter-dark .navbar.is-black .navbar-dropdown a.navbar-item.is-active{background-color:#0a0a0a;color:#fff}}html.theme--documenter-dark .navbar.is-light{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link{color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link.is-active{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link::after{border-color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-burger{color:#282f2f}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-light .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link{color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-light .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link.is-active{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link::after{border-color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#ecf0f1;color:#282f2f}}html.theme--documenter-dark .navbar.is-dark,html.theme--documenter-dark .content kbd.navbar{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-brand>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link{color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link.is-active{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link::after{border-color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-burger,html.theme--documenter-dark .content kbd.navbar .navbar-burger{color:#ecf0f1}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-dark .navbar-start>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-end>.navbar-item,html.theme--documenter-dark .content kbd.navbar .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link{color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-dark .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:focus,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:hover,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link.is-active{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link::after,html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link::after{border-color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .navbar.is-dark .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .content kbd.navbar .navbar-dropdown a.navbar-item.is-active{background-color:#282f2f;color:#ecf0f1}}html.theme--documenter-dark .navbar.is-primary,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-burger,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-primary .navbar-start>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-end>.navbar-item,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-primary .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:focus,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link::after,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#375a7f;color:#fff}}html.theme--documenter-dark .navbar.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-link .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-link .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link{background-color:#17a689;color:#fff}html.theme--documenter-dark .navbar.is-link .navbar-dropdown a.navbar-item.is-active{background-color:#1abc9c;color:#fff}}html.theme--documenter-dark .navbar.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-info .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-info .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link{background-color:#023d64;color:#fff}html.theme--documenter-dark .navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#024c7d;color:#fff}}html.theme--documenter-dark .navbar.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-success .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-success .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link{background-color:#006b2d;color:#fff}html.theme--documenter-dark .navbar.is-success .navbar-dropdown a.navbar-item.is-active{background-color:#008438;color:#fff}}html.theme--documenter-dark .navbar.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-warning .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-warning .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link{background-color:#946e00;color:#fff}html.theme--documenter-dark .navbar.is-warning .navbar-dropdown a.navbar-item.is-active{background-color:#ad8100;color:#fff}}html.theme--documenter-dark .navbar.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-brand>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-burger{color:#fff}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar.is-danger .navbar-start>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-end>.navbar-item,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link{color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-start>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item:focus,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item:hover,html.theme--documenter-dark .navbar.is-danger .navbar-end>a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:focus,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:hover,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link::after,html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link::after{border-color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link{background-color:#86170b;color:#fff}html.theme--documenter-dark .navbar.is-danger .navbar-dropdown a.navbar-item.is-active{background-color:#9e1b0d;color:#fff}}html.theme--documenter-dark .navbar>.container{align-items:stretch;display:flex;min-height:4rem;width:100%}html.theme--documenter-dark .navbar.has-shadow{box-shadow:0 2px 0 0 #282f2f}html.theme--documenter-dark .navbar.is-fixed-bottom,html.theme--documenter-dark .navbar.is-fixed-top{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom.has-shadow{box-shadow:0 -2px 0 0 #282f2f}html.theme--documenter-dark .navbar.is-fixed-top{top:0}html.theme--documenter-dark html.has-navbar-fixed-top,html.theme--documenter-dark body.has-navbar-fixed-top{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom,html.theme--documenter-dark body.has-navbar-fixed-bottom{padding-bottom:4rem}html.theme--documenter-dark .navbar-brand,html.theme--documenter-dark .navbar-tabs{align-items:stretch;display:flex;flex-shrink:0;min-height:4rem}html.theme--documenter-dark .navbar-brand a.navbar-item:focus,html.theme--documenter-dark .navbar-brand a.navbar-item:hover{background-color:transparent}html.theme--documenter-dark .navbar-tabs{-webkit-overflow-scrolling:touch;max-width:100vw;overflow-x:auto;overflow-y:hidden}html.theme--documenter-dark .navbar-burger{color:#fff;cursor:pointer;display:block;height:4rem;position:relative;width:4rem;margin-left:auto}html.theme--documenter-dark .navbar-burger span{background-color:currentColor;display:block;height:1px;left:calc(50% - 8px);position:absolute;transform-origin:center;transition-duration:86ms;transition-property:background-color, opacity, transform;transition-timing-function:ease-out;width:16px}html.theme--documenter-dark .navbar-burger span:nth-child(1){top:calc(50% - 6px)}html.theme--documenter-dark .navbar-burger span:nth-child(2){top:calc(50% - 1px)}html.theme--documenter-dark .navbar-burger span:nth-child(3){top:calc(50% + 4px)}html.theme--documenter-dark .navbar-burger:hover{background-color:rgba(0,0,0,0.05)}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(1){transform:translateY(5px) rotate(45deg)}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(2){opacity:0}html.theme--documenter-dark .navbar-burger.is-active span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}html.theme--documenter-dark .navbar-menu{display:none}html.theme--documenter-dark .navbar-item,html.theme--documenter-dark .navbar-link{color:#fff;display:block;line-height:1.5;padding:0.5rem 0.75rem;position:relative}html.theme--documenter-dark .navbar-item .icon:only-child,html.theme--documenter-dark .navbar-link .icon:only-child{margin-left:-0.25rem;margin-right:-0.25rem}html.theme--documenter-dark a.navbar-item,html.theme--documenter-dark .navbar-link{cursor:pointer}html.theme--documenter-dark a.navbar-item:focus,html.theme--documenter-dark a.navbar-item:focus-within,html.theme--documenter-dark a.navbar-item:hover,html.theme--documenter-dark a.navbar-item.is-active,html.theme--documenter-dark .navbar-link:focus,html.theme--documenter-dark .navbar-link:focus-within,html.theme--documenter-dark .navbar-link:hover,html.theme--documenter-dark .navbar-link.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}html.theme--documenter-dark .navbar-item{display:block;flex-grow:0;flex-shrink:0}html.theme--documenter-dark .navbar-item img{max-height:1.75rem}html.theme--documenter-dark .navbar-item.has-dropdown{padding:0}html.theme--documenter-dark .navbar-item.is-expanded{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .navbar-item.is-tab{border-bottom:1px solid transparent;min-height:4rem;padding-bottom:calc(0.5rem - 1px)}html.theme--documenter-dark .navbar-item.is-tab:focus,html.theme--documenter-dark .navbar-item.is-tab:hover{background-color:rgba(0,0,0,0);border-bottom-color:#1abc9c}html.theme--documenter-dark .navbar-item.is-tab.is-active{background-color:rgba(0,0,0,0);border-bottom-color:#1abc9c;border-bottom-style:solid;border-bottom-width:3px;color:#1abc9c;padding-bottom:calc(0.5rem - 3px)}html.theme--documenter-dark .navbar-content{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .navbar-link:not(.is-arrowless){padding-right:2.5em}html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after{border-color:#fff;margin-top:-0.375em;right:1.125em}html.theme--documenter-dark .navbar-dropdown{font-size:0.875rem;padding-bottom:0.5rem;padding-top:0.5rem}html.theme--documenter-dark .navbar-dropdown .navbar-item{padding-left:1.5rem;padding-right:1.5rem}html.theme--documenter-dark .navbar-divider{background-color:rgba(0,0,0,0.2);border:none;display:none;height:2px;margin:0.5rem 0}@media screen and (max-width: 1055px){html.theme--documenter-dark .navbar>.container{display:block}html.theme--documenter-dark .navbar-brand .navbar-item,html.theme--documenter-dark .navbar-tabs .navbar-item{align-items:center;display:flex}html.theme--documenter-dark .navbar-link::after{display:none}html.theme--documenter-dark .navbar-menu{background-color:#375a7f;box-shadow:0 8px 16px rgba(10,10,10,0.1);padding:0.5rem 0}html.theme--documenter-dark .navbar-menu.is-active{display:block}html.theme--documenter-dark .navbar.is-fixed-bottom-touch,html.theme--documenter-dark .navbar.is-fixed-top-touch{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom-touch{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom-touch.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}html.theme--documenter-dark .navbar.is-fixed-top-touch{top:0}html.theme--documenter-dark .navbar.is-fixed-top .navbar-menu,html.theme--documenter-dark .navbar.is-fixed-top-touch .navbar-menu{-webkit-overflow-scrolling:touch;max-height:calc(100vh - 4rem);overflow:auto}html.theme--documenter-dark html.has-navbar-fixed-top-touch,html.theme--documenter-dark body.has-navbar-fixed-top-touch{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom-touch,html.theme--documenter-dark body.has-navbar-fixed-bottom-touch{padding-bottom:4rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .navbar,html.theme--documenter-dark .navbar-menu,html.theme--documenter-dark .navbar-start,html.theme--documenter-dark .navbar-end{align-items:stretch;display:flex}html.theme--documenter-dark .navbar{min-height:4rem}html.theme--documenter-dark .navbar.is-spaced{padding:1rem 2rem}html.theme--documenter-dark .navbar.is-spaced .navbar-start,html.theme--documenter-dark .navbar.is-spaced .navbar-end{align-items:center}html.theme--documenter-dark .navbar.is-spaced a.navbar-item,html.theme--documenter-dark .navbar.is-spaced .navbar-link{border-radius:.4em}html.theme--documenter-dark .navbar.is-transparent a.navbar-item:focus,html.theme--documenter-dark .navbar.is-transparent a.navbar-item:hover,html.theme--documenter-dark .navbar.is-transparent a.navbar-item.is-active,html.theme--documenter-dark .navbar.is-transparent .navbar-link:focus,html.theme--documenter-dark .navbar.is-transparent .navbar-link:hover,html.theme--documenter-dark .navbar.is-transparent .navbar-link.is-active{background-color:transparent !important}html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link,html.theme--documenter-dark .navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link{background-color:transparent !important}html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:focus,html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item:hover{background-color:rgba(0,0,0,0);color:#dbdee0}html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}html.theme--documenter-dark .navbar-burger{display:none}html.theme--documenter-dark .navbar-item,html.theme--documenter-dark .navbar-link{align-items:center;display:flex}html.theme--documenter-dark .navbar-item{display:flex}html.theme--documenter-dark .navbar-item.has-dropdown{align-items:stretch}html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-link::after{transform:rotate(135deg) translate(0.25em, -0.25em)}html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-dropdown{border-bottom:1px solid rgba(0,0,0,0.2);border-radius:8px 8px 0 0;border-top:none;bottom:100%;box-shadow:0 -8px 8px rgba(10,10,10,0.1);top:auto}html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown{display:block}.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed,.navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown,html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed{opacity:1;pointer-events:auto;transform:translateY(0)}html.theme--documenter-dark .navbar-menu{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .navbar-start{justify-content:flex-start;margin-right:auto}html.theme--documenter-dark .navbar-end{justify-content:flex-end;margin-left:auto}html.theme--documenter-dark .navbar-dropdown{background-color:#375a7f;border-bottom-left-radius:8px;border-bottom-right-radius:8px;border-top:1px solid rgba(0,0,0,0.2);box-shadow:0 8px 8px rgba(10,10,10,0.1);display:none;font-size:0.875rem;left:0;min-width:100%;position:absolute;top:100%;z-index:20}html.theme--documenter-dark .navbar-dropdown .navbar-item{padding:0.375rem 1rem;white-space:nowrap}html.theme--documenter-dark .navbar-dropdown a.navbar-item{padding-right:3rem}html.theme--documenter-dark .navbar-dropdown a.navbar-item:focus,html.theme--documenter-dark .navbar-dropdown a.navbar-item:hover{background-color:rgba(0,0,0,0);color:#dbdee0}html.theme--documenter-dark .navbar-dropdown a.navbar-item.is-active{background-color:rgba(0,0,0,0);color:#1abc9c}.navbar.is-spaced html.theme--documenter-dark .navbar-dropdown,html.theme--documenter-dark .navbar-dropdown.is-boxed{border-radius:8px;border-top:none;box-shadow:0 8px 8px rgba(10,10,10,0.1), 0 0 0 1px rgba(10,10,10,0.1);display:block;opacity:0;pointer-events:none;top:calc(100% + (-4px));transform:translateY(-5px);transition-duration:86ms;transition-property:opacity, transform}html.theme--documenter-dark .navbar-dropdown.is-right{left:auto;right:0}html.theme--documenter-dark .navbar-divider{display:block}html.theme--documenter-dark .navbar>.container .navbar-brand,html.theme--documenter-dark .container>.navbar .navbar-brand{margin-left:-.75rem}html.theme--documenter-dark .navbar>.container .navbar-menu,html.theme--documenter-dark .container>.navbar .navbar-menu{margin-right:-.75rem}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop,html.theme--documenter-dark .navbar.is-fixed-top-desktop{left:0;position:fixed;right:0;z-index:30}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop{bottom:0}html.theme--documenter-dark .navbar.is-fixed-bottom-desktop.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}html.theme--documenter-dark .navbar.is-fixed-top-desktop{top:0}html.theme--documenter-dark html.has-navbar-fixed-top-desktop,html.theme--documenter-dark body.has-navbar-fixed-top-desktop{padding-top:4rem}html.theme--documenter-dark html.has-navbar-fixed-bottom-desktop,html.theme--documenter-dark body.has-navbar-fixed-bottom-desktop{padding-bottom:4rem}html.theme--documenter-dark html.has-spaced-navbar-fixed-top,html.theme--documenter-dark body.has-spaced-navbar-fixed-top{padding-top:6rem}html.theme--documenter-dark html.has-spaced-navbar-fixed-bottom,html.theme--documenter-dark body.has-spaced-navbar-fixed-bottom{padding-bottom:6rem}html.theme--documenter-dark a.navbar-item.is-active,html.theme--documenter-dark .navbar-link.is-active{color:#1abc9c}html.theme--documenter-dark a.navbar-item.is-active:not(:focus):not(:hover),html.theme--documenter-dark .navbar-link.is-active:not(:focus):not(:hover){background-color:rgba(0,0,0,0)}html.theme--documenter-dark .navbar-item.has-dropdown:focus .navbar-link,html.theme--documenter-dark .navbar-item.has-dropdown:hover .navbar-link,html.theme--documenter-dark .navbar-item.has-dropdown.is-active .navbar-link{background-color:rgba(0,0,0,0)}}html.theme--documenter-dark .hero.is-fullheight-with-navbar{min-height:calc(100vh - 4rem)}html.theme--documenter-dark .pagination{font-size:15px;margin:-.25rem}html.theme--documenter-dark .pagination.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination{font-size:.85em}html.theme--documenter-dark .pagination.is-medium{font-size:1.25rem}html.theme--documenter-dark .pagination.is-large{font-size:1.5rem}html.theme--documenter-dark .pagination.is-rounded .pagination-previous,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-previous,html.theme--documenter-dark .pagination.is-rounded .pagination-next,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-next{padding-left:1em;padding-right:1em;border-radius:290486px}html.theme--documenter-dark .pagination.is-rounded .pagination-link,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.pagination .pagination-link{border-radius:290486px}html.theme--documenter-dark .pagination,html.theme--documenter-dark .pagination-list{align-items:center;display:flex;justify-content:center;text-align:center}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-ellipsis{font-size:1em;justify-content:center;margin:.25rem;padding-left:.5em;padding-right:.5em;text-align:center}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-link{border-color:#5e6d6f;color:#1abc9c;min-width:2.25em}html.theme--documenter-dark .pagination-previous:hover,html.theme--documenter-dark .pagination-next:hover,html.theme--documenter-dark .pagination-link:hover{border-color:#8c9b9d;color:#1dd2af}html.theme--documenter-dark .pagination-previous:focus,html.theme--documenter-dark .pagination-next:focus,html.theme--documenter-dark .pagination-link:focus{border-color:#8c9b9d}html.theme--documenter-dark .pagination-previous:active,html.theme--documenter-dark .pagination-next:active,html.theme--documenter-dark .pagination-link:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2)}html.theme--documenter-dark .pagination-previous[disabled],html.theme--documenter-dark .pagination-next[disabled],html.theme--documenter-dark .pagination-link[disabled]{background-color:#dbdee0;border-color:#dbdee0;box-shadow:none;color:#5e6d6f;opacity:0.5}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next{padding-left:0.75em;padding-right:0.75em;white-space:nowrap}html.theme--documenter-dark .pagination-link.is-current{background-color:#1abc9c;border-color:#1abc9c;color:#fff}html.theme--documenter-dark .pagination-ellipsis{color:#8c9b9d;pointer-events:none}html.theme--documenter-dark .pagination-list{flex-wrap:wrap}@media screen and (max-width: 768px){html.theme--documenter-dark .pagination{flex-wrap:wrap}html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .pagination-next{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .pagination-list li{flex-grow:1;flex-shrink:1}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .pagination-list{flex-grow:1;flex-shrink:1;justify-content:flex-start;order:1}html.theme--documenter-dark .pagination-previous{order:2}html.theme--documenter-dark .pagination-next{order:3}html.theme--documenter-dark .pagination{justify-content:space-between}html.theme--documenter-dark .pagination.is-centered .pagination-previous{order:1}html.theme--documenter-dark .pagination.is-centered .pagination-list{justify-content:center;order:2}html.theme--documenter-dark .pagination.is-centered .pagination-next{order:3}html.theme--documenter-dark .pagination.is-right .pagination-previous{order:1}html.theme--documenter-dark .pagination.is-right .pagination-next{order:2}html.theme--documenter-dark .pagination.is-right .pagination-list{justify-content:flex-end;order:3}}html.theme--documenter-dark .panel{font-size:15px}html.theme--documenter-dark .panel:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .panel-heading,html.theme--documenter-dark .panel-tabs,html.theme--documenter-dark .panel-block{border-bottom:1px solid #5e6d6f;border-left:1px solid #5e6d6f;border-right:1px solid #5e6d6f}html.theme--documenter-dark .panel-heading:first-child,html.theme--documenter-dark .panel-tabs:first-child,html.theme--documenter-dark .panel-block:first-child{border-top:1px solid #5e6d6f}html.theme--documenter-dark .panel-heading{background-color:#282f2f;border-radius:.4em .4em 0 0;color:#f2f2f2;font-size:1.25em;font-weight:300;line-height:1.25;padding:0.5em 0.75em}html.theme--documenter-dark .panel-tabs{align-items:flex-end;display:flex;font-size:.875em;justify-content:center}html.theme--documenter-dark .panel-tabs a{border-bottom:1px solid #5e6d6f;margin-bottom:-1px;padding:0.5em}html.theme--documenter-dark .panel-tabs a.is-active{border-bottom-color:#343c3d;color:#17a689}html.theme--documenter-dark .panel-list a{color:#fff}html.theme--documenter-dark .panel-list a:hover{color:#1abc9c}html.theme--documenter-dark .panel-block{align-items:center;color:#f2f2f2;display:flex;justify-content:flex-start;padding:0.5em 0.75em}html.theme--documenter-dark .panel-block input[type="checkbox"]{margin-right:0.75em}html.theme--documenter-dark .panel-block>.control{flex-grow:1;flex-shrink:1;width:100%}html.theme--documenter-dark .panel-block.is-wrapped{flex-wrap:wrap}html.theme--documenter-dark .panel-block.is-active{border-left-color:#1abc9c;color:#17a689}html.theme--documenter-dark .panel-block.is-active .panel-icon{color:#1abc9c}html.theme--documenter-dark a.panel-block,html.theme--documenter-dark label.panel-block{cursor:pointer}html.theme--documenter-dark a.panel-block:hover,html.theme--documenter-dark label.panel-block:hover{background-color:#282f2f}html.theme--documenter-dark .panel-icon{display:inline-block;font-size:14px;height:1em;line-height:1em;text-align:center;vertical-align:top;width:1em;color:#fff;margin-right:0.75em}html.theme--documenter-dark .panel-icon .fa{font-size:inherit;line-height:inherit}html.theme--documenter-dark .tabs{-webkit-overflow-scrolling:touch;align-items:stretch;display:flex;font-size:15px;justify-content:space-between;overflow:hidden;overflow-x:auto;white-space:nowrap}html.theme--documenter-dark .tabs a{align-items:center;border-bottom-color:#5e6d6f;border-bottom-style:solid;border-bottom-width:1px;color:#fff;display:flex;justify-content:center;margin-bottom:-1px;padding:0.5em 1em;vertical-align:top}html.theme--documenter-dark .tabs a:hover{border-bottom-color:#f2f2f2;color:#f2f2f2}html.theme--documenter-dark .tabs li{display:block}html.theme--documenter-dark .tabs li.is-active a{border-bottom-color:#1abc9c;color:#1abc9c}html.theme--documenter-dark .tabs ul{align-items:center;border-bottom-color:#5e6d6f;border-bottom-style:solid;border-bottom-width:1px;display:flex;flex-grow:1;flex-shrink:0;justify-content:flex-start}html.theme--documenter-dark .tabs ul.is-left{padding-right:0.75em}html.theme--documenter-dark .tabs ul.is-center{flex:none;justify-content:center;padding-left:0.75em;padding-right:0.75em}html.theme--documenter-dark .tabs ul.is-right{justify-content:flex-end;padding-left:0.75em}html.theme--documenter-dark .tabs .icon:first-child{margin-right:0.5em}html.theme--documenter-dark .tabs .icon:last-child{margin-left:0.5em}html.theme--documenter-dark .tabs.is-centered ul{justify-content:center}html.theme--documenter-dark .tabs.is-right ul{justify-content:flex-end}html.theme--documenter-dark .tabs.is-boxed a{border:1px solid transparent;border-radius:.4em .4em 0 0}html.theme--documenter-dark .tabs.is-boxed a:hover{background-color:#282f2f;border-bottom-color:#5e6d6f}html.theme--documenter-dark .tabs.is-boxed li.is-active a{background-color:#fff;border-color:#5e6d6f;border-bottom-color:rgba(0,0,0,0) !important}html.theme--documenter-dark .tabs.is-fullwidth li{flex-grow:1;flex-shrink:0}html.theme--documenter-dark .tabs.is-toggle a{border-color:#5e6d6f;border-style:solid;border-width:1px;margin-bottom:0;position:relative}html.theme--documenter-dark .tabs.is-toggle a:hover{background-color:#282f2f;border-color:#8c9b9d;z-index:2}html.theme--documenter-dark .tabs.is-toggle li+li{margin-left:-1px}html.theme--documenter-dark .tabs.is-toggle li:first-child a{border-radius:.4em 0 0 .4em}html.theme--documenter-dark .tabs.is-toggle li:last-child a{border-radius:0 .4em .4em 0}html.theme--documenter-dark .tabs.is-toggle li.is-active a{background-color:#1abc9c;border-color:#1abc9c;color:#fff;z-index:1}html.theme--documenter-dark .tabs.is-toggle ul{border-bottom:none}html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:first-child a{border-bottom-left-radius:290486px;border-top-left-radius:290486px;padding-left:1.25em}html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:last-child a{border-bottom-right-radius:290486px;border-top-right-radius:290486px;padding-right:1.25em}html.theme--documenter-dark .tabs.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.tabs{font-size:.85em}html.theme--documenter-dark .tabs.is-medium{font-size:1.25rem}html.theme--documenter-dark .tabs.is-large{font-size:1.5rem}html.theme--documenter-dark .column{display:block;flex-basis:0;flex-grow:1;flex-shrink:1;padding:.75rem}.columns.is-mobile>html.theme--documenter-dark .column.is-narrow{flex:none}.columns.is-mobile>html.theme--documenter-dark .column.is-full{flex:none;width:100%}.columns.is-mobile>html.theme--documenter-dark .column.is-three-quarters{flex:none;width:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-two-thirds{flex:none;width:66.6666%}.columns.is-mobile>html.theme--documenter-dark .column.is-half{flex:none;width:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-third{flex:none;width:33.3333%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-quarter{flex:none;width:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-one-fifth{flex:none;width:20%}.columns.is-mobile>html.theme--documenter-dark .column.is-two-fifths{flex:none;width:40%}.columns.is-mobile>html.theme--documenter-dark .column.is-three-fifths{flex:none;width:60%}.columns.is-mobile>html.theme--documenter-dark .column.is-four-fifths{flex:none;width:80%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-three-quarters{margin-left:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-two-thirds{margin-left:66.6666%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-half{margin-left:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-third{margin-left:33.3333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-quarter{margin-left:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-one-fifth{margin-left:20%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-two-fifths{margin-left:40%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-three-fifths{margin-left:60%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-four-fifths{margin-left:80%}.columns.is-mobile>html.theme--documenter-dark .column.is-0{flex:none;width:0%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-0{margin-left:0%}.columns.is-mobile>html.theme--documenter-dark .column.is-1{flex:none;width:8.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-1{margin-left:8.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-2{flex:none;width:16.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-2{margin-left:16.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-3{flex:none;width:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-3{margin-left:25%}.columns.is-mobile>html.theme--documenter-dark .column.is-4{flex:none;width:33.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-4{margin-left:33.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-5{flex:none;width:41.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-5{margin-left:41.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-6{flex:none;width:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-6{margin-left:50%}.columns.is-mobile>html.theme--documenter-dark .column.is-7{flex:none;width:58.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-7{margin-left:58.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-8{flex:none;width:66.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-8{margin-left:66.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-9{flex:none;width:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-9{margin-left:75%}.columns.is-mobile>html.theme--documenter-dark .column.is-10{flex:none;width:83.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-10{margin-left:83.3333333333%}.columns.is-mobile>html.theme--documenter-dark .column.is-11{flex:none;width:91.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-11{margin-left:91.6666666667%}.columns.is-mobile>html.theme--documenter-dark .column.is-12{flex:none;width:100%}.columns.is-mobile>html.theme--documenter-dark .column.is-offset-12{margin-left:100%}@media screen and (max-width: 768px){html.theme--documenter-dark .column.is-narrow-mobile{flex:none}html.theme--documenter-dark .column.is-full-mobile{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-mobile{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-mobile{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-mobile{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-mobile{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-mobile{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-mobile{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-mobile{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-mobile{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-mobile{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-mobile{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-mobile{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-mobile{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-mobile{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-mobile{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-mobile{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-mobile{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-mobile{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-mobile{margin-left:80%}html.theme--documenter-dark .column.is-0-mobile{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-mobile{margin-left:0%}html.theme--documenter-dark .column.is-1-mobile{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-mobile{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-mobile{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-mobile{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-mobile{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-mobile{margin-left:25%}html.theme--documenter-dark .column.is-4-mobile{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-mobile{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-mobile{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-mobile{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-mobile{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-mobile{margin-left:50%}html.theme--documenter-dark .column.is-7-mobile{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-mobile{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-mobile{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-mobile{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-mobile{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-mobile{margin-left:75%}html.theme--documenter-dark .column.is-10-mobile{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-mobile{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-mobile{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-mobile{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-mobile{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-mobile{margin-left:100%}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .column.is-narrow,html.theme--documenter-dark .column.is-narrow-tablet{flex:none}html.theme--documenter-dark .column.is-full,html.theme--documenter-dark .column.is-full-tablet{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters,html.theme--documenter-dark .column.is-three-quarters-tablet{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds,html.theme--documenter-dark .column.is-two-thirds-tablet{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half,html.theme--documenter-dark .column.is-half-tablet{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third,html.theme--documenter-dark .column.is-one-third-tablet{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter,html.theme--documenter-dark .column.is-one-quarter-tablet{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth,html.theme--documenter-dark .column.is-one-fifth-tablet{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths,html.theme--documenter-dark .column.is-two-fifths-tablet{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths,html.theme--documenter-dark .column.is-three-fifths-tablet{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths,html.theme--documenter-dark .column.is-four-fifths-tablet{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters,html.theme--documenter-dark .column.is-offset-three-quarters-tablet{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds,html.theme--documenter-dark .column.is-offset-two-thirds-tablet{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half,html.theme--documenter-dark .column.is-offset-half-tablet{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third,html.theme--documenter-dark .column.is-offset-one-third-tablet{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter,html.theme--documenter-dark .column.is-offset-one-quarter-tablet{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth,html.theme--documenter-dark .column.is-offset-one-fifth-tablet{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths,html.theme--documenter-dark .column.is-offset-two-fifths-tablet{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths,html.theme--documenter-dark .column.is-offset-three-fifths-tablet{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths,html.theme--documenter-dark .column.is-offset-four-fifths-tablet{margin-left:80%}html.theme--documenter-dark .column.is-0,html.theme--documenter-dark .column.is-0-tablet{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0,html.theme--documenter-dark .column.is-offset-0-tablet{margin-left:0%}html.theme--documenter-dark .column.is-1,html.theme--documenter-dark .column.is-1-tablet{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1,html.theme--documenter-dark .column.is-offset-1-tablet{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2,html.theme--documenter-dark .column.is-2-tablet{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2,html.theme--documenter-dark .column.is-offset-2-tablet{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3,html.theme--documenter-dark .column.is-3-tablet{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3,html.theme--documenter-dark .column.is-offset-3-tablet{margin-left:25%}html.theme--documenter-dark .column.is-4,html.theme--documenter-dark .column.is-4-tablet{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4,html.theme--documenter-dark .column.is-offset-4-tablet{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5,html.theme--documenter-dark .column.is-5-tablet{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5,html.theme--documenter-dark .column.is-offset-5-tablet{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6,html.theme--documenter-dark .column.is-6-tablet{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6,html.theme--documenter-dark .column.is-offset-6-tablet{margin-left:50%}html.theme--documenter-dark .column.is-7,html.theme--documenter-dark .column.is-7-tablet{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7,html.theme--documenter-dark .column.is-offset-7-tablet{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8,html.theme--documenter-dark .column.is-8-tablet{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8,html.theme--documenter-dark .column.is-offset-8-tablet{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9,html.theme--documenter-dark .column.is-9-tablet{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9,html.theme--documenter-dark .column.is-offset-9-tablet{margin-left:75%}html.theme--documenter-dark .column.is-10,html.theme--documenter-dark .column.is-10-tablet{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10,html.theme--documenter-dark .column.is-offset-10-tablet{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11,html.theme--documenter-dark .column.is-11-tablet{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11,html.theme--documenter-dark .column.is-offset-11-tablet{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12,html.theme--documenter-dark .column.is-12-tablet{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12,html.theme--documenter-dark .column.is-offset-12-tablet{margin-left:100%}}@media screen and (max-width: 1055px){html.theme--documenter-dark .column.is-narrow-touch{flex:none}html.theme--documenter-dark .column.is-full-touch{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-touch{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-touch{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-touch{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-touch{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-touch{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-touch{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-touch{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-touch{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-touch{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-touch{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-touch{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-touch{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-touch{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-touch{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-touch{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-touch{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-touch{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-touch{margin-left:80%}html.theme--documenter-dark .column.is-0-touch{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-touch{margin-left:0%}html.theme--documenter-dark .column.is-1-touch{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-touch{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-touch{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-touch{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-touch{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-touch{margin-left:25%}html.theme--documenter-dark .column.is-4-touch{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-touch{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-touch{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-touch{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-touch{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-touch{margin-left:50%}html.theme--documenter-dark .column.is-7-touch{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-touch{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-touch{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-touch{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-touch{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-touch{margin-left:75%}html.theme--documenter-dark .column.is-10-touch{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-touch{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-touch{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-touch{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-touch{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-touch{margin-left:100%}}@media screen and (min-width: 1056px){html.theme--documenter-dark .column.is-narrow-desktop{flex:none}html.theme--documenter-dark .column.is-full-desktop{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-desktop{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-desktop{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-desktop{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-desktop{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-desktop{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-desktop{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-desktop{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-desktop{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-desktop{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-desktop{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-desktop{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-desktop{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-desktop{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-desktop{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-desktop{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-desktop{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-desktop{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-desktop{margin-left:80%}html.theme--documenter-dark .column.is-0-desktop{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-desktop{margin-left:0%}html.theme--documenter-dark .column.is-1-desktop{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-desktop{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-desktop{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-desktop{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-desktop{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-desktop{margin-left:25%}html.theme--documenter-dark .column.is-4-desktop{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-desktop{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-desktop{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-desktop{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-desktop{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-desktop{margin-left:50%}html.theme--documenter-dark .column.is-7-desktop{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-desktop{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-desktop{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-desktop{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-desktop{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-desktop{margin-left:75%}html.theme--documenter-dark .column.is-10-desktop{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-desktop{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-desktop{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-desktop{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-desktop{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-desktop{margin-left:100%}}@media screen and (min-width: 1216px){html.theme--documenter-dark .column.is-narrow-widescreen{flex:none}html.theme--documenter-dark .column.is-full-widescreen{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-widescreen{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-widescreen{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-widescreen{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-widescreen{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-widescreen{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-widescreen{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-widescreen{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-widescreen{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-widescreen{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-widescreen{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-widescreen{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-widescreen{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-widescreen{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-widescreen{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-widescreen{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-widescreen{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-widescreen{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-widescreen{margin-left:80%}html.theme--documenter-dark .column.is-0-widescreen{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-widescreen{margin-left:0%}html.theme--documenter-dark .column.is-1-widescreen{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-widescreen{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-widescreen{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-widescreen{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-widescreen{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-widescreen{margin-left:25%}html.theme--documenter-dark .column.is-4-widescreen{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-widescreen{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-widescreen{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-widescreen{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-widescreen{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-widescreen{margin-left:50%}html.theme--documenter-dark .column.is-7-widescreen{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-widescreen{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-widescreen{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-widescreen{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-widescreen{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-widescreen{margin-left:75%}html.theme--documenter-dark .column.is-10-widescreen{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-widescreen{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-widescreen{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-widescreen{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-widescreen{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-widescreen{margin-left:100%}}@media screen and (min-width: 1408px){html.theme--documenter-dark .column.is-narrow-fullhd{flex:none}html.theme--documenter-dark .column.is-full-fullhd{flex:none;width:100%}html.theme--documenter-dark .column.is-three-quarters-fullhd{flex:none;width:75%}html.theme--documenter-dark .column.is-two-thirds-fullhd{flex:none;width:66.6666%}html.theme--documenter-dark .column.is-half-fullhd{flex:none;width:50%}html.theme--documenter-dark .column.is-one-third-fullhd{flex:none;width:33.3333%}html.theme--documenter-dark .column.is-one-quarter-fullhd{flex:none;width:25%}html.theme--documenter-dark .column.is-one-fifth-fullhd{flex:none;width:20%}html.theme--documenter-dark .column.is-two-fifths-fullhd{flex:none;width:40%}html.theme--documenter-dark .column.is-three-fifths-fullhd{flex:none;width:60%}html.theme--documenter-dark .column.is-four-fifths-fullhd{flex:none;width:80%}html.theme--documenter-dark .column.is-offset-three-quarters-fullhd{margin-left:75%}html.theme--documenter-dark .column.is-offset-two-thirds-fullhd{margin-left:66.6666%}html.theme--documenter-dark .column.is-offset-half-fullhd{margin-left:50%}html.theme--documenter-dark .column.is-offset-one-third-fullhd{margin-left:33.3333%}html.theme--documenter-dark .column.is-offset-one-quarter-fullhd{margin-left:25%}html.theme--documenter-dark .column.is-offset-one-fifth-fullhd{margin-left:20%}html.theme--documenter-dark .column.is-offset-two-fifths-fullhd{margin-left:40%}html.theme--documenter-dark .column.is-offset-three-fifths-fullhd{margin-left:60%}html.theme--documenter-dark .column.is-offset-four-fifths-fullhd{margin-left:80%}html.theme--documenter-dark .column.is-0-fullhd{flex:none;width:0%}html.theme--documenter-dark .column.is-offset-0-fullhd{margin-left:0%}html.theme--documenter-dark .column.is-1-fullhd{flex:none;width:8.3333333333%}html.theme--documenter-dark .column.is-offset-1-fullhd{margin-left:8.3333333333%}html.theme--documenter-dark .column.is-2-fullhd{flex:none;width:16.6666666667%}html.theme--documenter-dark .column.is-offset-2-fullhd{margin-left:16.6666666667%}html.theme--documenter-dark .column.is-3-fullhd{flex:none;width:25%}html.theme--documenter-dark .column.is-offset-3-fullhd{margin-left:25%}html.theme--documenter-dark .column.is-4-fullhd{flex:none;width:33.3333333333%}html.theme--documenter-dark .column.is-offset-4-fullhd{margin-left:33.3333333333%}html.theme--documenter-dark .column.is-5-fullhd{flex:none;width:41.6666666667%}html.theme--documenter-dark .column.is-offset-5-fullhd{margin-left:41.6666666667%}html.theme--documenter-dark .column.is-6-fullhd{flex:none;width:50%}html.theme--documenter-dark .column.is-offset-6-fullhd{margin-left:50%}html.theme--documenter-dark .column.is-7-fullhd{flex:none;width:58.3333333333%}html.theme--documenter-dark .column.is-offset-7-fullhd{margin-left:58.3333333333%}html.theme--documenter-dark .column.is-8-fullhd{flex:none;width:66.6666666667%}html.theme--documenter-dark .column.is-offset-8-fullhd{margin-left:66.6666666667%}html.theme--documenter-dark .column.is-9-fullhd{flex:none;width:75%}html.theme--documenter-dark .column.is-offset-9-fullhd{margin-left:75%}html.theme--documenter-dark .column.is-10-fullhd{flex:none;width:83.3333333333%}html.theme--documenter-dark .column.is-offset-10-fullhd{margin-left:83.3333333333%}html.theme--documenter-dark .column.is-11-fullhd{flex:none;width:91.6666666667%}html.theme--documenter-dark .column.is-offset-11-fullhd{margin-left:91.6666666667%}html.theme--documenter-dark .column.is-12-fullhd{flex:none;width:100%}html.theme--documenter-dark .column.is-offset-12-fullhd{margin-left:100%}}html.theme--documenter-dark .columns{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}html.theme--documenter-dark .columns:last-child{margin-bottom:-.75rem}html.theme--documenter-dark .columns:not(:last-child){margin-bottom:calc(1.5rem - .75rem)}html.theme--documenter-dark .columns.is-centered{justify-content:center}html.theme--documenter-dark .columns.is-gapless{margin-left:0;margin-right:0;margin-top:0}html.theme--documenter-dark .columns.is-gapless>.column{margin:0;padding:0 !important}html.theme--documenter-dark .columns.is-gapless:not(:last-child){margin-bottom:1.5rem}html.theme--documenter-dark .columns.is-gapless:last-child{margin-bottom:0}html.theme--documenter-dark .columns.is-mobile{display:flex}html.theme--documenter-dark .columns.is-multiline{flex-wrap:wrap}html.theme--documenter-dark .columns.is-vcentered{align-items:center}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns:not(.is-desktop){display:flex}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-desktop{display:flex}}html.theme--documenter-dark .columns.is-variable{--columnGap: 0.75rem;margin-left:calc(-1 * var(--columnGap));margin-right:calc(-1 * var(--columnGap))}html.theme--documenter-dark .columns.is-variable .column{padding-left:var(--columnGap);padding-right:var(--columnGap)}html.theme--documenter-dark .columns.is-variable.is-0{--columnGap: 0rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-0-mobile{--columnGap: 0rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-0-tablet{--columnGap: 0rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-0-tablet-only{--columnGap: 0rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-0-touch{--columnGap: 0rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-0-desktop{--columnGap: 0rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-0-desktop-only{--columnGap: 0rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-0-widescreen{--columnGap: 0rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-0-widescreen-only{--columnGap: 0rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-0-fullhd{--columnGap: 0rem}}html.theme--documenter-dark .columns.is-variable.is-1{--columnGap: .25rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-1-mobile{--columnGap: .25rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-1-tablet{--columnGap: .25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-1-tablet-only{--columnGap: .25rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-1-touch{--columnGap: .25rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-1-desktop{--columnGap: .25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-1-desktop-only{--columnGap: .25rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-1-widescreen{--columnGap: .25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-1-widescreen-only{--columnGap: .25rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-1-fullhd{--columnGap: .25rem}}html.theme--documenter-dark .columns.is-variable.is-2{--columnGap: .5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-2-mobile{--columnGap: .5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-2-tablet{--columnGap: .5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-2-tablet-only{--columnGap: .5rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-2-touch{--columnGap: .5rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-2-desktop{--columnGap: .5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-2-desktop-only{--columnGap: .5rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-2-widescreen{--columnGap: .5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-2-widescreen-only{--columnGap: .5rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-2-fullhd{--columnGap: .5rem}}html.theme--documenter-dark .columns.is-variable.is-3{--columnGap: .75rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-3-mobile{--columnGap: .75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-3-tablet{--columnGap: .75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-3-tablet-only{--columnGap: .75rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-3-touch{--columnGap: .75rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-3-desktop{--columnGap: .75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-3-desktop-only{--columnGap: .75rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-3-widescreen{--columnGap: .75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-3-widescreen-only{--columnGap: .75rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-3-fullhd{--columnGap: .75rem}}html.theme--documenter-dark .columns.is-variable.is-4{--columnGap: 1rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-4-mobile{--columnGap: 1rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-4-tablet{--columnGap: 1rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-4-tablet-only{--columnGap: 1rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-4-touch{--columnGap: 1rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-4-desktop{--columnGap: 1rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-4-desktop-only{--columnGap: 1rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-4-widescreen{--columnGap: 1rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-4-widescreen-only{--columnGap: 1rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-4-fullhd{--columnGap: 1rem}}html.theme--documenter-dark .columns.is-variable.is-5{--columnGap: 1.25rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-5-mobile{--columnGap: 1.25rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-5-tablet{--columnGap: 1.25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-5-tablet-only{--columnGap: 1.25rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-5-touch{--columnGap: 1.25rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-5-desktop{--columnGap: 1.25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-5-desktop-only{--columnGap: 1.25rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-5-widescreen{--columnGap: 1.25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-5-widescreen-only{--columnGap: 1.25rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-5-fullhd{--columnGap: 1.25rem}}html.theme--documenter-dark .columns.is-variable.is-6{--columnGap: 1.5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-6-mobile{--columnGap: 1.5rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-6-tablet{--columnGap: 1.5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-6-tablet-only{--columnGap: 1.5rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-6-touch{--columnGap: 1.5rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-6-desktop{--columnGap: 1.5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-6-desktop-only{--columnGap: 1.5rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-6-widescreen{--columnGap: 1.5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-6-widescreen-only{--columnGap: 1.5rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-6-fullhd{--columnGap: 1.5rem}}html.theme--documenter-dark .columns.is-variable.is-7{--columnGap: 1.75rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-7-mobile{--columnGap: 1.75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-7-tablet{--columnGap: 1.75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-7-tablet-only{--columnGap: 1.75rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-7-touch{--columnGap: 1.75rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-7-desktop{--columnGap: 1.75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-7-desktop-only{--columnGap: 1.75rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-7-widescreen{--columnGap: 1.75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-7-widescreen-only{--columnGap: 1.75rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-7-fullhd{--columnGap: 1.75rem}}html.theme--documenter-dark .columns.is-variable.is-8{--columnGap: 2rem}@media screen and (max-width: 768px){html.theme--documenter-dark .columns.is-variable.is-8-mobile{--columnGap: 2rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .columns.is-variable.is-8-tablet{--columnGap: 2rem}}@media screen and (min-width: 769px) and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-8-tablet-only{--columnGap: 2rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark .columns.is-variable.is-8-touch{--columnGap: 2rem}}@media screen and (min-width: 1056px){html.theme--documenter-dark .columns.is-variable.is-8-desktop{--columnGap: 2rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){html.theme--documenter-dark .columns.is-variable.is-8-desktop-only{--columnGap: 2rem}}@media screen and (min-width: 1216px){html.theme--documenter-dark .columns.is-variable.is-8-widescreen{--columnGap: 2rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){html.theme--documenter-dark .columns.is-variable.is-8-widescreen-only{--columnGap: 2rem}}@media screen and (min-width: 1408px){html.theme--documenter-dark .columns.is-variable.is-8-fullhd{--columnGap: 2rem}}html.theme--documenter-dark .tile{align-items:stretch;display:block;flex-basis:0;flex-grow:1;flex-shrink:1;min-height:min-content}html.theme--documenter-dark .tile.is-ancestor{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}html.theme--documenter-dark .tile.is-ancestor:last-child{margin-bottom:-.75rem}html.theme--documenter-dark .tile.is-ancestor:not(:last-child){margin-bottom:.75rem}html.theme--documenter-dark .tile.is-child{margin:0 !important}html.theme--documenter-dark .tile.is-parent{padding:.75rem}html.theme--documenter-dark .tile.is-vertical{flex-direction:column}html.theme--documenter-dark .tile.is-vertical>.tile.is-child:not(:last-child){margin-bottom:1.5rem !important}@media screen and (min-width: 769px),print{html.theme--documenter-dark .tile:not(.is-child){display:flex}html.theme--documenter-dark .tile.is-1{flex:none;width:8.3333333333%}html.theme--documenter-dark .tile.is-2{flex:none;width:16.6666666667%}html.theme--documenter-dark .tile.is-3{flex:none;width:25%}html.theme--documenter-dark .tile.is-4{flex:none;width:33.3333333333%}html.theme--documenter-dark .tile.is-5{flex:none;width:41.6666666667%}html.theme--documenter-dark .tile.is-6{flex:none;width:50%}html.theme--documenter-dark .tile.is-7{flex:none;width:58.3333333333%}html.theme--documenter-dark .tile.is-8{flex:none;width:66.6666666667%}html.theme--documenter-dark .tile.is-9{flex:none;width:75%}html.theme--documenter-dark .tile.is-10{flex:none;width:83.3333333333%}html.theme--documenter-dark .tile.is-11{flex:none;width:91.6666666667%}html.theme--documenter-dark .tile.is-12{flex:none;width:100%}}html.theme--documenter-dark .hero{align-items:stretch;display:flex;flex-direction:column;justify-content:space-between}html.theme--documenter-dark .hero .navbar{background:none}html.theme--documenter-dark .hero .tabs ul{border-bottom:none}html.theme--documenter-dark .hero.is-white{background-color:#fff;color:#0a0a0a}html.theme--documenter-dark .hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-white strong{color:inherit}html.theme--documenter-dark .hero.is-white .title{color:#0a0a0a}html.theme--documenter-dark .hero.is-white .subtitle{color:rgba(10,10,10,0.9)}html.theme--documenter-dark .hero.is-white .subtitle a:not(.button),html.theme--documenter-dark .hero.is-white .subtitle strong{color:#0a0a0a}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-white .navbar-menu{background-color:#fff}}html.theme--documenter-dark .hero.is-white .navbar-item,html.theme--documenter-dark .hero.is-white .navbar-link{color:rgba(10,10,10,0.7)}html.theme--documenter-dark .hero.is-white a.navbar-item:hover,html.theme--documenter-dark .hero.is-white a.navbar-item.is-active,html.theme--documenter-dark .hero.is-white .navbar-link:hover,html.theme--documenter-dark .hero.is-white .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}html.theme--documenter-dark .hero.is-white .tabs a{color:#0a0a0a;opacity:0.9}html.theme--documenter-dark .hero.is-white .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-white .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-white .tabs.is-boxed a,html.theme--documenter-dark .hero.is-white .tabs.is-toggle a{color:#0a0a0a}html.theme--documenter-dark .hero.is-white .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-white .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}html.theme--documenter-dark .hero.is-white.is-bold{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-white.is-bold .navbar-menu{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}}html.theme--documenter-dark .hero.is-black{background-color:#0a0a0a;color:#fff}html.theme--documenter-dark .hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-black strong{color:inherit}html.theme--documenter-dark .hero.is-black .title{color:#fff}html.theme--documenter-dark .hero.is-black .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-black .subtitle a:not(.button),html.theme--documenter-dark .hero.is-black .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-black .navbar-menu{background-color:#0a0a0a}}html.theme--documenter-dark .hero.is-black .navbar-item,html.theme--documenter-dark .hero.is-black .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-black a.navbar-item:hover,html.theme--documenter-dark .hero.is-black a.navbar-item.is-active,html.theme--documenter-dark .hero.is-black .navbar-link:hover,html.theme--documenter-dark .hero.is-black .navbar-link.is-active{background-color:#000;color:#fff}html.theme--documenter-dark .hero.is-black .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-black .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-black .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-black .tabs.is-boxed a,html.theme--documenter-dark .hero.is-black .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-black .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-black .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-black .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-black .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}html.theme--documenter-dark .hero.is-black.is-bold{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-black.is-bold .navbar-menu{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}}html.theme--documenter-dark .hero.is-light{background-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-light strong{color:inherit}html.theme--documenter-dark .hero.is-light .title{color:#282f2f}html.theme--documenter-dark .hero.is-light .subtitle{color:rgba(40,47,47,0.9)}html.theme--documenter-dark .hero.is-light .subtitle a:not(.button),html.theme--documenter-dark .hero.is-light .subtitle strong{color:#282f2f}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-light .navbar-menu{background-color:#ecf0f1}}html.theme--documenter-dark .hero.is-light .navbar-item,html.theme--documenter-dark .hero.is-light .navbar-link{color:rgba(40,47,47,0.7)}html.theme--documenter-dark .hero.is-light a.navbar-item:hover,html.theme--documenter-dark .hero.is-light a.navbar-item.is-active,html.theme--documenter-dark .hero.is-light .navbar-link:hover,html.theme--documenter-dark .hero.is-light .navbar-link.is-active{background-color:#dde4e6;color:#282f2f}html.theme--documenter-dark .hero.is-light .tabs a{color:#282f2f;opacity:0.9}html.theme--documenter-dark .hero.is-light .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-light .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-light .tabs.is-boxed a,html.theme--documenter-dark .hero.is-light .tabs.is-toggle a{color:#282f2f}html.theme--documenter-dark .hero.is-light .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-light .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a:hover{background-color:#282f2f;border-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .hero.is-light.is-bold{background-image:linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-light.is-bold .navbar-menu{background-image:linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%)}}html.theme--documenter-dark .hero.is-dark,html.theme--documenter-dark .content kbd.hero{background-color:#282f2f;color:#ecf0f1}html.theme--documenter-dark .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-dark strong,html.theme--documenter-dark .content kbd.hero strong{color:inherit}html.theme--documenter-dark .hero.is-dark .title,html.theme--documenter-dark .content kbd.hero .title{color:#ecf0f1}html.theme--documenter-dark .hero.is-dark .subtitle,html.theme--documenter-dark .content kbd.hero .subtitle{color:rgba(236,240,241,0.9)}html.theme--documenter-dark .hero.is-dark .subtitle a:not(.button),html.theme--documenter-dark .content kbd.hero .subtitle a:not(.button),html.theme--documenter-dark .hero.is-dark .subtitle strong,html.theme--documenter-dark .content kbd.hero .subtitle strong{color:#ecf0f1}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-dark .navbar-menu,html.theme--documenter-dark .content kbd.hero .navbar-menu{background-color:#282f2f}}html.theme--documenter-dark .hero.is-dark .navbar-item,html.theme--documenter-dark .content kbd.hero .navbar-item,html.theme--documenter-dark .hero.is-dark .navbar-link,html.theme--documenter-dark .content kbd.hero .navbar-link{color:rgba(236,240,241,0.7)}html.theme--documenter-dark .hero.is-dark a.navbar-item:hover,html.theme--documenter-dark .content kbd.hero a.navbar-item:hover,html.theme--documenter-dark .hero.is-dark a.navbar-item.is-active,html.theme--documenter-dark .content kbd.hero a.navbar-item.is-active,html.theme--documenter-dark .hero.is-dark .navbar-link:hover,html.theme--documenter-dark .content kbd.hero .navbar-link:hover,html.theme--documenter-dark .hero.is-dark .navbar-link.is-active,html.theme--documenter-dark .content kbd.hero .navbar-link.is-active{background-color:#1d2122;color:#ecf0f1}html.theme--documenter-dark .hero.is-dark .tabs a,html.theme--documenter-dark .content kbd.hero .tabs a{color:#ecf0f1;opacity:0.9}html.theme--documenter-dark .hero.is-dark .tabs a:hover,html.theme--documenter-dark .content kbd.hero .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-dark .tabs li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a{color:#ecf0f1}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a:hover,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a:hover,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a,html.theme--documenter-dark .content kbd.hero .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a:hover{background-color:#ecf0f1;border-color:#ecf0f1;color:#282f2f}html.theme--documenter-dark .hero.is-dark.is-bold,html.theme--documenter-dark .content kbd.hero.is-bold{background-image:linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-dark.is-bold .navbar-menu,html.theme--documenter-dark .content kbd.hero.is-bold .navbar-menu{background-image:linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%)}}html.theme--documenter-dark .hero.is-primary,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink{background-color:#375a7f;color:#fff}html.theme--documenter-dark .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-primary strong,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink strong{color:inherit}html.theme--documenter-dark .hero.is-primary .title,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .title{color:#fff}html.theme--documenter-dark .hero.is-primary .subtitle,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-primary .subtitle a:not(.button),html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle a:not(.button),html.theme--documenter-dark .hero.is-primary .subtitle strong,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-primary .navbar-menu,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-menu{background-color:#375a7f}}html.theme--documenter-dark .hero.is-primary .navbar-item,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-item,html.theme--documenter-dark .hero.is-primary .navbar-link,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-primary a.navbar-item:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a.navbar-item:hover,html.theme--documenter-dark .hero.is-primary a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink a.navbar-item.is-active,html.theme--documenter-dark .hero.is-primary .navbar-link:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link:hover,html.theme--documenter-dark .hero.is-primary .navbar-link.is-active,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar-link.is-active{background-color:#2f4d6d;color:#fff}html.theme--documenter-dark .hero.is-primary .tabs a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-primary .tabs a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-primary .tabs li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#375a7f}html.theme--documenter-dark .hero.is-primary.is-bold,html.theme--documenter-dark .docstring>section>a.hero.is-bold.docs-sourcelink{background-image:linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-primary.is-bold .navbar-menu,html.theme--documenter-dark .docstring>section>a.hero.is-bold.docs-sourcelink .navbar-menu{background-image:linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%)}}html.theme--documenter-dark .hero.is-link{background-color:#1abc9c;color:#fff}html.theme--documenter-dark .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-link strong{color:inherit}html.theme--documenter-dark .hero.is-link .title{color:#fff}html.theme--documenter-dark .hero.is-link .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-link .subtitle a:not(.button),html.theme--documenter-dark .hero.is-link .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-link .navbar-menu{background-color:#1abc9c}}html.theme--documenter-dark .hero.is-link .navbar-item,html.theme--documenter-dark .hero.is-link .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-link a.navbar-item:hover,html.theme--documenter-dark .hero.is-link a.navbar-item.is-active,html.theme--documenter-dark .hero.is-link .navbar-link:hover,html.theme--documenter-dark .hero.is-link .navbar-link.is-active{background-color:#17a689;color:#fff}html.theme--documenter-dark .hero.is-link .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-link .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-link .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-link .tabs.is-boxed a,html.theme--documenter-dark .hero.is-link .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-link .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-link .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#1abc9c}html.theme--documenter-dark .hero.is-link.is-bold{background-image:linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-link.is-bold .navbar-menu{background-image:linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%)}}html.theme--documenter-dark .hero.is-info{background-color:#024c7d;color:#fff}html.theme--documenter-dark .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-info strong{color:inherit}html.theme--documenter-dark .hero.is-info .title{color:#fff}html.theme--documenter-dark .hero.is-info .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-info .subtitle a:not(.button),html.theme--documenter-dark .hero.is-info .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-info .navbar-menu{background-color:#024c7d}}html.theme--documenter-dark .hero.is-info .navbar-item,html.theme--documenter-dark .hero.is-info .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-info a.navbar-item:hover,html.theme--documenter-dark .hero.is-info a.navbar-item.is-active,html.theme--documenter-dark .hero.is-info .navbar-link:hover,html.theme--documenter-dark .hero.is-info .navbar-link.is-active{background-color:#023d64;color:#fff}html.theme--documenter-dark .hero.is-info .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-info .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-info .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-info .tabs.is-boxed a,html.theme--documenter-dark .hero.is-info .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-info .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-info .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#024c7d}html.theme--documenter-dark .hero.is-info.is-bold{background-image:linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%)}}html.theme--documenter-dark .hero.is-success{background-color:#008438;color:#fff}html.theme--documenter-dark .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-success strong{color:inherit}html.theme--documenter-dark .hero.is-success .title{color:#fff}html.theme--documenter-dark .hero.is-success .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-success .subtitle a:not(.button),html.theme--documenter-dark .hero.is-success .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-success .navbar-menu{background-color:#008438}}html.theme--documenter-dark .hero.is-success .navbar-item,html.theme--documenter-dark .hero.is-success .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-success a.navbar-item:hover,html.theme--documenter-dark .hero.is-success a.navbar-item.is-active,html.theme--documenter-dark .hero.is-success .navbar-link:hover,html.theme--documenter-dark .hero.is-success .navbar-link.is-active{background-color:#006b2d;color:#fff}html.theme--documenter-dark .hero.is-success .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-success .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-success .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-success .tabs.is-boxed a,html.theme--documenter-dark .hero.is-success .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-success .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-success .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#008438}html.theme--documenter-dark .hero.is-success.is-bold{background-image:linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-success.is-bold .navbar-menu{background-image:linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%)}}html.theme--documenter-dark .hero.is-warning{background-color:#ad8100;color:#fff}html.theme--documenter-dark .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-warning strong{color:inherit}html.theme--documenter-dark .hero.is-warning .title{color:#fff}html.theme--documenter-dark .hero.is-warning .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-warning .subtitle a:not(.button),html.theme--documenter-dark .hero.is-warning .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-warning .navbar-menu{background-color:#ad8100}}html.theme--documenter-dark .hero.is-warning .navbar-item,html.theme--documenter-dark .hero.is-warning .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-warning a.navbar-item:hover,html.theme--documenter-dark .hero.is-warning a.navbar-item.is-active,html.theme--documenter-dark .hero.is-warning .navbar-link:hover,html.theme--documenter-dark .hero.is-warning .navbar-link.is-active{background-color:#946e00;color:#fff}html.theme--documenter-dark .hero.is-warning .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-warning .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-warning .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#ad8100}html.theme--documenter-dark .hero.is-warning.is-bold{background-image:linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-warning.is-bold .navbar-menu{background-image:linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%)}}html.theme--documenter-dark .hero.is-danger{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),html.theme--documenter-dark .hero.is-danger strong{color:inherit}html.theme--documenter-dark .hero.is-danger .title{color:#fff}html.theme--documenter-dark .hero.is-danger .subtitle{color:rgba(255,255,255,0.9)}html.theme--documenter-dark .hero.is-danger .subtitle a:not(.button),html.theme--documenter-dark .hero.is-danger .subtitle strong{color:#fff}@media screen and (max-width: 1055px){html.theme--documenter-dark .hero.is-danger .navbar-menu{background-color:#9e1b0d}}html.theme--documenter-dark .hero.is-danger .navbar-item,html.theme--documenter-dark .hero.is-danger .navbar-link{color:rgba(255,255,255,0.7)}html.theme--documenter-dark .hero.is-danger a.navbar-item:hover,html.theme--documenter-dark .hero.is-danger a.navbar-item.is-active,html.theme--documenter-dark .hero.is-danger .navbar-link:hover,html.theme--documenter-dark .hero.is-danger .navbar-link.is-active{background-color:#86170b;color:#fff}html.theme--documenter-dark .hero.is-danger .tabs a{color:#fff;opacity:0.9}html.theme--documenter-dark .hero.is-danger .tabs a:hover{opacity:1}html.theme--documenter-dark .hero.is-danger .tabs li.is-active a{opacity:1}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a{color:#fff}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a:hover,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a,html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a:hover,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a,html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#9e1b0d}html.theme--documenter-dark .hero.is-danger.is-bold{background-image:linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%)}@media screen and (max-width: 768px){html.theme--documenter-dark .hero.is-danger.is-bold .navbar-menu{background-image:linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%)}}html.theme--documenter-dark .hero.is-small .hero-body,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.hero .hero-body{padding-bottom:1.5rem;padding-top:1.5rem}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero.is-medium .hero-body{padding-bottom:9rem;padding-top:9rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero.is-large .hero-body{padding-bottom:18rem;padding-top:18rem}}html.theme--documenter-dark .hero.is-halfheight .hero-body,html.theme--documenter-dark .hero.is-fullheight .hero-body,html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body{align-items:center;display:flex}html.theme--documenter-dark .hero.is-halfheight .hero-body>.container,html.theme--documenter-dark .hero.is-fullheight .hero-body>.container,html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body>.container{flex-grow:1;flex-shrink:1}html.theme--documenter-dark .hero.is-halfheight{min-height:50vh}html.theme--documenter-dark .hero.is-fullheight{min-height:100vh}html.theme--documenter-dark .hero-video{overflow:hidden}html.theme--documenter-dark .hero-video video{left:50%;min-height:100%;min-width:100%;position:absolute;top:50%;transform:translate3d(-50%, -50%, 0)}html.theme--documenter-dark .hero-video.is-transparent{opacity:0.3}@media screen and (max-width: 768px){html.theme--documenter-dark .hero-video{display:none}}html.theme--documenter-dark .hero-buttons{margin-top:1.5rem}@media screen and (max-width: 768px){html.theme--documenter-dark .hero-buttons .button{display:flex}html.theme--documenter-dark .hero-buttons .button:not(:last-child){margin-bottom:0.75rem}}@media screen and (min-width: 769px),print{html.theme--documenter-dark .hero-buttons{display:flex;justify-content:center}html.theme--documenter-dark .hero-buttons .button:not(:last-child){margin-right:1.5rem}}html.theme--documenter-dark .hero-head,html.theme--documenter-dark .hero-foot{flex-grow:0;flex-shrink:0}html.theme--documenter-dark .hero-body{flex-grow:1;flex-shrink:0;padding:3rem 1.5rem}html.theme--documenter-dark .section{padding:3rem 1.5rem}@media screen and (min-width: 1056px){html.theme--documenter-dark .section.is-medium{padding:9rem 1.5rem}html.theme--documenter-dark .section.is-large{padding:18rem 1.5rem}}html.theme--documenter-dark .footer{background-color:#282f2f;padding:3rem 1.5rem 6rem}html.theme--documenter-dark hr{height:1px}html.theme--documenter-dark h6{text-transform:uppercase;letter-spacing:0.5px}html.theme--documenter-dark .hero{background-color:#343c3d}html.theme--documenter-dark a{transition:all 200ms ease}html.theme--documenter-dark .button{transition:all 200ms ease;border-width:1px;color:#fff}html.theme--documenter-dark .button.is-active,html.theme--documenter-dark .button.is-focused,html.theme--documenter-dark .button:active,html.theme--documenter-dark .button:focus{box-shadow:0 0 0 2px rgba(140,155,157,0.5)}html.theme--documenter-dark .button.is-white.is-hovered,html.theme--documenter-dark .button.is-white:hover{background-color:#fff}html.theme--documenter-dark .button.is-white.is-active,html.theme--documenter-dark .button.is-white.is-focused,html.theme--documenter-dark .button.is-white:active,html.theme--documenter-dark .button.is-white:focus{border-color:#fff;box-shadow:0 0 0 2px rgba(255,255,255,0.5)}html.theme--documenter-dark .button.is-black.is-hovered,html.theme--documenter-dark .button.is-black:hover{background-color:#1d1d1d}html.theme--documenter-dark .button.is-black.is-active,html.theme--documenter-dark .button.is-black.is-focused,html.theme--documenter-dark .button.is-black:active,html.theme--documenter-dark .button.is-black:focus{border-color:#0a0a0a;box-shadow:0 0 0 2px rgba(10,10,10,0.5)}html.theme--documenter-dark .button.is-light.is-hovered,html.theme--documenter-dark .button.is-light:hover{background-color:#fff}html.theme--documenter-dark .button.is-light.is-active,html.theme--documenter-dark .button.is-light.is-focused,html.theme--documenter-dark .button.is-light:active,html.theme--documenter-dark .button.is-light:focus{border-color:#ecf0f1;box-shadow:0 0 0 2px rgba(236,240,241,0.5)}html.theme--documenter-dark .button.is-dark.is-hovered,html.theme--documenter-dark .content kbd.button.is-hovered,html.theme--documenter-dark .button.is-dark:hover,html.theme--documenter-dark .content kbd.button:hover{background-color:#3a4344}html.theme--documenter-dark .button.is-dark.is-active,html.theme--documenter-dark .content kbd.button.is-active,html.theme--documenter-dark .button.is-dark.is-focused,html.theme--documenter-dark .content kbd.button.is-focused,html.theme--documenter-dark .button.is-dark:active,html.theme--documenter-dark .content kbd.button:active,html.theme--documenter-dark .button.is-dark:focus,html.theme--documenter-dark .content kbd.button:focus{border-color:#282f2f;box-shadow:0 0 0 2px rgba(40,47,47,0.5)}html.theme--documenter-dark .button.is-primary.is-hovered,html.theme--documenter-dark .docstring>section>a.button.is-hovered.docs-sourcelink,html.theme--documenter-dark .button.is-primary:hover,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:hover{background-color:#436d9a}html.theme--documenter-dark .button.is-primary.is-active,html.theme--documenter-dark .docstring>section>a.button.is-active.docs-sourcelink,html.theme--documenter-dark .button.is-primary.is-focused,html.theme--documenter-dark .docstring>section>a.button.is-focused.docs-sourcelink,html.theme--documenter-dark .button.is-primary:active,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:active,html.theme--documenter-dark .button.is-primary:focus,html.theme--documenter-dark .docstring>section>a.button.docs-sourcelink:focus{border-color:#375a7f;box-shadow:0 0 0 2px rgba(55,90,127,0.5)}html.theme--documenter-dark .button.is-link.is-hovered,html.theme--documenter-dark .button.is-link:hover{background-color:#1fdeb8}html.theme--documenter-dark .button.is-link.is-active,html.theme--documenter-dark .button.is-link.is-focused,html.theme--documenter-dark .button.is-link:active,html.theme--documenter-dark .button.is-link:focus{border-color:#1abc9c;box-shadow:0 0 0 2px rgba(26,188,156,0.5)}html.theme--documenter-dark .button.is-info.is-hovered,html.theme--documenter-dark .button.is-info:hover{background-color:#0363a3}html.theme--documenter-dark .button.is-info.is-active,html.theme--documenter-dark .button.is-info.is-focused,html.theme--documenter-dark .button.is-info:active,html.theme--documenter-dark .button.is-info:focus{border-color:#024c7d;box-shadow:0 0 0 2px rgba(2,76,125,0.5)}html.theme--documenter-dark .button.is-success.is-hovered,html.theme--documenter-dark .button.is-success:hover{background-color:#00aa48}html.theme--documenter-dark .button.is-success.is-active,html.theme--documenter-dark .button.is-success.is-focused,html.theme--documenter-dark .button.is-success:active,html.theme--documenter-dark .button.is-success:focus{border-color:#008438;box-shadow:0 0 0 2px rgba(0,132,56,0.5)}html.theme--documenter-dark .button.is-warning.is-hovered,html.theme--documenter-dark .button.is-warning:hover{background-color:#d39e00}html.theme--documenter-dark .button.is-warning.is-active,html.theme--documenter-dark .button.is-warning.is-focused,html.theme--documenter-dark .button.is-warning:active,html.theme--documenter-dark .button.is-warning:focus{border-color:#ad8100;box-shadow:0 0 0 2px rgba(173,129,0,0.5)}html.theme--documenter-dark .button.is-danger.is-hovered,html.theme--documenter-dark .button.is-danger:hover{background-color:#c12110}html.theme--documenter-dark .button.is-danger.is-active,html.theme--documenter-dark .button.is-danger.is-focused,html.theme--documenter-dark .button.is-danger:active,html.theme--documenter-dark .button.is-danger:focus{border-color:#9e1b0d;box-shadow:0 0 0 2px rgba(158,27,13,0.5)}html.theme--documenter-dark .label{color:#dbdee0}html.theme--documenter-dark .button,html.theme--documenter-dark .control.has-icons-left .icon,html.theme--documenter-dark .control.has-icons-right .icon,html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .pagination-ellipsis,html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-previous,html.theme--documenter-dark .select,html.theme--documenter-dark .select select,html.theme--documenter-dark .textarea{height:2.5em}html.theme--documenter-dark .input,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark .textarea{transition:all 200ms ease;box-shadow:none;border-width:1px;padding-left:1em;padding-right:1em}html.theme--documenter-dark .select:after,html.theme--documenter-dark .select select{border-width:1px}html.theme--documenter-dark .control.has-addons .button,html.theme--documenter-dark .control.has-addons .input,html.theme--documenter-dark .control.has-addons #documenter .docs-sidebar form.docs-search>input,html.theme--documenter-dark #documenter .docs-sidebar .control.has-addons form.docs-search>input,html.theme--documenter-dark .control.has-addons .select{margin-right:-1px}html.theme--documenter-dark .notification{background-color:#343c3d}html.theme--documenter-dark .card{box-shadow:none;border:1px solid #343c3d;background-color:#282f2f;border-radius:.4em}html.theme--documenter-dark .card .card-image img{border-radius:.4em .4em 0 0}html.theme--documenter-dark .card .card-header{box-shadow:none;background-color:rgba(18,18,18,0.2);border-radius:.4em .4em 0 0}html.theme--documenter-dark .card .card-footer{background-color:rgba(18,18,18,0.2)}html.theme--documenter-dark .card .card-footer,html.theme--documenter-dark .card .card-footer-item{border-width:1px;border-color:#343c3d}html.theme--documenter-dark .notification.is-white a:not(.button){color:#0a0a0a;text-decoration:underline}html.theme--documenter-dark .notification.is-black a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-light a:not(.button){color:#282f2f;text-decoration:underline}html.theme--documenter-dark .notification.is-dark a:not(.button),html.theme--documenter-dark .content kbd.notification a:not(.button){color:#ecf0f1;text-decoration:underline}html.theme--documenter-dark .notification.is-primary a:not(.button),html.theme--documenter-dark .docstring>section>a.notification.docs-sourcelink a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-link a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-info a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-success a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-warning a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .notification.is-danger a:not(.button){color:#fff;text-decoration:underline}html.theme--documenter-dark .tag,html.theme--documenter-dark .content kbd,html.theme--documenter-dark .docstring>section>a.docs-sourcelink{border-radius:.4em}html.theme--documenter-dark .menu-list a{transition:all 300ms ease}html.theme--documenter-dark .modal-card-body{background-color:#282f2f}html.theme--documenter-dark .modal-card-foot,html.theme--documenter-dark .modal-card-head{border-color:#343c3d}html.theme--documenter-dark .message-header{font-weight:700;background-color:#343c3d;color:#fff}html.theme--documenter-dark .message-body{border-width:1px;border-color:#343c3d}html.theme--documenter-dark .navbar{border-radius:.4em}html.theme--documenter-dark .navbar.is-transparent{background:none}html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active,html.theme--documenter-dark .docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#1abc9c}@media screen and (max-width: 1055px){html.theme--documenter-dark .navbar .navbar-menu{background-color:#375a7f;border-radius:0 0 .4em .4em}}html.theme--documenter-dark .hero .navbar,html.theme--documenter-dark body>.navbar{border-radius:0}html.theme--documenter-dark .pagination-link,html.theme--documenter-dark .pagination-next,html.theme--documenter-dark .pagination-previous{border-width:1px}html.theme--documenter-dark .panel-block,html.theme--documenter-dark .panel-heading,html.theme--documenter-dark .panel-tabs{border-width:1px}html.theme--documenter-dark .panel-block:first-child,html.theme--documenter-dark .panel-heading:first-child,html.theme--documenter-dark .panel-tabs:first-child{border-top-width:1px}html.theme--documenter-dark .panel-heading{font-weight:700}html.theme--documenter-dark .panel-tabs a{border-width:1px;margin-bottom:-1px}html.theme--documenter-dark .panel-tabs a.is-active{border-bottom-color:#17a689}html.theme--documenter-dark .panel-block:hover{color:#1dd2af}html.theme--documenter-dark .panel-block:hover .panel-icon{color:#1dd2af}html.theme--documenter-dark .panel-block.is-active .panel-icon{color:#17a689}html.theme--documenter-dark .tabs a{border-bottom-width:1px;margin-bottom:-1px}html.theme--documenter-dark .tabs ul{border-bottom-width:1px}html.theme--documenter-dark .tabs.is-boxed a{border-width:1px}html.theme--documenter-dark .tabs.is-boxed li.is-active a{background-color:#1f2424}html.theme--documenter-dark .tabs.is-toggle li a{border-width:1px;margin-bottom:0}html.theme--documenter-dark .tabs.is-toggle li+li{margin-left:-1px}html.theme--documenter-dark .hero.is-white .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-black .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-light .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-dark .navbar .navbar-dropdown .navbar-item:hover,html.theme--documenter-dark .content kbd.hero .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-primary .navbar .navbar-dropdown .navbar-item:hover,html.theme--documenter-dark .docstring>section>a.hero.docs-sourcelink .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-link .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-info .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-success .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-warning .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark .hero.is-danger .navbar .navbar-dropdown .navbar-item:hover{background-color:rgba(0,0,0,0)}html.theme--documenter-dark h1 .docs-heading-anchor,html.theme--documenter-dark h1 .docs-heading-anchor:hover,html.theme--documenter-dark h1 .docs-heading-anchor:visited,html.theme--documenter-dark h2 .docs-heading-anchor,html.theme--documenter-dark h2 .docs-heading-anchor:hover,html.theme--documenter-dark h2 .docs-heading-anchor:visited,html.theme--documenter-dark h3 .docs-heading-anchor,html.theme--documenter-dark h3 .docs-heading-anchor:hover,html.theme--documenter-dark h3 .docs-heading-anchor:visited,html.theme--documenter-dark h4 .docs-heading-anchor,html.theme--documenter-dark h4 .docs-heading-anchor:hover,html.theme--documenter-dark h4 .docs-heading-anchor:visited,html.theme--documenter-dark h5 .docs-heading-anchor,html.theme--documenter-dark h5 .docs-heading-anchor:hover,html.theme--documenter-dark h5 .docs-heading-anchor:visited,html.theme--documenter-dark h6 .docs-heading-anchor,html.theme--documenter-dark h6 .docs-heading-anchor:hover,html.theme--documenter-dark h6 .docs-heading-anchor:visited{color:#f2f2f2}html.theme--documenter-dark h1 .docs-heading-anchor-permalink,html.theme--documenter-dark h2 .docs-heading-anchor-permalink,html.theme--documenter-dark h3 .docs-heading-anchor-permalink,html.theme--documenter-dark h4 .docs-heading-anchor-permalink,html.theme--documenter-dark h5 .docs-heading-anchor-permalink,html.theme--documenter-dark h6 .docs-heading-anchor-permalink{visibility:hidden;vertical-align:middle;margin-left:0.5em;font-size:0.7rem}html.theme--documenter-dark h1 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h2 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h3 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h4 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h5 .docs-heading-anchor-permalink::before,html.theme--documenter-dark h6 .docs-heading-anchor-permalink::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f0c1"}html.theme--documenter-dark h1:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h2:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h3:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h4:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h5:hover .docs-heading-anchor-permalink,html.theme--documenter-dark h6:hover .docs-heading-anchor-permalink{visibility:visible}html.theme--documenter-dark .docs-light-only{display:none !important}html.theme--documenter-dark pre{position:relative;overflow:hidden}html.theme--documenter-dark pre code,html.theme--documenter-dark pre code.hljs{padding:0 .75rem !important;overflow:auto;display:block}html.theme--documenter-dark pre code:first-of-type,html.theme--documenter-dark pre code.hljs:first-of-type{padding-top:0.5rem !important}html.theme--documenter-dark pre code:last-of-type,html.theme--documenter-dark pre code.hljs:last-of-type{padding-bottom:0.5rem !important}html.theme--documenter-dark pre .copy-button{opacity:0.2;transition:opacity 0.2s;position:absolute;right:0em;top:0em;padding:0.5em;width:2.5em;height:2.5em;background:transparent;border:none;font-family:"Font Awesome 5 Free";color:#fff;cursor:pointer;text-align:center}html.theme--documenter-dark pre .copy-button:focus,html.theme--documenter-dark pre .copy-button:hover{opacity:1;background:rgba(255,255,255,0.1);color:#1abc9c}html.theme--documenter-dark pre .copy-button.success{color:#259a12;opacity:1}html.theme--documenter-dark pre .copy-button.error{color:#cb3c33;opacity:1}html.theme--documenter-dark pre:hover .copy-button{opacity:1}html.theme--documenter-dark .admonition{background-color:#282f2f;border-style:solid;border-width:1px;border-color:#5e6d6f;border-radius:.4em;font-size:15px}html.theme--documenter-dark .admonition strong{color:currentColor}html.theme--documenter-dark .admonition.is-small,html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input.admonition{font-size:.85em}html.theme--documenter-dark .admonition.is-medium{font-size:1.25rem}html.theme--documenter-dark .admonition.is-large{font-size:1.5rem}html.theme--documenter-dark .admonition.is-default{background-color:#282f2f;border-color:#5e6d6f}html.theme--documenter-dark .admonition.is-default>.admonition-header{background-color:#5e6d6f;color:#fff}html.theme--documenter-dark .admonition.is-default>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-info{background-color:#282f2f;border-color:#024c7d}html.theme--documenter-dark .admonition.is-info>.admonition-header{background-color:#024c7d;color:#fff}html.theme--documenter-dark .admonition.is-info>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-success{background-color:#282f2f;border-color:#008438}html.theme--documenter-dark .admonition.is-success>.admonition-header{background-color:#008438;color:#fff}html.theme--documenter-dark .admonition.is-success>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-warning{background-color:#282f2f;border-color:#ad8100}html.theme--documenter-dark .admonition.is-warning>.admonition-header{background-color:#ad8100;color:#fff}html.theme--documenter-dark .admonition.is-warning>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-danger{background-color:#282f2f;border-color:#9e1b0d}html.theme--documenter-dark .admonition.is-danger>.admonition-header{background-color:#9e1b0d;color:#fff}html.theme--documenter-dark .admonition.is-danger>.admonition-body{color:#fff}html.theme--documenter-dark .admonition.is-compat{background-color:#282f2f;border-color:#137886}html.theme--documenter-dark .admonition.is-compat>.admonition-header{background-color:#137886;color:#fff}html.theme--documenter-dark .admonition.is-compat>.admonition-body{color:#fff}html.theme--documenter-dark .admonition-header{color:#fff;background-color:#5e6d6f;align-items:center;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.5rem .75rem;position:relative}html.theme--documenter-dark .admonition-header:before{font-family:"Font Awesome 5 Free";font-weight:900;margin-right:.75rem;content:"\f06a"}html.theme--documenter-dark .admonition-body{color:#fff;padding:0.5rem .75rem}html.theme--documenter-dark .admonition-body pre{background-color:#282f2f}html.theme--documenter-dark .admonition-body code{background-color:rgba(255,255,255,0.05)}html.theme--documenter-dark .docstring{margin-bottom:1em;background-color:rgba(0,0,0,0);border:1px solid #5e6d6f;box-shadow:none;max-width:100%}html.theme--documenter-dark .docstring>header{display:flex;flex-grow:1;align-items:stretch;padding:0.5rem .75rem;background-color:#282f2f;box-shadow:0 1px 2px rgba(10,10,10,0.1);box-shadow:none;border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .docstring>header code{background-color:transparent}html.theme--documenter-dark .docstring>header .docstring-binding{margin-right:0.3em}html.theme--documenter-dark .docstring>header .docstring-category{margin-left:0.3em}html.theme--documenter-dark .docstring>section{position:relative;padding:.75rem .75rem;border-bottom:1px solid #5e6d6f}html.theme--documenter-dark .docstring>section:last-child{border-bottom:none}html.theme--documenter-dark .docstring>section>a.docs-sourcelink{transition:opacity 0.3s;opacity:0;position:absolute;right:.375rem;bottom:.375rem}html.theme--documenter-dark .docstring>section>a.docs-sourcelink:focus{opacity:1 !important}html.theme--documenter-dark .docstring:hover>section>a.docs-sourcelink{opacity:0.2}html.theme--documenter-dark .docstring:focus-within>section>a.docs-sourcelink{opacity:0.2}html.theme--documenter-dark .docstring>section:hover a.docs-sourcelink{opacity:1}html.theme--documenter-dark .documenter-example-output{background-color:#1f2424}html.theme--documenter-dark .outdated-warning-overlay{position:fixed;top:0;left:0;right:0;box-shadow:0 0 10px rgba(0,0,0,0.3);z-index:999;background-color:#282f2f;color:#fff;border-bottom:3px solid #9e1b0d;padding:10px 35px;text-align:center;font-size:15px}html.theme--documenter-dark .outdated-warning-overlay .outdated-warning-closer{position:absolute;top:calc(50% - 10px);right:18px;cursor:pointer;width:12px}html.theme--documenter-dark .outdated-warning-overlay a{color:#1abc9c}html.theme--documenter-dark .outdated-warning-overlay a:hover{color:#1dd2af}html.theme--documenter-dark .content pre{border:1px solid #5e6d6f}html.theme--documenter-dark .content code{font-weight:inherit}html.theme--documenter-dark .content a code{color:#1abc9c}html.theme--documenter-dark .content h1 code,html.theme--documenter-dark .content h2 code,html.theme--documenter-dark .content h3 code,html.theme--documenter-dark .content h4 code,html.theme--documenter-dark .content h5 code,html.theme--documenter-dark .content h6 code{color:#f2f2f2}html.theme--documenter-dark .content table{display:block;width:initial;max-width:100%;overflow-x:auto}html.theme--documenter-dark .content blockquote>ul:first-child,html.theme--documenter-dark .content blockquote>ol:first-child,html.theme--documenter-dark .content .admonition-body>ul:first-child,html.theme--documenter-dark .content .admonition-body>ol:first-child{margin-top:0}html.theme--documenter-dark pre,html.theme--documenter-dark code{font-variant-ligatures:no-contextual}html.theme--documenter-dark .breadcrumb a.is-disabled{cursor:default;pointer-events:none}html.theme--documenter-dark .breadcrumb a.is-disabled,html.theme--documenter-dark .breadcrumb a.is-disabled:hover{color:#f2f2f2}html.theme--documenter-dark .hljs{background:initial !important}html.theme--documenter-dark .katex .katex-mathml{top:0;right:0}html.theme--documenter-dark .katex-display,html.theme--documenter-dark mjx-container,html.theme--documenter-dark .MathJax_Display{margin:0.5em 0 !important}html.theme--documenter-dark html{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto}html.theme--documenter-dark li.no-marker{list-style:none}html.theme--documenter-dark #documenter .docs-main>article{overflow-wrap:break-word}html.theme--documenter-dark #documenter .docs-main>article .math-container{overflow-x:auto;overflow-y:hidden}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-main{max-width:52rem;margin-left:20rem;padding-right:1rem}}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main{width:100%}html.theme--documenter-dark #documenter .docs-main>article{max-width:52rem;margin-left:auto;margin-right:auto;margin-bottom:1rem;padding:0 1rem}html.theme--documenter-dark #documenter .docs-main>header,html.theme--documenter-dark #documenter .docs-main>nav{max-width:100%;width:100%;margin:0}}html.theme--documenter-dark #documenter .docs-main header.docs-navbar{background-color:#1f2424;border-bottom:1px solid #5e6d6f;z-index:2;min-height:4rem;margin-bottom:1rem;display:flex}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .breadcrumb{flex-grow:1}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right{display:flex;white-space:nowrap}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-icon,html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label,html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{display:inline-block}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label{padding:0;margin-left:0.3em}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button{margin:auto 0 auto 1rem}html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{font-size:1.5rem;margin:auto 0 auto 1rem}html.theme--documenter-dark #documenter .docs-main header.docs-navbar>*{margin:auto 0}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main header.docs-navbar{position:sticky;top:0;padding:0 1rem;transition-property:top, box-shadow;-webkit-transition-property:top, box-shadow;transition-duration:0.3s;-webkit-transition-duration:0.3s}html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--not-top{box-shadow:.2rem 0rem .4rem #171717;transition-duration:0.7s;-webkit-transition-duration:0.7s}html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom{top:-4.5rem;transition-duration:0.7s;-webkit-transition-duration:0.7s}}html.theme--documenter-dark #documenter .docs-main section.footnotes{border-top:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-main section.footnotes li .tag:first-child,html.theme--documenter-dark #documenter .docs-main section.footnotes li .docstring>section>a.docs-sourcelink:first-child,html.theme--documenter-dark #documenter .docs-main section.footnotes li .content kbd:first-child,html.theme--documenter-dark .content #documenter .docs-main section.footnotes li kbd:first-child{margin-right:1em;margin-bottom:0.4em}html.theme--documenter-dark #documenter .docs-main .docs-footer{display:flex;flex-wrap:wrap;margin-left:0;margin-right:0;border-top:1px solid #5e6d6f;padding-top:1rem;padding-bottom:1rem}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-main .docs-footer{padding-left:1rem;padding-right:1rem}}html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage,html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-prevpage{flex-grow:1}html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage{text-align:right}html.theme--documenter-dark #documenter .docs-main .docs-footer .flexbox-break{flex-basis:100%;height:0}html.theme--documenter-dark #documenter .docs-main .docs-footer .footer-message{font-size:0.8em;margin:0.5em auto 0 auto;text-align:center}html.theme--documenter-dark #documenter .docs-sidebar{display:flex;flex-direction:column;color:#fff;background-color:#282f2f;border-right:1px solid #5e6d6f;padding:0;flex:0 0 18rem;z-index:5;font-size:15px;position:fixed;left:-18rem;width:18rem;height:100%;transition:left 0.3s}html.theme--documenter-dark #documenter .docs-sidebar.visible{left:0;box-shadow:.4rem 0rem .8rem #171717}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar.visible{box-shadow:none}}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar{left:0;top:0}}html.theme--documenter-dark #documenter .docs-sidebar .docs-logo{margin-top:1rem;padding:0 1rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-logo>img{max-height:6rem;margin:auto}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name{flex-shrink:0;font-size:1.5rem;font-weight:700;text-align:center;white-space:nowrap;overflow:hidden;padding:0.5rem 0}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name .docs-autofit{max-width:16.2rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a,html.theme--documenter-dark #documenter .docs-sidebar .docs-package-name a:hover{color:#fff}html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector{border-top:1px solid #5e6d6f;display:none;padding:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar .docs-version-selector.visible{display:flex}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu{flex-grow:1;user-select:none;border-top:1px solid #5e6d6f;padding-bottom:1.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li>.tocitem{font-weight:bold}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li li{font-size:14.25px;margin-left:1em;border-left:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input.collapse-toggle{display:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.collapsed{display:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked~ul.collapsed{display:block}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem{display:flex}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label{flex-grow:2}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron{display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;font-size:11.25px;margin-left:1rem;margin-top:auto;margin-bottom:auto}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f054"}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked~label.tocitem .docs-chevron::before{content:"\f078"}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem{display:block;padding:0.5rem 0.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem:hover{color:#fff;background:#282f2f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu a.tocitem:hover,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem:hover{color:#fff;background-color:#32393a}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active{border-top:1px solid #5e6d6f;border-bottom:1px solid #5e6d6f;background-color:#1f2424}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem,html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover{background-color:#1f2424;color:#fff}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover{background-color:#32393a;color:#fff}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu>li.is-active:first-child{border-top:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal{margin:0 0.5rem 0.5rem;border-top:1px solid #5e6d6f}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal li{font-size:12.75px;border-left:none;margin-left:0;margin-top:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem{width:100%;padding:0}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before{content:"⚬";margin-right:0.4em}html.theme--documenter-dark #documenter .docs-sidebar form.docs-search{margin:auto;margin-top:0.5rem;margin-bottom:0.5rem}html.theme--documenter-dark #documenter .docs-sidebar form.docs-search>input{width:14.4rem}@media screen and (min-width: 1056px){html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu{overflow-y:auto;-webkit-overflow-scroll:touch}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar{width:.3rem;background:none}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#3b4445}html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover{background:#4e5a5c}}@media screen and (max-width: 1055px){html.theme--documenter-dark #documenter .docs-sidebar{overflow-y:auto;-webkit-overflow-scroll:touch}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar{width:.3rem;background:none}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#3b4445}html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover{background:#4e5a5c}}html.theme--documenter-dark #documenter .docs-main #documenter-search-info{margin-bottom:1rem}html.theme--documenter-dark #documenter .docs-main #documenter-search-results{list-style-type:circle;list-style-position:outside}html.theme--documenter-dark #documenter .docs-main #documenter-search-results li{margin-left:2rem}html.theme--documenter-dark #documenter .docs-main #documenter-search-results .docs-highlight{background-color:yellow}html.theme--documenter-dark{background-color:#1f2424;font-size:16px;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}html.theme--documenter-dark .ansi span.sgr1{font-weight:bolder}html.theme--documenter-dark .ansi span.sgr2{font-weight:lighter}html.theme--documenter-dark .ansi span.sgr3{font-style:italic}html.theme--documenter-dark .ansi span.sgr4{text-decoration:underline}html.theme--documenter-dark .ansi span.sgr7{color:#1f2424;background-color:#fff}html.theme--documenter-dark .ansi span.sgr8{color:transparent}html.theme--documenter-dark .ansi span.sgr8 span{color:transparent}html.theme--documenter-dark .ansi span.sgr9{text-decoration:line-through}html.theme--documenter-dark .ansi span.sgr30{color:#242424}html.theme--documenter-dark .ansi span.sgr31{color:#f6705f}html.theme--documenter-dark .ansi span.sgr32{color:#4fb43a}html.theme--documenter-dark .ansi span.sgr33{color:#f4c72f}html.theme--documenter-dark .ansi span.sgr34{color:#7587f0}html.theme--documenter-dark .ansi span.sgr35{color:#bc89d3}html.theme--documenter-dark .ansi span.sgr36{color:#49b6ca}html.theme--documenter-dark .ansi span.sgr37{color:#b3bdbe}html.theme--documenter-dark .ansi span.sgr40{background-color:#242424}html.theme--documenter-dark .ansi span.sgr41{background-color:#f6705f}html.theme--documenter-dark .ansi span.sgr42{background-color:#4fb43a}html.theme--documenter-dark .ansi span.sgr43{background-color:#f4c72f}html.theme--documenter-dark .ansi span.sgr44{background-color:#7587f0}html.theme--documenter-dark .ansi span.sgr45{background-color:#bc89d3}html.theme--documenter-dark .ansi span.sgr46{background-color:#49b6ca}html.theme--documenter-dark .ansi span.sgr47{background-color:#b3bdbe}html.theme--documenter-dark .ansi span.sgr90{color:#92a0a2}html.theme--documenter-dark .ansi span.sgr91{color:#ff8674}html.theme--documenter-dark .ansi span.sgr92{color:#79d462}html.theme--documenter-dark .ansi span.sgr93{color:#ffe76b}html.theme--documenter-dark .ansi span.sgr94{color:#8a98ff}html.theme--documenter-dark .ansi span.sgr95{color:#d2a4e6}html.theme--documenter-dark .ansi span.sgr96{color:#6bc8db}html.theme--documenter-dark .ansi span.sgr97{color:#ecf0f1}html.theme--documenter-dark .ansi span.sgr100{background-color:#92a0a2}html.theme--documenter-dark .ansi span.sgr101{background-color:#ff8674}html.theme--documenter-dark .ansi span.sgr102{background-color:#79d462}html.theme--documenter-dark .ansi span.sgr103{background-color:#ffe76b}html.theme--documenter-dark .ansi span.sgr104{background-color:#8a98ff}html.theme--documenter-dark .ansi span.sgr105{background-color:#d2a4e6}html.theme--documenter-dark .ansi span.sgr106{background-color:#6bc8db}html.theme--documenter-dark .ansi span.sgr107{background-color:#ecf0f1}html.theme--documenter-dark code.language-julia-repl>span.hljs-meta{color:#4fb43a;font-weight:bolder}html.theme--documenter-dark .hljs{background:#2b2b2b;color:#f8f8f2}html.theme--documenter-dark .hljs-comment,html.theme--documenter-dark .hljs-quote{color:#d4d0ab}html.theme--documenter-dark .hljs-variable,html.theme--documenter-dark .hljs-template-variable,html.theme--documenter-dark .hljs-tag,html.theme--documenter-dark .hljs-name,html.theme--documenter-dark .hljs-selector-id,html.theme--documenter-dark .hljs-selector-class,html.theme--documenter-dark .hljs-regexp,html.theme--documenter-dark .hljs-deletion{color:#ffa07a}html.theme--documenter-dark .hljs-number,html.theme--documenter-dark .hljs-built_in,html.theme--documenter-dark .hljs-literal,html.theme--documenter-dark .hljs-type,html.theme--documenter-dark .hljs-params,html.theme--documenter-dark .hljs-meta,html.theme--documenter-dark .hljs-link{color:#f5ab35}html.theme--documenter-dark .hljs-attribute{color:#ffd700}html.theme--documenter-dark .hljs-string,html.theme--documenter-dark .hljs-symbol,html.theme--documenter-dark .hljs-bullet,html.theme--documenter-dark .hljs-addition{color:#abe338}html.theme--documenter-dark .hljs-title,html.theme--documenter-dark .hljs-section{color:#00e0e0}html.theme--documenter-dark .hljs-keyword,html.theme--documenter-dark .hljs-selector-tag{color:#dcc6e0}html.theme--documenter-dark .hljs-emphasis{font-style:italic}html.theme--documenter-dark .hljs-strong{font-weight:bold}@media screen and (-ms-high-contrast: active){html.theme--documenter-dark .hljs-addition,html.theme--documenter-dark .hljs-attribute,html.theme--documenter-dark .hljs-built_in,html.theme--documenter-dark .hljs-bullet,html.theme--documenter-dark .hljs-comment,html.theme--documenter-dark .hljs-link,html.theme--documenter-dark .hljs-literal,html.theme--documenter-dark .hljs-meta,html.theme--documenter-dark .hljs-number,html.theme--documenter-dark .hljs-params,html.theme--documenter-dark .hljs-string,html.theme--documenter-dark .hljs-symbol,html.theme--documenter-dark .hljs-type,html.theme--documenter-dark .hljs-quote{color:highlight}html.theme--documenter-dark .hljs-keyword,html.theme--documenter-dark .hljs-selector-tag{font-weight:bold}}html.theme--documenter-dark .hljs-subst{color:#f8f8f2} diff --git a/previews/PR362/assets/themes/documenter-light.css b/previews/PR362/assets/themes/documenter-light.css new file mode 100644 index 000000000..9b9a14b04 --- /dev/null +++ b/previews/PR362/assets/themes/documenter-light.css @@ -0,0 +1,9 @@ +@keyframes spinAround{from{transform:rotate(0deg)}to{transform:rotate(359deg)}}.tabs,.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis,.breadcrumb,.file,.button,.is-unselectable,.modal-close,.delete{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.navbar-link:not(.is-arrowless)::after,.select:not(.is-multiple):not(.is-loading)::after{border:3px solid rgba(0,0,0,0);border-radius:2px;border-right:0;border-top:0;content:" ";display:block;height:0.625em;margin-top:-0.4375em;pointer-events:none;position:absolute;top:50%;transform:rotate(-45deg);transform-origin:center;width:0.625em}.admonition:not(:last-child),.tabs:not(:last-child),.message:not(:last-child),.list:not(:last-child),.level:not(:last-child),.breadcrumb:not(:last-child),.highlight:not(:last-child),.block:not(:last-child),.title:not(:last-child),.subtitle:not(:last-child),.table-container:not(:last-child),.table:not(:last-child),.progress:not(:last-child),.notification:not(:last-child),.content:not(:last-child),.box:not(:last-child){margin-bottom:1.5rem}.modal-close,.delete{-moz-appearance:none;-webkit-appearance:none;background-color:rgba(10,10,10,0.2);border:none;border-radius:290486px;cursor:pointer;pointer-events:auto;display:inline-block;flex-grow:0;flex-shrink:0;font-size:0;height:20px;max-height:20px;max-width:20px;min-height:20px;min-width:20px;outline:none;position:relative;vertical-align:top;width:20px}.modal-close::before,.delete::before,.modal-close::after,.delete::after{background-color:#fff;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.modal-close::before,.delete::before{height:2px;width:50%}.modal-close::after,.delete::after{height:50%;width:2px}.modal-close:hover,.delete:hover,.modal-close:focus,.delete:focus{background-color:rgba(10,10,10,0.3)}.modal-close:active,.delete:active{background-color:rgba(10,10,10,0.4)}.is-small.modal-close,#documenter .docs-sidebar form.docs-search>input.modal-close,.is-small.delete,#documenter .docs-sidebar form.docs-search>input.delete{height:16px;max-height:16px;max-width:16px;min-height:16px;min-width:16px;width:16px}.is-medium.modal-close,.is-medium.delete{height:24px;max-height:24px;max-width:24px;min-height:24px;min-width:24px;width:24px}.is-large.modal-close,.is-large.delete{height:32px;max-height:32px;max-width:32px;min-height:32px;min-width:32px;width:32px}.control.is-loading::after,.select.is-loading::after,.loader,.button.is-loading::after{animation:spinAround 500ms infinite linear;border:2px solid #dbdbdb;border-radius:290486px;border-right-color:transparent;border-top-color:transparent;content:"";display:block;height:1em;position:relative;width:1em}.hero-video,.modal-background,.modal,.image.is-square img,#documenter .docs-sidebar .docs-logo>img.is-square img,.image.is-square .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,.image.is-1by1 img,#documenter .docs-sidebar .docs-logo>img.is-1by1 img,.image.is-1by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,.image.is-5by4 img,#documenter .docs-sidebar .docs-logo>img.is-5by4 img,.image.is-5by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,.image.is-4by3 img,#documenter .docs-sidebar .docs-logo>img.is-4by3 img,.image.is-4by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,.image.is-3by2 img,#documenter .docs-sidebar .docs-logo>img.is-3by2 img,.image.is-3by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,.image.is-5by3 img,#documenter .docs-sidebar .docs-logo>img.is-5by3 img,.image.is-5by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,.image.is-16by9 img,#documenter .docs-sidebar .docs-logo>img.is-16by9 img,.image.is-16by9 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,.image.is-2by1 img,#documenter .docs-sidebar .docs-logo>img.is-2by1 img,.image.is-2by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,.image.is-3by1 img,#documenter .docs-sidebar .docs-logo>img.is-3by1 img,.image.is-3by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,.image.is-4by5 img,#documenter .docs-sidebar .docs-logo>img.is-4by5 img,.image.is-4by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,.image.is-3by4 img,#documenter .docs-sidebar .docs-logo>img.is-3by4 img,.image.is-3by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,.image.is-2by3 img,#documenter .docs-sidebar .docs-logo>img.is-2by3 img,.image.is-2by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,.image.is-3by5 img,#documenter .docs-sidebar .docs-logo>img.is-3by5 img,.image.is-3by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,.image.is-9by16 img,#documenter .docs-sidebar .docs-logo>img.is-9by16 img,.image.is-9by16 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,.image.is-1by2 img,#documenter .docs-sidebar .docs-logo>img.is-1by2 img,.image.is-1by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,.image.is-1by3 img,#documenter .docs-sidebar .docs-logo>img.is-1by3 img,.image.is-1by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio,.is-overlay{bottom:0;left:0;position:absolute;right:0;top:0}.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis,.file-cta,.file-name,.select select,.textarea,.input,#documenter .docs-sidebar form.docs-search>input,.button{-moz-appearance:none;-webkit-appearance:none;align-items:center;border:1px solid transparent;border-radius:4px;box-shadow:none;display:inline-flex;font-size:1rem;height:2.25em;justify-content:flex-start;line-height:1.5;padding-bottom:calc(0.375em - 1px);padding-left:calc(0.625em - 1px);padding-right:calc(0.625em - 1px);padding-top:calc(0.375em - 1px);position:relative;vertical-align:top}.pagination-previous:focus,.pagination-next:focus,.pagination-link:focus,.pagination-ellipsis:focus,.file-cta:focus,.file-name:focus,.select select:focus,.textarea:focus,.input:focus,#documenter .docs-sidebar form.docs-search>input:focus,.button:focus,.is-focused.pagination-previous,.is-focused.pagination-next,.is-focused.pagination-link,.is-focused.pagination-ellipsis,.is-focused.file-cta,.is-focused.file-name,.select select.is-focused,.is-focused.textarea,.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-focused.button,.pagination-previous:active,.pagination-next:active,.pagination-link:active,.pagination-ellipsis:active,.file-cta:active,.file-name:active,.select select:active,.textarea:active,.input:active,#documenter .docs-sidebar form.docs-search>input:active,.button:active,.is-active.pagination-previous,.is-active.pagination-next,.is-active.pagination-link,.is-active.pagination-ellipsis,.is-active.file-cta,.is-active.file-name,.select select.is-active,.is-active.textarea,.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.is-active.button{outline:none}.pagination-previous[disabled],.pagination-next[disabled],.pagination-link[disabled],.pagination-ellipsis[disabled],.file-cta[disabled],.file-name[disabled],.select select[disabled],.textarea[disabled],.input[disabled],#documenter .docs-sidebar form.docs-search>input[disabled],.button[disabled],fieldset[disabled] .pagination-previous,fieldset[disabled] .pagination-next,fieldset[disabled] .pagination-link,fieldset[disabled] .pagination-ellipsis,fieldset[disabled] .file-cta,fieldset[disabled] .file-name,fieldset[disabled] .select select,.select fieldset[disabled] select,fieldset[disabled] .textarea,fieldset[disabled] .input,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input,fieldset[disabled] .button{cursor:not-allowed}/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */html,body,p,ol,ul,li,dl,dt,dd,blockquote,figure,fieldset,legend,textarea,pre,iframe,hr,h1,h2,h3,h4,h5,h6{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font-size:100%;font-weight:normal}ul{list-style:none}button,input,select,textarea{margin:0}html{box-sizing:border-box}*,*::before,*::after{box-sizing:inherit}img,embed,iframe,object,video{height:auto;max-width:100%}audio{max-width:100%}iframe{border:0}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}td:not([align]),th:not([align]){text-align:left}html{background-color:#fff;font-size:16px;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;min-width:300px;overflow-x:auto;overflow-y:scroll;text-rendering:optimizeLegibility;text-size-adjust:100%}article,aside,figure,footer,header,hgroup,section{display:block}body,button,input,select,textarea{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif}code,pre{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto;font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace}body{color:#222;font-size:1em;font-weight:400;line-height:1.5}a{color:#2e63b8;cursor:pointer;text-decoration:none}a strong{color:currentColor}a:hover{color:#363636}code{background-color:rgba(0,0,0,0.05);color:#000;font-size:.875em;font-weight:normal;padding:.1em}hr{background-color:#f5f5f5;border:none;display:block;height:2px;margin:1.5rem 0}img{height:auto;max-width:100%}input[type="checkbox"],input[type="radio"]{vertical-align:baseline}small{font-size:.875em}span{font-style:inherit;font-weight:inherit}strong{color:#222;font-weight:700}fieldset{border:none}pre{-webkit-overflow-scrolling:touch;background-color:#f5f5f5;color:#222;font-size:.875em;overflow-x:auto;padding:1.25rem 1.5rem;white-space:pre;word-wrap:normal}pre code{background-color:transparent;color:currentColor;font-size:1em;padding:0}table td,table th{vertical-align:top}table td:not([align]),table th:not([align]){text-align:left}table th{color:#222}.is-clearfix::after{clear:both;content:" ";display:table}.is-pulled-left{float:left !important}.is-pulled-right{float:right !important}.is-clipped{overflow:hidden !important}.is-size-1{font-size:3rem !important}.is-size-2{font-size:2.5rem !important}.is-size-3{font-size:2rem !important}.is-size-4{font-size:1.5rem !important}.is-size-5{font-size:1.25rem !important}.is-size-6{font-size:1rem !important}.is-size-7,.docstring>section>a.docs-sourcelink{font-size:.75rem !important}@media screen and (max-width: 768px){.is-size-1-mobile{font-size:3rem !important}.is-size-2-mobile{font-size:2.5rem !important}.is-size-3-mobile{font-size:2rem !important}.is-size-4-mobile{font-size:1.5rem !important}.is-size-5-mobile{font-size:1.25rem !important}.is-size-6-mobile{font-size:1rem !important}.is-size-7-mobile{font-size:.75rem !important}}@media screen and (min-width: 769px),print{.is-size-1-tablet{font-size:3rem !important}.is-size-2-tablet{font-size:2.5rem !important}.is-size-3-tablet{font-size:2rem !important}.is-size-4-tablet{font-size:1.5rem !important}.is-size-5-tablet{font-size:1.25rem !important}.is-size-6-tablet{font-size:1rem !important}.is-size-7-tablet{font-size:.75rem !important}}@media screen and (max-width: 1055px){.is-size-1-touch{font-size:3rem !important}.is-size-2-touch{font-size:2.5rem !important}.is-size-3-touch{font-size:2rem !important}.is-size-4-touch{font-size:1.5rem !important}.is-size-5-touch{font-size:1.25rem !important}.is-size-6-touch{font-size:1rem !important}.is-size-7-touch{font-size:.75rem !important}}@media screen and (min-width: 1056px){.is-size-1-desktop{font-size:3rem !important}.is-size-2-desktop{font-size:2.5rem !important}.is-size-3-desktop{font-size:2rem !important}.is-size-4-desktop{font-size:1.5rem !important}.is-size-5-desktop{font-size:1.25rem !important}.is-size-6-desktop{font-size:1rem !important}.is-size-7-desktop{font-size:.75rem !important}}@media screen and (min-width: 1216px){.is-size-1-widescreen{font-size:3rem !important}.is-size-2-widescreen{font-size:2.5rem !important}.is-size-3-widescreen{font-size:2rem !important}.is-size-4-widescreen{font-size:1.5rem !important}.is-size-5-widescreen{font-size:1.25rem !important}.is-size-6-widescreen{font-size:1rem !important}.is-size-7-widescreen{font-size:.75rem !important}}@media screen and (min-width: 1408px){.is-size-1-fullhd{font-size:3rem !important}.is-size-2-fullhd{font-size:2.5rem !important}.is-size-3-fullhd{font-size:2rem !important}.is-size-4-fullhd{font-size:1.5rem !important}.is-size-5-fullhd{font-size:1.25rem !important}.is-size-6-fullhd{font-size:1rem !important}.is-size-7-fullhd{font-size:.75rem !important}}.has-text-centered{text-align:center !important}.has-text-justified{text-align:justify !important}.has-text-left{text-align:left !important}.has-text-right{text-align:right !important}@media screen and (max-width: 768px){.has-text-centered-mobile{text-align:center !important}}@media screen and (min-width: 769px),print{.has-text-centered-tablet{text-align:center !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-centered-tablet-only{text-align:center !important}}@media screen and (max-width: 1055px){.has-text-centered-touch{text-align:center !important}}@media screen and (min-width: 1056px){.has-text-centered-desktop{text-align:center !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-centered-desktop-only{text-align:center !important}}@media screen and (min-width: 1216px){.has-text-centered-widescreen{text-align:center !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-centered-widescreen-only{text-align:center !important}}@media screen and (min-width: 1408px){.has-text-centered-fullhd{text-align:center !important}}@media screen and (max-width: 768px){.has-text-justified-mobile{text-align:justify !important}}@media screen and (min-width: 769px),print{.has-text-justified-tablet{text-align:justify !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-justified-tablet-only{text-align:justify !important}}@media screen and (max-width: 1055px){.has-text-justified-touch{text-align:justify !important}}@media screen and (min-width: 1056px){.has-text-justified-desktop{text-align:justify !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-justified-desktop-only{text-align:justify !important}}@media screen and (min-width: 1216px){.has-text-justified-widescreen{text-align:justify !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-justified-widescreen-only{text-align:justify !important}}@media screen and (min-width: 1408px){.has-text-justified-fullhd{text-align:justify !important}}@media screen and (max-width: 768px){.has-text-left-mobile{text-align:left !important}}@media screen and (min-width: 769px),print{.has-text-left-tablet{text-align:left !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-left-tablet-only{text-align:left !important}}@media screen and (max-width: 1055px){.has-text-left-touch{text-align:left !important}}@media screen and (min-width: 1056px){.has-text-left-desktop{text-align:left !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-left-desktop-only{text-align:left !important}}@media screen and (min-width: 1216px){.has-text-left-widescreen{text-align:left !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-left-widescreen-only{text-align:left !important}}@media screen and (min-width: 1408px){.has-text-left-fullhd{text-align:left !important}}@media screen and (max-width: 768px){.has-text-right-mobile{text-align:right !important}}@media screen and (min-width: 769px),print{.has-text-right-tablet{text-align:right !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.has-text-right-tablet-only{text-align:right !important}}@media screen and (max-width: 1055px){.has-text-right-touch{text-align:right !important}}@media screen and (min-width: 1056px){.has-text-right-desktop{text-align:right !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.has-text-right-desktop-only{text-align:right !important}}@media screen and (min-width: 1216px){.has-text-right-widescreen{text-align:right !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.has-text-right-widescreen-only{text-align:right !important}}@media screen and (min-width: 1408px){.has-text-right-fullhd{text-align:right !important}}.is-capitalized{text-transform:capitalize !important}.is-lowercase{text-transform:lowercase !important}.is-uppercase{text-transform:uppercase !important}.is-italic{font-style:italic !important}.has-text-white{color:#fff !important}a.has-text-white:hover,a.has-text-white:focus{color:#e6e6e6 !important}.has-background-white{background-color:#fff !important}.has-text-black{color:#0a0a0a !important}a.has-text-black:hover,a.has-text-black:focus{color:#000 !important}.has-background-black{background-color:#0a0a0a !important}.has-text-light{color:#f5f5f5 !important}a.has-text-light:hover,a.has-text-light:focus{color:#dbdbdb !important}.has-background-light{background-color:#f5f5f5 !important}.has-text-dark{color:#363636 !important}a.has-text-dark:hover,a.has-text-dark:focus{color:#1c1c1c !important}.has-background-dark{background-color:#363636 !important}.has-text-primary{color:#4eb5de !important}a.has-text-primary:hover,a.has-text-primary:focus{color:#27a1d2 !important}.has-background-primary{background-color:#4eb5de !important}.has-text-link{color:#2e63b8 !important}a.has-text-link:hover,a.has-text-link:focus{color:#244d8f !important}.has-background-link{background-color:#2e63b8 !important}.has-text-info{color:#209cee !important}a.has-text-info:hover,a.has-text-info:focus{color:#1081cb !important}.has-background-info{background-color:#209cee !important}.has-text-success{color:#22c35b !important}a.has-text-success:hover,a.has-text-success:focus{color:#1a9847 !important}.has-background-success{background-color:#22c35b !important}.has-text-warning{color:#ffdd57 !important}a.has-text-warning:hover,a.has-text-warning:focus{color:#ffd324 !important}.has-background-warning{background-color:#ffdd57 !important}.has-text-danger{color:#da0b00 !important}a.has-text-danger:hover,a.has-text-danger:focus{color:#a70800 !important}.has-background-danger{background-color:#da0b00 !important}.has-text-black-bis{color:#121212 !important}.has-background-black-bis{background-color:#121212 !important}.has-text-black-ter{color:#242424 !important}.has-background-black-ter{background-color:#242424 !important}.has-text-grey-darker{color:#363636 !important}.has-background-grey-darker{background-color:#363636 !important}.has-text-grey-dark{color:#4a4a4a !important}.has-background-grey-dark{background-color:#4a4a4a !important}.has-text-grey{color:#6b6b6b !important}.has-background-grey{background-color:#6b6b6b !important}.has-text-grey-light{color:#b5b5b5 !important}.has-background-grey-light{background-color:#b5b5b5 !important}.has-text-grey-lighter{color:#dbdbdb !important}.has-background-grey-lighter{background-color:#dbdbdb !important}.has-text-white-ter{color:#f5f5f5 !important}.has-background-white-ter{background-color:#f5f5f5 !important}.has-text-white-bis{color:#fafafa !important}.has-background-white-bis{background-color:#fafafa !important}.has-text-weight-light{font-weight:300 !important}.has-text-weight-normal{font-weight:400 !important}.has-text-weight-medium{font-weight:500 !important}.has-text-weight-semibold{font-weight:600 !important}.has-text-weight-bold{font-weight:700 !important}.is-family-primary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-secondary{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-sans-serif{font-family:"Lato Medium",-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue","Helvetica","Arial",sans-serif !important}.is-family-monospace{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-family-code{font-family:"JuliaMono","SFMono-Regular","Menlo","Consolas","Liberation Mono","DejaVu Sans Mono",monospace !important}.is-block{display:block !important}@media screen and (max-width: 768px){.is-block-mobile{display:block !important}}@media screen and (min-width: 769px),print{.is-block-tablet{display:block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-block-tablet-only{display:block !important}}@media screen and (max-width: 1055px){.is-block-touch{display:block !important}}@media screen and (min-width: 1056px){.is-block-desktop{display:block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-block-desktop-only{display:block !important}}@media screen and (min-width: 1216px){.is-block-widescreen{display:block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-block-widescreen-only{display:block !important}}@media screen and (min-width: 1408px){.is-block-fullhd{display:block !important}}.is-flex{display:flex !important}@media screen and (max-width: 768px){.is-flex-mobile{display:flex !important}}@media screen and (min-width: 769px),print{.is-flex-tablet{display:flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-flex-tablet-only{display:flex !important}}@media screen and (max-width: 1055px){.is-flex-touch{display:flex !important}}@media screen and (min-width: 1056px){.is-flex-desktop{display:flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-flex-desktop-only{display:flex !important}}@media screen and (min-width: 1216px){.is-flex-widescreen{display:flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-flex-widescreen-only{display:flex !important}}@media screen and (min-width: 1408px){.is-flex-fullhd{display:flex !important}}.is-inline{display:inline !important}@media screen and (max-width: 768px){.is-inline-mobile{display:inline !important}}@media screen and (min-width: 769px),print{.is-inline-tablet{display:inline !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-tablet-only{display:inline !important}}@media screen and (max-width: 1055px){.is-inline-touch{display:inline !important}}@media screen and (min-width: 1056px){.is-inline-desktop{display:inline !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-desktop-only{display:inline !important}}@media screen and (min-width: 1216px){.is-inline-widescreen{display:inline !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-widescreen-only{display:inline !important}}@media screen and (min-width: 1408px){.is-inline-fullhd{display:inline !important}}.is-inline-block{display:inline-block !important}@media screen and (max-width: 768px){.is-inline-block-mobile{display:inline-block !important}}@media screen and (min-width: 769px),print{.is-inline-block-tablet{display:inline-block !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-block-tablet-only{display:inline-block !important}}@media screen and (max-width: 1055px){.is-inline-block-touch{display:inline-block !important}}@media screen and (min-width: 1056px){.is-inline-block-desktop{display:inline-block !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-block-desktop-only{display:inline-block !important}}@media screen and (min-width: 1216px){.is-inline-block-widescreen{display:inline-block !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-block-widescreen-only{display:inline-block !important}}@media screen and (min-width: 1408px){.is-inline-block-fullhd{display:inline-block !important}}.is-inline-flex{display:inline-flex !important}@media screen and (max-width: 768px){.is-inline-flex-mobile{display:inline-flex !important}}@media screen and (min-width: 769px),print{.is-inline-flex-tablet{display:inline-flex !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-inline-flex-tablet-only{display:inline-flex !important}}@media screen and (max-width: 1055px){.is-inline-flex-touch{display:inline-flex !important}}@media screen and (min-width: 1056px){.is-inline-flex-desktop{display:inline-flex !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-inline-flex-desktop-only{display:inline-flex !important}}@media screen and (min-width: 1216px){.is-inline-flex-widescreen{display:inline-flex !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-inline-flex-widescreen-only{display:inline-flex !important}}@media screen and (min-width: 1408px){.is-inline-flex-fullhd{display:inline-flex !important}}.is-hidden{display:none !important}.is-sr-only{border:none !important;clip:rect(0, 0, 0, 0) !important;height:0.01em !important;overflow:hidden !important;padding:0 !important;position:absolute !important;white-space:nowrap !important;width:0.01em !important}@media screen and (max-width: 768px){.is-hidden-mobile{display:none !important}}@media screen and (min-width: 769px),print{.is-hidden-tablet{display:none !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-hidden-tablet-only{display:none !important}}@media screen and (max-width: 1055px){.is-hidden-touch{display:none !important}}@media screen and (min-width: 1056px){.is-hidden-desktop{display:none !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-hidden-desktop-only{display:none !important}}@media screen and (min-width: 1216px){.is-hidden-widescreen{display:none !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-hidden-widescreen-only{display:none !important}}@media screen and (min-width: 1408px){.is-hidden-fullhd{display:none !important}}.is-invisible{visibility:hidden !important}@media screen and (max-width: 768px){.is-invisible-mobile{visibility:hidden !important}}@media screen and (min-width: 769px),print{.is-invisible-tablet{visibility:hidden !important}}@media screen and (min-width: 769px) and (max-width: 1055px){.is-invisible-tablet-only{visibility:hidden !important}}@media screen and (max-width: 1055px){.is-invisible-touch{visibility:hidden !important}}@media screen and (min-width: 1056px){.is-invisible-desktop{visibility:hidden !important}}@media screen and (min-width: 1056px) and (max-width: 1215px){.is-invisible-desktop-only{visibility:hidden !important}}@media screen and (min-width: 1216px){.is-invisible-widescreen{visibility:hidden !important}}@media screen and (min-width: 1216px) and (max-width: 1407px){.is-invisible-widescreen-only{visibility:hidden !important}}@media screen and (min-width: 1408px){.is-invisible-fullhd{visibility:hidden !important}}.is-marginless{margin:0 !important}.is-paddingless{padding:0 !important}.is-radiusless{border-radius:0 !important}.is-shadowless{box-shadow:none !important}.is-relative{position:relative !important}.box{background-color:#fff;border-radius:6px;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);color:#222;display:block;padding:1.25rem}a.box:hover,a.box:focus{box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px #2e63b8}a.box:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2),0 0 0 1px #2e63b8}.button{background-color:#fff;border-color:#dbdbdb;border-width:1px;color:#363636;cursor:pointer;justify-content:center;padding-bottom:calc(0.375em - 1px);padding-left:.75em;padding-right:.75em;padding-top:calc(0.375em - 1px);text-align:center;white-space:nowrap}.button strong{color:inherit}.button .icon,.button .icon.is-small,.button #documenter .docs-sidebar form.docs-search>input.icon,#documenter .docs-sidebar .button form.docs-search>input.icon,.button .icon.is-medium,.button .icon.is-large{height:1.5em;width:1.5em}.button .icon:first-child:not(:last-child){margin-left:calc(-0.375em - 1px);margin-right:0.1875em}.button .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:calc(-0.375em - 1px)}.button .icon:first-child:last-child{margin-left:calc(-0.375em - 1px);margin-right:calc(-0.375em - 1px)}.button:hover,.button.is-hovered{border-color:#b5b5b5;color:#363636}.button:focus,.button.is-focused{border-color:#3c5dcd;color:#363636}.button:focus:not(:active),.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.button:active,.button.is-active{border-color:#4a4a4a;color:#363636}.button.is-text{background-color:transparent;border-color:transparent;color:#222;text-decoration:underline}.button.is-text:hover,.button.is-text.is-hovered,.button.is-text:focus,.button.is-text.is-focused{background-color:#f5f5f5;color:#222}.button.is-text:active,.button.is-text.is-active{background-color:#e8e8e8;color:#222}.button.is-text[disabled],fieldset[disabled] .button.is-text{background-color:transparent;border-color:transparent;box-shadow:none}.button.is-white{background-color:#fff;border-color:transparent;color:#0a0a0a}.button.is-white:hover,.button.is-white.is-hovered{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.button.is-white:focus,.button.is-white.is-focused{border-color:transparent;color:#0a0a0a}.button.is-white:focus:not(:active),.button.is-white.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.button.is-white:active,.button.is-white.is-active{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.button.is-white[disabled],fieldset[disabled] .button.is-white{background-color:#fff;border-color:transparent;box-shadow:none}.button.is-white.is-inverted{background-color:#0a0a0a;color:#fff}.button.is-white.is-inverted:hover,.button.is-white.is-inverted.is-hovered{background-color:#000}.button.is-white.is-inverted[disabled],fieldset[disabled] .button.is-white.is-inverted{background-color:#0a0a0a;border-color:transparent;box-shadow:none;color:#fff}.button.is-white.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-white.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-white.is-outlined:hover,.button.is-white.is-outlined.is-hovered,.button.is-white.is-outlined:focus,.button.is-white.is-outlined.is-focused{background-color:#fff;border-color:#fff;color:#0a0a0a}.button.is-white.is-outlined.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-white.is-outlined.is-loading:hover::after,.button.is-white.is-outlined.is-loading.is-hovered::after,.button.is-white.is-outlined.is-loading:focus::after,.button.is-white.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-white.is-outlined[disabled],fieldset[disabled] .button.is-white.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.button.is-white.is-inverted.is-outlined:hover,.button.is-white.is-inverted.is-outlined.is-hovered,.button.is-white.is-inverted.is-outlined:focus,.button.is-white.is-inverted.is-outlined.is-focused{background-color:#0a0a0a;color:#fff}.button.is-white.is-inverted.is-outlined.is-loading:hover::after,.button.is-white.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-white.is-inverted.is-outlined.is-loading:focus::after,.button.is-white.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-white.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-white.is-inverted.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.button.is-black{background-color:#0a0a0a;border-color:transparent;color:#fff}.button.is-black:hover,.button.is-black.is-hovered{background-color:#040404;border-color:transparent;color:#fff}.button.is-black:focus,.button.is-black.is-focused{border-color:transparent;color:#fff}.button.is-black:focus:not(:active),.button.is-black.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.button.is-black:active,.button.is-black.is-active{background-color:#000;border-color:transparent;color:#fff}.button.is-black[disabled],fieldset[disabled] .button.is-black{background-color:#0a0a0a;border-color:transparent;box-shadow:none}.button.is-black.is-inverted{background-color:#fff;color:#0a0a0a}.button.is-black.is-inverted:hover,.button.is-black.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-black.is-inverted[disabled],fieldset[disabled] .button.is-black.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#0a0a0a}.button.is-black.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;color:#0a0a0a}.button.is-black.is-outlined:hover,.button.is-black.is-outlined.is-hovered,.button.is-black.is-outlined:focus,.button.is-black.is-outlined.is-focused{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.button.is-black.is-outlined.is-loading::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-black.is-outlined.is-loading:hover::after,.button.is-black.is-outlined.is-loading.is-hovered::after,.button.is-black.is-outlined.is-loading:focus::after,.button.is-black.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-black.is-outlined[disabled],fieldset[disabled] .button.is-black.is-outlined{background-color:transparent;border-color:#0a0a0a;box-shadow:none;color:#0a0a0a}.button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-black.is-inverted.is-outlined:hover,.button.is-black.is-inverted.is-outlined.is-hovered,.button.is-black.is-inverted.is-outlined:focus,.button.is-black.is-inverted.is-outlined.is-focused{background-color:#fff;color:#0a0a0a}.button.is-black.is-inverted.is-outlined.is-loading:hover::after,.button.is-black.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-black.is-inverted.is-outlined.is-loading:focus::after,.button.is-black.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #0a0a0a #0a0a0a !important}.button.is-black.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-black.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-light{background-color:#f5f5f5;border-color:transparent;color:#363636}.button.is-light:hover,.button.is-light.is-hovered{background-color:#eee;border-color:transparent;color:#363636}.button.is-light:focus,.button.is-light.is-focused{border-color:transparent;color:#363636}.button.is-light:focus:not(:active),.button.is-light.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.button.is-light:active,.button.is-light.is-active{background-color:#e8e8e8;border-color:transparent;color:#363636}.button.is-light[disabled],fieldset[disabled] .button.is-light{background-color:#f5f5f5;border-color:transparent;box-shadow:none}.button.is-light.is-inverted{background-color:#363636;color:#f5f5f5}.button.is-light.is-inverted:hover,.button.is-light.is-inverted.is-hovered{background-color:#292929}.button.is-light.is-inverted[disabled],fieldset[disabled] .button.is-light.is-inverted{background-color:#363636;border-color:transparent;box-shadow:none;color:#f5f5f5}.button.is-light.is-loading::after{border-color:transparent transparent #363636 #363636 !important}.button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;color:#f5f5f5}.button.is-light.is-outlined:hover,.button.is-light.is-outlined.is-hovered,.button.is-light.is-outlined:focus,.button.is-light.is-outlined.is-focused{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.button.is-light.is-outlined.is-loading::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-light.is-outlined.is-loading:hover::after,.button.is-light.is-outlined.is-loading.is-hovered::after,.button.is-light.is-outlined.is-loading:focus::after,.button.is-light.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #363636 #363636 !important}.button.is-light.is-outlined[disabled],fieldset[disabled] .button.is-light.is-outlined{background-color:transparent;border-color:#f5f5f5;box-shadow:none;color:#f5f5f5}.button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#363636;color:#363636}.button.is-light.is-inverted.is-outlined:hover,.button.is-light.is-inverted.is-outlined.is-hovered,.button.is-light.is-inverted.is-outlined:focus,.button.is-light.is-inverted.is-outlined.is-focused{background-color:#363636;color:#f5f5f5}.button.is-light.is-inverted.is-outlined.is-loading:hover::after,.button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-light.is-inverted.is-outlined.is-loading:focus::after,.button.is-light.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-light.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-light.is-inverted.is-outlined{background-color:transparent;border-color:#363636;box-shadow:none;color:#363636}.button.is-dark,.content kbd.button{background-color:#363636;border-color:transparent;color:#f5f5f5}.button.is-dark:hover,.content kbd.button:hover,.button.is-dark.is-hovered,.content kbd.button.is-hovered{background-color:#2f2f2f;border-color:transparent;color:#f5f5f5}.button.is-dark:focus,.content kbd.button:focus,.button.is-dark.is-focused,.content kbd.button.is-focused{border-color:transparent;color:#f5f5f5}.button.is-dark:focus:not(:active),.content kbd.button:focus:not(:active),.button.is-dark.is-focused:not(:active),.content kbd.button.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.button.is-dark:active,.content kbd.button:active,.button.is-dark.is-active,.content kbd.button.is-active{background-color:#292929;border-color:transparent;color:#f5f5f5}.button.is-dark[disabled],.content kbd.button[disabled],fieldset[disabled] .button.is-dark,fieldset[disabled] .content kbd.button,.content fieldset[disabled] kbd.button{background-color:#363636;border-color:transparent;box-shadow:none}.button.is-dark.is-inverted,.content kbd.button.is-inverted{background-color:#f5f5f5;color:#363636}.button.is-dark.is-inverted:hover,.content kbd.button.is-inverted:hover,.button.is-dark.is-inverted.is-hovered,.content kbd.button.is-inverted.is-hovered{background-color:#e8e8e8}.button.is-dark.is-inverted[disabled],.content kbd.button.is-inverted[disabled],fieldset[disabled] .button.is-dark.is-inverted,fieldset[disabled] .content kbd.button.is-inverted,.content fieldset[disabled] kbd.button.is-inverted{background-color:#f5f5f5;border-color:transparent;box-shadow:none;color:#363636}.button.is-dark.is-loading::after,.content kbd.button.is-loading::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-dark.is-outlined,.content kbd.button.is-outlined{background-color:transparent;border-color:#363636;color:#363636}.button.is-dark.is-outlined:hover,.content kbd.button.is-outlined:hover,.button.is-dark.is-outlined.is-hovered,.content kbd.button.is-outlined.is-hovered,.button.is-dark.is-outlined:focus,.content kbd.button.is-outlined:focus,.button.is-dark.is-outlined.is-focused,.content kbd.button.is-outlined.is-focused{background-color:#363636;border-color:#363636;color:#f5f5f5}.button.is-dark.is-outlined.is-loading::after,.content kbd.button.is-outlined.is-loading::after{border-color:transparent transparent #363636 #363636 !important}.button.is-dark.is-outlined.is-loading:hover::after,.content kbd.button.is-outlined.is-loading:hover::after,.button.is-dark.is-outlined.is-loading.is-hovered::after,.content kbd.button.is-outlined.is-loading.is-hovered::after,.button.is-dark.is-outlined.is-loading:focus::after,.content kbd.button.is-outlined.is-loading:focus::after,.button.is-dark.is-outlined.is-loading.is-focused::after,.content kbd.button.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #f5f5f5 #f5f5f5 !important}.button.is-dark.is-outlined[disabled],.content kbd.button.is-outlined[disabled],fieldset[disabled] .button.is-dark.is-outlined,fieldset[disabled] .content kbd.button.is-outlined,.content fieldset[disabled] kbd.button.is-outlined{background-color:transparent;border-color:#363636;box-shadow:none;color:#363636}.button.is-dark.is-inverted.is-outlined,.content kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#f5f5f5;color:#f5f5f5}.button.is-dark.is-inverted.is-outlined:hover,.content kbd.button.is-inverted.is-outlined:hover,.button.is-dark.is-inverted.is-outlined.is-hovered,.content kbd.button.is-inverted.is-outlined.is-hovered,.button.is-dark.is-inverted.is-outlined:focus,.content kbd.button.is-inverted.is-outlined:focus,.button.is-dark.is-inverted.is-outlined.is-focused,.content kbd.button.is-inverted.is-outlined.is-focused{background-color:#f5f5f5;color:#363636}.button.is-dark.is-inverted.is-outlined.is-loading:hover::after,.content kbd.button.is-inverted.is-outlined.is-loading:hover::after,.button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after,.content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-dark.is-inverted.is-outlined.is-loading:focus::after,.content kbd.button.is-inverted.is-outlined.is-loading:focus::after,.button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after,.content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #363636 #363636 !important}.button.is-dark.is-inverted.is-outlined[disabled],.content kbd.button.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-dark.is-inverted.is-outlined,fieldset[disabled] .content kbd.button.is-inverted.is-outlined,.content fieldset[disabled] kbd.button.is-inverted.is-outlined{background-color:transparent;border-color:#f5f5f5;box-shadow:none;color:#f5f5f5}.button.is-primary,.docstring>section>a.button.docs-sourcelink{background-color:#4eb5de;border-color:transparent;color:#fff}.button.is-primary:hover,.docstring>section>a.button.docs-sourcelink:hover,.button.is-primary.is-hovered,.docstring>section>a.button.is-hovered.docs-sourcelink{background-color:#43b1dc;border-color:transparent;color:#fff}.button.is-primary:focus,.docstring>section>a.button.docs-sourcelink:focus,.button.is-primary.is-focused,.docstring>section>a.button.is-focused.docs-sourcelink{border-color:transparent;color:#fff}.button.is-primary:focus:not(:active),.docstring>section>a.button.docs-sourcelink:focus:not(:active),.button.is-primary.is-focused:not(:active),.docstring>section>a.button.is-focused.docs-sourcelink:not(:active){box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.button.is-primary:active,.docstring>section>a.button.docs-sourcelink:active,.button.is-primary.is-active,.docstring>section>a.button.is-active.docs-sourcelink{background-color:#39acda;border-color:transparent;color:#fff}.button.is-primary[disabled],.docstring>section>a.button.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary,fieldset[disabled] .docstring>section>a.button.docs-sourcelink{background-color:#4eb5de;border-color:transparent;box-shadow:none}.button.is-primary.is-inverted,.docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;color:#4eb5de}.button.is-primary.is-inverted:hover,.docstring>section>a.button.is-inverted.docs-sourcelink:hover,.button.is-primary.is-inverted.is-hovered,.docstring>section>a.button.is-inverted.is-hovered.docs-sourcelink{background-color:#f2f2f2}.button.is-primary.is-inverted[disabled],.docstring>section>a.button.is-inverted.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-inverted,fieldset[disabled] .docstring>section>a.button.is-inverted.docs-sourcelink{background-color:#fff;border-color:transparent;box-shadow:none;color:#4eb5de}.button.is-primary.is-loading::after,.docstring>section>a.button.is-loading.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}.button.is-primary.is-outlined,.docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#4eb5de;color:#4eb5de}.button.is-primary.is-outlined:hover,.docstring>section>a.button.is-outlined.docs-sourcelink:hover,.button.is-primary.is-outlined.is-hovered,.docstring>section>a.button.is-outlined.is-hovered.docs-sourcelink,.button.is-primary.is-outlined:focus,.docstring>section>a.button.is-outlined.docs-sourcelink:focus,.button.is-primary.is-outlined.is-focused,.docstring>section>a.button.is-outlined.is-focused.docs-sourcelink{background-color:#4eb5de;border-color:#4eb5de;color:#fff}.button.is-primary.is-outlined.is-loading::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink::after{border-color:transparent transparent #4eb5de #4eb5de !important}.button.is-primary.is-outlined.is-loading:hover::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:hover::after,.button.is-primary.is-outlined.is-loading.is-hovered::after,.docstring>section>a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after,.button.is-primary.is-outlined.is-loading:focus::after,.docstring>section>a.button.is-outlined.is-loading.docs-sourcelink:focus::after,.button.is-primary.is-outlined.is-loading.is-focused::after,.docstring>section>a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #fff #fff !important}.button.is-primary.is-outlined[disabled],.docstring>section>a.button.is-outlined.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-outlined,fieldset[disabled] .docstring>section>a.button.is-outlined.docs-sourcelink{background-color:transparent;border-color:#4eb5de;box-shadow:none;color:#4eb5de}.button.is-primary.is-inverted.is-outlined,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;color:#fff}.button.is-primary.is-inverted.is-outlined:hover,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:hover,.button.is-primary.is-inverted.is-outlined.is-hovered,.docstring>section>a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink,.button.is-primary.is-inverted.is-outlined:focus,.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink:focus,.button.is-primary.is-inverted.is-outlined.is-focused,.docstring>section>a.button.is-inverted.is-outlined.is-focused.docs-sourcelink{background-color:#fff;color:#4eb5de}.button.is-primary.is-inverted.is-outlined.is-loading:hover::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after,.button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after,.button.is-primary.is-inverted.is-outlined.is-loading:focus::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after,.button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after,.docstring>section>a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after{border-color:transparent transparent #4eb5de #4eb5de !important}.button.is-primary.is-inverted.is-outlined[disabled],.docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink[disabled],fieldset[disabled] .button.is-primary.is-inverted.is-outlined,fieldset[disabled] .docstring>section>a.button.is-inverted.is-outlined.docs-sourcelink{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-link{background-color:#2e63b8;border-color:transparent;color:#fff}.button.is-link:hover,.button.is-link.is-hovered{background-color:#2b5eae;border-color:transparent;color:#fff}.button.is-link:focus,.button.is-link.is-focused{border-color:transparent;color:#fff}.button.is-link:focus:not(:active),.button.is-link.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.button.is-link:active,.button.is-link.is-active{background-color:#2958a4;border-color:transparent;color:#fff}.button.is-link[disabled],fieldset[disabled] .button.is-link{background-color:#2e63b8;border-color:transparent;box-shadow:none}.button.is-link.is-inverted{background-color:#fff;color:#2e63b8}.button.is-link.is-inverted:hover,.button.is-link.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-link.is-inverted[disabled],fieldset[disabled] .button.is-link.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#2e63b8}.button.is-link.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-link.is-outlined{background-color:transparent;border-color:#2e63b8;color:#2e63b8}.button.is-link.is-outlined:hover,.button.is-link.is-outlined.is-hovered,.button.is-link.is-outlined:focus,.button.is-link.is-outlined.is-focused{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.button.is-link.is-outlined.is-loading::after{border-color:transparent transparent #2e63b8 #2e63b8 !important}.button.is-link.is-outlined.is-loading:hover::after,.button.is-link.is-outlined.is-loading.is-hovered::after,.button.is-link.is-outlined.is-loading:focus::after,.button.is-link.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-link.is-outlined[disabled],fieldset[disabled] .button.is-link.is-outlined{background-color:transparent;border-color:#2e63b8;box-shadow:none;color:#2e63b8}.button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-link.is-inverted.is-outlined:hover,.button.is-link.is-inverted.is-outlined.is-hovered,.button.is-link.is-inverted.is-outlined:focus,.button.is-link.is-inverted.is-outlined.is-focused{background-color:#fff;color:#2e63b8}.button.is-link.is-inverted.is-outlined.is-loading:hover::after,.button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-link.is-inverted.is-outlined.is-loading:focus::after,.button.is-link.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #2e63b8 #2e63b8 !important}.button.is-link.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-link.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-info{background-color:#209cee;border-color:transparent;color:#fff}.button.is-info:hover,.button.is-info.is-hovered{background-color:#1497ed;border-color:transparent;color:#fff}.button.is-info:focus,.button.is-info.is-focused{border-color:transparent;color:#fff}.button.is-info:focus:not(:active),.button.is-info.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.button.is-info:active,.button.is-info.is-active{background-color:#1190e3;border-color:transparent;color:#fff}.button.is-info[disabled],fieldset[disabled] .button.is-info{background-color:#209cee;border-color:transparent;box-shadow:none}.button.is-info.is-inverted{background-color:#fff;color:#209cee}.button.is-info.is-inverted:hover,.button.is-info.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-info.is-inverted[disabled],fieldset[disabled] .button.is-info.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#209cee}.button.is-info.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-info.is-outlined{background-color:transparent;border-color:#209cee;color:#209cee}.button.is-info.is-outlined:hover,.button.is-info.is-outlined.is-hovered,.button.is-info.is-outlined:focus,.button.is-info.is-outlined.is-focused{background-color:#209cee;border-color:#209cee;color:#fff}.button.is-info.is-outlined.is-loading::after{border-color:transparent transparent #209cee #209cee !important}.button.is-info.is-outlined.is-loading:hover::after,.button.is-info.is-outlined.is-loading.is-hovered::after,.button.is-info.is-outlined.is-loading:focus::after,.button.is-info.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-info.is-outlined[disabled],fieldset[disabled] .button.is-info.is-outlined{background-color:transparent;border-color:#209cee;box-shadow:none;color:#209cee}.button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-info.is-inverted.is-outlined:hover,.button.is-info.is-inverted.is-outlined.is-hovered,.button.is-info.is-inverted.is-outlined:focus,.button.is-info.is-inverted.is-outlined.is-focused{background-color:#fff;color:#209cee}.button.is-info.is-inverted.is-outlined.is-loading:hover::after,.button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-info.is-inverted.is-outlined.is-loading:focus::after,.button.is-info.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #209cee #209cee !important}.button.is-info.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-info.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-success{background-color:#22c35b;border-color:transparent;color:#fff}.button.is-success:hover,.button.is-success.is-hovered{background-color:#20b856;border-color:transparent;color:#fff}.button.is-success:focus,.button.is-success.is-focused{border-color:transparent;color:#fff}.button.is-success:focus:not(:active),.button.is-success.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.button.is-success:active,.button.is-success.is-active{background-color:#1ead51;border-color:transparent;color:#fff}.button.is-success[disabled],fieldset[disabled] .button.is-success{background-color:#22c35b;border-color:transparent;box-shadow:none}.button.is-success.is-inverted{background-color:#fff;color:#22c35b}.button.is-success.is-inverted:hover,.button.is-success.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-success.is-inverted[disabled],fieldset[disabled] .button.is-success.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#22c35b}.button.is-success.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-success.is-outlined{background-color:transparent;border-color:#22c35b;color:#22c35b}.button.is-success.is-outlined:hover,.button.is-success.is-outlined.is-hovered,.button.is-success.is-outlined:focus,.button.is-success.is-outlined.is-focused{background-color:#22c35b;border-color:#22c35b;color:#fff}.button.is-success.is-outlined.is-loading::after{border-color:transparent transparent #22c35b #22c35b !important}.button.is-success.is-outlined.is-loading:hover::after,.button.is-success.is-outlined.is-loading.is-hovered::after,.button.is-success.is-outlined.is-loading:focus::after,.button.is-success.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-success.is-outlined[disabled],fieldset[disabled] .button.is-success.is-outlined{background-color:transparent;border-color:#22c35b;box-shadow:none;color:#22c35b}.button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-success.is-inverted.is-outlined:hover,.button.is-success.is-inverted.is-outlined.is-hovered,.button.is-success.is-inverted.is-outlined:focus,.button.is-success.is-inverted.is-outlined.is-focused{background-color:#fff;color:#22c35b}.button.is-success.is-inverted.is-outlined.is-loading:hover::after,.button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-success.is-inverted.is-outlined.is-loading:focus::after,.button.is-success.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #22c35b #22c35b !important}.button.is-success.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-success.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-warning{background-color:#ffdd57;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:hover,.button.is-warning.is-hovered{background-color:#ffda4a;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:focus,.button.is-warning.is-focused{border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning:focus:not(:active),.button.is-warning.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.button.is-warning:active,.button.is-warning.is-active{background-color:#ffd83e;border-color:transparent;color:rgba(0,0,0,0.7)}.button.is-warning[disabled],fieldset[disabled] .button.is-warning{background-color:#ffdd57;border-color:transparent;box-shadow:none}.button.is-warning.is-inverted{background-color:rgba(0,0,0,0.7);color:#ffdd57}.button.is-warning.is-inverted:hover,.button.is-warning.is-inverted.is-hovered{background-color:rgba(0,0,0,0.7)}.button.is-warning.is-inverted[disabled],fieldset[disabled] .button.is-warning.is-inverted{background-color:rgba(0,0,0,0.7);border-color:transparent;box-shadow:none;color:#ffdd57}.button.is-warning.is-loading::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}.button.is-warning.is-outlined{background-color:transparent;border-color:#ffdd57;color:#ffdd57}.button.is-warning.is-outlined:hover,.button.is-warning.is-outlined.is-hovered,.button.is-warning.is-outlined:focus,.button.is-warning.is-outlined.is-focused{background-color:#ffdd57;border-color:#ffdd57;color:rgba(0,0,0,0.7)}.button.is-warning.is-outlined.is-loading::after{border-color:transparent transparent #ffdd57 #ffdd57 !important}.button.is-warning.is-outlined.is-loading:hover::after,.button.is-warning.is-outlined.is-loading.is-hovered::after,.button.is-warning.is-outlined.is-loading:focus::after,.button.is-warning.is-outlined.is-loading.is-focused::after{border-color:transparent transparent rgba(0,0,0,0.7) rgba(0,0,0,0.7) !important}.button.is-warning.is-outlined[disabled],fieldset[disabled] .button.is-warning.is-outlined{background-color:transparent;border-color:#ffdd57;box-shadow:none;color:#ffdd57}.button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);color:rgba(0,0,0,0.7)}.button.is-warning.is-inverted.is-outlined:hover,.button.is-warning.is-inverted.is-outlined.is-hovered,.button.is-warning.is-inverted.is-outlined:focus,.button.is-warning.is-inverted.is-outlined.is-focused{background-color:rgba(0,0,0,0.7);color:#ffdd57}.button.is-warning.is-inverted.is-outlined.is-loading:hover::after,.button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-warning.is-inverted.is-outlined.is-loading:focus::after,.button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #ffdd57 #ffdd57 !important}.button.is-warning.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-warning.is-inverted.is-outlined{background-color:transparent;border-color:rgba(0,0,0,0.7);box-shadow:none;color:rgba(0,0,0,0.7)}.button.is-danger{background-color:#da0b00;border-color:transparent;color:#fff}.button.is-danger:hover,.button.is-danger.is-hovered{background-color:#cd0a00;border-color:transparent;color:#fff}.button.is-danger:focus,.button.is-danger.is-focused{border-color:transparent;color:#fff}.button.is-danger:focus:not(:active),.button.is-danger.is-focused:not(:active){box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.button.is-danger:active,.button.is-danger.is-active{background-color:#c10a00;border-color:transparent;color:#fff}.button.is-danger[disabled],fieldset[disabled] .button.is-danger{background-color:#da0b00;border-color:transparent;box-shadow:none}.button.is-danger.is-inverted{background-color:#fff;color:#da0b00}.button.is-danger.is-inverted:hover,.button.is-danger.is-inverted.is-hovered{background-color:#f2f2f2}.button.is-danger.is-inverted[disabled],fieldset[disabled] .button.is-danger.is-inverted{background-color:#fff;border-color:transparent;box-shadow:none;color:#da0b00}.button.is-danger.is-loading::after{border-color:transparent transparent #fff #fff !important}.button.is-danger.is-outlined{background-color:transparent;border-color:#da0b00;color:#da0b00}.button.is-danger.is-outlined:hover,.button.is-danger.is-outlined.is-hovered,.button.is-danger.is-outlined:focus,.button.is-danger.is-outlined.is-focused{background-color:#da0b00;border-color:#da0b00;color:#fff}.button.is-danger.is-outlined.is-loading::after{border-color:transparent transparent #da0b00 #da0b00 !important}.button.is-danger.is-outlined.is-loading:hover::after,.button.is-danger.is-outlined.is-loading.is-hovered::after,.button.is-danger.is-outlined.is-loading:focus::after,.button.is-danger.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #fff #fff !important}.button.is-danger.is-outlined[disabled],fieldset[disabled] .button.is-danger.is-outlined{background-color:transparent;border-color:#da0b00;box-shadow:none;color:#da0b00}.button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;color:#fff}.button.is-danger.is-inverted.is-outlined:hover,.button.is-danger.is-inverted.is-outlined.is-hovered,.button.is-danger.is-inverted.is-outlined:focus,.button.is-danger.is-inverted.is-outlined.is-focused{background-color:#fff;color:#da0b00}.button.is-danger.is-inverted.is-outlined.is-loading:hover::after,.button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after,.button.is-danger.is-inverted.is-outlined.is-loading:focus::after,.button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after{border-color:transparent transparent #da0b00 #da0b00 !important}.button.is-danger.is-inverted.is-outlined[disabled],fieldset[disabled] .button.is-danger.is-inverted.is-outlined{background-color:transparent;border-color:#fff;box-shadow:none;color:#fff}.button.is-small,#documenter .docs-sidebar form.docs-search>input.button{border-radius:2px;font-size:.75rem}.button.is-normal{font-size:1rem}.button.is-medium{font-size:1.25rem}.button.is-large{font-size:1.5rem}.button[disabled],fieldset[disabled] .button{background-color:#fff;border-color:#dbdbdb;box-shadow:none;opacity:.5}.button.is-fullwidth{display:flex;width:100%}.button.is-loading{color:transparent !important;pointer-events:none}.button.is-loading::after{position:absolute;left:calc(50% - (1em / 2));top:calc(50% - (1em / 2));position:absolute !important}.button.is-static{background-color:#f5f5f5;border-color:#dbdbdb;color:#6b6b6b;box-shadow:none;pointer-events:none}.button.is-rounded,#documenter .docs-sidebar form.docs-search>input.button{border-radius:290486px;padding-left:1em;padding-right:1em}.buttons{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.buttons .button{margin-bottom:0.5rem}.buttons .button:not(:last-child):not(.is-fullwidth){margin-right:0.5rem}.buttons:last-child{margin-bottom:-0.5rem}.buttons:not(:last-child){margin-bottom:1rem}.buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large){border-radius:2px;font-size:.75rem}.buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large){font-size:1.25rem}.buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium){font-size:1.5rem}.buttons.has-addons .button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.buttons.has-addons .button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0;margin-right:-1px}.buttons.has-addons .button:last-child{margin-right:0}.buttons.has-addons .button:hover,.buttons.has-addons .button.is-hovered{z-index:2}.buttons.has-addons .button:focus,.buttons.has-addons .button.is-focused,.buttons.has-addons .button:active,.buttons.has-addons .button.is-active,.buttons.has-addons .button.is-selected{z-index:3}.buttons.has-addons .button:focus:hover,.buttons.has-addons .button.is-focused:hover,.buttons.has-addons .button:active:hover,.buttons.has-addons .button.is-active:hover,.buttons.has-addons .button.is-selected:hover{z-index:4}.buttons.has-addons .button.is-expanded{flex-grow:1;flex-shrink:1}.buttons.is-centered{justify-content:center}.buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}.buttons.is-right{justify-content:flex-end}.buttons.is-right:not(.has-addons) .button:not(.is-fullwidth){margin-left:0.25rem;margin-right:0.25rem}.container{flex-grow:1;margin:0 auto;position:relative;width:auto}@media screen and (min-width: 1056px){.container{max-width:992px}.container.is-fluid{margin-left:32px;margin-right:32px;max-width:none}}@media screen and (max-width: 1215px){.container.is-widescreen{max-width:1152px}}@media screen and (max-width: 1407px){.container.is-fullhd{max-width:1344px}}@media screen and (min-width: 1216px){.container{max-width:1152px}}@media screen and (min-width: 1408px){.container{max-width:1344px}}.content li+li{margin-top:0.25em}.content p:not(:last-child),.content dl:not(:last-child),.content ol:not(:last-child),.content ul:not(:last-child),.content blockquote:not(:last-child),.content pre:not(:last-child),.content table:not(:last-child){margin-bottom:1em}.content h1,.content h2,.content h3,.content h4,.content h5,.content h6{color:#222;font-weight:600;line-height:1.125}.content h1{font-size:2em;margin-bottom:0.5em}.content h1:not(:first-child){margin-top:1em}.content h2{font-size:1.75em;margin-bottom:0.5714em}.content h2:not(:first-child){margin-top:1.1428em}.content h3{font-size:1.5em;margin-bottom:0.6666em}.content h3:not(:first-child){margin-top:1.3333em}.content h4{font-size:1.25em;margin-bottom:0.8em}.content h5{font-size:1.125em;margin-bottom:0.8888em}.content h6{font-size:1em;margin-bottom:1em}.content blockquote{background-color:#f5f5f5;border-left:5px solid #dbdbdb;padding:1.25em 1.5em}.content ol{list-style-position:outside;margin-left:2em;margin-top:1em}.content ol:not([type]){list-style-type:decimal}.content ol.is-lower-alpha:not([type]){list-style-type:lower-alpha}.content ol.is-lower-roman:not([type]){list-style-type:lower-roman}.content ol.is-upper-alpha:not([type]){list-style-type:upper-alpha}.content ol.is-upper-roman:not([type]){list-style-type:upper-roman}.content ul{list-style:disc outside;margin-left:2em;margin-top:1em}.content ul ul{list-style-type:circle;margin-top:0.5em}.content ul ul ul{list-style-type:square}.content dd{margin-left:2em}.content figure{margin-left:2em;margin-right:2em;text-align:center}.content figure:not(:first-child){margin-top:2em}.content figure:not(:last-child){margin-bottom:2em}.content figure img{display:inline-block}.content figure figcaption{font-style:italic}.content pre{-webkit-overflow-scrolling:touch;overflow-x:auto;padding:0;white-space:pre;word-wrap:normal}.content sup,.content sub{font-size:75%}.content table{width:100%}.content table td,.content table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}.content table th{color:#222}.content table th:not([align]){text-align:left}.content table thead td,.content table thead th{border-width:0 0 2px;color:#222}.content table tfoot td,.content table tfoot th{border-width:2px 0 0;color:#222}.content table tbody tr:last-child td,.content table tbody tr:last-child th{border-bottom-width:0}.content .tabs li+li{margin-top:0}.content.is-small,#documenter .docs-sidebar form.docs-search>input.content{font-size:.75rem}.content.is-medium{font-size:1.25rem}.content.is-large{font-size:1.5rem}.icon{align-items:center;display:inline-flex;justify-content:center;height:1.5rem;width:1.5rem}.icon.is-small,#documenter .docs-sidebar form.docs-search>input.icon{height:1rem;width:1rem}.icon.is-medium{height:2rem;width:2rem}.icon.is-large{height:3rem;width:3rem}.image,#documenter .docs-sidebar .docs-logo>img{display:block;position:relative}.image img,#documenter .docs-sidebar .docs-logo>img img{display:block;height:auto;width:100%}.image img.is-rounded,#documenter .docs-sidebar .docs-logo>img img.is-rounded{border-radius:290486px}.image.is-square img,#documenter .docs-sidebar .docs-logo>img.is-square img,.image.is-square .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-square .has-ratio,.image.is-1by1 img,#documenter .docs-sidebar .docs-logo>img.is-1by1 img,.image.is-1by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by1 .has-ratio,.image.is-5by4 img,#documenter .docs-sidebar .docs-logo>img.is-5by4 img,.image.is-5by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by4 .has-ratio,.image.is-4by3 img,#documenter .docs-sidebar .docs-logo>img.is-4by3 img,.image.is-4by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by3 .has-ratio,.image.is-3by2 img,#documenter .docs-sidebar .docs-logo>img.is-3by2 img,.image.is-3by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by2 .has-ratio,.image.is-5by3 img,#documenter .docs-sidebar .docs-logo>img.is-5by3 img,.image.is-5by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-5by3 .has-ratio,.image.is-16by9 img,#documenter .docs-sidebar .docs-logo>img.is-16by9 img,.image.is-16by9 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-16by9 .has-ratio,.image.is-2by1 img,#documenter .docs-sidebar .docs-logo>img.is-2by1 img,.image.is-2by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by1 .has-ratio,.image.is-3by1 img,#documenter .docs-sidebar .docs-logo>img.is-3by1 img,.image.is-3by1 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by1 .has-ratio,.image.is-4by5 img,#documenter .docs-sidebar .docs-logo>img.is-4by5 img,.image.is-4by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-4by5 .has-ratio,.image.is-3by4 img,#documenter .docs-sidebar .docs-logo>img.is-3by4 img,.image.is-3by4 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by4 .has-ratio,.image.is-2by3 img,#documenter .docs-sidebar .docs-logo>img.is-2by3 img,.image.is-2by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-2by3 .has-ratio,.image.is-3by5 img,#documenter .docs-sidebar .docs-logo>img.is-3by5 img,.image.is-3by5 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-3by5 .has-ratio,.image.is-9by16 img,#documenter .docs-sidebar .docs-logo>img.is-9by16 img,.image.is-9by16 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-9by16 .has-ratio,.image.is-1by2 img,#documenter .docs-sidebar .docs-logo>img.is-1by2 img,.image.is-1by2 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by2 .has-ratio,.image.is-1by3 img,#documenter .docs-sidebar .docs-logo>img.is-1by3 img,.image.is-1by3 .has-ratio,#documenter .docs-sidebar .docs-logo>img.is-1by3 .has-ratio{height:100%;width:100%}.image.is-square,#documenter .docs-sidebar .docs-logo>img.is-square,.image.is-1by1,#documenter .docs-sidebar .docs-logo>img.is-1by1{padding-top:100%}.image.is-5by4,#documenter .docs-sidebar .docs-logo>img.is-5by4{padding-top:80%}.image.is-4by3,#documenter .docs-sidebar .docs-logo>img.is-4by3{padding-top:75%}.image.is-3by2,#documenter .docs-sidebar .docs-logo>img.is-3by2{padding-top:66.6666%}.image.is-5by3,#documenter .docs-sidebar .docs-logo>img.is-5by3{padding-top:60%}.image.is-16by9,#documenter .docs-sidebar .docs-logo>img.is-16by9{padding-top:56.25%}.image.is-2by1,#documenter .docs-sidebar .docs-logo>img.is-2by1{padding-top:50%}.image.is-3by1,#documenter .docs-sidebar .docs-logo>img.is-3by1{padding-top:33.3333%}.image.is-4by5,#documenter .docs-sidebar .docs-logo>img.is-4by5{padding-top:125%}.image.is-3by4,#documenter .docs-sidebar .docs-logo>img.is-3by4{padding-top:133.3333%}.image.is-2by3,#documenter .docs-sidebar .docs-logo>img.is-2by3{padding-top:150%}.image.is-3by5,#documenter .docs-sidebar .docs-logo>img.is-3by5{padding-top:166.6666%}.image.is-9by16,#documenter .docs-sidebar .docs-logo>img.is-9by16{padding-top:177.7777%}.image.is-1by2,#documenter .docs-sidebar .docs-logo>img.is-1by2{padding-top:200%}.image.is-1by3,#documenter .docs-sidebar .docs-logo>img.is-1by3{padding-top:300%}.image.is-16x16,#documenter .docs-sidebar .docs-logo>img.is-16x16{height:16px;width:16px}.image.is-24x24,#documenter .docs-sidebar .docs-logo>img.is-24x24{height:24px;width:24px}.image.is-32x32,#documenter .docs-sidebar .docs-logo>img.is-32x32{height:32px;width:32px}.image.is-48x48,#documenter .docs-sidebar .docs-logo>img.is-48x48{height:48px;width:48px}.image.is-64x64,#documenter .docs-sidebar .docs-logo>img.is-64x64{height:64px;width:64px}.image.is-96x96,#documenter .docs-sidebar .docs-logo>img.is-96x96{height:96px;width:96px}.image.is-128x128,#documenter .docs-sidebar .docs-logo>img.is-128x128{height:128px;width:128px}.notification{background-color:#f5f5f5;border-radius:4px;padding:1.25rem 2.5rem 1.25rem 1.5rem;position:relative}.notification a:not(.button):not(.dropdown-item){color:currentColor;text-decoration:underline}.notification strong{color:currentColor}.notification code,.notification pre{background:#fff}.notification pre code{background:transparent}.notification>.delete{position:absolute;right:0.5rem;top:0.5rem}.notification .title,.notification .subtitle,.notification .content{color:currentColor}.notification.is-white{background-color:#fff;color:#0a0a0a}.notification.is-black{background-color:#0a0a0a;color:#fff}.notification.is-light{background-color:#f5f5f5;color:#363636}.notification.is-dark,.content kbd.notification{background-color:#363636;color:#f5f5f5}.notification.is-primary,.docstring>section>a.notification.docs-sourcelink{background-color:#4eb5de;color:#fff}.notification.is-link{background-color:#2e63b8;color:#fff}.notification.is-info{background-color:#209cee;color:#fff}.notification.is-success{background-color:#22c35b;color:#fff}.notification.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.notification.is-danger{background-color:#da0b00;color:#fff}.progress{-moz-appearance:none;-webkit-appearance:none;border:none;border-radius:290486px;display:block;height:1rem;overflow:hidden;padding:0;width:100%}.progress::-webkit-progress-bar{background-color:#dbdbdb}.progress::-webkit-progress-value{background-color:#222}.progress::-moz-progress-bar{background-color:#222}.progress::-ms-fill{background-color:#222;border:none}.progress.is-white::-webkit-progress-value{background-color:#fff}.progress.is-white::-moz-progress-bar{background-color:#fff}.progress.is-white::-ms-fill{background-color:#fff}.progress.is-white:indeterminate{background-image:linear-gradient(to right, #fff 30%, #dbdbdb 30%)}.progress.is-black::-webkit-progress-value{background-color:#0a0a0a}.progress.is-black::-moz-progress-bar{background-color:#0a0a0a}.progress.is-black::-ms-fill{background-color:#0a0a0a}.progress.is-black:indeterminate{background-image:linear-gradient(to right, #0a0a0a 30%, #dbdbdb 30%)}.progress.is-light::-webkit-progress-value{background-color:#f5f5f5}.progress.is-light::-moz-progress-bar{background-color:#f5f5f5}.progress.is-light::-ms-fill{background-color:#f5f5f5}.progress.is-light:indeterminate{background-image:linear-gradient(to right, #f5f5f5 30%, #dbdbdb 30%)}.progress.is-dark::-webkit-progress-value,.content kbd.progress::-webkit-progress-value{background-color:#363636}.progress.is-dark::-moz-progress-bar,.content kbd.progress::-moz-progress-bar{background-color:#363636}.progress.is-dark::-ms-fill,.content kbd.progress::-ms-fill{background-color:#363636}.progress.is-dark:indeterminate,.content kbd.progress:indeterminate{background-image:linear-gradient(to right, #363636 30%, #dbdbdb 30%)}.progress.is-primary::-webkit-progress-value,.docstring>section>a.progress.docs-sourcelink::-webkit-progress-value{background-color:#4eb5de}.progress.is-primary::-moz-progress-bar,.docstring>section>a.progress.docs-sourcelink::-moz-progress-bar{background-color:#4eb5de}.progress.is-primary::-ms-fill,.docstring>section>a.progress.docs-sourcelink::-ms-fill{background-color:#4eb5de}.progress.is-primary:indeterminate,.docstring>section>a.progress.docs-sourcelink:indeterminate{background-image:linear-gradient(to right, #4eb5de 30%, #dbdbdb 30%)}.progress.is-link::-webkit-progress-value{background-color:#2e63b8}.progress.is-link::-moz-progress-bar{background-color:#2e63b8}.progress.is-link::-ms-fill{background-color:#2e63b8}.progress.is-link:indeterminate{background-image:linear-gradient(to right, #2e63b8 30%, #dbdbdb 30%)}.progress.is-info::-webkit-progress-value{background-color:#209cee}.progress.is-info::-moz-progress-bar{background-color:#209cee}.progress.is-info::-ms-fill{background-color:#209cee}.progress.is-info:indeterminate{background-image:linear-gradient(to right, #209cee 30%, #dbdbdb 30%)}.progress.is-success::-webkit-progress-value{background-color:#22c35b}.progress.is-success::-moz-progress-bar{background-color:#22c35b}.progress.is-success::-ms-fill{background-color:#22c35b}.progress.is-success:indeterminate{background-image:linear-gradient(to right, #22c35b 30%, #dbdbdb 30%)}.progress.is-warning::-webkit-progress-value{background-color:#ffdd57}.progress.is-warning::-moz-progress-bar{background-color:#ffdd57}.progress.is-warning::-ms-fill{background-color:#ffdd57}.progress.is-warning:indeterminate{background-image:linear-gradient(to right, #ffdd57 30%, #dbdbdb 30%)}.progress.is-danger::-webkit-progress-value{background-color:#da0b00}.progress.is-danger::-moz-progress-bar{background-color:#da0b00}.progress.is-danger::-ms-fill{background-color:#da0b00}.progress.is-danger:indeterminate{background-image:linear-gradient(to right, #da0b00 30%, #dbdbdb 30%)}.progress:indeterminate{animation-duration:1.5s;animation-iteration-count:infinite;animation-name:moveIndeterminate;animation-timing-function:linear;background-color:#dbdbdb;background-image:linear-gradient(to right, #222 30%, #dbdbdb 30%);background-position:top left;background-repeat:no-repeat;background-size:150% 150%}.progress:indeterminate::-webkit-progress-bar{background-color:transparent}.progress:indeterminate::-moz-progress-bar{background-color:transparent}.progress.is-small,#documenter .docs-sidebar form.docs-search>input.progress{height:.75rem}.progress.is-medium{height:1.25rem}.progress.is-large{height:1.5rem}@keyframes moveIndeterminate{from{background-position:200% 0}to{background-position:-200% 0}}.table{background-color:#fff;color:#363636}.table td,.table th{border:1px solid #dbdbdb;border-width:0 0 1px;padding:0.5em 0.75em;vertical-align:top}.table td.is-white,.table th.is-white{background-color:#fff;border-color:#fff;color:#0a0a0a}.table td.is-black,.table th.is-black{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.table td.is-light,.table th.is-light{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.table td.is-dark,.table th.is-dark{background-color:#363636;border-color:#363636;color:#f5f5f5}.table td.is-primary,.table th.is-primary{background-color:#4eb5de;border-color:#4eb5de;color:#fff}.table td.is-link,.table th.is-link{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.table td.is-info,.table th.is-info{background-color:#209cee;border-color:#209cee;color:#fff}.table td.is-success,.table th.is-success{background-color:#22c35b;border-color:#22c35b;color:#fff}.table td.is-warning,.table th.is-warning{background-color:#ffdd57;border-color:#ffdd57;color:rgba(0,0,0,0.7)}.table td.is-danger,.table th.is-danger{background-color:#da0b00;border-color:#da0b00;color:#fff}.table td.is-narrow,.table th.is-narrow{white-space:nowrap;width:1%}.table td.is-selected,.table th.is-selected{background-color:#4eb5de;color:#fff}.table td.is-selected a,.table td.is-selected strong,.table th.is-selected a,.table th.is-selected strong{color:currentColor}.table th{color:#222}.table th:not([align]){text-align:left}.table tr.is-selected{background-color:#4eb5de;color:#fff}.table tr.is-selected a,.table tr.is-selected strong{color:currentColor}.table tr.is-selected td,.table tr.is-selected th{border-color:#fff;color:currentColor}.table thead{background-color:rgba(0,0,0,0)}.table thead td,.table thead th{border-width:0 0 2px;color:#222}.table tfoot{background-color:rgba(0,0,0,0)}.table tfoot td,.table tfoot th{border-width:2px 0 0;color:#222}.table tbody{background-color:rgba(0,0,0,0)}.table tbody tr:last-child td,.table tbody tr:last-child th{border-bottom-width:0}.table.is-bordered td,.table.is-bordered th{border-width:1px}.table.is-bordered tr:last-child td,.table.is-bordered tr:last-child th{border-bottom-width:1px}.table.is-fullwidth{width:100%}.table.is-hoverable tbody tr:not(.is-selected):hover{background-color:#fafafa}.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover{background-color:#fafafa}.table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even){background-color:#f5f5f5}.table.is-narrow td,.table.is-narrow th{padding:0.25em 0.5em}.table.is-striped tbody tr:not(.is-selected):nth-child(even){background-color:#fafafa}.table-container{-webkit-overflow-scrolling:touch;overflow:auto;overflow-y:hidden;max-width:100%}.tags{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-start}.tags .tag,.tags .content kbd,.content .tags kbd,.tags .docstring>section>a.docs-sourcelink{margin-bottom:0.5rem}.tags .tag:not(:last-child),.tags .content kbd:not(:last-child),.content .tags kbd:not(:last-child),.tags .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0.5rem}.tags:last-child{margin-bottom:-0.5rem}.tags:not(:last-child){margin-bottom:1rem}.tags.are-medium .tag:not(.is-normal):not(.is-large),.tags.are-medium .content kbd:not(.is-normal):not(.is-large),.content .tags.are-medium kbd:not(.is-normal):not(.is-large),.tags.are-medium .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-large){font-size:1rem}.tags.are-large .tag:not(.is-normal):not(.is-medium),.tags.are-large .content kbd:not(.is-normal):not(.is-medium),.content .tags.are-large kbd:not(.is-normal):not(.is-medium),.tags.are-large .docstring>section>a.docs-sourcelink:not(.is-normal):not(.is-medium){font-size:1.25rem}.tags.is-centered{justify-content:center}.tags.is-centered .tag,.tags.is-centered .content kbd,.content .tags.is-centered kbd,.tags.is-centered .docstring>section>a.docs-sourcelink{margin-right:0.25rem;margin-left:0.25rem}.tags.is-right{justify-content:flex-end}.tags.is-right .tag:not(:first-child),.tags.is-right .content kbd:not(:first-child),.content .tags.is-right kbd:not(:first-child),.tags.is-right .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0.5rem}.tags.is-right .tag:not(:last-child),.tags.is-right .content kbd:not(:last-child),.content .tags.is-right kbd:not(:last-child),.tags.is-right .docstring>section>a.docs-sourcelink:not(:last-child){margin-right:0}.tags.has-addons .tag,.tags.has-addons .content kbd,.content .tags.has-addons kbd,.tags.has-addons .docstring>section>a.docs-sourcelink{margin-right:0}.tags.has-addons .tag:not(:first-child),.tags.has-addons .content kbd:not(:first-child),.content .tags.has-addons kbd:not(:first-child),.tags.has-addons .docstring>section>a.docs-sourcelink:not(:first-child){margin-left:0;border-bottom-left-radius:0;border-top-left-radius:0}.tags.has-addons .tag:not(:last-child),.tags.has-addons .content kbd:not(:last-child),.content .tags.has-addons kbd:not(:last-child),.tags.has-addons .docstring>section>a.docs-sourcelink:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.tag:not(body),.content kbd:not(body),.docstring>section>a.docs-sourcelink:not(body){align-items:center;background-color:#f5f5f5;border-radius:4px;color:#222;display:inline-flex;font-size:.75rem;height:2em;justify-content:center;line-height:1.5;padding-left:0.75em;padding-right:0.75em;white-space:nowrap}.tag:not(body) .delete,.content kbd:not(body) .delete,.docstring>section>a.docs-sourcelink:not(body) .delete{margin-left:0.25rem;margin-right:-0.375rem}.tag.is-white:not(body),.content kbd.is-white:not(body),.docstring>section>a.docs-sourcelink.is-white:not(body){background-color:#fff;color:#0a0a0a}.tag.is-black:not(body),.content kbd.is-black:not(body),.docstring>section>a.docs-sourcelink.is-black:not(body){background-color:#0a0a0a;color:#fff}.tag.is-light:not(body),.content kbd.is-light:not(body),.docstring>section>a.docs-sourcelink.is-light:not(body){background-color:#f5f5f5;color:#363636}.tag.is-dark:not(body),.content kbd:not(body),.docstring>section>a.docs-sourcelink.is-dark:not(body),.content .docstring>section>kbd:not(body){background-color:#363636;color:#f5f5f5}.tag.is-primary:not(body),.content kbd.is-primary:not(body),.docstring>section>a.docs-sourcelink:not(body){background-color:#4eb5de;color:#fff}.tag.is-link:not(body),.content kbd.is-link:not(body),.docstring>section>a.docs-sourcelink.is-link:not(body){background-color:#2e63b8;color:#fff}.tag.is-info:not(body),.content kbd.is-info:not(body),.docstring>section>a.docs-sourcelink.is-info:not(body){background-color:#209cee;color:#fff}.tag.is-success:not(body),.content kbd.is-success:not(body),.docstring>section>a.docs-sourcelink.is-success:not(body){background-color:#22c35b;color:#fff}.tag.is-warning:not(body),.content kbd.is-warning:not(body),.docstring>section>a.docs-sourcelink.is-warning:not(body){background-color:#ffdd57;color:rgba(0,0,0,0.7)}.tag.is-danger:not(body),.content kbd.is-danger:not(body),.docstring>section>a.docs-sourcelink.is-danger:not(body){background-color:#da0b00;color:#fff}.tag.is-normal:not(body),.content kbd.is-normal:not(body),.docstring>section>a.docs-sourcelink.is-normal:not(body){font-size:.75rem}.tag.is-medium:not(body),.content kbd.is-medium:not(body),.docstring>section>a.docs-sourcelink.is-medium:not(body){font-size:1rem}.tag.is-large:not(body),.content kbd.is-large:not(body),.docstring>section>a.docs-sourcelink.is-large:not(body){font-size:1.25rem}.tag:not(body) .icon:first-child:not(:last-child),.content kbd:not(body) .icon:first-child:not(:last-child),.docstring>section>a.docs-sourcelink:not(body) .icon:first-child:not(:last-child){margin-left:-0.375em;margin-right:0.1875em}.tag:not(body) .icon:last-child:not(:first-child),.content kbd:not(body) .icon:last-child:not(:first-child),.docstring>section>a.docs-sourcelink:not(body) .icon:last-child:not(:first-child){margin-left:0.1875em;margin-right:-0.375em}.tag:not(body) .icon:first-child:last-child,.content kbd:not(body) .icon:first-child:last-child,.docstring>section>a.docs-sourcelink:not(body) .icon:first-child:last-child{margin-left:-0.375em;margin-right:-0.375em}.tag.is-delete:not(body),.content kbd.is-delete:not(body),.docstring>section>a.docs-sourcelink.is-delete:not(body){margin-left:1px;padding:0;position:relative;width:2em}.tag.is-delete:not(body)::before,.content kbd.is-delete:not(body)::before,.docstring>section>a.docs-sourcelink.is-delete:not(body)::before,.tag.is-delete:not(body)::after,.content kbd.is-delete:not(body)::after,.docstring>section>a.docs-sourcelink.is-delete:not(body)::after{background-color:currentColor;content:"";display:block;left:50%;position:absolute;top:50%;transform:translateX(-50%) translateY(-50%) rotate(45deg);transform-origin:center center}.tag.is-delete:not(body)::before,.content kbd.is-delete:not(body)::before,.docstring>section>a.docs-sourcelink.is-delete:not(body)::before{height:1px;width:50%}.tag.is-delete:not(body)::after,.content kbd.is-delete:not(body)::after,.docstring>section>a.docs-sourcelink.is-delete:not(body)::after{height:50%;width:1px}.tag.is-delete:not(body):hover,.content kbd.is-delete:not(body):hover,.docstring>section>a.docs-sourcelink.is-delete:not(body):hover,.tag.is-delete:not(body):focus,.content kbd.is-delete:not(body):focus,.docstring>section>a.docs-sourcelink.is-delete:not(body):focus{background-color:#e8e8e8}.tag.is-delete:not(body):active,.content kbd.is-delete:not(body):active,.docstring>section>a.docs-sourcelink.is-delete:not(body):active{background-color:#dbdbdb}.tag.is-rounded:not(body),#documenter .docs-sidebar form.docs-search>input:not(body),.content kbd.is-rounded:not(body),#documenter .docs-sidebar .content form.docs-search>input:not(body),.docstring>section>a.docs-sourcelink.is-rounded:not(body){border-radius:290486px}a.tag:hover,.docstring>section>a.docs-sourcelink:hover{text-decoration:underline}.title,.subtitle{word-break:break-word}.title em,.title span,.subtitle em,.subtitle span{font-weight:inherit}.title sub,.subtitle sub{font-size:.75em}.title sup,.subtitle sup{font-size:.75em}.title .tag,.title .content kbd,.content .title kbd,.title .docstring>section>a.docs-sourcelink,.subtitle .tag,.subtitle .content kbd,.content .subtitle kbd,.subtitle .docstring>section>a.docs-sourcelink{vertical-align:middle}.title{color:#363636;font-size:2rem;font-weight:600;line-height:1.125}.title strong{color:inherit;font-weight:inherit}.title+.highlight{margin-top:-0.75rem}.title:not(.is-spaced)+.subtitle{margin-top:-1.25rem}.title.is-1{font-size:3rem}.title.is-2{font-size:2.5rem}.title.is-3{font-size:2rem}.title.is-4{font-size:1.5rem}.title.is-5{font-size:1.25rem}.title.is-6{font-size:1rem}.title.is-7{font-size:.75rem}.subtitle{color:#4a4a4a;font-size:1.25rem;font-weight:400;line-height:1.25}.subtitle strong{color:#363636;font-weight:600}.subtitle:not(.is-spaced)+.title{margin-top:-1.25rem}.subtitle.is-1{font-size:3rem}.subtitle.is-2{font-size:2.5rem}.subtitle.is-3{font-size:2rem}.subtitle.is-4{font-size:1.5rem}.subtitle.is-5{font-size:1.25rem}.subtitle.is-6{font-size:1rem}.subtitle.is-7{font-size:.75rem}.heading{display:block;font-size:11px;letter-spacing:1px;margin-bottom:5px;text-transform:uppercase}.highlight{font-weight:400;max-width:100%;overflow:hidden;padding:0}.highlight pre{overflow:auto;max-width:100%}.number{align-items:center;background-color:#f5f5f5;border-radius:290486px;display:inline-flex;font-size:1.25rem;height:2em;justify-content:center;margin-right:1.5rem;min-width:2.5em;padding:0.25rem 0.5rem;text-align:center;vertical-align:top}.select select,.textarea,.input,#documenter .docs-sidebar form.docs-search>input{background-color:#fff;border-color:#dbdbdb;border-radius:4px;color:#363636}.select select::-moz-placeholder,.textarea::-moz-placeholder,.input::-moz-placeholder,#documenter .docs-sidebar form.docs-search>input::-moz-placeholder{color:rgba(54,54,54,0.3)}.select select::-webkit-input-placeholder,.textarea::-webkit-input-placeholder,.input::-webkit-input-placeholder,#documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder{color:rgba(54,54,54,0.3)}.select select:-moz-placeholder,.textarea:-moz-placeholder,.input:-moz-placeholder,#documenter .docs-sidebar form.docs-search>input:-moz-placeholder{color:rgba(54,54,54,0.3)}.select select:-ms-input-placeholder,.textarea:-ms-input-placeholder,.input:-ms-input-placeholder,#documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder{color:rgba(54,54,54,0.3)}.select select:hover,.textarea:hover,.input:hover,#documenter .docs-sidebar form.docs-search>input:hover,.select select.is-hovered,.is-hovered.textarea,.is-hovered.input,#documenter .docs-sidebar form.docs-search>input.is-hovered{border-color:#b5b5b5}.select select:focus,.textarea:focus,.input:focus,#documenter .docs-sidebar form.docs-search>input:focus,.select select.is-focused,.is-focused.textarea,.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.select select:active,.textarea:active,.input:active,#documenter .docs-sidebar form.docs-search>input:active,.select select.is-active,.is-active.textarea,.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{border-color:#2e63b8;box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.select select[disabled],.textarea[disabled],.input[disabled],#documenter .docs-sidebar form.docs-search>input[disabled],fieldset[disabled] .select select,.select fieldset[disabled] select,fieldset[disabled] .textarea,fieldset[disabled] .input,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input{background-color:#f5f5f5;border-color:#f5f5f5;box-shadow:none;color:#6b6b6b}.select select[disabled]::-moz-placeholder,.textarea[disabled]::-moz-placeholder,.input[disabled]::-moz-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]::-moz-placeholder,fieldset[disabled] .select select::-moz-placeholder,.select fieldset[disabled] select::-moz-placeholder,fieldset[disabled] .textarea::-moz-placeholder,fieldset[disabled] .input::-moz-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input::-moz-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input::-moz-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]::-webkit-input-placeholder,.textarea[disabled]::-webkit-input-placeholder,.input[disabled]::-webkit-input-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]::-webkit-input-placeholder,fieldset[disabled] .select select::-webkit-input-placeholder,.select fieldset[disabled] select::-webkit-input-placeholder,fieldset[disabled] .textarea::-webkit-input-placeholder,fieldset[disabled] .input::-webkit-input-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input::-webkit-input-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input::-webkit-input-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]:-moz-placeholder,.textarea[disabled]:-moz-placeholder,.input[disabled]:-moz-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]:-moz-placeholder,fieldset[disabled] .select select:-moz-placeholder,.select fieldset[disabled] select:-moz-placeholder,fieldset[disabled] .textarea:-moz-placeholder,fieldset[disabled] .input:-moz-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input:-moz-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input:-moz-placeholder{color:rgba(107,107,107,0.3)}.select select[disabled]:-ms-input-placeholder,.textarea[disabled]:-ms-input-placeholder,.input[disabled]:-ms-input-placeholder,#documenter .docs-sidebar form.docs-search>input[disabled]:-ms-input-placeholder,fieldset[disabled] .select select:-ms-input-placeholder,.select fieldset[disabled] select:-ms-input-placeholder,fieldset[disabled] .textarea:-ms-input-placeholder,fieldset[disabled] .input:-ms-input-placeholder,fieldset[disabled] #documenter .docs-sidebar form.docs-search>input:-ms-input-placeholder,#documenter .docs-sidebar fieldset[disabled] form.docs-search>input:-ms-input-placeholder{color:rgba(107,107,107,0.3)}.textarea,.input,#documenter .docs-sidebar form.docs-search>input{box-shadow:inset 0 1px 2px rgba(10,10,10,0.1);max-width:100%;width:100%}.textarea[readonly],.input[readonly],#documenter .docs-sidebar form.docs-search>input[readonly]{box-shadow:none}.is-white.textarea,.is-white.input,#documenter .docs-sidebar form.docs-search>input.is-white{border-color:#fff}.is-white.textarea:focus,.is-white.input:focus,#documenter .docs-sidebar form.docs-search>input.is-white:focus,.is-white.is-focused.textarea,.is-white.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-white.textarea:active,.is-white.input:active,#documenter .docs-sidebar form.docs-search>input.is-white:active,.is-white.is-active.textarea,.is-white.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.is-black.textarea,.is-black.input,#documenter .docs-sidebar form.docs-search>input.is-black{border-color:#0a0a0a}.is-black.textarea:focus,.is-black.input:focus,#documenter .docs-sidebar form.docs-search>input.is-black:focus,.is-black.is-focused.textarea,.is-black.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-black.textarea:active,.is-black.input:active,#documenter .docs-sidebar form.docs-search>input.is-black:active,.is-black.is-active.textarea,.is-black.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.is-light.textarea,.is-light.input,#documenter .docs-sidebar form.docs-search>input.is-light{border-color:#f5f5f5}.is-light.textarea:focus,.is-light.input:focus,#documenter .docs-sidebar form.docs-search>input.is-light:focus,.is-light.is-focused.textarea,.is-light.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-light.textarea:active,.is-light.input:active,#documenter .docs-sidebar form.docs-search>input.is-light:active,.is-light.is-active.textarea,.is-light.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.is-dark.textarea,.content kbd.textarea,.is-dark.input,#documenter .docs-sidebar form.docs-search>input.is-dark,.content kbd.input{border-color:#363636}.is-dark.textarea:focus,.content kbd.textarea:focus,.is-dark.input:focus,#documenter .docs-sidebar form.docs-search>input.is-dark:focus,.content kbd.input:focus,.is-dark.is-focused.textarea,.content kbd.is-focused.textarea,.is-dark.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.content kbd.is-focused.input,#documenter .docs-sidebar .content form.docs-search>input.is-focused,.is-dark.textarea:active,.content kbd.textarea:active,.is-dark.input:active,#documenter .docs-sidebar form.docs-search>input.is-dark:active,.content kbd.input:active,.is-dark.is-active.textarea,.content kbd.is-active.textarea,.is-dark.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.content kbd.is-active.input,#documenter .docs-sidebar .content form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.is-primary.textarea,.docstring>section>a.textarea.docs-sourcelink,.is-primary.input,#documenter .docs-sidebar form.docs-search>input.is-primary,.docstring>section>a.input.docs-sourcelink{border-color:#4eb5de}.is-primary.textarea:focus,.docstring>section>a.textarea.docs-sourcelink:focus,.is-primary.input:focus,#documenter .docs-sidebar form.docs-search>input.is-primary:focus,.docstring>section>a.input.docs-sourcelink:focus,.is-primary.is-focused.textarea,.docstring>section>a.is-focused.textarea.docs-sourcelink,.is-primary.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.docstring>section>a.is-focused.input.docs-sourcelink,.is-primary.textarea:active,.docstring>section>a.textarea.docs-sourcelink:active,.is-primary.input:active,#documenter .docs-sidebar form.docs-search>input.is-primary:active,.docstring>section>a.input.docs-sourcelink:active,.is-primary.is-active.textarea,.docstring>section>a.is-active.textarea.docs-sourcelink,.is-primary.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active,.docstring>section>a.is-active.input.docs-sourcelink{box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.is-link.textarea,.is-link.input,#documenter .docs-sidebar form.docs-search>input.is-link{border-color:#2e63b8}.is-link.textarea:focus,.is-link.input:focus,#documenter .docs-sidebar form.docs-search>input.is-link:focus,.is-link.is-focused.textarea,.is-link.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-link.textarea:active,.is-link.input:active,#documenter .docs-sidebar form.docs-search>input.is-link:active,.is-link.is-active.textarea,.is-link.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.is-info.textarea,.is-info.input,#documenter .docs-sidebar form.docs-search>input.is-info{border-color:#209cee}.is-info.textarea:focus,.is-info.input:focus,#documenter .docs-sidebar form.docs-search>input.is-info:focus,.is-info.is-focused.textarea,.is-info.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-info.textarea:active,.is-info.input:active,#documenter .docs-sidebar form.docs-search>input.is-info:active,.is-info.is-active.textarea,.is-info.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.is-success.textarea,.is-success.input,#documenter .docs-sidebar form.docs-search>input.is-success{border-color:#22c35b}.is-success.textarea:focus,.is-success.input:focus,#documenter .docs-sidebar form.docs-search>input.is-success:focus,.is-success.is-focused.textarea,.is-success.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-success.textarea:active,.is-success.input:active,#documenter .docs-sidebar form.docs-search>input.is-success:active,.is-success.is-active.textarea,.is-success.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.is-warning.textarea,.is-warning.input,#documenter .docs-sidebar form.docs-search>input.is-warning{border-color:#ffdd57}.is-warning.textarea:focus,.is-warning.input:focus,#documenter .docs-sidebar form.docs-search>input.is-warning:focus,.is-warning.is-focused.textarea,.is-warning.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-warning.textarea:active,.is-warning.input:active,#documenter .docs-sidebar form.docs-search>input.is-warning:active,.is-warning.is-active.textarea,.is-warning.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.is-danger.textarea,.is-danger.input,#documenter .docs-sidebar form.docs-search>input.is-danger{border-color:#da0b00}.is-danger.textarea:focus,.is-danger.input:focus,#documenter .docs-sidebar form.docs-search>input.is-danger:focus,.is-danger.is-focused.textarea,.is-danger.is-focused.input,#documenter .docs-sidebar form.docs-search>input.is-focused,.is-danger.textarea:active,.is-danger.input:active,#documenter .docs-sidebar form.docs-search>input.is-danger:active,.is-danger.is-active.textarea,.is-danger.is-active.input,#documenter .docs-sidebar form.docs-search>input.is-active{box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.is-small.textarea,.is-small.input,#documenter .docs-sidebar form.docs-search>input{border-radius:2px;font-size:.75rem}.is-medium.textarea,.is-medium.input,#documenter .docs-sidebar form.docs-search>input.is-medium{font-size:1.25rem}.is-large.textarea,.is-large.input,#documenter .docs-sidebar form.docs-search>input.is-large{font-size:1.5rem}.is-fullwidth.textarea,.is-fullwidth.input,#documenter .docs-sidebar form.docs-search>input.is-fullwidth{display:block;width:100%}.is-inline.textarea,.is-inline.input,#documenter .docs-sidebar form.docs-search>input.is-inline{display:inline;width:auto}.input.is-rounded,#documenter .docs-sidebar form.docs-search>input{border-radius:290486px;padding-left:1em;padding-right:1em}.input.is-static,#documenter .docs-sidebar form.docs-search>input.is-static{background-color:transparent;border-color:transparent;box-shadow:none;padding-left:0;padding-right:0}.textarea{display:block;max-width:100%;min-width:100%;padding:0.625em;resize:vertical}.textarea:not([rows]){max-height:600px;min-height:120px}.textarea[rows]{height:initial}.textarea.has-fixed-size{resize:none}.radio,.checkbox{cursor:pointer;display:inline-block;line-height:1.25;position:relative}.radio input,.checkbox input{cursor:pointer}.radio:hover,.checkbox:hover{color:#363636}.radio[disabled],.checkbox[disabled],fieldset[disabled] .radio,fieldset[disabled] .checkbox{color:#6b6b6b;cursor:not-allowed}.radio+.radio{margin-left:0.5em}.select{display:inline-block;max-width:100%;position:relative;vertical-align:top}.select:not(.is-multiple){height:2.25em}.select:not(.is-multiple):not(.is-loading)::after{border-color:#2e63b8;right:1.125em;z-index:4}.select.is-rounded select,#documenter .docs-sidebar form.docs-search>input.select select{border-radius:290486px;padding-left:1em}.select select{cursor:pointer;display:block;font-size:1em;max-width:100%;outline:none}.select select::-ms-expand{display:none}.select select[disabled]:hover,fieldset[disabled] .select select:hover{border-color:#f5f5f5}.select select:not([multiple]){padding-right:2.5em}.select select[multiple]{height:auto;padding:0}.select select[multiple] option{padding:0.5em 1em}.select:not(.is-multiple):not(.is-loading):hover::after{border-color:#363636}.select.is-white:not(:hover)::after{border-color:#fff}.select.is-white select{border-color:#fff}.select.is-white select:hover,.select.is-white select.is-hovered{border-color:#f2f2f2}.select.is-white select:focus,.select.is-white select.is-focused,.select.is-white select:active,.select.is-white select.is-active{box-shadow:0 0 0 0.125em rgba(255,255,255,0.25)}.select.is-black:not(:hover)::after{border-color:#0a0a0a}.select.is-black select{border-color:#0a0a0a}.select.is-black select:hover,.select.is-black select.is-hovered{border-color:#000}.select.is-black select:focus,.select.is-black select.is-focused,.select.is-black select:active,.select.is-black select.is-active{box-shadow:0 0 0 0.125em rgba(10,10,10,0.25)}.select.is-light:not(:hover)::after{border-color:#f5f5f5}.select.is-light select{border-color:#f5f5f5}.select.is-light select:hover,.select.is-light select.is-hovered{border-color:#e8e8e8}.select.is-light select:focus,.select.is-light select.is-focused,.select.is-light select:active,.select.is-light select.is-active{box-shadow:0 0 0 0.125em rgba(245,245,245,0.25)}.select.is-dark:not(:hover)::after,.content kbd.select:not(:hover)::after{border-color:#363636}.select.is-dark select,.content kbd.select select{border-color:#363636}.select.is-dark select:hover,.content kbd.select select:hover,.select.is-dark select.is-hovered,.content kbd.select select.is-hovered{border-color:#292929}.select.is-dark select:focus,.content kbd.select select:focus,.select.is-dark select.is-focused,.content kbd.select select.is-focused,.select.is-dark select:active,.content kbd.select select:active,.select.is-dark select.is-active,.content kbd.select select.is-active{box-shadow:0 0 0 0.125em rgba(54,54,54,0.25)}.select.is-primary:not(:hover)::after,.docstring>section>a.select.docs-sourcelink:not(:hover)::after{border-color:#4eb5de}.select.is-primary select,.docstring>section>a.select.docs-sourcelink select{border-color:#4eb5de}.select.is-primary select:hover,.docstring>section>a.select.docs-sourcelink select:hover,.select.is-primary select.is-hovered,.docstring>section>a.select.docs-sourcelink select.is-hovered{border-color:#39acda}.select.is-primary select:focus,.docstring>section>a.select.docs-sourcelink select:focus,.select.is-primary select.is-focused,.docstring>section>a.select.docs-sourcelink select.is-focused,.select.is-primary select:active,.docstring>section>a.select.docs-sourcelink select:active,.select.is-primary select.is-active,.docstring>section>a.select.docs-sourcelink select.is-active{box-shadow:0 0 0 0.125em rgba(78,181,222,0.25)}.select.is-link:not(:hover)::after{border-color:#2e63b8}.select.is-link select{border-color:#2e63b8}.select.is-link select:hover,.select.is-link select.is-hovered{border-color:#2958a4}.select.is-link select:focus,.select.is-link select.is-focused,.select.is-link select:active,.select.is-link select.is-active{box-shadow:0 0 0 0.125em rgba(46,99,184,0.25)}.select.is-info:not(:hover)::after{border-color:#209cee}.select.is-info select{border-color:#209cee}.select.is-info select:hover,.select.is-info select.is-hovered{border-color:#1190e3}.select.is-info select:focus,.select.is-info select.is-focused,.select.is-info select:active,.select.is-info select.is-active{box-shadow:0 0 0 0.125em rgba(32,156,238,0.25)}.select.is-success:not(:hover)::after{border-color:#22c35b}.select.is-success select{border-color:#22c35b}.select.is-success select:hover,.select.is-success select.is-hovered{border-color:#1ead51}.select.is-success select:focus,.select.is-success select.is-focused,.select.is-success select:active,.select.is-success select.is-active{box-shadow:0 0 0 0.125em rgba(34,195,91,0.25)}.select.is-warning:not(:hover)::after{border-color:#ffdd57}.select.is-warning select{border-color:#ffdd57}.select.is-warning select:hover,.select.is-warning select.is-hovered{border-color:#ffd83e}.select.is-warning select:focus,.select.is-warning select.is-focused,.select.is-warning select:active,.select.is-warning select.is-active{box-shadow:0 0 0 0.125em rgba(255,221,87,0.25)}.select.is-danger:not(:hover)::after{border-color:#da0b00}.select.is-danger select{border-color:#da0b00}.select.is-danger select:hover,.select.is-danger select.is-hovered{border-color:#c10a00}.select.is-danger select:focus,.select.is-danger select.is-focused,.select.is-danger select:active,.select.is-danger select.is-active{box-shadow:0 0 0 0.125em rgba(218,11,0,0.25)}.select.is-small,#documenter .docs-sidebar form.docs-search>input.select{border-radius:2px;font-size:.75rem}.select.is-medium{font-size:1.25rem}.select.is-large{font-size:1.5rem}.select.is-disabled::after{border-color:#6b6b6b}.select.is-fullwidth{width:100%}.select.is-fullwidth select{width:100%}.select.is-loading::after{margin-top:0;position:absolute;right:0.625em;top:0.625em;transform:none}.select.is-loading.is-small:after,#documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.75rem}.select.is-loading.is-medium:after{font-size:1.25rem}.select.is-loading.is-large:after{font-size:1.5rem}.file{align-items:stretch;display:flex;justify-content:flex-start;position:relative}.file.is-white .file-cta{background-color:#fff;border-color:transparent;color:#0a0a0a}.file.is-white:hover .file-cta,.file.is-white.is-hovered .file-cta{background-color:#f9f9f9;border-color:transparent;color:#0a0a0a}.file.is-white:focus .file-cta,.file.is-white.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,255,255,0.25);color:#0a0a0a}.file.is-white:active .file-cta,.file.is-white.is-active .file-cta{background-color:#f2f2f2;border-color:transparent;color:#0a0a0a}.file.is-black .file-cta{background-color:#0a0a0a;border-color:transparent;color:#fff}.file.is-black:hover .file-cta,.file.is-black.is-hovered .file-cta{background-color:#040404;border-color:transparent;color:#fff}.file.is-black:focus .file-cta,.file.is-black.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(10,10,10,0.25);color:#fff}.file.is-black:active .file-cta,.file.is-black.is-active .file-cta{background-color:#000;border-color:transparent;color:#fff}.file.is-light .file-cta{background-color:#f5f5f5;border-color:transparent;color:#363636}.file.is-light:hover .file-cta,.file.is-light.is-hovered .file-cta{background-color:#eee;border-color:transparent;color:#363636}.file.is-light:focus .file-cta,.file.is-light.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(245,245,245,0.25);color:#363636}.file.is-light:active .file-cta,.file.is-light.is-active .file-cta{background-color:#e8e8e8;border-color:transparent;color:#363636}.file.is-dark .file-cta,.content kbd.file .file-cta{background-color:#363636;border-color:transparent;color:#f5f5f5}.file.is-dark:hover .file-cta,.content kbd.file:hover .file-cta,.file.is-dark.is-hovered .file-cta,.content kbd.file.is-hovered .file-cta{background-color:#2f2f2f;border-color:transparent;color:#f5f5f5}.file.is-dark:focus .file-cta,.content kbd.file:focus .file-cta,.file.is-dark.is-focused .file-cta,.content kbd.file.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(54,54,54,0.25);color:#f5f5f5}.file.is-dark:active .file-cta,.content kbd.file:active .file-cta,.file.is-dark.is-active .file-cta,.content kbd.file.is-active .file-cta{background-color:#292929;border-color:transparent;color:#f5f5f5}.file.is-primary .file-cta,.docstring>section>a.file.docs-sourcelink .file-cta{background-color:#4eb5de;border-color:transparent;color:#fff}.file.is-primary:hover .file-cta,.docstring>section>a.file.docs-sourcelink:hover .file-cta,.file.is-primary.is-hovered .file-cta,.docstring>section>a.file.is-hovered.docs-sourcelink .file-cta{background-color:#43b1dc;border-color:transparent;color:#fff}.file.is-primary:focus .file-cta,.docstring>section>a.file.docs-sourcelink:focus .file-cta,.file.is-primary.is-focused .file-cta,.docstring>section>a.file.is-focused.docs-sourcelink .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(78,181,222,0.25);color:#fff}.file.is-primary:active .file-cta,.docstring>section>a.file.docs-sourcelink:active .file-cta,.file.is-primary.is-active .file-cta,.docstring>section>a.file.is-active.docs-sourcelink .file-cta{background-color:#39acda;border-color:transparent;color:#fff}.file.is-link .file-cta{background-color:#2e63b8;border-color:transparent;color:#fff}.file.is-link:hover .file-cta,.file.is-link.is-hovered .file-cta{background-color:#2b5eae;border-color:transparent;color:#fff}.file.is-link:focus .file-cta,.file.is-link.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(46,99,184,0.25);color:#fff}.file.is-link:active .file-cta,.file.is-link.is-active .file-cta{background-color:#2958a4;border-color:transparent;color:#fff}.file.is-info .file-cta{background-color:#209cee;border-color:transparent;color:#fff}.file.is-info:hover .file-cta,.file.is-info.is-hovered .file-cta{background-color:#1497ed;border-color:transparent;color:#fff}.file.is-info:focus .file-cta,.file.is-info.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(32,156,238,0.25);color:#fff}.file.is-info:active .file-cta,.file.is-info.is-active .file-cta{background-color:#1190e3;border-color:transparent;color:#fff}.file.is-success .file-cta{background-color:#22c35b;border-color:transparent;color:#fff}.file.is-success:hover .file-cta,.file.is-success.is-hovered .file-cta{background-color:#20b856;border-color:transparent;color:#fff}.file.is-success:focus .file-cta,.file.is-success.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(34,195,91,0.25);color:#fff}.file.is-success:active .file-cta,.file.is-success.is-active .file-cta{background-color:#1ead51;border-color:transparent;color:#fff}.file.is-warning .file-cta{background-color:#ffdd57;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-warning:hover .file-cta,.file.is-warning.is-hovered .file-cta{background-color:#ffda4a;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-warning:focus .file-cta,.file.is-warning.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(255,221,87,0.25);color:rgba(0,0,0,0.7)}.file.is-warning:active .file-cta,.file.is-warning.is-active .file-cta{background-color:#ffd83e;border-color:transparent;color:rgba(0,0,0,0.7)}.file.is-danger .file-cta{background-color:#da0b00;border-color:transparent;color:#fff}.file.is-danger:hover .file-cta,.file.is-danger.is-hovered .file-cta{background-color:#cd0a00;border-color:transparent;color:#fff}.file.is-danger:focus .file-cta,.file.is-danger.is-focused .file-cta{border-color:transparent;box-shadow:0 0 0.5em rgba(218,11,0,0.25);color:#fff}.file.is-danger:active .file-cta,.file.is-danger.is-active .file-cta{background-color:#c10a00;border-color:transparent;color:#fff}.file.is-small,#documenter .docs-sidebar form.docs-search>input.file{font-size:.75rem}.file.is-medium{font-size:1.25rem}.file.is-medium .file-icon .fa{font-size:21px}.file.is-large{font-size:1.5rem}.file.is-large .file-icon .fa{font-size:28px}.file.has-name .file-cta{border-bottom-right-radius:0;border-top-right-radius:0}.file.has-name .file-name{border-bottom-left-radius:0;border-top-left-radius:0}.file.has-name.is-empty .file-cta{border-radius:4px}.file.has-name.is-empty .file-name{display:none}.file.is-boxed .file-label{flex-direction:column}.file.is-boxed .file-cta{flex-direction:column;height:auto;padding:1em 3em}.file.is-boxed .file-name{border-width:0 1px 1px}.file.is-boxed .file-icon{height:1.5em;width:1.5em}.file.is-boxed .file-icon .fa{font-size:21px}.file.is-boxed.is-small .file-icon .fa,#documenter .docs-sidebar form.docs-search>input.is-boxed .file-icon .fa{font-size:14px}.file.is-boxed.is-medium .file-icon .fa{font-size:28px}.file.is-boxed.is-large .file-icon .fa{font-size:35px}.file.is-boxed.has-name .file-cta{border-radius:4px 4px 0 0}.file.is-boxed.has-name .file-name{border-radius:0 0 4px 4px;border-width:0 1px 1px}.file.is-centered{justify-content:center}.file.is-fullwidth .file-label{width:100%}.file.is-fullwidth .file-name{flex-grow:1;max-width:none}.file.is-right{justify-content:flex-end}.file.is-right .file-cta{border-radius:0 4px 4px 0}.file.is-right .file-name{border-radius:4px 0 0 4px;border-width:1px 0 1px 1px;order:-1}.file-label{align-items:stretch;display:flex;cursor:pointer;justify-content:flex-start;overflow:hidden;position:relative}.file-label:hover .file-cta{background-color:#eee;color:#363636}.file-label:hover .file-name{border-color:#d5d5d5}.file-label:active .file-cta{background-color:#e8e8e8;color:#363636}.file-label:active .file-name{border-color:#cfcfcf}.file-input{height:100%;left:0;opacity:0;outline:none;position:absolute;top:0;width:100%}.file-cta,.file-name{border-color:#dbdbdb;border-radius:4px;font-size:1em;padding-left:1em;padding-right:1em;white-space:nowrap}.file-cta{background-color:#f5f5f5;color:#4a4a4a}.file-name{border-color:#dbdbdb;border-style:solid;border-width:1px 1px 1px 0;display:block;max-width:16em;overflow:hidden;text-align:left;text-overflow:ellipsis}.file-icon{align-items:center;display:flex;height:1em;justify-content:center;margin-right:0.5em;width:1em}.file-icon .fa{font-size:14px}.label{color:#363636;display:block;font-size:1rem;font-weight:700}.label:not(:last-child){margin-bottom:0.5em}.label.is-small,#documenter .docs-sidebar form.docs-search>input.label{font-size:.75rem}.label.is-medium{font-size:1.25rem}.label.is-large{font-size:1.5rem}.help{display:block;font-size:.75rem;margin-top:0.25rem}.help.is-white{color:#fff}.help.is-black{color:#0a0a0a}.help.is-light{color:#f5f5f5}.help.is-dark,.content kbd.help{color:#363636}.help.is-primary,.docstring>section>a.help.docs-sourcelink{color:#4eb5de}.help.is-link{color:#2e63b8}.help.is-info{color:#209cee}.help.is-success{color:#22c35b}.help.is-warning{color:#ffdd57}.help.is-danger{color:#da0b00}.field:not(:last-child){margin-bottom:0.75rem}.field.has-addons{display:flex;justify-content:flex-start}.field.has-addons .control:not(:last-child){margin-right:-1px}.field.has-addons .control:not(:first-child):not(:last-child) .button,.field.has-addons .control:not(:first-child):not(:last-child) .input,.field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search>input,.field.has-addons .control:not(:first-child):not(:last-child) .select select{border-radius:0}.field.has-addons .control:first-child:not(:only-child) .button,.field.has-addons .control:first-child:not(:only-child) .input,.field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search>input,.field.has-addons .control:first-child:not(:only-child) .select select{border-bottom-right-radius:0;border-top-right-radius:0}.field.has-addons .control:last-child:not(:only-child) .button,.field.has-addons .control:last-child:not(:only-child) .input,.field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search>input,.field.has-addons .control:last-child:not(:only-child) .select select{border-bottom-left-radius:0;border-top-left-radius:0}.field.has-addons .control .button:not([disabled]):hover,.field.has-addons .control .button.is-hovered:not([disabled]),.field.has-addons .control .input:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):hover,.field.has-addons .control .input.is-hovered:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-hovered:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-hovered:not([disabled]),.field.has-addons .control .select select:not([disabled]):hover,.field.has-addons .control .select select.is-hovered:not([disabled]){z-index:2}.field.has-addons .control .button:not([disabled]):focus,.field.has-addons .control .button.is-focused:not([disabled]),.field.has-addons .control .button:not([disabled]):active,.field.has-addons .control .button.is-active:not([disabled]),.field.has-addons .control .input:not([disabled]):focus,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus,.field.has-addons .control .input.is-focused:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]),.field.has-addons .control .input:not([disabled]):active,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active,.field.has-addons .control .input.is-active:not([disabled]),.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]),#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]),.field.has-addons .control .select select:not([disabled]):focus,.field.has-addons .control .select select.is-focused:not([disabled]),.field.has-addons .control .select select:not([disabled]):active,.field.has-addons .control .select select.is-active:not([disabled]){z-index:3}.field.has-addons .control .button:not([disabled]):focus:hover,.field.has-addons .control .button.is-focused:not([disabled]):hover,.field.has-addons .control .button:not([disabled]):active:hover,.field.has-addons .control .button.is-active:not([disabled]):hover,.field.has-addons .control .input:not([disabled]):focus:hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):focus:hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):focus:hover,.field.has-addons .control .input.is-focused:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-focused:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-focused:not([disabled]):hover,.field.has-addons .control .input:not([disabled]):active:hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input:not([disabled]):active:hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input:not([disabled]):active:hover,.field.has-addons .control .input.is-active:not([disabled]):hover,.field.has-addons .control #documenter .docs-sidebar form.docs-search>input.is-active:not([disabled]):hover,#documenter .docs-sidebar .field.has-addons .control form.docs-search>input.is-active:not([disabled]):hover,.field.has-addons .control .select select:not([disabled]):focus:hover,.field.has-addons .control .select select.is-focused:not([disabled]):hover,.field.has-addons .control .select select:not([disabled]):active:hover,.field.has-addons .control .select select.is-active:not([disabled]):hover{z-index:4}.field.has-addons .control.is-expanded{flex-grow:1;flex-shrink:1}.field.has-addons.has-addons-centered{justify-content:center}.field.has-addons.has-addons-right{justify-content:flex-end}.field.has-addons.has-addons-fullwidth .control{flex-grow:1;flex-shrink:0}.field.is-grouped{display:flex;justify-content:flex-start}.field.is-grouped>.control{flex-shrink:0}.field.is-grouped>.control:not(:last-child){margin-bottom:0;margin-right:0.75rem}.field.is-grouped>.control.is-expanded{flex-grow:1;flex-shrink:1}.field.is-grouped.is-grouped-centered{justify-content:center}.field.is-grouped.is-grouped-right{justify-content:flex-end}.field.is-grouped.is-grouped-multiline{flex-wrap:wrap}.field.is-grouped.is-grouped-multiline>.control:last-child,.field.is-grouped.is-grouped-multiline>.control:not(:last-child){margin-bottom:0.75rem}.field.is-grouped.is-grouped-multiline:last-child{margin-bottom:-0.75rem}.field.is-grouped.is-grouped-multiline:not(:last-child){margin-bottom:0}@media screen and (min-width: 769px),print{.field.is-horizontal{display:flex}}.field-label .label{font-size:inherit}@media screen and (max-width: 768px){.field-label{margin-bottom:0.5rem}}@media screen and (min-width: 769px),print{.field-label{flex-basis:0;flex-grow:1;flex-shrink:0;margin-right:1.5rem;text-align:right}.field-label.is-small,#documenter .docs-sidebar form.docs-search>input.field-label{font-size:.75rem;padding-top:0.375em}.field-label.is-normal{padding-top:0.375em}.field-label.is-medium{font-size:1.25rem;padding-top:0.375em}.field-label.is-large{font-size:1.5rem;padding-top:0.375em}}.field-body .field .field{margin-bottom:0}@media screen and (min-width: 769px),print{.field-body{display:flex;flex-basis:0;flex-grow:5;flex-shrink:1}.field-body .field{margin-bottom:0}.field-body>.field{flex-shrink:1}.field-body>.field:not(.is-narrow){flex-grow:1}.field-body>.field:not(:last-child){margin-right:0.75rem}}.control{box-sizing:border-box;clear:both;font-size:1rem;position:relative;text-align:left}.control.has-icons-left .input:focus~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input:focus~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input:focus~.icon,.control.has-icons-left .select:focus~.icon,.control.has-icons-right .input:focus~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input:focus~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input:focus~.icon,.control.has-icons-right .select:focus~.icon{color:#6b6b6b}.control.has-icons-left .input.is-small~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input~.icon,.control.has-icons-left .select.is-small~.icon,.control.has-icons-right .input.is-small~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input~.icon,.control.has-icons-right .select.is-small~.icon{font-size:.75rem}.control.has-icons-left .input.is-medium~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-medium~.icon,.control.has-icons-left .select.is-medium~.icon,.control.has-icons-right .input.is-medium~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-medium~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-medium~.icon,.control.has-icons-right .select.is-medium~.icon{font-size:1.25rem}.control.has-icons-left .input.is-large~.icon,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input.is-large~.icon,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input.is-large~.icon,.control.has-icons-left .select.is-large~.icon,.control.has-icons-right .input.is-large~.icon,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input.is-large~.icon,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input.is-large~.icon,.control.has-icons-right .select.is-large~.icon{font-size:1.5rem}.control.has-icons-left .icon,.control.has-icons-right .icon{color:#dbdbdb;height:2.25em;pointer-events:none;position:absolute;top:0;width:2.25em;z-index:4}.control.has-icons-left .input,.control.has-icons-left #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .control.has-icons-left form.docs-search>input,.control.has-icons-left .select select{padding-left:2.25em}.control.has-icons-left .icon.is-left{left:0}.control.has-icons-right .input,.control.has-icons-right #documenter .docs-sidebar form.docs-search>input,#documenter .docs-sidebar .control.has-icons-right form.docs-search>input,.control.has-icons-right .select select{padding-right:2.25em}.control.has-icons-right .icon.is-right{right:0}.control.is-loading::after{position:absolute !important;right:0.625em;top:0.625em;z-index:4}.control.is-loading.is-small:after,#documenter .docs-sidebar form.docs-search>input.is-loading:after{font-size:.75rem}.control.is-loading.is-medium:after{font-size:1.25rem}.control.is-loading.is-large:after{font-size:1.5rem}.breadcrumb{font-size:1rem;white-space:nowrap}.breadcrumb a{align-items:center;color:#2e63b8;display:flex;justify-content:center;padding:0 .75em}.breadcrumb a:hover{color:#363636}.breadcrumb li{align-items:center;display:flex}.breadcrumb li:first-child a{padding-left:0}.breadcrumb li.is-active a{color:#222;cursor:default;pointer-events:none}.breadcrumb li+li::before{color:#b5b5b5;content:"\0002f"}.breadcrumb ul,.breadcrumb ol{align-items:flex-start;display:flex;flex-wrap:wrap;justify-content:flex-start}.breadcrumb .icon:first-child{margin-right:0.5em}.breadcrumb .icon:last-child{margin-left:0.5em}.breadcrumb.is-centered ol,.breadcrumb.is-centered ul{justify-content:center}.breadcrumb.is-right ol,.breadcrumb.is-right ul{justify-content:flex-end}.breadcrumb.is-small,#documenter .docs-sidebar form.docs-search>input.breadcrumb{font-size:.75rem}.breadcrumb.is-medium{font-size:1.25rem}.breadcrumb.is-large{font-size:1.5rem}.breadcrumb.has-arrow-separator li+li::before{content:"\02192"}.breadcrumb.has-bullet-separator li+li::before{content:"\02022"}.breadcrumb.has-dot-separator li+li::before{content:"\000b7"}.breadcrumb.has-succeeds-separator li+li::before{content:"\0227B"}.card{background-color:#fff;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);color:#222;max-width:100%;position:relative}.card-header{background-color:rgba(0,0,0,0);align-items:stretch;box-shadow:0 1px 2px rgba(10,10,10,0.1);display:flex}.card-header-title{align-items:center;color:#222;display:flex;flex-grow:1;font-weight:700;padding:.75rem}.card-header-title.is-centered{justify-content:center}.card-header-icon{align-items:center;cursor:pointer;display:flex;justify-content:center;padding:.75rem}.card-image{display:block;position:relative}.card-content{background-color:rgba(0,0,0,0);padding:1.5rem}.card-footer{background-color:rgba(0,0,0,0);border-top:1px solid #dbdbdb;align-items:stretch;display:flex}.card-footer-item{align-items:center;display:flex;flex-basis:0;flex-grow:1;flex-shrink:0;justify-content:center;padding:.75rem}.card-footer-item:not(:last-child){border-right:1px solid #dbdbdb}.card .media:not(:last-child){margin-bottom:1.5rem}.dropdown{display:inline-flex;position:relative;vertical-align:top}.dropdown.is-active .dropdown-menu,.dropdown.is-hoverable:hover .dropdown-menu{display:block}.dropdown.is-right .dropdown-menu{left:auto;right:0}.dropdown.is-up .dropdown-menu{bottom:100%;padding-bottom:4px;padding-top:initial;top:auto}.dropdown-menu{display:none;left:0;min-width:12rem;padding-top:4px;position:absolute;top:100%;z-index:20}.dropdown-content{background-color:#fff;border-radius:4px;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1);padding-bottom:.5rem;padding-top:.5rem}.dropdown-item{color:#4a4a4a;display:block;font-size:0.875rem;line-height:1.5;padding:0.375rem 1rem;position:relative}a.dropdown-item,button.dropdown-item{padding-right:3rem;text-align:left;white-space:nowrap;width:100%}a.dropdown-item:hover,button.dropdown-item:hover{background-color:#f5f5f5;color:#0a0a0a}a.dropdown-item.is-active,button.dropdown-item.is-active{background-color:#2e63b8;color:#fff}.dropdown-divider{background-color:#dbdbdb;border:none;display:block;height:1px;margin:0.5rem 0}.level{align-items:center;justify-content:space-between}.level code{border-radius:4px}.level img{display:inline-block;vertical-align:top}.level.is-mobile{display:flex}.level.is-mobile .level-left,.level.is-mobile .level-right{display:flex}.level.is-mobile .level-left+.level-right{margin-top:0}.level.is-mobile .level-item:not(:last-child){margin-bottom:0;margin-right:.75rem}.level.is-mobile .level-item:not(.is-narrow){flex-grow:1}@media screen and (min-width: 769px),print{.level{display:flex}.level>.level-item:not(.is-narrow){flex-grow:1}}.level-item{align-items:center;display:flex;flex-basis:auto;flex-grow:0;flex-shrink:0;justify-content:center}.level-item .title,.level-item .subtitle{margin-bottom:0}@media screen and (max-width: 768px){.level-item:not(:last-child){margin-bottom:.75rem}}.level-left,.level-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.level-left .level-item.is-flexible,.level-right .level-item.is-flexible{flex-grow:1}@media screen and (min-width: 769px),print{.level-left .level-item:not(:last-child),.level-right .level-item:not(:last-child){margin-right:.75rem}}.level-left{align-items:center;justify-content:flex-start}@media screen and (max-width: 768px){.level-left+.level-right{margin-top:1.5rem}}@media screen and (min-width: 769px),print{.level-left{display:flex}}.level-right{align-items:center;justify-content:flex-end}@media screen and (min-width: 769px),print{.level-right{display:flex}}.list{background-color:#fff;border-radius:4px;box-shadow:0 2px 3px rgba(10,10,10,0.1),0 0 0 1px rgba(10,10,10,0.1)}.list-item{display:block;padding:0.5em 1em}.list-item:not(a){color:#222}.list-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-item:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px}.list-item:not(:last-child){border-bottom:1px solid #dbdbdb}.list-item.is-active{background-color:#2e63b8;color:#fff}a.list-item{background-color:#f5f5f5;cursor:pointer}.media{align-items:flex-start;display:flex;text-align:left}.media .content:not(:last-child){margin-bottom:0.75rem}.media .media{border-top:1px solid rgba(219,219,219,0.5);display:flex;padding-top:0.75rem}.media .media .content:not(:last-child),.media .media .control:not(:last-child){margin-bottom:0.5rem}.media .media .media{padding-top:0.5rem}.media .media .media+.media{margin-top:0.5rem}.media+.media{border-top:1px solid rgba(219,219,219,0.5);margin-top:1rem;padding-top:1rem}.media.is-large+.media{margin-top:1.5rem;padding-top:1.5rem}.media-left,.media-right{flex-basis:auto;flex-grow:0;flex-shrink:0}.media-left{margin-right:1rem}.media-right{margin-left:1rem}.media-content{flex-basis:auto;flex-grow:1;flex-shrink:1;text-align:left}@media screen and (max-width: 768px){.media-content{overflow-x:auto}}.menu{font-size:1rem}.menu.is-small,#documenter .docs-sidebar form.docs-search>input.menu{font-size:.75rem}.menu.is-medium{font-size:1.25rem}.menu.is-large{font-size:1.5rem}.menu-list{line-height:1.25}.menu-list a{border-radius:2px;color:#222;display:block;padding:0.5em 0.75em}.menu-list a:hover{background-color:#f5f5f5;color:#222}.menu-list a.is-active{background-color:#2e63b8;color:#fff}.menu-list li ul{border-left:1px solid #dbdbdb;margin:.75em;padding-left:.75em}.menu-label{color:#6b6b6b;font-size:.75em;letter-spacing:.1em;text-transform:uppercase}.menu-label:not(:first-child){margin-top:1em}.menu-label:not(:last-child){margin-bottom:1em}.message{background-color:#f5f5f5;border-radius:4px;font-size:1rem}.message strong{color:currentColor}.message a:not(.button):not(.tag):not(.dropdown-item){color:currentColor;text-decoration:underline}.message.is-small,#documenter .docs-sidebar form.docs-search>input.message{font-size:.75rem}.message.is-medium{font-size:1.25rem}.message.is-large{font-size:1.5rem}.message.is-white{background-color:#fff}.message.is-white .message-header{background-color:#fff;color:#0a0a0a}.message.is-white .message-body{border-color:#fff;color:#4d4d4d}.message.is-black{background-color:#fafafa}.message.is-black .message-header{background-color:#0a0a0a;color:#fff}.message.is-black .message-body{border-color:#0a0a0a;color:#090909}.message.is-light{background-color:#fafafa}.message.is-light .message-header{background-color:#f5f5f5;color:#363636}.message.is-light .message-body{border-color:#f5f5f5;color:#505050}.message.is-dark,.content kbd.message{background-color:#fafafa}.message.is-dark .message-header,.content kbd.message .message-header{background-color:#363636;color:#f5f5f5}.message.is-dark .message-body,.content kbd.message .message-body{border-color:#363636;color:#2a2a2a}.message.is-primary,.docstring>section>a.message.docs-sourcelink{background-color:#f6fbfd}.message.is-primary .message-header,.docstring>section>a.message.docs-sourcelink .message-header{background-color:#4eb5de;color:#fff}.message.is-primary .message-body,.docstring>section>a.message.docs-sourcelink .message-body{border-color:#4eb5de;color:#1f556a}.message.is-link{background-color:#f7f9fd}.message.is-link .message-header{background-color:#2e63b8;color:#fff}.message.is-link .message-body{border-color:#2e63b8;color:#264981}.message.is-info{background-color:#f6fbfe}.message.is-info .message-header{background-color:#209cee;color:#fff}.message.is-info .message-body{border-color:#209cee;color:#12537d}.message.is-success{background-color:#f6fdf9}.message.is-success .message-header{background-color:#22c35b;color:#fff}.message.is-success .message-body{border-color:#22c35b;color:#0f361d}.message.is-warning{background-color:#fffdf5}.message.is-warning .message-header{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.message.is-warning .message-body{border-color:#ffdd57;color:#3c3108}.message.is-danger{background-color:#fff5f5}.message.is-danger .message-header{background-color:#da0b00;color:#fff}.message.is-danger .message-body{border-color:#da0b00;color:#9b0c04}.message-header{align-items:center;background-color:#222;border-radius:4px 4px 0 0;color:#fff;display:flex;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.75em 1em;position:relative}.message-header .delete{flex-grow:0;flex-shrink:0;margin-left:0.75em}.message-header+.message-body{border-width:0;border-top-left-radius:0;border-top-right-radius:0}.message-body{border-color:#dbdbdb;border-radius:4px;border-style:solid;border-width:0 0 0 4px;color:#222;padding:1.25em 1.5em}.message-body code,.message-body pre{background-color:#fff}.message-body pre code{background-color:rgba(0,0,0,0)}.modal{align-items:center;display:none;flex-direction:column;justify-content:center;overflow:hidden;position:fixed;z-index:40}.modal.is-active{display:flex}.modal-background{background-color:rgba(10,10,10,0.86)}.modal-content,.modal-card{margin:0 20px;max-height:calc(100vh - 160px);overflow:auto;position:relative;width:100%}@media screen and (min-width: 769px),print{.modal-content,.modal-card{margin:0 auto;max-height:calc(100vh - 40px);width:640px}}.modal-close{background:none;height:40px;position:fixed;right:20px;top:20px;width:40px}.modal-card{display:flex;flex-direction:column;max-height:calc(100vh - 40px);overflow:hidden;-ms-overflow-y:visible}.modal-card-head,.modal-card-foot{align-items:center;background-color:#f5f5f5;display:flex;flex-shrink:0;justify-content:flex-start;padding:20px;position:relative}.modal-card-head{border-bottom:1px solid #dbdbdb;border-top-left-radius:6px;border-top-right-radius:6px}.modal-card-title{color:#222;flex-grow:1;flex-shrink:0;font-size:1.5rem;line-height:1}.modal-card-foot{border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:1px solid #dbdbdb}.modal-card-foot .button:not(:last-child){margin-right:0.5em}.modal-card-body{-webkit-overflow-scrolling:touch;background-color:#fff;flex-grow:1;flex-shrink:1;overflow:auto;padding:20px}.navbar{background-color:#fff;min-height:3.25rem;position:relative;z-index:30}.navbar.is-white{background-color:#fff;color:#0a0a0a}.navbar.is-white .navbar-brand>.navbar-item,.navbar.is-white .navbar-brand .navbar-link{color:#0a0a0a}.navbar.is-white .navbar-brand>a.navbar-item:focus,.navbar.is-white .navbar-brand>a.navbar-item:hover,.navbar.is-white .navbar-brand>a.navbar-item.is-active,.navbar.is-white .navbar-brand .navbar-link:focus,.navbar.is-white .navbar-brand .navbar-link:hover,.navbar.is-white .navbar-brand .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-brand .navbar-link::after{border-color:#0a0a0a}.navbar.is-white .navbar-burger{color:#0a0a0a}@media screen and (min-width: 1056px){.navbar.is-white .navbar-start>.navbar-item,.navbar.is-white .navbar-start .navbar-link,.navbar.is-white .navbar-end>.navbar-item,.navbar.is-white .navbar-end .navbar-link{color:#0a0a0a}.navbar.is-white .navbar-start>a.navbar-item:focus,.navbar.is-white .navbar-start>a.navbar-item:hover,.navbar.is-white .navbar-start>a.navbar-item.is-active,.navbar.is-white .navbar-start .navbar-link:focus,.navbar.is-white .navbar-start .navbar-link:hover,.navbar.is-white .navbar-start .navbar-link.is-active,.navbar.is-white .navbar-end>a.navbar-item:focus,.navbar.is-white .navbar-end>a.navbar-item:hover,.navbar.is-white .navbar-end>a.navbar-item.is-active,.navbar.is-white .navbar-end .navbar-link:focus,.navbar.is-white .navbar-end .navbar-link:hover,.navbar.is-white .navbar-end .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-start .navbar-link::after,.navbar.is-white .navbar-end .navbar-link::after{border-color:#0a0a0a}.navbar.is-white .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-white .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-white .navbar-item.has-dropdown.is-active .navbar-link{background-color:#f2f2f2;color:#0a0a0a}.navbar.is-white .navbar-dropdown a.navbar-item.is-active{background-color:#fff;color:#0a0a0a}}.navbar.is-black{background-color:#0a0a0a;color:#fff}.navbar.is-black .navbar-brand>.navbar-item,.navbar.is-black .navbar-brand .navbar-link{color:#fff}.navbar.is-black .navbar-brand>a.navbar-item:focus,.navbar.is-black .navbar-brand>a.navbar-item:hover,.navbar.is-black .navbar-brand>a.navbar-item.is-active,.navbar.is-black .navbar-brand .navbar-link:focus,.navbar.is-black .navbar-brand .navbar-link:hover,.navbar.is-black .navbar-brand .navbar-link.is-active{background-color:#000;color:#fff}.navbar.is-black .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-black .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-black .navbar-start>.navbar-item,.navbar.is-black .navbar-start .navbar-link,.navbar.is-black .navbar-end>.navbar-item,.navbar.is-black .navbar-end .navbar-link{color:#fff}.navbar.is-black .navbar-start>a.navbar-item:focus,.navbar.is-black .navbar-start>a.navbar-item:hover,.navbar.is-black .navbar-start>a.navbar-item.is-active,.navbar.is-black .navbar-start .navbar-link:focus,.navbar.is-black .navbar-start .navbar-link:hover,.navbar.is-black .navbar-start .navbar-link.is-active,.navbar.is-black .navbar-end>a.navbar-item:focus,.navbar.is-black .navbar-end>a.navbar-item:hover,.navbar.is-black .navbar-end>a.navbar-item.is-active,.navbar.is-black .navbar-end .navbar-link:focus,.navbar.is-black .navbar-end .navbar-link:hover,.navbar.is-black .navbar-end .navbar-link.is-active{background-color:#000;color:#fff}.navbar.is-black .navbar-start .navbar-link::after,.navbar.is-black .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-black .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-black .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-black .navbar-item.has-dropdown.is-active .navbar-link{background-color:#000;color:#fff}.navbar.is-black .navbar-dropdown a.navbar-item.is-active{background-color:#0a0a0a;color:#fff}}.navbar.is-light{background-color:#f5f5f5;color:#363636}.navbar.is-light .navbar-brand>.navbar-item,.navbar.is-light .navbar-brand .navbar-link{color:#363636}.navbar.is-light .navbar-brand>a.navbar-item:focus,.navbar.is-light .navbar-brand>a.navbar-item:hover,.navbar.is-light .navbar-brand>a.navbar-item.is-active,.navbar.is-light .navbar-brand .navbar-link:focus,.navbar.is-light .navbar-brand .navbar-link:hover,.navbar.is-light .navbar-brand .navbar-link.is-active{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-brand .navbar-link::after{border-color:#363636}.navbar.is-light .navbar-burger{color:#363636}@media screen and (min-width: 1056px){.navbar.is-light .navbar-start>.navbar-item,.navbar.is-light .navbar-start .navbar-link,.navbar.is-light .navbar-end>.navbar-item,.navbar.is-light .navbar-end .navbar-link{color:#363636}.navbar.is-light .navbar-start>a.navbar-item:focus,.navbar.is-light .navbar-start>a.navbar-item:hover,.navbar.is-light .navbar-start>a.navbar-item.is-active,.navbar.is-light .navbar-start .navbar-link:focus,.navbar.is-light .navbar-start .navbar-link:hover,.navbar.is-light .navbar-start .navbar-link.is-active,.navbar.is-light .navbar-end>a.navbar-item:focus,.navbar.is-light .navbar-end>a.navbar-item:hover,.navbar.is-light .navbar-end>a.navbar-item.is-active,.navbar.is-light .navbar-end .navbar-link:focus,.navbar.is-light .navbar-end .navbar-link:hover,.navbar.is-light .navbar-end .navbar-link.is-active{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-start .navbar-link::after,.navbar.is-light .navbar-end .navbar-link::after{border-color:#363636}.navbar.is-light .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-light .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link{background-color:#e8e8e8;color:#363636}.navbar.is-light .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#363636}}.navbar.is-dark,.content kbd.navbar{background-color:#363636;color:#f5f5f5}.navbar.is-dark .navbar-brand>.navbar-item,.content kbd.navbar .navbar-brand>.navbar-item,.navbar.is-dark .navbar-brand .navbar-link,.content kbd.navbar .navbar-brand .navbar-link{color:#f5f5f5}.navbar.is-dark .navbar-brand>a.navbar-item:focus,.content kbd.navbar .navbar-brand>a.navbar-item:focus,.navbar.is-dark .navbar-brand>a.navbar-item:hover,.content kbd.navbar .navbar-brand>a.navbar-item:hover,.navbar.is-dark .navbar-brand>a.navbar-item.is-active,.content kbd.navbar .navbar-brand>a.navbar-item.is-active,.navbar.is-dark .navbar-brand .navbar-link:focus,.content kbd.navbar .navbar-brand .navbar-link:focus,.navbar.is-dark .navbar-brand .navbar-link:hover,.content kbd.navbar .navbar-brand .navbar-link:hover,.navbar.is-dark .navbar-brand .navbar-link.is-active,.content kbd.navbar .navbar-brand .navbar-link.is-active{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-brand .navbar-link::after,.content kbd.navbar .navbar-brand .navbar-link::after{border-color:#f5f5f5}.navbar.is-dark .navbar-burger,.content kbd.navbar .navbar-burger{color:#f5f5f5}@media screen and (min-width: 1056px){.navbar.is-dark .navbar-start>.navbar-item,.content kbd.navbar .navbar-start>.navbar-item,.navbar.is-dark .navbar-start .navbar-link,.content kbd.navbar .navbar-start .navbar-link,.navbar.is-dark .navbar-end>.navbar-item,.content kbd.navbar .navbar-end>.navbar-item,.navbar.is-dark .navbar-end .navbar-link,.content kbd.navbar .navbar-end .navbar-link{color:#f5f5f5}.navbar.is-dark .navbar-start>a.navbar-item:focus,.content kbd.navbar .navbar-start>a.navbar-item:focus,.navbar.is-dark .navbar-start>a.navbar-item:hover,.content kbd.navbar .navbar-start>a.navbar-item:hover,.navbar.is-dark .navbar-start>a.navbar-item.is-active,.content kbd.navbar .navbar-start>a.navbar-item.is-active,.navbar.is-dark .navbar-start .navbar-link:focus,.content kbd.navbar .navbar-start .navbar-link:focus,.navbar.is-dark .navbar-start .navbar-link:hover,.content kbd.navbar .navbar-start .navbar-link:hover,.navbar.is-dark .navbar-start .navbar-link.is-active,.content kbd.navbar .navbar-start .navbar-link.is-active,.navbar.is-dark .navbar-end>a.navbar-item:focus,.content kbd.navbar .navbar-end>a.navbar-item:focus,.navbar.is-dark .navbar-end>a.navbar-item:hover,.content kbd.navbar .navbar-end>a.navbar-item:hover,.navbar.is-dark .navbar-end>a.navbar-item.is-active,.content kbd.navbar .navbar-end>a.navbar-item.is-active,.navbar.is-dark .navbar-end .navbar-link:focus,.content kbd.navbar .navbar-end .navbar-link:focus,.navbar.is-dark .navbar-end .navbar-link:hover,.content kbd.navbar .navbar-end .navbar-link:hover,.navbar.is-dark .navbar-end .navbar-link.is-active,.content kbd.navbar .navbar-end .navbar-link.is-active{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-start .navbar-link::after,.content kbd.navbar .navbar-start .navbar-link::after,.navbar.is-dark .navbar-end .navbar-link::after,.content kbd.navbar .navbar-end .navbar-link::after{border-color:#f5f5f5}.navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link,.content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link,.content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link,.content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link{background-color:#292929;color:#f5f5f5}.navbar.is-dark .navbar-dropdown a.navbar-item.is-active,.content kbd.navbar .navbar-dropdown a.navbar-item.is-active{background-color:#363636;color:#f5f5f5}}.navbar.is-primary,.docstring>section>a.navbar.docs-sourcelink{background-color:#4eb5de;color:#fff}.navbar.is-primary .navbar-brand>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>.navbar-item,.navbar.is-primary .navbar-brand .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link{color:#fff}.navbar.is-primary .navbar-brand>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:focus,.navbar.is-primary .navbar-brand>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item:hover,.navbar.is-primary .navbar-brand>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-brand>a.navbar-item.is-active,.navbar.is-primary .navbar-brand .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus,.navbar.is-primary .navbar-brand .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover,.navbar.is-primary .navbar-brand .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-brand .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-primary .navbar-burger,.docstring>section>a.navbar.docs-sourcelink .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-primary .navbar-start>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-start>.navbar-item,.navbar.is-primary .navbar-start .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link,.navbar.is-primary .navbar-end>.navbar-item,.docstring>section>a.navbar.docs-sourcelink .navbar-end>.navbar-item,.navbar.is-primary .navbar-end .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link{color:#fff}.navbar.is-primary .navbar-start>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:focus,.navbar.is-primary .navbar-start>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item:hover,.navbar.is-primary .navbar-start>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-start>a.navbar-item.is-active,.navbar.is-primary .navbar-start .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:focus,.navbar.is-primary .navbar-start .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link:hover,.navbar.is-primary .navbar-start .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active,.navbar.is-primary .navbar-end>a.navbar-item:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:focus,.navbar.is-primary .navbar-end>a.navbar-item:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item:hover,.navbar.is-primary .navbar-end>a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-end>a.navbar-item.is-active,.navbar.is-primary .navbar-end .navbar-link:focus,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:focus,.navbar.is-primary .navbar-end .navbar-link:hover,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link:hover,.navbar.is-primary .navbar-end .navbar-link.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-start .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-start .navbar-link::after,.navbar.is-primary .navbar-end .navbar-link::after,.docstring>section>a.navbar.docs-sourcelink .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link,.docstring>section>a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link{background-color:#39acda;color:#fff}.navbar.is-primary .navbar-dropdown a.navbar-item.is-active,.docstring>section>a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active{background-color:#4eb5de;color:#fff}}.navbar.is-link{background-color:#2e63b8;color:#fff}.navbar.is-link .navbar-brand>.navbar-item,.navbar.is-link .navbar-brand .navbar-link{color:#fff}.navbar.is-link .navbar-brand>a.navbar-item:focus,.navbar.is-link .navbar-brand>a.navbar-item:hover,.navbar.is-link .navbar-brand>a.navbar-item.is-active,.navbar.is-link .navbar-brand .navbar-link:focus,.navbar.is-link .navbar-brand .navbar-link:hover,.navbar.is-link .navbar-brand .navbar-link.is-active{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-link .navbar-start>.navbar-item,.navbar.is-link .navbar-start .navbar-link,.navbar.is-link .navbar-end>.navbar-item,.navbar.is-link .navbar-end .navbar-link{color:#fff}.navbar.is-link .navbar-start>a.navbar-item:focus,.navbar.is-link .navbar-start>a.navbar-item:hover,.navbar.is-link .navbar-start>a.navbar-item.is-active,.navbar.is-link .navbar-start .navbar-link:focus,.navbar.is-link .navbar-start .navbar-link:hover,.navbar.is-link .navbar-start .navbar-link.is-active,.navbar.is-link .navbar-end>a.navbar-item:focus,.navbar.is-link .navbar-end>a.navbar-item:hover,.navbar.is-link .navbar-end>a.navbar-item.is-active,.navbar.is-link .navbar-end .navbar-link:focus,.navbar.is-link .navbar-end .navbar-link:hover,.navbar.is-link .navbar-end .navbar-link.is-active{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-start .navbar-link::after,.navbar.is-link .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-link .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-link .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link{background-color:#2958a4;color:#fff}.navbar.is-link .navbar-dropdown a.navbar-item.is-active{background-color:#2e63b8;color:#fff}}.navbar.is-info{background-color:#209cee;color:#fff}.navbar.is-info .navbar-brand>.navbar-item,.navbar.is-info .navbar-brand .navbar-link{color:#fff}.navbar.is-info .navbar-brand>a.navbar-item:focus,.navbar.is-info .navbar-brand>a.navbar-item:hover,.navbar.is-info .navbar-brand>a.navbar-item.is-active,.navbar.is-info .navbar-brand .navbar-link:focus,.navbar.is-info .navbar-brand .navbar-link:hover,.navbar.is-info .navbar-brand .navbar-link.is-active{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-info .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-info .navbar-start>.navbar-item,.navbar.is-info .navbar-start .navbar-link,.navbar.is-info .navbar-end>.navbar-item,.navbar.is-info .navbar-end .navbar-link{color:#fff}.navbar.is-info .navbar-start>a.navbar-item:focus,.navbar.is-info .navbar-start>a.navbar-item:hover,.navbar.is-info .navbar-start>a.navbar-item.is-active,.navbar.is-info .navbar-start .navbar-link:focus,.navbar.is-info .navbar-start .navbar-link:hover,.navbar.is-info .navbar-start .navbar-link.is-active,.navbar.is-info .navbar-end>a.navbar-item:focus,.navbar.is-info .navbar-end>a.navbar-item:hover,.navbar.is-info .navbar-end>a.navbar-item.is-active,.navbar.is-info .navbar-end .navbar-link:focus,.navbar.is-info .navbar-end .navbar-link:hover,.navbar.is-info .navbar-end .navbar-link.is-active{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-start .navbar-link::after,.navbar.is-info .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-info .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-info .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1190e3;color:#fff}.navbar.is-info .navbar-dropdown a.navbar-item.is-active{background-color:#209cee;color:#fff}}.navbar.is-success{background-color:#22c35b;color:#fff}.navbar.is-success .navbar-brand>.navbar-item,.navbar.is-success .navbar-brand .navbar-link{color:#fff}.navbar.is-success .navbar-brand>a.navbar-item:focus,.navbar.is-success .navbar-brand>a.navbar-item:hover,.navbar.is-success .navbar-brand>a.navbar-item.is-active,.navbar.is-success .navbar-brand .navbar-link:focus,.navbar.is-success .navbar-brand .navbar-link:hover,.navbar.is-success .navbar-brand .navbar-link.is-active{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-success .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-success .navbar-start>.navbar-item,.navbar.is-success .navbar-start .navbar-link,.navbar.is-success .navbar-end>.navbar-item,.navbar.is-success .navbar-end .navbar-link{color:#fff}.navbar.is-success .navbar-start>a.navbar-item:focus,.navbar.is-success .navbar-start>a.navbar-item:hover,.navbar.is-success .navbar-start>a.navbar-item.is-active,.navbar.is-success .navbar-start .navbar-link:focus,.navbar.is-success .navbar-start .navbar-link:hover,.navbar.is-success .navbar-start .navbar-link.is-active,.navbar.is-success .navbar-end>a.navbar-item:focus,.navbar.is-success .navbar-end>a.navbar-item:hover,.navbar.is-success .navbar-end>a.navbar-item.is-active,.navbar.is-success .navbar-end .navbar-link:focus,.navbar.is-success .navbar-end .navbar-link:hover,.navbar.is-success .navbar-end .navbar-link.is-active{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-start .navbar-link::after,.navbar.is-success .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-success .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-success .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link{background-color:#1ead51;color:#fff}.navbar.is-success .navbar-dropdown a.navbar-item.is-active{background-color:#22c35b;color:#fff}}.navbar.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand>.navbar-item,.navbar.is-warning .navbar-brand .navbar-link{color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand>a.navbar-item:focus,.navbar.is-warning .navbar-brand>a.navbar-item:hover,.navbar.is-warning .navbar-brand>a.navbar-item.is-active,.navbar.is-warning .navbar-brand .navbar-link:focus,.navbar.is-warning .navbar-brand .navbar-link:hover,.navbar.is-warning .navbar-brand .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-brand .navbar-link::after{border-color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-burger{color:rgba(0,0,0,0.7)}@media screen and (min-width: 1056px){.navbar.is-warning .navbar-start>.navbar-item,.navbar.is-warning .navbar-start .navbar-link,.navbar.is-warning .navbar-end>.navbar-item,.navbar.is-warning .navbar-end .navbar-link{color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-start>a.navbar-item:focus,.navbar.is-warning .navbar-start>a.navbar-item:hover,.navbar.is-warning .navbar-start>a.navbar-item.is-active,.navbar.is-warning .navbar-start .navbar-link:focus,.navbar.is-warning .navbar-start .navbar-link:hover,.navbar.is-warning .navbar-start .navbar-link.is-active,.navbar.is-warning .navbar-end>a.navbar-item:focus,.navbar.is-warning .navbar-end>a.navbar-item:hover,.navbar.is-warning .navbar-end>a.navbar-item.is-active,.navbar.is-warning .navbar-end .navbar-link:focus,.navbar.is-warning .navbar-end .navbar-link:hover,.navbar.is-warning .navbar-end .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-start .navbar-link::after,.navbar.is-warning .navbar-end .navbar-link::after{border-color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.navbar.is-warning .navbar-dropdown a.navbar-item.is-active{background-color:#ffdd57;color:rgba(0,0,0,0.7)}}.navbar.is-danger{background-color:#da0b00;color:#fff}.navbar.is-danger .navbar-brand>.navbar-item,.navbar.is-danger .navbar-brand .navbar-link{color:#fff}.navbar.is-danger .navbar-brand>a.navbar-item:focus,.navbar.is-danger .navbar-brand>a.navbar-item:hover,.navbar.is-danger .navbar-brand>a.navbar-item.is-active,.navbar.is-danger .navbar-brand .navbar-link:focus,.navbar.is-danger .navbar-brand .navbar-link:hover,.navbar.is-danger .navbar-brand .navbar-link.is-active{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-brand .navbar-link::after{border-color:#fff}.navbar.is-danger .navbar-burger{color:#fff}@media screen and (min-width: 1056px){.navbar.is-danger .navbar-start>.navbar-item,.navbar.is-danger .navbar-start .navbar-link,.navbar.is-danger .navbar-end>.navbar-item,.navbar.is-danger .navbar-end .navbar-link{color:#fff}.navbar.is-danger .navbar-start>a.navbar-item:focus,.navbar.is-danger .navbar-start>a.navbar-item:hover,.navbar.is-danger .navbar-start>a.navbar-item.is-active,.navbar.is-danger .navbar-start .navbar-link:focus,.navbar.is-danger .navbar-start .navbar-link:hover,.navbar.is-danger .navbar-start .navbar-link.is-active,.navbar.is-danger .navbar-end>a.navbar-item:focus,.navbar.is-danger .navbar-end>a.navbar-item:hover,.navbar.is-danger .navbar-end>a.navbar-item.is-active,.navbar.is-danger .navbar-end .navbar-link:focus,.navbar.is-danger .navbar-end .navbar-link:hover,.navbar.is-danger .navbar-end .navbar-link.is-active{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-start .navbar-link::after,.navbar.is-danger .navbar-end .navbar-link::after{border-color:#fff}.navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link,.navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link,.navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link{background-color:#c10a00;color:#fff}.navbar.is-danger .navbar-dropdown a.navbar-item.is-active{background-color:#da0b00;color:#fff}}.navbar>.container{align-items:stretch;display:flex;min-height:3.25rem;width:100%}.navbar.has-shadow{box-shadow:0 2px 0 0 #f5f5f5}.navbar.is-fixed-bottom,.navbar.is-fixed-top{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom{bottom:0}.navbar.is-fixed-bottom.has-shadow{box-shadow:0 -2px 0 0 #f5f5f5}.navbar.is-fixed-top{top:0}html.has-navbar-fixed-top,body.has-navbar-fixed-top{padding-top:3.25rem}html.has-navbar-fixed-bottom,body.has-navbar-fixed-bottom{padding-bottom:3.25rem}.navbar-brand,.navbar-tabs{align-items:stretch;display:flex;flex-shrink:0;min-height:3.25rem}.navbar-brand a.navbar-item:focus,.navbar-brand a.navbar-item:hover{background-color:transparent}.navbar-tabs{-webkit-overflow-scrolling:touch;max-width:100vw;overflow-x:auto;overflow-y:hidden}.navbar-burger{color:#4a4a4a;cursor:pointer;display:block;height:3.25rem;position:relative;width:3.25rem;margin-left:auto}.navbar-burger span{background-color:currentColor;display:block;height:1px;left:calc(50% - 8px);position:absolute;transform-origin:center;transition-duration:86ms;transition-property:background-color, opacity, transform;transition-timing-function:ease-out;width:16px}.navbar-burger span:nth-child(1){top:calc(50% - 6px)}.navbar-burger span:nth-child(2){top:calc(50% - 1px)}.navbar-burger span:nth-child(3){top:calc(50% + 4px)}.navbar-burger:hover{background-color:rgba(0,0,0,0.05)}.navbar-burger.is-active span:nth-child(1){transform:translateY(5px) rotate(45deg)}.navbar-burger.is-active span:nth-child(2){opacity:0}.navbar-burger.is-active span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}.navbar-menu{display:none}.navbar-item,.navbar-link{color:#4a4a4a;display:block;line-height:1.5;padding:0.5rem 0.75rem;position:relative}.navbar-item .icon:only-child,.navbar-link .icon:only-child{margin-left:-0.25rem;margin-right:-0.25rem}a.navbar-item,.navbar-link{cursor:pointer}a.navbar-item:focus,a.navbar-item:focus-within,a.navbar-item:hover,a.navbar-item.is-active,.navbar-link:focus,.navbar-link:focus-within,.navbar-link:hover,.navbar-link.is-active{background-color:#fafafa;color:#2e63b8}.navbar-item{display:block;flex-grow:0;flex-shrink:0}.navbar-item img{max-height:1.75rem}.navbar-item.has-dropdown{padding:0}.navbar-item.is-expanded{flex-grow:1;flex-shrink:1}.navbar-item.is-tab{border-bottom:1px solid transparent;min-height:3.25rem;padding-bottom:calc(0.5rem - 1px)}.navbar-item.is-tab:focus,.navbar-item.is-tab:hover{background-color:rgba(0,0,0,0);border-bottom-color:#2e63b8}.navbar-item.is-tab.is-active{background-color:rgba(0,0,0,0);border-bottom-color:#2e63b8;border-bottom-style:solid;border-bottom-width:3px;color:#2e63b8;padding-bottom:calc(0.5rem - 3px)}.navbar-content{flex-grow:1;flex-shrink:1}.navbar-link:not(.is-arrowless){padding-right:2.5em}.navbar-link:not(.is-arrowless)::after{border-color:#2e63b8;margin-top:-0.375em;right:1.125em}.navbar-dropdown{font-size:0.875rem;padding-bottom:0.5rem;padding-top:0.5rem}.navbar-dropdown .navbar-item{padding-left:1.5rem;padding-right:1.5rem}.navbar-divider{background-color:#f5f5f5;border:none;display:none;height:2px;margin:0.5rem 0}@media screen and (max-width: 1055px){.navbar>.container{display:block}.navbar-brand .navbar-item,.navbar-tabs .navbar-item{align-items:center;display:flex}.navbar-link::after{display:none}.navbar-menu{background-color:#fff;box-shadow:0 8px 16px rgba(10,10,10,0.1);padding:0.5rem 0}.navbar-menu.is-active{display:block}.navbar.is-fixed-bottom-touch,.navbar.is-fixed-top-touch{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom-touch{bottom:0}.navbar.is-fixed-bottom-touch.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}.navbar.is-fixed-top-touch{top:0}.navbar.is-fixed-top .navbar-menu,.navbar.is-fixed-top-touch .navbar-menu{-webkit-overflow-scrolling:touch;max-height:calc(100vh - 3.25rem);overflow:auto}html.has-navbar-fixed-top-touch,body.has-navbar-fixed-top-touch{padding-top:3.25rem}html.has-navbar-fixed-bottom-touch,body.has-navbar-fixed-bottom-touch{padding-bottom:3.25rem}}@media screen and (min-width: 1056px){.navbar,.navbar-menu,.navbar-start,.navbar-end{align-items:stretch;display:flex}.navbar{min-height:3.25rem}.navbar.is-spaced{padding:1rem 2rem}.navbar.is-spaced .navbar-start,.navbar.is-spaced .navbar-end{align-items:center}.navbar.is-spaced a.navbar-item,.navbar.is-spaced .navbar-link{border-radius:4px}.navbar.is-transparent a.navbar-item:focus,.navbar.is-transparent a.navbar-item:hover,.navbar.is-transparent a.navbar-item.is-active,.navbar.is-transparent .navbar-link:focus,.navbar.is-transparent .navbar-link:hover,.navbar.is-transparent .navbar-link.is-active{background-color:transparent !important}.navbar.is-transparent .navbar-item.has-dropdown.is-active .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:focus-within .navbar-link,.navbar.is-transparent .navbar-item.has-dropdown.is-hoverable:hover .navbar-link{background-color:transparent !important}.navbar.is-transparent .navbar-dropdown a.navbar-item:focus,.navbar.is-transparent .navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar.is-transparent .navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#2e63b8}.navbar-burger{display:none}.navbar-item,.navbar-link{align-items:center;display:flex}.navbar-item{display:flex}.navbar-item.has-dropdown{align-items:stretch}.navbar-item.has-dropdown-up .navbar-link::after{transform:rotate(135deg) translate(0.25em, -0.25em)}.navbar-item.has-dropdown-up .navbar-dropdown{border-bottom:2px solid #dbdbdb;border-radius:6px 6px 0 0;border-top:none;bottom:100%;box-shadow:0 -8px 8px rgba(10,10,10,0.1);top:auto}.navbar-item.is-active .navbar-dropdown,.navbar-item.is-hoverable:focus .navbar-dropdown,.navbar-item.is-hoverable:focus-within .navbar-dropdown,.navbar-item.is-hoverable:hover .navbar-dropdown{display:block}.navbar.is-spaced .navbar-item.is-active .navbar-dropdown,.navbar-item.is-active .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown,.navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown,.navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed,.navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown,.navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed{opacity:1;pointer-events:auto;transform:translateY(0)}.navbar-menu{flex-grow:1;flex-shrink:0}.navbar-start{justify-content:flex-start;margin-right:auto}.navbar-end{justify-content:flex-end;margin-left:auto}.navbar-dropdown{background-color:#fff;border-bottom-left-radius:6px;border-bottom-right-radius:6px;border-top:2px solid #dbdbdb;box-shadow:0 8px 8px rgba(10,10,10,0.1);display:none;font-size:0.875rem;left:0;min-width:100%;position:absolute;top:100%;z-index:20}.navbar-dropdown .navbar-item{padding:0.375rem 1rem;white-space:nowrap}.navbar-dropdown a.navbar-item{padding-right:3rem}.navbar-dropdown a.navbar-item:focus,.navbar-dropdown a.navbar-item:hover{background-color:#f5f5f5;color:#0a0a0a}.navbar-dropdown a.navbar-item.is-active{background-color:#f5f5f5;color:#2e63b8}.navbar.is-spaced .navbar-dropdown,.navbar-dropdown.is-boxed{border-radius:6px;border-top:none;box-shadow:0 8px 8px rgba(10,10,10,0.1), 0 0 0 1px rgba(10,10,10,0.1);display:block;opacity:0;pointer-events:none;top:calc(100% + (-4px));transform:translateY(-5px);transition-duration:86ms;transition-property:opacity, transform}.navbar-dropdown.is-right{left:auto;right:0}.navbar-divider{display:block}.navbar>.container .navbar-brand,.container>.navbar .navbar-brand{margin-left:-.75rem}.navbar>.container .navbar-menu,.container>.navbar .navbar-menu{margin-right:-.75rem}.navbar.is-fixed-bottom-desktop,.navbar.is-fixed-top-desktop{left:0;position:fixed;right:0;z-index:30}.navbar.is-fixed-bottom-desktop{bottom:0}.navbar.is-fixed-bottom-desktop.has-shadow{box-shadow:0 -2px 3px rgba(10,10,10,0.1)}.navbar.is-fixed-top-desktop{top:0}html.has-navbar-fixed-top-desktop,body.has-navbar-fixed-top-desktop{padding-top:3.25rem}html.has-navbar-fixed-bottom-desktop,body.has-navbar-fixed-bottom-desktop{padding-bottom:3.25rem}html.has-spaced-navbar-fixed-top,body.has-spaced-navbar-fixed-top{padding-top:5.25rem}html.has-spaced-navbar-fixed-bottom,body.has-spaced-navbar-fixed-bottom{padding-bottom:5.25rem}a.navbar-item.is-active,.navbar-link.is-active{color:#0a0a0a}a.navbar-item.is-active:not(:focus):not(:hover),.navbar-link.is-active:not(:focus):not(:hover){background-color:rgba(0,0,0,0)}.navbar-item.has-dropdown:focus .navbar-link,.navbar-item.has-dropdown:hover .navbar-link,.navbar-item.has-dropdown.is-active .navbar-link{background-color:#fafafa}}.hero.is-fullheight-with-navbar{min-height:calc(100vh - 3.25rem)}.pagination{font-size:1rem;margin:-.25rem}.pagination.is-small,#documenter .docs-sidebar form.docs-search>input.pagination{font-size:.75rem}.pagination.is-medium{font-size:1.25rem}.pagination.is-large{font-size:1.5rem}.pagination.is-rounded .pagination-previous,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-previous,.pagination.is-rounded .pagination-next,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-next{padding-left:1em;padding-right:1em;border-radius:290486px}.pagination.is-rounded .pagination-link,#documenter .docs-sidebar form.docs-search>input.pagination .pagination-link{border-radius:290486px}.pagination,.pagination-list{align-items:center;display:flex;justify-content:center;text-align:center}.pagination-previous,.pagination-next,.pagination-link,.pagination-ellipsis{font-size:1em;justify-content:center;margin:.25rem;padding-left:.5em;padding-right:.5em;text-align:center}.pagination-previous,.pagination-next,.pagination-link{border-color:#dbdbdb;color:#363636;min-width:2.25em}.pagination-previous:hover,.pagination-next:hover,.pagination-link:hover{border-color:#b5b5b5;color:#363636}.pagination-previous:focus,.pagination-next:focus,.pagination-link:focus{border-color:#3c5dcd}.pagination-previous:active,.pagination-next:active,.pagination-link:active{box-shadow:inset 0 1px 2px rgba(10,10,10,0.2)}.pagination-previous[disabled],.pagination-next[disabled],.pagination-link[disabled]{background-color:#dbdbdb;border-color:#dbdbdb;box-shadow:none;color:#6b6b6b;opacity:0.5}.pagination-previous,.pagination-next{padding-left:0.75em;padding-right:0.75em;white-space:nowrap}.pagination-link.is-current{background-color:#2e63b8;border-color:#2e63b8;color:#fff}.pagination-ellipsis{color:#b5b5b5;pointer-events:none}.pagination-list{flex-wrap:wrap}@media screen and (max-width: 768px){.pagination{flex-wrap:wrap}.pagination-previous,.pagination-next{flex-grow:1;flex-shrink:1}.pagination-list li{flex-grow:1;flex-shrink:1}}@media screen and (min-width: 769px),print{.pagination-list{flex-grow:1;flex-shrink:1;justify-content:flex-start;order:1}.pagination-previous{order:2}.pagination-next{order:3}.pagination{justify-content:space-between}.pagination.is-centered .pagination-previous{order:1}.pagination.is-centered .pagination-list{justify-content:center;order:2}.pagination.is-centered .pagination-next{order:3}.pagination.is-right .pagination-previous{order:1}.pagination.is-right .pagination-next{order:2}.pagination.is-right .pagination-list{justify-content:flex-end;order:3}}.panel{font-size:1rem}.panel:not(:last-child){margin-bottom:1.5rem}.panel-heading,.panel-tabs,.panel-block{border-bottom:1px solid #dbdbdb;border-left:1px solid #dbdbdb;border-right:1px solid #dbdbdb}.panel-heading:first-child,.panel-tabs:first-child,.panel-block:first-child{border-top:1px solid #dbdbdb}.panel-heading{background-color:#f5f5f5;border-radius:4px 4px 0 0;color:#222;font-size:1.25em;font-weight:300;line-height:1.25;padding:0.5em 0.75em}.panel-tabs{align-items:flex-end;display:flex;font-size:.875em;justify-content:center}.panel-tabs a{border-bottom:1px solid #dbdbdb;margin-bottom:-1px;padding:0.5em}.panel-tabs a.is-active{border-bottom-color:#4a4a4a;color:#363636}.panel-list a{color:#222}.panel-list a:hover{color:#2e63b8}.panel-block{align-items:center;color:#222;display:flex;justify-content:flex-start;padding:0.5em 0.75em}.panel-block input[type="checkbox"]{margin-right:0.75em}.panel-block>.control{flex-grow:1;flex-shrink:1;width:100%}.panel-block.is-wrapped{flex-wrap:wrap}.panel-block.is-active{border-left-color:#2e63b8;color:#363636}.panel-block.is-active .panel-icon{color:#2e63b8}a.panel-block,label.panel-block{cursor:pointer}a.panel-block:hover,label.panel-block:hover{background-color:#f5f5f5}.panel-icon{display:inline-block;font-size:14px;height:1em;line-height:1em;text-align:center;vertical-align:top;width:1em;color:#6b6b6b;margin-right:0.75em}.panel-icon .fa{font-size:inherit;line-height:inherit}.tabs{-webkit-overflow-scrolling:touch;align-items:stretch;display:flex;font-size:1rem;justify-content:space-between;overflow:hidden;overflow-x:auto;white-space:nowrap}.tabs a{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;color:#222;display:flex;justify-content:center;margin-bottom:-1px;padding:0.5em 1em;vertical-align:top}.tabs a:hover{border-bottom-color:#222;color:#222}.tabs li{display:block}.tabs li.is-active a{border-bottom-color:#2e63b8;color:#2e63b8}.tabs ul{align-items:center;border-bottom-color:#dbdbdb;border-bottom-style:solid;border-bottom-width:1px;display:flex;flex-grow:1;flex-shrink:0;justify-content:flex-start}.tabs ul.is-left{padding-right:0.75em}.tabs ul.is-center{flex:none;justify-content:center;padding-left:0.75em;padding-right:0.75em}.tabs ul.is-right{justify-content:flex-end;padding-left:0.75em}.tabs .icon:first-child{margin-right:0.5em}.tabs .icon:last-child{margin-left:0.5em}.tabs.is-centered ul{justify-content:center}.tabs.is-right ul{justify-content:flex-end}.tabs.is-boxed a{border:1px solid transparent;border-radius:4px 4px 0 0}.tabs.is-boxed a:hover{background-color:#f5f5f5;border-bottom-color:#dbdbdb}.tabs.is-boxed li.is-active a{background-color:#fff;border-color:#dbdbdb;border-bottom-color:rgba(0,0,0,0) !important}.tabs.is-fullwidth li{flex-grow:1;flex-shrink:0}.tabs.is-toggle a{border-color:#dbdbdb;border-style:solid;border-width:1px;margin-bottom:0;position:relative}.tabs.is-toggle a:hover{background-color:#f5f5f5;border-color:#b5b5b5;z-index:2}.tabs.is-toggle li+li{margin-left:-1px}.tabs.is-toggle li:first-child a{border-radius:4px 0 0 4px}.tabs.is-toggle li:last-child a{border-radius:0 4px 4px 0}.tabs.is-toggle li.is-active a{background-color:#2e63b8;border-color:#2e63b8;color:#fff;z-index:1}.tabs.is-toggle ul{border-bottom:none}.tabs.is-toggle.is-toggle-rounded li:first-child a{border-bottom-left-radius:290486px;border-top-left-radius:290486px;padding-left:1.25em}.tabs.is-toggle.is-toggle-rounded li:last-child a{border-bottom-right-radius:290486px;border-top-right-radius:290486px;padding-right:1.25em}.tabs.is-small,#documenter .docs-sidebar form.docs-search>input.tabs{font-size:.75rem}.tabs.is-medium{font-size:1.25rem}.tabs.is-large{font-size:1.5rem}.column{display:block;flex-basis:0;flex-grow:1;flex-shrink:1;padding:.75rem}.columns.is-mobile>.column.is-narrow{flex:none}.columns.is-mobile>.column.is-full{flex:none;width:100%}.columns.is-mobile>.column.is-three-quarters{flex:none;width:75%}.columns.is-mobile>.column.is-two-thirds{flex:none;width:66.6666%}.columns.is-mobile>.column.is-half{flex:none;width:50%}.columns.is-mobile>.column.is-one-third{flex:none;width:33.3333%}.columns.is-mobile>.column.is-one-quarter{flex:none;width:25%}.columns.is-mobile>.column.is-one-fifth{flex:none;width:20%}.columns.is-mobile>.column.is-two-fifths{flex:none;width:40%}.columns.is-mobile>.column.is-three-fifths{flex:none;width:60%}.columns.is-mobile>.column.is-four-fifths{flex:none;width:80%}.columns.is-mobile>.column.is-offset-three-quarters{margin-left:75%}.columns.is-mobile>.column.is-offset-two-thirds{margin-left:66.6666%}.columns.is-mobile>.column.is-offset-half{margin-left:50%}.columns.is-mobile>.column.is-offset-one-third{margin-left:33.3333%}.columns.is-mobile>.column.is-offset-one-quarter{margin-left:25%}.columns.is-mobile>.column.is-offset-one-fifth{margin-left:20%}.columns.is-mobile>.column.is-offset-two-fifths{margin-left:40%}.columns.is-mobile>.column.is-offset-three-fifths{margin-left:60%}.columns.is-mobile>.column.is-offset-four-fifths{margin-left:80%}.columns.is-mobile>.column.is-0{flex:none;width:0%}.columns.is-mobile>.column.is-offset-0{margin-left:0%}.columns.is-mobile>.column.is-1{flex:none;width:8.3333333333%}.columns.is-mobile>.column.is-offset-1{margin-left:8.3333333333%}.columns.is-mobile>.column.is-2{flex:none;width:16.6666666667%}.columns.is-mobile>.column.is-offset-2{margin-left:16.6666666667%}.columns.is-mobile>.column.is-3{flex:none;width:25%}.columns.is-mobile>.column.is-offset-3{margin-left:25%}.columns.is-mobile>.column.is-4{flex:none;width:33.3333333333%}.columns.is-mobile>.column.is-offset-4{margin-left:33.3333333333%}.columns.is-mobile>.column.is-5{flex:none;width:41.6666666667%}.columns.is-mobile>.column.is-offset-5{margin-left:41.6666666667%}.columns.is-mobile>.column.is-6{flex:none;width:50%}.columns.is-mobile>.column.is-offset-6{margin-left:50%}.columns.is-mobile>.column.is-7{flex:none;width:58.3333333333%}.columns.is-mobile>.column.is-offset-7{margin-left:58.3333333333%}.columns.is-mobile>.column.is-8{flex:none;width:66.6666666667%}.columns.is-mobile>.column.is-offset-8{margin-left:66.6666666667%}.columns.is-mobile>.column.is-9{flex:none;width:75%}.columns.is-mobile>.column.is-offset-9{margin-left:75%}.columns.is-mobile>.column.is-10{flex:none;width:83.3333333333%}.columns.is-mobile>.column.is-offset-10{margin-left:83.3333333333%}.columns.is-mobile>.column.is-11{flex:none;width:91.6666666667%}.columns.is-mobile>.column.is-offset-11{margin-left:91.6666666667%}.columns.is-mobile>.column.is-12{flex:none;width:100%}.columns.is-mobile>.column.is-offset-12{margin-left:100%}@media screen and (max-width: 768px){.column.is-narrow-mobile{flex:none}.column.is-full-mobile{flex:none;width:100%}.column.is-three-quarters-mobile{flex:none;width:75%}.column.is-two-thirds-mobile{flex:none;width:66.6666%}.column.is-half-mobile{flex:none;width:50%}.column.is-one-third-mobile{flex:none;width:33.3333%}.column.is-one-quarter-mobile{flex:none;width:25%}.column.is-one-fifth-mobile{flex:none;width:20%}.column.is-two-fifths-mobile{flex:none;width:40%}.column.is-three-fifths-mobile{flex:none;width:60%}.column.is-four-fifths-mobile{flex:none;width:80%}.column.is-offset-three-quarters-mobile{margin-left:75%}.column.is-offset-two-thirds-mobile{margin-left:66.6666%}.column.is-offset-half-mobile{margin-left:50%}.column.is-offset-one-third-mobile{margin-left:33.3333%}.column.is-offset-one-quarter-mobile{margin-left:25%}.column.is-offset-one-fifth-mobile{margin-left:20%}.column.is-offset-two-fifths-mobile{margin-left:40%}.column.is-offset-three-fifths-mobile{margin-left:60%}.column.is-offset-four-fifths-mobile{margin-left:80%}.column.is-0-mobile{flex:none;width:0%}.column.is-offset-0-mobile{margin-left:0%}.column.is-1-mobile{flex:none;width:8.3333333333%}.column.is-offset-1-mobile{margin-left:8.3333333333%}.column.is-2-mobile{flex:none;width:16.6666666667%}.column.is-offset-2-mobile{margin-left:16.6666666667%}.column.is-3-mobile{flex:none;width:25%}.column.is-offset-3-mobile{margin-left:25%}.column.is-4-mobile{flex:none;width:33.3333333333%}.column.is-offset-4-mobile{margin-left:33.3333333333%}.column.is-5-mobile{flex:none;width:41.6666666667%}.column.is-offset-5-mobile{margin-left:41.6666666667%}.column.is-6-mobile{flex:none;width:50%}.column.is-offset-6-mobile{margin-left:50%}.column.is-7-mobile{flex:none;width:58.3333333333%}.column.is-offset-7-mobile{margin-left:58.3333333333%}.column.is-8-mobile{flex:none;width:66.6666666667%}.column.is-offset-8-mobile{margin-left:66.6666666667%}.column.is-9-mobile{flex:none;width:75%}.column.is-offset-9-mobile{margin-left:75%}.column.is-10-mobile{flex:none;width:83.3333333333%}.column.is-offset-10-mobile{margin-left:83.3333333333%}.column.is-11-mobile{flex:none;width:91.6666666667%}.column.is-offset-11-mobile{margin-left:91.6666666667%}.column.is-12-mobile{flex:none;width:100%}.column.is-offset-12-mobile{margin-left:100%}}@media screen and (min-width: 769px),print{.column.is-narrow,.column.is-narrow-tablet{flex:none}.column.is-full,.column.is-full-tablet{flex:none;width:100%}.column.is-three-quarters,.column.is-three-quarters-tablet{flex:none;width:75%}.column.is-two-thirds,.column.is-two-thirds-tablet{flex:none;width:66.6666%}.column.is-half,.column.is-half-tablet{flex:none;width:50%}.column.is-one-third,.column.is-one-third-tablet{flex:none;width:33.3333%}.column.is-one-quarter,.column.is-one-quarter-tablet{flex:none;width:25%}.column.is-one-fifth,.column.is-one-fifth-tablet{flex:none;width:20%}.column.is-two-fifths,.column.is-two-fifths-tablet{flex:none;width:40%}.column.is-three-fifths,.column.is-three-fifths-tablet{flex:none;width:60%}.column.is-four-fifths,.column.is-four-fifths-tablet{flex:none;width:80%}.column.is-offset-three-quarters,.column.is-offset-three-quarters-tablet{margin-left:75%}.column.is-offset-two-thirds,.column.is-offset-two-thirds-tablet{margin-left:66.6666%}.column.is-offset-half,.column.is-offset-half-tablet{margin-left:50%}.column.is-offset-one-third,.column.is-offset-one-third-tablet{margin-left:33.3333%}.column.is-offset-one-quarter,.column.is-offset-one-quarter-tablet{margin-left:25%}.column.is-offset-one-fifth,.column.is-offset-one-fifth-tablet{margin-left:20%}.column.is-offset-two-fifths,.column.is-offset-two-fifths-tablet{margin-left:40%}.column.is-offset-three-fifths,.column.is-offset-three-fifths-tablet{margin-left:60%}.column.is-offset-four-fifths,.column.is-offset-four-fifths-tablet{margin-left:80%}.column.is-0,.column.is-0-tablet{flex:none;width:0%}.column.is-offset-0,.column.is-offset-0-tablet{margin-left:0%}.column.is-1,.column.is-1-tablet{flex:none;width:8.3333333333%}.column.is-offset-1,.column.is-offset-1-tablet{margin-left:8.3333333333%}.column.is-2,.column.is-2-tablet{flex:none;width:16.6666666667%}.column.is-offset-2,.column.is-offset-2-tablet{margin-left:16.6666666667%}.column.is-3,.column.is-3-tablet{flex:none;width:25%}.column.is-offset-3,.column.is-offset-3-tablet{margin-left:25%}.column.is-4,.column.is-4-tablet{flex:none;width:33.3333333333%}.column.is-offset-4,.column.is-offset-4-tablet{margin-left:33.3333333333%}.column.is-5,.column.is-5-tablet{flex:none;width:41.6666666667%}.column.is-offset-5,.column.is-offset-5-tablet{margin-left:41.6666666667%}.column.is-6,.column.is-6-tablet{flex:none;width:50%}.column.is-offset-6,.column.is-offset-6-tablet{margin-left:50%}.column.is-7,.column.is-7-tablet{flex:none;width:58.3333333333%}.column.is-offset-7,.column.is-offset-7-tablet{margin-left:58.3333333333%}.column.is-8,.column.is-8-tablet{flex:none;width:66.6666666667%}.column.is-offset-8,.column.is-offset-8-tablet{margin-left:66.6666666667%}.column.is-9,.column.is-9-tablet{flex:none;width:75%}.column.is-offset-9,.column.is-offset-9-tablet{margin-left:75%}.column.is-10,.column.is-10-tablet{flex:none;width:83.3333333333%}.column.is-offset-10,.column.is-offset-10-tablet{margin-left:83.3333333333%}.column.is-11,.column.is-11-tablet{flex:none;width:91.6666666667%}.column.is-offset-11,.column.is-offset-11-tablet{margin-left:91.6666666667%}.column.is-12,.column.is-12-tablet{flex:none;width:100%}.column.is-offset-12,.column.is-offset-12-tablet{margin-left:100%}}@media screen and (max-width: 1055px){.column.is-narrow-touch{flex:none}.column.is-full-touch{flex:none;width:100%}.column.is-three-quarters-touch{flex:none;width:75%}.column.is-two-thirds-touch{flex:none;width:66.6666%}.column.is-half-touch{flex:none;width:50%}.column.is-one-third-touch{flex:none;width:33.3333%}.column.is-one-quarter-touch{flex:none;width:25%}.column.is-one-fifth-touch{flex:none;width:20%}.column.is-two-fifths-touch{flex:none;width:40%}.column.is-three-fifths-touch{flex:none;width:60%}.column.is-four-fifths-touch{flex:none;width:80%}.column.is-offset-three-quarters-touch{margin-left:75%}.column.is-offset-two-thirds-touch{margin-left:66.6666%}.column.is-offset-half-touch{margin-left:50%}.column.is-offset-one-third-touch{margin-left:33.3333%}.column.is-offset-one-quarter-touch{margin-left:25%}.column.is-offset-one-fifth-touch{margin-left:20%}.column.is-offset-two-fifths-touch{margin-left:40%}.column.is-offset-three-fifths-touch{margin-left:60%}.column.is-offset-four-fifths-touch{margin-left:80%}.column.is-0-touch{flex:none;width:0%}.column.is-offset-0-touch{margin-left:0%}.column.is-1-touch{flex:none;width:8.3333333333%}.column.is-offset-1-touch{margin-left:8.3333333333%}.column.is-2-touch{flex:none;width:16.6666666667%}.column.is-offset-2-touch{margin-left:16.6666666667%}.column.is-3-touch{flex:none;width:25%}.column.is-offset-3-touch{margin-left:25%}.column.is-4-touch{flex:none;width:33.3333333333%}.column.is-offset-4-touch{margin-left:33.3333333333%}.column.is-5-touch{flex:none;width:41.6666666667%}.column.is-offset-5-touch{margin-left:41.6666666667%}.column.is-6-touch{flex:none;width:50%}.column.is-offset-6-touch{margin-left:50%}.column.is-7-touch{flex:none;width:58.3333333333%}.column.is-offset-7-touch{margin-left:58.3333333333%}.column.is-8-touch{flex:none;width:66.6666666667%}.column.is-offset-8-touch{margin-left:66.6666666667%}.column.is-9-touch{flex:none;width:75%}.column.is-offset-9-touch{margin-left:75%}.column.is-10-touch{flex:none;width:83.3333333333%}.column.is-offset-10-touch{margin-left:83.3333333333%}.column.is-11-touch{flex:none;width:91.6666666667%}.column.is-offset-11-touch{margin-left:91.6666666667%}.column.is-12-touch{flex:none;width:100%}.column.is-offset-12-touch{margin-left:100%}}@media screen and (min-width: 1056px){.column.is-narrow-desktop{flex:none}.column.is-full-desktop{flex:none;width:100%}.column.is-three-quarters-desktop{flex:none;width:75%}.column.is-two-thirds-desktop{flex:none;width:66.6666%}.column.is-half-desktop{flex:none;width:50%}.column.is-one-third-desktop{flex:none;width:33.3333%}.column.is-one-quarter-desktop{flex:none;width:25%}.column.is-one-fifth-desktop{flex:none;width:20%}.column.is-two-fifths-desktop{flex:none;width:40%}.column.is-three-fifths-desktop{flex:none;width:60%}.column.is-four-fifths-desktop{flex:none;width:80%}.column.is-offset-three-quarters-desktop{margin-left:75%}.column.is-offset-two-thirds-desktop{margin-left:66.6666%}.column.is-offset-half-desktop{margin-left:50%}.column.is-offset-one-third-desktop{margin-left:33.3333%}.column.is-offset-one-quarter-desktop{margin-left:25%}.column.is-offset-one-fifth-desktop{margin-left:20%}.column.is-offset-two-fifths-desktop{margin-left:40%}.column.is-offset-three-fifths-desktop{margin-left:60%}.column.is-offset-four-fifths-desktop{margin-left:80%}.column.is-0-desktop{flex:none;width:0%}.column.is-offset-0-desktop{margin-left:0%}.column.is-1-desktop{flex:none;width:8.3333333333%}.column.is-offset-1-desktop{margin-left:8.3333333333%}.column.is-2-desktop{flex:none;width:16.6666666667%}.column.is-offset-2-desktop{margin-left:16.6666666667%}.column.is-3-desktop{flex:none;width:25%}.column.is-offset-3-desktop{margin-left:25%}.column.is-4-desktop{flex:none;width:33.3333333333%}.column.is-offset-4-desktop{margin-left:33.3333333333%}.column.is-5-desktop{flex:none;width:41.6666666667%}.column.is-offset-5-desktop{margin-left:41.6666666667%}.column.is-6-desktop{flex:none;width:50%}.column.is-offset-6-desktop{margin-left:50%}.column.is-7-desktop{flex:none;width:58.3333333333%}.column.is-offset-7-desktop{margin-left:58.3333333333%}.column.is-8-desktop{flex:none;width:66.6666666667%}.column.is-offset-8-desktop{margin-left:66.6666666667%}.column.is-9-desktop{flex:none;width:75%}.column.is-offset-9-desktop{margin-left:75%}.column.is-10-desktop{flex:none;width:83.3333333333%}.column.is-offset-10-desktop{margin-left:83.3333333333%}.column.is-11-desktop{flex:none;width:91.6666666667%}.column.is-offset-11-desktop{margin-left:91.6666666667%}.column.is-12-desktop{flex:none;width:100%}.column.is-offset-12-desktop{margin-left:100%}}@media screen and (min-width: 1216px){.column.is-narrow-widescreen{flex:none}.column.is-full-widescreen{flex:none;width:100%}.column.is-three-quarters-widescreen{flex:none;width:75%}.column.is-two-thirds-widescreen{flex:none;width:66.6666%}.column.is-half-widescreen{flex:none;width:50%}.column.is-one-third-widescreen{flex:none;width:33.3333%}.column.is-one-quarter-widescreen{flex:none;width:25%}.column.is-one-fifth-widescreen{flex:none;width:20%}.column.is-two-fifths-widescreen{flex:none;width:40%}.column.is-three-fifths-widescreen{flex:none;width:60%}.column.is-four-fifths-widescreen{flex:none;width:80%}.column.is-offset-three-quarters-widescreen{margin-left:75%}.column.is-offset-two-thirds-widescreen{margin-left:66.6666%}.column.is-offset-half-widescreen{margin-left:50%}.column.is-offset-one-third-widescreen{margin-left:33.3333%}.column.is-offset-one-quarter-widescreen{margin-left:25%}.column.is-offset-one-fifth-widescreen{margin-left:20%}.column.is-offset-two-fifths-widescreen{margin-left:40%}.column.is-offset-three-fifths-widescreen{margin-left:60%}.column.is-offset-four-fifths-widescreen{margin-left:80%}.column.is-0-widescreen{flex:none;width:0%}.column.is-offset-0-widescreen{margin-left:0%}.column.is-1-widescreen{flex:none;width:8.3333333333%}.column.is-offset-1-widescreen{margin-left:8.3333333333%}.column.is-2-widescreen{flex:none;width:16.6666666667%}.column.is-offset-2-widescreen{margin-left:16.6666666667%}.column.is-3-widescreen{flex:none;width:25%}.column.is-offset-3-widescreen{margin-left:25%}.column.is-4-widescreen{flex:none;width:33.3333333333%}.column.is-offset-4-widescreen{margin-left:33.3333333333%}.column.is-5-widescreen{flex:none;width:41.6666666667%}.column.is-offset-5-widescreen{margin-left:41.6666666667%}.column.is-6-widescreen{flex:none;width:50%}.column.is-offset-6-widescreen{margin-left:50%}.column.is-7-widescreen{flex:none;width:58.3333333333%}.column.is-offset-7-widescreen{margin-left:58.3333333333%}.column.is-8-widescreen{flex:none;width:66.6666666667%}.column.is-offset-8-widescreen{margin-left:66.6666666667%}.column.is-9-widescreen{flex:none;width:75%}.column.is-offset-9-widescreen{margin-left:75%}.column.is-10-widescreen{flex:none;width:83.3333333333%}.column.is-offset-10-widescreen{margin-left:83.3333333333%}.column.is-11-widescreen{flex:none;width:91.6666666667%}.column.is-offset-11-widescreen{margin-left:91.6666666667%}.column.is-12-widescreen{flex:none;width:100%}.column.is-offset-12-widescreen{margin-left:100%}}@media screen and (min-width: 1408px){.column.is-narrow-fullhd{flex:none}.column.is-full-fullhd{flex:none;width:100%}.column.is-three-quarters-fullhd{flex:none;width:75%}.column.is-two-thirds-fullhd{flex:none;width:66.6666%}.column.is-half-fullhd{flex:none;width:50%}.column.is-one-third-fullhd{flex:none;width:33.3333%}.column.is-one-quarter-fullhd{flex:none;width:25%}.column.is-one-fifth-fullhd{flex:none;width:20%}.column.is-two-fifths-fullhd{flex:none;width:40%}.column.is-three-fifths-fullhd{flex:none;width:60%}.column.is-four-fifths-fullhd{flex:none;width:80%}.column.is-offset-three-quarters-fullhd{margin-left:75%}.column.is-offset-two-thirds-fullhd{margin-left:66.6666%}.column.is-offset-half-fullhd{margin-left:50%}.column.is-offset-one-third-fullhd{margin-left:33.3333%}.column.is-offset-one-quarter-fullhd{margin-left:25%}.column.is-offset-one-fifth-fullhd{margin-left:20%}.column.is-offset-two-fifths-fullhd{margin-left:40%}.column.is-offset-three-fifths-fullhd{margin-left:60%}.column.is-offset-four-fifths-fullhd{margin-left:80%}.column.is-0-fullhd{flex:none;width:0%}.column.is-offset-0-fullhd{margin-left:0%}.column.is-1-fullhd{flex:none;width:8.3333333333%}.column.is-offset-1-fullhd{margin-left:8.3333333333%}.column.is-2-fullhd{flex:none;width:16.6666666667%}.column.is-offset-2-fullhd{margin-left:16.6666666667%}.column.is-3-fullhd{flex:none;width:25%}.column.is-offset-3-fullhd{margin-left:25%}.column.is-4-fullhd{flex:none;width:33.3333333333%}.column.is-offset-4-fullhd{margin-left:33.3333333333%}.column.is-5-fullhd{flex:none;width:41.6666666667%}.column.is-offset-5-fullhd{margin-left:41.6666666667%}.column.is-6-fullhd{flex:none;width:50%}.column.is-offset-6-fullhd{margin-left:50%}.column.is-7-fullhd{flex:none;width:58.3333333333%}.column.is-offset-7-fullhd{margin-left:58.3333333333%}.column.is-8-fullhd{flex:none;width:66.6666666667%}.column.is-offset-8-fullhd{margin-left:66.6666666667%}.column.is-9-fullhd{flex:none;width:75%}.column.is-offset-9-fullhd{margin-left:75%}.column.is-10-fullhd{flex:none;width:83.3333333333%}.column.is-offset-10-fullhd{margin-left:83.3333333333%}.column.is-11-fullhd{flex:none;width:91.6666666667%}.column.is-offset-11-fullhd{margin-left:91.6666666667%}.column.is-12-fullhd{flex:none;width:100%}.column.is-offset-12-fullhd{margin-left:100%}}.columns{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.columns:last-child{margin-bottom:-.75rem}.columns:not(:last-child){margin-bottom:calc(1.5rem - .75rem)}.columns.is-centered{justify-content:center}.columns.is-gapless{margin-left:0;margin-right:0;margin-top:0}.columns.is-gapless>.column{margin:0;padding:0 !important}.columns.is-gapless:not(:last-child){margin-bottom:1.5rem}.columns.is-gapless:last-child{margin-bottom:0}.columns.is-mobile{display:flex}.columns.is-multiline{flex-wrap:wrap}.columns.is-vcentered{align-items:center}@media screen and (min-width: 769px),print{.columns:not(.is-desktop){display:flex}}@media screen and (min-width: 1056px){.columns.is-desktop{display:flex}}.columns.is-variable{--columnGap: 0.75rem;margin-left:calc(-1 * var(--columnGap));margin-right:calc(-1 * var(--columnGap))}.columns.is-variable .column{padding-left:var(--columnGap);padding-right:var(--columnGap)}.columns.is-variable.is-0{--columnGap: 0rem}@media screen and (max-width: 768px){.columns.is-variable.is-0-mobile{--columnGap: 0rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-0-tablet{--columnGap: 0rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-0-tablet-only{--columnGap: 0rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-0-touch{--columnGap: 0rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-0-desktop{--columnGap: 0rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-0-desktop-only{--columnGap: 0rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-0-widescreen{--columnGap: 0rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-0-widescreen-only{--columnGap: 0rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-0-fullhd{--columnGap: 0rem}}.columns.is-variable.is-1{--columnGap: .25rem}@media screen and (max-width: 768px){.columns.is-variable.is-1-mobile{--columnGap: .25rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-1-tablet{--columnGap: .25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-1-tablet-only{--columnGap: .25rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-1-touch{--columnGap: .25rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-1-desktop{--columnGap: .25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-1-desktop-only{--columnGap: .25rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-1-widescreen{--columnGap: .25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-1-widescreen-only{--columnGap: .25rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-1-fullhd{--columnGap: .25rem}}.columns.is-variable.is-2{--columnGap: .5rem}@media screen and (max-width: 768px){.columns.is-variable.is-2-mobile{--columnGap: .5rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-2-tablet{--columnGap: .5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-2-tablet-only{--columnGap: .5rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-2-touch{--columnGap: .5rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-2-desktop{--columnGap: .5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-2-desktop-only{--columnGap: .5rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-2-widescreen{--columnGap: .5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-2-widescreen-only{--columnGap: .5rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-2-fullhd{--columnGap: .5rem}}.columns.is-variable.is-3{--columnGap: .75rem}@media screen and (max-width: 768px){.columns.is-variable.is-3-mobile{--columnGap: .75rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-3-tablet{--columnGap: .75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-3-tablet-only{--columnGap: .75rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-3-touch{--columnGap: .75rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-3-desktop{--columnGap: .75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-3-desktop-only{--columnGap: .75rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-3-widescreen{--columnGap: .75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-3-widescreen-only{--columnGap: .75rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-3-fullhd{--columnGap: .75rem}}.columns.is-variable.is-4{--columnGap: 1rem}@media screen and (max-width: 768px){.columns.is-variable.is-4-mobile{--columnGap: 1rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-4-tablet{--columnGap: 1rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-4-tablet-only{--columnGap: 1rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-4-touch{--columnGap: 1rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-4-desktop{--columnGap: 1rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-4-desktop-only{--columnGap: 1rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-4-widescreen{--columnGap: 1rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-4-widescreen-only{--columnGap: 1rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-4-fullhd{--columnGap: 1rem}}.columns.is-variable.is-5{--columnGap: 1.25rem}@media screen and (max-width: 768px){.columns.is-variable.is-5-mobile{--columnGap: 1.25rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-5-tablet{--columnGap: 1.25rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-5-tablet-only{--columnGap: 1.25rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-5-touch{--columnGap: 1.25rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-5-desktop{--columnGap: 1.25rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-5-desktop-only{--columnGap: 1.25rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-5-widescreen{--columnGap: 1.25rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-5-widescreen-only{--columnGap: 1.25rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-5-fullhd{--columnGap: 1.25rem}}.columns.is-variable.is-6{--columnGap: 1.5rem}@media screen and (max-width: 768px){.columns.is-variable.is-6-mobile{--columnGap: 1.5rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-6-tablet{--columnGap: 1.5rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-6-tablet-only{--columnGap: 1.5rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-6-touch{--columnGap: 1.5rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-6-desktop{--columnGap: 1.5rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-6-desktop-only{--columnGap: 1.5rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-6-widescreen{--columnGap: 1.5rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-6-widescreen-only{--columnGap: 1.5rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-6-fullhd{--columnGap: 1.5rem}}.columns.is-variable.is-7{--columnGap: 1.75rem}@media screen and (max-width: 768px){.columns.is-variable.is-7-mobile{--columnGap: 1.75rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-7-tablet{--columnGap: 1.75rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-7-tablet-only{--columnGap: 1.75rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-7-touch{--columnGap: 1.75rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-7-desktop{--columnGap: 1.75rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-7-desktop-only{--columnGap: 1.75rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-7-widescreen{--columnGap: 1.75rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-7-widescreen-only{--columnGap: 1.75rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-7-fullhd{--columnGap: 1.75rem}}.columns.is-variable.is-8{--columnGap: 2rem}@media screen and (max-width: 768px){.columns.is-variable.is-8-mobile{--columnGap: 2rem}}@media screen and (min-width: 769px),print{.columns.is-variable.is-8-tablet{--columnGap: 2rem}}@media screen and (min-width: 769px) and (max-width: 1055px){.columns.is-variable.is-8-tablet-only{--columnGap: 2rem}}@media screen and (max-width: 1055px){.columns.is-variable.is-8-touch{--columnGap: 2rem}}@media screen and (min-width: 1056px){.columns.is-variable.is-8-desktop{--columnGap: 2rem}}@media screen and (min-width: 1056px) and (max-width: 1215px){.columns.is-variable.is-8-desktop-only{--columnGap: 2rem}}@media screen and (min-width: 1216px){.columns.is-variable.is-8-widescreen{--columnGap: 2rem}}@media screen and (min-width: 1216px) and (max-width: 1407px){.columns.is-variable.is-8-widescreen-only{--columnGap: 2rem}}@media screen and (min-width: 1408px){.columns.is-variable.is-8-fullhd{--columnGap: 2rem}}.tile{align-items:stretch;display:block;flex-basis:0;flex-grow:1;flex-shrink:1;min-height:min-content}.tile.is-ancestor{margin-left:-.75rem;margin-right:-.75rem;margin-top:-.75rem}.tile.is-ancestor:last-child{margin-bottom:-.75rem}.tile.is-ancestor:not(:last-child){margin-bottom:.75rem}.tile.is-child{margin:0 !important}.tile.is-parent{padding:.75rem}.tile.is-vertical{flex-direction:column}.tile.is-vertical>.tile.is-child:not(:last-child){margin-bottom:1.5rem !important}@media screen and (min-width: 769px),print{.tile:not(.is-child){display:flex}.tile.is-1{flex:none;width:8.3333333333%}.tile.is-2{flex:none;width:16.6666666667%}.tile.is-3{flex:none;width:25%}.tile.is-4{flex:none;width:33.3333333333%}.tile.is-5{flex:none;width:41.6666666667%}.tile.is-6{flex:none;width:50%}.tile.is-7{flex:none;width:58.3333333333%}.tile.is-8{flex:none;width:66.6666666667%}.tile.is-9{flex:none;width:75%}.tile.is-10{flex:none;width:83.3333333333%}.tile.is-11{flex:none;width:91.6666666667%}.tile.is-12{flex:none;width:100%}}.hero{align-items:stretch;display:flex;flex-direction:column;justify-content:space-between}.hero .navbar{background:none}.hero .tabs ul{border-bottom:none}.hero.is-white{background-color:#fff;color:#0a0a0a}.hero.is-white a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-white strong{color:inherit}.hero.is-white .title{color:#0a0a0a}.hero.is-white .subtitle{color:rgba(10,10,10,0.9)}.hero.is-white .subtitle a:not(.button),.hero.is-white .subtitle strong{color:#0a0a0a}@media screen and (max-width: 1055px){.hero.is-white .navbar-menu{background-color:#fff}}.hero.is-white .navbar-item,.hero.is-white .navbar-link{color:rgba(10,10,10,0.7)}.hero.is-white a.navbar-item:hover,.hero.is-white a.navbar-item.is-active,.hero.is-white .navbar-link:hover,.hero.is-white .navbar-link.is-active{background-color:#f2f2f2;color:#0a0a0a}.hero.is-white .tabs a{color:#0a0a0a;opacity:0.9}.hero.is-white .tabs a:hover{opacity:1}.hero.is-white .tabs li.is-active a{opacity:1}.hero.is-white .tabs.is-boxed a,.hero.is-white .tabs.is-toggle a{color:#0a0a0a}.hero.is-white .tabs.is-boxed a:hover,.hero.is-white .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-white .tabs.is-boxed li.is-active a,.hero.is-white .tabs.is-boxed li.is-active a:hover,.hero.is-white .tabs.is-toggle li.is-active a,.hero.is-white .tabs.is-toggle li.is-active a:hover{background-color:#0a0a0a;border-color:#0a0a0a;color:#fff}.hero.is-white.is-bold{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}@media screen and (max-width: 768px){.hero.is-white.is-bold .navbar-menu{background-image:linear-gradient(141deg, #e8e3e4 0%, #fff 71%, #fff 100%)}}.hero.is-black{background-color:#0a0a0a;color:#fff}.hero.is-black a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-black strong{color:inherit}.hero.is-black .title{color:#fff}.hero.is-black .subtitle{color:rgba(255,255,255,0.9)}.hero.is-black .subtitle a:not(.button),.hero.is-black .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-black .navbar-menu{background-color:#0a0a0a}}.hero.is-black .navbar-item,.hero.is-black .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-black a.navbar-item:hover,.hero.is-black a.navbar-item.is-active,.hero.is-black .navbar-link:hover,.hero.is-black .navbar-link.is-active{background-color:#000;color:#fff}.hero.is-black .tabs a{color:#fff;opacity:0.9}.hero.is-black .tabs a:hover{opacity:1}.hero.is-black .tabs li.is-active a{opacity:1}.hero.is-black .tabs.is-boxed a,.hero.is-black .tabs.is-toggle a{color:#fff}.hero.is-black .tabs.is-boxed a:hover,.hero.is-black .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-black .tabs.is-boxed li.is-active a,.hero.is-black .tabs.is-boxed li.is-active a:hover,.hero.is-black .tabs.is-toggle li.is-active a,.hero.is-black .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#0a0a0a}.hero.is-black.is-bold{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}@media screen and (max-width: 768px){.hero.is-black.is-bold .navbar-menu{background-image:linear-gradient(141deg, #000 0%, #0a0a0a 71%, #181616 100%)}}.hero.is-light{background-color:#f5f5f5;color:#363636}.hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-light strong{color:inherit}.hero.is-light .title{color:#363636}.hero.is-light .subtitle{color:rgba(54,54,54,0.9)}.hero.is-light .subtitle a:not(.button),.hero.is-light .subtitle strong{color:#363636}@media screen and (max-width: 1055px){.hero.is-light .navbar-menu{background-color:#f5f5f5}}.hero.is-light .navbar-item,.hero.is-light .navbar-link{color:rgba(54,54,54,0.7)}.hero.is-light a.navbar-item:hover,.hero.is-light a.navbar-item.is-active,.hero.is-light .navbar-link:hover,.hero.is-light .navbar-link.is-active{background-color:#e8e8e8;color:#363636}.hero.is-light .tabs a{color:#363636;opacity:0.9}.hero.is-light .tabs a:hover{opacity:1}.hero.is-light .tabs li.is-active a{opacity:1}.hero.is-light .tabs.is-boxed a,.hero.is-light .tabs.is-toggle a{color:#363636}.hero.is-light .tabs.is-boxed a:hover,.hero.is-light .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-light .tabs.is-boxed li.is-active a,.hero.is-light .tabs.is-boxed li.is-active a:hover,.hero.is-light .tabs.is-toggle li.is-active a,.hero.is-light .tabs.is-toggle li.is-active a:hover{background-color:#363636;border-color:#363636;color:#f5f5f5}.hero.is-light.is-bold{background-image:linear-gradient(141deg, #dfd8d9 0%, #f5f5f5 71%, #fff 100%)}@media screen and (max-width: 768px){.hero.is-light.is-bold .navbar-menu{background-image:linear-gradient(141deg, #dfd8d9 0%, #f5f5f5 71%, #fff 100%)}}.hero.is-dark,.content kbd.hero{background-color:#363636;color:#f5f5f5}.hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-dark strong,.content kbd.hero strong{color:inherit}.hero.is-dark .title,.content kbd.hero .title{color:#f5f5f5}.hero.is-dark .subtitle,.content kbd.hero .subtitle{color:rgba(245,245,245,0.9)}.hero.is-dark .subtitle a:not(.button),.content kbd.hero .subtitle a:not(.button),.hero.is-dark .subtitle strong,.content kbd.hero .subtitle strong{color:#f5f5f5}@media screen and (max-width: 1055px){.hero.is-dark .navbar-menu,.content kbd.hero .navbar-menu{background-color:#363636}}.hero.is-dark .navbar-item,.content kbd.hero .navbar-item,.hero.is-dark .navbar-link,.content kbd.hero .navbar-link{color:rgba(245,245,245,0.7)}.hero.is-dark a.navbar-item:hover,.content kbd.hero a.navbar-item:hover,.hero.is-dark a.navbar-item.is-active,.content kbd.hero a.navbar-item.is-active,.hero.is-dark .navbar-link:hover,.content kbd.hero .navbar-link:hover,.hero.is-dark .navbar-link.is-active,.content kbd.hero .navbar-link.is-active{background-color:#292929;color:#f5f5f5}.hero.is-dark .tabs a,.content kbd.hero .tabs a{color:#f5f5f5;opacity:0.9}.hero.is-dark .tabs a:hover,.content kbd.hero .tabs a:hover{opacity:1}.hero.is-dark .tabs li.is-active a,.content kbd.hero .tabs li.is-active a{opacity:1}.hero.is-dark .tabs.is-boxed a,.content kbd.hero .tabs.is-boxed a,.hero.is-dark .tabs.is-toggle a,.content kbd.hero .tabs.is-toggle a{color:#f5f5f5}.hero.is-dark .tabs.is-boxed a:hover,.content kbd.hero .tabs.is-boxed a:hover,.hero.is-dark .tabs.is-toggle a:hover,.content kbd.hero .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-dark .tabs.is-boxed li.is-active a,.content kbd.hero .tabs.is-boxed li.is-active a,.hero.is-dark .tabs.is-boxed li.is-active a:hover,.hero.is-dark .tabs.is-toggle li.is-active a,.content kbd.hero .tabs.is-toggle li.is-active a,.hero.is-dark .tabs.is-toggle li.is-active a:hover{background-color:#f5f5f5;border-color:#f5f5f5;color:#363636}.hero.is-dark.is-bold,.content kbd.hero.is-bold{background-image:linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%)}@media screen and (max-width: 768px){.hero.is-dark.is-bold .navbar-menu,.content kbd.hero.is-bold .navbar-menu{background-image:linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%)}}.hero.is-primary,.docstring>section>a.hero.docs-sourcelink{background-color:#4eb5de;color:#fff}.hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.docstring>section>a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-primary strong,.docstring>section>a.hero.docs-sourcelink strong{color:inherit}.hero.is-primary .title,.docstring>section>a.hero.docs-sourcelink .title{color:#fff}.hero.is-primary .subtitle,.docstring>section>a.hero.docs-sourcelink .subtitle{color:rgba(255,255,255,0.9)}.hero.is-primary .subtitle a:not(.button),.docstring>section>a.hero.docs-sourcelink .subtitle a:not(.button),.hero.is-primary .subtitle strong,.docstring>section>a.hero.docs-sourcelink .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-primary .navbar-menu,.docstring>section>a.hero.docs-sourcelink .navbar-menu{background-color:#4eb5de}}.hero.is-primary .navbar-item,.docstring>section>a.hero.docs-sourcelink .navbar-item,.hero.is-primary .navbar-link,.docstring>section>a.hero.docs-sourcelink .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-primary a.navbar-item:hover,.docstring>section>a.hero.docs-sourcelink a.navbar-item:hover,.hero.is-primary a.navbar-item.is-active,.docstring>section>a.hero.docs-sourcelink a.navbar-item.is-active,.hero.is-primary .navbar-link:hover,.docstring>section>a.hero.docs-sourcelink .navbar-link:hover,.hero.is-primary .navbar-link.is-active,.docstring>section>a.hero.docs-sourcelink .navbar-link.is-active{background-color:#39acda;color:#fff}.hero.is-primary .tabs a,.docstring>section>a.hero.docs-sourcelink .tabs a{color:#fff;opacity:0.9}.hero.is-primary .tabs a:hover,.docstring>section>a.hero.docs-sourcelink .tabs a:hover{opacity:1}.hero.is-primary .tabs li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs li.is-active a{opacity:1}.hero.is-primary .tabs.is-boxed a,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a,.hero.is-primary .tabs.is-toggle a,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a{color:#fff}.hero.is-primary .tabs.is-boxed a:hover,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed a:hover,.hero.is-primary .tabs.is-toggle a:hover,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-primary .tabs.is-boxed li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs.is-boxed li.is-active a,.hero.is-primary .tabs.is-boxed li.is-active a:hover,.hero.is-primary .tabs.is-toggle li.is-active a,.docstring>section>a.hero.docs-sourcelink .tabs.is-toggle li.is-active a,.hero.is-primary .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#4eb5de}.hero.is-primary.is-bold,.docstring>section>a.hero.is-bold.docs-sourcelink{background-image:linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%)}@media screen and (max-width: 768px){.hero.is-primary.is-bold .navbar-menu,.docstring>section>a.hero.is-bold.docs-sourcelink .navbar-menu{background-image:linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%)}}.hero.is-link{background-color:#2e63b8;color:#fff}.hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-link strong{color:inherit}.hero.is-link .title{color:#fff}.hero.is-link .subtitle{color:rgba(255,255,255,0.9)}.hero.is-link .subtitle a:not(.button),.hero.is-link .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-link .navbar-menu{background-color:#2e63b8}}.hero.is-link .navbar-item,.hero.is-link .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-link a.navbar-item:hover,.hero.is-link a.navbar-item.is-active,.hero.is-link .navbar-link:hover,.hero.is-link .navbar-link.is-active{background-color:#2958a4;color:#fff}.hero.is-link .tabs a{color:#fff;opacity:0.9}.hero.is-link .tabs a:hover{opacity:1}.hero.is-link .tabs li.is-active a{opacity:1}.hero.is-link .tabs.is-boxed a,.hero.is-link .tabs.is-toggle a{color:#fff}.hero.is-link .tabs.is-boxed a:hover,.hero.is-link .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-link .tabs.is-boxed li.is-active a,.hero.is-link .tabs.is-boxed li.is-active a:hover,.hero.is-link .tabs.is-toggle li.is-active a,.hero.is-link .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#2e63b8}.hero.is-link.is-bold{background-image:linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%)}@media screen and (max-width: 768px){.hero.is-link.is-bold .navbar-menu{background-image:linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%)}}.hero.is-info{background-color:#209cee;color:#fff}.hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-info strong{color:inherit}.hero.is-info .title{color:#fff}.hero.is-info .subtitle{color:rgba(255,255,255,0.9)}.hero.is-info .subtitle a:not(.button),.hero.is-info .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-info .navbar-menu{background-color:#209cee}}.hero.is-info .navbar-item,.hero.is-info .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-info a.navbar-item:hover,.hero.is-info a.navbar-item.is-active,.hero.is-info .navbar-link:hover,.hero.is-info .navbar-link.is-active{background-color:#1190e3;color:#fff}.hero.is-info .tabs a{color:#fff;opacity:0.9}.hero.is-info .tabs a:hover{opacity:1}.hero.is-info .tabs li.is-active a{opacity:1}.hero.is-info .tabs.is-boxed a,.hero.is-info .tabs.is-toggle a{color:#fff}.hero.is-info .tabs.is-boxed a:hover,.hero.is-info .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-info .tabs.is-boxed li.is-active a,.hero.is-info .tabs.is-boxed li.is-active a:hover,.hero.is-info .tabs.is-toggle li.is-active a,.hero.is-info .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#209cee}.hero.is-info.is-bold{background-image:linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%)}@media screen and (max-width: 768px){.hero.is-info.is-bold .navbar-menu{background-image:linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%)}}.hero.is-success{background-color:#22c35b;color:#fff}.hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-success strong{color:inherit}.hero.is-success .title{color:#fff}.hero.is-success .subtitle{color:rgba(255,255,255,0.9)}.hero.is-success .subtitle a:not(.button),.hero.is-success .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-success .navbar-menu{background-color:#22c35b}}.hero.is-success .navbar-item,.hero.is-success .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-success a.navbar-item:hover,.hero.is-success a.navbar-item.is-active,.hero.is-success .navbar-link:hover,.hero.is-success .navbar-link.is-active{background-color:#1ead51;color:#fff}.hero.is-success .tabs a{color:#fff;opacity:0.9}.hero.is-success .tabs a:hover{opacity:1}.hero.is-success .tabs li.is-active a{opacity:1}.hero.is-success .tabs.is-boxed a,.hero.is-success .tabs.is-toggle a{color:#fff}.hero.is-success .tabs.is-boxed a:hover,.hero.is-success .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-success .tabs.is-boxed li.is-active a,.hero.is-success .tabs.is-boxed li.is-active a:hover,.hero.is-success .tabs.is-toggle li.is-active a,.hero.is-success .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#22c35b}.hero.is-success.is-bold{background-image:linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%)}@media screen and (max-width: 768px){.hero.is-success.is-bold .navbar-menu{background-image:linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%)}}.hero.is-warning{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-warning strong{color:inherit}.hero.is-warning .title{color:rgba(0,0,0,0.7)}.hero.is-warning .subtitle{color:rgba(0,0,0,0.9)}.hero.is-warning .subtitle a:not(.button),.hero.is-warning .subtitle strong{color:rgba(0,0,0,0.7)}@media screen and (max-width: 1055px){.hero.is-warning .navbar-menu{background-color:#ffdd57}}.hero.is-warning .navbar-item,.hero.is-warning .navbar-link{color:rgba(0,0,0,0.7)}.hero.is-warning a.navbar-item:hover,.hero.is-warning a.navbar-item.is-active,.hero.is-warning .navbar-link:hover,.hero.is-warning .navbar-link.is-active{background-color:#ffd83e;color:rgba(0,0,0,0.7)}.hero.is-warning .tabs a{color:rgba(0,0,0,0.7);opacity:0.9}.hero.is-warning .tabs a:hover{opacity:1}.hero.is-warning .tabs li.is-active a{opacity:1}.hero.is-warning .tabs.is-boxed a,.hero.is-warning .tabs.is-toggle a{color:rgba(0,0,0,0.7)}.hero.is-warning .tabs.is-boxed a:hover,.hero.is-warning .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-warning .tabs.is-boxed li.is-active a,.hero.is-warning .tabs.is-boxed li.is-active a:hover,.hero.is-warning .tabs.is-toggle li.is-active a,.hero.is-warning .tabs.is-toggle li.is-active a:hover{background-color:rgba(0,0,0,0.7);border-color:rgba(0,0,0,0.7);color:#ffdd57}.hero.is-warning.is-bold{background-image:linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%)}@media screen and (max-width: 768px){.hero.is-warning.is-bold .navbar-menu{background-image:linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%)}}.hero.is-danger{background-color:#da0b00;color:#fff}.hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current),.hero.is-danger strong{color:inherit}.hero.is-danger .title{color:#fff}.hero.is-danger .subtitle{color:rgba(255,255,255,0.9)}.hero.is-danger .subtitle a:not(.button),.hero.is-danger .subtitle strong{color:#fff}@media screen and (max-width: 1055px){.hero.is-danger .navbar-menu{background-color:#da0b00}}.hero.is-danger .navbar-item,.hero.is-danger .navbar-link{color:rgba(255,255,255,0.7)}.hero.is-danger a.navbar-item:hover,.hero.is-danger a.navbar-item.is-active,.hero.is-danger .navbar-link:hover,.hero.is-danger .navbar-link.is-active{background-color:#c10a00;color:#fff}.hero.is-danger .tabs a{color:#fff;opacity:0.9}.hero.is-danger .tabs a:hover{opacity:1}.hero.is-danger .tabs li.is-active a{opacity:1}.hero.is-danger .tabs.is-boxed a,.hero.is-danger .tabs.is-toggle a{color:#fff}.hero.is-danger .tabs.is-boxed a:hover,.hero.is-danger .tabs.is-toggle a:hover{background-color:rgba(10,10,10,0.1)}.hero.is-danger .tabs.is-boxed li.is-active a,.hero.is-danger .tabs.is-boxed li.is-active a:hover,.hero.is-danger .tabs.is-toggle li.is-active a,.hero.is-danger .tabs.is-toggle li.is-active a:hover{background-color:#fff;border-color:#fff;color:#da0b00}.hero.is-danger.is-bold{background-image:linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%)}@media screen and (max-width: 768px){.hero.is-danger.is-bold .navbar-menu{background-image:linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%)}}.hero.is-small .hero-body,#documenter .docs-sidebar form.docs-search>input.hero .hero-body{padding-bottom:1.5rem;padding-top:1.5rem}@media screen and (min-width: 769px),print{.hero.is-medium .hero-body{padding-bottom:9rem;padding-top:9rem}}@media screen and (min-width: 769px),print{.hero.is-large .hero-body{padding-bottom:18rem;padding-top:18rem}}.hero.is-halfheight .hero-body,.hero.is-fullheight .hero-body,.hero.is-fullheight-with-navbar .hero-body{align-items:center;display:flex}.hero.is-halfheight .hero-body>.container,.hero.is-fullheight .hero-body>.container,.hero.is-fullheight-with-navbar .hero-body>.container{flex-grow:1;flex-shrink:1}.hero.is-halfheight{min-height:50vh}.hero.is-fullheight{min-height:100vh}.hero-video{overflow:hidden}.hero-video video{left:50%;min-height:100%;min-width:100%;position:absolute;top:50%;transform:translate3d(-50%, -50%, 0)}.hero-video.is-transparent{opacity:0.3}@media screen and (max-width: 768px){.hero-video{display:none}}.hero-buttons{margin-top:1.5rem}@media screen and (max-width: 768px){.hero-buttons .button{display:flex}.hero-buttons .button:not(:last-child){margin-bottom:0.75rem}}@media screen and (min-width: 769px),print{.hero-buttons{display:flex;justify-content:center}.hero-buttons .button:not(:last-child){margin-right:1.5rem}}.hero-head,.hero-foot{flex-grow:0;flex-shrink:0}.hero-body{flex-grow:1;flex-shrink:0;padding:3rem 1.5rem}.section{padding:3rem 1.5rem}@media screen and (min-width: 1056px){.section.is-medium{padding:9rem 1.5rem}.section.is-large{padding:18rem 1.5rem}}.footer{background-color:#fafafa;padding:3rem 1.5rem 6rem}h1 .docs-heading-anchor,h1 .docs-heading-anchor:hover,h1 .docs-heading-anchor:visited,h2 .docs-heading-anchor,h2 .docs-heading-anchor:hover,h2 .docs-heading-anchor:visited,h3 .docs-heading-anchor,h3 .docs-heading-anchor:hover,h3 .docs-heading-anchor:visited,h4 .docs-heading-anchor,h4 .docs-heading-anchor:hover,h4 .docs-heading-anchor:visited,h5 .docs-heading-anchor,h5 .docs-heading-anchor:hover,h5 .docs-heading-anchor:visited,h6 .docs-heading-anchor,h6 .docs-heading-anchor:hover,h6 .docs-heading-anchor:visited{color:#222}h1 .docs-heading-anchor-permalink,h2 .docs-heading-anchor-permalink,h3 .docs-heading-anchor-permalink,h4 .docs-heading-anchor-permalink,h5 .docs-heading-anchor-permalink,h6 .docs-heading-anchor-permalink{visibility:hidden;vertical-align:middle;margin-left:0.5em;font-size:0.7rem}h1 .docs-heading-anchor-permalink::before,h2 .docs-heading-anchor-permalink::before,h3 .docs-heading-anchor-permalink::before,h4 .docs-heading-anchor-permalink::before,h5 .docs-heading-anchor-permalink::before,h6 .docs-heading-anchor-permalink::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f0c1"}h1:hover .docs-heading-anchor-permalink,h2:hover .docs-heading-anchor-permalink,h3:hover .docs-heading-anchor-permalink,h4:hover .docs-heading-anchor-permalink,h5:hover .docs-heading-anchor-permalink,h6:hover .docs-heading-anchor-permalink{visibility:visible}.docs-dark-only{display:none !important}pre{position:relative;overflow:hidden}pre code,pre code.hljs{padding:0 .75rem !important;overflow:auto;display:block}pre code:first-of-type,pre code.hljs:first-of-type{padding-top:0.5rem !important}pre code:last-of-type,pre code.hljs:last-of-type{padding-bottom:0.5rem !important}pre .copy-button{opacity:0.2;transition:opacity 0.2s;position:absolute;right:0em;top:0em;padding:0.5em;width:2.5em;height:2.5em;background:transparent;border:none;font-family:"Font Awesome 5 Free";color:#222;cursor:pointer;text-align:center}pre .copy-button:focus,pre .copy-button:hover{opacity:1;background:rgba(34,34,34,0.1);color:#2e63b8}pre .copy-button.success{color:#259a12;opacity:1}pre .copy-button.error{color:#cb3c33;opacity:1}pre:hover .copy-button{opacity:1}.admonition{background-color:#b5b5b5;border-style:solid;border-width:1px;border-color:#363636;border-radius:4px;font-size:1rem}.admonition strong{color:currentColor}.admonition.is-small,#documenter .docs-sidebar form.docs-search>input.admonition{font-size:.75rem}.admonition.is-medium{font-size:1.25rem}.admonition.is-large{font-size:1.5rem}.admonition.is-default{background-color:#b5b5b5;border-color:#363636}.admonition.is-default>.admonition-header{background-color:#363636;color:#fff}.admonition.is-default>.admonition-body{color:#fff}.admonition.is-info{background-color:#def0fc;border-color:#209cee}.admonition.is-info>.admonition-header{background-color:#209cee;color:#fff}.admonition.is-info>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-success{background-color:#bdf4d1;border-color:#22c35b}.admonition.is-success>.admonition-header{background-color:#22c35b;color:#fff}.admonition.is-success>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-warning{background-color:#fff3c5;border-color:#ffdd57}.admonition.is-warning>.admonition-header{background-color:#ffdd57;color:rgba(0,0,0,0.7)}.admonition.is-warning>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-danger{background-color:#ffaba7;border-color:#da0b00}.admonition.is-danger>.admonition-header{background-color:#da0b00;color:#fff}.admonition.is-danger>.admonition-body{color:rgba(0,0,0,0.7)}.admonition.is-compat{background-color:#bdeff5;border-color:#1db5c9}.admonition.is-compat>.admonition-header{background-color:#1db5c9;color:#fff}.admonition.is-compat>.admonition-body{color:rgba(0,0,0,0.7)}.admonition-header{color:#fff;background-color:#363636;align-items:center;font-weight:700;justify-content:space-between;line-height:1.25;padding:0.5rem .75rem;position:relative}.admonition-header:before{font-family:"Font Awesome 5 Free";font-weight:900;margin-right:.75rem;content:"\f06a"}.admonition-body{color:#222;padding:0.5rem .75rem}.admonition-body pre{background-color:#f5f5f5}.admonition-body code{background-color:rgba(0,0,0,0.05)}.docstring{margin-bottom:1em;background-color:rgba(0,0,0,0);border:1px solid #dbdbdb;box-shadow:2px 2px 3px rgba(10,10,10,0.1);max-width:100%}.docstring>header{display:flex;flex-grow:1;align-items:stretch;padding:0.5rem .75rem;background-color:#f5f5f5;box-shadow:0 1px 2px rgba(10,10,10,0.1);box-shadow:none;border-bottom:1px solid #dbdbdb}.docstring>header code{background-color:transparent}.docstring>header .docstring-binding{margin-right:0.3em}.docstring>header .docstring-category{margin-left:0.3em}.docstring>section{position:relative;padding:.75rem .75rem;border-bottom:1px solid #dbdbdb}.docstring>section:last-child{border-bottom:none}.docstring>section>a.docs-sourcelink{transition:opacity 0.3s;opacity:0;position:absolute;right:.375rem;bottom:.375rem}.docstring>section>a.docs-sourcelink:focus{opacity:1 !important}.docstring:hover>section>a.docs-sourcelink{opacity:0.2}.docstring:focus-within>section>a.docs-sourcelink{opacity:0.2}.docstring>section:hover a.docs-sourcelink{opacity:1}.documenter-example-output{background-color:#fff}.outdated-warning-overlay{position:fixed;top:0;left:0;right:0;box-shadow:0 0 10px rgba(0,0,0,0.3);z-index:999;background-color:#ffaba7;color:rgba(0,0,0,0.7);border-bottom:3px solid #da0b00;padding:10px 35px;text-align:center;font-size:15px}.outdated-warning-overlay .outdated-warning-closer{position:absolute;top:calc(50% - 10px);right:18px;cursor:pointer;width:12px}.outdated-warning-overlay a{color:#2e63b8}.outdated-warning-overlay a:hover{color:#363636}.content pre{border:1px solid #dbdbdb}.content code{font-weight:inherit}.content a code{color:#2e63b8}.content h1 code,.content h2 code,.content h3 code,.content h4 code,.content h5 code,.content h6 code{color:#222}.content table{display:block;width:initial;max-width:100%;overflow-x:auto}.content blockquote>ul:first-child,.content blockquote>ol:first-child,.content .admonition-body>ul:first-child,.content .admonition-body>ol:first-child{margin-top:0}pre,code{font-variant-ligatures:no-contextual}.breadcrumb a.is-disabled{cursor:default;pointer-events:none}.breadcrumb a.is-disabled,.breadcrumb a.is-disabled:hover{color:#222}.hljs{background:initial !important}.katex .katex-mathml{top:0;right:0}.katex-display,mjx-container,.MathJax_Display{margin:0.5em 0 !important}html{-moz-osx-font-smoothing:auto;-webkit-font-smoothing:auto}li.no-marker{list-style:none}#documenter .docs-main>article{overflow-wrap:break-word}#documenter .docs-main>article .math-container{overflow-x:auto;overflow-y:hidden}@media screen and (min-width: 1056px){#documenter .docs-main{max-width:52rem;margin-left:20rem;padding-right:1rem}}@media screen and (max-width: 1055px){#documenter .docs-main{width:100%}#documenter .docs-main>article{max-width:52rem;margin-left:auto;margin-right:auto;margin-bottom:1rem;padding:0 1rem}#documenter .docs-main>header,#documenter .docs-main>nav{max-width:100%;width:100%;margin:0}}#documenter .docs-main header.docs-navbar{background-color:#fff;border-bottom:1px solid #dbdbdb;z-index:2;min-height:4rem;margin-bottom:1rem;display:flex}#documenter .docs-main header.docs-navbar .breadcrumb{flex-grow:1}#documenter .docs-main header.docs-navbar .docs-right{display:flex;white-space:nowrap}#documenter .docs-main header.docs-navbar .docs-right .docs-icon,#documenter .docs-main header.docs-navbar .docs-right .docs-label,#documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{display:inline-block}#documenter .docs-main header.docs-navbar .docs-right .docs-label{padding:0;margin-left:0.3em}#documenter .docs-main header.docs-navbar .docs-right .docs-settings-button{margin:auto 0 auto 1rem}#documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button{font-size:1.5rem;margin:auto 0 auto 1rem}#documenter .docs-main header.docs-navbar>*{margin:auto 0}@media screen and (max-width: 1055px){#documenter .docs-main header.docs-navbar{position:sticky;top:0;padding:0 1rem;transition-property:top, box-shadow;-webkit-transition-property:top, box-shadow;transition-duration:0.3s;-webkit-transition-duration:0.3s}#documenter .docs-main header.docs-navbar.headroom--not-top{box-shadow:.2rem 0rem .4rem #bbb;transition-duration:0.7s;-webkit-transition-duration:0.7s}#documenter .docs-main header.docs-navbar.headroom--unpinned.headroom--not-top.headroom--not-bottom{top:-4.5rem;transition-duration:0.7s;-webkit-transition-duration:0.7s}}#documenter .docs-main section.footnotes{border-top:1px solid #dbdbdb}#documenter .docs-main section.footnotes li .tag:first-child,#documenter .docs-main section.footnotes li .docstring>section>a.docs-sourcelink:first-child,#documenter .docs-main section.footnotes li .content kbd:first-child,.content #documenter .docs-main section.footnotes li kbd:first-child{margin-right:1em;margin-bottom:0.4em}#documenter .docs-main .docs-footer{display:flex;flex-wrap:wrap;margin-left:0;margin-right:0;border-top:1px solid #dbdbdb;padding-top:1rem;padding-bottom:1rem}@media screen and (max-width: 1055px){#documenter .docs-main .docs-footer{padding-left:1rem;padding-right:1rem}}#documenter .docs-main .docs-footer .docs-footer-nextpage,#documenter .docs-main .docs-footer .docs-footer-prevpage{flex-grow:1}#documenter .docs-main .docs-footer .docs-footer-nextpage{text-align:right}#documenter .docs-main .docs-footer .flexbox-break{flex-basis:100%;height:0}#documenter .docs-main .docs-footer .footer-message{font-size:0.8em;margin:0.5em auto 0 auto;text-align:center}#documenter .docs-sidebar{display:flex;flex-direction:column;color:#0a0a0a;background-color:#f5f5f5;border-right:1px solid #dbdbdb;padding:0;flex:0 0 18rem;z-index:5;font-size:1rem;position:fixed;left:-18rem;width:18rem;height:100%;transition:left 0.3s}#documenter .docs-sidebar.visible{left:0;box-shadow:.4rem 0rem .8rem #bbb}@media screen and (min-width: 1056px){#documenter .docs-sidebar.visible{box-shadow:none}}@media screen and (min-width: 1056px){#documenter .docs-sidebar{left:0;top:0}}#documenter .docs-sidebar .docs-logo{margin-top:1rem;padding:0 1rem}#documenter .docs-sidebar .docs-logo>img{max-height:6rem;margin:auto}#documenter .docs-sidebar .docs-package-name{flex-shrink:0;font-size:1.5rem;font-weight:700;text-align:center;white-space:nowrap;overflow:hidden;padding:0.5rem 0}#documenter .docs-sidebar .docs-package-name .docs-autofit{max-width:16.2rem}#documenter .docs-sidebar .docs-package-name a,#documenter .docs-sidebar .docs-package-name a:hover{color:#0a0a0a}#documenter .docs-sidebar .docs-version-selector{border-top:1px solid #dbdbdb;display:none;padding:0.5rem}#documenter .docs-sidebar .docs-version-selector.visible{display:flex}#documenter .docs-sidebar ul.docs-menu{flex-grow:1;user-select:none;border-top:1px solid #dbdbdb;padding-bottom:1.5rem}#documenter .docs-sidebar ul.docs-menu>li>.tocitem{font-weight:bold}#documenter .docs-sidebar ul.docs-menu>li li{font-size:.95rem;margin-left:1em;border-left:1px solid #dbdbdb}#documenter .docs-sidebar ul.docs-menu input.collapse-toggle{display:none}#documenter .docs-sidebar ul.docs-menu ul.collapsed{display:none}#documenter .docs-sidebar ul.docs-menu input:checked~ul.collapsed{display:block}#documenter .docs-sidebar ul.docs-menu label.tocitem{display:flex}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label{flex-grow:2}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron{display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1;font-size:.75rem;margin-left:1rem;margin-top:auto;margin-bottom:auto}#documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before{font-family:"Font Awesome 5 Free";font-weight:900;content:"\f054"}#documenter .docs-sidebar ul.docs-menu input:checked~label.tocitem .docs-chevron::before{content:"\f078"}#documenter .docs-sidebar ul.docs-menu .tocitem{display:block;padding:0.5rem 0.5rem}#documenter .docs-sidebar ul.docs-menu .tocitem,#documenter .docs-sidebar ul.docs-menu .tocitem:hover{color:#0a0a0a;background:#f5f5f5}#documenter .docs-sidebar ul.docs-menu a.tocitem:hover,#documenter .docs-sidebar ul.docs-menu label.tocitem:hover{color:#0a0a0a;background-color:#ebebeb}#documenter .docs-sidebar ul.docs-menu li.is-active{border-top:1px solid #dbdbdb;border-bottom:1px solid #dbdbdb;background-color:#fff}#documenter .docs-sidebar ul.docs-menu li.is-active .tocitem,#documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover{background-color:#fff;color:#0a0a0a}#documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover{background-color:#ebebeb;color:#0a0a0a}#documenter .docs-sidebar ul.docs-menu>li.is-active:first-child{border-top:none}#documenter .docs-sidebar ul.docs-menu ul.internal{margin:0 0.5rem 0.5rem;border-top:1px solid #dbdbdb}#documenter .docs-sidebar ul.docs-menu ul.internal li{font-size:.85rem;border-left:none;margin-left:0;margin-top:0.5rem}#documenter .docs-sidebar ul.docs-menu ul.internal .tocitem{width:100%;padding:0}#documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before{content:"⚬";margin-right:0.4em}#documenter .docs-sidebar form.docs-search{margin:auto;margin-top:0.5rem;margin-bottom:0.5rem}#documenter .docs-sidebar form.docs-search>input{width:14.4rem}@media screen and (min-width: 1056px){#documenter .docs-sidebar ul.docs-menu{overflow-y:auto;-webkit-overflow-scroll:touch}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar{width:.3rem;background:none}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#e0e0e0}#documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover{background:#ccc}}@media screen and (max-width: 1055px){#documenter .docs-sidebar{overflow-y:auto;-webkit-overflow-scroll:touch}#documenter .docs-sidebar::-webkit-scrollbar{width:.3rem;background:none}#documenter .docs-sidebar::-webkit-scrollbar-thumb{border-radius:5px 0px 0px 5px;background:#e0e0e0}#documenter .docs-sidebar::-webkit-scrollbar-thumb:hover{background:#ccc}}#documenter .docs-main #documenter-search-info{margin-bottom:1rem}#documenter .docs-main #documenter-search-results{list-style-type:circle;list-style-position:outside}#documenter .docs-main #documenter-search-results li{margin-left:2rem}#documenter .docs-main #documenter-search-results .docs-highlight{background-color:yellow}.ansi span.sgr1{font-weight:bolder}.ansi span.sgr2{font-weight:lighter}.ansi span.sgr3{font-style:italic}.ansi span.sgr4{text-decoration:underline}.ansi span.sgr7{color:#fff;background-color:#222}.ansi span.sgr8{color:transparent}.ansi span.sgr8 span{color:transparent}.ansi span.sgr9{text-decoration:line-through}.ansi span.sgr30{color:#242424}.ansi span.sgr31{color:#a7201f}.ansi span.sgr32{color:#066f00}.ansi span.sgr33{color:#856b00}.ansi span.sgr34{color:#2149b0}.ansi span.sgr35{color:#7d4498}.ansi span.sgr36{color:#007989}.ansi span.sgr37{color:gray}.ansi span.sgr40{background-color:#242424}.ansi span.sgr41{background-color:#a7201f}.ansi span.sgr42{background-color:#066f00}.ansi span.sgr43{background-color:#856b00}.ansi span.sgr44{background-color:#2149b0}.ansi span.sgr45{background-color:#7d4498}.ansi span.sgr46{background-color:#007989}.ansi span.sgr47{background-color:gray}.ansi span.sgr90{color:#616161}.ansi span.sgr91{color:#cb3c33}.ansi span.sgr92{color:#0e8300}.ansi span.sgr93{color:#a98800}.ansi span.sgr94{color:#3c5dcd}.ansi span.sgr95{color:#9256af}.ansi span.sgr96{color:#008fa3}.ansi span.sgr97{color:#f5f5f5}.ansi span.sgr100{background-color:#616161}.ansi span.sgr101{background-color:#cb3c33}.ansi span.sgr102{background-color:#0e8300}.ansi span.sgr103{background-color:#a98800}.ansi span.sgr104{background-color:#3c5dcd}.ansi span.sgr105{background-color:#9256af}.ansi span.sgr106{background-color:#008fa3}.ansi span.sgr107{background-color:#f5f5f5}code.language-julia-repl>span.hljs-meta{color:#066f00;font-weight:bolder}/*! + Theme: Default + Description: Original highlight.js style + Author: (c) Ivan Sagalaev + Maintainer: @highlightjs/core-team + Website: https://highlightjs.org/ + License: see project LICENSE + Touched: 2021 +*/pre code.hljs{display:block;overflow-x:auto}code.hljs{padding:3px 5px}.hljs{background:#F0F0F0;color:#444}.hljs-comment{color:#888888}.hljs-tag,.hljs-punctuation{color:#444a}.hljs-tag .hljs-name,.hljs-tag .hljs-attr{color:#444}.hljs-keyword,.hljs-attribute,.hljs-selector-tag,.hljs-meta .hljs-keyword,.hljs-doctag,.hljs-name{font-weight:bold}.hljs-type,.hljs-string,.hljs-number,.hljs-selector-id,.hljs-selector-class,.hljs-quote,.hljs-template-tag,.hljs-deletion{color:#880000}.hljs-title,.hljs-section{color:#880000;font-weight:bold}.hljs-regexp,.hljs-symbol,.hljs-variable,.hljs-template-variable,.hljs-link,.hljs-selector-attr,.hljs-operator,.hljs-selector-pseudo{color:#BC6060}.hljs-literal{color:#78A960}.hljs-built_in,.hljs-bullet,.hljs-code,.hljs-addition{color:#397300}.hljs-meta{color:#1f7199}.hljs-meta .hljs-string{color:#4d99bf}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:bold} diff --git a/previews/PR362/assets/themeswap.js b/previews/PR362/assets/themeswap.js new file mode 100644 index 000000000..c58e993e3 --- /dev/null +++ b/previews/PR362/assets/themeswap.js @@ -0,0 +1,66 @@ +// Small function to quickly swap out themes. Gets put into the tag.. +function set_theme_from_local_storage() { + // Intialize the theme to null, which means default + var theme = null; + // If the browser supports the localstorage and is not disabled then try to get the + // documenter theme + if(window.localStorage != null) { + // Get the user-picked theme from localStorage. May be `null`, which means the default + // theme. + theme = window.localStorage.getItem("documenter-theme"); + } + // Check if the browser supports user color preference + var darkPreference = false; + // Check if the users preference is for dark color scheme + if(window.matchMedia('(prefers-color-scheme: dark)').matches === true) { + darkPreference = true; + } + // Initialize a few variables for the loop: + // + // - active: will contain the index of the theme that should be active. Note that there + // is no guarantee that localStorage contains sane values. If `active` stays `null` + // we either could not find the theme or it is the default (primary) theme anyway. + // Either way, we then need to stick to the primary theme. + // + // - disabled: style sheets that should be disabled (i.e. all the theme style sheets + // that are not the currently active theme) + var active = null; var disabled = []; var darkTheme = null; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + // The tag of each style sheet is expected to have a data-theme-name attribute + // which must contain the name of the theme. The names in localStorage much match this. + var themename = ss.ownerNode.getAttribute("data-theme-name"); + // attribute not set => non-theme stylesheet => ignore + if(themename === null) continue; + // To distinguish the default (primary) theme, it needs to have the data-theme-primary + // attribute set. + var isprimary = (ss.ownerNode.getAttribute("data-theme-primary") !== null); + // Check if the theme is primary dark theme + var isDarkTheme = (ss.ownerNode.getAttribute("data-theme-primary-dark") !== null); + // If ss is for dark theme then set the value of darkTheme to the name of the theme + if(isDarkTheme) darkTheme = themename; + // If we find a matching theme (and it's not the default), we'll set active to non-null + if(themename === theme) active = i; + // Store the style sheets of inactive themes so that we could disable them + if(themename !== theme) disabled.push(ss); + } + if(active !== null) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + theme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + else if(darkTheme !== null && darkPreference === true) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + darkTheme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + if (ss.ownerNode.getAttribute("data-theme-name") !== darkTheme) { + ss.disabled = true; + } + }); + } +} +set_theme_from_local_storage(); diff --git a/previews/PR362/assets/warner.js b/previews/PR362/assets/warner.js new file mode 100644 index 000000000..5531c8851 --- /dev/null +++ b/previews/PR362/assets/warner.js @@ -0,0 +1,49 @@ +function maybeAddWarning () { + // DOCUMENTER_NEWEST is defined in versions.js, DOCUMENTER_CURRENT_VERSION and DOCUMENTER_STABLE + // in siteinfo.js. + // If either of these are undefined something went horribly wrong, so we abort. + if ( + window.DOCUMENTER_NEWEST === undefined || + window.DOCUMENTER_CURRENT_VERSION === undefined || + window.DOCUMENTER_STABLE === undefined + ) { + return + }; + + // Current version is not a version number, so we can't tell if it's the newest version. Abort. + if (!/v(\d+\.)*\d+/.test(window.DOCUMENTER_CURRENT_VERSION)) { + return + }; + + // Current version is newest version, so no need to add a warning. + if (window.DOCUMENTER_NEWEST === window.DOCUMENTER_CURRENT_VERSION) { + return + }; + + // Add a noindex meta tag (unless one exists) so that search engines don't index this version of the docs. + if (document.body.querySelector('meta[name="robots"]') === null) { + const meta = document.createElement('meta'); + meta.name = 'robots'; + meta.content = 'noindex'; + + document.getElementsByTagName('head')[0].appendChild(meta); + }; + + const div = document.createElement('div'); + div.classList.add('outdated-warning-overlay'); + const closer = document.createElement('button'); + closer.classList.add('outdated-warning-closer', 'delete'); + closer.addEventListener('click', function () { + document.body.removeChild(div); + }); + const href = window.documenterBaseURL + '/../' + window.DOCUMENTER_STABLE; + div.innerHTML = 'This documentation is not for the latest stable release, but for either the development version or an older release.
          Click here to go to the documentation for the latest stable release.'; + div.appendChild(closer); + document.body.appendChild(div); +}; + +if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', maybeAddWarning); +} else { + maybeAddWarning(); +}; diff --git a/previews/PR362/barotropic/index.html b/previews/PR362/barotropic/index.html new file mode 100644 index 000000000..9fd3853e2 --- /dev/null +++ b/previews/PR362/barotropic/index.html @@ -0,0 +1,12 @@ + +Barotropic model · SpeedyWeather.jl

          Barotropic vorticity model

          The barotropic vorticity model describes the evolution of a 2D non-divergent flow with velocity components $\mathbf{u} = (u,v)$ through self-advection, forces and dissipation. Due to the non-divergent nature of the flow, it can be described by (the vertical component) of the relative vorticity $\zeta = \nabla \times \mathbf{u}$.

          The dynamical core presented here to solve the barotropic vorticity equations largely follows the idealized models with spectral dynamics developed at the Geophysical Fluid Dynamics Laboratory[1]: A barotropic vorticity model[2].

          Many concepts of the Shallow water model and the Primitive equation model are similar, such that for example horizontal diffusion and the Time integration are only explained here.

          Barotropic vorticity equation

          The barotropic vorticity equation is the prognostic equation that describes the time evolution of relative vorticity $\zeta$ with advection, Coriolis force, forcing and diffusion in a single global layer on the sphere.

          \[\frac{\partial \zeta}{\partial t} + \nabla \cdot (\mathbf{u}(\zeta + f)) = +\nabla \times \mathbf{F} + (-1)^{n+1}\nu\nabla^{2n}\zeta\]

          We denote time$t$, velocity vector $\mathbf{u} = (u, v)$, Coriolis parameter $f$, and hyperdiffusion $(-1)^{n+1} \nu \nabla^{2n} \zeta$ ($n$ is the hyperdiffusion order, see Horizontal diffusion). We also include a forcing vector $\mathbf{F} = (F_u,F_v)$ which acts on the zonal velocity $u$ and the meridional velocity $v$ and hence its curl $\nabla \times \mathbf{F}$ is a tendency for relative vorticity $\zeta$.

          Starting with some relative vorticity $\zeta$, the Laplacian is inverted to obtain the stream function $\Psi$

          \[\Psi = \nabla^{-2}\zeta\]

          The zonal velocity $u$ and meridional velocity $v$ are then the (negative) meridional gradient and zonal gradient of $\Psi$

          \[\begin{aligned} +u &= -\frac{1}{R} \frac{\partial \Psi}{\partial \theta} \\ +v &= \frac{1}{R\cos(\theta)} \frac{\partial \Psi}{\partial \phi} \\ +\end{aligned}\]

          which is described in Derivatives in spherical coordinates. Using $u$ and $v$ we can then advect the absolute vorticity $\zeta + f$. In order to avoid to calculate both the curl and the divergence of a flux we rewrite the barotropic vorticity equation as

          \[\frac{\partial \zeta}{\partial t} = +\nabla \times (\mathbf{F} + \mathbf{u}_\perp(\zeta + f)) + (-1)^{n+1}\nu\nabla^{2n}\zeta\]

          with $\mathbf{u}_\perp = (v,-u)$ the rotated velocity vector, because $-\nabla\cdot\mathbf{u} = \nabla \times \mathbf{u}_\perp$. This is the form that is solved in the BarotropicModel, as outlined in the following section.

          Algorithm

          We briefly outline the algorithm that SpeedyWeather.jl uses in order to integrate the barotropic vorticity equation. As an initial step

          0. Start with initial conditions of $\zeta_{lm}$ in spectral space and transform this model state to grid-point space:

          • Invert the Laplacian of vorticity $\zeta_{lm}$ to obtain the stream function $\Psi_{lm}$ in spectral space
          • obtain zonal velocity $(\cos(\theta)u)_{lm}$ through a Meridional derivative
          • obtain meridional velocity $(\cos(\theta)v)_{lm}$ through a Zonal derivative
          • Transform zonal and meridional velocity $(\cos(\theta)u)_{lm}$, $(\cos(\theta)v)_{lm}$ to grid-point space
          • Unscale the $\cos(\theta)$ factor to obtain $u,v$
          • Transform $\zeta_{lm}$ to $\zeta$ in grid-point space

          Now loop over

          1. Compute the forcing vector $\mathbf{F} = (F_u,F_v)$ for $u$ and $v$
          2. Multiply $u,v$ with $\zeta+f$ in grid-point space
          3. Add $A = F_u + v(\zeta + f)$ and $B = F_v - u(\zeta + f)$
          4. Transform these vector components to spectral space $A_{lm}$, $B_{lm}$
          5. Compute the curl of $(A,B)_{lm}$ in spectral space which is the tendency of $\zeta_{lm}$
          6. Compute the horizontal diffusion based on that tendency
          7. Compute a leapfrog time step as described in Time integration with a Robert-Asselin and Williams filter
          8. Transform the new spectral state of $\zeta_{lm}$ to grid-point $u,v,\zeta$ as described in 0.
          9. Possibly do some output
          10. Repeat from 1.

          Horizontal diffusion

          In SpeedyWeather.jl we use hyerdiffusion through an $n$-th power Laplacian $(-1)^{n+1}\nabla^{2n}$ (hyper when $n>1$) which can be implemented as a multiplication of the spectral coefficients $\Psi_{lm}$ with $(-l(l+1))^nR^{-2n}$ (see spectral Laplacian) It is therefore computationally not more expensive to apply hyperdiffusion over diffusion as the $(-l(l+1))^nR^{-2n}$ can be precomputed. Note the sign change $(-1)^{n+1}$ here is such that the dissipative nature of the diffusion operator is retained for $n$ odd and even.

          In SpeedyWeather.jl the diffusion is applied implicitly. For that, consider a leapfrog scheme with time step $\Delta t$ of variable $\zeta$ to obtain from time steps $i-1$ and $i$, the next time step $i+1$

          \[\zeta_{i+1} = \zeta_{i-1} + 2\Delta t d\zeta,\]

          with $d\zeta$ being some tendency evaluated from $\zeta_i$. Now we want to add a diffusion term $(-1)^{n+1}\nu \nabla^{2n}\zeta$ with coefficient $\nu$, which however, is implicitly calculated from $\zeta_{i+1}$, then

          \[\zeta_{i+1} = \zeta_{i-1} + 2\Delta t (d\zeta + (-1)^{n+1} \nu\nabla^{2n}\zeta_{i+1})\]

          As the application of $(-1)^{n+1}\nu\nabla^{2n}$ is, for every spectral mode, equivalent to a multiplication of a constant, we can rewrite this to

          \[\zeta_{i+1} = \frac{\zeta_{i-1} + 2\Delta t d\zeta}{1 - 2\Delta (-1)^{n+1}\nu\nabla^{2n}},\]

          and expand the numerator to

          \[\zeta_{i+1} = \zeta_{i-1} + 2\Delta t \frac{d\zeta + (-1)^{n+1} \nu\nabla^{2n}\zeta_{i-1}}{1 - 2\Delta t (-1)^{n+1}\nu \nabla^{2n}},\]

          Hence the diffusion can be applied implicitly by updating the tendency $d\zeta$ as

          \[d\zeta \to \frac{d\zeta + (-1)^{n+1}\nu\nabla^{2n}\zeta_{i-1}}{1 - 2\Delta t \nu \nabla^{2n}}\]

          which only depends on $\zeta_{i-1}$. Now let $D_\text{explicit} = (-1)^{n+1}\nu\nabla^{2n}$ be the explicit part and $D_\text{implicit} = 1 - (-1)^{n+1} 2\Delta t \nu\nabla^{2n}$ the implicit part. Both parts can be precomputed and are $D_\text{implicit} = 1 - 2\Delta t \nu\nabla^{2n}$ the implicit part. Both parts can be precomputed and are only an element-wise multiplication in spectral space. For every spectral harmonic $l,m$ we do

          \[d\zeta \to D_\text{implicit}^{-1}(d\zeta + D_\text{explicit}\zeta_{i-1}).\]

          Hence 2 multiplications and 1 subtraction with precomputed constants. However, we will normalize the (hyper-)Laplacians as described in the following. This also will take care of the alternating sign such that the diffusion operation is dissipative regardless the power $n$.

          Normalization of diffusion

          In physics, the Laplace operator $\nabla^2$ is often used to represent diffusion due to viscosity in a fluid or diffusion that needs to be added to retain numerical stability. In both cases, the coefficient is $\nu$ of units $\text{m}^2\text{s}^{-1}$ and the full operator reads as $\nu \nabla^2$ with units $(\text{m}^2\text{s}^{-1})(\text{m}^{-2}) = \text{s}^{-1}$. This motivates us to normalize the Laplace operator by a constant of units $\text{m}^{-2}$ and the coefficient by its inverse such that it becomes a damping timescale of unit $\text{s}^{-1}$. Given the application in spectral space we decide to normalize by the largest eigenvalue $-l_\text{max}(l_\text{max}+1)$ such that all entries in the discrete spectral Laplace operator are in $[0,1]$. This also has the effect that the alternating sign drops out, such that higher wavenumbers are always dampened and not amplified. The normalized coefficient $\nu^* = l_\text{max}(l_\text{max}+1)\nu$ (always positive) is therefore reinterpreted as the (inverse) time scale at which the highest wavenumber is dampened to zero due to diffusion. Together we have

          \[D^\text{explicit}_{l,m} = -\nu^* \frac{l(l+1)}{l_\text{max}(l_\text{max}+1)}\]

          and the hyper-Laplacian of power $n$ follows as

          \[D^\text{explicit,n}_{l,m} = -\nu^* \left(\frac{l(l+1)}{l_\text{max}(l_\text{max}+1)}\right)^n\]

          and the implicit part is accordingly $D^\text{implicit,n}_{l,m} = 1 - 2\Delta t D^\text{explicit,n}_{l,m}$. Note that the diffusion time scale $\nu^*$ is then also scaled by the radius, see next section.

          Radius scaling

          Similar to a non-dimensionalization of the equations, SpeedyWeather.jl scales the barotropic vorticity equation with $R^2$ to obtain normalized gradient operators as follows. A scaling for vorticity $\zeta$ and stream function $\Psi$ is used that is

          \[\tilde{\zeta} = \zeta R, \tilde{\Psi} = \Psi R^{-1}.\]

          This is also convenient as vorticity is often $10^{-5}\text{ s}^{-1}$ in the atmosphere, but the streamfunction more like $10^5\text{ m}^2\text{ s}^{-1}$ and so this scaling brings both closer to 1 with a typical radius of the Earth of 6371km. The inversion of the Laplacians in order to obtain $\Psi$ from $\zeta$ therefore becomes

          \[\tilde{\zeta} = \tilde{\nabla}^2 \tilde{\Psi}\]

          where the dimensionless gradients simply omit the scaling with $1/R$, $\tilde{\nabla} = R\nabla$. The Barotropic vorticity equation scaled with $R^2$ is

          \[\partial_{\tilde{t}}\tilde{\zeta} + \tilde{\nabla} \cdot (\mathbf{u}(\tilde{\zeta} + \tilde{f})) = +\nabla \times \tilde{\mathbf{F}} + (-1)^{n+1}\tilde{\nu}\tilde{\nabla}^{2n}\tilde{\zeta}\]

          with

          • $\tilde{t} = tR^{-1}$, the scaled time $t$
          • $\mathbf{u} = (u,v)$, the velocity vector (no scaling applied)
          • $\tilde{f} = fR$, the scaled Coriolis parameter $f$
          • $\tilde{\mathbf{F}} = R\mathbf{F}$, the scaled forcing vector $\mathbf{F}$
          • $\tilde{\nu} = \nu^* R$, the scaled diffusion coefficient $\nu^*$, which itself is normalized to a damping time scale, see Normalization of diffusion.

          So scaling with the radius squared means we can use dimensionless operators, however, this comes at the cost of needing to deal with both a time step in seconds as well as a scaled time step in seconds per meter, which can be confusing. Furthermore, some constants like Coriolis or the diffusion coefficient need to be scaled too during initialisation, which may be confusing too because values are not what users expect them to be. SpeedyWeather.jl follows the logic that the scaling to the prognostic variables is only applied just before the time integration and variables are unscaled for output and after the time integration finished. That way, the scaling is hidden as much as possible from the user. In hopefully many other cases it is clearly denoted that a variable or constant is scaled.

          Time integration

          SpeedyWeather.jl is based on the Leapfrog time integration, which, for relative vorticity $\zeta$, is in its simplest form

          \[\frac{\zeta_{i+1} - \zeta_{i-1}}{2\Delta t} = RHS(\zeta_i),\]

          meaning we step from the previous time step $i-1$, leapfrogging over the current time step$i$ to the next time step $i+1$ by evaluating the tendencies on the right-hand side $RHS$ at the current time step $i$. The time stepping is done in spectral space. Once the right-hand side $RHS$ is evaluated, leapfrogging is a linear operation, meaning that its simply applied to every spectral coefficient $\zeta_{lm}$ as one would evaluate it on every grid point in grid-point models.

          For the Leapfrog time integration two time steps of the prognostic variables have to be stored, $i-1$ and $i$. Time step $i$ is used to evaluate the tendencies which are then added to $i-1$ in a step that also swaps the indices for the next time step $i \to i-1$ and $i+1 \to i$, so that no additional memory than two time steps have to be stored at the same time.

          The Leapfrog time integration has to be initialised with an Euler forward step in order to have a second time step $i+1$ available when starting from $i$ to actually leapfrog over. SpeedyWeather.jl therefore does two initial time steps that are different from the leapfrog time steps that follow and that have been described above.

          1. an Euler forward step with $\Delta t/2$, then
          2. one leapfrog time step with $\Delta t$, then
          3. leapfrog with $2 \Delta t$ till the end

          This is particularly done in a way that after 2. we have $t=0$ at $i-1$ and $t=\Delta t$ at $i$ available so that 3. can start the leapfrogging without any offset from the intuitive spacing $0,\Delta t, 2\Delta t, 3\Delta t,...$. The following schematic can be useful

          time at step $i-1$time at step $i$time step at $i+1$
          Initial conditions$t = 0$
          1: Euler(T) $\quad t = 0$$t=\Delta t/2$
          2: Leapfrog with $\Delta t$$t = 0$(T) $\quad t = \Delta t/2$$t = \Delta t$
          3 to $n$: Leapfrog with $2\Delta t$$t-\Delta t$(T) $\qquad \quad \quad t$$t+\Delta t$

          The time step that is used to evaluate the tendencies is denoted with (T). It is always the time step furthest in time that is available.

          Robert-Asselin and Williams filter

          The standard leapfrog time integration is often combined with a Robert-Asselin filter[Robert66][Asselin72] to dampen a computational mode. The idea is to start with a standard leapfrog step to obtain the next time step $i+1$ but then to correct the current time step $i$ by applying a filter which dampens the computational mode. The filter looks like a discrete Laplacian in time with a $(1, -2, 1)$ stencil, and so, maybe unsurprisingly, is efficient to filter out a "grid-scale oscillation" in time, aka the computational mode. Let $v$ be the unfiltered variable and $u$ be the filtered variable, $F$ the right-hand side tendency, then the standard leapfrog step is

          \[v_{i+1} = u_{i-1} + 2\Delta tF(v_i)\]

          Meaning we start with a filtered variable $u$ at the previous time step $i-1$, evaluate the tendency $F(v_i)$ based on the current time step $i$ to obtain an unfiltered next time step $v_{i+1}$. We then filter the current time step $i$ (which will become $i-1$ on the next iteration)

          \[u_i = v_i + \frac{\nu}{2}(v_{i+1} - 2v_i + u_{i-1})\]

          by adding a discrete Laplacian with coefficient $\tfrac{\nu}{2}$ to it, evaluated from the available filtered and unfiltered time steps centred around $i$: $v_{i-1}$ is not available anymore because it was overwritten by the filtering at the previous iteration, $u_i, u_{i+1}$ are not filtered yet when applying the Laplacian. The filter parameter $\nu$ is typically chosen between 0.01-0.2, with stronger filtering for higher values.

          Williams[Williams2009] then proposed an additional filter step to regain accuracy that is otherwise lost with a strong Robert-Asselin filter[Amezcua2011][Williams2011]. Now let $w$ be unfiltered, $v$ be once filtered, and $u$ twice filtered, then

          \[\begin{aligned} +w_{i+1} &= u_{i-1} + 2\Delta tF(v_i) \\ +u_i &= v_i + \frac{\nu\alpha}{2}(w_{i+1} - 2v_i + u_{i-1}) \\ +v_{i+1} &= w_{i+1} - \frac{\nu(1-\alpha)}{2}(w_{i+1} - 2v_i + u_{i-1}) +\end{aligned}\]

          with the Williams filter parameter $\alpha \in [0.5,1]$. For $\alpha=1$ we're back with the Robert-Asselin filter (the first two lines).

          The Laplacian in the parentheses is often called a displacement, meaning that the filtered value is displaced (or corrected) in the direction of the two surrounding time steps. The Williams filter now also applies the same displacement, but in the opposite direction to the next time step $i+1$ as a correction step (line 3 above) for a once-filtered value $v_{i+1}$ which will then be twice-filtered by the Robert-Asselin filter on the next iteration. For more details see the referenced publications.

          The initial Euler step (see Time integration, Table) is not filtered. Both the the Robert-Asselin and Williams filter are then switched on for all following leapfrog time steps.

          References

          diff --git a/previews/PR362/conventions/index.html b/previews/PR362/conventions/index.html new file mode 100644 index 000000000..d8fb40984 --- /dev/null +++ b/previews/PR362/conventions/index.html @@ -0,0 +1,12 @@ + +Style and convention guide · SpeedyWeather.jl

          Style and convention guide

          In SpeedyWeather.jl we've been following the several conventions that are documented here.

          Variable naming

          The prognostic variables in spectral space are called

              vor         # Vorticity of horizontal wind field
          +    div         # Divergence of horizontal wind field
          +    temp        # Absolute temperature [K]
          +    pres_surf   # Logarithm of surface pressure [log(Pa)]
          +    humid       # Specific humidity [g/kg]

          their transforms into grid-point space get a _grid suffix, their tendencies a _tend suffix. Further derived diagnostic dynamic variables are

              u
          +    v
          +    geopot
          +    ...

          Preallocation

          All arrays representing variables are preallocated and grouped into two structs

              Prog::PrognosticVariables
          +    Diag::DiagnosticVariables

          The Diag struct contains further structs which represent the grid-point transformations of the prognostic variables and their tendencies.

              gridvars::GridVariables
          +    tendencies::Tendencies
          +    ...

          Constant arrays are grouped into several structs

          Boundaries

          Julian conventions

          We follow Julia's style guide and highlight here some important aspects of it.

          • Bang (!) convention. A function func does not change its input arguments, however, func! does.

          Hence, func! is often the in-place version of func, avoiding as much memory allocation as possible and often changing its first argument, e.g. func!(out,in) so that argument in is used to calculate out which has been preallocated before function call.

          • Number format flexibility. Numeric literals such as 2.0 or 1/3 are only used in the model setup

          but avoided throughout the code to obtain a fully number format-flexible package using the number format NF as a compile-time variable throughout the code. This often leads to overly specific code whereas a Real would generally suffice. However, this is done to avoid any implicit type conversions.

          diff --git a/previews/PR362/development/index.html b/previews/PR362/development/index.html new file mode 100644 index 000000000..04c1c2b63 --- /dev/null +++ b/previews/PR362/development/index.html @@ -0,0 +1,3 @@ + +Development notes · SpeedyWeather.jl

          Development notes

          To run tests, from the path of your local clone of the repository do:

          julia --project=. -e 'import Pkg; Pkg.test()'

          To install dependencies:

          julia --project -e 'import Pkg; Pkg.instantiate()`

          then opening:

          julia --project

          you are able to using SpeedyWeather.

          To generate the docs:

          julia --project=docs -e 'import Pkg; Pkg.develop(path="."); Pkg.instantiate()'
          +julia --project=docs docs/make.jl

          If the docs are generated successfully, you view them by opening docs/build/index.html in your favorite browser.

          diff --git a/previews/PR362/extending/index.html b/previews/PR362/extending/index.html new file mode 100644 index 000000000..55db5c44b --- /dev/null +++ b/previews/PR362/extending/index.html @@ -0,0 +1,2 @@ + +Extending SpeedyWeather · SpeedyWeather.jl diff --git a/previews/PR362/functions/index.html b/previews/PR362/functions/index.html new file mode 100644 index 000000000..d07e05193 --- /dev/null +++ b/previews/PR362/functions/index.html @@ -0,0 +1,634 @@ + +Function and type index · SpeedyWeather.jl

          Function and type index

          SpeedyWeather.BarotropicModelType

          The BarotropicModel struct holds all other structs that contain precalculated constants, whether scalars or arrays that do not change throughout model integration.

          • spectral_grid::SpectralGrid: dictates resolution for many other components

          • planet::SpeedyWeather.AbstractPlanet: contains physical and orbital characteristics

          • atmosphere::SpeedyWeather.AbstractAtmosphere

          • forcing::SpeedyWeather.AbstractForcing{NF} where NF<:AbstractFloat

          • initial_conditions::SpeedyWeather.InitialConditions

          • time_stepping::SpeedyWeather.TimeStepper{NF} where NF<:AbstractFloat

          • spectral_transform::SpectralTransform

          • horizontal_diffusion::SpeedyWeather.HorizontalDiffusion{NF} where NF<:AbstractFloat

          • implicit::SpeedyWeather.AbstractImplicit{NF} where NF<:AbstractFloat

          • geometry::Geometry

          • constants::DynamicsConstants

          • device_setup::SpeedyWeather.DeviceSetup

          • output::SpeedyWeather.AbstractOutputWriter

          • feedback::SpeedyWeather.AbstractFeedback

          source
          SpeedyWeather.ClockType

          Clock struct keeps track of the model time, how many days to integrate for and how many time steps this takes

          • time::Dates.DateTime: current model time

          • n_days::Float64: number of days to integrate for, set in run!(::Simulation)

          • n_timesteps::Int64: number of time steps to integrate for, set in initialize!(::Clock,::TimeStepper)

          .

          source
          SpeedyWeather.ColumnVariablesType

          Mutable struct that contains all prognostic (copies thereof) and diagnostic variables in a single column needed to evaluate the physical parametrizations. For now the struct is mutable as we will reuse the struct to iterate over horizontal grid points. Every column vector has nlev entries, from [1] at the top to [end] at the lowermost model level at the planetary boundary layer.

          • nlev::Int64

          • nband::Int64

          • n_stratosphere_levels::Int64

          • jring::Int64

          • lond::AbstractFloat

          • latd::AbstractFloat

          • u::Vector{NF} where NF<:AbstractFloat

          • v::Vector{NF} where NF<:AbstractFloat

          • temp::Vector{NF} where NF<:AbstractFloat

          • humid::Vector{NF} where NF<:AbstractFloat

          • ln_pres::Vector{NF} where NF<:AbstractFloat

          • pres::Vector{NF} where NF<:AbstractFloat

          • u_tend::Vector{NF} where NF<:AbstractFloat

          • v_tend::Vector{NF} where NF<:AbstractFloat

          • temp_tend::Vector{NF} where NF<:AbstractFloat

          • humid_tend::Vector{NF} where NF<:AbstractFloat

          • geopot::Vector{NF} where NF<:AbstractFloat

          • flux_u_upward::Vector{NF} where NF<:AbstractFloat

          • flux_u_downward::Vector{NF} where NF<:AbstractFloat

          • flux_v_upward::Vector{NF} where NF<:AbstractFloat

          • flux_v_downward::Vector{NF} where NF<:AbstractFloat

          • flux_temp_upward::Vector{NF} where NF<:AbstractFloat

          • flux_temp_downward::Vector{NF} where NF<:AbstractFloat

          • flux_humid_upward::Vector{NF} where NF<:AbstractFloat

          • flux_humid_downward::Vector{NF} where NF<:AbstractFloat

          • sat_humid::Vector{NF} where NF<:AbstractFloat

          • sat_vap_pres::Vector{NF} where NF<:AbstractFloat

          • dry_static_energy::Vector{NF} where NF<:AbstractFloat

          • moist_static_energy::Vector{NF} where NF<:AbstractFloat

          • humid_half::Vector{NF} where NF<:AbstractFloat

          • sat_humid_half::Vector{NF} where NF<:AbstractFloat

          • sat_moist_static_energy::Vector{NF} where NF<:AbstractFloat

          • dry_static_energy_half::Vector{NF} where NF<:AbstractFloat

          • sat_moist_static_energy_half::Vector{NF} where NF<:AbstractFloat

          • conditional_instability::Bool

          • activate_convection::Bool

          • cloud_top::Int64

          • excess_humidity::AbstractFloat

          • cloud_base_mass_flux::AbstractFloat

          • precip_convection::AbstractFloat

          • net_flux_humid::Vector{NF} where NF<:AbstractFloat

          • net_flux_dry_static_energy::Vector{NF} where NF<:AbstractFloat

          • entrainment_profile::Vector{NF} where NF<:AbstractFloat

          • precip_large_scale::AbstractFloat

          • wvi::Matrix{NF} where NF<:AbstractFloat

          • tau2::Matrix{NF} where NF<:AbstractFloat

          • dfabs::Vector{NF} where NF<:AbstractFloat

          • fsfcd::AbstractFloat

          • st4a::Matrix{NF} where NF<:AbstractFloat

          • flux::Vector{NF} where NF<:AbstractFloat

          • fsfcu::AbstractFloat

          • ts::AbstractFloat

          • fsfc::AbstractFloat

          • ftop::AbstractFloat

          • stratc::Vector{NF} where NF<:AbstractFloat

          • tyear::AbstractFloat

          • csol::AbstractFloat

          • topsr::AbstractFloat

          • fsol::AbstractFloat

          • ozupp::AbstractFloat

          • ozone::AbstractFloat

          • zenit::AbstractFloat

          • stratz::AbstractFloat

          • albsfc::AbstractFloat

          • ssrd::AbstractFloat

          • ssr::AbstractFloat

          • tsr::AbstractFloat

          • tend_t_rsw::Vector{NF} where NF<:AbstractFloat

          • norm_pres::AbstractFloat

          • icltop::Int64

          • cloudc::AbstractFloat

          • clstr::AbstractFloat

          • qcloud::AbstractFloat

          • fmask::AbstractFloat

          • rel_hum::Vector{NF} where NF<:AbstractFloat

          • grad_dry_static_energy::AbstractFloat

          source
          SpeedyWeather.DeviceSetupType
          DeviceSetup{S<:AbstractDevice}

          Holds information about the device the model is running on and workgroup size.

          • device::AbstractDevice: Device the model is running on
          • device_KA::KernelAbstractions.Device: Device for use with KernelAbstractions
          • n: workgroup size
          source
          SpeedyWeather.DynamicsConstantsType

          Struct holding constants needed at runtime for the dynamical core in number format NF.

          • radius::AbstractFloat: Radius of Planet [m]

          • rotation::AbstractFloat: Angular frequency of Planet's rotation [1/s]

          • gravity::AbstractFloat: Gravitational acceleration [m/s^2]

          • layer_thickness::AbstractFloat: shallow water layer thickness [m]

          • R_dry::AbstractFloat: specific gas constant for dry air [J/kg/K]

          • R_vapour::AbstractFloat: specific gas constant for water vapour [J/kg/K]

          • μ_virt_temp::AbstractFloat: used in Tv = T(1+μq) for virt temp Tv(T,q) calculation

          • cₚ::AbstractFloat: specific heat at constant pressure [J/K/kg]

          • κ::AbstractFloat: = R_dry/cₚ, gas const for air over heat capacity

          • water_density::AbstractFloat: water density [kg/m³]

          • f_coriolis::Vector{NF} where NF<:AbstractFloat: coriolis frequency 1/s = 2Ωsin(lat)radius

          • σ_lnp_A::Vector{NF} where NF<:AbstractFloat: σ-related factor A needed for adiabatic terms

          • σ_lnp_B::Vector{NF} where NF<:AbstractFloat: σ-related factor B needed for adiabatic terms

          • Δp_geopot_half::Vector{NF} where NF<:AbstractFloat: = R*(ln(pk+1) - ln(pk+1/2)), for half level geopotential

          • Δp_geopot_full::Vector{NF} where NF<:AbstractFloat: = R*(ln(pk+1/2) - ln(pk)), for full level geopotential

          • temp_ref_profile::Vector{NF} where NF<:AbstractFloat: reference temperature profile

          source
          SpeedyWeather.DynamicsConstantsMethod
          DynamicsConstants(
          +    spectral_grid::SpectralGrid,
          +    planet::SpeedyWeather.AbstractPlanet,
          +    atmosphere::SpeedyWeather.AbstractAtmosphere,
          +    geometry::Geometry
          +) -> Any
          +

          Generator function for a DynamicsConstants struct.

          source
          SpeedyWeather.EarthType

          Create a struct Earth<:AbstractPlanet, with the following physical/orbital characteristics. Note that radius is not part of it as this should be chosen in SpectralGrid. Keyword arguments are

          • rotation::Float64: angular frequency of Earth's rotation [rad/s]

          • gravity::Float64: gravitational acceleration [m/s^2]

          • daily_cycle::Bool: switch on/off daily cycle

          • length_of_day::Float64: [hrs] in a day

          • seasonal_cycle::Bool: switch on/off seasonal cycle

          • length_of_year::Float64: [days] in a year

          • equinox::Dates.DateTime: time of spring equinox (year irrelevant)

          • axial_tilt::Float64: angle [˚] rotation axis tilt wrt to orbit

          source
          SpeedyWeather.EarthAtmosphereType

          Create a struct EarthAtmosphere<:AbstractPlanet, with the following physical/chemical characteristics. Note that radius is not part of it as this should be chosen in SpectralGrid. Keyword arguments are

          • mol_mass_dry_air::Float64: molar mass of dry air [g/mol]

          • mol_mass_vapour::Float64: molar mass of water vapour [g/mol]

          • cₚ::Float64: specific heat at constant pressure [J/K/kg]

          • R_gas::Float64: universal gas constant [J/K/mol]

          • R_dry::Float64: specific gas constant for dry air [J/kg/K]

          • R_vapour::Float64: specific gas constant for water vapour [J/kg/K]

          • water_density::Float64: water density [kg/m³]

          • latent_heat_condensation::Float64: latent heat of condensation [J/g] for consistency with specific humidity [g/Kg], also called alhc

          • latent_heat_sublimation::Float64: latent heat of sublimation [J/g], also called alhs

          • stefan_boltzmann::Float64: stefan-Boltzmann constant [W/m²/K⁴]

          • lapse_rate::Float64: moist adiabatic temperature lapse rate $-dT/dz$ [K/km]

          • temp_ref::Float64: absolute temperature at surface $z=0$ [K]

          • temp_top::Float64: absolute temperature in stratosphere [K]

          • ΔT_stratosphere::Float64: for stratospheric lapse rate [K] after Jablonowski

          • σ_tropopause::Float64: start of the stratosphere in sigma coordinates

          • σ_boundary_layer::Float64: top of the planetary boundary layer in sigma coordinates

          • scale_height::Float64: scale height for pressure [km]

          • pres_ref::Float64: surface pressure [hPa]

          • scale_height_humid::Float64: scale height for specific humidity [km]

          • relhumid_ref::Float64: relative humidity of near-surface air [1]

          • water_pres_ref::Float64: saturation water vapour pressure [Pa]

          • layer_thickness::Float64: layer thickness for the shallow water model [km]

          source
          SpeedyWeather.EarthOrographyType

          Earth's orography read from file, with smoothing.

          • path::String: path to the folder containing the orography file, pkg path default

          • file::String: filename of orography

          • file_Grid::Type{<:SpeedyWeather.RingGrids.AbstractGrid}: Grid the orography file comes on

          • scale::Float64: scale orography by a factor

          • smoothing::Bool: smooth the orography field?

          • smoothing_power::Float64: power of Laplacian for smoothing

          • smoothing_strength::Float64: highest degree l is multiplied by

          • smoothing_truncation::Int64: resolution of orography in spectral trunc

          • orography::SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat: height [m] on grid-point space.

          • geopot_surf::LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat: surface geopotential, height*gravity [m²/s²]

          source
          SpeedyWeather.EarthOrographyMethod
          EarthOrography(
          +    spectral_grid::SpectralGrid;
          +    kwargs...
          +) -> Any
          +

          Generator function pulling the resolution information from spectral_grid.

          source
          SpeedyWeather.FeedbackType
          Feedback() -> Feedback
          +Feedback(verbose::Bool) -> Feedback
          +Feedback(verbose::Bool, debug::Bool) -> Feedback
          +

          Generator function for a Feedback struct.

          source
          SpeedyWeather.FeedbackType

          Feedback struct that contains options and object for command-line feedback like the progress meter.

          • verbose::Bool: print feedback to REPL?

          • debug::Bool: check for NaRs in the prognostic variables

          • output::Bool: write a progress.txt file? State synced with OutputWriter.output

          • id::Union{Int64, String}: identification of run, taken from ::OutputWriter

          • run_path::String: path to run folder, taken from ::OutputWriter

          • progress_meter::ProgressMeter.Progress: struct containing everything progress related

          • progress_txt::Union{Nothing, IOStream}: txt is a Nothing in case of no output

          • nars_detected::Bool: did Infs/NaNs occur in the simulation?

          source
          SpeedyWeather.GeometryType

          Construct Geometry struct containing parameters and arrays describing an iso-latitude grid <:AbstractGrid and the vertical levels. Pass on SpectralGrid to calculate the following fields

          • spectral_grid::SpectralGrid: SpectralGrid that defines spectral and grid resolution

          • Grid::Type{<:SpeedyWeather.RingGrids.AbstractGrid}: grid of the dynamical core

          • nlat_half::Int64: resolution parameter nlat_half of Grid, # of latitudes on one hemisphere (incl Equator)

          • nlon_max::Int64: maximum number of longitudes (at/around Equator)

          • nlon::Int64: =nlon_max, same (used for compatibility), TODO: still needed?

          • nlat::Int64: number of latitude rings

          • nlev::Int64: number of vertical levels

          • npoints::Int64: total number of grid points

          • radius::AbstractFloat: Planet's radius [m]

          • latd::Vector{Float64}: array of latitudes in degrees (90˚...-90˚)

          • lond::Vector{Float64}: array of longitudes in degrees (0...360˚), empty for non-full grids

          • londs::Vector{NF} where NF<:AbstractFloat: longitude (-180˚...180˚) for each grid point in ring order

          • latds::Vector{NF} where NF<:AbstractFloat: latitude (-90˚...˚90) for each grid point in ring order

          • sinlat::Vector{NF} where NF<:AbstractFloat: sin of latitudes

          • coslat::Vector{NF} where NF<:AbstractFloat: cos of latitudes

          • coslat⁻¹::Vector{NF} where NF<:AbstractFloat: = 1/cos(lat)

          • coslat²::Vector{NF} where NF<:AbstractFloat: = cos²(lat)

          • coslat⁻²::Vector{NF} where NF<:AbstractFloat: # = 1/cos²(lat)

          • σ_levels_half::Vector{NF} where NF<:AbstractFloat: σ at half levels, σ_k+1/2

          • σ_levels_full::Vector{NF} where NF<:AbstractFloat: σ at full levels, σₖ

          • σ_levels_thick::Vector{NF} where NF<:AbstractFloat: σ level thicknesses, σₖ₊₁ - σₖ

          • ln_σ_levels_full::Vector{NF} where NF<:AbstractFloat: log of σ at full levels, include surface (σ=1) as last element

          source
          SpeedyWeather.GeometryMethod
          Geometry(spectral_grid::SpectralGrid) -> Any
          +

          Generator function for Geometry struct based on spectral_grid.

          source
          SpeedyWeather.HeldSuarezType

          Struct that defines the temperature relaxation from Held and Suarez, 1996 BAMS

          • nlat::Int64: number of latitude rings

          • nlev::Int64: number of vertical levels

          • σb::Float64: sigma coordinate below which faster surface relaxation is applied

          • relax_time_slow::Float64: time scale [hrs] for slow global relaxation

          • relax_time_fast::Float64: time scale [hrs] for faster tropical surface relaxation

          • Tmin::Float64: minimum equilibrium temperature [K]

          • Tmax::Float64: maximum equilibrium temperature [K]

          • ΔTy::Float64: meridional temperature gradient [K]

          • Δθz::Float64: vertical temperature gradient [K]

          • κ::Base.RefValue{NF} where NF<:AbstractFloat

          • p₀::Base.RefValue{NF} where NF<:AbstractFloat

          • temp_relax_freq::Matrix{NF} where NF<:AbstractFloat

          • temp_equil_a::Vector{NF} where NF<:AbstractFloat

          • temp_equil_b::Vector{NF} where NF<:AbstractFloat

          source
          SpeedyWeather.HeldSuarezMethod
          HeldSuarez(SG::SpectralGrid; kwargs...) -> Any
          +

          create a HeldSuarez temperature relaxation with arrays allocated given spectral_grid

          source
          SpeedyWeather.HyperDiffusionType

          Struct for horizontal hyper diffusion of vor, div, temp; implicitly in spectral space with a power of the Laplacian (default=4) and the strength controlled by time_scale. Options exist to scale the diffusion by resolution, and adaptive depending on the current vorticity maximum to increase diffusion in active layers. Furthermore the power can be decreased above the tapering_σ to power_stratosphere (default 2). For Barotropic, ShallowWater, the default non-adaptive constant-time scale hyper diffusion is used. Options are

          • trunc::Int64: spectral resolution

          • nlev::Int64: number of vertical levels

          • power::Float64: power of Laplacian

          • time_scale::Float64: diffusion time scales [hrs]

          • resolution_scaling::Float64: stronger diffusion with resolution? 0: constant with trunc, 1: (inverse) linear with trunc, etc

          • power_stratosphere::Float64: different power for tropopause/stratosphere

          • tapering_σ::Float64: linearly scale towards power_stratosphere above this σ

          • adaptive::Bool: adaptive = higher diffusion for layers with higher vorticity levels.

          • vor_max::Float64: above this (absolute) vorticity level [1/s], diffusion is increased

          • adaptive_strength::Float64: increase strength above vor_max by this factor times max(abs(vor))/vor_max

          • ∇²ⁿ_2D::Vector

          • ∇²ⁿ_2D_implicit::Vector

          • ∇²ⁿ::Array{Vector{NF}, 1} where NF

          • ∇²ⁿ_implicit::Array{Vector{NF}, 1} where NF

          source
          SpeedyWeather.HyperDiffusionMethod
          HyperDiffusion(
          +    spectral_grid::SpectralGrid;
          +    kwargs...
          +) -> Any
          +

          Generator function based on the resolutin in spectral_grid. Passes on keyword arguments.

          source
          SpeedyWeather.ImplicitPrimitiveEqType

          Struct that holds various precomputed arrays for the semi-implicit correction to prevent gravity waves from amplifying in the primitive equation model.

          • trunc::Int64: spectral resolution

          • nlev::Int64: number of vertical levels

          • α::Float64: time-step coefficient: 0=explicit, 0.5=centred implicit, 1=backward implicit

          • temp_profile::Vector{NF} where NF<:AbstractFloat: vertical temperature profile, obtained from diagn

          • ξ::Base.RefValue{NF} where NF<:AbstractFloat: time step 2α*Δt packed in RefValue for mutability

          • R::Matrix{NF} where NF<:AbstractFloat: divergence: operator for the geopotential calculation

          • U::Vector{NF} where NF<:AbstractFloat: divergence: the -RdTₖ∇² term excl the eigenvalues from ∇² for divergence

          • L::Matrix{NF} where NF<:AbstractFloat: temperature: operator for the TₖD + κTₖDlnps/Dt term

          • W::Vector{NF} where NF<:AbstractFloat: pressure: vertical averaging of the -D̄ term in the log surface pres equation

          • L0::Vector{NF} where NF<:AbstractFloat: components to construct L, 1/ 2Δσ

          • L1::Matrix{NF} where NF<:AbstractFloat: vert advection term in the temperature equation (below+above)

          • L2::Vector{NF} where NF<:AbstractFloat: factor in front of the divsumabove term

          • L3::Matrix{NF} where NF<:AbstractFloat: sumabove operator itself

          • L4::Vector{NF} where NF<:AbstractFloat: factor in front of div term in Dlnps/Dt

          • S::Matrix{NF} where NF<:AbstractFloat: for every l the matrix to be inverted

          • S⁻¹::Array{NF, 3} where NF<:AbstractFloat: combined inverted operator: S = 1 - ξ²(RL + UW)

          source
          SpeedyWeather.ImplicitShallowWaterType

          Struct that holds various precomputed arrays for the semi-implicit correction to prevent gravity waves from amplifying in the shallow water model.

          • trunc::Int64

          • α::Float64: coefficient for semi-implicit computations to filter gravity waves

          • H::Base.RefValue{NF} where NF<:AbstractFloat

          • ξH::Base.RefValue{NF} where NF<:AbstractFloat

          • g∇²::Vector{NF} where NF<:AbstractFloat

          • ξg∇²::Vector{NF} where NF<:AbstractFloat

          • S⁻¹::Vector{NF} where NF<:AbstractFloat

          source
          SpeedyWeather.JablonowskiRelaxationMethod
          JablonowskiRelaxation(SG::SpectralGrid; kwargs...) -> Any
          +

          create a JablonowskiRelaxation temperature relaxation with arrays allocated given spectral_grid

          source
          SpeedyWeather.KeepbitsType

          Number of mantissa bits to keep for each prognostic variable when compressed for netCDF and .jld2 data output.

          • u::Int64

          • v::Int64

          • vor::Int64

          • div::Int64

          • temp::Int64

          • pres::Int64

          • humid::Int64

          • precip_cond::Int64

          • precip_conv::Int64

          source
          SpeedyWeather.LeapfrogType

          Leapfrog time stepping defined by the following fields

          • trunc::Int64: spectral resolution (max degree of spherical harmonics)

          • Δt_at_T31::Float64: time step in minutes for T31, scale linearly to trunc

          • radius::Any: radius of sphere [m], used for scaling

          • robert_filter::Any: Robert (1966) time filter coefficeint to suppress comput. mode

          • williams_filter::Any: Williams time filter (Amezcua 2011) coefficient for 3rd order acc

          • Δt_sec::Int64: time step Δt [s] at specified resolution

          • Δt::Any: time step Δt [s/m] at specified resolution, scaled by 1/radius

          • Δt_hrs::Float64: convert time step Δt from minutes to hours

          source
          SpeedyWeather.LeapfrogMethod
          Leapfrog(spectral_grid::SpectralGrid; kwargs...) -> Any
          +

          Generator function for a Leapfrog struct using spectral_grid for the resolution information.

          source
          SpeedyWeather.LinearDragType

          Linear boundary layer drag Following Held and Suarez, 1996 BAMS

          • σb::Float64

          • time_scale::Float64

          • nlev::Int64

          • drag_coefs::Vector{NF} where NF<:AbstractFloat

          source
          SpeedyWeather.MagnusCoefsType

          Parameters for computing saturation vapour pressure using the August-Roche-Magnus formula,

          eᵢ(T) = e₀ * exp(Cᵢ * (T - T₀) / (T - Tᵢ)),

          where T is in Kelvin and i = 1,2 for saturation with respect to water and ice, respectively.

          • e₀::AbstractFloat: Saturation vapour pressure at 0°C [Pa]

          • T₀::AbstractFloat: 0°C in Kelvin

          • T₁::AbstractFloat

          • T₂::AbstractFloat

          • C₁::AbstractFloat

          • C₂::AbstractFloat

          source
          SpeedyWeather.NoOrographyType

          Orography with zero height in orography and zero surface geopotential geopot_surf.

          • orography::SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat: height [m] on grid-point space.

          • geopot_surf::LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat: surface geopotential, height*gravity [m²/s²]

          source
          SpeedyWeather.NoOrographyMethod
          NoOrography(spectral_grid::SpectralGrid) -> NoOrography
          +

          Generator function pulling the resolution information from spectral_grid.

          source
          SpeedyWeather.OutputWriterType

          NetCDF output writer. Contains all output options and auxiliary fields for output interpolation. To be initialised with OutputWriter(::SpectralGrid,::Type{<:ModelSetup},kwargs...) to pass on the resolution information and the model type which chooses which variables to output. Options include

          • spectral_grid::SpectralGrid

          • output::Bool

          • path::String: [OPTION] path to output folder, run_???? will be created within

          • id::String: [OPTION] run identification number/string

          • run_path::String

          • filename::String: [OPTION] name of the output netcdf file

          • write_restart::Bool: [OPTION] also write restart file if output==true?

          • pkg_version::VersionNumber

          • startdate::Dates.DateTime

          • output_dt::Float64: [OPTION] output frequency, time step [hrs]

          • output_dt_sec::Int64: actual output time step [sec]

          • output_vars::Vector{Symbol}: [OPTION] which variables to output, u, v, vor, div, pres, temp, humid

          • missing_value::Union{Float32, Float64}: [OPTION] missing value to be used in netcdf output

          • compression_level::Int64: [OPTION] lossless compression level; 1=low but fast, 9=high but slow

          • keepbits::SpeedyWeather.Keepbits: [OPTION] mantissa bits to keep for every variable

          • output_every_n_steps::Int64

          • timestep_counter::Int64

          • output_counter::Int64

          • netcdf_file::Union{Nothing, NetCDF.NcFile}

          • input_Grid::Type{<:SpeedyWeather.RingGrids.AbstractGrid}

          • as_matrix::Bool: [OPTION] sort grid points into a matrix (interpolation-free), for OctahedralClenshawGrid, OctaHEALPixGrid only

          • quadrant_rotation::NTuple{4, Int64}

          • matrix_quadrant::NTuple{4, Tuple{Int64, Int64}}

          • output_Grid::Type{<:SpeedyWeather.RingGrids.AbstractFullGrid}: [OPTION] the grid used for output, full grids only

          • nlat_half::Int64: [OPTION] the resolution of the output grid, default: same nlat_half as in the dynamical core

          • nlon::Int64

          • nlat::Int64

          • npoints::Int64

          • nlev::Int64

          • interpolator::SpeedyWeather.RingGrids.AbstractInterpolator

          • u::Matrix{NF} where NF<:Union{Float32, Float64}

          • v::Matrix{NF} where NF<:Union{Float32, Float64}

          • vor::Matrix{NF} where NF<:Union{Float32, Float64}

          • div::Matrix{NF} where NF<:Union{Float32, Float64}

          • temp::Matrix{NF} where NF<:Union{Float32, Float64}

          • pres::Matrix{NF} where NF<:Union{Float32, Float64}

          • humid::Matrix{NF} where NF<:Union{Float32, Float64}

          • precip_cond::Matrix{NF} where NF<:Union{Float32, Float64}

          • precip_conv::Matrix{NF} where NF<:Union{Float32, Float64}

          source
          SpeedyWeather.PrimitiveDryModelType

          The PrimitiveDryModel struct holds all other structs that contain precalculated constants, whether scalars or arrays that do not change throughout model integration.

          • spectral_grid::SpectralGrid: dictates resolution for many other components

          • planet::SpeedyWeather.AbstractPlanet: contains physical and orbital characteristics

          • atmosphere::SpeedyWeather.AbstractAtmosphere

          • initial_conditions::SpeedyWeather.InitialConditions

          • orography::SpeedyWeather.AbstractOrography{NF} where NF<:AbstractFloat

          • physics::Bool

          • boundary_layer_drag::SpeedyWeather.BoundaryLayerDrag{NF} where NF<:AbstractFloat

          • temperature_relaxation::SpeedyWeather.TemperatureRelaxation{NF} where NF<:AbstractFloat

          • static_energy_diffusion::SpeedyWeather.VerticalDiffusion{NF} where NF<:AbstractFloat

          • vertical_advection::SpeedyWeather.VerticalAdvection{NF} where NF<:AbstractFloat

          • time_stepping::SpeedyWeather.TimeStepper{NF} where NF<:AbstractFloat

          • spectral_transform::SpectralTransform

          • horizontal_diffusion::SpeedyWeather.HorizontalDiffusion{NF} where NF<:AbstractFloat

          • implicit::SpeedyWeather.AbstractImplicit{NF} where NF<:AbstractFloat

          • geometry::Geometry

          • constants::DynamicsConstants

          • device_setup::SpeedyWeather.DeviceSetup

          • output::SpeedyWeather.AbstractOutputWriter

          • feedback::SpeedyWeather.AbstractFeedback

          source
          SpeedyWeather.PrimitiveWetModelType

          The PrimitiveDryModel struct holds all other structs that contain precalculated constants, whether scalars or arrays that do not change throughout model integration.

          • spectral_grid::SpectralGrid: dictates resolution for many other components

          • planet::SpeedyWeather.AbstractPlanet: contains physical and orbital characteristics

          • atmosphere::SpeedyWeather.AbstractAtmosphere

          • initial_conditions::SpeedyWeather.InitialConditions

          • orography::SpeedyWeather.AbstractOrography{NF} where NF<:AbstractFloat

          • physics::Bool

          • thermodynamics::SpeedyWeather.Thermodynamics{NF} where NF<:AbstractFloat

          • boundary_layer_drag::SpeedyWeather.BoundaryLayerDrag{NF} where NF<:AbstractFloat

          • temperature_relaxation::SpeedyWeather.TemperatureRelaxation{NF} where NF<:AbstractFloat

          • static_energy_diffusion::SpeedyWeather.VerticalDiffusion{NF} where NF<:AbstractFloat

          • large_scale_condensation::SpeedyWeather.AbstractCondensation{NF} where NF<:AbstractFloat

          • vertical_advection::SpeedyWeather.VerticalAdvection{NF} where NF<:AbstractFloat

          • time_stepping::SpeedyWeather.TimeStepper{NF} where NF<:AbstractFloat

          • spectral_transform::SpectralTransform

          • horizontal_diffusion::SpeedyWeather.HorizontalDiffusion{NF} where NF<:AbstractFloat

          • implicit::SpeedyWeather.AbstractImplicit{NF} where NF<:AbstractFloat

          • geometry::Geometry

          • constants::DynamicsConstants

          • device_setup::SpeedyWeather.DeviceSetup

          • output::SpeedyWeather.AbstractOutputWriter

          • feedback::SpeedyWeather.AbstractFeedback

          source
          SpeedyWeather.ShallowWaterModelType

          The ShallowWaterModel struct holds all other structs that contain precalculated constants, whether scalars or arrays that do not change throughout model integration.

          • spectral_grid::SpectralGrid: dictates resolution for many other components

          • planet::SpeedyWeather.AbstractPlanet: contains physical and orbital characteristics

          • atmosphere::SpeedyWeather.AbstractAtmosphere

          • forcing::SpeedyWeather.AbstractForcing{NF} where NF<:AbstractFloat

          • initial_conditions::SpeedyWeather.InitialConditions

          • orography::SpeedyWeather.AbstractOrography{NF} where NF<:AbstractFloat

          • time_stepping::SpeedyWeather.TimeStepper{NF} where NF<:AbstractFloat

          • spectral_transform::SpectralTransform

          • horizontal_diffusion::SpeedyWeather.HorizontalDiffusion{NF} where NF<:AbstractFloat

          • implicit::SpeedyWeather.AbstractImplicit{NF} where NF<:AbstractFloat

          • geometry::Geometry

          • constants::DynamicsConstants

          • device_setup::SpeedyWeather.DeviceSetup

          • output::SpeedyWeather.AbstractOutputWriter

          • feedback::SpeedyWeather.AbstractFeedback

          source
          SpeedyWeather.SimulationType

          Simulation is a container struct to be used with run!(::Simulation). It contains

          • prognostic_variables::PrognosticVariables: define the current state of the model

          • diagnostic_variables::DiagnosticVariables: contain the tendencies and auxiliary arrays to compute them

          • model::SpeedyWeather.ModelSetup: all parameters, constant at runtime

          source
          SpeedyWeather.SpectralGridType

          Defines the horizontal spectral resolution and corresponding grid and the vertical coordinate for SpeedyWeather.jl. Options are

          • NF::Type{<:AbstractFloat}: number format used throughout the model

          • trunc::Int64: horizontal resolution as the maximum degree of spherical harmonics

          • Grid::Type{<:SpeedyWeather.RingGrids.AbstractGrid}: horizontal grid used for calculations in grid-point space

          • dealiasing::Float64: how to match spectral with grid resolution: dealiasing factor, 1=linear, 2=quadratic, 3=cubic grid

          • radius::Float64: radius of the sphere [m]

          • nlat_half::Int64: number of latitude rings on one hemisphere (Equator incl)

          • npoints::Int64: total number of grid points in the horizontal

          • nlev::Int64: number of vertical levels

          • vertical_coordinates::SpeedyWeather.VerticalCoordinates: coordinates used to discretize the vertical

          nlat_half and npoints should not be chosen but are derived from trunc, Grid and dealiasing.

          source
          SpeedyWeather.SpeedyCondensationType

          Large scale condensation as in Fortran SPEEDY with default values from therein.

          • nlev::Int64: number of vertical levels

          • threshold_boundary_layer::Float64: Relative humidity threshold for boundary layer

          • threshold_range::Float64: Vertical range of relative humidity threshold

          • threshold_max::Float64: Maximum relative humidity threshold [1]

          • time_scale::Float64: Relaxation time for humidity [hrs]

          • n_stratosphere_levels::Base.RefValue{Int64}

          • humid_tend_max::Vector{NF} where NF<:AbstractFloat

          • relative_threshold::Vector{NF} where NF<:AbstractFloat

          source
          SpeedyWeather.SpeedyTransforms.SpectralTransformMethod
          SpectralTransform(
          +    spectral_grid::SpectralGrid;
          +    recompute_legendre,
          +    kwargs...
          +) -> SpectralTransform
          +

          Generator function for a SpectralTransform struct pulling in parameters from a SpectralGrid struct.

          source
          SpeedyWeather.StartFromFileType

          Restart from a previous SpeedyWeather.jl simulation via the restart file restart.jld2 Applies interpolation in the horizontal but not in the vertical. restart.jld2 is identified by

          • path::String: path for restart file

          • id::Union{Int64, String}: run_id of restart file in run_????/restart.jld2

          source
          SpeedyWeather.StartWithRandomVorticityType

          Start with random vorticity as initial conditions

          • power::Float64: Power of the spectral distribution k^power

          • amplitude::Float64: (approximate) amplitude in [1/s], used as standard deviation of spherical harmonic coefficients

          source
          SpeedyWeather.StaticEnergyDiffusionType

          Diffusion of dry static energy: A relaxation towards a reference gradient of static energy wrt to geopotential, see Fortran SPEEDY documentation.

          • time_scale::Float64: time scale [hrs] for strength

          • static_energy_lapse_rate::Float64: [1] ∂SE/∂Φ, vertical gradient of static energy SE with geopotential Φ

          • Fstar::Base.RefValue{NF} where NF<:AbstractFloat

          source
          SpeedyWeather.TendenciesType
          Tendencies{Grid<:AbstractGrid,NF<:AbstractFloat}

          Struct holding the tendencies of the prognostic spectral variables for a given layer.

          source
          SpeedyWeather.ZonalJetType

          Create a struct that contains all parameters for the Galewsky et al, 2004 zonal jet intitial conditions for the shallow water model. Default values as in Galewsky.

          • latitude::Float64: jet latitude [˚N]

          • width::Float64: jet width [˚], default ≈ 19.29˚

          • umax::Float64: jet maximum velocity [m/s]

          • perturb_lat::Float64: perturbation latitude [˚N], position in jet by default

          • perturb_lon::Float64: perturbation longitude [˚E]

          • perturb_xwidth::Float64: perturbation zonal extent [˚], default ≈ 19.1˚

          • perturb_ywidth::Float64: perturbation meridinoal extent [˚], default ≈ 3.8˚

          • perturb_height::Float64: perturbation amplitude [m]

          source
          SpeedyWeather.ZonalRidgeType

          Zonal ridge orography after Jablonowski and Williamson, 2006.

          • η₀::Float64: conversion from σ to Jablonowski's ηᵥ-coordinates

          • u₀::Float64: max amplitude of zonal wind [m/s] that scales orography height

          • orography::SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat: height [m] on grid-point space.

          • geopot_surf::LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat: surface geopotential, height*gravity [m²/s²]

          source
          SpeedyWeather.ZonalRidgeMethod
          ZonalRidge(spectral_grid::SpectralGrid; kwargs...) -> Any
          +

          Generator function pulling the resolution information from spectral_grid.

          source
          SpeedyWeather.ZonalWindType

          Create a struct that contains all parameters for the Jablonowski and Williamson, 2006 intitial conditions for the primitive equation model. Default values as in Jablonowski.

          • η₀::Float64: conversion from σ to Jablonowski's ηᵥ-coordinates

          • u₀::Float64: max amplitude of zonal wind [m/s]

          • perturb_lat::Float64: perturbation centred at [˚N]

          • perturb_lon::Float64: perturbation centred at [˚E]

          • perturb_uₚ::Float64: perturbation strength [m/s]

          • perturb_radius::Float64: radius of Gaussian perturbation in units of Earth's radius [1]

          • ΔT::Float64: temperature difference used for stratospheric lapse rate [K], Jablonowski uses ΔT = 4.8e5 [K]

          • Tmin::Float64: minimum temperature [K] of profile

          • pressure_on_orography::Bool: initialize pressure given the atmosphere.lapse_rate on orography?

          source
          Base.copy!Method
          copy!(progn_new::PrognosticVariables, progn_old::PrognosticVariables)

          Copies entries of progn_old into progn_new. Only copies those variables that are present in the model of both progn_new and progn_old.

          source
          SpeedyWeather.DeviceMethod
          Device()

          Return default used device for internal purposes, either CPUDevice or GPUDevice if a GPU is available.

          source
          SpeedyWeather.DeviceArrayMethod
          DeviceArray(device::AbstractDevice, x)

          Adapts x to a CuArray when device<:GPUDevice is used, otherwise a regular Array. Uses adapt, thus also can return SubArrays etc.

          source
          SpeedyWeather.DeviceArrayNotAdaptMethod
          DeviceArrayNotAdapt(device::AbstractDevice, x)

          Returns a CuArray when device<:GPUDevice is used, otherwise a regular Array. Doesn't uses adapt, therefore always returns CuArray/Array

          source
          SpeedyWeather.SpeedyTransforms.gridded!Method
          gridded!(
          +    diagn::DiagnosticVariables,
          +    progn::PrognosticVariables,
          +    lf::Int64,
          +    model::SpeedyWeather.ModelSetup
          +)
          +

          Propagate the spectral state of progn to diagn using time step/leapfrog index lf. Function barrier that calls gridded! for the respective model.

          source
          SpeedyWeather.SpeedyTransforms.gridded!Method
          gridded!(
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
          +    progn::SpeedyWeather.PrognosticLayerTimesteps,
          +    lf::Int64,
          +    model::Barotropic
          +)
          +

          Propagate the spectral state of the prognostic variables progn to the diagnostic variables in diagn for the barotropic vorticity model. Updates grid vorticity, spectral stream function and spectral and grid velocities u,v.

          source
          SpeedyWeather.SpeedyTransforms.gridded!Method
          gridded!(
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
          +    progn::SpeedyWeather.PrognosticLayerTimesteps,
          +    lf::Int64,
          +    model::PrimitiveEquation
          +)
          +

          Propagate the spectral state of the prognostic variables progn to the diagnostic variables in diagn for primitive equation models. Updates grid vorticity, grid divergence, grid temperature, pressure (pres_grid) and the velocities u,v.

          source
          SpeedyWeather.SpeedyTransforms.gridded!Method
          gridded!(
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
          +    progn::SpeedyWeather.PrognosticLayerTimesteps,
          +    lf::Int64,
          +    model::ShallowWater
          +)
          +

          Propagate the spectral state of the prognostic variables progn to the diagnostic variables in diagn for the shallow water model. Updates grid vorticity, grid divergence, grid interface displacement (pres_grid) and the velocities u,v.

          source
          SpeedyWeather._scale_lat!Method
          _scale_lat!(
          +    A::SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},
          +    v::AbstractVector
          +)
          +

          Generic latitude scaling applied to A in-place with latitude-like vector v.

          source
          SpeedyWeather.allocateMethod
          allocate(
          +    _::Type{PrognosticVariables},
          +    spectral_grid::SpectralGrid,
          +    _::Type{Model<:SpeedyWeather.ModelSetup}
          +) -> PrognosticVariables
          +
          source
          SpeedyWeather.bernoulli_potential!Method
          bernoulli_potential!(
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF},
          +    S::SpectralTransform
          +) -> LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat
          +

          Computes the Laplace operator ∇² of the Bernoulli potential B in spectral space.

          1. computes the kinetic energy KE = ½(u²+v²) on the grid
          2. transforms KE to spectral space
          3. adds geopotential for the Bernoulli potential in spectral space
          4. takes the Laplace operator.

          This version is used for both ShallowWater and PrimitiveEquation, only the geopotential calculation in geopotential! differs.

          source
          SpeedyWeather.boundary_layer_drag!Method
          boundary_layer_drag!(
          +    column::ColumnVariables,
          +    scheme::LinearDrag
          +)
          +

          Compute tendency for boundary layer drag of a column and add to its tendencies fields

          source
          SpeedyWeather.create_output_folderMethod
          create_output_folder(
          +    path::String,
          +    id::Union{Int64, String}
          +) -> String
          +

          Creates a new folder run_* with the identification id. Also returns the full path run_path of that folder.

          source
          SpeedyWeather.default_sigma_coordinatesMethod
          default_sigma_coordinates(nlev::Integer) -> Any
          +

          Vertical sigma coordinates defined by their nlev+1 half levels σ_levels_half. Sigma coordinates are fraction of surface pressure (p/p0) and are sorted from top (stratosphere) to bottom (surface). The first half level is at 0 the last at 1. Evaluate a generalised logistic function with coefficients in P for the distribution of values in between. Default coefficients follow the L31 configuration historically used at ECMWF.

          source
          SpeedyWeather.dry_static_energy!Method
          dry_static_energy!(
          +    column::ColumnVariables,
          +    constants::DynamicsConstants
          +)
          +

          Compute the dry static energy SE = cₚT + Φ (latent heat times temperature plus geopotential) for the column.

          source
          SpeedyWeather.dynamics_tendencies!Function
          dynamics_tendencies!(
          +    diagn::DiagnosticVariables,
          +    progn::PrognosticVariables,
          +    model::PrimitiveEquation
          +) -> Any
          +dynamics_tendencies!(
          +    diagn::DiagnosticVariables,
          +    progn::PrognosticVariables,
          +    model::PrimitiveEquation,
          +    lf::Int64
          +) -> Any
          +

          Calculate all tendencies for the PrimitiveEquation model (wet or dry).

          source
          SpeedyWeather.dynamics_tendencies!Method
          dynamics_tendencies!(
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
          +    time::Dates.DateTime,
          +    model::Barotropic
          +)
          +

          Calculate all tendencies for the BarotropicModel.

          source
          SpeedyWeather.dynamics_tendencies!Method
          dynamics_tendencies!(
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
          +    surface::SpeedyWeather.SurfaceVariables,
          +    pres::LowerTriangularMatrix,
          +    time::Dates.DateTime,
          +    model::ShallowWater
          +)
          +

          Calculate all tendencies for the ShallowWaterModel.

          source
          SpeedyWeather.first_timesteps!Method
          first_timesteps!(
          +    progn::PrognosticVariables,
          +    diagn::DiagnosticVariables,
          +    model::SpeedyWeather.ModelSetup,
          +    output::SpeedyWeather.AbstractOutputWriter
          +) -> typeof(time)
          +

          Performs the first two initial time steps (Euler forward, unfiltered leapfrog) to populate the prognostic variables with two time steps (t=0,Δt) that can then be used in the normal leap frogging.

          source
          SpeedyWeather.flux_divergence!Method
          flux_divergence!(
          +    A_tend::LowerTriangularMatrix{Complex{NF}},
          +    A_grid::SpeedyWeather.RingGrids.AbstractGrid{NF},
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF},
          +    G::Geometry{NF},
          +    S::SpectralTransform{NF};
          +    add,
          +    flipsign
          +)
          +

          Computes ∇⋅((u,v)*A) with the option to add/overwrite A_tend and to flip_sign of the flux divergence by doing so.

          • A_tend = ∇⋅((u,v)*A) for add=false, flip_sign=false
          • A_tend = -∇⋅((u,v)*A) for add=false, flip_sign=true
          • A_tend += ∇⋅((u,v)*A) for add=true, flip_sign=false
          • A_tend -= ∇⋅((u,v)*A) for add=true, flip_sign=true
          source
          SpeedyWeather.fluxes_to_tendencies!Method
          fluxes_to_tendencies!(
          +    column::ColumnVariables,
          +    geometry::Geometry,
          +    constants::DynamicsConstants
          +)
          +

          Convert the fluxes on half levels to tendencies on full levels.

          source
          SpeedyWeather.geopotential!Method
          geopotential!(
          +    diagn::DiagnosticVariables,
          +    O::SpeedyWeather.AbstractOrography,
          +    C::DynamicsConstants
          +)
          +

          Compute spectral geopotential geopot from spectral temperature temp and spectral surface geopotential geopot_surf (orography*gravity).

          source
          SpeedyWeather.geopotential!Method
          geopotential!(
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
          +    pres::LowerTriangularMatrix,
          +    C::DynamicsConstants
          +) -> Any
          +

          calculates the geopotential in the ShallowWaterModel as g*η, i.e. gravity times the interface displacement (field pres)

          source
          SpeedyWeather.geopotential!Method
          geopotential!(temp::Vector, C::DynamicsConstants) -> Vector
          +

          Calculate the geopotential based on temp in a single column. This exclues the surface geopotential that would need to be added to the returned vector. Function not used in the dynamical core but for post-processing and analysis.

          source
          SpeedyWeather.get_column!Method
          get_column!(
          +    C::ColumnVariables,
          +    D::DiagnosticVariables,
          +    ij::Integer,
          +    jring::Integer,
          +    G::Geometry
          +)
          +

          Update C::ColumnVariables by copying the prognostic variables from D::DiagnosticVariables at gridpoint index ij. Provide G::Geometry for coordinate information.

          source
          SpeedyWeather.get_run_idMethod
          get_run_id(path::String, id::String) -> String
          +

          Checks existing run_???? folders in path to determine a 4-digit id number by counting up. E.g. if folder run_0001 exists it will return the string "0002". Does not create a folder for the returned run id.

          source
          SpeedyWeather.get_thermodynamics!Method
          get_thermodynamics!(
          +    column::ColumnVariables,
          +    model::PrimitiveWet
          +)
          +

          Calculate thermodynamic quantities like saturation vapour pressure, saturation specific humidity, dry static energy, moist static energy and saturation moist static energy from the prognostic column variables.

          source
          SpeedyWeather.get_varMethod
          get_var(progn::PrognosticVariables, var_name::Symbol; lf::Integer=1)

          Returns the prognostic variable var_name at leapfrog index lf as a Vector{LowerTriangularMatrices}.

          source
          SpeedyWeather.hasMethod
          has(
          +    M::Type{<:SpeedyWeather.ModelSetup},
          +    var_name::Symbol
          +) -> Bool
          +

          Returns true if the model M has a prognostic variable var_name, false otherwise. The default fallback is that all variables are included.

          source
          SpeedyWeather.horizontal_diffusion!Function
          horizontal_diffusion!(
          +    progn::SpeedyWeather.PrognosticLayerTimesteps,
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
          +    model::PrimitiveEquation
          +) -> Union{Nothing, Bool}
          +horizontal_diffusion!(
          +    progn::SpeedyWeather.PrognosticLayerTimesteps,
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
          +    model::PrimitiveEquation,
          +    lf::Int64
          +) -> Union{Nothing, Bool}
          +

          Apply horizontal diffusion applied to vorticity, diffusion and temperature in the PrimitiveEquation models. Uses the constant diffusion for temperature but possibly adaptive diffusion for vorticity and divergence.

          source
          SpeedyWeather.horizontal_diffusion!Function
          horizontal_diffusion!(
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
          +    progn::SpeedyWeather.PrognosticLayerTimesteps,
          +    model::Barotropic
          +)
          +horizontal_diffusion!(
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
          +    progn::SpeedyWeather.PrognosticLayerTimesteps,
          +    model::Barotropic,
          +    lf::Int64
          +)
          +

          Apply horizontal diffusion to vorticity in the Barotropic models.

          source
          SpeedyWeather.horizontal_diffusion!Function
          horizontal_diffusion!(
          +    progn::SpeedyWeather.PrognosticLayerTimesteps,
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
          +    model::ShallowWater
          +)
          +horizontal_diffusion!(
          +    progn::SpeedyWeather.PrognosticLayerTimesteps,
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
          +    model::ShallowWater,
          +    lf::Int64
          +)
          +

          Apply horizontal diffusion to vorticity and diffusion in the ShallowWater models.

          source
          SpeedyWeather.horizontal_diffusion!Method
          horizontal_diffusion!(
          +    tendency::LowerTriangularMatrix{Complex{NF<:AbstractFloat}},
          +    A::LowerTriangularMatrix{Complex{NF<:AbstractFloat}},
          +    ∇²ⁿ_expl::AbstractArray{NF<:AbstractFloat, 1},
          +    ∇²ⁿ_impl::AbstractArray{NF<:AbstractFloat, 1}
          +)
          +

          Apply horizontal diffusion to a 2D field A in spectral space by updating its tendency tendency with an implicitly calculated diffusion term. The implicit diffusion of the next time step is split into an explicit part ∇²ⁿ_expl and an implicit part ∇²ⁿ_impl, such that both can be calculated in a single forward step by using A as well as its tendency tendency.

          source
          SpeedyWeather.implicit_correction!Method
          implicit_correction!(
          +    diagn::DiagnosticVariables,
          +    implicit::SpeedyWeather.ImplicitPrimitiveEq,
          +    progn::PrognosticVariables
          +) -> Any
          +

          Apply the implicit corrections to dampen gravity waves in the primitive equation models.

          source
          SpeedyWeather.implicit_correction!Method
          implicit_correction!(
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF},
          +    progn::SpeedyWeather.PrognosticLayerTimesteps{NF},
          +    diagn_surface::SpeedyWeather.SurfaceVariables{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF},
          +    progn_surface::SpeedyWeather.PrognosticSurfaceTimesteps{NF},
          +    implicit::SpeedyWeather.ImplicitShallowWater
          +)
          +

          Apply correction to the tendencies in diagn to prevent the gravity waves from amplifying. The correction is implicitly evaluated using the parameter implicit.α to switch between forward, centered implicit or backward evaluation of the gravity wave terms.

          source
          SpeedyWeather.initial_conditions!Method
          initial_conditions!(
          +    progn_new::PrognosticVariables,
          +    initial_conditions::StartFromFile,
          +    model::SpeedyWeather.ModelSetup
          +) -> PrognosticVariables
          +

          Restart from a previous SpeedyWeather.jl simulation via the restart file restart.jld2 Applies interpolation in the horizontal but not in the vertical.

          source
          SpeedyWeather.initial_conditions!Method
          initial_conditions!(
          +    progn::PrognosticVariables,
          +    initial_conditions::ZonalJet,
          +    model::ShallowWater
          +) -> LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat
          +

          Initial conditions from Galewsky, 2004, Tellus

          source
          SpeedyWeather.initial_conditions!Method
          initial_conditions!(
          +    progn::PrognosticVariables{NF},
          +    initial_conditions::StartWithRandomVorticity,
          +    model::SpeedyWeather.ModelSetup
          +)
          +

          Start with random vorticity as initial conditions

          source
          SpeedyWeather.initial_conditions!Method
          initial_conditions!(
          +    progn::PrognosticVariables{NF},
          +    initial_conditions::ZonalWind,
          +    model::PrimitiveEquation
          +)
          +

          Initial conditions from Jablonowski and Williamson, 2006, QJR Meteorol. Soc

          source
          SpeedyWeather.initialize!Function
          initialize!(
          +    scheme::HyperDiffusion,
          +    k::Int64,
          +    G::Geometry,
          +    L::SpeedyWeather.TimeStepper
          +)
          +initialize!(
          +    scheme::HyperDiffusion,
          +    k::Int64,
          +    G::Geometry,
          +    L::SpeedyWeather.TimeStepper,
          +    vor_max::Real
          +)
          +

          Precomputes the hyper diffusion terms in scheme for layer k based on the model time step in L, the vertical level sigma level in G, and the current (absolute) vorticity maximum level vor_max

          source
          SpeedyWeather.initialize!Method
          initialize!(model::Barotropic) -> SpeedyWeather.Simulation
          +

          Calls all initialize! functions for components of model, except for model.output and model.feedback which are always called at in time_stepping!.

          source
          SpeedyWeather.initialize!Method
          initialize!(
          +    orog::EarthOrography,
          +    P::SpeedyWeather.AbstractPlanet,
          +    S::SpectralTransform,
          +    G::Geometry
          +) -> LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat
          +

          Initialize the arrays orography,geopot_surf in orog by reading the orography field from file.

          source
          SpeedyWeather.initialize!Method
          initialize!(
          +    feedback::Feedback,
          +    clock::SpeedyWeather.Clock,
          +    model::SpeedyWeather.ModelSetup
          +) -> Union{Nothing, IOStream}
          +

          Initializes the a Feedback struct.

          source
          SpeedyWeather.initialize!Method
          initialize!(scheme::HeldSuarez, model::PrimitiveEquation)
          +

          initialize the HeldSuarez temperature relaxation by precomputing terms for the equilibrium temperature Teq.

          source
          SpeedyWeather.initialize!Method
          initialize!(
          +    scheme::HyperDiffusion,
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
          +    G::Geometry,
          +    L::SpeedyWeather.TimeStepper
          +)
          +

          Pre-function to other initialize!(::HyperDiffusion) initialisors that calculates the (absolute) vorticity maximum for the layer of diagn.

          source
          SpeedyWeather.initialize!Method
          initialize!(
          +    scheme::HyperDiffusion,
          +    model::SpeedyWeather.ModelSetup
          +)
          +

          Precomputes the hyper diffusion terms in scheme based on the model time step, and possibly with a changing strength/power in the vertical.

          source
          SpeedyWeather.initialize!Method
          initialize!(
          +    scheme::HyperDiffusion,
          +    L::SpeedyWeather.TimeStepper
          +)
          +

          Precomputes the 2D hyper diffusion terms in scheme based on the model time step.

          source
          SpeedyWeather.initialize!Method
          initialize!(
          +    scheme::JablonowskiRelaxation,
          +    model::PrimitiveEquation
          +)
          +

          initialize the JablonowskiRelaxation temperature relaxation by precomputing terms for the equilibrium temperature Teq and the frequency (strength of relaxation).

          source
          SpeedyWeather.initialize!Method
          initialize!(scheme::LinearDrag, model::PrimitiveEquation)
          +

          Precomputes the drag coefficients for this BoundaryLayerDrag scheme.

          source
          SpeedyWeather.initialize!Method
          initialize!(
          +    scheme::NoTemperatureRelaxation,
          +    model::PrimitiveEquation
          +)
          +

          just passes, does not need any initialization.

          source
          SpeedyWeather.initialize!Method
          initialize!(model::PrimitiveDry) -> SpeedyWeather.Simulation
          +

          Calls all initialize! functions for components of model, except for model.output and model.feedback which are always called at in time_stepping! and model.implicit which is done in first_timesteps!.

          source
          SpeedyWeather.initialize!Method
          initialize!(model::PrimitiveWet) -> SpeedyWeather.Simulation
          +

          Calls all initialize! functions for components of model, except for model.output and model.feedback which are always called at in time_stepping! and model.implicit which is done in first_timesteps!.

          source
          SpeedyWeather.initialize!Method
          initialize!(model::ShallowWater) -> SpeedyWeather.Simulation
          +

          Calls all initialize! functions for components of model, except for model.output and model.feedback which are always called at in time_stepping! and model.implicit which is done in first_timesteps!.

          source
          SpeedyWeather.initialize!Method
          initialize!(
          +    scheme::SpeedyCondensation,
          +    model::PrimitiveEquation
          +)
          +

          Initialize the SpeedyCondensation scheme.

          source
          SpeedyWeather.initialize!Method
          initialize!(
          +    clock::SpeedyWeather.Clock,
          +    time_stepping::SpeedyWeather.TimeStepper
          +) -> SpeedyWeather.Clock
          +

          Initialize the clock with the time step Δt in the time_stepping.

          source
          SpeedyWeather.initialize!Method
          initialize!(
          +    implicit::SpeedyWeather.ImplicitPrimitiveEq,
          +    i::Integer,
          +    dt::Real,
          +    diagn::DiagnosticVariables,
          +    geometry::Geometry,
          +    constants::DynamicsConstants
          +)
          +

          Reinitialize implicit occasionally based on time step i and implicit.recalculate.

          source
          SpeedyWeather.initialize!Method
          initialize!(
          +    implicit::SpeedyWeather.ImplicitPrimitiveEq,
          +    dt::Real,
          +    diagn::DiagnosticVariables,
          +    geometry::Geometry,
          +    constants::DynamicsConstants
          +)
          +

          Initialize the implicit terms for the PrimitiveEquation models.

          source
          SpeedyWeather.initialize!Method
          initialize!(
          +    implicit::SpeedyWeather.ImplicitShallowWater,
          +    dt::Real,
          +    constants::DynamicsConstants
          +)
          +

          Update the implicit terms in implicit for the shallow water model as they depend on the time step dt.

          source
          SpeedyWeather.initialize!Method
          initialize!(
          +    orog::ZonalRidge,
          +    P::SpeedyWeather.AbstractPlanet,
          +    S::SpectralTransform,
          +    G::Geometry
          +) -> LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat
          +

          Initialize the arrays orography,geopot_surf in orog following Jablonowski and Williamson, 2006.

          source
          SpeedyWeather.initialize!Method
          initialize!(
          +    output::OutputWriter{output_NF, Model},
          +    feedback::SpeedyWeather.AbstractFeedback,
          +    time_stepping::SpeedyWeather.TimeStepper,
          +    diagn::DiagnosticVariables,
          +    model
          +)
          +

          Creates a netcdf file on disk and the corresponding netcdf_file object preallocated with output variables and dimensions. write_output! then writes consecuitive time steps into this file.

          source
          SpeedyWeather.initialize!Method
          initialize!(
          +    scheme::SpeedyWeather.StaticEnergyDiffusion{NF},
          +    model::PrimitiveEquation
          +) -> Any
          +

          Initialize dry static energy diffusion.

          source
          SpeedyWeather.initialize_geopotentialMethod
          initialize_geopotential(
          +    σ_levels_full::Vector,
          +    σ_levels_half::Vector,
          +    R_dry::Real
          +) -> Tuple{Vector{Float64}, Vector{Float64}}
          +

          Precomputes constants for the vertical integration of the geopotential, defined as

          Φ_{k+1/2} = Φ_{k+1} + R*T_{k+1}*(ln(p_{k+1}) - ln(p_{k+1/2})) (half levels) Φ_k = Φ_{k+1/2} + R*T_k*(ln(p_{k+1/2}) - ln(p_k)) (full levels)

          Same formula but k → k-1/2.

          source
          SpeedyWeather.large_scale_condensation!Method
          large_scale_condensation!(
          +    column::ColumnVariables{NF},
          +    scheme::SpeedyCondensation,
          +    geometry::Geometry,
          +    constants::DynamicsConstants,
          +    atmosphere::SpeedyWeather.AbstractAtmosphere,
          +    time_stepping::SpeedyWeather.TimeStepper
          +)
          +

          Large-scale condensation for a column by relaxation back to a reference relative humidity if larger than that. Calculates the tendencies for specific humidity and temperature and integrates the large-scale precipitation vertically for output.

          source
          SpeedyWeather.launch_kernel!Method
          launch_kernel!(device_setup::DeviceSetup, kernel!, ndrange, kernel_args...)

          Launches the kernel! on the device_setup with ndrange computations over the kernel and arguments kernel_args

          source
          SpeedyWeather.leapfrog!Method
          leapfrog!(
          +    A_old::LowerTriangularMatrix{Complex{NF<:AbstractFloat}},
          +    A_new::LowerTriangularMatrix{Complex{NF<:AbstractFloat}},
          +    tendency::LowerTriangularMatrix{Complex{NF<:AbstractFloat}},
          +    dt::Real,
          +    lf::Int64,
          +    L::Leapfrog{NF<:AbstractFloat}
          +)
          +

          Performs one leapfrog time step with (lf=2) or without (lf=1) Robert+Williams filter (see Williams (2009), Montly Weather Review, Eq. 7-9).

          source
          SpeedyWeather.linear_pressure_gradient!Method
          linear_pressure_gradient!(
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
          +    surface::SpeedyWeather.PrognosticSurfaceTimesteps,
          +    lf::Int64,
          +    C::DynamicsConstants,
          +    I::SpeedyWeather.ImplicitPrimitiveEq
          +) -> LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat
          +

          Add the linear contribution of the pressure gradient to the geopotential. The pressure gradient in the divergence equation takes the form

          -∇⋅(Rd*Tᵥ*∇lnpₛ) = -∇⋅(Rd*Tᵥ'*∇lnpₛ) - ∇²(Rd*Tₖ*lnpₛ)

          So that the second term inside the Laplace operator can be added to the geopotential. Rd is the gas constant, Tᵥ the virtual temperature and Tᵥ' its anomaly wrt to the average or reference temperature Tₖ, lnpₛ is the logarithm of surface pressure.

          source
          SpeedyWeather.linear_virtual_temperature!Method
          linear_virtual_temperature!(
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
          +    progn::SpeedyWeather.PrognosticLayerTimesteps,
          +    constants::DynamicsConstants,
          +    lf::Int64
          +) -> Any
          +

          Calculates a linearised virtual temperature Tᵥ as

          Tᵥ = T + Tₖμq

          With absolute temperature T, layer-average temperarture Tₖ (computed in temperature_average!), specific humidity q and

          μ = (1-ξ)/ξ, ξ = R_dry/R_vapour.

          in spectral space.

          source
          SpeedyWeather.linear_virtual_temperature!Method
          linear_virtual_temperature!(
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
          +    progn::SpeedyWeather.PrognosticLayerTimesteps,
          +    model::PrimitiveDry,
          +    lf::Integer
          +) -> LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat
          +

          Linear virtual temperature for model::PrimitiveDry: Just copy over arrays from temp to temp_virt at timestep lf in spectral space as humidity is zero in this model.

          source
          SpeedyWeather.load_trajectoryMethod
          load_trajectory(
          +    var_name::Union{String, Symbol},
          +    model::SpeedyWeather.ModelSetup
          +) -> Any
          +

          Loads a var_name trajectory of the model M that has been saved in a netCDF file during the time stepping.

          source
          SpeedyWeather.moist_static_energy!Method
          moist_static_energy!(
          +    column::ColumnVariables,
          +    thermodynamics::SpeedyWeather.Thermodynamics
          +)
          +

          Compute the moist static energy

          MSE = SE + Lc*Q = cₚT + Φ + Lc*Q

          with the static energy SE, the latent heat of condensation Lc, the geopotential Φ. As well as the saturation moist static energy which replaces Q with Q_sat

          source
          SpeedyWeather.nansMethod
          A = nans(T,dims...)

          Allocate array A with NaNs of type T. Similar to zeros(T,dims...).

          source
          SpeedyWeather.nar_detection!Method
          nar_detection!(
          +    feedback::Feedback,
          +    progn::PrognosticVariables
          +) -> Union{Nothing, Bool}
          +

          Detect NaR (Not-a-Real) in the prognostic variables.

          source
          SpeedyWeather.parameterization_tendencies!Method
          parameterization_tendencies!(
          +    diagn::DiagnosticVariables,
          +    time::Dates.DateTime,
          +    model::PrimitiveEquation
          +) -> Any
          +

          Compute tendencies for u,v,temp,humid from physical parametrizations. Extract for each vertical atmospheric column the prognostic variables (stored in diagn as they are grid-point transformed), loop over all grid-points, compute all parametrizations on a single-column basis, then write the tendencies back into a horizontal field of tendencies.

          source
          SpeedyWeather.pressure_on_orography!Method
          pressure_on_orography!(
          +    progn::PrognosticVariables,
          +    model::PrimitiveEquation
          +)
          +

          Initialize surface pressure on orography by integrating the hydrostatic equation with the reference temperature lapse rate.

          source
          SpeedyWeather.readable_secsMethod
          readable_secs(secs::Real) -> Dates.CompoundPeriod
          +

          Returns Dates.CompoundPeriod rounding to either (days, hours), (hours, minutes), (minutes, seconds), or seconds with 1 decimal place accuracy for >10s and two for less. E.g.

          julia> readable_secs(12345)
          +3 hours, 26 minutes
          source
          SpeedyWeather.remaining_timeMethod
          remaining_time(p::ProgressMeter.Progress) -> String
          +

          Estimates the remaining time from a ProgresssMeter.Progress. Adapted from ProgressMeter.jl

          source
          SpeedyWeather.reset_column!Method
          reset_column!(column::ColumnVariables{NF})
          +

          Set the accumulators (tendencies but also vertical sums and similar) back to zero for column to be reused at other grid points.

          source
          SpeedyWeather.run!Method
          run!(
          +    simulation::SpeedyWeather.Simulation;
          +    initialize,
          +    n_days,
          +    startdate,
          +    output
          +) -> PrognosticVariables
          +

          Run a SpeedyWeather.jl simulation. The simulation.model is assumed to be initialized, otherwise use initialize=true as keyword argument.

          source
          SpeedyWeather.saturation_humidity!Method
          saturation_humidity!(
          +    column::ColumnVariables,
          +    thermodynamics::SpeedyWeather.Thermodynamics
          +)
          +

          Compute (1) the saturation vapour pressure as a function of temperature using the August-Roche-Magnus formula,

          eᵢ(T) = e₀ * exp(Cᵢ * (T - T₀) / (T - Tᵢ)),

          where T is in Kelvin and i = 1,2 for saturation with respect to water and ice, respectively. And (2) the saturation specific humidity according to the formula,

          0.622 * e / (p - (1 - 0.622) * e),

          where e is the saturation vapour pressure, p is the pressure, and 0.622 is the ratio of the molecular weight of water to dry air.

          source
          SpeedyWeather.scale!Method
          scale!(progn::PrognosticVariables, scale::Real) -> Real
          +

          Scales the prognostic variables vorticity and divergence with the Earth's radius which is used in the dynamical core.

          source
          SpeedyWeather.scale!Method
          scale!(
          +    progn::PrognosticVariables{NF},
          +    var::Symbol,
          +    scale::Real
          +)
          +

          Scale the variable var inside progn with scalar scale.

          source
          SpeedyWeather.set_pressure!Method
          set_pressure!(progn::PrognosticVariables{NF}, 
          +              pressure::AbstractMatrix, 
          +              Grid::Type{<:AbstractGrid}, 
          +              lf::Integer=1) where NF

          Sets the prognostic variable with the surface pressure in grid space at leapfrog index lf.

          source
          SpeedyWeather.set_pressure!Method
          set_pressure!(progn::PrognosticVariables{NF}, 
          +              pressure::LowerTriangularMatrix;
          +              lf::Integer=1) where NF

          Sets the prognostic variable with the surface pressure in spectral space at leapfrog index lf.

          source
          SpeedyWeather.set_pressure!Method
          set_pressure!(progn::PrognosticVariables{NF}, 
          +              pressure::AbstractGrid, 
          +              M::ModelSetup;
          +              lf::Integer=1) where NF

          Sets the prognostic variable with the surface pressure in grid space at leapfrog index lf.

          source
          SpeedyWeather.set_pressure!Method
          set_pressure!(progn::PrognosticVariables{NF}, 
          +              pressure::AbstractGrid, 
          +              lf::Integer=1) where NF

          Sets the prognostic variable with the surface pressure in grid space at leapfrog index lf.

          source
          SpeedyWeather.set_var!Method
          function set_var!(progn::PrognosticVariables{NF}, 
          +                  varname::Symbol, 
          +                  s::Number;
          +                  lf::Integer=1) where NF

          Sets all values of prognostic variable varname at leapfrog index lf to the scalar s.

          source
          SpeedyWeather.set_var!Method
          set_var!(progn::PrognosticVariables{NF}, 
          +         varname::Symbol, 
          +         var::Vector{<:AbstractMatrix}, 
          +         Grid::Type{<:AbstractGrid}=FullGaussianGrid;
          +         lf::Integer=1) where NF

          Sets the prognostic variable with the name varname in all layers at leapfrog index lf with values given in var a vector with all information for all layers in grid space.

          source
          SpeedyWeather.set_var!Method
          set_var!(progn::PrognosticVariables{NF},        
          +         varname::Symbol, 
          +         var::Vector{<:LowerTriangularMatrix};
          +         lf::Integer=1) where NF

          Sets the prognostic variable with the name varname in all layers at leapfrog index lf with values given in var a vector with all information for all layers in spectral space.

          source
          SpeedyWeather.set_var!Method
          set_var!(progn::PrognosticVariables{NF}, 
          +         varname::Symbol, 
          +         var::Vector{<:AbstractGrid}, 
          +         M::ModelSetup;
          +         lf::Integer=1) where NF

          Sets the prognostic variable with the name varname in all layers at leapfrog index lf with values given in var a vector with all information for all layers in grid space.

          source
          SpeedyWeather.set_var!Method
          set_var!(progn::PrognosticVariables{NF},        
          +         varname::Symbol, 
          +         var::Vector{<:AbstractGrid};
          +         lf::Integer=1) where NF

          Sets the prognostic variable with the name varname in all layers at leapfrog index lf with values given in var a vector with all information for all layers in grid space.

          source
          SpeedyWeather.speedstringMethod
          speedstring(sec_per_iter, dt_in_sec) -> String
          +

          define a ProgressMeter.speedstring method that also takes a time step dt_in_sec to translate sec/iteration to days/days-like speeds.

          source
          SpeedyWeather.surface_pressure_tendency!Method
          surface_pressure_tendency!( Prog::PrognosticVariables,
          +                            Diag::DiagnosticVariables,
          +                            lf::Int,
          +                            M::PrimitiveEquation)

          Computes the tendency of the logarithm of surface pressure as

          -(ū*px + v̄*py) - D̄

          with ū,v̄ being the vertically averaged velocities; px, py the gradients of the logarithm of surface pressure ln(p_s) and D̄ the vertically averaged divergence.

          1. Calculate ∇ln(p_s) in spectral space, convert to grid.
          2. Multiply ū,v̄ with ∇ln(p_s) in grid-point space, convert to spectral.
          3. D̄ is subtracted in spectral space.
          4. Set tendency of the l=m=0 mode to 0 for better mass conservation.
          source
          SpeedyWeather.temperature_average!Method
          temperature_average!(
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
          +    temp::LowerTriangularMatrix,
          +    S::SpectralTransform
          +) -> Any
          +

          Calculates the average temperature of a layer from the l=m=0 harmonic and stores the result in diagn.temp_average

          source
          SpeedyWeather.temperature_relaxation!Method
          temperature_relaxation!(
          +    column::ColumnVariables,
          +    scheme::JablonowskiRelaxation
          +)
          +

          Apply HeldSuarez-like temperature relaxation to the Jablonowski and Williamson vertical profile.

          source
          SpeedyWeather.temperature_tendency!Method
          temperature_tendency!(
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
          +    C::DynamicsConstants,
          +    G::Geometry,
          +    S::SpectralTransform,
          +    I::SpeedyWeather.ImplicitPrimitiveEq
          +)
          +

          Compute the temperature tendency

          ∂T/∂t += -∇⋅((u,v)*T') + T'D + κTᵥ*Dlnp/Dt

          += because the tendencies already contain parameterizations and vertical advection. T' is the anomaly with respect to the reference/average temperature. Tᵥ is the virtual temperature used in the adiabatic term κTᵥ*Dlnp/Dt.

          source
          SpeedyWeather.time_stepping!Method
          time_stepping!(
          +    progn::PrognosticVariables,
          +    diagn::DiagnosticVariables,
          +    model::SpeedyWeather.ModelSetup
          +) -> PrognosticVariables
          +

          Main time loop that that initializes output and feedback, loops over all time steps and calls the output and feedback functions.

          source
          SpeedyWeather.timestep!Function
          timestep!(
          +    progn::PrognosticVariables,
          +    diagn::DiagnosticVariables,
          +    dt::Real,
          +    i::Integer,
          +    model::Barotropic
          +)
          +timestep!(
          +    progn::PrognosticVariables,
          +    diagn::DiagnosticVariables,
          +    dt::Real,
          +    i::Integer,
          +    model::Barotropic,
          +    lf1::Int64
          +)
          +timestep!(
          +    progn::PrognosticVariables,
          +    diagn::DiagnosticVariables,
          +    dt::Real,
          +    i::Integer,
          +    model::Barotropic,
          +    lf1::Int64,
          +    lf2::Int64
          +)
          +

          Calculate a single time step for the model <: Barotropic.

          source
          SpeedyWeather.timestep!Method
          timestep!(
          +    progn::PrognosticVariables{NF<:AbstractFloat},
          +    diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},
          +    dt::Real,
          +    i::Integer,
          +    model::PrimitiveEquation
          +) -> Any
          +timestep!(
          +    progn::PrognosticVariables{NF<:AbstractFloat},
          +    diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},
          +    dt::Real,
          +    i::Integer,
          +    model::PrimitiveEquation,
          +    lf1::Int64
          +) -> Any
          +timestep!(
          +    progn::PrognosticVariables{NF<:AbstractFloat},
          +    diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},
          +    dt::Real,
          +    i::Integer,
          +    model::PrimitiveEquation,
          +    lf1::Int64,
          +    lf2::Int64
          +) -> Any
          +

          Calculate a single time step for the model<:PrimitiveEquation

          source
          SpeedyWeather.timestep!Method
          timestep!(
          +    progn::PrognosticVariables{NF<:AbstractFloat},
          +    diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},
          +    dt::Real,
          +    i::Integer,
          +    model::ShallowWater
          +) -> Union{Nothing, SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat}
          +timestep!(
          +    progn::PrognosticVariables{NF<:AbstractFloat},
          +    diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},
          +    dt::Real,
          +    i::Integer,
          +    model::ShallowWater,
          +    lf1::Int64
          +) -> Union{Nothing, SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat}
          +timestep!(
          +    progn::PrognosticVariables{NF<:AbstractFloat},
          +    diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},
          +    dt::Real,
          +    i::Integer,
          +    model::ShallowWater,
          +    lf1::Int64,
          +    lf2::Int64
          +) -> Union{Nothing, SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat}
          +

          Calculate a single time step for the model <: ShallowWater.

          source
          SpeedyWeather.unscale!Method
          unscale!(variable::AbstractArray, scale::Real) -> Any
          +

          Undo the radius-scaling for any variable. Method used for netcdf output.

          source
          SpeedyWeather.unscale!Method
          unscale!(progn::PrognosticVariables) -> Int64
          +

          Undo the radius-scaling of vorticity and divergence from scale!(progn,scale::Real).

          source
          SpeedyWeather.vertical_integration!Method
          vertical_integration!(Diag::DiagnosticVariables,G::Geometry)

          Calculates the vertically averaged (weighted by the thickness of the σ level) velocities (*coslat) and divergence. E.g.

          u_mean = ∑_k=1^nlev Δσ_k * u_k

          u,v are averaged in grid-point space, divergence in spectral space.

          source
          SpeedyWeather.virtual_temperature!Method
          virtual_temperature!(
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
          +    temp::LowerTriangularMatrix,
          +    constants::DynamicsConstants
          +)
          +

          Calculates the virtual temperature Tᵥ as

          Tᵥ = T(1+μq)

          With absolute temperature T, specific humidity q and

          μ = (1-ξ)/ξ, ξ = R_dry/R_vapour.

          in grid-point space.

          source
          SpeedyWeather.virtual_temperature!Method
          virtual_temperature!(
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
          +    temp::LowerTriangularMatrix,
          +    model::PrimitiveDry
          +) -> SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat
          +

          Virtual temperature in grid-point space: For the PrimitiveDry temperature and virtual temperature are the same (humidity=0). Just copy over the arrays.

          source
          SpeedyWeather.volume_flux_divergence!Method
          volume_flux_divergence!(
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
          +    surface::SpeedyWeather.SurfaceVariables,
          +    orog::SpeedyWeather.AbstractOrography,
          +    constants::DynamicsConstants,
          +    G::Geometry,
          +    S::SpectralTransform
          +)
          +

          Computes the (negative) divergence of the volume fluxes uh,vh for the continuity equation, -∇⋅(uh,vh).

          source
          SpeedyWeather.vordiv_tendencies!Method
          vordiv_tendencies!(
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
          +    surf::SpeedyWeather.SurfaceVariables,
          +    C::DynamicsConstants,
          +    G::Geometry,
          +    S::SpectralTransform
          +)
          +

          Tendencies for vorticity and divergence. Excluding Bernoulli potential with geopotential and linear pressure gradient inside the Laplace operator, which are added later in spectral space.

          u_tend +=  v*(f+ζ) - RTᵥ'*∇lnp_x
          +v_tend += -u*(f+ζ) - RTᵥ'*∇lnp_y

          += because the tendencies already contain the parameterizations and vertical advection. f is coriolis, ζ relative vorticity, R the gas constant Tᵥ' the virtual temperature anomaly, ∇lnp the gradient of surface pressure and _x and _y its zonal/meridional components. The tendencies are then curled/dived to get the tendencies for vorticity/divergence in spectral space

          ∂ζ/∂t = ∇×(u_tend,v_tend)
          +∂D/∂t = ∇⋅(u_tend,v_tend) + ...

          + ... because there's more terms added later for divergence.

          source
          SpeedyWeather.vordiv_tendencies!Method
          vordiv_tendencies!(
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
          +    surf::SpeedyWeather.SurfaceVariables,
          +    model::PrimitiveEquation
          +)
          +

          Function barrier to unpack model.

          source
          SpeedyWeather.vorticity_flux!Method
          vorticity_flux!(
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
          +    model::Barotropic
          +)
          +

          Vorticity flux tendency in the barotropic vorticity equation

          ∂ζ/∂t = ∇×(u_tend,v_tend)

          with

          u_tend = Fᵤ + v*(ζ+f) v_tend = Fᵥ - u*(ζ+f)

          with Fᵤ,Fᵥ the forcing from forcing! already in u_tend_grid/v_tend_grid and vorticity ζ, coriolis f.

          source
          SpeedyWeather.vorticity_flux!Method
          vorticity_flux!(
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
          +    model::ShallowWater
          +)
          +

          Vorticity flux tendency in the shallow water equations

          ∂ζ/∂t = ∇×(u_tend,v_tend) ∂D/∂t = ∇⋅(u_tend,v_tend)

          with

          u_tend = Fᵤ + v*(ζ+f) v_tend = Fᵥ - u*(ζ+f)

          with Fᵤ,Fᵥ the forcing from forcing! already in u_tend_grid/v_tend_grid and vorticity ζ, coriolis f.

          source
          SpeedyWeather.vorticity_flux_curldiv!Method
          vorticity_flux_curldiv!(
          +    diagn::SpeedyWeather.DiagnosticVariablesLayer,
          +    C::DynamicsConstants,
          +    G::Geometry,
          +    S::SpectralTransform;
          +    div
          +)
          +

          Compute the vorticity advection as the curl/div of the vorticity fluxes

          ∂ζ/∂t = ∇×(u_tend,v_tend) ∂D/∂t = ∇⋅(u_tend,v_tend)

          with

          u_tend = Fᵤ + v*(ζ+f) v_tend = Fᵥ - u*(ζ+f)

          with Fᵤ,Fᵥ from u_tend_grid/v_tend_grid that are assumed to be alread set in forcing!. Set div=false for the BarotropicModel which doesn't require the divergence tendency.

          source
          SpeedyWeather.workgroup_sizeMethod
          workgroup_size(dev::AbstractDevice)

          Returns a workgroup size depending on dev. WIP: Will be expanded in the future to also include grid information.

          source
          SpeedyWeather.write_column_tendencies!Method
          write_column_tendencies!(
          +    D::DiagnosticVariables,
          +    C::ColumnVariables,
          +    ij::Int64
          +)
          +

          Write the parametrization tendencies from C::ColumnVariables into the horizontal fields of tendencies stored in D::DiagnosticVariables at gridpoint index ij.

          source
          SpeedyWeather.write_netcdf_time!Method
          write_netcdf_time!(
          +    output::OutputWriter,
          +    time::Dates.DateTime
          +)
          +

          Write the current time time::DateTime to the netCDF file in output::OutputWriter.

          source
          SpeedyWeather.write_netcdf_variables!Method
          write_netcdf_variables!(
          +    output::OutputWriter,
          +    diagn::DiagnosticVariables{NF, Grid, Model}
          +)
          +

          Write diagnostic variables from diagn to the netCDF file in output::OutputWriter.

          source
          SpeedyWeather.write_output!Method
          write_output!(
          +    outputter::OutputWriter,
          +    time::Dates.DateTime,
          +    diagn::DiagnosticVariables
          +)
          +

          Writes the variables from diagn of time step i at time time into outputter.netcdf_file. Simply escapes for no netcdf output of if output shouldn't be written on this time step. Interpolates onto output grid and resolution as specified in outputter, converts to output number format, truncates the mantissa for higher compression and applies lossless compression.

          source
          SpeedyWeather.write_restart_fileMethod
          write_restart_file(
          +    progn::PrognosticVariables,
          +    output::OutputWriter
          +) -> Union{Nothing, String}
          +

          A restart file restart.jld2 with the prognostic variables is written to the output folder (or current path) that can be used to restart the model. restart.jld2 will then be used as initial conditions. The prognostic variables are bitrounded for compression and the 2nd leapfrog time step is discarded. Variables in restart file are unscaled.

          source
          diff --git a/previews/PR362/grids/index.html b/previews/PR362/grids/index.html new file mode 100644 index 000000000..eeacb6c75 --- /dev/null +++ b/previews/PR362/grids/index.html @@ -0,0 +1,7 @@ + +Grids · SpeedyWeather.jl

          Grids

          The spectral transform (the Spherical Harmonic Transform) in SpeedyWeather.jl supports any ring-based equi-longitude grid. Several grids are already implemented but other can be added. The following pages will describe an overview of these grids and but let's start but how they can be used

          julia> spectral_grid = SpectralGrid(Grid = FullGaussianGrid)
          +SpectralGrid:
          + Spectral:   T31 LowerTriangularMatrix{Complex{Float32}}, radius = 6.371e6 m
          + Grid:       4608-element, 48-ring FullGaussianGrid{Float32} (quadratic)
          + Resolution: 333km (average)
          + Vertical:   8-level SigmaCoordinates

          The life of every SpeedyWeather.jl simulation starts with a SpectralGrid object which defines the resolution in spectral and in grid-point space. The generator SpectralGrid() can take as a keyword argument Grid which can be any of the grids described below. The resolution of the grid, however, is not directly chosen, but determined from the spectral resolution trunc and the dealiasing factor. More in Matching spectral and grid resolution.

          RingGrids is a module too!

          While RingGrids is the underlying module that SpeedyWeather.jl uses for data structs on the sphere, the module can also be used independently of SpeedyWeather, for example to interpolate between data on different grids. See RingGrids

          Ring-based equi-longitude grids

          SpeedyWeather.jl's spectral transform supports all ring-based equi-longitude grids. These grids have their grid points located on rings with constant latitude and on these rings the points are equi-spaced in longitude. There is technically no constrain on the spacing of the latitude rings, but the Legendre transform requires a quadrature to map those to spectral space and back. Common choices for latitudes are the Gaussian latitudes which use the Gaussian quadrature, or equi-angle latitudes (i.e. just regular latitudes but excluding the poles) that use the Clenshaw-Curtis quadrature. The longitudes have to be equi-spaced on every ring, which is necessary for the fast Fourier transform, as one would otherwise need to use a non-uniform Fourier transform. In SpeedyWeather.jl the first grid point on any ring can have a longitudinal offset though, for example by spacing 4 points around the globe at 45˚E, 135˚E, 225˚E, and 315˚E. In this case the offset is 45˚E as the first point is not at 0˚E.

          Is the FullClenshawGrid a longitude-latitude grid?

          Short answer: Yes. The FullClenshawGrid is a specific longitude-latitude grid with equi-angle spacing. The most common grids for geoscientific data use regular spacings for 0-360˚E in longitude and 90˚N-90˚S. The FullClenshawGrid does that too, but it does not have a point on the North or South pole, and the central latitude ring sits exactly on the Equator. We name it Clenshaw following the Clenshaw-Curtis quadrature that is used in the Legendre transfrom in the same way as Gaussian refers to the Gaussian quadrature.

          Implemented grids

          All grids in SpeedyWeather.jl are a subtype of AbstractGrid, i.e. <: AbstractGrid. We further distinguish between full, and reduced grids. Full grids have the same number of longitude points on every latitude ring (i.e. points converge towards the poles) and reduced grids reduce the number of points towards the poles to have them more evenly spread out across the globe. More evenly does not necessarily mean that a grid is equal-area, meaning that every grid cell covers exactly the same area (although the shape changes).

          Currently the following full grids <: AbstractFullGrid are implemented

          • FullGaussianGrid, a full grid with Gaussian latitudes
          • FullClenshawGrid, a full grid with equi-angle latitudes

          and additionally we have FullHEALPixGrid and FullOctaHEALPixGrid which are the full grid equivalents to the HEALPix grid and the OctaHEALPix grid discussed below. Full grid equivalent means that they have the same latitude rings, but no reduction in the number of points per ring towards the poles and no longitude offset. Other implemented reduced grids are

          • OctahedralGaussianGrid, a reduced grid with Gaussian latitudes based on an octahedron
          • OctahedralClenshawGrid, similar but based on equi-angle latitudes
          • HEALPixGrid, an equal-area grid based on a dodecahedron with 12 faces
          • OctaHEALPixGrid, an equal-area grid from the class of HEALPix grids but based on an octahedron.

          An overview of these grids is visualised here

          Overview of implemented grids in SpeedyWeather.jl

          Visualised are each grid's grid points (white dots) and grid faces (white lines). All grids shown have 16 latitude rings on one hemisphere, Equator included. The total number of grid points is denoted in the top left of every subplot. The sphere is shaded with grey, orange and turquoise regions to denote the hemispheres in a and b, the 8 octahedral faces c, d,f and the 12 dodecahedral faces (or base pixels) in e. Coastlines are added for orientation.

          Grid resolution

          All grids use the same resolution parameter nlat_half, i.e. the number of rings on one hemisphere, Equator included. The Gaussian grids (full and reduced) do not have a ring on the equator, so their total number of rings nlat is always even and twice nlat_half. Clenshaw-Curtis grids and the HEALPix grids have a ring on the equator such their total number of rings is always odd and one less than the Gaussian grids at the same nlat_half.

          HEALPix grids do not use Nside as resolution parameter

          The original formulation for HEALPix grids use $N_{side}$, the number of grid points along the edges of each basepixel (8 in the figure above), SpeedyWeather.jl uses nlat_half, the number of rings on one hemisphere, Equator included, for all grids. This is done for consistency across grids. We may use $N_{side}$ for the documentation or within functions though.

          Related: Effective grid resolution and Available horizontal resolutions.

          Matching spectral and grid resolution

          A given spectral resolution can be matched to a variety of grid resolutions. A cubic grid, for example, combines a spectral truncation $T$ with a grid resolution $N$ (=nlat_half) such that $T + 1 = N$. Using T31 and an O32 is therefore often abbreviated as Tco31 meaning that the spherical harmonics are truncated at $l_{max}=31$ in combination with N=32, i.e. 64 latitude rings in total on an octahedral Gaussian grid. In SpeedyWeather.jl the choice of the order of truncation is controlled with the dealiasing parameter in the SpectralGrid construction.

          Let J be the total number of rings. Then we have

          • $T \approx J$ for linear truncation, i.e. dealiasing = 1
          • $\frac{3}{2}T \approx J$ for quadratic truncation, i.e. dealiasing = 2
          • $2T \approx J$ for cubic truncation, , i.e. dealiasing = 3

          and in general $\frac{m+1}{2}T \approx J$ for m-th order truncation. So the higher the truncation order the more grid points are used in combination with the same spectral resolution. A higher truncation order therefore makes all grid-point calculations more expensive, but can represent products of terms on the grid (which will have higher wavenumber components) to a higher accuracy as more grid points are available within a given wavelength. Using a sufficiently high truncation is therefore one way to avoid aliasing. A quick overview of how the grid resolution changes when dealiasing is passed onto SpectralGrid on the FullGaussianGrid

          truncdealiasingFullGaussianGrid size
          31164x32
          31296x48
          313128x64
          42196x48
          422128x64
          423192x96
          .........

          You will obtain this information every time you create a SpectralGrid(;Grid,trunc,dealiasing).

          Full Gaussian grid

          ...

          Full Clenshaw-Curtis grid

          ...

          Octahedral Gaussian grid

          ...

          HEALPix grid

          Technically, HEALPix grids are a class of grids that tessalate the sphere into faces that are often called basepixels. For each member of this class there are $N_\varphi$ basepixels in zonal direction and $N_\theta$ basepixels in meridional direction. For $N_\varphi = 4$ and $N_\theta = 3$ we obtain the classical HEALPix grid with $N_\varphi N_\theta = 12$ basepixels shown above in Implemented grids. Each basepixel has a quadratic number of grid points in them. There's an equatorial zone where the number of zonal grid points is constant (always $2N$, so 32 at $N=16$) and there are polar caps above and below the equatorial zone with the border at $\cos(\theta) = 2/3$ ($\theta$ in colatitudes).

          Following Górski, 2004[1], the $z=cos(\theta)$ colatitude of the $j$-th ring in the north polar cap, $j=1,...,N_{side}$ with $2N_{side} = N$ is

          \[z = 1 - \frac{j^2}{3N_{side}^2}\]

          and on that ring, the longitude $\phi$ of the $i$-th point ($i$ is the in-ring-index) is at

          \[\phi = \frac{\pi}{2j}(i-\tfrac{1}{2})\]

          The in-ring index $i$ goes from $i=1,...,4$ for the first (i.e. northern-most) ring, $i=1,...,8$ for the second ring and $i = 1,...,4j$ for the $j$-th ring in the northern polar cap.

          In the north equatorial belt $j=N_{side},...,2N_{side}$ this changes to

          \[z = \frac{4}{3} - \frac{2j}{3N_{side}}\]

          and the longitudes change to ($i$ is always $i = 1,...,4N_{side}$ in the equatorial belt meaning the number of longitude points is constant here)

          \[\phi = \frac{\pi}{2N_{side}}(i - \frac{s}{2}), \quad s = (j - N_{side} + 1) \mod 2\]

          The modulo function comes in as there is an alternating longitudinal offset from the prime meridian (see Implemented grids). For the southern hemisphere the grid point locations can be obtained by mirror symmetry.

          Grid cell boundaries

          The cell boundaries are obtained by setting $i = k + 1/2$ or $i = k + 1/2 + j$ (half indices) into the equations above, such that $z(\phi,k)$, a function for the cosine of colatitude $z$ of index $k$ and the longitude $\phi$ is obtained. These are then (northern polar cap)

          \[z = 1 - \frac{k^2}{3N_{side}^2}\left(\frac{\pi}{2\phi_t}\right)^2, \quad z = 1 - \frac{k^2}{3N_{side}^2}\left(\frac{\pi}{2\phi_t - \pi}\right)^2\]

          with $\phi_t = \phi \mod \tfrac{\pi}{2}$ and in the equatorial belt

          \[z = \frac{2}{3}-\frac{4k}{3N_{side}} \pm \frac{8\phi}{3\pi}\]

          OctaHEALPix grid

          While the classic HEALPix grid is based on a dodecahedron, other choices for $N_\varphi$ and $N_\theta$ in the class of HEALPix grids will change the number of faces there are in zonal/meridional direction. With $N_\varphi = 4$ and $N_\theta = 1$ we obtain a HEALPix grid that is based on an octahedron, which has the convenient property that there are twice as many longitude points around the equator than there are latitude rings between the poles. This is a desirable for truncation as this matches the distances too, $2\pi$ around the Equator versus $\pi$ between the poles. $N_\varphi = 6, N_\theta = 2$ or $N_\varphi = 8, N_\theta = 3$ are other possible choices for this, but also more complicated. See Górski, 2004[1] for further examples and visualizations of these grids.

          We call the $N_\varphi = 4, N_\theta = 1$ HEALPix grid the OctaHEALPix grid, which combines the equal-area property of the HEALPix grids with the octahedron that's also used in the OctahedralGaussianGrid or the OctahedralClenshawGrid. As $N_\theta = 1$ there is no equatorial belt which simplifies the grid. The latitude of the $j$-th isolatitude ring on the OctaHEALPixGrid is defined by

          \[z = 1 - \frac{j^2}{N^2},\]

          with $j=1,...,N$, and similarly for the southern hemisphere by symmetry. On this grid $N_{side} = N$ where $N$= nlat_half, the number of latitude rings on one hemisphere, Equator included, because each of the 4 basepixels spans from pole to pole and covers a quarter of the sphere. The longitudes with in-ring- index $i = 1,...,4j$ are

          \[\phi = \frac{\pi}{2j}(i - \tfrac{1}{2})\]

          and again, the southern hemisphere grid points are obtained by symmetry.

          Grid cell boundaries

          Similar to the grid cell boundaries for the HEALPix grid, the OctaHEALPix grid's boundaries are

          \[z = 1 - \frac{k^2}{N^2}\left(\frac{\pi}{2\phi_t}\right)^2, \quad z = 1 - \frac{k^2}{N^2}\left(\frac{\pi}{2\phi_t - \pi}\right)^2\]

          The $3N_{side}^2$ in the denominator of the HEALPix grid came simply $N^2$ for the OctaHEALPix grid and there's no separate equation for the equatorial belt (which doesn't exist in the OctaHEALPix grid).

          References

          • 1Górski, Hivon, Banday, Wandelt, Hansen, Reinecke, Bartelmann, 2004. HEALPix: A FRAMEWORK FOR HIGH-RESOLUTION DISCRETIZATION AND FAST ANALYSIS OF DATA DISTRIBUTED ON THE SPHERE, The Astrophysical Journal. doi:10.1086/427976
          diff --git a/previews/PR362/how_to_run_speedy/index.html b/previews/PR362/how_to_run_speedy/index.html new file mode 100644 index 000000000..15703a9e7 --- /dev/null +++ b/previews/PR362/how_to_run_speedy/index.html @@ -0,0 +1,57 @@ + +How to run SpeedyWeather.jl · SpeedyWeather.jl

          How to run SpeedyWeather.jl

          Creating a SpeedyWeather.jl simulation and running it consists conceptually of 4 steps

          1. Create a SpectralGrid which defines the grid and spectral resolution
          2. Create a model
          3. Initialize a model to obtain a Simulation.
          4. Run the simulation.

          In the following we will describe these steps in more detail, but let's start with some examples first.

          Example 1: 2D turbulence on a non-rotating sphere

          We want to use the barotropic model to simulate some free-decaying 2D turbulence on the sphere without rotation. We start by defining the SpectralGrid object. To have a resolution of about 100km, we choose a spectral resolution of T127 (see Available horizontal resolutions) and nlev=1 vertical levels. The SpectralGrid object will provide us with some more information

          julia> spectral_grid = SpectralGrid(trunc=127,nlev=1)
          +SpectralGrid:
          + Spectral:   T127 LowerTriangularMatrix{Complex{Float32}}, radius = 6.371e6 m
          + Grid:       40320-element, 192-ring OctahedralGaussianGrid{Float32} (quadratic)
          + Resolution: 112km (average)
          + Vertical:   1-level SigmaCoordinates

          We could have specified further options, but let's ignore that for now. Next step we create a planet that's like Earth but not rotating

          julia> still_earth = Earth(rotation=0)
          +Main.SpeedyWeather.Earth
          +  rotation: Float64 0.0
          +  gravity: Float64 9.81
          +  daily_cycle: Bool true
          +  length_of_day: Float64 24.0
          +  seasonal_cycle: Bool true
          +  length_of_year: Float64 365.25
          +  equinox: Dates.DateTime
          +  axial_tilt: Float64 23.4

          There are other options to create a planet but they are irrelevant for the barotropic vorticity equations. We also want to specify the initial conditions, randomly distributed vorticity is already defined

          julia> initial_conditions = StartWithRandomVorticity()
          +StartWithRandomVorticity
          +  power_law: Float64 -3.0
          +  amplitude: Float64 1.0e-5

          By default, the power of vorticity is spectrally distributed with $k^{-3}$, $k$ being the horizontal wavenumber, and the amplitude is $10^{-5}\text{ s}^{-1}$.

          Now we want to construct a BarotropicModel with these

          julia> model = BarotropicModel(;spectral_grid, initial_conditions, planet=still_earth);

          The model contains all the parameters, but isn't initialized yet, which we can do with and then run it.

          julia> simulation = initialize!(model);
          +julia> run!(simulation,n_days=30)

          The run! command will always return the prognostic variables, which, by default, are plotted for surface relative vorticity with a unicode plot. The resolution of the plot is not necessarily representative but it lets us have a quick look at the result

          Barotropic vorticity unicode plot

          Woohoo! I can see turbulence! You could pick up where this simulation stopped by simply doing run!(simulation,n_days=50) again. We didn't store any output, which you can do by run!(simulation,output=true), which will switch on NetCDF output with default settings. More options on output in NetCDF output.

          Example 2: Shallow water with mountains

          As a second example, let's investigate the Galewsky et al.[1] test case for the shallow water equations with and without mountains. As the shallow water system has also only one level, we can reuse the SpectralGrid from Example 1.

          julia> spectral_grid = SpectralGrid(trunc=127,nlev=1)

          Now as a first simulation, we want to disable any orography, so we create a NoOrography

          julia> orography = NoOrography(spectral_grid)
          +NoOrography{Float32, OctahedralGaussianGrid{Float32}}

          Although the orography is zero, you have to pass on spectral_grid so that it can still initialize zero-arrays of the right size and element type. Awesome. This time the initial conditions should be set the the Galewsky et al.[1] zonal jet, which is already defined as

          julia> initial_conditions = ZonalJet()
          +ZonalJet
          +  latitude: Float64 45.0
          +  width: Float64 19.28571428571429
          +  umax: Float64 80.0
          +  perturb_lat: Float64 45.0
          +  perturb_lon: Float64 270.0
          +  perturb_xwidth: Float64 19.098593171027442
          +  perturb_ywidth: Float64 3.819718634205488
          +  perturb_height: Float64 120.0

          The jet sits at 45˚N with a maximum velocity of 80m/s and a perturbation as described in their paper. Now we construct a model, but this time a ShallowWaterModel

          julia> model = ShallowWaterModel(;spectral_grid, orography, initial_conditions);
          +julia> simulation = initialize!(model);

          Galewsky jet unicode plot

          Oh yeah. That looks like the wobbly jet in their paper. Let's run it again for another 6 days but this time also store NetCDF output.

          julia> run!(simulation,n_days=6,output=true)
          +Weather is speedy: run 0002 100%|███████████████████████| Time: 0:00:12 (115.37 years/day)

          The progress bar tells us that the simulation run got the identification "0002", meaning that data is stored in the folder /run_0002, so let's plot that data properly (and not just using UnicodePlots).

          julia> using PyPlot, NCDatasets
          +julia> ds = NCDataset("run_0002/output.nc");
          +julia> ds["vor"]
          +vor (384 × 192 × 1 × 25)
          +  Datatype:    Float32
          +  Dimensions:  lon × lat × lev × time
          +  Attributes:
          +   units                = 1/s
          +   missing_value        = NaN
          +   long_name            = relative vorticity
          +   _FillValue           = NaN

          Vorticity vor is stored as a 384x192x1x25 array, we may want to look at the first time step, which is the end of the previous simulation (time=6days) which we didn't store output for.

          julia> vor = ds["vor"][:,:,1,1];
          +julia> lat = ds["lat"][:];
          +julia> lon = ds["lon"][:];
          +julia> pcolormesh(lon,lat,vor')

          Which looks like

          Galewsky jet pyplot

          You see that the unicode plot heavily coarse-grains the simulation, well it's unicode after all! And now the last time step, that means time=12days is

          julia> vor = ds["vor"][:,:,1,25];
          +julia> pcolormesh(lon,lat,vor')

          Galewsky jet pyplot

          The jet broke up into many small eddies, but the turbulence is still confined to the northern hemisphere, cool! How this may change when we add mountains (we had NoOrography above!), say Earth's orography, you may ask? Let's try it out! We create an EarthOrography struct like so

          julia> orography = EarthOrography(spectral_grid)
          +EarthOrography{Float32, OctahedralGaussianGrid{Float32}}:
          + path::String = SpeedyWeather.jl/input_data
          + file::String = orography_F512.nc
          + scale::Float64 = 1.0
          + smoothing::Bool = true
          + smoothing_power::Float64 = 1.0
          + smoothing_strength::Float64 = 0.1
          + smoothing_truncation::Int64 = 85

          It will read the orography from file as shown, and there are some smoothing options too, but let's not change them. Same as before, create a model, initialize into a simulation, run. This time directly for 12 days so that we can compare with the last plot

          julia> model = ShallowWaterModel(;spectral_grid, orography, initial_conditions);
          +julia> simulation = initialize!(model);
          +julia> run!(simulation,n_days=12,output=true)
          +Weather is speedy: run 0003 100%|███████████████████████| Time: 0:00:35 (79.16 years/day)

          This time the run got the id "0003", but otherwise we do as before.

          Galewsky jet pyplot

          Interesting! The initial conditions have zero velocity in the southern hemisphere, but still, one can see some imprint of the orography on vorticity. You can spot the coastline of Antarctica; the Andes and Greenland are somewhat visible too. Mountains also completely changed the flow after 12 days, probably not surprising!

          SpectralGrid

          The life of every SpeedyWeather.jl simulation starts with a SpectralGrid object. We have seen some examples above, now let's look into the details

          Missing docstring.

          Missing docstring for SpectralGrid. Check Documenter's build log for details.

          References

          [1] Galewsky, Scott, Polvani, 2004. An initial-value problem for testing numerical models of the global shallow-water equations, Tellus A. DOI: 10.3402/tellusa.v56i5.14436

          diff --git a/previews/PR362/index.html b/previews/PR362/index.html new file mode 100644 index 000000000..0f90ecfc7 --- /dev/null +++ b/previews/PR362/index.html @@ -0,0 +1,2 @@ + +Home · SpeedyWeather.jl

          SpeedyWeather.jl documentation

          Welcome to the documentation for SpeedyWeather.jl a global atmospheric circulation model with simple parametrizations to represent physical processes such as clouds, precipitation and radiation.

          Overview

          SpeedyWeather.jl is a global spectral model that uses a spherical harmonic transform to simulate the general circulation of the atmosphere. The prognostic variables used are vorticity, divergence, temperature, surface pressure and specific humidity. Simple parameterizations represent various climate processes: Radiation, clouds, precipitation, surface fluxes, among others.

          SpeedyWeather.jl defines

          • BarotropicModel for the 2D barotropic vorticity equation
          • ShallowWaterModel for the 2D shallow water equations
          • PrimitiveDryModel for the 3D primitive equations without humidity
          • PrimitiveWetModel for the 3D primitive equations with humidity

          and solves these equations in spherical coordinates as described in this documentation.

          Manual outline

          See the following pages of the documentation for more details

          and the submodules

          and the original documentation by Molteni and Kucharski.

          Developers

          The development of SpeedyWeather.jl is lead by Milan Klöwer and current and past contributors include

          Any contributions are always welcome!

          Funding

          MK received funding by the European Research Council under Horizon 2020 within the ITHACA project, grant agreement number 741112 from 2021-2022. Since 2023 this project is also funded by the National Science Foundation NSF.

          diff --git a/previews/PR362/installation/index.html b/previews/PR362/installation/index.html new file mode 100644 index 000000000..48e9db8f8 --- /dev/null +++ b/previews/PR362/installation/index.html @@ -0,0 +1,3 @@ + +Installation · SpeedyWeather.jl

          Installation

          SpeedyWeather.jl is registered in the Julia Registry. In most cases just open the Julia REPL and type

          julia> using Pkg
          +julia> Pkg.add("SpeedyWeather")

          or, equivalently, (] opens the package manager)

          julia>] add SpeedyWeather

          which will automatically install the latest release and all necessary dependencies. If you run into any troubles please raise an issue.

          However, you may want to make use of the latest features, then install directly from the main branch with

          julia> Pkg.add(url="https://github.com/SpeedyWeather/SpeedyWeather.jl",rev="main")

          other branches than main can be similarly installed. You can also type, equivalently,

          julia>] add https://github.com/SpeedyWeather/SpeedyWeather.jl#main

          Compatibility with Julia versions

          SpeedyWeather.jl usually lives on the latest minor release and/or its predecessor. At the moment (June 2023) this means

          • Julia v1.8
          • Julia v1.9

          are supported, but we dropped the support of earlier versions.

          diff --git a/previews/PR362/lowertriangularmatrices/index.html b/previews/PR362/lowertriangularmatrices/index.html new file mode 100644 index 000000000..6659768f5 --- /dev/null +++ b/previews/PR362/lowertriangularmatrices/index.html @@ -0,0 +1,60 @@ + +Submodule: LowerTriangularMatrices · SpeedyWeather.jl

          LowerTriangularMatrices

          LowerTriangularMatrices is a submodule that has been developed for SpeedyWeather.jl which is technically independent (SpeedyWeather.jl however imports it and so does SpeedyTransforms) and can also be used without running simulations. It is just not put into its own respective repository.

          This module defines LowerTriangularMatrix, a lower triangular matrix, which in contrast to LinearAlgebra.LowerTriangular does not store the entries above the diagonal. SpeedyWeather.jl uses LowerTriangularMatrix which is defined as a subtype of AbstractMatrix to store the spherical harmonic coefficients (see Spectral packing).

          Creation of LowerTriangularMatrix

          A LowerTriangularMatrix can be created using zeros,ones,rand, or randn

          julia> using SpeedyWeather.LowerTriangularMatrices
          +
          +julia> L = rand(LowerTriangularMatrix{Float32},5,5)
          +5×5 LowerTriangularMatrix{Float32}:
          + 0.912744   0.0        0.0       0.0       0.0
          + 0.0737592  0.230592   0.0       0.0       0.0
          + 0.799679   0.0765255  0.888098  0.0       0.0
          + 0.670835   0.997938   0.505276  0.492966  0.0
          + 0.949321   0.193692   0.793623  0.152817  0.357968

          or the undef initializor LowerTriangularMatrix{Float32}(undef,3,3). The element type is arbitrary though, you can use any type T too.

          Alternatively, it can be created through conversion from Matrix, which drops the upper triangle entries and sets them to zero

          julia> M = rand(Float16,3,3)
          +3×3 Matrix{Float16}:
          + 0.2222  0.694    0.3452
          + 0.2158  0.04443  0.274
          + 0.9746  0.793    0.6294
          +
          +julia> LowerTriangularMatrix(M)
          +3×3 LowerTriangularMatrix{Float16}:
          + 0.2222  0.0      0.0
          + 0.2158  0.04443  0.0
          + 0.9746  0.793    0.6294

          Indexing LowerTriangularMatrix

          LowerTriangularMatrix supports two types of indexing: 1) by denoting two indices, column and row [l,m] or 2) by denoting a single index [lm]. The double index works as expected

          julia> L
          +3×3 LowerTriangularMatrix{Float16}:
          + 0.1499  0.0    0.0
          + 0.1177  0.478  0.0
          + 0.1709  0.756  0.3223
          +
          +julia> L[2,2]
          +Float16(0.478)

          But the single index skips the zero entries in the upper triangle, i.e.

          julia> L[4]
          +Float16(0.478)

          which, important, is different from single indices of an AbstractMatrix

          julia> Matrix(L)[4]
          +Float16(0.0)

          In performance-critical code a single index should be used, as this directly maps to the index of the underlying data vector. The double index is somewhat slower as it first has to be converted to the corresponding single index.

          Consequently, many loops in SpeedyWeather.jl are build with the following structure

          n,m = size(L)
          +ij = 0
          +for j in 1:m
          +    for i in j:n
          +        ij += 1
          +        L[ij] = i+j
          +    end
          +end

          which loops over all lower triangle entries of L::LowerTriangularMatrix and the single index ij is simply counted up. However, one could also use [i,j] as indices in the loop body or to perform any calculation (i+j here). An iterator over all entries in the lower triangle can be created by

          for ij in eachindex(L)
          +    # do something
          +end

          The setindex! functionality of matrixes will throw a BoundsError when trying to write into the upper triangle of a LowerTriangularMatrix, for example

          julia> L[2,1] = 0    # valid index
          +0
          +
          +julia> L[1,2] = 0    # invalid index in the upper triangle
          +ERROR: BoundsError: attempt to access 3×3 LowerTriangularMatrix{Float32} at index [1, 2]

          Linear algebra with LowerTriangularMatrix

          The LowerTriangularMatrices module's main purpose is not linear algebra, and it's implementation may not be efficient, however, many operations work as expected

          julia> L = rand(LowerTriangularMatrix{Float32},3,3)
          +3×3 LowerTriangularMatrix{Float32}:
          + 0.57649   0.0       0.0
          + 0.348685  0.875371  0.0
          + 0.881923  0.850552  0.998306
          +
          +julia> L + L
          +3×3 LowerTriangularMatrix{Float32}:
          + 1.15298   0.0      0.0
          + 0.697371  1.75074  0.0
          + 1.76385   1.7011   1.99661
          +
          +julia> L * L
          +3×3 Matrix{Float32}:
          + 0.332341  0.0       0.0
          + 0.506243  0.766275  0.0
          + 1.68542   1.59366   0.996616

          Note, however, that the latter includes a conversion to Matrix, which is true for many operations, including inv or \. Hence when trying to do more sophisticated linear algebra with LowerTriangularMatrix we quickly leave lower triangular-land and go back to normal matrix-land.

          Function and type index

          SpeedyWeather.LowerTriangularMatrices.LowerTriangularMatrixType
          L = LowerTriangularMatrix{T}(v::Vector{T},m::Int,n::Int)

          A lower triangular matrix implementation that only stores the non-zero entries explicitly. L<:AbstractMatrix although in general we have L[i] != Matrix(L)[i], the former skips zero entries, tha latter includes them.

          source
          Base.fill!Method
          fill!(L::LowerTriangularMatrix,x)

          Fills the elements of L with x. Faster than fill!(::AbstractArray,x) as only the non-zero elements in L are assigned with x.

          source
          SpeedyWeather.LowerTriangularMatrices.eachharmonicMethod
          unit_range = eachharmonic(Ls::LowerTriangularMatrix...)

          creates unit_range::UnitRange to loop over all non-zeros in the LowerTriangularMatrices provided as arguments. Checks bounds first. All LowerTriangularMatrix's need to be of the same size. Like eachindex but skips the upper triangle with zeros in L.

          source
          SpeedyWeather.LowerTriangularMatrices.ij2kMethod
          k = ij2k(   i::Integer,     # row index of matrix
          +            j::Integer,     # column index of matrix
          +            m::Integer)     # number of rows in matrix

          Converts the index pair i,j of an mxn LowerTriangularMatrix L to a single index k that indexes the same element in the corresponding vector that stores only the lower triangle (the non-zero entries) of L.

          source
          diff --git a/previews/PR362/output/index.html b/previews/PR362/output/index.html new file mode 100644 index 000000000..dda66f55b --- /dev/null +++ b/previews/PR362/output/index.html @@ -0,0 +1,32 @@ + +NetCDF output · SpeedyWeather.jl

          NetCDF output

          SpeedyWeather.jl uses NetCDF to output the data of a simulation. The following describes the details of this and how to change the way in which the NetCDF output is written. There are many options to this available.

          Accessing the NetCDF output writer

          The output writer is a component of every Model, i.e. BarotropicModel, ShallowWaterModel, PrimitiveDryModel and PrimitiveWetModel, hence a non-default output writer can be passed on as a keyword argument to the model constructor

          julia> using SpeedyWeather
          +julia> spectral_grid = SpectralGrid()
          +julia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry)
          +julia> model = PrimitiveDryModel(;spectral_grid, output=my_output_writer)

          So after we have defined the grid through the SpectralGrid object we can use and change the implemented OutputWriter by passing on the following arguments

          julia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry, kwargs...)

          the spectral_grid has to be the first argument then the model type (Barotropic, ShallowWater, PrimitiveDry, PrimitiveWet) which helps the output writer to make default choices on which variables to output. However, we can also pass on further keyword arguments. So let's start with an example.

          Example 1: NetCDF output every hour

          If we want to increase the frequency of the output we can choose output_dt (default =6 in hours) like so

          julia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry, output_dt=1)
          +julia> model = PrimitiveDryModel(;spectral_grid, output=my_output_writer)

          which will now output every hour. It is important to pass on the new output writer my_output_writer to the model constructor, otherwise it will not be part of your model and the default is used instead. Note that output_dt has to be understood as the minimum frequency or maximum output time step. Example, we run the model at a resolution of T85 and the time step is going to be 670s

          julia> spectral_grid = SpectralGrid(trunc=85)
          +julia> time_stepper = Leapfrog(spectral_grid)
          +Leapfrog{Float32}:
          +...
          + Δt_sec::Int64 = 670
          +...

          This means that after 32 time steps 5h 57min and 20s will have passed where output will happen as the next time step would be >6h. The time axis of the NetCDF output will look like

          julia> using NCDatasets
          +julia> ds = NCDataset("run_0001/output.nc");
          +julia> ds["time"][:]
          +5-element Vector{Dates.DateTime}:
          + 2000-01-01T00:00:00
          + 2000-01-01T05:57:20
          + 2000-01-01T11:54:40
          + 2000-01-01T17:52:00
          + 2000-01-01T23:49:20
          +
          +julia> diff(ds["time"][:])
          +4-element Vector{Dates.Millisecond}:
          + 21440000 milliseconds
          + 21440000 milliseconds
          + 21440000 milliseconds
          + 21440000 milliseconds

          This is so that we don't interpolate in time during output to hit exactly every 6 hours, but at the same time have a constant spacing in time between output time steps.

          Example 2: Output onto a higher/lower resolution grid

          Say we want to run the model at a given horizontal resolution but want to output on another resolution, the OutputWriter takes as argument output_Grid<:AbstractFullGrid and nlat_half::Int. So for example output_Grid=FullClenshawGrid and nlat_half=48 will always interpolate onto a regular 192x95 longitude-latitude grid of 1.875˚ resolution, regardless the grid and resolution used for the model integration.

          julia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry, output_Grid=FullClenshawGrid, nlat_half=48)

          Note that by default the output is on the corresponding full of the grid used in the dynamical core so that interpolation only happens at most in the zonal direction as they share the location of the latitude rings. You can check this by

          julia> RingGrids.full_grid(OctahedralGaussianGrid)
          +FullGaussianGrid

          So the corresponding full grid of an OctahedralGaussianGrid is the FullGaussiangrid and the same resolution nlat_half is chosen by default in the output writer (which you can change though as shown above). Overview of the corresponding full grids

          GridCorresponding full grid
          FullGaussianGridFullGaussianGrid
          FullClenshawGridFullClenshawGrid
          OctahadralGaussianGridFullGaussianGrid
          OctahedralClensawhGridFullClenshawGrid
          HEALPixGridFullHEALPixGrid
          OctaHEALPixGridFullOctaHEALPixGrid

          The grids FullHEALPixGrid, FullOctaHEALPixGrid share the same latitude rings as their reduced grids, but have always as many longitude points as they are at most around the equator. These grids are not tested in the dynamical core (but you may use them experimentally) and mostly designed for output purposes.

          Example 3: Changing the output path or identification

          That's easy by passing on path="/my/favourite/path/" and the folder run_* with * the identification of the run (that's the id keyword, which can be manually set but is also automatically determined as a number counting up depending on which folders already exist) will be created within.

          julia> path = pwd()
          +"/Users/milan"
          +julia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry, path=path)

          This folder must already exist. If you want to give your run a name/identification you can pass on id

          julia> my_output_writer = OutputWriter(spectral_grid,PrimitiveDry,id="diffusion_test");

          which will be used instead of a 4 digit number like 0001, 0002 which is automatically determined if id is not provided. You will see the id of the run in the progress bar

          Weather is speedy: run diffusion_test 100%|███████████████████████| Time: 0:00:12 (19.20 years/day)

          and the run folder, here run_diffusion_test, is also named accordingly

          shell> ls
          +...
          +run_diffusion_test
          +...

          Further options

          Further options are described in the OutputWriter docstring, (also accessible via julia>?OutputWriter for example). Note that some fields are actual options, but others are derived from the options you provided or are arrays/objects the output writer needs, but shouldn't be passed on by the user. The actual options are declared as [OPTION] in the following

          Missing docstring.

          Missing docstring for OutputWriter. Check Documenter's build log for details.

          diff --git a/previews/PR362/parameterizations/index.html b/previews/PR362/parameterizations/index.html new file mode 100644 index 000000000..2662d45d0 --- /dev/null +++ b/previews/PR362/parameterizations/index.html @@ -0,0 +1,2 @@ + +Parameterizations · SpeedyWeather.jl diff --git a/previews/PR362/primitiveequation/index.html b/previews/PR362/primitiveequation/index.html new file mode 100644 index 000000000..58216672d --- /dev/null +++ b/previews/PR362/primitiveequation/index.html @@ -0,0 +1,14 @@ + +Primitive equation model · SpeedyWeather.jl

          Primitive equation model

          The primitive equations are a hydrostatic approximation of the compressible Navier-Stokes equations for an ideal gas on a rotating sphere. We largely follow the idealised spectral dynamical core developed by GFDL[1] and documented therein[2].

          The primitive equations solved by SpeedyWeather.jl for relative vorticity $\zeta$, divergence $\mathcal{D}$, logarithm of surface pressure $\ln p_s$, temperature $T$ and specific humidity $q$ are

          \[\begin{aligned} +\frac{\partial \zeta}{\partial t} &= \nabla \times (\mathbf{\mathcal{P}}_\mathbf{u} ++ (f+\zeta)\mathbf{u}_\perp - W(\mathbf{u}) - R_dT_v\nabla \ln p_s) \\ +\frac{\partial \mathcal{D}}{\partial t} &= \nabla \cdot (\mathcal{P}_\mathbf{u} ++ (f+\zeta)\mathbf{u}_\perp - W(\mathbf{u}) - R_dT_v\nabla \ln p_s) - \nabla^2(\frac{1}{2}(u^2 + v^2) + \Phi) \\ +\frac{\partial \ln p_s}{\partial t} &= -\frac{1}{p_s} \nabla \cdot \int_0^{p_s} \mathbf{u}~dp \\ +\frac{\partial T}{\partial t} &= \mathcal{P}_T -\nabla\cdot(\mathbf{u}T) + T\mathcal{D} - W(T) + \kappa T_v \frac{D \ln p}{Dt} \\ +\frac{\partial q}{\partial t} &= \mathcal{P}_q -\nabla\cdot(\mathbf{u}q) + q\mathcal{D} - W(q)\\ +\end{aligned}\]

          with velocity $\mathbf{u} = (u,v)$, rotated velocity $\mathbf{u}_\perp = (v,-u)$, Coriolis parameter $f$, $W$ the vertical advection operator, dry air gas constant $R_d$, virtual temperature $T_v$, geopotential $\Phi$, pressure $p$, thermodynamic $\kappa = R\_d/c_p$ with $c_p$ the heat capacity at constant pressure. Horizontal hyper diffusion of the form $(-1)^{n+1}\nu\nabla^{2n}$ with coefficient $\nu$ and power $n$ is added for every variable that is advected, meaning $\zeta, \mathcal{D}, T, q$, but left out here for clarity, see Horizontal diffusion.

          The parameterizations for the tendencies of $u,v,T,q$ from physical processes are denoted as $\mathcal{P}_\mathbf{u} = (\mathcal{P}_u, \mathcal{P}_v), \mathcal{P}_T, \mathcal{P}_q$ and are further described in the corresponding sections, see Parameterizations.

          SpeedyWeather.jl implements a PrimitiveWet and a PrimitiveDry dynamical core. For a dry atmosphere, we have $q = 0$ and the virtual temperature $T_v = T$ equals the temperature (often called absolute to distinguish from the virtual temperature). The terms in the primitive equations and their discretizations are discussed in the following sections.

          Virtual temperature

          In short: Virtual temperature

          Virtual temperature is the temperature dry air would need to have to be as light as moist air. It is used in the dynamical core to include the effect of humidity on the density while replacing density through the ideal gas law with temperature.

          We assume the atmosphere to be composed of two ideal gases: Dry air and water vapour. Given a specific humidity $q$ both gases mix, their pressures $p_d$, $p_w$ ($d$ for dry, $w$ for water vapour), and densities $\rho_d, \rho_w$ add in a given air parcel that has temperature $T$. The ideal gas law then holds for both gases

          \[\begin{aligned} +p_d &= \rho_d R_d T \\ +p_w &= \rho_w R_w T \\ +\end{aligned}\]

          with the respective specific gas constants $R_d = R/m_d$ and $R_w = R/m_w$ obtained from the univeral gas constant $R$ divided by the molecular masses of the gas. The total pressure $p$ in the air parcel is

          \[p = p_d + p_w = (\rho_d R_d + \rho_w R_w)T\]

          We ultimately want to replace the density $\rho = \rho_w + \rho_d$ in the dynamical core, using the ideal gas law, with the temperature $T$, so that we never have to calculate the density explicitly. However, in order to not deal with two densities (dry air and water vapour) we would like to replace temperature with a virtual temperature that includes the effect of humidity on the density. So, whereever we use the ideal gas law to replace density with temperature, we would use the virtual temperature, which is a function of the absolute temperature and specific humidity, instead. A higher specific humidity in an air parcel lowers the density as water vapour is lighter than dry air. Consequently, the virtual temperature of moist air is higher than its absolute temperature because warmer air is lighter too at constant pressure. We therefore think of the virtual temperature as the temperature dry air would need to have to be as light as moist air.

          Starting with the last equation, with some manipulation we can write the ideal gas law as total density $rho$ times a gas constant times the virtual temperature that is supposed to be a function of absolute temperature, humidity and some constants

          \[p = (\rho R_d + \rho_w (R_w - R_d)) T = \rho R_d (1 + +\frac{1 - \tfrac{R_d}{R_w}}{\tfrac{R_d}{R_w}} \frac{\rho_w}{\rho_w + \rho_d})T\]

          Now we identify

          \[\mu = \frac{1 - \tfrac{R_d}{R_w}}{\tfrac{R_d}{R_w}}\]

          as some constant that is positive for water vapour being lighter than dry air ($\tfrac{R_d}{R_w} = \tfrac{m_w}{m_d} < 1$) and

          \[q = \frac{\rho_w}{\rho_w + \rho_d}\]

          as the specific humidity. Given temperature $T$ and specific humidity $q$, we can therefore calculate the virtual temperature $T_v$ as

          \[T_v = (1 + \mu q)T\]

          For completeness we want to mention here that the above product, because it is a product of two variables $q,T$ has to be computed in grid-point space, see [Spectral Transform]. To obtain an approximation to the virtual temperature in spectral space without expensive transforms one can linearize

          \[T_v = T + \mu q\bar{T}\]

          With a global constant temperature $\bar{T}$, for example obtained from the $l=m=0$ mode, $\bar{T} = T_{0,0}\frac{1}{\sqrt{4\pi}}$ but depending on the normalization of the spherical harmonics that factor needs adjustment.

          Vertical coordinates

          General

          Let $\Psi(x,y,z,t)$

          SpeedyWeather.jl currently uses sigma coordinates for the vertical.

          \[\sigma = \frac{p}{p_s}\]

          \[p_k = \sigma_kp_s\]

          \[\Delta p_k = p_{k+1} - p_k = \Delta \sigma_k p_s\]

          Geopotential

          In the hydrostatic approximation the vertical momentum equation becomes

          \[\frac{\partial p}{\partial z} = -\rho g,\]

          meaning that the (negative) vertical pressure gradient is given by the density in that layer times the gravitational acceleration. The heavier the fluid the more the pressure will increase below. Inserting the ideal gas law

          \[\frac{\partial gz}{\partial p} = -\frac{R_dT_v}{p},\]

          with the geopotential $\Phi = gz$ we can write this in terms of the logarithm of pressure

          \[\frac{\partial \Phi}{\partial \ln p} = -R_dT_v.\]

          Note that we use the Virtual temperature here as we replaced the density through the ideal gas law with temperature. Given a vertical temperature profile $T_v$ and the (constant) surface geopotential $\Phi_s = gz_s$ where $z_s$ is the orography, we can integrate this equation from the surface to the top to obtain $\Phi_k$ on every layer $k$. The surface is at $k = N+\tfrac{1}{2}$ (see Vertical coordinates) with $N$ vertical levels. We can integrate the geopotential onto half levels as

          \[\Phi_{k-\tfrac{1}{2}} = \Phi_{k+\tfrac{1}{2}} + R_dT^v_k(\ln p_{k+1/2} - \ln p_{k-1/2})\]

          Surface pressure tendency

          Vertical advection

          Pressure gradient force

          Temperature equation

          Semi-implicit time stepping

          Horizontal diffusion

          Algorithm

          Scaled primitive equations

          References

          diff --git a/previews/PR362/ringgrids/index.html b/previews/PR362/ringgrids/index.html new file mode 100644 index 000000000..146a0f58e --- /dev/null +++ b/previews/PR362/ringgrids/index.html @@ -0,0 +1,333 @@ + +Submodule: RingGrids · SpeedyWeather.jl

          RingGrids

          RingGrids is a submodule that has been developed for SpeedyWeather.jl which is technically independent (SpeedyWeather.jl however imports it and so does SpeedyTransforms) and can also be used without running simulations. It is just not put into its own respective repository.

          RingGrids defines several iso-latitude grids, which are mathematically described in the section on Grids. In brief, they include the regular latitude-longitude grids (here called FullClenshawGrid) as well as grids which latitudes are shifted to the Gaussian latitudes and reduced grids, meaning that they have a decreasing number of longitudinal points towards the poles to be more equal-area than full grids.

          RingGrids defines and exports the following grids:

          • full grids: FullClenshawGrid, FullGaussianGrid, FullHEALPix, and FullOctaHEALPix
          • reduced grids: OctahedralGaussianGrid, OctahedralClenshawGrid, OctaHEALPixGrid and HEALPixGrid

          The following explanation of how to use these can be mostly applied to any of them, however, there are certain functions that are not defined, e.g. the full grids can be trivially converted to a Matrix (i.e. they are rectangular grids) but not the OctahedralGaussianGrid.

          What is a ring?

          We use the term ring, short for iso-latitude ring, to refer to a sequence of grid points that all share the same latitude. A latitude-longitude grid is a ring grid, as it organises its grid-points into rings. However, other grids, like the cubed-sphere are not based on iso-latitude rings. SpeedyWeather.jl only works with ring grids because its a requirement for the Spherical Harmonic Transform to be efficient. See Grids.

          Creating data on a RingGrid

          Every grid in RingGrids has a grid.data field, which is a vector containing the data on the grid. The grid points are unravelled west to east then north to south, meaning that it starts at 90˚N and 0˚E then walks eastward for 360˚ before jumping on the next latitude ring further south, this way circling around the sphere till reaching the south pole. This may also be called ring order.

          Data in a Matrix which follows this ring order can be put on a FullGaussianGrid like so

          using SpeedyWeather.RingGrids
          +map = randn(Float32,8,4)
          8×4 Matrix{Float32}:
          +  0.377308   0.959051    2.52336    0.626663
          +  0.751194  -1.2324      0.846864  -1.22782
          +  0.715428   1.50885     0.590558  -0.555331
          +  1.68039   -1.40743     0.221228   0.657844
          + -0.159574  -0.824452   -2.08117   -1.46785
          + -0.20603    0.772059   -2.18459    1.87076
          + -1.05421   -0.426545   -0.802248   0.438331
          + -0.837666  -0.0339197  -0.796414  -1.40767
          grid = FullGaussianGrid(map)
          32-element, 4-ring FullGaussianGrid{Float32}:
          +  0.377308
          +  0.7511941
          +  0.7154278
          +  1.6803892
          + -0.15957415
          + -0.20603047
          + -1.0542064
          + -0.8376663
          +  0.95905143
          + -1.2324011
          +  ⋮
          + -0.7964137
          +  0.6266632
          + -1.2278166
          + -0.5553306
          +  0.6578442
          + -1.4678526
          +  1.87076
          +  0.4383306
          + -1.4076685

          A full Gaussian grid has always $2N$ x $N$ grid points, but a FullClenshawGrid has $2N$ x $N-1$, if those dimensions don't match, the creation will throw an error. To reobtain the data from a grid, you can access its data field which returns a normal Vector

          grid.data
          32-element Vector{Float32}:
          +  0.377308
          +  0.7511941
          +  0.7154278
          +  1.6803892
          + -0.15957415
          + -0.20603047
          + -1.0542064
          + -0.8376663
          +  0.95905143
          + -1.2324011
          +  ⋮
          + -0.7964137
          +  0.6266632
          + -1.2278166
          + -0.5553306
          +  0.6578442
          + -1.4678526
          +  1.87076
          +  0.4383306
          + -1.4076685

          Which can be reshaped to reobtain map from above. Alternatively you can Matrix(grid) to do this in one step

          map == Matrix(FullGaussianGrid(map))
          true

          You can also use zeros,ones,rand,randn to create a grid, whereby nlat_half, i.e. the number of latitude rings on one hemisphere, Equator included, is used as a resolution parameter and here as a second argument.

          nlat_half = 4
          +grid = randn(OctahedralGaussianGrid{Float16},nlat_half)
          208-element, 8-ring OctahedralGaussianGrid{Float16}:
          + -0.06433
          + -0.269
          + -0.04602
          + -0.0692
          + -0.546
          +  0.611
          + -0.7954
          + -2.19
          + -1.093
          + -0.2152
          +  ⋮
          + -1.317
          +  0.1132
          +  0.501
          +  0.222
          +  0.4282
          +  0.1989
          +  0.4048
          + -0.403
          + -0.002295

          and any element type T can be used for OctahedralGaussianGrid{T} and similar for other grid types.

          Visualising RingGrid data

          As only the full grids can be reshaped into a matrix, the underlying data structure of any AbstractGrid is a vector. As shown in the examples above, one can therefore inspect the data as if it was a vector. But as that data has, through its <:AbstractGrid type, all the geometric information available to plot it on a map, RingGrids also exports plot function, based on UnicodePlots' heatmap.

          nlat_half = 24
          +grid = randn(OctahedralGaussianGrid,nlat_half)
          +plot(grid)
                             48-ring OctahedralGaussianGrid{Float64}                
          +       ┌────────────────────────────────────────────────────────────┐  3  
          +    90 ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ┌──┐
          +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄
          +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄
          +       ▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄
          +       ▄▄▄▄▄▄ ▄▄
          +       ▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄
          +       ▄▄▄▄▄▄▄▄▄▄ ▄▄
          +    ˚N ▄▄▄▄▄▄▄▄▄▄ ▄▄
          +       ▄▄▄▄▄▄▄▄▄▄ ▄▄
          +       ▄▄▄▄▄▄▄▄▄▄▄ ▄▄
          +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄
          +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄
          +       ▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄
          +       ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ▄▄
          +   -90 ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ └──┘
          +       └────────────────────────────────────────────────────────────┘ -3  
          +        0                           ˚E                           360      

          Indexing RingGrids

          All RingGrids have a single index ij which follows the ring order. While this is obviously not super exciting here are some examples how to make better use of the information that the data sits on a grid.

          We obtain the latitudes of the rings of a grid by calling get_latd (get_lond is only defined for full grids, or use get_latdlonds for latitudes, longitudes per grid point not per ring)

          grid = randn(OctahedralClenshawGrid,5)
          +latd = get_latd(grid)
          9-element Vector{Float64}:
          +  72.0
          +  54.0
          +  36.0
          +  18.0
          +   0.0
          + -18.0
          + -36.0
          + -54.0
          + -72.0

          Now we could calculate Coriolis and add it on the grid as follows

          rotation = 7.29e-5                  # angular frequency of Earth's rotation [rad/s]
          +coriolis = 2rotation*sind.(latd)    # vector of coriolis parameters per latitude ring
          +
          +rings = eachring(grid)
          +for (j,ring) in enumerate(rings)
          +    f = coriolis[j]
          +    for ij in ring
          +        grid[ij] += f
          +    end
          +end

          eachring creates a vector of UnitRange indices, such that we can loop over the ring index j (j=1 being closest to the North pole) pull the coriolis parameter at that latitude and then loop over all in-ring indices i (changing longitudes) to do something on the grid. Something similar can be done to scale/unscale with the cosine of latitude for example. We can always loop over all grid-points like so

          for ij in eachgridpoint(grid)
          +    grid[ij]
          +end

          or use eachindex instead.

          Interpolation on RingGrids

          In most cases we will want to use RingGrids so that our data directly comes with the geometric information of where the grid-point is one the sphere. We have seen how to use get_latd, get_lond, ... for that above. This information generally can also be used to interpolate our data from grid to another or to request an interpolated value on some coordinates. Using our data on grid which is an OctahedralGaussianGrid from above we can use the interpolate function to get it onto a FullGaussianGrid (or any other grid for purpose)

          grid = randn(OctahedralGaussianGrid{Float32},4)
          208-element, 8-ring OctahedralGaussianGrid{Float32}:
          +  1.4739474
          +  0.84823465
          + -1.4544147
          +  1.4210765
          +  1.5623826
          + -0.39949125
          + -0.77798253
          + -0.7542445
          +  0.66965157
          + -1.9547038
          +  ⋮
          +  1.3078691
          +  0.640161
          + -0.83452386
          +  0.25549838
          + -1.1301802
          + -1.1848576
          + -0.053532742
          + -0.49890336
          + -0.12937273
          interpolate(FullGaussianGrid,grid)
          128-element, 8-ring FullGaussianGrid{Float64}:
          +  1.4739474058151245
          +  0.27257227897644043
          + -0.016669154167175293
          +  1.5270560681819916
          + -0.39949125051498413
          + -0.7720480263233185
          + -0.04229646921157837
          + -1.2986149191856384
          + -1.7324823141098022
          +  0.605443149805069
          +  ⋮
          + -0.12202188372612
          +  1.1078499555587769
          +  1.1409420520067215
          + -0.09718143939971924
          + -0.01700720191002081
          + -1.1301802396774292
          + -0.9020263850688934
          + -0.2762180492281914
          + -0.22175540030002594

          By default this will linearly interpolate (it's an Anvil interpolator, see below) onto a grid with the same nlat_half, but we can also coarse-grain or fine-grain by specifying nlat_half directly as 2nd argument

          interpolate(FullGaussianGrid,6,grid)
          288-element, 12-ring FullGaussianGrid{Float64}:
          +  1.0859733047825482
          +  0.7312923287384233
          + -0.38383670847461526
          +  0.07203839406256221
          +  1.0820492615007504
          +  0.9237130149923096
          + -0.18836169708271705
          + -0.40290688093214744
          + -0.43505132782393763
          +  0.054606393044239726
          +  ⋮
          + -0.15341212400187854
          + -0.40781246546476796
          + -0.07060764937290193
          + -0.8560700539163802
          + -0.8870635439756924
          + -0.3802352483839589
          + -0.27519493111372206
          + -0.34288174336864113
          + -0.20622282021061322

          So we got from an 8-ring OctahedralGaussianGrid{Float16} to a 12-ring FullGaussianGrid{Float64}, so it did a conversion from Float16 to Float64 on the fly too, because the default precision is Float64 unless specified. interpolate(FullGaussianGrid{Float16},6,grid) would have interpolated onto a grid with element type Float16.

          One can also interpolate onto a given coordinate ˚N, ˚E like so

          interpolate(30.0,10.0,grid)
          0.16222367f0

          we interpolated the data from grid onto 30˚N, 10˚E. To do this simultaneously for many coordinates they can be packed into a vector too

          interpolate([30.0,40.0,50.0],[10.0,10.0,10.0],grid)
          3-element Vector{Float32}:
          +  0.16222367
          + -0.021136248
          + -0.26783118

          which returns the data on grid at 30˚N, 40˚N, 50˚N, and 10˚E respectively. Note how the interpolation here retains the element type of grid.

          Performance for RingGrid interpolation

          Every time an interpolation like interpolate(30.0,10.0,grid) is called, several things happen, which are important to understand to know how to get the fastest interpolation out of this module in a given situation. Under the hood an interpolation takes three arguments

          • output vector
          • input grid
          • interpolator

          The output vector is just an array into which the interpolated data is written, providing this prevents unnecessary allocation of memory in case the destination array of the interpolation already exists. The input grid contains the data which is subject to interpolation, it must come on a ring grid, however, its coordinate information is actually already in the interpolator. The interpolator knows about the geometry of the grid the data is coming on and the coordinates it is supposed to interpolate onto. It has therefore precalculated the indices that are needed to access the right data on the input grid and the weights it needs to apply in the actual interpolation operation. The only thing it does not know is the actual data values of that grid. So in the case you want to interpolate from grid A to grid B many times, you can just reuse the same interpolator. If you want to change the coordinates of the output grid but its total number of points remain constants then you can update the locator inside the interpolator and only else you will need to create a new interpolator. Let's look at this in practice. Say we have two grids an want to interpolate between them

          grid_in = rand(HEALPixGrid,4)
          +grid_out = zeros(FullClenshawGrid,6)
          +interp = RingGrids.interpolator(grid_out,grid_in)
          SpeedyWeather.RingGrids.AnvilInterpolator{Float64, HEALPixGrid{Float64}}(SpeedyWeather.RingGrids.GridGeometry{HEALPixGrid{Float64}}(4, 7, 48, [90.0, 66.44353569089876, 41.8103148957786, 19.471220634490685, 0.0, -19.47122063449071, -41.81031489577862, -66.44353569089876, -90.00000000000001], [45.0, 135.0, 225.0, 315.0, 22.5, 67.5, 112.5, 157.5, 202.5, 247.49999999999997  …  112.5, 157.5, 202.5, 247.49999999999997, 292.5, 337.5, 45.0, 135.0, 225.0, 315.0], UnitRange{Int64}[1:4, 5:12, 13:20, 21:28, 29:36, 37:44, 45:48], [4, 8, 8, 8, 8, 8, 4], [45.0, 22.5, 0.0, 22.5, 0.0, 22.5, 45.0]), SpeedyWeather.RingGrids.AnvilLocator{Float64}(264, [0, 0, 0, 0, 0, 0, 0, 0, 0, 0  …  7, 7, 7, 7, 7, 7, 7, 7, 7, 7], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0  …  46, 46, 47, 47, 47, 47, 47, 48, 48, 48], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0  …  47, 47, 48, 48, 48, 48, 48, 45, 45, 45], [4, 4, 4, 1, 1, 1, 1, 1, 1, 2  …  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1], [1, 1, 1, 2, 2, 2, 2, 2, 2, 3  …  -1, -1, -1, -1, -1, -1, -1, -1, -1, -1], [0.6367678868600251, 0.6367678868600251, 0.6367678868600251, 0.6367678868600251, 0.6367678868600251, 0.6367678868600251, 0.6367678868600251, 0.6367678868600251, 0.6367678868600251, 0.6367678868600251  …  0.3632321131399741, 0.3632321131399741, 0.3632321131399741, 0.3632321131399741, 0.3632321131399741, 0.3632321131399741, 0.3632321131399741, 0.3632321131399741, 0.3632321131399741, 0.3632321131399741], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0  …  0.8333333333333333, 0.9999999999999998, 0.16666666666666652, 0.33333333333333304, 0.5, 0.6666666666666665, 0.8333333333333326, 0.0, 0.16666666666666652, 0.3333333333333326], [0.5, 0.6666666666666667, 0.8333333333333333, 0.0, 0.16666666666666657, 0.33333333333333315, 0.5, 0.6666666666666666, 0.8333333333333331, 0.0  …  0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]))

          Now we have created an interpolator interp which knows about the geometry where to interpolate from and the coordinates there to interpolate to. It is also initialized, meaning it has precomputed the indices to of grid_in that are supposed to be used. It just does not know about the data of grid_in (and neither of grid_out which will be overwritten anyway). We can now do

          interpolate!(grid_out,grid_in,interp)
          +grid_out
          264-element, 11-ring FullClenshawGrid{Float64}:
          + 0.5736120785808004
          + 0.6019677287396953
          + 0.63032337889859
          + 0.6586790290574849
          + 0.5855885043141392
          + 0.5124979795707936
          + 0.43940745482744786
          + 0.36631693008410215
          + 0.2932264053407566
          + 0.22013588059741085
          + ⋮
          + 0.41185260473393853
          + 0.4623683281595343
          + 0.5128840515851302
          + 0.563399775010726
          + 0.6139154984363219
          + 0.6644312218619175
          + 0.7149469452875135
          + 0.6251877652783906
          + 0.535428585269268

          which is identical to interpolate(grid_out,grid_in) but you can reuse interp for other data. The interpolation can also handle various element types (the interpolator interp does not have to be updated for this either)

          grid_out = zeros(FullClenshawGrid{Float16},6);
          +interpolate!(grid_out,grid_in,interp)
          +grid_out
          264-element, 11-ring FullClenshawGrid{Float16}:
          + 0.5737
          + 0.602
          + 0.6304
          + 0.6587
          + 0.5854
          + 0.5127
          + 0.4395
          + 0.3662
          + 0.2932
          + 0.2201
          + ⋮
          + 0.4119
          + 0.4624
          + 0.5127
          + 0.5635
          + 0.614
          + 0.6646
          + 0.715
          + 0.625
          + 0.5356

          and we have converted data from a HEALPixGrid{Float64} (Float64 is always default if not specified) to a FullClenshawGrid{Float16} including the type conversion Float64-Float16 on the fly. Technically there are three data types and their combinations possible: The input data will come with a type, the output array has an element type and the interpolator has precomputed weights with a given type. Say we want to go from Float16 data on an OctahedralGaussianGrid to Float16 on a FullClenshawGrid but using Float32 precision for the interpolation itself, we would do this by

          grid_in = randn(OctahedralGaussianGrid{Float16},24)
          +grid_out = zeros(FullClenshawGrid{Float16},24)
          +interp = RingGrids.interpolator(Float32,grid_out,grid_in)
          +interpolate!(grid_out,grid_in,interp)
          +grid_out
          4512-element, 47-ring FullClenshawGrid{Float16}:
          +  0.4348
          +  0.169
          + -0.0971
          + -0.363
          + -0.629
          + -0.69
          + -0.549
          + -0.4075
          + -0.266
          + -0.3071
          +  ⋮
          + -0.2646
          + -0.2705
          + -0.3164
          + -0.3623
          + -0.4082
          + -0.1962
          +  0.2017
          +  0.5996
          +  0.997

          As a last example we want to illustrate a situation where we would always want to interpolate onto 10 coordinates, but their locations may change. In order to avoid recreating an interpolator object we would do (AnvilInterpolator is described in Anvil interpolator)

          npoints = 10    # number of coordinates to interpolate onto
          +interp = AnvilInterpolator(Float32,HEALPixGrid,24,npoints)
          SpeedyWeather.RingGrids.AnvilInterpolator{Float32, HEALPixGrid}(SpeedyWeather.RingGrids.GridGeometry{HEALPixGrid}(24, 47, 1728, [90.0, 86.10076357950555, 82.19700324028634, 78.28414760510762, 74.35752898700072, 70.41233167174659, 66.44353569089876, 62.445854167002665, 58.41366190347208, 54.34091230386124  …  -54.340912303861266, -58.41366190347208, -62.445854167002665, -66.44353569089876, -70.41233167174661, -74.35752898700072, -78.28414760510763, -82.19700324028634, -86.10076357950557, -90.00000000000001], [45.0, 135.0, 225.0, 315.0, 22.5, 67.5, 112.5, 157.5, 202.5, 247.49999999999997  …  112.5, 157.5, 202.5, 247.49999999999997, 292.5, 337.5, 45.0, 135.0, 225.0, 315.0], UnitRange{Int64}[1:4, 5:12, 13:24, 25:40, 41:60, 61:84, 85:112, 113:144, 145:180, 181:220  …  1509:1548, 1549:1584, 1585:1616, 1617:1644, 1645:1668, 1669:1688, 1689:1704, 1705:1716, 1717:1724, 1725:1728], [4, 8, 12, 16, 20, 24, 28, 32, 36, 40  …  40, 36, 32, 28, 24, 20, 16, 12, 8, 4], [45.0, 22.5, 14.999999999999998, 11.25, 9.0, 7.499999999999999, 6.428571428571429, 5.625, 5.0, 4.5  …  4.5, 5.0, 5.625, 6.428571428571429, 7.499999999999999, 9.0, 11.25, 14.999999999999998, 22.5, 45.0]), SpeedyWeather.RingGrids.AnvilLocator{Float32}(10, [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0], Float32[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], Float32[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], Float32[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]))

          with the first argument being the number format used during interpolation, then the input grid type, its resolution in terms of nlat_half and then the number of points to interpolate onto. However, interp is not yet initialized as it does not know about the destination coordinates yet. Let's define them, but note that we already decided there's only 10 of them above.

          latds = collect(0.0:5.0:45.0)
          +londs = collect(-10.0:2.0:8.0)

          now we can update the locator inside our interpolator as follows

          RingGrids.update_locator!(interp,latds,londs)

          With data matching the input from above, a nlat_half=24 HEALPixGrid, and allocate 10-element output vector

          output_vec = zeros(10)
          +grid_input = rand(HEALPixGrid,24)

          we can use the interpolator as follows

          interpolate!(output_vec,grid_input,interp)
          10-element Vector{Float64}:
          + 0.14652633202979565
          + 0.33415347997487777
          + 0.4005235574086751
          + 0.3174600690946196
          + 0.8329239325712832
          + 0.546701324735857
          + 0.6144403198115366
          + 0.34644273364772815
          + 0.4919530838537922
          + 0.5407908227573113

          which is the approximately the same as doing it directly without creating an interpolator first and updating its locator

          interpolate(latds,londs,grid_input)
          10-element Vector{Float64}:
          + 0.14652633156787614
          + 0.3341534789670636
          + 0.40052356160122726
          + 0.31746006253034187
          + 0.8329239291740724
          + 0.5467013261591833
          + 0.6144403219029813
          + 0.34644272812246224
          + 0.4919530968795339
          + 0.5407908217424442

          but allows for a reuse of the interpolator. Note that the two output arrays are not exactly identical because we manually set our interpolator interp to use Float32 for the interpolation whereas the default is Float64.

          Anvil interpolator

          Currently the only interpolator implemented is a 4-point bilinear interpolator, which schematically works as follows. Anvil interpolation is the bilinear average of a,b,c,d which are values at grid points in an anvil-shaped configuration at location x, which is denoted by Δab,Δcd,Δy, the fraction of distances between a-b,c-d, and ab-cd, respectively. Note that a,c and b,d do not necessarily share the same longitude/x-coordinate.

                  0..............1    # fraction of distance Δab between a,b
          +        |<  Δab   >|
          +
          +0^      a -------- o - b    # anvil-shaped average of a,b,c,d at location x
          +.Δy                |
          +.                  |
          +.v                 x 
          +.                  |
          +1         c ------ o ---- d
          +
          +          |<  Δcd >|
          +          0...............1 # fraction of distance Δcd between c,d
          +
          +^ fraction of distance Δy between a-b and c-d.

          This interpolation is chosen as by definition of the ring grids, a and b share the same latitude, so do c and d, but the longitudes can be different for all four, a,b,c,d.

          Function index

          SpeedyWeather.RingGrids.AbstractFullGridType
          abstract type AbstractFullGrid{T} <: AbstractGrid{T} end

          An AbstractFullGrid is a horizontal grid with a constant number of longitude points across latitude rings. Different latitudes can be used, Gaussian latitudes, equi-angle latitdes, or others.

          source
          SpeedyWeather.RingGrids.AbstractGridType
          abstract type AbstractGrid{T} <: AbstractVector{T} end

          The abstract supertype for all spatial grids on the sphere supported by SpeedyWeather.jl. Every new grid has to be of the form

          abstract type AbstractGridClass{T} <: AbstractGrid{T} end
          +struct MyNewGrid{T} <: AbstractGridClass{T}
          +    data::Vector{T}     # all grid points unravelled into a vector
          +    nlat_half::Int      # resolution: latitude rings on one hemisphere (Equator incl)
          +end

          MyNewGrid should belong to a grid class like AbstractFullGrid, AbstractOctahedralGrid or AbstractHEALPixGrid (that already exist but you may introduce a new class of grids) that share certain features such as the number of longitude points per latitude ring and indexing, but may have different latitudes or offset rotations. Each new grid Grid (or grid class) then has to implement the following methods (as an example, see octahedral.jl)

          Fundamental grid properties getnpoints # total number of grid points nlatodd # does the grid have an odd number of latitude rings? getnlat # total number of latitude rings getnlat_half # number of latitude rings on one hemisphere incl Equator

          Indexing getnlonmax # maximum number of longitudes points (at the Equator) getnlonperring # number of longitudes on ring j eachindexinring # a unit range that indexes all longitude points on a ring

          Coordinates getcolat # vector of colatitudes (radians) getcolatlon # vectors of colatitudes, longitudes (both radians)

          Spectral truncation truncationorder # linear, quadratic, cubic = 1,2,3 for grid gettruncation # spectral truncation given a grid resolution get_resolution # grid resolution given a spectral truncation

          Quadrature weights and solid angles getquadratureweights # = sinθ Δθ for grid points on ring j for meridional integration getsolidangle # = sinθ Δθ Δϕ, solid angle of grid points on ring j

          source
          SpeedyWeather.RingGrids.AbstractHEALPixGridType
          abstract type AbstractHEALPixGrid{T} <: AbstractGrid{T} end

          An AbstractHEALPixGrid is a horizontal grid similar to the standard HEALPixGrid, but different latitudes can be used, the default HEALPix latitudes or others.

          source
          SpeedyWeather.RingGrids.AbstractInterpolatorType
          abstract type AbstractInterpolator{NF,G} end

          Supertype for Interpolators. Every Interpolator <: AbstractInterpolator is expected to have two fields,

          • geometry, which describes the grid G to interpolate from
          • locator, which locates the indices on G and their weights to interpolate onto a new grid.

          NF is the number format used to calculate the interpolation, which can be different from the input data and/or the interpolated data on the new grid.

          source
          SpeedyWeather.RingGrids.AbstractLocatorType
          AbstractLocator{NF}

          Supertype of every Locator, which locates the indices on a grid to be used to perform an interpolation. E.g. AnvilLocator uses a 4-point stencil for every new coordinate to interpolate onto. Higher order stencils can be implemented by defining OtherLocator <: AbstractLocactor.

          source
          SpeedyWeather.RingGrids.AbstractOctaHEALPixGridType
          abstract type AbstractOctaHEALPixGrid{T} <: AbstractGrid{T} end

          An AbstractOctaHEALPixGrid is a horizontal grid similar to the standard OctahedralGrid, but the number of points in the ring closest to the Poles starts from 4 instead of 20, and the longitude of the first point in each ring is shifted as in HEALPixGrid. Also, different latitudes can be used.

          source
          SpeedyWeather.RingGrids.AbstractOctahedralGridType
          abstract type AbstractOctahedralGrid{T} <: AbstractGrid{T} end

          An AbstractOctahedralGrid is a horizontal grid with 16+4i longitude points on the latitude ring i starting with i=1 around the pole. Different latitudes can be used, Gaussian latitudes, equi-angle latitdes, or others.

          source
          SpeedyWeather.RingGrids.AnvilLocatorType
          AnvilLocator{NF<:AbstractFloat} <: AbtractLocator

          Contains arrays that locates grid points of a given field to be uses in an interpolation and their weights. This Locator is a 4-point average in an anvil-shaped grid-point arrangement between two latitude rings.

          source
          SpeedyWeather.RingGrids.AnvilLocatorMethod
          L = AnvilLocator(   ::Type{NF},         # number format used for the interpolation
          +                    npoints::Integer    # number of points to interpolate onto
          +                    ) where {NF<:AbstractFloat}

          Zero generator function for the 4-point average AnvilLocator. Use update_locator! to update the grid indices used for interpolation and their weights. The number format NF is the format used for the calculations within the interpolation, the input data and/or output data formats may differ.

          source
          SpeedyWeather.RingGrids.FullClenshawGridType
          G = FullClenshawGrid{T}

          A FullClenshawGrid is a regular latitude-longitude grid with an odd number of nlat equi-spaced latitudes, the central latitude ring is on the Equator. The same nlon longitudes for every latitude ring. The grid points are closer in zonal direction around the poles. The values of all grid points are stored in a vector field data that unravels the data 0 to 360˚, then ring by ring, which are sorted north to south.

          source
          SpeedyWeather.RingGrids.FullGaussianGridType
          G = FullGaussianGrid{T}

          A full Gaussian grid is a regular latitude-longitude grid that uses nlat Gaussian latitudes, and the same nlon longitudes for every latitude ring. The grid points are closer in zonal direction around the poles. The values of all grid points are stored in a vector field v that unravels the data 0 to 360˚, then ring by ring, which are sorted north to south.

          source
          SpeedyWeather.RingGrids.FullHEALPixGridType
          G = FullHEALPixGrid{T}

          A full HEALPix grid is a regular latitude-longitude grid that uses nlat latitudes from the HEALPix grid, and the same nlon longitudes for every latitude ring. The grid points are closer in zonal direction around the poles. The values of all grid points are stored in a vector field v that unravels the data 0 to 360˚, then ring by ring, which are sorted north to south.

          source
          SpeedyWeather.RingGrids.FullOctaHEALPixGridType
          G = FullOctaHEALPixGrid{T}

          A full OctaHEALPix grid is a regular latitude-longitude grid that uses nlat OctaHEALPix latitudes, and the same nlon longitudes for every latitude ring. The grid points are closer in zonal direction around the poles. The values of all grid points are stored in a vector field v that unravels the data 0 to 360˚, then ring by ring, which are sorted north to south.

          source
          SpeedyWeather.RingGrids.GridGeometryMethod
          G = GridGeometry(   Grid::Type{<:AbstractGrid},
          +                    nlat_half::Integer)

          Precomputed arrays describing the geometry of the Grid with resolution nlat_half. Contains latitudes and longitudes of grid points, their ring index j and their unravelled indices ij.

          source
          SpeedyWeather.RingGrids.HEALPixGridType
          H = HEALPixGrid{T}

          A HEALPix grid with 12 faces, each nsidexnside grid points, each covering the same area. The number of latitude rings on one hemisphere (incl Equator) nlat_half is used as resolution parameter. The values of all grid points are stored in a vector field v that unravels the data 0 to 360˚, then ring by ring, which are sorted north to south.

          source
          SpeedyWeather.RingGrids.OctaHEALPixGridType
          H = OctaHEALPixGrid{T}

          A OctaHEALPix grid with 4 base faces, each nlat_halfxnlat_half grid points, each covering the same area. The values of all grid points are stored in a vector field data that unravels the data 0 to 360˚, then ring by ring, which are sorted north to south.

          source
          SpeedyWeather.RingGrids.OctahedralClenshawGridType
          G = OctahedralClenshawGrid{T}

          An Octahedral Clenshaw grid that uses nlat equi-spaced latitudes. Like FullClenshawGrid, the central latitude ring is on the Equator. Like OctahedralGaussianGrid, the number of longitude points per latitude ring decreases towards the poles. Starting with 20 equi-spaced longitude points (starting at 0˚E) on the rings around the poles, each latitude ring towards the equator has consecuitively 4 more points, one for each face of the octahedron. E.g. 20,24,28,32,...nlon-4,nlon,nlon,nlon-4,...,32,28,24,20. The maximum number of longitue points is nlon. The values of all grid points are stored in a vector field v that unravels the data 0 to 360˚, then ring by ring, which are sorted north to south.

          source
          SpeedyWeather.RingGrids.OctahedralGaussianGridType
          G = OctahedralGaussianGrid{T}

          An Octahedral Gaussian grid that uses nlat Gaussian latitudes, but a decreasing number of longitude points per latitude ring towards the poles. Starting with 20 equi-spaced longitude points (starting at 0˚E) on the rings around the poles, each latitude ring towards the equator has consecuitively 4 more points, one for each face of the octahedron. E.g. 20,24,28,32,...nlon-4,nlon,nlon,nlon-4,...,32,28,24,20. The maximum number of longitue points is nlon. The values of all grid points are stored in a vector field v that unravels the data 0 to 360˚, then ring by ring, which are sorted north to south.

          source
          SpeedyWeather.RingGrids.Matrix!Method
          Matrix!(M::AbstractMatrix,
          +        G::OctaHEALPixGrid;
          +        quadrant_rotation=(0,1,2,3),
          +        matrix_quadrant=((2,2),(1,2),(1,1),(2,1)),
          +        )

          Sorts the gridpoints in G into the matrix M without interpolation. Every quadrant of the grid G is rotated as specified in quadrant_rotation, 0 is no rotation, 1 is 90˚ clockwise, 2 is 180˚ etc. Grid quadrants are counted eastward starting from 0˚E. The grid quadrants are moved into the matrix quadrant (i,j) as specified. Defaults are equivalent to centered at 0˚E and a rotation such that the North Pole is at M's midpoint.

          source
          SpeedyWeather.RingGrids.Matrix!Method
          Matrix!(M::AbstractMatrix,
          +        G::OctahedralClenshawGrid;
          +        quadrant_rotation=(0,1,2,3),
          +        matrix_quadrant=((2,2),(1,2),(1,1),(2,1)),
          +        )

          Sorts the gridpoints in G into the matrix M without interpolation. Every quadrant of the grid G is rotated as specified in quadrant_rotation, 0 is no rotation, 1 is 90˚ clockwise, 2 is 180˚ etc. Grid quadrants are counted eastward starting from 0˚E. The grid quadrants are moved into the matrix quadrant (i,j) as specified. Defaults are equivalent to centered at 0˚E and a rotation such that the North Pole is at M's midpoint.

          source
          SpeedyWeather.RingGrids.Matrix!Method
          Matrix!(MGs::Tuple{AbstractMatrix{T},OctaHEALPixGrid}...;kwargs...)

          Like Matrix!(::AbstractMatrix,::OctaHEALPixGrid) but for simultaneous processing of tuples ((M1,G1),(M2,G2),...) with matrices Mi and grids Gi. All matrices and grids have to be of the same size respectively.

          source
          SpeedyWeather.RingGrids.Matrix!Method
          Matrix!(MGs::Tuple{AbstractMatrix{T},OctahedralClenshawGrid}...;kwargs...)

          Like Matrix!(::AbstractMatrix,::OctahedralClenshawGrid) but for simultaneous processing of tuples ((M1,G1),(M2,G2),...) with matrices Mi and grids Gi. All matrices and grids have to be of the same size respectively.

          source
          SpeedyWeather.RingGrids.anvil_averageMethod
          anvil_average(a, b, c, d, Δab, Δcd, Δy) -> Any
          +

          The bilinear average of a,b,c,d which are values at grid points in an anvil-shaped configuration at location x, which is denoted by Δab,Δcd,Δy, the fraction of distances between a-b,c-d, and ab-cd, respectively. Note that a,c and b,d do not necessarily share the same longitude/x-coordinate. See schematic:

                      0..............1    # fraction of distance Δab between a,b
          +            |<  Δab   >|
          +
          +    0^      a -------- o - b    # anvil-shaped average of a,b,c,d at location x
          +    .Δy                |
          +    .                  |
          +    .v                 x 
          +    .                  |
          +    1         c ------ o ---- d
          +
          +              |<  Δcd >|
          +              0...............1 # fraction of distance Δcd between c,d

          ^ fraction of distance Δy between a-b and c-d.

          source
          SpeedyWeather.RingGrids.average_on_polesMethod
          average_on_poles(
          +    A::SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},
          +    rings::Vector{<:UnitRange{<:Integer}}
          +) -> Tuple{Any, Any}
          +

          Computes the average at the North and South pole from a given grid A and it's precomputed ring indices rings. The North pole average is an equally weighted average of all grid points on the northern-most ring. Similar for the South pole.

          source
          SpeedyWeather.RingGrids.average_on_polesMethod
          average_on_poles(
          +    A::SpeedyWeather.RingGrids.AbstractGrid{NF<:Integer},
          +    rings::Vector{<:UnitRange{<:Integer}}
          +) -> Tuple{Any, Any}
          +

          Method for A::Abstract{T<:Integer} which rounds the averaged values to return the same number format NF.

          source
          SpeedyWeather.RingGrids.eachringMethod
          eachring(grid::SpeedyWeather.RingGrids.AbstractGrid) -> Any
          +

          Vector{UnitRange} rings to loop over every ring of grid grid and then each grid point per ring. To be used like

          rings = eachring(grid)
          +for ring in rings
          +    for ij in ring
          +        grid[ij]
          source
          SpeedyWeather.RingGrids.eachringMethod
          eachring(
          +    grid1::SpeedyWeather.RingGrids.AbstractGrid,
          +    grids::Grid<:SpeedyWeather.RingGrids.AbstractGrid...
          +) -> Any
          +

          Same as eachring(grid) but performs a bounds check to assess that all grids in grids are of same size.

          source
          SpeedyWeather.RingGrids.get_nlonsMethod
          get_nlons(
          +    Grid::Type{<:SpeedyWeather.RingGrids.AbstractGrid},
          +    nlat_half::Integer;
          +    both_hemispheres
          +) -> Any
          +

          Returns a vector nlons for the number of longitude points per latitude ring, north to south. Provide grid Grid and its resolution parameter nlat_half. For both_hemisphere==false only the northern hemisphere (incl Equator) is returned.

          source
          SpeedyWeather.RingGrids.whichringMethod
          whichring(
          +    ij::Integer,
          +    rings::Vector{UnitRange{Int64}}
          +) -> Int64
          +

          Obtain ring index j from gridpoint ij and Vector{UnitRange} describing rind indices as obtained from eachring(::Grid)

          source
          diff --git a/previews/PR362/search/index.html b/previews/PR362/search/index.html new file mode 100644 index 000000000..3c8753805 --- /dev/null +++ b/previews/PR362/search/index.html @@ -0,0 +1,2 @@ + +Search · SpeedyWeather.jl diff --git a/previews/PR362/search_index.js b/previews/PR362/search_index.js new file mode 100644 index 000000000..ceac88c9c --- /dev/null +++ b/previews/PR362/search_index.js @@ -0,0 +1,3 @@ +var documenterSearchIndex = {"docs": +[{"location":"parameterizations/#parameterizations","page":"Parameterizations","title":"Parameterizations","text":"","category":"section"},{"location":"parameterizations/","page":"Parameterizations","title":"Parameterizations","text":"This page describes the mathematical formulation of the parameterizations used in SpeedyWeather.jl to represent physical processes in the atmosphere. Every section is followed by a brief description of implementation details.","category":"page"},{"location":"parameterizations/#Convection","page":"Parameterizations","title":"Convection","text":"","category":"section"},{"location":"parameterizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"parameterizations/#Large-scale-condensation","page":"Parameterizations","title":"Large-scale condensation","text":"","category":"section"},{"location":"parameterizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"parameterizations/#Clouds","page":"Parameterizations","title":"Clouds","text":"","category":"section"},{"location":"parameterizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"parameterizations/#Short-wave-radiation","page":"Parameterizations","title":"Short-wave radiation","text":"","category":"section"},{"location":"parameterizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"parameterizations/#Long-wave-radiation","page":"Parameterizations","title":"Long-wave radiation","text":"","category":"section"},{"location":"parameterizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"parameterizations/#Surface-fluxes-of-momentum-and-energy","page":"Parameterizations","title":"Surface fluxes of momentum and energy","text":"","category":"section"},{"location":"parameterizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"parameterizations/#Vertical-diffusion","page":"Parameterizations","title":"Vertical diffusion","text":"","category":"section"},{"location":"parameterizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"development/#Development-notes","page":"Development notes","title":"Development notes","text":"","category":"section"},{"location":"development/","page":"Development notes","title":"Development notes","text":"To run tests, from the path of your local clone of the repository do:","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"julia --project=. -e 'import Pkg; Pkg.test()'","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"To install dependencies:","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"julia --project -e 'import Pkg; Pkg.instantiate()`","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"then opening:","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"julia --project","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"you are able to using SpeedyWeather.","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"To generate the docs:","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"julia --project=docs -e 'import Pkg; Pkg.develop(path=\".\"); Pkg.instantiate()'\njulia --project=docs docs/make.jl","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"If the docs are generated successfully, you view them by opening docs/build/index.html in your favorite browser.","category":"page"},{"location":"barotropic/#Barotropic-vorticity-model","page":"Barotropic model","title":"Barotropic vorticity model","text":"","category":"section"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"The barotropic vorticity model describes the evolution of a 2D non-divergent flow with velocity components mathbfu = (uv) through self-advection, forces and dissipation. Due to the non-divergent nature of the flow, it can be described by (the vertical component) of the relative vorticity zeta = nabla times mathbfu.","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"The dynamical core presented here to solve the barotropic vorticity equations largely follows the idealized models with spectral dynamics developed at the Geophysical Fluid Dynamics Laboratory[1]: A barotropic vorticity model[2].","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"Many concepts of the Shallow water model and the Primitive equation model are similar, such that for example horizontal diffusion and the Time integration are only explained here.","category":"page"},{"location":"barotropic/#Barotropic-vorticity-equation","page":"Barotropic model","title":"Barotropic vorticity equation","text":"","category":"section"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"The barotropic vorticity equation is the prognostic equation that describes the time evolution of relative vorticity zeta with advection, Coriolis force, forcing and diffusion in a single global layer on the sphere.","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"fracpartial zetapartial t + nabla cdot (mathbfu(zeta + f)) =\nnabla times mathbfF + (-1)^n+1nunabla^2nzeta","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"We denote timet, velocity vector mathbfu = (u v), Coriolis parameter f, and hyperdiffusion (-1)^n+1 nu nabla^2n zeta (n is the hyperdiffusion order, see Horizontal diffusion). We also include a forcing vector mathbfF = (F_uF_v) which acts on the zonal velocity u and the meridional velocity v and hence its curl nabla times mathbfF is a tendency for relative vorticity zeta.","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"Starting with some relative vorticity zeta, the Laplacian is inverted to obtain the stream function Psi","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"Psi = nabla^-2zeta","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"The zonal velocity u and meridional velocity v are then the (negative) meridional gradient and zonal gradient of Psi","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"beginaligned\nu = -frac1R fracpartial Psipartial theta \nv = frac1Rcos(theta) fracpartial Psipartial phi \nendaligned","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"which is described in Derivatives in spherical coordinates. Using u and v we can then advect the absolute vorticity zeta + f. In order to avoid to calculate both the curl and the divergence of a flux we rewrite the barotropic vorticity equation as","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"fracpartial zetapartial t =\nnabla times (mathbfF + mathbfu_perp(zeta + f)) + (-1)^n+1nunabla^2nzeta","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"with mathbfu_perp = (v-u) the rotated velocity vector, because -nablacdotmathbfu = nabla times mathbfu_perp. This is the form that is solved in the BarotropicModel, as outlined in the following section.","category":"page"},{"location":"barotropic/#Algorithm","page":"Barotropic model","title":"Algorithm","text":"","category":"section"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"We briefly outline the algorithm that SpeedyWeather.jl uses in order to integrate the barotropic vorticity equation. As an initial step","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"0. Start with initial conditions of zeta_lm in spectral space and transform this model state to grid-point space:","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"Invert the Laplacian of vorticity zeta_lm to obtain the stream function Psi_lm in spectral space\nobtain zonal velocity (cos(theta)u)_lm through a Meridional derivative\nobtain meridional velocity (cos(theta)v)_lm through a Zonal derivative\nTransform zonal and meridional velocity (cos(theta)u)_lm, (cos(theta)v)_lm to grid-point space\nUnscale the cos(theta) factor to obtain uv\nTransform zeta_lm to zeta in grid-point space","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"Now loop over","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"Compute the forcing vector mathbfF = (F_uF_v) for u and v\nMultiply uv with zeta+f in grid-point space\nAdd A = F_u + v(zeta + f) and B = F_v - u(zeta + f)\nTransform these vector components to spectral space A_lm, B_lm\nCompute the curl of (AB)_lm in spectral space which is the tendency of zeta_lm\nCompute the horizontal diffusion based on that tendency\nCompute a leapfrog time step as described in Time integration with a Robert-Asselin and Williams filter\nTransform the new spectral state of zeta_lm to grid-point uvzeta as described in 0.\nPossibly do some output\nRepeat from 1.","category":"page"},{"location":"barotropic/#diffusion","page":"Barotropic model","title":"Horizontal diffusion","text":"","category":"section"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"In SpeedyWeather.jl we use hyerdiffusion through an n-th power Laplacian (-1)^n+1nabla^2n (hyper when n1) which can be implemented as a multiplication of the spectral coefficients Psi_lm with (-l(l+1))^nR^-2n (see spectral Laplacian) It is therefore computationally not more expensive to apply hyperdiffusion over diffusion as the (-l(l+1))^nR^-2n can be precomputed. Note the sign change (-1)^n+1 here is such that the dissipative nature of the diffusion operator is retained for n odd and even.","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"In SpeedyWeather.jl the diffusion is applied implicitly. For that, consider a leapfrog scheme with time step Delta t of variable zeta to obtain from time steps i-1 and i, the next time step i+1","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"zeta_i+1 = zeta_i-1 + 2Delta t dzeta","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"with dzeta being some tendency evaluated from zeta_i. Now we want to add a diffusion term (-1)^n+1nu nabla^2nzeta with coefficient nu, which however, is implicitly calculated from zeta_i+1, then","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"zeta_i+1 = zeta_i-1 + 2Delta t (dzeta + (-1)^n+1 nunabla^2nzeta_i+1)","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"As the application of (-1)^n+1nunabla^2n is, for every spectral mode, equivalent to a multiplication of a constant, we can rewrite this to","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"zeta_i+1 = fraczeta_i-1 + 2Delta t dzeta1 - 2Delta (-1)^n+1nunabla^2n","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"and expand the numerator to","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"zeta_i+1 = zeta_i-1 + 2Delta t fracdzeta + (-1)^n+1 nunabla^2nzeta_i-11 - 2Delta t (-1)^n+1nu nabla^2n","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"Hence the diffusion can be applied implicitly by updating the tendency dzeta as","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"dzeta to fracdzeta + (-1)^n+1nunabla^2nzeta_i-11 - 2Delta t nu nabla^2n","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"which only depends on zeta_i-1. Now let D_textexplicit = (-1)^n+1nunabla^2n be the explicit part and D_textimplicit = 1 - (-1)^n+1 2Delta t nunabla^2n the implicit part. Both parts can be precomputed and are D_textimplicit = 1 - 2Delta t nunabla^2n the implicit part. Both parts can be precomputed and are only an element-wise multiplication in spectral space. For every spectral harmonic lm we do","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"dzeta to D_textimplicit^-1(dzeta + D_textexplicitzeta_i-1)","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"Hence 2 multiplications and 1 subtraction with precomputed constants. However, we will normalize the (hyper-)Laplacians as described in the following. This also will take care of the alternating sign such that the diffusion operation is dissipative regardless the power n.","category":"page"},{"location":"barotropic/#Normalization-of-diffusion","page":"Barotropic model","title":"Normalization of diffusion","text":"","category":"section"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"In physics, the Laplace operator nabla^2 is often used to represent diffusion due to viscosity in a fluid or diffusion that needs to be added to retain numerical stability. In both cases, the coefficient is nu of units textm^2texts^-1 and the full operator reads as nu nabla^2 with units (textm^2texts^-1)(textm^-2) = texts^-1. This motivates us to normalize the Laplace operator by a constant of units textm^-2 and the coefficient by its inverse such that it becomes a damping timescale of unit texts^-1. Given the application in spectral space we decide to normalize by the largest eigenvalue -l_textmax(l_textmax+1) such that all entries in the discrete spectral Laplace operator are in 01. This also has the effect that the alternating sign drops out, such that higher wavenumbers are always dampened and not amplified. The normalized coefficient nu^* = l_textmax(l_textmax+1)nu (always positive) is therefore reinterpreted as the (inverse) time scale at which the highest wavenumber is dampened to zero due to diffusion. Together we have ","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"D^textexplicit_lm = -nu^* fracl(l+1)l_textmax(l_textmax+1)","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"and the hyper-Laplacian of power n follows as","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"D^textexplicitn_lm = -nu^* left(fracl(l+1)l_textmax(l_textmax+1)right)^n","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"and the implicit part is accordingly D^textimplicitn_lm = 1 - 2Delta t D^textexplicitn_lm. Note that the diffusion time scale nu^* is then also scaled by the radius, see next section.","category":"page"},{"location":"barotropic/#scaling","page":"Barotropic model","title":"Radius scaling","text":"","category":"section"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"Similar to a non-dimensionalization of the equations, SpeedyWeather.jl scales the barotropic vorticity equation with R^2 to obtain normalized gradient operators as follows. A scaling for vorticity zeta and stream function Psi is used that is","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"tildezeta = zeta R tildePsi = Psi R^-1","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"This is also convenient as vorticity is often 10^-5text s^-1 in the atmosphere, but the streamfunction more like 10^5text m^2text s^-1 and so this scaling brings both closer to 1 with a typical radius of the Earth of 6371km. The inversion of the Laplacians in order to obtain Psi from zeta therefore becomes","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"tildezeta = tildenabla^2 tildePsi","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"where the dimensionless gradients simply omit the scaling with 1R, tildenabla = Rnabla. The Barotropic vorticity equation scaled with R^2 is","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"partial_tildettildezeta + tildenabla cdot (mathbfu(tildezeta + tildef)) =\nnabla times tildemathbfF + (-1)^n+1tildenutildenabla^2ntildezeta","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"with","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"tildet = tR^-1, the scaled time t\nmathbfu = (uv), the velocity vector (no scaling applied)\ntildef = fR, the scaled Coriolis parameter f\ntildemathbfF = RmathbfF, the scaled forcing vector mathbfF\ntildenu = nu^* R, the scaled diffusion coefficient nu^*, which itself is normalized to a damping time scale, see Normalization of diffusion.","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"So scaling with the radius squared means we can use dimensionless operators, however, this comes at the cost of needing to deal with both a time step in seconds as well as a scaled time step in seconds per meter, which can be confusing. Furthermore, some constants like Coriolis or the diffusion coefficient need to be scaled too during initialisation, which may be confusing too because values are not what users expect them to be. SpeedyWeather.jl follows the logic that the scaling to the prognostic variables is only applied just before the time integration and variables are unscaled for output and after the time integration finished. That way, the scaling is hidden as much as possible from the user. In hopefully many other cases it is clearly denoted that a variable or constant is scaled.","category":"page"},{"location":"barotropic/#leapfrog","page":"Barotropic model","title":"Time integration","text":"","category":"section"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"SpeedyWeather.jl is based on the Leapfrog time integration, which, for relative vorticity zeta, is in its simplest form","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"fraczeta_i+1 - zeta_i-12Delta t = RHS(zeta_i)","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"meaning we step from the previous time step i-1, leapfrogging over the current time stepi to the next time step i+1 by evaluating the tendencies on the right-hand side RHS at the current time step i. The time stepping is done in spectral space. Once the right-hand side RHS is evaluated, leapfrogging is a linear operation, meaning that its simply applied to every spectral coefficient zeta_lm as one would evaluate it on every grid point in grid-point models.","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"For the Leapfrog time integration two time steps of the prognostic variables have to be stored, i-1 and i. Time step i is used to evaluate the tendencies which are then added to i-1 in a step that also swaps the indices for the next time step i to i-1 and i+1 to i, so that no additional memory than two time steps have to be stored at the same time.","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"The Leapfrog time integration has to be initialised with an Euler forward step in order to have a second time step i+1 available when starting from i to actually leapfrog over. SpeedyWeather.jl therefore does two initial time steps that are different from the leapfrog time steps that follow and that have been described above.","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"an Euler forward step with Delta t2, then\none leapfrog time step with Delta t, then\nleapfrog with 2 Delta t till the end","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"This is particularly done in a way that after 2. we have t=0 at i-1 and t=Delta t at i available so that 3. can start the leapfrogging without any offset from the intuitive spacing 0Delta t 2Delta t 3Delta t. The following schematic can be useful","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":" time at step i-1 time at step i time step at i+1\nInitial conditions t = 0 \n1: Euler (T) quad t = 0 t=Delta t2 \n2: Leapfrog with Delta t t = 0 (T) quad t = Delta t2 t = Delta t\n3 to n: Leapfrog with 2Delta t t-Delta t (T) qquad quad quad t t+Delta t","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"The time step that is used to evaluate the tendencies is denoted with (T). It is always the time step furthest in time that is available.","category":"page"},{"location":"barotropic/#Robert-Asselin-and-Williams-filter","page":"Barotropic model","title":"Robert-Asselin and Williams filter","text":"","category":"section"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"The standard leapfrog time integration is often combined with a Robert-Asselin filter[Robert66][Asselin72] to dampen a computational mode. The idea is to start with a standard leapfrog step to obtain the next time step i+1 but then to correct the current time step i by applying a filter which dampens the computational mode. The filter looks like a discrete Laplacian in time with a (1 -2 1) stencil, and so, maybe unsurprisingly, is efficient to filter out a \"grid-scale oscillation\" in time, aka the computational mode. Let v be the unfiltered variable and u be the filtered variable, F the right-hand side tendency, then the standard leapfrog step is","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"v_i+1 = u_i-1 + 2Delta tF(v_i)","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"Meaning we start with a filtered variable u at the previous time step i-1, evaluate the tendency F(v_i) based on the current time step i to obtain an unfiltered next time step v_i+1. We then filter the current time step i (which will become i-1 on the next iteration)","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"u_i = v_i + fracnu2(v_i+1 - 2v_i + u_i-1)","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"by adding a discrete Laplacian with coefficient tfracnu2 to it, evaluated from the available filtered and unfiltered time steps centred around i: v_i-1 is not available anymore because it was overwritten by the filtering at the previous iteration, u_i u_i+1 are not filtered yet when applying the Laplacian. The filter parameter nu is typically chosen between 0.01-0.2, with stronger filtering for higher values.","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"Williams[Williams2009] then proposed an additional filter step to regain accuracy that is otherwise lost with a strong Robert-Asselin filter[Amezcua2011][Williams2011]. Now let w be unfiltered, v be once filtered, and u twice filtered, then","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"beginaligned\nw_i+1 = u_i-1 + 2Delta tF(v_i) \nu_i = v_i + fracnualpha2(w_i+1 - 2v_i + u_i-1) \nv_i+1 = w_i+1 - fracnu(1-alpha)2(w_i+1 - 2v_i + u_i-1)\nendaligned","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"with the Williams filter parameter alpha in 051. For alpha=1 we're back with the Robert-Asselin filter (the first two lines).","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"The Laplacian in the parentheses is often called a displacement, meaning that the filtered value is displaced (or corrected) in the direction of the two surrounding time steps. The Williams filter now also applies the same displacement, but in the opposite direction to the next time step i+1 as a correction step (line 3 above) for a once-filtered value v_i+1 which will then be twice-filtered by the Robert-Asselin filter on the next iteration. For more details see the referenced publications.","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"The initial Euler step (see Time integration, Table) is not filtered. Both the the Robert-Asselin and Williams filter are then switched on for all following leapfrog time steps.","category":"page"},{"location":"barotropic/#References","page":"Barotropic model","title":"References","text":"","category":"section"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"[1]: Geophysical Fluid Dynamics Laboratory, Idealized models with spectral dynamics","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"[2]: Geophysical Fluid Dynamics Laboratory, The barotropic vorticity equation.","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"[Robert66]: Robert, André. “The Integration of a Low Order Spectral Form of the Primitive Meteorological Equations.” Journal of the Meteorological Society of Japan 44 (1966): 237-245.","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"[Asselin72]: ASSELIN, R., 1972: Frequency Filter for Time Integrations. Mon. Wea. Rev., 100, 487–490, doi:10.1175/1520-0493(1972)100<0487:FFFTI>2.3.CO;2","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"[Williams2009]: Williams, P. D., 2009: A Proposed Modification to the Robert–Asselin Time Filter. Mon. Wea. Rev., 137, 2538–2546, 10.1175/2009MWR2724.1.","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"[Amezcua2011]: Amezcua, J., E. Kalnay, and P. D. Williams, 2011: The Effects of the RAW Filter on the Climatology and Forecast Skill of the SPEEDY Model. Mon. Wea. Rev., 139, 608–619, doi:10.1175/2010MWR3530.1. ","category":"page"},{"location":"barotropic/","page":"Barotropic model","title":"Barotropic model","text":"[Williams2011]: Williams, P. D., 2011: The RAW Filter: An Improvement to the Robert–Asselin Filter in Semi-Implicit Integrations. Mon. Wea. Rev., 139, 1996–2007, doi:10.1175/2010MWR3601.1. ","category":"page"},{"location":"installation/#Installation","page":"Installation","title":"Installation","text":"","category":"section"},{"location":"installation/","page":"Installation","title":"Installation","text":"SpeedyWeather.jl is registered in the Julia Registry. In most cases just open the Julia REPL and type","category":"page"},{"location":"installation/","page":"Installation","title":"Installation","text":"julia> using Pkg\njulia> Pkg.add(\"SpeedyWeather\")","category":"page"},{"location":"installation/","page":"Installation","title":"Installation","text":"or, equivalently, (] opens the package manager)","category":"page"},{"location":"installation/","page":"Installation","title":"Installation","text":"julia>] add SpeedyWeather","category":"page"},{"location":"installation/","page":"Installation","title":"Installation","text":"which will automatically install the latest release and all necessary dependencies. If you run into any troubles please raise an issue.","category":"page"},{"location":"installation/","page":"Installation","title":"Installation","text":"However, you may want to make use of the latest features, then install directly from the main branch with","category":"page"},{"location":"installation/","page":"Installation","title":"Installation","text":"julia> Pkg.add(url=\"https://github.com/SpeedyWeather/SpeedyWeather.jl\",rev=\"main\")","category":"page"},{"location":"installation/","page":"Installation","title":"Installation","text":"other branches than main can be similarly installed. You can also type, equivalently,","category":"page"},{"location":"installation/","page":"Installation","title":"Installation","text":"julia>] add https://github.com/SpeedyWeather/SpeedyWeather.jl#main","category":"page"},{"location":"installation/#Compatibility-with-Julia-versions","page":"Installation","title":"Compatibility with Julia versions","text":"","category":"section"},{"location":"installation/","page":"Installation","title":"Installation","text":"SpeedyWeather.jl usually lives on the latest minor release and/or its predecessor. At the moment (June 2023) this means ","category":"page"},{"location":"installation/","page":"Installation","title":"Installation","text":"Julia v1.8\nJulia v1.9","category":"page"},{"location":"installation/","page":"Installation","title":"Installation","text":"are supported, but we dropped the support of earlier versions.","category":"page"},{"location":"output/#NetCDF-output","page":"NetCDF output","title":"NetCDF output","text":"","category":"section"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"SpeedyWeather.jl uses NetCDF to output the data of a simulation. The following describes the details of this and how to change the way in which the NetCDF output is written. There are many options to this available.","category":"page"},{"location":"output/#Accessing-the-NetCDF-output-writer","page":"NetCDF output","title":"Accessing the NetCDF output writer","text":"","category":"section"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"The output writer is a component of every Model, i.e. BarotropicModel, ShallowWaterModel, PrimitiveDryModel and PrimitiveWetModel, hence a non-default output writer can be passed on as a keyword argument to the model constructor","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"julia> using SpeedyWeather\njulia> spectral_grid = SpectralGrid()\njulia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry)\njulia> model = PrimitiveDryModel(;spectral_grid, output=my_output_writer)","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"So after we have defined the grid through the SpectralGrid object we can use and change the implemented OutputWriter by passing on the following arguments","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"julia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry, kwargs...)","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"the spectral_grid has to be the first argument then the model type (Barotropic, ShallowWater, PrimitiveDry, PrimitiveWet) which helps the output writer to make default choices on which variables to output. However, we can also pass on further keyword arguments. So let's start with an example.","category":"page"},{"location":"output/#Example-1:-NetCDF-output-every-hour","page":"NetCDF output","title":"Example 1: NetCDF output every hour","text":"","category":"section"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"If we want to increase the frequency of the output we can choose output_dt (default =6 in hours) like so","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"julia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry, output_dt=1)\njulia> model = PrimitiveDryModel(;spectral_grid, output=my_output_writer)","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"which will now output every hour. It is important to pass on the new output writer my_output_writer to the model constructor, otherwise it will not be part of your model and the default is used instead. Note that output_dt has to be understood as the minimum frequency or maximum output time step. Example, we run the model at a resolution of T85 and the time step is going to be 670s","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"julia> spectral_grid = SpectralGrid(trunc=85)\njulia> time_stepper = Leapfrog(spectral_grid)\nLeapfrog{Float32}:\n...\n Δt_sec::Int64 = 670\n...","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"This means that after 32 time steps 5h 57min and 20s will have passed where output will happen as the next time step would be >6h. The time axis of the NetCDF output will look like","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"julia> using NCDatasets\njulia> ds = NCDataset(\"run_0001/output.nc\");\njulia> ds[\"time\"][:]\n5-element Vector{Dates.DateTime}:\n 2000-01-01T00:00:00\n 2000-01-01T05:57:20\n 2000-01-01T11:54:40\n 2000-01-01T17:52:00\n 2000-01-01T23:49:20\n\njulia> diff(ds[\"time\"][:])\n4-element Vector{Dates.Millisecond}:\n 21440000 milliseconds\n 21440000 milliseconds\n 21440000 milliseconds\n 21440000 milliseconds","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"This is so that we don't interpolate in time during output to hit exactly every 6 hours, but at the same time have a constant spacing in time between output time steps.","category":"page"},{"location":"output/#Example-2:-Output-onto-a-higher/lower-resolution-grid","page":"NetCDF output","title":"Example 2: Output onto a higher/lower resolution grid","text":"","category":"section"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"Say we want to run the model at a given horizontal resolution but want to output on another resolution, the OutputWriter takes as argument output_Grid<:AbstractFullGrid and nlat_half::Int. So for example output_Grid=FullClenshawGrid and nlat_half=48 will always interpolate onto a regular 192x95 longitude-latitude grid of 1.875˚ resolution, regardless the grid and resolution used for the model integration.","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"julia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry, output_Grid=FullClenshawGrid, nlat_half=48)","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"Note that by default the output is on the corresponding full of the grid used in the dynamical core so that interpolation only happens at most in the zonal direction as they share the location of the latitude rings. You can check this by","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"julia> RingGrids.full_grid(OctahedralGaussianGrid)\nFullGaussianGrid","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"So the corresponding full grid of an OctahedralGaussianGrid is the FullGaussiangrid and the same resolution nlat_half is chosen by default in the output writer (which you can change though as shown above). Overview of the corresponding full grids","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"Grid Corresponding full grid\nFullGaussianGrid FullGaussianGrid\nFullClenshawGrid FullClenshawGrid\nOctahadralGaussianGrid FullGaussianGrid\nOctahedralClensawhGrid FullClenshawGrid\nHEALPixGrid FullHEALPixGrid\nOctaHEALPixGrid FullOctaHEALPixGrid","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"The grids FullHEALPixGrid, FullOctaHEALPixGrid share the same latitude rings as their reduced grids, but have always as many longitude points as they are at most around the equator. These grids are not tested in the dynamical core (but you may use them experimentally) and mostly designed for output purposes.","category":"page"},{"location":"output/#Example-3:-Changing-the-output-path-or-identification","page":"NetCDF output","title":"Example 3: Changing the output path or identification","text":"","category":"section"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"That's easy by passing on path=\"/my/favourite/path/\" and the folder run_* with * the identification of the run (that's the id keyword, which can be manually set but is also automatically determined as a number counting up depending on which folders already exist) will be created within.","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"julia> path = pwd()\n\"/Users/milan\"\njulia> my_output_writer = OutputWriter(spectral_grid, PrimitiveDry, path=path)","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"This folder must already exist. If you want to give your run a name/identification you can pass on id","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"julia> my_output_writer = OutputWriter(spectral_grid,PrimitiveDry,id=\"diffusion_test\");","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"which will be used instead of a 4 digit number like 0001, 0002 which is automatically determined if id is not provided. You will see the id of the run in the progress bar","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"Weather is speedy: run diffusion_test 100%|███████████████████████| Time: 0:00:12 (19.20 years/day)","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"and the run folder, here run_diffusion_test, is also named accordingly","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"shell> ls\n...\nrun_diffusion_test\n...","category":"page"},{"location":"output/#Further-options","page":"NetCDF output","title":"Further options","text":"","category":"section"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"Further options are described in the OutputWriter docstring, (also accessible via julia>?OutputWriter for example). Note that some fields are actual options, but others are derived from the options you provided or are arrays/objects the output writer needs, but shouldn't be passed on by the user. The actual options are declared as [OPTION] in the following","category":"page"},{"location":"output/","page":"NetCDF output","title":"NetCDF output","text":"OutputWriter","category":"page"},{"location":"functions/#Function-and-type-index","page":"Function and type index","title":"Function and type index","text":"","category":"section"},{"location":"functions/","page":"Function and type index","title":"Function and type index","text":"Modules = [SpeedyWeather]","category":"page"},{"location":"functions/#SpeedyWeather.AbstractDevice","page":"Function and type index","title":"SpeedyWeather.AbstractDevice","text":"abstract type AbstractDevice\n\nSupertype of all devices SpeedyWeather.jl can ran on\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.BarotropicModel","page":"Function and type index","title":"SpeedyWeather.BarotropicModel","text":"The BarotropicModel struct holds all other structs that contain precalculated constants, whether scalars or arrays that do not change throughout model integration.\n\nspectral_grid::SpectralGrid: dictates resolution for many other components\nplanet::SpeedyWeather.AbstractPlanet: contains physical and orbital characteristics\natmosphere::SpeedyWeather.AbstractAtmosphere\nforcing::SpeedyWeather.AbstractForcing{NF} where NF<:AbstractFloat\ninitial_conditions::SpeedyWeather.InitialConditions\ntime_stepping::SpeedyWeather.TimeStepper{NF} where NF<:AbstractFloat\nspectral_transform::SpectralTransform\nhorizontal_diffusion::SpeedyWeather.HorizontalDiffusion{NF} where NF<:AbstractFloat\nimplicit::SpeedyWeather.AbstractImplicit{NF} where NF<:AbstractFloat\ngeometry::Geometry\nconstants::DynamicsConstants\ndevice_setup::SpeedyWeather.DeviceSetup\noutput::SpeedyWeather.AbstractOutputWriter\nfeedback::SpeedyWeather.AbstractFeedback\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.CPUDevice","page":"Function and type index","title":"SpeedyWeather.CPUDevice","text":"CPUDevice <: AbstractDevice\n\nIndicates that SpeedyWeather.jl runs on a single CPU \n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.Clock","page":"Function and type index","title":"SpeedyWeather.Clock","text":"Clock struct keeps track of the model time, how many days to integrate for and how many time steps this takes\n\ntime::Dates.DateTime: current model time\nn_days::Float64: number of days to integrate for, set in run!(::Simulation)\nn_timesteps::Int64: number of time steps to integrate for, set in initialize!(::Clock,::TimeStepper)\n\n.\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.ColumnVariables","page":"Function and type index","title":"SpeedyWeather.ColumnVariables","text":"Mutable struct that contains all prognostic (copies thereof) and diagnostic variables in a single column needed to evaluate the physical parametrizations. For now the struct is mutable as we will reuse the struct to iterate over horizontal grid points. Every column vector has nlev entries, from [1] at the top to [end] at the lowermost model level at the planetary boundary layer.\n\nnlev::Int64\nnband::Int64\nn_stratosphere_levels::Int64\njring::Int64\nlond::AbstractFloat\nlatd::AbstractFloat\nu::Vector{NF} where NF<:AbstractFloat\nv::Vector{NF} where NF<:AbstractFloat\ntemp::Vector{NF} where NF<:AbstractFloat\nhumid::Vector{NF} where NF<:AbstractFloat\nln_pres::Vector{NF} where NF<:AbstractFloat\npres::Vector{NF} where NF<:AbstractFloat\nu_tend::Vector{NF} where NF<:AbstractFloat\nv_tend::Vector{NF} where NF<:AbstractFloat\ntemp_tend::Vector{NF} where NF<:AbstractFloat\nhumid_tend::Vector{NF} where NF<:AbstractFloat\ngeopot::Vector{NF} where NF<:AbstractFloat\nflux_u_upward::Vector{NF} where NF<:AbstractFloat\nflux_u_downward::Vector{NF} where NF<:AbstractFloat\nflux_v_upward::Vector{NF} where NF<:AbstractFloat\nflux_v_downward::Vector{NF} where NF<:AbstractFloat\nflux_temp_upward::Vector{NF} where NF<:AbstractFloat\nflux_temp_downward::Vector{NF} where NF<:AbstractFloat\nflux_humid_upward::Vector{NF} where NF<:AbstractFloat\nflux_humid_downward::Vector{NF} where NF<:AbstractFloat\nsat_humid::Vector{NF} where NF<:AbstractFloat\nsat_vap_pres::Vector{NF} where NF<:AbstractFloat\ndry_static_energy::Vector{NF} where NF<:AbstractFloat\nmoist_static_energy::Vector{NF} where NF<:AbstractFloat\nhumid_half::Vector{NF} where NF<:AbstractFloat\nsat_humid_half::Vector{NF} where NF<:AbstractFloat\nsat_moist_static_energy::Vector{NF} where NF<:AbstractFloat\ndry_static_energy_half::Vector{NF} where NF<:AbstractFloat\nsat_moist_static_energy_half::Vector{NF} where NF<:AbstractFloat\nconditional_instability::Bool\nactivate_convection::Bool\ncloud_top::Int64\nexcess_humidity::AbstractFloat\ncloud_base_mass_flux::AbstractFloat\nprecip_convection::AbstractFloat\nnet_flux_humid::Vector{NF} where NF<:AbstractFloat\nnet_flux_dry_static_energy::Vector{NF} where NF<:AbstractFloat\nentrainment_profile::Vector{NF} where NF<:AbstractFloat\nprecip_large_scale::AbstractFloat\nwvi::Matrix{NF} where NF<:AbstractFloat\ntau2::Matrix{NF} where NF<:AbstractFloat\ndfabs::Vector{NF} where NF<:AbstractFloat\nfsfcd::AbstractFloat\nst4a::Matrix{NF} where NF<:AbstractFloat\nflux::Vector{NF} where NF<:AbstractFloat\nfsfcu::AbstractFloat\nts::AbstractFloat\nfsfc::AbstractFloat\nftop::AbstractFloat\nstratc::Vector{NF} where NF<:AbstractFloat\ntyear::AbstractFloat\ncsol::AbstractFloat\ntopsr::AbstractFloat\nfsol::AbstractFloat\nozupp::AbstractFloat\nozone::AbstractFloat\nzenit::AbstractFloat\nstratz::AbstractFloat\nalbsfc::AbstractFloat\nssrd::AbstractFloat\nssr::AbstractFloat\ntsr::AbstractFloat\ntend_t_rsw::Vector{NF} where NF<:AbstractFloat\nnorm_pres::AbstractFloat\nicltop::Int64\ncloudc::AbstractFloat\nclstr::AbstractFloat\nqcloud::AbstractFloat\nfmask::AbstractFloat\nrel_hum::Vector{NF} where NF<:AbstractFloat\ngrad_dry_static_energy::AbstractFloat\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.DeviceSetup","page":"Function and type index","title":"SpeedyWeather.DeviceSetup","text":"DeviceSetup{S<:AbstractDevice}\n\nHolds information about the device the model is running on and workgroup size. \n\ndevice::AbstractDevice: Device the model is running on \ndevice_KA::KernelAbstractions.Device: Device for use with KernelAbstractions\nn: workgroup size \n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.DiagnosticVariables","page":"Function and type index","title":"SpeedyWeather.DiagnosticVariables","text":"DiagnosticVariables{Grid<:AbstractGrid,NF<:AbstractFloat}\n\nStruct holding the diagnostic variables.\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.DynamicsConstants","page":"Function and type index","title":"SpeedyWeather.DynamicsConstants","text":"Struct holding constants needed at runtime for the dynamical core in number format NF.\n\nradius::AbstractFloat: Radius of Planet [m]\nrotation::AbstractFloat: Angular frequency of Planet's rotation [1/s]\ngravity::AbstractFloat: Gravitational acceleration [m/s^2]\nlayer_thickness::AbstractFloat: shallow water layer thickness [m]\nR_dry::AbstractFloat: specific gas constant for dry air [J/kg/K]\nR_vapour::AbstractFloat: specific gas constant for water vapour [J/kg/K]\nμ_virt_temp::AbstractFloat: used in Tv = T(1+μq) for virt temp Tv(T,q) calculation\ncₚ::AbstractFloat: specific heat at constant pressure [J/K/kg]\nκ::AbstractFloat: = R_dry/cₚ, gas const for air over heat capacity\nwater_density::AbstractFloat: water density [kg/m³]\nf_coriolis::Vector{NF} where NF<:AbstractFloat: coriolis frequency 1/s = 2Ωsin(lat)radius\nσ_lnp_A::Vector{NF} where NF<:AbstractFloat: σ-related factor A needed for adiabatic terms\nσ_lnp_B::Vector{NF} where NF<:AbstractFloat: σ-related factor B needed for adiabatic terms\nΔp_geopot_half::Vector{NF} where NF<:AbstractFloat: = R*(ln(pk+1) - ln(pk+1/2)), for half level geopotential\nΔp_geopot_full::Vector{NF} where NF<:AbstractFloat: = R*(ln(pk+1/2) - ln(pk)), for full level geopotential\ntemp_ref_profile::Vector{NF} where NF<:AbstractFloat: reference temperature profile\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.DynamicsConstants-Tuple{SpectralGrid, SpeedyWeather.AbstractPlanet, SpeedyWeather.AbstractAtmosphere, Geometry}","page":"Function and type index","title":"SpeedyWeather.DynamicsConstants","text":"DynamicsConstants(\n spectral_grid::SpectralGrid,\n planet::SpeedyWeather.AbstractPlanet,\n atmosphere::SpeedyWeather.AbstractAtmosphere,\n geometry::Geometry\n) -> Any\n\n\nGenerator function for a DynamicsConstants struct.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.DynamicsVariables","page":"Function and type index","title":"SpeedyWeather.DynamicsVariables","text":"DynamicsVariables{Grid<:AbstractGrid,NF<:AbstractFloat}\n\nStruct holding intermediate quantities for the dynamics of a given layer.\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.Earth","page":"Function and type index","title":"SpeedyWeather.Earth","text":"Create a struct Earth<:AbstractPlanet, with the following physical/orbital characteristics. Note that radius is not part of it as this should be chosen in SpectralGrid. Keyword arguments are\n\nrotation::Float64: angular frequency of Earth's rotation [rad/s]\ngravity::Float64: gravitational acceleration [m/s^2]\ndaily_cycle::Bool: switch on/off daily cycle\nlength_of_day::Float64: [hrs] in a day\nseasonal_cycle::Bool: switch on/off seasonal cycle\nlength_of_year::Float64: [days] in a year\nequinox::Dates.DateTime: time of spring equinox (year irrelevant)\naxial_tilt::Float64: angle [˚] rotation axis tilt wrt to orbit\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.EarthAtmosphere","page":"Function and type index","title":"SpeedyWeather.EarthAtmosphere","text":"Create a struct EarthAtmosphere<:AbstractPlanet, with the following physical/chemical characteristics. Note that radius is not part of it as this should be chosen in SpectralGrid. Keyword arguments are\n\nmol_mass_dry_air::Float64: molar mass of dry air [g/mol]\nmol_mass_vapour::Float64: molar mass of water vapour [g/mol]\ncₚ::Float64: specific heat at constant pressure [J/K/kg]\nR_gas::Float64: universal gas constant [J/K/mol]\nR_dry::Float64: specific gas constant for dry air [J/kg/K]\nR_vapour::Float64: specific gas constant for water vapour [J/kg/K]\nwater_density::Float64: water density [kg/m³]\nlatent_heat_condensation::Float64: latent heat of condensation [J/g] for consistency with specific humidity [g/Kg], also called alhc\nlatent_heat_sublimation::Float64: latent heat of sublimation [J/g], also called alhs\nstefan_boltzmann::Float64: stefan-Boltzmann constant [W/m²/K⁴]\nlapse_rate::Float64: moist adiabatic temperature lapse rate -dTdz [K/km]\ntemp_ref::Float64: absolute temperature at surface z=0 [K]\ntemp_top::Float64: absolute temperature in stratosphere [K]\nΔT_stratosphere::Float64: for stratospheric lapse rate [K] after Jablonowski\nσ_tropopause::Float64: start of the stratosphere in sigma coordinates\nσ_boundary_layer::Float64: top of the planetary boundary layer in sigma coordinates\nscale_height::Float64: scale height for pressure [km]\npres_ref::Float64: surface pressure [hPa]\nscale_height_humid::Float64: scale height for specific humidity [km]\nrelhumid_ref::Float64: relative humidity of near-surface air [1]\nwater_pres_ref::Float64: saturation water vapour pressure [Pa]\nlayer_thickness::Float64: layer thickness for the shallow water model [km]\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.EarthOrography","page":"Function and type index","title":"SpeedyWeather.EarthOrography","text":"Earth's orography read from file, with smoothing.\n\npath::String: path to the folder containing the orography file, pkg path default\nfile::String: filename of orography\nfile_Grid::Type{<:SpeedyWeather.RingGrids.AbstractGrid}: Grid the orography file comes on\nscale::Float64: scale orography by a factor\nsmoothing::Bool: smooth the orography field?\nsmoothing_power::Float64: power of Laplacian for smoothing\nsmoothing_strength::Float64: highest degree l is multiplied by\nsmoothing_truncation::Int64: resolution of orography in spectral trunc\norography::SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat: height [m] on grid-point space.\ngeopot_surf::LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat: surface geopotential, height*gravity [m²/s²]\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.EarthOrography-Tuple{SpectralGrid}","page":"Function and type index","title":"SpeedyWeather.EarthOrography","text":"EarthOrography(\n spectral_grid::SpectralGrid;\n kwargs...\n) -> Any\n\n\nGenerator function pulling the resolution information from spectral_grid.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.Feedback","page":"Function and type index","title":"SpeedyWeather.Feedback","text":"Feedback() -> Feedback\nFeedback(verbose::Bool) -> Feedback\nFeedback(verbose::Bool, debug::Bool) -> Feedback\n\n\nGenerator function for a Feedback struct.\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.Feedback-2","page":"Function and type index","title":"SpeedyWeather.Feedback","text":"Feedback struct that contains options and object for command-line feedback like the progress meter.\n\nverbose::Bool: print feedback to REPL?\ndebug::Bool: check for NaRs in the prognostic variables\noutput::Bool: write a progress.txt file? State synced with OutputWriter.output\nid::Union{Int64, String}: identification of run, taken from ::OutputWriter\nrun_path::String: path to run folder, taken from ::OutputWriter\nprogress_meter::ProgressMeter.Progress: struct containing everything progress related\nprogress_txt::Union{Nothing, IOStream}: txt is a Nothing in case of no output\nnars_detected::Bool: did Infs/NaNs occur in the simulation?\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.GPUDevice","page":"Function and type index","title":"SpeedyWeather.GPUDevice","text":"GPUDevice <: AbstractDevice\n\nIndicates that SpeedyWeather.jl runs on a single GPU\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.GenLogisticCoefs","page":"Function and type index","title":"SpeedyWeather.GenLogisticCoefs","text":"Coefficients of the generalised logistic function to describe the vertical coordinate. Default coefficients A,K,C,Q,B,M,ν are fitted to the old L31 configuration at ECMWF.\n\nFollowing the notation of https://en.wikipedia.org/wiki/Generalisedlogisticfunction (Dec 15 2021).\n\nChange default parameters for more/fewer levels in the stratosphere vs troposphere vs boundary layer.\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.Geometry","page":"Function and type index","title":"SpeedyWeather.Geometry","text":"Construct Geometry struct containing parameters and arrays describing an iso-latitude grid <:AbstractGrid and the vertical levels. Pass on SpectralGrid to calculate the following fields\n\nspectral_grid::SpectralGrid: SpectralGrid that defines spectral and grid resolution\nGrid::Type{<:SpeedyWeather.RingGrids.AbstractGrid}: grid of the dynamical core\nnlat_half::Int64: resolution parameter nlat_half of Grid, # of latitudes on one hemisphere (incl Equator)\nnlon_max::Int64: maximum number of longitudes (at/around Equator)\nnlon::Int64: =nlon_max, same (used for compatibility), TODO: still needed?\nnlat::Int64: number of latitude rings\nnlev::Int64: number of vertical levels\nnpoints::Int64: total number of grid points\nradius::AbstractFloat: Planet's radius [m]\nlatd::Vector{Float64}: array of latitudes in degrees (90˚...-90˚)\nlond::Vector{Float64}: array of longitudes in degrees (0...360˚), empty for non-full grids\nlonds::Vector{NF} where NF<:AbstractFloat: longitude (-180˚...180˚) for each grid point in ring order\nlatds::Vector{NF} where NF<:AbstractFloat: latitude (-90˚...˚90) for each grid point in ring order\nsinlat::Vector{NF} where NF<:AbstractFloat: sin of latitudes\ncoslat::Vector{NF} where NF<:AbstractFloat: cos of latitudes\ncoslat⁻¹::Vector{NF} where NF<:AbstractFloat: = 1/cos(lat)\ncoslat²::Vector{NF} where NF<:AbstractFloat: = cos²(lat)\ncoslat⁻²::Vector{NF} where NF<:AbstractFloat: # = 1/cos²(lat)\nσ_levels_half::Vector{NF} where NF<:AbstractFloat: σ at half levels, σ_k+1/2\nσ_levels_full::Vector{NF} where NF<:AbstractFloat: σ at full levels, σₖ\nσ_levels_thick::Vector{NF} where NF<:AbstractFloat: σ level thicknesses, σₖ₊₁ - σₖ\nln_σ_levels_full::Vector{NF} where NF<:AbstractFloat: log of σ at full levels, include surface (σ=1) as last element\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.Geometry-Tuple{SpectralGrid}","page":"Function and type index","title":"SpeedyWeather.Geometry","text":"Geometry(spectral_grid::SpectralGrid) -> Any\n\n\nGenerator function for Geometry struct based on spectral_grid.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.GridVariables","page":"Function and type index","title":"SpeedyWeather.GridVariables","text":"GridVariables{NF<:AbstractFloat}\n\nStruct holding the prognostic spectral variables of a given layer in grid point space.\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.HeldSuarez","page":"Function and type index","title":"SpeedyWeather.HeldSuarez","text":"Struct that defines the temperature relaxation from Held and Suarez, 1996 BAMS\n\nnlat::Int64: number of latitude rings\nnlev::Int64: number of vertical levels\nσb::Float64: sigma coordinate below which faster surface relaxation is applied\nrelax_time_slow::Float64: time scale [hrs] for slow global relaxation\nrelax_time_fast::Float64: time scale [hrs] for faster tropical surface relaxation\nTmin::Float64: minimum equilibrium temperature [K]\nTmax::Float64: maximum equilibrium temperature [K]\nΔTy::Float64: meridional temperature gradient [K]\nΔθz::Float64: vertical temperature gradient [K]\nκ::Base.RefValue{NF} where NF<:AbstractFloat\np₀::Base.RefValue{NF} where NF<:AbstractFloat\ntemp_relax_freq::Matrix{NF} where NF<:AbstractFloat\ntemp_equil_a::Vector{NF} where NF<:AbstractFloat\ntemp_equil_b::Vector{NF} where NF<:AbstractFloat\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.HeldSuarez-Tuple{SpectralGrid}","page":"Function and type index","title":"SpeedyWeather.HeldSuarez","text":"HeldSuarez(SG::SpectralGrid; kwargs...) -> Any\n\n\ncreate a HeldSuarez temperature relaxation with arrays allocated given spectral_grid\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.HyperDiffusion","page":"Function and type index","title":"SpeedyWeather.HyperDiffusion","text":"Struct for horizontal hyper diffusion of vor, div, temp; implicitly in spectral space with a power of the Laplacian (default=4) and the strength controlled by time_scale. Options exist to scale the diffusion by resolution, and adaptive depending on the current vorticity maximum to increase diffusion in active layers. Furthermore the power can be decreased above the tapering_σ to power_stratosphere (default 2). For Barotropic, ShallowWater, the default non-adaptive constant-time scale hyper diffusion is used. Options are\n\ntrunc::Int64: spectral resolution\nnlev::Int64: number of vertical levels\npower::Float64: power of Laplacian\ntime_scale::Float64: diffusion time scales [hrs]\nresolution_scaling::Float64: stronger diffusion with resolution? 0: constant with trunc, 1: (inverse) linear with trunc, etc\npower_stratosphere::Float64: different power for tropopause/stratosphere\ntapering_σ::Float64: linearly scale towards power_stratosphere above this σ\nadaptive::Bool: adaptive = higher diffusion for layers with higher vorticity levels.\nvor_max::Float64: above this (absolute) vorticity level [1/s], diffusion is increased\nadaptive_strength::Float64: increase strength above vor_max by this factor times max(abs(vor))/vor_max\n∇²ⁿ_2D::Vector\n∇²ⁿ_2D_implicit::Vector\n∇²ⁿ::Array{Vector{NF}, 1} where NF\n∇²ⁿ_implicit::Array{Vector{NF}, 1} where NF\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.HyperDiffusion-Tuple{SpectralGrid}","page":"Function and type index","title":"SpeedyWeather.HyperDiffusion","text":"HyperDiffusion(\n spectral_grid::SpectralGrid;\n kwargs...\n) -> Any\n\n\nGenerator function based on the resolutin in spectral_grid. Passes on keyword arguments.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.ImplicitPrimitiveEq","page":"Function and type index","title":"SpeedyWeather.ImplicitPrimitiveEq","text":"Struct that holds various precomputed arrays for the semi-implicit correction to prevent gravity waves from amplifying in the primitive equation model.\n\ntrunc::Int64: spectral resolution\nnlev::Int64: number of vertical levels\nα::Float64: time-step coefficient: 0=explicit, 0.5=centred implicit, 1=backward implicit\ntemp_profile::Vector{NF} where NF<:AbstractFloat: vertical temperature profile, obtained from diagn\nξ::Base.RefValue{NF} where NF<:AbstractFloat: time step 2α*Δt packed in RefValue for mutability\nR::Matrix{NF} where NF<:AbstractFloat: divergence: operator for the geopotential calculation\nU::Vector{NF} where NF<:AbstractFloat: divergence: the -RdTₖ∇² term excl the eigenvalues from ∇² for divergence\nL::Matrix{NF} where NF<:AbstractFloat: temperature: operator for the TₖD + κTₖDlnps/Dt term\nW::Vector{NF} where NF<:AbstractFloat: pressure: vertical averaging of the -D̄ term in the log surface pres equation\nL0::Vector{NF} where NF<:AbstractFloat: components to construct L, 1/ 2Δσ\nL1::Matrix{NF} where NF<:AbstractFloat: vert advection term in the temperature equation (below+above)\nL2::Vector{NF} where NF<:AbstractFloat: factor in front of the divsumabove term\nL3::Matrix{NF} where NF<:AbstractFloat: sumabove operator itself\nL4::Vector{NF} where NF<:AbstractFloat: factor in front of div term in Dlnps/Dt\nS::Matrix{NF} where NF<:AbstractFloat: for every l the matrix to be inverted\nS⁻¹::Array{NF, 3} where NF<:AbstractFloat: combined inverted operator: S = 1 - ξ²(RL + UW)\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.ImplicitPrimitiveEq-Tuple{SpectralGrid, Vararg{Any}}","page":"Function and type index","title":"SpeedyWeather.ImplicitPrimitiveEq","text":"ImplicitPrimitiveEq(\n spectral_grid::SpectralGrid,\n kwargs...\n) -> Any\n\n\nGenerator using the resolution from SpectralGrid.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.ImplicitShallowWater","page":"Function and type index","title":"SpeedyWeather.ImplicitShallowWater","text":"Struct that holds various precomputed arrays for the semi-implicit correction to prevent gravity waves from amplifying in the shallow water model.\n\ntrunc::Int64\nα::Float64: coefficient for semi-implicit computations to filter gravity waves\nH::Base.RefValue{NF} where NF<:AbstractFloat\nξH::Base.RefValue{NF} where NF<:AbstractFloat\ng∇²::Vector{NF} where NF<:AbstractFloat\nξg∇²::Vector{NF} where NF<:AbstractFloat\nS⁻¹::Vector{NF} where NF<:AbstractFloat\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.ImplicitShallowWater-Tuple{SpectralGrid, Vararg{Any}}","page":"Function and type index","title":"SpeedyWeather.ImplicitShallowWater","text":"ImplicitShallowWater(\n spectral_grid::SpectralGrid,\n kwargs...\n) -> Any\n\n\nGenerator using the resolution from spectral_grid.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.JablonowskiRelaxation","page":"Function and type index","title":"SpeedyWeather.JablonowskiRelaxation","text":"HeldSuarez-like temperature relaxation, but towards the Jablonowski temperature profile with increasing temperatures in the stratosphere.\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.JablonowskiRelaxation-Tuple{SpectralGrid}","page":"Function and type index","title":"SpeedyWeather.JablonowskiRelaxation","text":"JablonowskiRelaxation(SG::SpectralGrid; kwargs...) -> Any\n\n\ncreate a JablonowskiRelaxation temperature relaxation with arrays allocated given spectral_grid\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.Keepbits","page":"Function and type index","title":"SpeedyWeather.Keepbits","text":"Number of mantissa bits to keep for each prognostic variable when compressed for netCDF and .jld2 data output.\n\nu::Int64\nv::Int64\nvor::Int64\ndiv::Int64\ntemp::Int64\npres::Int64\nhumid::Int64\nprecip_cond::Int64\nprecip_conv::Int64\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.Leapfrog","page":"Function and type index","title":"SpeedyWeather.Leapfrog","text":"Leapfrog time stepping defined by the following fields\n\ntrunc::Int64: spectral resolution (max degree of spherical harmonics)\nΔt_at_T31::Float64: time step in minutes for T31, scale linearly to trunc\nradius::Any: radius of sphere [m], used for scaling\nrobert_filter::Any: Robert (1966) time filter coefficeint to suppress comput. mode\nwilliams_filter::Any: Williams time filter (Amezcua 2011) coefficient for 3rd order acc\nΔt_sec::Int64: time step Δt [s] at specified resolution\nΔt::Any: time step Δt [s/m] at specified resolution, scaled by 1/radius\nΔt_hrs::Float64: convert time step Δt from minutes to hours\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.Leapfrog-Tuple{SpectralGrid}","page":"Function and type index","title":"SpeedyWeather.Leapfrog","text":"Leapfrog(spectral_grid::SpectralGrid; kwargs...) -> Any\n\n\nGenerator function for a Leapfrog struct using spectral_grid for the resolution information.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.LinearDrag","page":"Function and type index","title":"SpeedyWeather.LinearDrag","text":"Linear boundary layer drag Following Held and Suarez, 1996 BAMS\n\nσb::Float64\ntime_scale::Float64\nnlev::Int64\ndrag_coefs::Vector{NF} where NF<:AbstractFloat\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.LinearDrag-Tuple{SpectralGrid}","page":"Function and type index","title":"SpeedyWeather.LinearDrag","text":"LinearDrag(SG::SpectralGrid; kwargs...) -> Any\n\n\nGenerator function using nlev from SG::SpectralGrid\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.MagnusCoefs","page":"Function and type index","title":"SpeedyWeather.MagnusCoefs","text":"Parameters for computing saturation vapour pressure using the August-Roche-Magnus formula,\n\neᵢ(T) = e₀ * exp(Cᵢ * (T - T₀) / (T - Tᵢ)),\n\nwhere T is in Kelvin and i = 1,2 for saturation with respect to water and ice, respectively.\n\ne₀::AbstractFloat: Saturation vapour pressure at 0°C [Pa]\nT₀::AbstractFloat: 0°C in Kelvin\nT₁::AbstractFloat\nT₂::AbstractFloat\nC₁::AbstractFloat\nC₂::AbstractFloat\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.NoBoundaryLayerDrag","page":"Function and type index","title":"SpeedyWeather.NoBoundaryLayerDrag","text":"Concrete type that disables the boundary layer drag scheme.\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.NoOrography","page":"Function and type index","title":"SpeedyWeather.NoOrography","text":"Orography with zero height in orography and zero surface geopotential geopot_surf.\n\norography::SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat: height [m] on grid-point space.\ngeopot_surf::LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat: surface geopotential, height*gravity [m²/s²]\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.NoOrography-Tuple{SpectralGrid}","page":"Function and type index","title":"SpeedyWeather.NoOrography","text":"NoOrography(spectral_grid::SpectralGrid) -> NoOrography\n\n\nGenerator function pulling the resolution information from spectral_grid.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.OutputWriter","page":"Function and type index","title":"SpeedyWeather.OutputWriter","text":"NetCDF output writer. Contains all output options and auxiliary fields for output interpolation. To be initialised with OutputWriter(::SpectralGrid,::Type{<:ModelSetup},kwargs...) to pass on the resolution information and the model type which chooses which variables to output. Options include\n\nspectral_grid::SpectralGrid\noutput::Bool\npath::String: [OPTION] path to output folder, run_???? will be created within\nid::String: [OPTION] run identification number/string\nrun_path::String\nfilename::String: [OPTION] name of the output netcdf file\nwrite_restart::Bool: [OPTION] also write restart file if output==true?\npkg_version::VersionNumber\nstartdate::Dates.DateTime\noutput_dt::Float64: [OPTION] output frequency, time step [hrs]\noutput_dt_sec::Int64: actual output time step [sec]\noutput_vars::Vector{Symbol}: [OPTION] which variables to output, u, v, vor, div, pres, temp, humid\nmissing_value::Union{Float32, Float64}: [OPTION] missing value to be used in netcdf output\ncompression_level::Int64: [OPTION] lossless compression level; 1=low but fast, 9=high but slow\nkeepbits::SpeedyWeather.Keepbits: [OPTION] mantissa bits to keep for every variable\noutput_every_n_steps::Int64\ntimestep_counter::Int64\noutput_counter::Int64\nnetcdf_file::Union{Nothing, NetCDF.NcFile}\ninput_Grid::Type{<:SpeedyWeather.RingGrids.AbstractGrid}\nas_matrix::Bool: [OPTION] sort grid points into a matrix (interpolation-free), for OctahedralClenshawGrid, OctaHEALPixGrid only\nquadrant_rotation::NTuple{4, Int64}\nmatrix_quadrant::NTuple{4, Tuple{Int64, Int64}}\noutput_Grid::Type{<:SpeedyWeather.RingGrids.AbstractFullGrid}: [OPTION] the grid used for output, full grids only\nnlat_half::Int64: [OPTION] the resolution of the output grid, default: same nlat_half as in the dynamical core\nnlon::Int64\nnlat::Int64\nnpoints::Int64\nnlev::Int64\ninterpolator::SpeedyWeather.RingGrids.AbstractInterpolator\nu::Matrix{NF} where NF<:Union{Float32, Float64}\nv::Matrix{NF} where NF<:Union{Float32, Float64}\nvor::Matrix{NF} where NF<:Union{Float32, Float64}\ndiv::Matrix{NF} where NF<:Union{Float32, Float64}\ntemp::Matrix{NF} where NF<:Union{Float32, Float64}\npres::Matrix{NF} where NF<:Union{Float32, Float64}\nhumid::Matrix{NF} where NF<:Union{Float32, Float64}\nprecip_cond::Matrix{NF} where NF<:Union{Float32, Float64}\nprecip_conv::Matrix{NF} where NF<:Union{Float32, Float64}\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.PrimitiveDryModel","page":"Function and type index","title":"SpeedyWeather.PrimitiveDryModel","text":"The PrimitiveDryModel struct holds all other structs that contain precalculated constants, whether scalars or arrays that do not change throughout model integration.\n\nspectral_grid::SpectralGrid: dictates resolution for many other components\nplanet::SpeedyWeather.AbstractPlanet: contains physical and orbital characteristics\natmosphere::SpeedyWeather.AbstractAtmosphere\ninitial_conditions::SpeedyWeather.InitialConditions\norography::SpeedyWeather.AbstractOrography{NF} where NF<:AbstractFloat\nphysics::Bool\nboundary_layer_drag::SpeedyWeather.BoundaryLayerDrag{NF} where NF<:AbstractFloat\ntemperature_relaxation::SpeedyWeather.TemperatureRelaxation{NF} where NF<:AbstractFloat\nstatic_energy_diffusion::SpeedyWeather.VerticalDiffusion{NF} where NF<:AbstractFloat\nvertical_advection::SpeedyWeather.VerticalAdvection{NF} where NF<:AbstractFloat\ntime_stepping::SpeedyWeather.TimeStepper{NF} where NF<:AbstractFloat\nspectral_transform::SpectralTransform\nhorizontal_diffusion::SpeedyWeather.HorizontalDiffusion{NF} where NF<:AbstractFloat\nimplicit::SpeedyWeather.AbstractImplicit{NF} where NF<:AbstractFloat\ngeometry::Geometry\nconstants::DynamicsConstants\ndevice_setup::SpeedyWeather.DeviceSetup\noutput::SpeedyWeather.AbstractOutputWriter\nfeedback::SpeedyWeather.AbstractFeedback\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.PrimitiveWetModel","page":"Function and type index","title":"SpeedyWeather.PrimitiveWetModel","text":"The PrimitiveDryModel struct holds all other structs that contain precalculated constants, whether scalars or arrays that do not change throughout model integration.\n\nspectral_grid::SpectralGrid: dictates resolution for many other components\nplanet::SpeedyWeather.AbstractPlanet: contains physical and orbital characteristics\natmosphere::SpeedyWeather.AbstractAtmosphere\ninitial_conditions::SpeedyWeather.InitialConditions\norography::SpeedyWeather.AbstractOrography{NF} where NF<:AbstractFloat\nphysics::Bool\nthermodynamics::SpeedyWeather.Thermodynamics{NF} where NF<:AbstractFloat\nboundary_layer_drag::SpeedyWeather.BoundaryLayerDrag{NF} where NF<:AbstractFloat\ntemperature_relaxation::SpeedyWeather.TemperatureRelaxation{NF} where NF<:AbstractFloat\nstatic_energy_diffusion::SpeedyWeather.VerticalDiffusion{NF} where NF<:AbstractFloat\nlarge_scale_condensation::SpeedyWeather.AbstractCondensation{NF} where NF<:AbstractFloat\nvertical_advection::SpeedyWeather.VerticalAdvection{NF} where NF<:AbstractFloat\ntime_stepping::SpeedyWeather.TimeStepper{NF} where NF<:AbstractFloat\nspectral_transform::SpectralTransform\nhorizontal_diffusion::SpeedyWeather.HorizontalDiffusion{NF} where NF<:AbstractFloat\nimplicit::SpeedyWeather.AbstractImplicit{NF} where NF<:AbstractFloat\ngeometry::Geometry\nconstants::DynamicsConstants\ndevice_setup::SpeedyWeather.DeviceSetup\noutput::SpeedyWeather.AbstractOutputWriter\nfeedback::SpeedyWeather.AbstractFeedback\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.ShallowWaterModel","page":"Function and type index","title":"SpeedyWeather.ShallowWaterModel","text":"The ShallowWaterModel struct holds all other structs that contain precalculated constants, whether scalars or arrays that do not change throughout model integration.\n\nspectral_grid::SpectralGrid: dictates resolution for many other components\nplanet::SpeedyWeather.AbstractPlanet: contains physical and orbital characteristics\natmosphere::SpeedyWeather.AbstractAtmosphere\nforcing::SpeedyWeather.AbstractForcing{NF} where NF<:AbstractFloat\ninitial_conditions::SpeedyWeather.InitialConditions\norography::SpeedyWeather.AbstractOrography{NF} where NF<:AbstractFloat\ntime_stepping::SpeedyWeather.TimeStepper{NF} where NF<:AbstractFloat\nspectral_transform::SpectralTransform\nhorizontal_diffusion::SpeedyWeather.HorizontalDiffusion{NF} where NF<:AbstractFloat\nimplicit::SpeedyWeather.AbstractImplicit{NF} where NF<:AbstractFloat\ngeometry::Geometry\nconstants::DynamicsConstants\ndevice_setup::SpeedyWeather.DeviceSetup\noutput::SpeedyWeather.AbstractOutputWriter\nfeedback::SpeedyWeather.AbstractFeedback\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.Simulation","page":"Function and type index","title":"SpeedyWeather.Simulation","text":"Simulation is a container struct to be used with run!(::Simulation). It contains\n\nprognostic_variables::PrognosticVariables: define the current state of the model\ndiagnostic_variables::DiagnosticVariables: contain the tendencies and auxiliary arrays to compute them\nmodel::SpeedyWeather.ModelSetup: all parameters, constant at runtime\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.SpectralGrid","page":"Function and type index","title":"SpeedyWeather.SpectralGrid","text":"Defines the horizontal spectral resolution and corresponding grid and the vertical coordinate for SpeedyWeather.jl. Options are\n\nNF::Type{<:AbstractFloat}: number format used throughout the model\ntrunc::Int64: horizontal resolution as the maximum degree of spherical harmonics\nGrid::Type{<:SpeedyWeather.RingGrids.AbstractGrid}: horizontal grid used for calculations in grid-point space\ndealiasing::Float64: how to match spectral with grid resolution: dealiasing factor, 1=linear, 2=quadratic, 3=cubic grid\nradius::Float64: radius of the sphere [m]\nnlat_half::Int64: number of latitude rings on one hemisphere (Equator incl)\nnpoints::Int64: total number of grid points in the horizontal\nnlev::Int64: number of vertical levels\nvertical_coordinates::SpeedyWeather.VerticalCoordinates: coordinates used to discretize the vertical\n\nnlat_half and npoints should not be chosen but are derived from trunc, Grid and dealiasing.\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.SpeedyCondensation","page":"Function and type index","title":"SpeedyWeather.SpeedyCondensation","text":"Large scale condensation as in Fortran SPEEDY with default values from therein.\n\nnlev::Int64: number of vertical levels\nthreshold_boundary_layer::Float64: Relative humidity threshold for boundary layer\nthreshold_range::Float64: Vertical range of relative humidity threshold\nthreshold_max::Float64: Maximum relative humidity threshold [1]\ntime_scale::Float64: Relaxation time for humidity [hrs]\nn_stratosphere_levels::Base.RefValue{Int64}\nhumid_tend_max::Vector{NF} where NF<:AbstractFloat\nrelative_threshold::Vector{NF} where NF<:AbstractFloat\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.SpectralTransform-Tuple{SpectralGrid}","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.SpectralTransform","text":"SpectralTransform(\n spectral_grid::SpectralGrid;\n recompute_legendre,\n kwargs...\n) -> SpectralTransform\n\n\nGenerator function for a SpectralTransform struct pulling in parameters from a SpectralGrid struct.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.StartFromFile","page":"Function and type index","title":"SpeedyWeather.StartFromFile","text":"Restart from a previous SpeedyWeather.jl simulation via the restart file restart.jld2 Applies interpolation in the horizontal but not in the vertical. restart.jld2 is identified by\n\npath::String: path for restart file\nid::Union{Int64, String}: run_id of restart file in run_????/restart.jld2\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.StartWithRandomVorticity","page":"Function and type index","title":"SpeedyWeather.StartWithRandomVorticity","text":"Start with random vorticity as initial conditions\n\npower::Float64: Power of the spectral distribution k^power\namplitude::Float64: (approximate) amplitude in [1/s], used as standard deviation of spherical harmonic coefficients\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.StaticEnergyDiffusion","page":"Function and type index","title":"SpeedyWeather.StaticEnergyDiffusion","text":"Diffusion of dry static energy: A relaxation towards a reference gradient of static energy wrt to geopotential, see Fortran SPEEDY documentation.\n\ntime_scale::Float64: time scale [hrs] for strength\nstatic_energy_lapse_rate::Float64: [1] ∂SE/∂Φ, vertical gradient of static energy SE with geopotential Φ\nFstar::Base.RefValue{NF} where NF<:AbstractFloat\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.Tendencies","page":"Function and type index","title":"SpeedyWeather.Tendencies","text":"Tendencies{Grid<:AbstractGrid,NF<:AbstractFloat}\n\nStruct holding the tendencies of the prognostic spectral variables for a given layer.\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.ZonalJet","page":"Function and type index","title":"SpeedyWeather.ZonalJet","text":"Create a struct that contains all parameters for the Galewsky et al, 2004 zonal jet intitial conditions for the shallow water model. Default values as in Galewsky.\n\nlatitude::Float64: jet latitude [˚N]\nwidth::Float64: jet width [˚], default ≈ 19.29˚\numax::Float64: jet maximum velocity [m/s]\nperturb_lat::Float64: perturbation latitude [˚N], position in jet by default\nperturb_lon::Float64: perturbation longitude [˚E]\nperturb_xwidth::Float64: perturbation zonal extent [˚], default ≈ 19.1˚\nperturb_ywidth::Float64: perturbation meridinoal extent [˚], default ≈ 3.8˚\nperturb_height::Float64: perturbation amplitude [m]\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.ZonalRidge","page":"Function and type index","title":"SpeedyWeather.ZonalRidge","text":"Zonal ridge orography after Jablonowski and Williamson, 2006.\n\nη₀::Float64: conversion from σ to Jablonowski's ηᵥ-coordinates\nu₀::Float64: max amplitude of zonal wind [m/s] that scales orography height\norography::SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat: height [m] on grid-point space.\ngeopot_surf::LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat: surface geopotential, height*gravity [m²/s²]\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.ZonalRidge-Tuple{SpectralGrid}","page":"Function and type index","title":"SpeedyWeather.ZonalRidge","text":"ZonalRidge(spectral_grid::SpectralGrid; kwargs...) -> Any\n\n\nGenerator function pulling the resolution information from spectral_grid.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.ZonalWind","page":"Function and type index","title":"SpeedyWeather.ZonalWind","text":"Create a struct that contains all parameters for the Jablonowski and Williamson, 2006 intitial conditions for the primitive equation model. Default values as in Jablonowski.\n\nη₀::Float64: conversion from σ to Jablonowski's ηᵥ-coordinates\nu₀::Float64: max amplitude of zonal wind [m/s]\nperturb_lat::Float64: perturbation centred at [˚N]\nperturb_lon::Float64: perturbation centred at [˚E]\nperturb_uₚ::Float64: perturbation strength [m/s]\nperturb_radius::Float64: radius of Gaussian perturbation in units of Earth's radius [1]\nΔT::Float64: temperature difference used for stratospheric lapse rate [K], Jablonowski uses ΔT = 4.8e5 [K]\nTmin::Float64: minimum temperature [K] of profile\npressure_on_orography::Bool: initialize pressure given the atmosphere.lapse_rate on orography?\n\n\n\n\n\n","category":"type"},{"location":"functions/#Base.copy!-Tuple{PrognosticVariables, PrognosticVariables}","page":"Function and type index","title":"Base.copy!","text":"copy!(progn_new::PrognosticVariables, progn_old::PrognosticVariables)\n\nCopies entries of progn_old into progn_new. Only copies those variables that are present in the model of both progn_new and progn_old.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.Device-Tuple{}","page":"Function and type index","title":"SpeedyWeather.Device","text":"Device()\n\nReturn default used device for internal purposes, either CPUDevice or GPUDevice if a GPU is available.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.DeviceArray-Tuple{SpeedyWeather.GPUDevice, Any}","page":"Function and type index","title":"SpeedyWeather.DeviceArray","text":"DeviceArray(device::AbstractDevice, x)\n\nAdapts x to a CuArray when device<:GPUDevice is used, otherwise a regular Array. Uses adapt, thus also can return SubArrays etc.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.DeviceArrayNotAdapt-Tuple{SpeedyWeather.GPUDevice, Any}","page":"Function and type index","title":"SpeedyWeather.DeviceArrayNotAdapt","text":"DeviceArrayNotAdapt(device::AbstractDevice, x)\n\nReturns a CuArray when device<:GPUDevice is used, otherwise a regular Array. Doesn't uses adapt, therefore always returns CuArray/Array\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.Device_KernelAbstractions-Tuple{SpeedyWeather.CPUDevice}","page":"Function and type index","title":"SpeedyWeather.Device_KernelAbstractions","text":"Device_KernelAbstractions(::AbstractDevice)\n\nReturn used device for use with KernelAbstractions\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.Device_KernelAbstractions-Tuple{}","page":"Function and type index","title":"SpeedyWeather.Device_KernelAbstractions","text":"Device_KernelAbstractions()\n\nReturn default used device for KernelAbstractions, either CPU or CUDADevice if a GPU is available\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.gridded!-Tuple{DiagnosticVariables, PrognosticVariables, Int64, SpeedyWeather.ModelSetup}","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.gridded!","text":"gridded!(\n diagn::DiagnosticVariables,\n progn::PrognosticVariables,\n lf::Int64,\n model::SpeedyWeather.ModelSetup\n)\n\n\nPropagate the spectral state of progn to diagn using time step/leapfrog index lf. Function barrier that calls gridded! for the respective model.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.gridded!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, SpeedyWeather.PrognosticLayerTimesteps, Int64, Barotropic}","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.gridded!","text":"gridded!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n progn::SpeedyWeather.PrognosticLayerTimesteps,\n lf::Int64,\n model::Barotropic\n)\n\n\nPropagate the spectral state of the prognostic variables progn to the diagnostic variables in diagn for the barotropic vorticity model. Updates grid vorticity, spectral stream function and spectral and grid velocities u,v.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.gridded!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, SpeedyWeather.PrognosticLayerTimesteps, Int64, PrimitiveEquation}","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.gridded!","text":"gridded!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n progn::SpeedyWeather.PrognosticLayerTimesteps,\n lf::Int64,\n model::PrimitiveEquation\n)\n\n\nPropagate the spectral state of the prognostic variables progn to the diagnostic variables in diagn for primitive equation models. Updates grid vorticity, grid divergence, grid temperature, pressure (pres_grid) and the velocities u,v.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.gridded!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, SpeedyWeather.PrognosticLayerTimesteps, Int64, ShallowWater}","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.gridded!","text":"gridded!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n progn::SpeedyWeather.PrognosticLayerTimesteps,\n lf::Int64,\n model::ShallowWater\n)\n\n\nPropagate the spectral state of the prognostic variables progn to the diagnostic variables in diagn for the shallow water model. Updates grid vorticity, grid divergence, grid interface displacement (pres_grid) and the velocities u,v.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather._scale_lat!-Union{Tuple{NF}, Tuple{SpeedyWeather.RingGrids.AbstractGrid{NF}, AbstractVector}} where NF<:AbstractFloat","page":"Function and type index","title":"SpeedyWeather._scale_lat!","text":"_scale_lat!(\n A::SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},\n v::AbstractVector\n)\n\n\nGeneric latitude scaling applied to A in-place with latitude-like vector v.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.allocate-Union{Tuple{Model}, Tuple{Type{PrognosticVariables}, SpectralGrid, Type{Model}}} where Model<:SpeedyWeather.ModelSetup","page":"Function and type index","title":"SpeedyWeather.allocate","text":"allocate(\n _::Type{PrognosticVariables},\n spectral_grid::SpectralGrid,\n _::Type{Model<:SpeedyWeather.ModelSetup}\n) -> PrognosticVariables\n\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.bernoulli_potential!-Union{Tuple{NF}, Tuple{SpeedyWeather.DiagnosticVariablesLayer{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF}, SpectralTransform}} where NF","page":"Function and type index","title":"SpeedyWeather.bernoulli_potential!","text":"bernoulli_potential!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF},\n S::SpectralTransform\n) -> LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat\n\n\nComputes the Laplace operator ∇² of the Bernoulli potential B in spectral space.\n\ncomputes the kinetic energy KE = ½(u²+v²) on the grid\ntransforms KE to spectral space\nadds geopotential for the Bernoulli potential in spectral space\ntakes the Laplace operator.\n\nThis version is used for both ShallowWater and PrimitiveEquation, only the geopotential calculation in geopotential! differs.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.boundary_layer_drag!-Tuple{ColumnVariables, LinearDrag}","page":"Function and type index","title":"SpeedyWeather.boundary_layer_drag!","text":"boundary_layer_drag!(\n column::ColumnVariables,\n scheme::LinearDrag\n)\n\n\nCompute tendency for boundary layer drag of a column and add to its tendencies fields\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.boundary_layer_drag!-Tuple{ColumnVariables, SpeedyWeather.NoBoundaryLayerDrag, PrimitiveEquation}","page":"Function and type index","title":"SpeedyWeather.boundary_layer_drag!","text":"NoBoundaryLayer scheme just passes.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.clip_negatives!-Union{Tuple{AbstractArray{T}}, Tuple{T}} where T","page":"Function and type index","title":"SpeedyWeather.clip_negatives!","text":"clip_negatives!(A::AbstractArray)\n\nSet all negative entries a in A to zero.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.create_output_folder-Tuple{String, Union{Int64, String}}","page":"Function and type index","title":"SpeedyWeather.create_output_folder","text":"create_output_folder(\n path::String,\n id::Union{Int64, String}\n) -> String\n\n\nCreates a new folder run_* with the identification id. Also returns the full path run_path of that folder.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.default_sigma_coordinates-Tuple{Integer}","page":"Function and type index","title":"SpeedyWeather.default_sigma_coordinates","text":"default_sigma_coordinates(nlev::Integer) -> Any\n\n\nVertical sigma coordinates defined by their nlev+1 half levels σ_levels_half. Sigma coordinates are fraction of surface pressure (p/p0) and are sorted from top (stratosphere) to bottom (surface). The first half level is at 0 the last at 1. Evaluate a generalised logistic function with coefficients in P for the distribution of values in between. Default coefficients follow the L31 configuration historically used at ECMWF.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.dry_static_energy!-Tuple{ColumnVariables, DynamicsConstants}","page":"Function and type index","title":"SpeedyWeather.dry_static_energy!","text":"dry_static_energy!(\n column::ColumnVariables,\n constants::DynamicsConstants\n)\n\n\nCompute the dry static energy SE = cₚT + Φ (latent heat times temperature plus geopotential) for the column.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.dynamics_tendencies!","page":"Function and type index","title":"SpeedyWeather.dynamics_tendencies!","text":"dynamics_tendencies!(\n diagn::DiagnosticVariables,\n progn::PrognosticVariables,\n model::PrimitiveEquation\n) -> Any\ndynamics_tendencies!(\n diagn::DiagnosticVariables,\n progn::PrognosticVariables,\n model::PrimitiveEquation,\n lf::Int64\n) -> Any\n\n\nCalculate all tendencies for the PrimitiveEquation model (wet or dry).\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.dynamics_tendencies!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, Dates.DateTime, Barotropic}","page":"Function and type index","title":"SpeedyWeather.dynamics_tendencies!","text":"dynamics_tendencies!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n time::Dates.DateTime,\n model::Barotropic\n)\n\n\nCalculate all tendencies for the BarotropicModel.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.dynamics_tendencies!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, SpeedyWeather.SurfaceVariables, LowerTriangularMatrix, Dates.DateTime, ShallowWater}","page":"Function and type index","title":"SpeedyWeather.dynamics_tendencies!","text":"dynamics_tendencies!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n surface::SpeedyWeather.SurfaceVariables,\n pres::LowerTriangularMatrix,\n time::Dates.DateTime,\n model::ShallowWater\n)\n\n\nCalculate all tendencies for the ShallowWaterModel.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.first_timesteps!-Tuple{PrognosticVariables, DiagnosticVariables, SpeedyWeather.ModelSetup, SpeedyWeather.AbstractOutputWriter}","page":"Function and type index","title":"SpeedyWeather.first_timesteps!","text":"first_timesteps!(\n progn::PrognosticVariables,\n diagn::DiagnosticVariables,\n model::SpeedyWeather.ModelSetup,\n output::SpeedyWeather.AbstractOutputWriter\n) -> typeof(time)\n\n\nPerforms the first two initial time steps (Euler forward, unfiltered leapfrog) to populate the prognostic variables with two time steps (t=0,Δt) that can then be used in the normal leap frogging.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.flipsign!-Tuple{AbstractArray}","page":"Function and type index","title":"SpeedyWeather.flipsign!","text":"flipgsign!(A::AbstractArray)\n\nLike -A but in-place.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.flux_divergence!-Union{Tuple{NF}, Tuple{LowerTriangularMatrix{Complex{NF}}, SpeedyWeather.RingGrids.AbstractGrid{NF}, SpeedyWeather.DiagnosticVariablesLayer{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF}, Geometry{NF}, SpectralTransform{NF}}} where NF","page":"Function and type index","title":"SpeedyWeather.flux_divergence!","text":"flux_divergence!(\n A_tend::LowerTriangularMatrix{Complex{NF}},\n A_grid::SpeedyWeather.RingGrids.AbstractGrid{NF},\n diagn::SpeedyWeather.DiagnosticVariablesLayer{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF},\n G::Geometry{NF},\n S::SpectralTransform{NF};\n add,\n flipsign\n)\n\n\nComputes ∇⋅((u,v)*A) with the option to add/overwrite A_tend and to flip_sign of the flux divergence by doing so.\n\nA_tend = ∇⋅((u,v)*A) for add=false, flip_sign=false\nA_tend = -∇⋅((u,v)*A) for add=false, flip_sign=true\nA_tend += ∇⋅((u,v)*A) for add=true, flip_sign=false\nA_tend -= ∇⋅((u,v)*A) for add=true, flip_sign=true\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.fluxes_to_tendencies!-Tuple{ColumnVariables, Geometry, DynamicsConstants}","page":"Function and type index","title":"SpeedyWeather.fluxes_to_tendencies!","text":"fluxes_to_tendencies!(\n column::ColumnVariables,\n geometry::Geometry,\n constants::DynamicsConstants\n)\n\n\nConvert the fluxes on half levels to tendencies on full levels.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.generalised_logistic-Tuple{Any, SpeedyWeather.GenLogisticCoefs}","page":"Function and type index","title":"SpeedyWeather.generalised_logistic","text":"Generalised logistic function based on the coefficients in coefs.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.geopotential!-Tuple{DiagnosticVariables, SpeedyWeather.AbstractOrography, DynamicsConstants}","page":"Function and type index","title":"SpeedyWeather.geopotential!","text":"geopotential!(\n diagn::DiagnosticVariables,\n O::SpeedyWeather.AbstractOrography,\n C::DynamicsConstants\n)\n\n\nCompute spectral geopotential geopot from spectral temperature temp and spectral surface geopotential geopot_surf (orography*gravity).\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.geopotential!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, LowerTriangularMatrix, DynamicsConstants}","page":"Function and type index","title":"SpeedyWeather.geopotential!","text":"geopotential!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n pres::LowerTriangularMatrix,\n C::DynamicsConstants\n) -> Any\n\n\ncalculates the geopotential in the ShallowWaterModel as g*η, i.e. gravity times the interface displacement (field pres)\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.geopotential!-Tuple{Vector, DynamicsConstants}","page":"Function and type index","title":"SpeedyWeather.geopotential!","text":"geopotential!(temp::Vector, C::DynamicsConstants) -> Vector\n\n\nCalculate the geopotential based on temp in a single column. This exclues the surface geopotential that would need to be added to the returned vector. Function not used in the dynamical core but for post-processing and analysis.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.get_column!-Tuple{ColumnVariables, DiagnosticVariables, Int64, Geometry}","page":"Function and type index","title":"SpeedyWeather.get_column!","text":"Recalculate ring index if not provided.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.get_column!-Tuple{ColumnVariables, DiagnosticVariables, Integer, Integer, Geometry}","page":"Function and type index","title":"SpeedyWeather.get_column!","text":"get_column!(\n C::ColumnVariables,\n D::DiagnosticVariables,\n ij::Integer,\n jring::Integer,\n G::Geometry\n)\n\n\nUpdate C::ColumnVariables by copying the prognostic variables from D::DiagnosticVariables at gridpoint index ij. Provide G::Geometry for coordinate information.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.get_full_output_file_path-Tuple{OutputWriter}","page":"Function and type index","title":"SpeedyWeather.get_full_output_file_path","text":"get_full_output_file_path(output::OutputWriter) -> String\n\n\nReturns the full path of the output file after it was created.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.get_run_id-Tuple{String, String}","page":"Function and type index","title":"SpeedyWeather.get_run_id","text":"get_run_id(path::String, id::String) -> String\n\n\nChecks existing run_???? folders in path to determine a 4-digit id number by counting up. E.g. if folder run_0001 exists it will return the string \"0002\". Does not create a folder for the returned run id.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.get_thermodynamics!-Tuple{ColumnVariables, PrimitiveDry}","page":"Function and type index","title":"SpeedyWeather.get_thermodynamics!","text":"get_thermodynamics!(\n column::ColumnVariables,\n model::PrimitiveDry\n)\n\n\nCalculate the dry static energy for the primitive dry model.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.get_thermodynamics!-Tuple{ColumnVariables, PrimitiveWet}","page":"Function and type index","title":"SpeedyWeather.get_thermodynamics!","text":"get_thermodynamics!(\n column::ColumnVariables,\n model::PrimitiveWet\n)\n\n\nCalculate thermodynamic quantities like saturation vapour pressure, saturation specific humidity, dry static energy, moist static energy and saturation moist static energy from the prognostic column variables.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.get_var-Tuple{PrognosticVariables, Symbol}","page":"Function and type index","title":"SpeedyWeather.get_var","text":"get_var(progn::PrognosticVariables, var_name::Symbol; lf::Integer=1)\n\nReturns the prognostic variable var_name at leapfrog index lf as a Vector{LowerTriangularMatrices}.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.has-Tuple{Type{<:SpeedyWeather.ModelSetup}, Symbol}","page":"Function and type index","title":"SpeedyWeather.has","text":"has(\n M::Type{<:SpeedyWeather.ModelSetup},\n var_name::Symbol\n) -> Bool\n\n\nReturns true if the model M has a prognostic variable var_name, false otherwise. The default fallback is that all variables are included. \n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.horizontal_diffusion!","page":"Function and type index","title":"SpeedyWeather.horizontal_diffusion!","text":"horizontal_diffusion!(\n progn::SpeedyWeather.PrognosticLayerTimesteps,\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n model::PrimitiveEquation\n) -> Union{Nothing, Bool}\nhorizontal_diffusion!(\n progn::SpeedyWeather.PrognosticLayerTimesteps,\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n model::PrimitiveEquation,\n lf::Int64\n) -> Union{Nothing, Bool}\n\n\nApply horizontal diffusion applied to vorticity, diffusion and temperature in the PrimitiveEquation models. Uses the constant diffusion for temperature but possibly adaptive diffusion for vorticity and divergence.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.horizontal_diffusion!-2","page":"Function and type index","title":"SpeedyWeather.horizontal_diffusion!","text":"horizontal_diffusion!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n progn::SpeedyWeather.PrognosticLayerTimesteps,\n model::Barotropic\n)\nhorizontal_diffusion!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n progn::SpeedyWeather.PrognosticLayerTimesteps,\n model::Barotropic,\n lf::Int64\n)\n\n\nApply horizontal diffusion to vorticity in the Barotropic models.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.horizontal_diffusion!-3","page":"Function and type index","title":"SpeedyWeather.horizontal_diffusion!","text":"horizontal_diffusion!(\n progn::SpeedyWeather.PrognosticLayerTimesteps,\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n model::ShallowWater\n)\nhorizontal_diffusion!(\n progn::SpeedyWeather.PrognosticLayerTimesteps,\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n model::ShallowWater,\n lf::Int64\n)\n\n\nApply horizontal diffusion to vorticity and diffusion in the ShallowWater models.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.horizontal_diffusion!-Union{Tuple{NF}, Tuple{LowerTriangularMatrix{Complex{NF}}, LowerTriangularMatrix{Complex{NF}}, AbstractVector{NF}, AbstractVector{NF}}} where NF<:AbstractFloat","page":"Function and type index","title":"SpeedyWeather.horizontal_diffusion!","text":"horizontal_diffusion!(\n tendency::LowerTriangularMatrix{Complex{NF<:AbstractFloat}},\n A::LowerTriangularMatrix{Complex{NF<:AbstractFloat}},\n ∇²ⁿ_expl::AbstractArray{NF<:AbstractFloat, 1},\n ∇²ⁿ_impl::AbstractArray{NF<:AbstractFloat, 1}\n)\n\n\nApply horizontal diffusion to a 2D field A in spectral space by updating its tendency tendency with an implicitly calculated diffusion term. The implicit diffusion of the next time step is split into an explicit part ∇²ⁿ_expl and an implicit part ∇²ⁿ_impl, such that both can be calculated in a single forward step by using A as well as its tendency tendency.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.implicit_correction!-Tuple{DiagnosticVariables, SpeedyWeather.ImplicitPrimitiveEq, PrognosticVariables}","page":"Function and type index","title":"SpeedyWeather.implicit_correction!","text":"implicit_correction!(\n diagn::DiagnosticVariables,\n implicit::SpeedyWeather.ImplicitPrimitiveEq,\n progn::PrognosticVariables\n) -> Any\n\n\nApply the implicit corrections to dampen gravity waves in the primitive equation models.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.implicit_correction!-Union{Tuple{NF}, Tuple{SpeedyWeather.DiagnosticVariablesLayer{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF}, SpeedyWeather.PrognosticLayerTimesteps{NF}, SpeedyWeather.SurfaceVariables{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF}, SpeedyWeather.PrognosticSurfaceTimesteps{NF}, SpeedyWeather.ImplicitShallowWater}} where NF","page":"Function and type index","title":"SpeedyWeather.implicit_correction!","text":"implicit_correction!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF},\n progn::SpeedyWeather.PrognosticLayerTimesteps{NF},\n diagn_surface::SpeedyWeather.SurfaceVariables{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF},\n progn_surface::SpeedyWeather.PrognosticSurfaceTimesteps{NF},\n implicit::SpeedyWeather.ImplicitShallowWater\n)\n\n\nApply correction to the tendencies in diagn to prevent the gravity waves from amplifying. The correction is implicitly evaluated using the parameter implicit.α to switch between forward, centered implicit or backward evaluation of the gravity wave terms.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initial_conditions!-Tuple{PrognosticVariables, StartFromFile, SpeedyWeather.ModelSetup}","page":"Function and type index","title":"SpeedyWeather.initial_conditions!","text":"initial_conditions!(\n progn_new::PrognosticVariables,\n initial_conditions::StartFromFile,\n model::SpeedyWeather.ModelSetup\n) -> PrognosticVariables\n\n\nRestart from a previous SpeedyWeather.jl simulation via the restart file restart.jld2 Applies interpolation in the horizontal but not in the vertical.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initial_conditions!-Tuple{PrognosticVariables, ZonalJet, ShallowWater}","page":"Function and type index","title":"SpeedyWeather.initial_conditions!","text":"initial_conditions!(\n progn::PrognosticVariables,\n initial_conditions::ZonalJet,\n model::ShallowWater\n) -> LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat\n\n\nInitial conditions from Galewsky, 2004, Tellus\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initial_conditions!-Union{Tuple{NF}, Tuple{PrognosticVariables{NF}, StartWithRandomVorticity, SpeedyWeather.ModelSetup}} where NF","page":"Function and type index","title":"SpeedyWeather.initial_conditions!","text":"initial_conditions!(\n progn::PrognosticVariables{NF},\n initial_conditions::StartWithRandomVorticity,\n model::SpeedyWeather.ModelSetup\n)\n\n\nStart with random vorticity as initial conditions\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initial_conditions!-Union{Tuple{NF}, Tuple{PrognosticVariables{NF}, ZonalWind, PrimitiveEquation}} where NF","page":"Function and type index","title":"SpeedyWeather.initial_conditions!","text":"initial_conditions!(\n progn::PrognosticVariables{NF},\n initial_conditions::ZonalWind,\n model::PrimitiveEquation\n)\n\n\nInitial conditions from Jablonowski and Williamson, 2006, QJR Meteorol. Soc\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initial_conditions-Tuple{Model} where Model","page":"Function and type index","title":"SpeedyWeather.initial_conditions","text":"initial_conditions(model) -> PrognosticVariables\n\n\nAllocate the prognostic variables and then set to initial conditions.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(\n scheme::HyperDiffusion,\n k::Int64,\n G::Geometry,\n L::SpeedyWeather.TimeStepper\n)\ninitialize!(\n scheme::HyperDiffusion,\n k::Int64,\n G::Geometry,\n L::SpeedyWeather.TimeStepper,\n vor_max::Real\n)\n\n\nPrecomputes the hyper diffusion terms in scheme for layer k based on the model time step in L, the vertical level sigma level in G, and the current (absolute) vorticity maximum level vor_max\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{Barotropic}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(model::Barotropic) -> SpeedyWeather.Simulation\n\n\nCalls all initialize! functions for components of model, except for model.output and model.feedback which are always called at in time_stepping!.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{EarthOrography, SpeedyWeather.AbstractPlanet, SpectralTransform, Geometry}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(\n orog::EarthOrography,\n P::SpeedyWeather.AbstractPlanet,\n S::SpectralTransform,\n G::Geometry\n) -> LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat\n\n\nInitialize the arrays orography,geopot_surf in orog by reading the orography field from file.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{Feedback, SpeedyWeather.Clock, SpeedyWeather.ModelSetup}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(\n feedback::Feedback,\n clock::SpeedyWeather.Clock,\n model::SpeedyWeather.ModelSetup\n) -> Union{Nothing, IOStream}\n\n\nInitializes the a Feedback struct.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{HeldSuarez, PrimitiveEquation}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(scheme::HeldSuarez, model::PrimitiveEquation)\n\n\ninitialize the HeldSuarez temperature relaxation by precomputing terms for the equilibrium temperature Teq.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{HyperDiffusion, SpeedyWeather.DiagnosticVariablesLayer, Geometry, SpeedyWeather.TimeStepper}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(\n scheme::HyperDiffusion,\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n G::Geometry,\n L::SpeedyWeather.TimeStepper\n)\n\n\nPre-function to other initialize!(::HyperDiffusion) initialisors that calculates the (absolute) vorticity maximum for the layer of diagn.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{HyperDiffusion, SpeedyWeather.ModelSetup}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(\n scheme::HyperDiffusion,\n model::SpeedyWeather.ModelSetup\n)\n\n\nPrecomputes the hyper diffusion terms in scheme based on the model time step, and possibly with a changing strength/power in the vertical.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{HyperDiffusion, SpeedyWeather.TimeStepper}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(\n scheme::HyperDiffusion,\n L::SpeedyWeather.TimeStepper\n)\n\n\nPrecomputes the 2D hyper diffusion terms in scheme based on the model time step.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{JablonowskiRelaxation, PrimitiveEquation}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(\n scheme::JablonowskiRelaxation,\n model::PrimitiveEquation\n)\n\n\ninitialize the JablonowskiRelaxation temperature relaxation by precomputing terms for the equilibrium temperature Teq and the frequency (strength of relaxation).\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{LinearDrag, PrimitiveEquation}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(scheme::LinearDrag, model::PrimitiveEquation)\n\n\nPrecomputes the drag coefficients for this BoundaryLayerDrag scheme.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{NoTemperatureRelaxation, PrimitiveEquation}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(\n scheme::NoTemperatureRelaxation,\n model::PrimitiveEquation\n)\n\n\njust passes, does not need any initialization.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{PrimitiveDry}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(model::PrimitiveDry) -> SpeedyWeather.Simulation\n\n\nCalls all initialize! functions for components of model, except for model.output and model.feedback which are always called at in time_stepping! and model.implicit which is done in first_timesteps!.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{PrimitiveWet}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(model::PrimitiveWet) -> SpeedyWeather.Simulation\n\n\nCalls all initialize! functions for components of model, except for model.output and model.feedback which are always called at in time_stepping! and model.implicit which is done in first_timesteps!.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{ShallowWater}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(model::ShallowWater) -> SpeedyWeather.Simulation\n\n\nCalls all initialize! functions for components of model, except for model.output and model.feedback which are always called at in time_stepping! and model.implicit which is done in first_timesteps!.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{SpeedyCondensation, PrimitiveEquation}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(\n scheme::SpeedyCondensation,\n model::PrimitiveEquation\n)\n\n\nInitialize the SpeedyCondensation scheme.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{SpeedyWeather.Clock, SpeedyWeather.TimeStepper}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(\n clock::SpeedyWeather.Clock,\n time_stepping::SpeedyWeather.TimeStepper\n) -> SpeedyWeather.Clock\n\n\nInitialize the clock with the time step Δt in the time_stepping.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{SpeedyWeather.ImplicitPrimitiveEq, Integer, Real, DiagnosticVariables, Geometry, DynamicsConstants}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(\n implicit::SpeedyWeather.ImplicitPrimitiveEq,\n i::Integer,\n dt::Real,\n diagn::DiagnosticVariables,\n geometry::Geometry,\n constants::DynamicsConstants\n)\n\n\nReinitialize implicit occasionally based on time step i and implicit.recalculate.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{SpeedyWeather.ImplicitPrimitiveEq, Real, DiagnosticVariables, Geometry, DynamicsConstants}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(\n implicit::SpeedyWeather.ImplicitPrimitiveEq,\n dt::Real,\n diagn::DiagnosticVariables,\n geometry::Geometry,\n constants::DynamicsConstants\n)\n\n\nInitialize the implicit terms for the PrimitiveEquation models.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{SpeedyWeather.ImplicitShallowWater, Real, DynamicsConstants}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(\n implicit::SpeedyWeather.ImplicitShallowWater,\n dt::Real,\n constants::DynamicsConstants\n)\n\n\nUpdate the implicit terms in implicit for the shallow water model as they depend on the time step dt.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{SpeedyWeather.NoBoundaryLayerDrag, PrimitiveEquation}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"NoBoundaryLayer scheme does not need any initialisation.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Tuple{ZonalRidge, SpeedyWeather.AbstractPlanet, SpectralTransform, Geometry}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(\n orog::ZonalRidge,\n P::SpeedyWeather.AbstractPlanet,\n S::SpectralTransform,\n G::Geometry\n) -> LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat\n\n\nInitialize the arrays orography,geopot_surf in orog following Jablonowski and Williamson, 2006.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Union{Tuple{Model}, Tuple{output_NF}, Tuple{OutputWriter{output_NF, Model}, SpeedyWeather.AbstractFeedback, SpeedyWeather.TimeStepper, DiagnosticVariables, Model}} where {output_NF, Model}","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(\n output::OutputWriter{output_NF, Model},\n feedback::SpeedyWeather.AbstractFeedback,\n time_stepping::SpeedyWeather.TimeStepper,\n diagn::DiagnosticVariables,\n model\n)\n\n\nCreates a netcdf file on disk and the corresponding netcdf_file object preallocated with output variables and dimensions. write_output! then writes consecuitive time steps into this file.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize!-Union{Tuple{NF}, Tuple{SpeedyWeather.StaticEnergyDiffusion{NF}, PrimitiveEquation}} where NF","page":"Function and type index","title":"SpeedyWeather.initialize!","text":"initialize!(\n scheme::SpeedyWeather.StaticEnergyDiffusion{NF},\n model::PrimitiveEquation\n) -> Any\n\n\nInitialize dry static energy diffusion.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.initialize_geopotential-Tuple{Vector, Vector, Real}","page":"Function and type index","title":"SpeedyWeather.initialize_geopotential","text":"initialize_geopotential(\n σ_levels_full::Vector,\n σ_levels_half::Vector,\n R_dry::Real\n) -> Tuple{Vector{Float64}, Vector{Float64}}\n\n\nPrecomputes constants for the vertical integration of the geopotential, defined as\n\nΦ_{k+1/2} = Φ_{k+1} + R*T_{k+1}*(ln(p_{k+1}) - ln(p_{k+1/2})) (half levels) Φ_k = Φ_{k+1/2} + R*T_k*(ln(p_{k+1/2}) - ln(p_k)) (full levels)\n\nSame formula but k → k-1/2.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.isdecreasing-Tuple{Vector}","page":"Function and type index","title":"SpeedyWeather.isdecreasing","text":"true/false = isdecreasing(v::Vector)\n\nCheck whether elements of a vector v are strictly decreasing.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.isincreasing-Tuple{Vector}","page":"Function and type index","title":"SpeedyWeather.isincreasing","text":"true/false = isincreasing(v::Vector)\n\nCheck whether elements of a vector v are strictly increasing.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.large_scale_condensation!-Tuple{ColumnVariables, PrimitiveDry}","page":"Function and type index","title":"SpeedyWeather.large_scale_condensation!","text":"large_scale_condensation!(\n column::ColumnVariables,\n model::PrimitiveDry\n)\n\n\nNo condensation in a PrimitiveDry model.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.large_scale_condensation!-Tuple{ColumnVariables, PrimitiveWet}","page":"Function and type index","title":"SpeedyWeather.large_scale_condensation!","text":"Function barrier only.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.large_scale_condensation!-Union{Tuple{NF}, Tuple{ColumnVariables{NF}, SpeedyCondensation, Geometry, DynamicsConstants, SpeedyWeather.AbstractAtmosphere, SpeedyWeather.TimeStepper}} where NF","page":"Function and type index","title":"SpeedyWeather.large_scale_condensation!","text":"large_scale_condensation!(\n column::ColumnVariables{NF},\n scheme::SpeedyCondensation,\n geometry::Geometry,\n constants::DynamicsConstants,\n atmosphere::SpeedyWeather.AbstractAtmosphere,\n time_stepping::SpeedyWeather.TimeStepper\n)\n\n\nLarge-scale condensation for a column by relaxation back to a reference relative humidity if larger than that. Calculates the tendencies for specific humidity and temperature and integrates the large-scale precipitation vertically for output.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.launch_kernel!-Tuple{SpeedyWeather.DeviceSetup, Any, Any, Vararg{Any}}","page":"Function and type index","title":"SpeedyWeather.launch_kernel!","text":"launch_kernel!(device_setup::DeviceSetup, kernel!, ndrange, kernel_args...)\n\nLaunches the kernel! on the device_setup with ndrange computations over the kernel and arguments kernel_args\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.leapfrog!-Union{Tuple{NF}, Tuple{LowerTriangularMatrix{Complex{NF}}, LowerTriangularMatrix{Complex{NF}}, LowerTriangularMatrix{Complex{NF}}, Real, Int64, Leapfrog{NF}}} where NF<:AbstractFloat","page":"Function and type index","title":"SpeedyWeather.leapfrog!","text":"leapfrog!(\n A_old::LowerTriangularMatrix{Complex{NF<:AbstractFloat}},\n A_new::LowerTriangularMatrix{Complex{NF<:AbstractFloat}},\n tendency::LowerTriangularMatrix{Complex{NF<:AbstractFloat}},\n dt::Real,\n lf::Int64,\n L::Leapfrog{NF<:AbstractFloat}\n)\n\n\nPerforms one leapfrog time step with (lf=2) or without (lf=1) Robert+Williams filter (see Williams (2009), Montly Weather Review, Eq. 7-9).\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.linear_pressure_gradient!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, SpeedyWeather.PrognosticSurfaceTimesteps, Int64, DynamicsConstants, SpeedyWeather.ImplicitPrimitiveEq}","page":"Function and type index","title":"SpeedyWeather.linear_pressure_gradient!","text":"linear_pressure_gradient!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n surface::SpeedyWeather.PrognosticSurfaceTimesteps,\n lf::Int64,\n C::DynamicsConstants,\n I::SpeedyWeather.ImplicitPrimitiveEq\n) -> LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat\n\n\nAdd the linear contribution of the pressure gradient to the geopotential. The pressure gradient in the divergence equation takes the form\n\n-∇⋅(Rd*Tᵥ*∇lnpₛ) = -∇⋅(Rd*Tᵥ'*∇lnpₛ) - ∇²(Rd*Tₖ*lnpₛ)\n\nSo that the second term inside the Laplace operator can be added to the geopotential. Rd is the gas constant, Tᵥ the virtual temperature and Tᵥ' its anomaly wrt to the average or reference temperature Tₖ, lnpₛ is the logarithm of surface pressure.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.linear_virtual_temperature!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, SpeedyWeather.PrognosticLayerTimesteps, DynamicsConstants, Int64}","page":"Function and type index","title":"SpeedyWeather.linear_virtual_temperature!","text":"linear_virtual_temperature!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n progn::SpeedyWeather.PrognosticLayerTimesteps,\n constants::DynamicsConstants,\n lf::Int64\n) -> Any\n\n\nCalculates a linearised virtual temperature Tᵥ as\n\nTᵥ = T + Tₖμq\n\nWith absolute temperature T, layer-average temperarture Tₖ (computed in temperature_average!), specific humidity q and\n\nμ = (1-ξ)/ξ, ξ = R_dry/R_vapour.\n\nin spectral space.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.linear_virtual_temperature!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, SpeedyWeather.PrognosticLayerTimesteps, PrimitiveDry, Integer}","page":"Function and type index","title":"SpeedyWeather.linear_virtual_temperature!","text":"linear_virtual_temperature!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n progn::SpeedyWeather.PrognosticLayerTimesteps,\n model::PrimitiveDry,\n lf::Integer\n) -> LowerTriangularMatrix{Complex{NF}} where NF<:AbstractFloat\n\n\nLinear virtual temperature for model::PrimitiveDry: Just copy over arrays from temp to temp_virt at timestep lf in spectral space as humidity is zero in this model.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.load_trajectory-Tuple{Union{String, Symbol}, SpeedyWeather.ModelSetup}","page":"Function and type index","title":"SpeedyWeather.load_trajectory","text":"load_trajectory(\n var_name::Union{String, Symbol},\n model::SpeedyWeather.ModelSetup\n) -> Any\n\n\nLoads a var_name trajectory of the model M that has been saved in a netCDF file during the time stepping.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.moist_static_energy!-Tuple{ColumnVariables, SpeedyWeather.Thermodynamics}","page":"Function and type index","title":"SpeedyWeather.moist_static_energy!","text":"moist_static_energy!(\n column::ColumnVariables,\n thermodynamics::SpeedyWeather.Thermodynamics\n)\n\n\nCompute the moist static energy\n\nMSE = SE + Lc*Q = cₚT + Φ + Lc*Q\n\nwith the static energy SE, the latent heat of condensation Lc, the geopotential Φ. As well as the saturation moist static energy which replaces Q with Q_sat\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.nans-Tuple","page":"Function and type index","title":"SpeedyWeather.nans","text":"A = nans(dims...)\n\nAllocate A::Array{Float64} with NaNs.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.nans-Union{Tuple{T}, Tuple{Type{T}, Vararg{Any}}} where T","page":"Function and type index","title":"SpeedyWeather.nans","text":"A = nans(T,dims...)\n\nAllocate array A with NaNs of type T. Similar to zeros(T,dims...).\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.nar_detection!-Tuple{Feedback, PrognosticVariables}","page":"Function and type index","title":"SpeedyWeather.nar_detection!","text":"nar_detection!(\n feedback::Feedback,\n progn::PrognosticVariables\n) -> Union{Nothing, Bool}\n\n\nDetect NaR (Not-a-Real) in the prognostic variables.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.parameterization_tendencies!-Tuple{DiagnosticVariables, Dates.DateTime, PrimitiveEquation}","page":"Function and type index","title":"SpeedyWeather.parameterization_tendencies!","text":"parameterization_tendencies!(\n diagn::DiagnosticVariables,\n time::Dates.DateTime,\n model::PrimitiveEquation\n) -> Any\n\n\nCompute tendencies for u,v,temp,humid from physical parametrizations. Extract for each vertical atmospheric column the prognostic variables (stored in diagn as they are grid-point transformed), loop over all grid-points, compute all parametrizations on a single-column basis, then write the tendencies back into a horizontal field of tendencies.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.pressure_on_orography!-Tuple{PrognosticVariables, PrimitiveEquation}","page":"Function and type index","title":"SpeedyWeather.pressure_on_orography!","text":"pressure_on_orography!(\n progn::PrognosticVariables,\n model::PrimitiveEquation\n)\n\n\nInitialize surface pressure on orography by integrating the hydrostatic equation with the reference temperature lapse rate.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.progress!-Tuple{Feedback}","page":"Function and type index","title":"SpeedyWeather.progress!","text":"progress!(feedback::Feedback)\n\n\nCalls the progress meter and writes every 5% progress increase to txt.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.progress_finish!-Tuple{Feedback}","page":"Function and type index","title":"SpeedyWeather.progress_finish!","text":"progress_finish!(F::Feedback)\n\n\nFinalises the progress meter and the progress txt file.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.readable_secs-Tuple{Real}","page":"Function and type index","title":"SpeedyWeather.readable_secs","text":"readable_secs(secs::Real) -> Dates.CompoundPeriod\n\n\nReturns Dates.CompoundPeriod rounding to either (days, hours), (hours, minutes), (minutes, seconds), or seconds with 1 decimal place accuracy for >10s and two for less. E.g.\n\njulia> readable_secs(12345)\n3 hours, 26 minutes\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.remaining_time-Tuple{ProgressMeter.Progress}","page":"Function and type index","title":"SpeedyWeather.remaining_time","text":"remaining_time(p::ProgressMeter.Progress) -> String\n\n\nEstimates the remaining time from a ProgresssMeter.Progress. Adapted from ProgressMeter.jl\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.reset_column!-Union{Tuple{ColumnVariables{NF}}, Tuple{NF}} where NF","page":"Function and type index","title":"SpeedyWeather.reset_column!","text":"reset_column!(column::ColumnVariables{NF})\n\n\nSet the accumulators (tendencies but also vertical sums and similar) back to zero for column to be reused at other grid points.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.run!-Tuple{SpeedyWeather.Simulation}","page":"Function and type index","title":"SpeedyWeather.run!","text":"run!(\n simulation::SpeedyWeather.Simulation;\n initialize,\n n_days,\n startdate,\n output\n) -> PrognosticVariables\n\n\nRun a SpeedyWeather.jl simulation. The simulation.model is assumed to be initialized, otherwise use initialize=true as keyword argument.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.saturation_humidity!-Tuple{ColumnVariables, SpeedyWeather.Thermodynamics}","page":"Function and type index","title":"SpeedyWeather.saturation_humidity!","text":"saturation_humidity!(\n column::ColumnVariables,\n thermodynamics::SpeedyWeather.Thermodynamics\n)\n\n\nCompute (1) the saturation vapour pressure as a function of temperature using the August-Roche-Magnus formula,\n\neᵢ(T) = e₀ * exp(Cᵢ * (T - T₀) / (T - Tᵢ)),\n\nwhere T is in Kelvin and i = 1,2 for saturation with respect to water and ice, respectively. And (2) the saturation specific humidity according to the formula,\n\n0.622 * e / (p - (1 - 0.622) * e),\n\nwhere e is the saturation vapour pressure, p is the pressure, and 0.622 is the ratio of the molecular weight of water to dry air.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.scale!-Tuple{PrognosticVariables, Real}","page":"Function and type index","title":"SpeedyWeather.scale!","text":"scale!(progn::PrognosticVariables, scale::Real) -> Real\n\n\nScales the prognostic variables vorticity and divergence with the Earth's radius which is used in the dynamical core.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.scale!-Union{Tuple{NF}, Tuple{PrognosticVariables{NF}, Symbol, Real}} where NF","page":"Function and type index","title":"SpeedyWeather.scale!","text":"scale!(\n progn::PrognosticVariables{NF},\n var::Symbol,\n scale::Real\n)\n\n\nScale the variable var inside progn with scalar scale.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.set_divergence!-Tuple{PrognosticVariables, Vararg{Any}}","page":"Function and type index","title":"SpeedyWeather.set_divergence!","text":"set_divergence!(progn::PrognosticVariables, varargs...; kwargs...)\n\nSee set_var!\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.set_humidity!-Tuple{PrognosticVariables, Vararg{Any}}","page":"Function and type index","title":"SpeedyWeather.set_humidity!","text":"set_humidity!(progn::PrognosticVariables, varargs...; kwargs...)\n\nSee set_var!\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.set_pressure!-Tuple{PrognosticVariables, AbstractMatrix}","page":"Function and type index","title":"SpeedyWeather.set_pressure!","text":"set_pressure!(progn::PrognosticVariables{NF}, \n pressure::AbstractMatrix, \n Grid::Type{<:AbstractGrid}, \n lf::Integer=1) where NF\n\nSets the prognostic variable with the surface pressure in grid space at leapfrog index lf.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.set_pressure!-Tuple{PrognosticVariables, LowerTriangularMatrix}","page":"Function and type index","title":"SpeedyWeather.set_pressure!","text":"set_pressure!(progn::PrognosticVariables{NF}, \n pressure::LowerTriangularMatrix;\n lf::Integer=1) where NF\n\nSets the prognostic variable with the surface pressure in spectral space at leapfrog index lf.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.set_pressure!-Tuple{PrognosticVariables, SpeedyWeather.RingGrids.AbstractGrid, SpeedyWeather.ModelSetup}","page":"Function and type index","title":"SpeedyWeather.set_pressure!","text":"set_pressure!(progn::PrognosticVariables{NF}, \n pressure::AbstractGrid, \n M::ModelSetup;\n lf::Integer=1) where NF\n\nSets the prognostic variable with the surface pressure in grid space at leapfrog index lf.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.set_pressure!-Tuple{PrognosticVariables, SpeedyWeather.RingGrids.AbstractGrid}","page":"Function and type index","title":"SpeedyWeather.set_pressure!","text":"set_pressure!(progn::PrognosticVariables{NF}, \n pressure::AbstractGrid, \n lf::Integer=1) where NF\n\nSets the prognostic variable with the surface pressure in grid space at leapfrog index lf.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.set_temperature!-Tuple{PrognosticVariables, Vararg{Any}}","page":"Function and type index","title":"SpeedyWeather.set_temperature!","text":"set_temperature!(progn::PrognosticVariables, varargs...; kwargs...)\n\nSee set_var!\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.set_var!-Union{Tuple{NF}, Tuple{PrognosticVariables{NF}, Symbol, Number}} where NF","page":"Function and type index","title":"SpeedyWeather.set_var!","text":"function set_var!(progn::PrognosticVariables{NF}, \n varname::Symbol, \n s::Number;\n lf::Integer=1) where NF\n\nSets all values of prognostic variable varname at leapfrog index lf to the scalar s.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.set_var!-Union{Tuple{NF}, Tuple{PrognosticVariables{NF}, Symbol, Vector{<:AbstractMatrix}}, Tuple{PrognosticVariables{NF}, Symbol, Vector{<:AbstractMatrix}, Type{<:SpeedyWeather.RingGrids.AbstractGrid}}} where NF","page":"Function and type index","title":"SpeedyWeather.set_var!","text":"set_var!(progn::PrognosticVariables{NF}, \n varname::Symbol, \n var::Vector{<:AbstractMatrix}, \n Grid::Type{<:AbstractGrid}=FullGaussianGrid;\n lf::Integer=1) where NF\n\nSets the prognostic variable with the name varname in all layers at leapfrog index lf with values given in var a vector with all information for all layers in grid space.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.set_var!-Union{Tuple{NF}, Tuple{PrognosticVariables{NF}, Symbol, Vector{<:LowerTriangularMatrix}}} where NF","page":"Function and type index","title":"SpeedyWeather.set_var!","text":"set_var!(progn::PrognosticVariables{NF}, \n varname::Symbol, \n var::Vector{<:LowerTriangularMatrix};\n lf::Integer=1) where NF\n\nSets the prognostic variable with the name varname in all layers at leapfrog index lf with values given in var a vector with all information for all layers in spectral space.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.set_var!-Union{Tuple{NF}, Tuple{PrognosticVariables{NF}, Symbol, Vector{<:SpeedyWeather.RingGrids.AbstractGrid}, SpeedyWeather.ModelSetup}} where NF","page":"Function and type index","title":"SpeedyWeather.set_var!","text":"set_var!(progn::PrognosticVariables{NF}, \n varname::Symbol, \n var::Vector{<:AbstractGrid}, \n M::ModelSetup;\n lf::Integer=1) where NF\n\nSets the prognostic variable with the name varname in all layers at leapfrog index lf with values given in var a vector with all information for all layers in grid space.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.set_var!-Union{Tuple{NF}, Tuple{PrognosticVariables{NF}, Symbol, Vector{<:SpeedyWeather.RingGrids.AbstractGrid}}} where NF","page":"Function and type index","title":"SpeedyWeather.set_var!","text":"set_var!(progn::PrognosticVariables{NF}, \n varname::Symbol, \n var::Vector{<:AbstractGrid};\n lf::Integer=1) where NF\n\nSets the prognostic variable with the name varname in all layers at leapfrog index lf with values given in var a vector with all information for all layers in grid space.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.set_vorticity!-Tuple{PrognosticVariables, Vararg{Any}}","page":"Function and type index","title":"SpeedyWeather.set_vorticity!","text":"set_vorticity!(progn::PrognosticVariables, varargs...; kwargs...)\n\nSee set_var!\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.sigma_okay-Tuple{Integer, AbstractVector}","page":"Function and type index","title":"SpeedyWeather.sigma_okay","text":"sigma_okay(nlev::Integer, σ_half::AbstractVector) -> Bool\n\n\nCheck that nlev and σ_half match.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.speedstring-Tuple{Any, Any}","page":"Function and type index","title":"SpeedyWeather.speedstring","text":"speedstring(sec_per_iter, dt_in_sec) -> String\n\n\ndefine a ProgressMeter.speedstring method that also takes a time step dt_in_sec to translate sec/iteration to days/days-like speeds.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.static_energy_diffusion!-Union{Tuple{NF}, Tuple{ColumnVariables{NF}, SpeedyWeather.StaticEnergyDiffusion}} where NF","page":"Function and type index","title":"SpeedyWeather.static_energy_diffusion!","text":"static_energy_diffusion!(\n column::ColumnVariables{NF},\n scheme::SpeedyWeather.StaticEnergyDiffusion\n)\n\n\nApply dry static energy diffusion.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.surface_pressure_tendency!-Tuple{SpeedyWeather.SurfaceVariables, SpectralTransform}","page":"Function and type index","title":"SpeedyWeather.surface_pressure_tendency!","text":"surface_pressure_tendency!( Prog::PrognosticVariables,\n Diag::DiagnosticVariables,\n lf::Int,\n M::PrimitiveEquation)\n\nComputes the tendency of the logarithm of surface pressure as\n\n-(ū*px + v̄*py) - D̄\n\nwith ū,v̄ being the vertically averaged velocities; px, py the gradients of the logarithm of surface pressure ln(p_s) and D̄ the vertically averaged divergence.\n\nCalculate ∇ln(p_s) in spectral space, convert to grid.\nMultiply ū,v̄ with ∇ln(p_s) in grid-point space, convert to spectral.\nD̄ is subtracted in spectral space.\nSet tendency of the l=m=0 mode to 0 for better mass conservation.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.temperature_anomaly!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, SpeedyWeather.ImplicitPrimitiveEq}","page":"Function and type index","title":"SpeedyWeather.temperature_anomaly!","text":"Convert absolute and virtual temperature to anomalies wrt to the reference profile\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.temperature_average!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, LowerTriangularMatrix, SpectralTransform}","page":"Function and type index","title":"SpeedyWeather.temperature_average!","text":"temperature_average!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n temp::LowerTriangularMatrix,\n S::SpectralTransform\n) -> Any\n\n\nCalculates the average temperature of a layer from the l=m=0 harmonic and stores the result in diagn.temp_average\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.temperature_relaxation!-Tuple{ColumnVariables, JablonowskiRelaxation}","page":"Function and type index","title":"SpeedyWeather.temperature_relaxation!","text":"temperature_relaxation!(\n column::ColumnVariables,\n scheme::JablonowskiRelaxation\n)\n\n\nApply HeldSuarez-like temperature relaxation to the Jablonowski and Williamson vertical profile.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.temperature_relaxation!-Tuple{ColumnVariables, NoTemperatureRelaxation}","page":"Function and type index","title":"SpeedyWeather.temperature_relaxation!","text":"temperature_relaxation!(\n column::ColumnVariables,\n scheme::NoTemperatureRelaxation\n)\n\n\njust passes.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.temperature_relaxation!-Union{Tuple{NF}, Tuple{ColumnVariables{NF}, HeldSuarez}} where NF","page":"Function and type index","title":"SpeedyWeather.temperature_relaxation!","text":"temperature_relaxation!(\n column::ColumnVariables{NF},\n scheme::HeldSuarez\n)\n\n\nApply temperature relaxation following Held and Suarez 1996, BAMS.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.temperature_tendency!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, DynamicsConstants, Geometry, SpectralTransform, SpeedyWeather.ImplicitPrimitiveEq}","page":"Function and type index","title":"SpeedyWeather.temperature_tendency!","text":"temperature_tendency!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n C::DynamicsConstants,\n G::Geometry,\n S::SpectralTransform,\n I::SpeedyWeather.ImplicitPrimitiveEq\n)\n\n\nCompute the temperature tendency\n\n∂T/∂t += -∇⋅((u,v)*T') + T'D + κTᵥ*Dlnp/Dt\n\n+= because the tendencies already contain parameterizations and vertical advection. T' is the anomaly with respect to the reference/average temperature. Tᵥ is the virtual temperature used in the adiabatic term κTᵥ*Dlnp/Dt.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.temperature_tendency!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, PrimitiveEquation}","page":"Function and type index","title":"SpeedyWeather.temperature_tendency!","text":"temperature_tendency!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n model::PrimitiveEquation\n)\n\n\nFunction barrier to unpack model.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.time_stepping!-Tuple{PrognosticVariables, DiagnosticVariables, SpeedyWeather.ModelSetup}","page":"Function and type index","title":"SpeedyWeather.time_stepping!","text":"time_stepping!(\n progn::PrognosticVariables,\n diagn::DiagnosticVariables,\n model::SpeedyWeather.ModelSetup\n) -> PrognosticVariables\n\n\nMain time loop that that initializes output and feedback, loops over all time steps and calls the output and feedback functions.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.timestep!","page":"Function and type index","title":"SpeedyWeather.timestep!","text":"timestep!(\n progn::PrognosticVariables,\n diagn::DiagnosticVariables,\n dt::Real,\n i::Integer,\n model::Barotropic\n)\ntimestep!(\n progn::PrognosticVariables,\n diagn::DiagnosticVariables,\n dt::Real,\n i::Integer,\n model::Barotropic,\n lf1::Int64\n)\ntimestep!(\n progn::PrognosticVariables,\n diagn::DiagnosticVariables,\n dt::Real,\n i::Integer,\n model::Barotropic,\n lf1::Int64,\n lf2::Int64\n)\n\n\nCalculate a single time step for the model <: Barotropic.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.timestep!-Union{Tuple{NF}, Tuple{PrognosticVariables{NF}, DiagnosticVariables{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF}, Real, Integer, PrimitiveEquation}, Tuple{PrognosticVariables{NF}, DiagnosticVariables{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF}, Real, Integer, PrimitiveEquation, Int64}, Tuple{PrognosticVariables{NF}, DiagnosticVariables{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF}, Real, Integer, PrimitiveEquation, Int64, Int64}} where NF<:AbstractFloat","page":"Function and type index","title":"SpeedyWeather.timestep!","text":"timestep!(\n progn::PrognosticVariables{NF<:AbstractFloat},\n diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},\n dt::Real,\n i::Integer,\n model::PrimitiveEquation\n) -> Any\ntimestep!(\n progn::PrognosticVariables{NF<:AbstractFloat},\n diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},\n dt::Real,\n i::Integer,\n model::PrimitiveEquation,\n lf1::Int64\n) -> Any\ntimestep!(\n progn::PrognosticVariables{NF<:AbstractFloat},\n diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},\n dt::Real,\n i::Integer,\n model::PrimitiveEquation,\n lf1::Int64,\n lf2::Int64\n) -> Any\n\n\nCalculate a single time step for the model<:PrimitiveEquation\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.timestep!-Union{Tuple{NF}, Tuple{PrognosticVariables{NF}, DiagnosticVariables{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF}, Real, Integer, ShallowWater}, Tuple{PrognosticVariables{NF}, DiagnosticVariables{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF}, Real, Integer, ShallowWater, Int64}, Tuple{PrognosticVariables{NF}, DiagnosticVariables{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF}, Real, Integer, ShallowWater, Int64, Int64}} where NF<:AbstractFloat","page":"Function and type index","title":"SpeedyWeather.timestep!","text":"timestep!(\n progn::PrognosticVariables{NF<:AbstractFloat},\n diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},\n dt::Real,\n i::Integer,\n model::ShallowWater\n) -> Union{Nothing, SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat}\ntimestep!(\n progn::PrognosticVariables{NF<:AbstractFloat},\n diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},\n dt::Real,\n i::Integer,\n model::ShallowWater,\n lf1::Int64\n) -> Union{Nothing, SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat}\ntimestep!(\n progn::PrognosticVariables{NF<:AbstractFloat},\n diagn::DiagnosticVariables{NF<:AbstractFloat, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},\n dt::Real,\n i::Integer,\n model::ShallowWater,\n lf1::Int64,\n lf2::Int64\n) -> Union{Nothing, SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat}\n\n\nCalculate a single time step for the model <: ShallowWater.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.underflow!-Union{Tuple{T}, Tuple{AbstractArray{T}, Real}} where T","page":"Function and type index","title":"SpeedyWeather.underflow!","text":"underflow!(A::AbstractArray,ϵ::Real)\n\nUnderflows element a in A to zero if abs(a) < ϵ.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.unscale!-Tuple{AbstractArray, Real}","page":"Function and type index","title":"SpeedyWeather.unscale!","text":"unscale!(variable::AbstractArray, scale::Real) -> Any\n\n\nUndo the radius-scaling for any variable. Method used for netcdf output.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.unscale!-Tuple{PrognosticVariables}","page":"Function and type index","title":"SpeedyWeather.unscale!","text":"unscale!(progn::PrognosticVariables) -> Int64\n\n\nUndo the radius-scaling of vorticity and divergence from scale!(progn,scale::Real).\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.vertical_integration!-Union{Tuple{NF}, Tuple{DiagnosticVariables{NF, Grid} where Grid<:SpeedyWeather.RingGrids.AbstractGrid{NF}, PrognosticVariables{NF}, Int64, Geometry{NF}}} where NF","page":"Function and type index","title":"SpeedyWeather.vertical_integration!","text":"vertical_integration!(Diag::DiagnosticVariables,G::Geometry)\n\nCalculates the vertically averaged (weighted by the thickness of the σ level) velocities (*coslat) and divergence. E.g.\n\nu_mean = ∑_k=1^nlev Δσ_k * u_k\n\nu,v are averaged in grid-point space, divergence in spectral space.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.virtual_temperature!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, LowerTriangularMatrix, DynamicsConstants}","page":"Function and type index","title":"SpeedyWeather.virtual_temperature!","text":"virtual_temperature!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n temp::LowerTriangularMatrix,\n constants::DynamicsConstants\n)\n\n\nCalculates the virtual temperature Tᵥ as\n\nTᵥ = T(1+μq)\n\nWith absolute temperature T, specific humidity q and\n\nμ = (1-ξ)/ξ, ξ = R_dry/R_vapour.\n\nin grid-point space.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.virtual_temperature!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, LowerTriangularMatrix, PrimitiveDry}","page":"Function and type index","title":"SpeedyWeather.virtual_temperature!","text":"virtual_temperature!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n temp::LowerTriangularMatrix,\n model::PrimitiveDry\n) -> SpeedyWeather.RingGrids.AbstractGrid{NF} where NF<:AbstractFloat\n\n\nVirtual temperature in grid-point space: For the PrimitiveDry temperature and virtual temperature are the same (humidity=0). Just copy over the arrays.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.volume_flux_divergence!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, SpeedyWeather.SurfaceVariables, SpeedyWeather.AbstractOrography, DynamicsConstants, Geometry, SpectralTransform}","page":"Function and type index","title":"SpeedyWeather.volume_flux_divergence!","text":"volume_flux_divergence!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n surface::SpeedyWeather.SurfaceVariables,\n orog::SpeedyWeather.AbstractOrography,\n constants::DynamicsConstants,\n G::Geometry,\n S::SpectralTransform\n)\n\n\nComputes the (negative) divergence of the volume fluxes uh,vh for the continuity equation, -∇⋅(uh,vh).\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.vordiv_tendencies!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, SpeedyWeather.SurfaceVariables, DynamicsConstants, Geometry, SpectralTransform}","page":"Function and type index","title":"SpeedyWeather.vordiv_tendencies!","text":"vordiv_tendencies!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n surf::SpeedyWeather.SurfaceVariables,\n C::DynamicsConstants,\n G::Geometry,\n S::SpectralTransform\n)\n\n\nTendencies for vorticity and divergence. Excluding Bernoulli potential with geopotential and linear pressure gradient inside the Laplace operator, which are added later in spectral space.\n\nu_tend += v*(f+ζ) - RTᵥ'*∇lnp_x\nv_tend += -u*(f+ζ) - RTᵥ'*∇lnp_y\n\n+= because the tendencies already contain the parameterizations and vertical advection. f is coriolis, ζ relative vorticity, R the gas constant Tᵥ' the virtual temperature anomaly, ∇lnp the gradient of surface pressure and _x and _y its zonal/meridional components. The tendencies are then curled/dived to get the tendencies for vorticity/divergence in spectral space\n\n∂ζ/∂t = ∇×(u_tend,v_tend)\n∂D/∂t = ∇⋅(u_tend,v_tend) + ...\n\n+ ... because there's more terms added later for divergence.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.vordiv_tendencies!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, SpeedyWeather.SurfaceVariables, PrimitiveEquation}","page":"Function and type index","title":"SpeedyWeather.vordiv_tendencies!","text":"vordiv_tendencies!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n surf::SpeedyWeather.SurfaceVariables,\n model::PrimitiveEquation\n)\n\n\nFunction barrier to unpack model.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.vorticity_flux!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, Barotropic}","page":"Function and type index","title":"SpeedyWeather.vorticity_flux!","text":"vorticity_flux!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n model::Barotropic\n)\n\n\nVorticity flux tendency in the barotropic vorticity equation\n\n∂ζ/∂t = ∇×(u_tend,v_tend)\n\nwith\n\nu_tend = Fᵤ + v*(ζ+f) v_tend = Fᵥ - u*(ζ+f)\n\nwith Fᵤ,Fᵥ the forcing from forcing! already in u_tend_grid/v_tend_grid and vorticity ζ, coriolis f.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.vorticity_flux!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, ShallowWater}","page":"Function and type index","title":"SpeedyWeather.vorticity_flux!","text":"vorticity_flux!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n model::ShallowWater\n)\n\n\nVorticity flux tendency in the shallow water equations\n\n∂ζ/∂t = ∇×(u_tend,v_tend) ∂D/∂t = ∇⋅(u_tend,v_tend)\n\nwith\n\nu_tend = Fᵤ + v*(ζ+f) v_tend = Fᵥ - u*(ζ+f)\n\nwith Fᵤ,Fᵥ the forcing from forcing! already in u_tend_grid/v_tend_grid and vorticity ζ, coriolis f.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.vorticity_flux_curldiv!-Tuple{SpeedyWeather.DiagnosticVariablesLayer, DynamicsConstants, Geometry, SpectralTransform}","page":"Function and type index","title":"SpeedyWeather.vorticity_flux_curldiv!","text":"vorticity_flux_curldiv!(\n diagn::SpeedyWeather.DiagnosticVariablesLayer,\n C::DynamicsConstants,\n G::Geometry,\n S::SpectralTransform;\n div\n)\n\n\nCompute the vorticity advection as the curl/div of the vorticity fluxes\n\n∂ζ/∂t = ∇×(u_tend,v_tend) ∂D/∂t = ∇⋅(u_tend,v_tend)\n\nwith\n\nu_tend = Fᵤ + v*(ζ+f) v_tend = Fᵥ - u*(ζ+f)\n\nwith Fᵤ,Fᵥ from u_tend_grid/v_tend_grid that are assumed to be alread set in forcing!. Set div=false for the BarotropicModel which doesn't require the divergence tendency.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.workgroup_size-Tuple{SpeedyWeather.AbstractDevice}","page":"Function and type index","title":"SpeedyWeather.workgroup_size","text":"workgroup_size(dev::AbstractDevice)\n\nReturns a workgroup size depending on dev. WIP: Will be expanded in the future to also include grid information. \n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.write_column_tendencies!-Tuple{DiagnosticVariables, ColumnVariables, Int64}","page":"Function and type index","title":"SpeedyWeather.write_column_tendencies!","text":"write_column_tendencies!(\n D::DiagnosticVariables,\n C::ColumnVariables,\n ij::Int64\n)\n\n\nWrite the parametrization tendencies from C::ColumnVariables into the horizontal fields of tendencies stored in D::DiagnosticVariables at gridpoint index ij.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.write_netcdf_time!-Tuple{OutputWriter, Dates.DateTime}","page":"Function and type index","title":"SpeedyWeather.write_netcdf_time!","text":"write_netcdf_time!(\n output::OutputWriter,\n time::Dates.DateTime\n)\n\n\nWrite the current time time::DateTime to the netCDF file in output::OutputWriter.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.write_netcdf_variables!-Union{Tuple{Model}, Tuple{Grid}, Tuple{NF}, Tuple{OutputWriter, DiagnosticVariables{NF, Grid, Model}}} where {NF, Grid, Model}","page":"Function and type index","title":"SpeedyWeather.write_netcdf_variables!","text":"write_netcdf_variables!(\n output::OutputWriter,\n diagn::DiagnosticVariables{NF, Grid, Model}\n)\n\n\nWrite diagnostic variables from diagn to the netCDF file in output::OutputWriter.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.write_output!-Tuple{OutputWriter, Dates.DateTime, DiagnosticVariables}","page":"Function and type index","title":"SpeedyWeather.write_output!","text":"write_output!(\n outputter::OutputWriter,\n time::Dates.DateTime,\n diagn::DiagnosticVariables\n)\n\n\nWrites the variables from diagn of time step i at time time into outputter.netcdf_file. Simply escapes for no netcdf output of if output shouldn't be written on this time step. Interpolates onto output grid and resolution as specified in outputter, converts to output number format, truncates the mantissa for higher compression and applies lossless compression.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.write_restart_file-Tuple{PrognosticVariables, OutputWriter}","page":"Function and type index","title":"SpeedyWeather.write_restart_file","text":"write_restart_file(\n progn::PrognosticVariables,\n output::OutputWriter\n) -> Union{Nothing, String}\n\n\nA restart file restart.jld2 with the prognostic variables is written to the output folder (or current path) that can be used to restart the model. restart.jld2 will then be used as initial conditions. The prognostic variables are bitrounded for compression and the 2nd leapfrog time step is discarded. Variables in restart file are unscaled.\n\n\n\n\n\n","category":"method"},{"location":"functions/#SpeedyWeather.zero_tendencies!-Tuple{DiagnosticVariables}","page":"Function and type index","title":"SpeedyWeather.zero_tendencies!","text":"zero_tendencies!(diagn::DiagnosticVariables)\n\n\nSet the tendencies in diagn to zero.\n\n\n\n\n\n","category":"method"},{"location":"how_to_run_speedy/#How-to-run-SpeedyWeather.jl","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"","category":"section"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"Creating a SpeedyWeather.jl simulation and running it consists conceptually of 4 steps","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"Create a SpectralGrid which defines the grid and spectral resolution\nCreate a model\nInitialize a model to obtain a Simulation.\nRun the simulation.","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"In the following we will describe these steps in more detail, but let's start with some examples first.","category":"page"},{"location":"how_to_run_speedy/#Example-1:-2D-turbulence-on-a-non-rotating-sphere","page":"How to run SpeedyWeather.jl","title":"Example 1: 2D turbulence on a non-rotating sphere","text":"","category":"section"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"We want to use the barotropic model to simulate some free-decaying 2D turbulence on the sphere without rotation. We start by defining the SpectralGrid object. To have a resolution of about 100km, we choose a spectral resolution of T127 (see Available horizontal resolutions) and nlev=1 vertical levels. The SpectralGrid object will provide us with some more information","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> spectral_grid = SpectralGrid(trunc=127,nlev=1)\nSpectralGrid:\n Spectral: T127 LowerTriangularMatrix{Complex{Float32}}, radius = 6.371e6 m\n Grid: 40320-element, 192-ring OctahedralGaussianGrid{Float32} (quadratic)\n Resolution: 112km (average)\n Vertical: 1-level SigmaCoordinates","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"We could have specified further options, but let's ignore that for now. Next step we create a planet that's like Earth but not rotating","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> still_earth = Earth(rotation=0)\nMain.SpeedyWeather.Earth\n rotation: Float64 0.0\n gravity: Float64 9.81\n daily_cycle: Bool true\n length_of_day: Float64 24.0\n seasonal_cycle: Bool true\n length_of_year: Float64 365.25\n equinox: Dates.DateTime\n axial_tilt: Float64 23.4","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"There are other options to create a planet but they are irrelevant for the barotropic vorticity equations. We also want to specify the initial conditions, randomly distributed vorticity is already defined","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> initial_conditions = StartWithRandomVorticity()\nStartWithRandomVorticity\n power_law: Float64 -3.0\n amplitude: Float64 1.0e-5","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"By default, the power of vorticity is spectrally distributed with k^-3, k being the horizontal wavenumber, and the amplitude is 10^-5text s^-1.","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"Now we want to construct a BarotropicModel with these","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> model = BarotropicModel(;spectral_grid, initial_conditions, planet=still_earth);","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"The model contains all the parameters, but isn't initialized yet, which we can do with and then run it.","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> simulation = initialize!(model);\njulia> run!(simulation,n_days=30)","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"The run! command will always return the prognostic variables, which, by default, are plotted for surface relative vorticity with a unicode plot. The resolution of the plot is not necessarily representative but it lets us have a quick look at the result","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"(Image: Barotropic vorticity unicode plot)","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"Woohoo! I can see turbulence! You could pick up where this simulation stopped by simply doing run!(simulation,n_days=50) again. We didn't store any output, which you can do by run!(simulation,output=true), which will switch on NetCDF output with default settings. More options on output in NetCDF output.","category":"page"},{"location":"how_to_run_speedy/#Example-2:-Shallow-water-with-mountains","page":"How to run SpeedyWeather.jl","title":"Example 2: Shallow water with mountains","text":"","category":"section"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"As a second example, let's investigate the Galewsky et al.[1] test case for the shallow water equations with and without mountains. As the shallow water system has also only one level, we can reuse the SpectralGrid from Example 1.","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> spectral_grid = SpectralGrid(trunc=127,nlev=1)","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"Now as a first simulation, we want to disable any orography, so we create a NoOrography","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> orography = NoOrography(spectral_grid)\nNoOrography{Float32, OctahedralGaussianGrid{Float32}}","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"Although the orography is zero, you have to pass on spectral_grid so that it can still initialize zero-arrays of the right size and element type. Awesome. This time the initial conditions should be set the the Galewsky et al.[1] zonal jet, which is already defined as","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> initial_conditions = ZonalJet()\nZonalJet\n latitude: Float64 45.0\n width: Float64 19.28571428571429\n umax: Float64 80.0\n perturb_lat: Float64 45.0\n perturb_lon: Float64 270.0\n perturb_xwidth: Float64 19.098593171027442\n perturb_ywidth: Float64 3.819718634205488\n perturb_height: Float64 120.0","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"The jet sits at 45˚N with a maximum velocity of 80m/s and a perturbation as described in their paper. Now we construct a model, but this time a ShallowWaterModel","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> model = ShallowWaterModel(;spectral_grid, orography, initial_conditions);\njulia> simulation = initialize!(model);","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"(Image: Galewsky jet unicode plot)","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"Oh yeah. That looks like the wobbly jet in their paper. Let's run it again for another 6 days but this time also store NetCDF output.","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> run!(simulation,n_days=6,output=true)\nWeather is speedy: run 0002 100%|███████████████████████| Time: 0:00:12 (115.37 years/day)","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"The progress bar tells us that the simulation run got the identification \"0002\", meaning that data is stored in the folder /run_0002, so let's plot that data properly (and not just using UnicodePlots).","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> using PyPlot, NCDatasets\njulia> ds = NCDataset(\"run_0002/output.nc\");\njulia> ds[\"vor\"]\nvor (384 × 192 × 1 × 25)\n Datatype: Float32\n Dimensions: lon × lat × lev × time\n Attributes:\n units = 1/s\n missing_value = NaN\n long_name = relative vorticity\n _FillValue = NaN","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"Vorticity vor is stored as a 384x192x1x25 array, we may want to look at the first time step, which is the end of the previous simulation (time=6days) which we didn't store output for.","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> vor = ds[\"vor\"][:,:,1,1];\njulia> lat = ds[\"lat\"][:];\njulia> lon = ds[\"lon\"][:];\njulia> pcolormesh(lon,lat,vor')","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"Which looks like","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"(Image: Galewsky jet pyplot)","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"You see that the unicode plot heavily coarse-grains the simulation, well it's unicode after all! And now the last time step, that means time=12days is","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> vor = ds[\"vor\"][:,:,1,25];\njulia> pcolormesh(lon,lat,vor')","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"(Image: Galewsky jet pyplot)","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"The jet broke up into many small eddies, but the turbulence is still confined to the northern hemisphere, cool! How this may change when we add mountains (we had NoOrography above!), say Earth's orography, you may ask? Let's try it out! We create an EarthOrography struct like so","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> orography = EarthOrography(spectral_grid)\nEarthOrography{Float32, OctahedralGaussianGrid{Float32}}:\n path::String = SpeedyWeather.jl/input_data\n file::String = orography_F512.nc\n scale::Float64 = 1.0\n smoothing::Bool = true\n smoothing_power::Float64 = 1.0\n smoothing_strength::Float64 = 0.1\n smoothing_truncation::Int64 = 85","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"It will read the orography from file as shown, and there are some smoothing options too, but let's not change them. Same as before, create a model, initialize into a simulation, run. This time directly for 12 days so that we can compare with the last plot","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"julia> model = ShallowWaterModel(;spectral_grid, orography, initial_conditions);\njulia> simulation = initialize!(model);\njulia> run!(simulation,n_days=12,output=true)\nWeather is speedy: run 0003 100%|███████████████████████| Time: 0:00:35 (79.16 years/day)","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"This time the run got the id \"0003\", but otherwise we do as before.","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"(Image: Galewsky jet pyplot)","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"Interesting! The initial conditions have zero velocity in the southern hemisphere, but still, one can see some imprint of the orography on vorticity. You can spot the coastline of Antarctica; the Andes and Greenland are somewhat visible too. Mountains also completely changed the flow after 12 days, probably not surprising!","category":"page"},{"location":"how_to_run_speedy/#SpectralGrid","page":"How to run SpeedyWeather.jl","title":"SpectralGrid","text":"","category":"section"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"The life of every SpeedyWeather.jl simulation starts with a SpectralGrid object. We have seen some examples above, now let's look into the details","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"SpectralGrid","category":"page"},{"location":"how_to_run_speedy/#References","page":"How to run SpeedyWeather.jl","title":"References","text":"","category":"section"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"[1] Galewsky, Scott, Polvani, 2004. An initial-value problem for testing numerical models of the global shallow-water equations, Tellus A. DOI: 10.3402/tellusa.v56i5.14436","category":"page"},{"location":"speedytransforms/#SpeedyTransforms","page":"Submodule: SpeedyTransforms","title":"SpeedyTransforms","text":"","category":"section"},{"location":"speedytransforms/","page":"Submodule: SpeedyTransforms","title":"Submodule: SpeedyTransforms","text":"SpeedyTransforms is a submodule that has been developed for SpeedyWeather.jl which is technically independent (SpeedyWeather.jl however imports it) and can also be used without running simulations. It is just not put into its own respective repository.","category":"page"},{"location":"speedytransforms/#Example-transforms","page":"Submodule: SpeedyTransforms","title":"Example transforms","text":"","category":"section"},{"location":"speedytransforms/","page":"Submodule: SpeedyTransforms","title":"Submodule: SpeedyTransforms","text":"julia> using SpeedyWeather\njulia> alms = zeros(ComplexF64,3,3) # spectral coefficients\njulia> alms[2,2] = 1 # only l=1,m=1 harmonic\njulia> map = gridded(alms) # convert to grid space\n8×4 Matrix{Float64}:\n -0.324541 -0.600363 -0.600363 -0.324541\n -0.134429 -0.248678 -0.248678 -0.134429\n 0.134429 0.248678 0.248678 0.134429\n 0.324541 0.600363 0.600363 0.324541\n 0.324541 0.600363 0.600363 0.324541\n 0.134429 0.248678 0.248678 0.134429\n -0.134429 -0.248678 -0.248678 -0.134429\n -0.324541 -0.600363 -0.600363 -0.324541\n \njulia> spectral(map) # back to spectral space\n3×3 Matrix{ComplexF64}:\n 0.0+0.0im 0.0+0.0im 0.0+0.0im\n 0.0+0.0im 1.0+3.60727e-17im 0.0+0.0im\n 0.0+0.0im 0.0+0.0im 0.0+0.0im","category":"page"},{"location":"speedytransforms/","page":"Submodule: SpeedyTransforms","title":"Submodule: SpeedyTransforms","text":"and we have successfully reobtained the l=m=1 spherical harmonic.","category":"page"},{"location":"speedytransforms/#Functions-and-type-index","page":"Submodule: SpeedyTransforms","title":"Functions and type index","text":"","category":"section"},{"location":"speedytransforms/","page":"Submodule: SpeedyTransforms","title":"Submodule: SpeedyTransforms","text":"Modules = [SpeedyWeather.SpeedyTransforms]","category":"page"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.SpectralTransform","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.SpectralTransform","text":"S = SpectralTransform{NF<:AbstractFloat}(...)\n\nSpectralTransform struct that contains all parameters and preallocated arrays for the spectral transform.\n\n\n\n\n\n","category":"type"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.SpectralTransform-Union{Tuple{AbstractArray{Complex{NF}, 2}}, Tuple{NF}} where NF","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.SpectralTransform","text":"S = SpectralTransform( alms::AbstractMatrix{Complex{NF}};\n recompute_legendre::Bool=true,\n Grid::Type{<:AbstractGrid}=DEFAULT_GRID)\n\nGenerator function for a SpectralTransform struct based on the size of the spectral coefficients alms and the grid Grid. Recomputes the Legendre polynomials by default.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.SpectralTransform-Union{Tuple{NF}, Tuple{Type{NF}, Type{<:SpeedyWeather.RingGrids.AbstractGrid}, Int64, Int64}} where NF","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.SpectralTransform","text":"SpectralTransform(\n ::Type{NF},\n Grid::Type{<:SpeedyWeather.RingGrids.AbstractGrid},\n lmax::Int64,\n mmax::Int64;\n recompute_legendre,\n legendre_shortcut,\n dealiasing\n) -> SpectralTransform\n\n\nGenerator function for a SpectralTransform struct. With NF the number format, Grid the grid type <:AbstractGrid and spectral truncation lmax,mmax this function sets up necessary constants for the spetral transform. Also plans the Fourier transforms, retrieves the colatitudes, and preallocates the Legendre polynomials (if recompute_legendre == false) and quadrature weights.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.SpectralTransform-Union{Tuple{SpeedyWeather.RingGrids.AbstractGrid{NF}}, Tuple{NF}} where NF","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.SpectralTransform","text":"S = SpectralTransform( map::AbstractGrid;\n recompute_legendre::Bool=true)\n\nGenerator function for a SpectralTransform struct based on the size and grid type of gridded field map. Recomputes the Legendre polynomials by default.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.UV_from_vor!-Union{Tuple{NF}, Tuple{LowerTriangularMatrix{Complex{NF}}, LowerTriangularMatrix{Complex{NF}}, LowerTriangularMatrix{Complex{NF}}, SpectralTransform{NF}}} where NF<:AbstractFloat","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.UV_from_vor!","text":"UV_from_vor!( U::LowerTriangularMatrix,\n V::LowerTriangularMatrix,\n vor::LowerTriangularMatrix,\n S::SpectralTransform)\n\nGet U,V (=(u,v)*coslat) from vorticity ζ spectral space (divergence D=0) Two operations are combined into a single linear operation. First, invert the spherical Laplace ∇² operator to get stream function from vorticity. Then compute zonal and meridional gradients to get U,V.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.UV_from_vordiv!-Union{Tuple{NF}, Tuple{LowerTriangularMatrix{Complex{NF}}, LowerTriangularMatrix{Complex{NF}}, LowerTriangularMatrix{Complex{NF}}, LowerTriangularMatrix{Complex{NF}}, SpectralTransform{NF}}} where NF<:AbstractFloat","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.UV_from_vordiv!","text":"UV_from_vordiv!(U::LowerTriangularMatrix,\n V::LowerTriangularMatrix,\n vor::LowerTriangularMatrix,\n div::LowerTriangularMatrix,\n S::SpectralTransform)\n\nGet U,V (=(u,v)*coslat) from vorticity ζ and divergence D in spectral space. Two operations are combined into a single linear operation. First, invert the spherical Laplace ∇² operator to get stream function from vorticity and velocity potential from divergence. Then compute zonal and meridional gradients to get U,V.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms._divergence!-Union{Tuple{NF}, Tuple{Any, LowerTriangularMatrix{Complex{NF}}, LowerTriangularMatrix{Complex{NF}}, LowerTriangularMatrix{Complex{NF}}, SpectralTransform{NF}}} where NF<:AbstractFloat","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms._divergence!","text":"_divergence!( kernel,\n div::LowerTriangularMatrix,\n u::LowerTriangularMatrix,\n v::LowerTriangularMatrix,\n S::SpectralTransform)\n\nGeneric divergence function of vector u,v that writes into the output into div. Generic as it uses the kernel kernel such that curl, div, add or flipsign options are provided through kernel, but otherwise a single function is used.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.curl!-Tuple{LowerTriangularMatrix, LowerTriangularMatrix, LowerTriangularMatrix, SpectralTransform}","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.curl!","text":"curl!( curl::LowerTriangularMatrix,\n u::LowerTriangularMatrix,\n v::LowerTriangularMatrix,\n S::SpectralTransform;\n flipsign::Bool=false,\n add::Bool=false,\n )\n\nCurl of a vector u,v written into curl, curl = ∇×(u,v). u,v are expected to have a 1/coslat-scaling included, then curl is not scaled. flipsign option calculates -∇×(u,v) instead. add option calculates curl += ∇×(u,v) instead. flipsign and add can be combined. This functions only creates the kernel and calls the generic divergence function _divergence! subsequently with flipped u,v -> v,u for the curl.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.divergence!-Tuple{LowerTriangularMatrix, LowerTriangularMatrix, LowerTriangularMatrix, SpectralTransform}","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.divergence!","text":"divergence!(div::LowerTriangularMatrix,\n u::LowerTriangularMatrix,\n v::LowerTriangularMatrix,\n S::SpectralTransform{NF};\n flipsign::Bool=false,\n add::Bool=false,\n )\n\nDivergence of a vector u,v written into div, div = ∇⋅(u,v). u,v are expected to have a 1/coslat-scaling included, then div is not scaled. flipsign option calculates -∇⋅(u,v) instead. add option calculates div += ∇⋅(u,v) instead. flipsign and add can be combined. This functions only creates the kernel and calls the generic divergence function _divergence! subsequently.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.get_recursion_factors-Union{Tuple{NF}, Tuple{Type{NF}, Int64, Int64}} where NF<:AbstractFloat","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.get_recursion_factors","text":"get_recursion_factors( ::Type{NF}, # number format NF\n lmax::Int, # max degree l of spherical harmonics (0-based here)\n mmax::Int # max order m of spherical harmonics\n ) where {NF<:AbstractFloat}\n\nReturns a matrix of recursion factors ϵ up to degree lmax and order mmax of number format NF.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.gridded!-Union{Tuple{NF}, Tuple{SpeedyWeather.RingGrids.AbstractGrid{NF}, LowerTriangularMatrix{Complex{NF}}, SpectralTransform{NF}}} where NF<:AbstractFloat","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.gridded!","text":"gridded!( map::AbstractGrid,\n alms::LowerTriangularMatrix,\n S::SpectralTransform)\n\nSpectral transform (spectral to grid) of the spherical harmonic coefficients alms to a gridded field map. The spectral transform is number format-flexible as long as the parametric types of map, alms, S are identical. The spectral transform is grid-flexible as long as the typeof(map)<:AbstractGrid. Uses the precalculated arrays, FFT plans and other constants in the SpectralTransform struct S.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.gridded-Union{Tuple{AbstractMatrix{T}}, Tuple{T}, Tuple{NF}} where {NF, T<:Complex{NF}}","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.gridded","text":"map = gridded( alms::AbstractMatrix;\n recompute_legendre::Bool=true,\n grid::Type{<:AbstractGrid}=DEFAULT_GRID)\n\nSpectral transform (spectral to grid space) from spherical coefficients alms to a newly allocated gridded field map. Based on the size of alms the grid type grid, the spatial resolution is retrieved based on the truncation defined for grid. SpectralTransform struct S is allocated to execute gridded(alms,S).\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.gridded-Union{Tuple{NF}, Tuple{AbstractMatrix, SpectralTransform{NF}}} where NF","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.gridded","text":"map = gridded( alms::AbstractMatrix,\n S::SpectralTransform)\n\nSpectral transform (spectral to grid space) from spherical coefficients alms to a newly allocated gridded field map with precalculated properties based on the SpectralTransform struct S. alms is converted to a LowerTriangularMatrix to execute the in-place gridded!.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.is_power_2-Tuple{Integer}","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.is_power_2","text":"true/false = is_power_2(i::Integer)\n\nChecks whether an integer i is a power of 2, i.e. i = 2^k, with k = 0,1,2,3,....\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.roundup_fft-Union{Tuple{Integer}, Tuple{T}} where T<:Integer","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.roundup_fft","text":"m = roundup_fft(n::Int;\n small_primes::Vector{Int}=[2,3,5])\n\nReturns an integer m >= n with only small prime factors 2, 3 (default, others can be specified with the keyword argument small_primes) to obtain an efficiently fourier-transformable number of longitudes, m = 2^i * 3^j * 5^k >= n, with i,j,k >=0.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.spectral!-Union{Tuple{NF}, Tuple{LowerTriangularMatrix{Complex{NF}}, SpeedyWeather.RingGrids.AbstractGrid{NF}, SpectralTransform{NF}}} where NF<:AbstractFloat","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.spectral!","text":"spectral!( alms::LowerTriangularMatrix,\n map::AbstractGrid,\n S::SpectralTransform)\n\nSpectral transform (grid to spectral space) from the gridded field map on a grid<:AbstractGrid to a LowerTriangularMatrix of spherical harmonic coefficients alms. Uses FFT in the zonal direction, and a Legendre Transform in the meridional direction exploiting symmetries. The spectral transform is number format-flexible as long as the parametric types of map, alms, S are identical. The spectral transform is grid-flexible as long as the typeof(map)<:AbstractGrid. Uses the precalculated arrays, FFT plans and other constants in the SpectralTransform struct S.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.spectral-Tuple{AbstractMatrix}","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.spectral","text":"alms = spectral( map::AbstractMatrix;\n Grid::Type{<:AbstractGrid}=DEFAULT_GRID,\n kwargs...)\n\nConverts map to grid(map) to execute spectral(map::AbstractGrid;kwargs...).\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.spectral-Union{Tuple{NF}, Tuple{SpeedyWeather.RingGrids.AbstractGrid{NF}, SpectralTransform{NF}}} where NF","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.spectral","text":"alms = spectral( map::AbstractMatrix;\n Grid::Type{<:AbstractGrid}=DEFAULT_GRID,\n kwargs...)\n\nSpectral transform (grid to spectral) map to grid(map) to execute spectral(map::AbstractGrid;kwargs...).\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.spectral-Union{Tuple{SpeedyWeather.RingGrids.AbstractGrid{NF}}, Tuple{NF}} where NF","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.spectral","text":"alms = spectral( map::AbstractGrid;\n Grid::Type{<:AbstractGrid}=DEFAULT_GRID,\n kwargs...)\n\nConverts map to Grid(map) to execute spectral(map::AbstractGrid;kwargs...).\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.spectral_interpolation-Union{Tuple{NF}, Tuple{Type{NF}, LowerTriangularMatrix, Integer, Integer}} where NF","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.spectral_interpolation","text":"alms_interp = spectral_interpolation( ::Type{NF},\n alms::LowerTriangularMatrix,\n ltrunc::Integer,\n mtrunc::Integer\n ) where NF\n\nReturns a spectral coefficient matrix alms_interp that is alms padded with zeros to interpolate in spectral space. If trunc is smaller or equal to the implicit truncation in alms obtained from its size than spectral_truncation is automatically called instead, returning alms_trunc, a coefficient matrix that is smaller than alms, implicitly setting higher degrees and orders to zero.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.spectral_smoothing!-Tuple{LowerTriangularMatrix, Real}","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.spectral_smoothing!","text":"spectral_smoothing!(A::LowerTriangularMatrix,c;power=1)\n\nSmooth the spectral field A following A = (1-(1-c)∇²ⁿ) with power n of a normalised Laplacian so that the highest degree lmax is dampened by multiplication with c. Anti-diffusion for c>1.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.spectral_smoothing-Tuple{LowerTriangularMatrix, Real}","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.spectral_smoothing","text":"A_smooth = spectral_smoothing(A::LowerTriangularMatrix,c;power=1)\n\nSmooth the spectral field A following A_smooth = (1-c*∇²ⁿ)A with power n of a normalised Laplacian so that the highest degree lmax is dampened by multiplication with c. Anti-diffusion for c<0.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.spectral_truncation!-Tuple{AbstractMatrix, Int64}","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.spectral_truncation!","text":"spectral_truncation!(alms,trunc)\n\nTruncate spectral coefficients alms in-place by setting (a) the upper right triangle to zero and (b) all coefficients for which the degree l is larger than the truncation trunc.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.spectral_truncation!-Tuple{AbstractMatrix}","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.spectral_truncation!","text":"spectral_truncation!(alms)\n\nTruncate spectral coefficients alms in-place by setting the upper right triangle to zero. This is to enforce that all coefficients for which the degree l is larger than order m are zero.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.spectral_truncation!-Union{Tuple{NF}, Tuple{AbstractMatrix{NF}, Integer, Integer}} where NF","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.spectral_truncation!","text":"spectral_truncation!(alms::AbstractMatrix,ltrunc::Integer,mtrunc::Integer)\n\nTruncate spectral coefficients alms in-place by setting (a) the upper right triangle to zero and (b) all coefficients for which the degree l is larger than the truncation ltrunc or order m larger than the truncaction mtrunc.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.spectral_truncation!-Union{Tuple{NF}, Tuple{LowerTriangularMatrix{NF}, Integer, Integer}} where NF","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.spectral_truncation!","text":"spectral_truncation!(alms::LowerTriangularMatrix,ltrunc::Integer,mtrunc::Integer)\n\nTruncate spectral coefficients alms in-place by setting all coefficients for which the degree l is larger than the truncation ltrunc or order m larger than the truncaction mtrunc. Similar to spectral_truncation!(::AbstractMatrix, ...) but skips the upper triangle which is zero by design for LowerTriangularMatrix.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.spectral_truncation-Union{Tuple{NF}, Tuple{Type{NF}, LowerTriangularMatrix, Integer, Integer}} where NF","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.spectral_truncation","text":"alms_trunc = spectral_truncation(alms,trunc)\n\nReturns a spectral coefficient matrix alms_trunc that is truncated from alms to the size (trunc+1)². alms_trunc only contains those coefficient of alms for which m,l ≤ trunc, and l ≥ m are zero anyway. If trunc is larger than the implicit truncation in alms obtained from its size than spectral_interpolation is automatically called instead, returning alms_interp, a coefficient matrix that is larger than alms with padded zero coefficients.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.ϵlm-Tuple{Int64, Int64}","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.ϵlm","text":"ϵ = ϵ(l,m)\n\nRecursion factors ϵ as a function of degree l and order m (0-based) of the spherical harmonics. ϵ(l,m) = sqrt((l^2-m^2)/(4*l^2-1)) with default number format Float64.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.ϵlm-Union{Tuple{NF}, Tuple{Type{NF}, Int64, Int64}} where NF","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.ϵlm","text":"ϵ = ϵ(NF,l,m)\n\nRecursion factors ϵ as a function of degree l and order m (0-based) of the spherical harmonics. ϵ(l,m) = sqrt((l^2-m^2)/(4*l^2-1)) and then converted to number format NF.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.∇²!-Union{Tuple{NF}, Tuple{LowerTriangularMatrix{Complex{NF}}, LowerTriangularMatrix{Complex{NF}}, SpectralTransform{NF}}} where NF<:AbstractFloat","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.∇²!","text":"∇²!( ∇²alms::LowerTriangularMatrix,\n alms::LowerTriangularMatrix,\n S::SpectralTransform;\n add::Bool=false,\n flipsign::Bool=false,\n inverse::Bool=false)\n\nLaplace operator ∇² applied to the spectral coefficients alms in spherical coordinates. The radius R is omitted in the eigenvalues which are precomputed in S. ∇²! is the in-place version which directly stores the output in the first argument ∇²alms.\n\nKeyword arguments\n\nadd=true adds the ∇²(alms) to the output\nflipsign=true computes -∇²(alms) instead\ninverse=true computes ∇⁻²(alms) instead\n\nDefault is add=false, flipsign=false, inverse=false. These options can be combined.\n\n\n\n\n\n","category":"method"},{"location":"speedytransforms/#SpeedyWeather.SpeedyTransforms.∇⁻²!-Union{Tuple{NF}, Tuple{LowerTriangularMatrix{Complex{NF}}, LowerTriangularMatrix{Complex{NF}}, SpectralTransform{NF}}} where NF<:AbstractFloat","page":"Submodule: SpeedyTransforms","title":"SpeedyWeather.SpeedyTransforms.∇⁻²!","text":"∇⁻²!( ∇⁻²alms::LowerTriangularMatrix,\n alms::LowerTriangularMatrix,\n S::SpectralTransform;\n add::Bool=false,\n flipsign::Bool=false)\n\nCalls ∇²!(∇⁻²alms, alms, S; add, flipsign, inverse=true).\n\n\n\n\n\n","category":"method"},{"location":"grids/#Grids","page":"Grids","title":"Grids","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"The spectral transform (the Spherical Harmonic Transform) in SpeedyWeather.jl supports any ring-based equi-longitude grid. Several grids are already implemented but other can be added. The following pages will describe an overview of these grids and but let's start but how they can be used","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"julia> spectral_grid = SpectralGrid(Grid = FullGaussianGrid)\nSpectralGrid:\n Spectral: T31 LowerTriangularMatrix{Complex{Float32}}, radius = 6.371e6 m\n Grid: 4608-element, 48-ring FullGaussianGrid{Float32} (quadratic)\n Resolution: 333km (average)\n Vertical: 8-level SigmaCoordinates","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"The life of every SpeedyWeather.jl simulation starts with a SpectralGrid object which defines the resolution in spectral and in grid-point space. The generator SpectralGrid() can take as a keyword argument Grid which can be any of the grids described below. The resolution of the grid, however, is not directly chosen, but determined from the spectral resolution trunc and the dealiasing factor. More in Matching spectral and grid resolution.","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"info: RingGrids is a module too!\nWhile RingGrids is the underlying module that SpeedyWeather.jl uses for data structs on the sphere, the module can also be used independently of SpeedyWeather, for example to interpolate between data on different grids. See RingGrids","category":"page"},{"location":"grids/#Ring-based-equi-longitude-grids","page":"Grids","title":"Ring-based equi-longitude grids","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"SpeedyWeather.jl's spectral transform supports all ring-based equi-longitude grids. These grids have their grid points located on rings with constant latitude and on these rings the points are equi-spaced in longitude. There is technically no constrain on the spacing of the latitude rings, but the Legendre transform requires a quadrature to map those to spectral space and back. Common choices for latitudes are the Gaussian latitudes which use the Gaussian quadrature, or equi-angle latitudes (i.e. just regular latitudes but excluding the poles) that use the Clenshaw-Curtis quadrature. The longitudes have to be equi-spaced on every ring, which is necessary for the fast Fourier transform, as one would otherwise need to use a non-uniform Fourier transform. In SpeedyWeather.jl the first grid point on any ring can have a longitudinal offset though, for example by spacing 4 points around the globe at 45˚E, 135˚E, 225˚E, and 315˚E. In this case the offset is 45˚E as the first point is not at 0˚E.","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"info: Is the FullClenshawGrid a longitude-latitude grid?\nShort answer: Yes. The FullClenshawGrid is a specific longitude-latitude grid with equi-angle spacing. The most common grids for geoscientific data use regular spacings for 0-360˚E in longitude and 90˚N-90˚S. The FullClenshawGrid does that too, but it does not have a point on the North or South pole, and the central latitude ring sits exactly on the Equator. We name it Clenshaw following the Clenshaw-Curtis quadrature that is used in the Legendre transfrom in the same way as Gaussian refers to the Gaussian quadrature.","category":"page"},{"location":"grids/#Implemented-grids","page":"Grids","title":"Implemented grids","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"All grids in SpeedyWeather.jl are a subtype of AbstractGrid, i.e. <: AbstractGrid. We further distinguish between full, and reduced grids. Full grids have the same number of longitude points on every latitude ring (i.e. points converge towards the poles) and reduced grids reduce the number of points towards the poles to have them more evenly spread out across the globe. More evenly does not necessarily mean that a grid is equal-area, meaning that every grid cell covers exactly the same area (although the shape changes).","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"Currently the following full grids <: AbstractFullGrid are implemented","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"FullGaussianGrid, a full grid with Gaussian latitudes\nFullClenshawGrid, a full grid with equi-angle latitudes","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"and additionally we have FullHEALPixGrid and FullOctaHEALPixGrid which are the full grid equivalents to the HEALPix grid and the OctaHEALPix grid discussed below. Full grid equivalent means that they have the same latitude rings, but no reduction in the number of points per ring towards the poles and no longitude offset. Other implemented reduced grids are","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"OctahedralGaussianGrid, a reduced grid with Gaussian latitudes based on an octahedron\nOctahedralClenshawGrid, similar but based on equi-angle latitudes\nHEALPixGrid, an equal-area grid based on a dodecahedron with 12 faces\nOctaHEALPixGrid, an equal-area grid from the class of HEALPix grids but based on an octahedron.","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"An overview of these grids is visualised here","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"(Image: Overview of implemented grids in SpeedyWeather.jl)","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"Visualised are each grid's grid points (white dots) and grid faces (white lines). All grids shown have 16 latitude rings on one hemisphere, Equator included. The total number of grid points is denoted in the top left of every subplot. The sphere is shaded with grey, orange and turquoise regions to denote the hemispheres in a and b, the 8 octahedral faces c, d,f and the 12 dodecahedral faces (or base pixels) in e. Coastlines are added for orientation.","category":"page"},{"location":"grids/#Grid-resolution","page":"Grids","title":"Grid resolution","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"All grids use the same resolution parameter nlat_half, i.e. the number of rings on one hemisphere, Equator included. The Gaussian grids (full and reduced) do not have a ring on the equator, so their total number of rings nlat is always even and twice nlat_half. Clenshaw-Curtis grids and the HEALPix grids have a ring on the equator such their total number of rings is always odd and one less than the Gaussian grids at the same nlat_half. ","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"info: HEALPix grids do not use Nside as resolution parameter\nThe original formulation for HEALPix grids use N_side, the number of grid points along the edges of each basepixel (8 in the figure above), SpeedyWeather.jl uses nlat_half, the number of rings on one hemisphere, Equator included, for all grids. This is done for consistency across grids. We may use N_side for the documentation or within functions though.","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"Related: Effective grid resolution and Available horizontal resolutions.","category":"page"},{"location":"grids/#Matching-spectral-and-grid-resolution","page":"Grids","title":"Matching spectral and grid resolution","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"A given spectral resolution can be matched to a variety of grid resolutions. A cubic grid, for example, combines a spectral truncation T with a grid resolution N (=nlat_half) such that T + 1 = N. Using T31 and an O32 is therefore often abbreviated as Tco31 meaning that the spherical harmonics are truncated at l_max=31 in combination with N=32, i.e. 64 latitude rings in total on an octahedral Gaussian grid. In SpeedyWeather.jl the choice of the order of truncation is controlled with the dealiasing parameter in the SpectralGrid construction.","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"Let J be the total number of rings. Then we have","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"T approx J for linear truncation, i.e. dealiasing = 1\nfrac32T approx J for quadratic truncation, i.e. dealiasing = 2\n2T approx J for cubic truncation, , i.e. dealiasing = 3","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"and in general fracm+12T approx J for m-th order truncation. So the higher the truncation order the more grid points are used in combination with the same spectral resolution. A higher truncation order therefore makes all grid-point calculations more expensive, but can represent products of terms on the grid (which will have higher wavenumber components) to a higher accuracy as more grid points are available within a given wavelength. Using a sufficiently high truncation is therefore one way to avoid aliasing. A quick overview of how the grid resolution changes when dealiasing is passed onto SpectralGrid on the FullGaussianGrid","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"trunc dealiasing FullGaussianGrid size\n31 1 64x32\n31 2 96x48\n31 3 128x64\n42 1 96x48\n42 2 128x64\n42 3 192x96\n... ... ...","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"You will obtain this information every time you create a SpectralGrid(;Grid,trunc,dealiasing).","category":"page"},{"location":"grids/#FullGaussianGrid","page":"Grids","title":"Full Gaussian grid","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"...","category":"page"},{"location":"grids/#FullClenshawGrid","page":"Grids","title":"Full Clenshaw-Curtis grid","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"...","category":"page"},{"location":"grids/#Octahedral-Gaussian-grid","page":"Grids","title":"Octahedral Gaussian grid","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"...","category":"page"},{"location":"grids/#HEALPix-grid","page":"Grids","title":"HEALPix grid","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"Technically, HEALPix grids are a class of grids that tessalate the sphere into faces that are often called basepixels. For each member of this class there are N_varphi basepixels in zonal direction and N_theta basepixels in meridional direction. For N_varphi = 4 and N_theta = 3 we obtain the classical HEALPix grid with N_varphi N_theta = 12 basepixels shown above in Implemented grids. Each basepixel has a quadratic number of grid points in them. There's an equatorial zone where the number of zonal grid points is constant (always 2N, so 32 at N=16) and there are polar caps above and below the equatorial zone with the border at cos(theta) = 23 (theta in colatitudes).","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"Following Górski, 2004[1], the z=cos(theta) colatitude of the j-th ring in the north polar cap, j=1N_side with 2N_side = N is ","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"z = 1 - fracj^23N_side^2","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"and on that ring, the longitude phi of the i-th point (i is the in-ring-index) is at","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"phi = fracpi2j(i-tfrac12)","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"The in-ring index i goes from i=14 for the first (i.e. northern-most) ring, i=18 for the second ring and i = 14j for the j-th ring in the northern polar cap.","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"In the north equatorial belt j=N_side2N_side this changes to","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"z = frac43 - frac2j3N_side","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"and the longitudes change to (i is always i = 14N_side in the equatorial belt meaning the number of longitude points is constant here)","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"phi = fracpi2N_side(i - fracs2) quad s = (j - N_side + 1) mod 2","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"The modulo function comes in as there is an alternating longitudinal offset from the prime meridian (see Implemented grids). For the southern hemisphere the grid point locations can be obtained by mirror symmetry.","category":"page"},{"location":"grids/#Grid-cell-boundaries","page":"Grids","title":"Grid cell boundaries","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"The cell boundaries are obtained by setting i = k + 12 or i = k + 12 + j (half indices) into the equations above, such that z(phik), a function for the cosine of colatitude z of index k and the longitude phi is obtained. These are then (northern polar cap)","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"z = 1 - frack^23N_side^2left(fracpi2phi_tright)^2 quad z = 1 - frack^23N_side^2left(fracpi2phi_t - piright)^2","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"with phi_t = phi mod tfracpi2 and in the equatorial belt","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"z = frac23-frac4k3N_side pm frac8phi3pi","category":"page"},{"location":"grids/#OctaHEALPix-grid","page":"Grids","title":"OctaHEALPix grid","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"While the classic HEALPix grid is based on a dodecahedron, other choices for N_varphi and N_theta in the class of HEALPix grids will change the number of faces there are in zonal/meridional direction. With N_varphi = 4 and N_theta = 1 we obtain a HEALPix grid that is based on an octahedron, which has the convenient property that there are twice as many longitude points around the equator than there are latitude rings between the poles. This is a desirable for truncation as this matches the distances too, 2pi around the Equator versus pi between the poles. N_varphi = 6 N_theta = 2 or N_varphi = 8 N_theta = 3 are other possible choices for this, but also more complicated. See Górski, 2004[1] for further examples and visualizations of these grids.","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"We call the N_varphi = 4 N_theta = 1 HEALPix grid the OctaHEALPix grid, which combines the equal-area property of the HEALPix grids with the octahedron that's also used in the OctahedralGaussianGrid or the OctahedralClenshawGrid. As N_theta = 1 there is no equatorial belt which simplifies the grid. The latitude of the j-th isolatitude ring on the OctaHEALPixGrid is defined by","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"z = 1 - fracj^2N^2","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"with j=1N, and similarly for the southern hemisphere by symmetry. On this grid N_side = N where N= nlat_half, the number of latitude rings on one hemisphere, Equator included, because each of the 4 basepixels spans from pole to pole and covers a quarter of the sphere. The longitudes with in-ring- index i = 14j are","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"phi = fracpi2j(i - tfrac12)","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"and again, the southern hemisphere grid points are obtained by symmetry.","category":"page"},{"location":"grids/#Grid-cell-boundaries-2","page":"Grids","title":"Grid cell boundaries","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"Similar to the grid cell boundaries for the HEALPix grid, the OctaHEALPix grid's boundaries are","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"z = 1 - frack^2N^2left(fracpi2phi_tright)^2 quad z = 1 - frack^2N^2left(fracpi2phi_t - piright)^2","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"The 3N_side^2 in the denominator of the HEALPix grid came simply N^2 for the OctaHEALPix grid and there's no separate equation for the equatorial belt (which doesn't exist in the OctaHEALPix grid).","category":"page"},{"location":"grids/#References","page":"Grids","title":"References","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"[1]: Górski, Hivon, Banday, Wandelt, Hansen, Reinecke, Bartelmann, 2004. HEALPix: A FRAMEWORK FOR HIGH-RESOLUTION DISCRETIZATION AND FAST ANALYSIS OF DATA DISTRIBUTED ON THE SPHERE, The Astrophysical Journal. doi:10.1086/427976","category":"page"},{"location":"primitiveequation/#Primitive-equation-model","page":"Primitive equation model","title":"Primitive equation model","text":"","category":"section"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"The primitive equations are a hydrostatic approximation of the compressible Navier-Stokes equations for an ideal gas on a rotating sphere. We largely follow the idealised spectral dynamical core developed by GFDL[1] and documented therein[2].","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"The primitive equations solved by SpeedyWeather.jl for relative vorticity zeta, divergence mathcalD, logarithm of surface pressure ln p_s, temperature T and specific humidity q are","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"beginaligned\nfracpartial zetapartial t = nabla times (mathbfmathcalP_mathbfu\n+ (f+zeta)mathbfu_perp - W(mathbfu) - R_dT_vnabla ln p_s) \nfracpartial mathcalDpartial t = nabla cdot (mathcalP_mathbfu\n+ (f+zeta)mathbfu_perp - W(mathbfu) - R_dT_vnabla ln p_s) - nabla^2(frac12(u^2 + v^2) + Phi) \nfracpartial ln p_spartial t = -frac1p_s nabla cdot int_0^p_s mathbfudp \nfracpartial Tpartial t = mathcalP_T -nablacdot(mathbfuT) + TmathcalD - W(T) + kappa T_v fracD ln pDt \nfracpartial qpartial t = mathcalP_q -nablacdot(mathbfuq) + qmathcalD - W(q)\nendaligned","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"with velocity mathbfu = (uv), rotated velocity mathbfu_perp = (v-u), Coriolis parameter f, W the vertical advection operator, dry air gas constant R_d, virtual temperature T_v, geopotential Phi, pressure p, thermodynamic kappa = R_dc_p with c_p the heat capacity at constant pressure. Horizontal hyper diffusion of the form (-1)^n+1nunabla^2n with coefficient nu and power n is added for every variable that is advected, meaning zeta mathcalD T q, but left out here for clarity, see Horizontal diffusion.","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"The parameterizations for the tendencies of uvTq from physical processes are denoted as mathcalP_mathbfu = (mathcalP_u mathcalP_v) mathcalP_T mathcalP_q and are further described in the corresponding sections, see Parameterizations.","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"SpeedyWeather.jl implements a PrimitiveWet and a PrimitiveDry dynamical core. For a dry atmosphere, we have q = 0 and the virtual temperature T_v = T equals the temperature (often called absolute to distinguish from the virtual temperature). The terms in the primitive equations and their discretizations are discussed in the following sections. ","category":"page"},{"location":"primitiveequation/#Virtual-temperature","page":"Primitive equation model","title":"Virtual temperature","text":"","category":"section"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"info: In short: Virtual temperature\nVirtual temperature is the temperature dry air would need to have to be as light as moist air. It is used in the dynamical core to include the effect of humidity on the density while replacing density through the ideal gas law with temperature.","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"We assume the atmosphere to be composed of two ideal gases: Dry air and water vapour. Given a specific humidity q both gases mix, their pressures p_d, p_w (d for dry, w for water vapour), and densities rho_d rho_w add in a given air parcel that has temperature T. The ideal gas law then holds for both gases","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"beginaligned\np_d = rho_d R_d T \np_w = rho_w R_w T \nendaligned","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"with the respective specific gas constants R_d = Rm_d and R_w = Rm_w obtained from the univeral gas constant R divided by the molecular masses of the gas. The total pressure p in the air parcel is","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"p = p_d + p_w = (rho_d R_d + rho_w R_w)T","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"We ultimately want to replace the density rho = rho_w + rho_d in the dynamical core, using the ideal gas law, with the temperature T, so that we never have to calculate the density explicitly. However, in order to not deal with two densities (dry air and water vapour) we would like to replace temperature with a virtual temperature that includes the effect of humidity on the density. So, whereever we use the ideal gas law to replace density with temperature, we would use the virtual temperature, which is a function of the absolute temperature and specific humidity, instead. A higher specific humidity in an air parcel lowers the density as water vapour is lighter than dry air. Consequently, the virtual temperature of moist air is higher than its absolute temperature because warmer air is lighter too at constant pressure. We therefore think of the virtual temperature as the temperature dry air would need to have to be as light as moist air.","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"Starting with the last equation, with some manipulation we can write the ideal gas law as total density rho times a gas constant times the virtual temperature that is supposed to be a function of absolute temperature, humidity and some constants","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"p = (rho R_d + rho_w (R_w - R_d)) T = rho R_d (1 +\nfrac1 - tfracR_dR_wtfracR_dR_w fracrho_wrho_w + rho_d)T","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"Now we identify","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"mu = frac1 - tfracR_dR_wtfracR_dR_w","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"as some constant that is positive for water vapour being lighter than dry air (tfracR_dR_w = tfracm_wm_d 1) and","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"q = fracrho_wrho_w + rho_d","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"as the specific humidity. Given temperature T and specific humidity q, we can therefore calculate the virtual temperature T_v as","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"T_v = (1 + mu q)T","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"For completeness we want to mention here that the above product, because it is a product of two variables qT has to be computed in grid-point space, see [Spectral Transform]. To obtain an approximation to the virtual temperature in spectral space without expensive transforms one can linearize","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"T_v = T + mu qbarT","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"With a global constant temperature barT, for example obtained from the l=m=0 mode, barT = T_00frac1sqrt4pi but depending on the normalization of the spherical harmonics that factor needs adjustment.","category":"page"},{"location":"primitiveequation/#Vertical-coordinates","page":"Primitive equation model","title":"Vertical coordinates","text":"","category":"section"},{"location":"primitiveequation/#General","page":"Primitive equation model","title":"General","text":"","category":"section"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"Let Psi(xyzt) ","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"SpeedyWeather.jl currently uses sigma coordinates for the vertical. ","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"sigma = fracpp_s","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"p_k = sigma_kp_s","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"Delta p_k = p_k+1 - p_k = Delta sigma_k p_s","category":"page"},{"location":"primitiveequation/#Geopotential","page":"Primitive equation model","title":"Geopotential","text":"","category":"section"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"In the hydrostatic approximation the vertical momentum equation becomes","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"fracpartial ppartial z = -rho g","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"meaning that the (negative) vertical pressure gradient is given by the density in that layer times the gravitational acceleration. The heavier the fluid the more the pressure will increase below. Inserting the ideal gas law","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"fracpartial gzpartial p = -fracR_dT_vp","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"with the geopotential Phi = gz we can write this in terms of the logarithm of pressure","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"fracpartial Phipartial ln p = -R_dT_v","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"Note that we use the Virtual temperature here as we replaced the density through the ideal gas law with temperature. Given a vertical temperature profile T_v and the (constant) surface geopotential Phi_s = gz_s where z_s is the orography, we can integrate this equation from the surface to the top to obtain Phi_k on every layer k. The surface is at k = N+tfrac12 (see Vertical coordinates) with N vertical levels. We can integrate the geopotential onto half levels as","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"Phi_k-tfrac12 = Phi_k+tfrac12 + R_dT^v_k(ln p_k+12 - ln p_k-12)","category":"page"},{"location":"primitiveequation/#Surface-pressure-tendency","page":"Primitive equation model","title":"Surface pressure tendency","text":"","category":"section"},{"location":"primitiveequation/#Vertical-advection","page":"Primitive equation model","title":"Vertical advection","text":"","category":"section"},{"location":"primitiveequation/#Pressure-gradient-force","page":"Primitive equation model","title":"Pressure gradient force","text":"","category":"section"},{"location":"primitiveequation/#Temperature-equation","page":"Primitive equation model","title":"Temperature equation","text":"","category":"section"},{"location":"primitiveequation/#implicit_primitive","page":"Primitive equation model","title":"Semi-implicit time stepping","text":"","category":"section"},{"location":"primitiveequation/#Horizontal-diffusion","page":"Primitive equation model","title":"Horizontal diffusion","text":"","category":"section"},{"location":"primitiveequation/#Algorithm","page":"Primitive equation model","title":"Algorithm","text":"","category":"section"},{"location":"primitiveequation/#Scaled-primitive-equations","page":"Primitive equation model","title":"Scaled primitive equations","text":"","category":"section"},{"location":"primitiveequation/#References","page":"Primitive equation model","title":"References","text":"","category":"section"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"[1]: Geophysical Fluid Dynamics Laboratory, Idealized models with spectral dynamics","category":"page"},{"location":"primitiveequation/","page":"Primitive equation model","title":"Primitive equation model","text":"[2]: Geophysical Fluid Dynamics Laboratory, The Spectral Dynamical Core","category":"page"},{"location":"lowertriangularmatrices/#lowertriangularmatrices","page":"Submodule: LowerTriangularMatrices","title":"LowerTriangularMatrices","text":"","category":"section"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"LowerTriangularMatrices is a submodule that has been developed for SpeedyWeather.jl which is technically independent (SpeedyWeather.jl however imports it and so does SpeedyTransforms) and can also be used without running simulations. It is just not put into its own respective repository.","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"This module defines LowerTriangularMatrix, a lower triangular matrix, which in contrast to LinearAlgebra.LowerTriangular does not store the entries above the diagonal. SpeedyWeather.jl uses LowerTriangularMatrix which is defined as a subtype of AbstractMatrix to store the spherical harmonic coefficients (see Spectral packing). ","category":"page"},{"location":"lowertriangularmatrices/#Creation-of-LowerTriangularMatrix","page":"Submodule: LowerTriangularMatrices","title":"Creation of LowerTriangularMatrix","text":"","category":"section"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"A LowerTriangularMatrix can be created using zeros,ones,rand, or randn","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"julia> using SpeedyWeather.LowerTriangularMatrices\n\njulia> L = rand(LowerTriangularMatrix{Float32},5,5)\n5×5 LowerTriangularMatrix{Float32}:\n 0.912744 0.0 0.0 0.0 0.0\n 0.0737592 0.230592 0.0 0.0 0.0\n 0.799679 0.0765255 0.888098 0.0 0.0\n 0.670835 0.997938 0.505276 0.492966 0.0\n 0.949321 0.193692 0.793623 0.152817 0.357968","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"or the undef initializor LowerTriangularMatrix{Float32}(undef,3,3). The element type is arbitrary though, you can use any type T too.","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"Alternatively, it can be created through conversion from Matrix, which drops the upper triangle entries and sets them to zero","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"julia> M = rand(Float16,3,3)\n3×3 Matrix{Float16}:\n 0.2222 0.694 0.3452\n 0.2158 0.04443 0.274\n 0.9746 0.793 0.6294\n\njulia> LowerTriangularMatrix(M)\n3×3 LowerTriangularMatrix{Float16}:\n 0.2222 0.0 0.0\n 0.2158 0.04443 0.0\n 0.9746 0.793 0.6294","category":"page"},{"location":"lowertriangularmatrices/#Indexing-LowerTriangularMatrix","page":"Submodule: LowerTriangularMatrices","title":"Indexing LowerTriangularMatrix","text":"","category":"section"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"LowerTriangularMatrix supports two types of indexing: 1) by denoting two indices, column and row [l,m] or 2) by denoting a single index [lm]. The double index works as expected","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"julia> L\n3×3 LowerTriangularMatrix{Float16}:\n 0.1499 0.0 0.0\n 0.1177 0.478 0.0\n 0.1709 0.756 0.3223\n\njulia> L[2,2]\nFloat16(0.478)","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"But the single index skips the zero entries in the upper triangle, i.e.","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"julia> L[4]\nFloat16(0.478)","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"which, important, is different from single indices of an AbstractMatrix","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"julia> Matrix(L)[4]\nFloat16(0.0)","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"In performance-critical code a single index should be used, as this directly maps to the index of the underlying data vector. The double index is somewhat slower as it first has to be converted to the corresponding single index.","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"Consequently, many loops in SpeedyWeather.jl are build with the following structure","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"n,m = size(L)\nij = 0\nfor j in 1:m\n for i in j:n\n ij += 1\n L[ij] = i+j\n end\nend","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"which loops over all lower triangle entries of L::LowerTriangularMatrix and the single index ij is simply counted up. However, one could also use [i,j] as indices in the loop body or to perform any calculation (i+j here). An iterator over all entries in the lower triangle can be created by","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"for ij in eachindex(L)\n # do something\nend","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"The setindex! functionality of matrixes will throw a BoundsError when trying to write into the upper triangle of a LowerTriangularMatrix, for example","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"julia> L[2,1] = 0 # valid index\n0\n\njulia> L[1,2] = 0 # invalid index in the upper triangle\nERROR: BoundsError: attempt to access 3×3 LowerTriangularMatrix{Float32} at index [1, 2]","category":"page"},{"location":"lowertriangularmatrices/#Linear-algebra-with-LowerTriangularMatrix","page":"Submodule: LowerTriangularMatrices","title":"Linear algebra with LowerTriangularMatrix","text":"","category":"section"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"The LowerTriangularMatrices module's main purpose is not linear algebra, and it's implementation may not be efficient, however, many operations work as expected","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"julia> L = rand(LowerTriangularMatrix{Float32},3,3)\n3×3 LowerTriangularMatrix{Float32}:\n 0.57649 0.0 0.0\n 0.348685 0.875371 0.0\n 0.881923 0.850552 0.998306\n\njulia> L + L\n3×3 LowerTriangularMatrix{Float32}:\n 1.15298 0.0 0.0\n 0.697371 1.75074 0.0\n 1.76385 1.7011 1.99661\n\njulia> L * L\n3×3 Matrix{Float32}:\n 0.332341 0.0 0.0\n 0.506243 0.766275 0.0\n 1.68542 1.59366 0.996616","category":"page"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"Note, however, that the latter includes a conversion to Matrix, which is true for many operations, including inv or \\. Hence when trying to do more sophisticated linear algebra with LowerTriangularMatrix we quickly leave lower triangular-land and go back to normal matrix-land.","category":"page"},{"location":"lowertriangularmatrices/#Function-and-type-index","page":"Submodule: LowerTriangularMatrices","title":"Function and type index","text":"","category":"section"},{"location":"lowertriangularmatrices/","page":"Submodule: LowerTriangularMatrices","title":"Submodule: LowerTriangularMatrices","text":"Modules = [SpeedyWeather.LowerTriangularMatrices]","category":"page"},{"location":"lowertriangularmatrices/#SpeedyWeather.LowerTriangularMatrices.LowerTriangularMatrix","page":"Submodule: LowerTriangularMatrices","title":"SpeedyWeather.LowerTriangularMatrices.LowerTriangularMatrix","text":"L = LowerTriangularMatrix{T}(v::Vector{T},m::Int,n::Int)\n\nA lower triangular matrix implementation that only stores the non-zero entries explicitly. L<:AbstractMatrix although in general we have L[i] != Matrix(L)[i], the former skips zero entries, tha latter includes them.\n\n\n\n\n\n","category":"type"},{"location":"lowertriangularmatrices/#SpeedyWeather.LowerTriangularMatrices.LowerTriangularMatrix-Union{Tuple{AbstractMatrix{T}}, Tuple{T}} where T","page":"Submodule: LowerTriangularMatrices","title":"SpeedyWeather.LowerTriangularMatrices.LowerTriangularMatrix","text":"L = LowerTriangularMatrix(M)\n\nCreate a LowerTriangularMatrix L from Matrix M by copying over the non-zero elements in M.\n\n\n\n\n\n","category":"method"},{"location":"lowertriangularmatrices/#Base.fill!-Union{Tuple{T}, Tuple{LowerTriangularMatrix{T}, Any}} where T","page":"Submodule: LowerTriangularMatrices","title":"Base.fill!","text":"fill!(L::LowerTriangularMatrix,x)\n\nFills the elements of L with x. Faster than fill!(::AbstractArray,x) as only the non-zero elements in L are assigned with x.\n\n\n\n\n\n","category":"method"},{"location":"lowertriangularmatrices/#SpeedyWeather.LowerTriangularMatrices.eachharmonic-Tuple{LowerTriangularMatrix}","page":"Submodule: LowerTriangularMatrices","title":"SpeedyWeather.LowerTriangularMatrices.eachharmonic","text":"unit_range = eachharmonic(L::LowerTriangular)\n\ncreates unit_range::UnitRange to loop over all non-zeros in a LowerTriangularMatrix L. Like eachindex but skips the upper triangle with zeros in L.\n\n\n\n\n\n","category":"method"},{"location":"lowertriangularmatrices/#SpeedyWeather.LowerTriangularMatrices.eachharmonic-Tuple{Vararg{LowerTriangularMatrix}}","page":"Submodule: LowerTriangularMatrices","title":"SpeedyWeather.LowerTriangularMatrices.eachharmonic","text":"unit_range = eachharmonic(Ls::LowerTriangularMatrix...)\n\ncreates unit_range::UnitRange to loop over all non-zeros in the LowerTriangularMatrices provided as arguments. Checks bounds first. All LowerTriangularMatrix's need to be of the same size. Like eachindex but skips the upper triangle with zeros in L.\n\n\n\n\n\n","category":"method"},{"location":"lowertriangularmatrices/#SpeedyWeather.LowerTriangularMatrices.ij2k-Tuple{Integer, Integer, Integer}","page":"Submodule: LowerTriangularMatrices","title":"SpeedyWeather.LowerTriangularMatrices.ij2k","text":"k = ij2k( i::Integer, # row index of matrix\n j::Integer, # column index of matrix\n m::Integer) # number of rows in matrix\n\nConverts the index pair i,j of an mxn LowerTriangularMatrix L to a single index k that indexes the same element in the corresponding vector that stores only the lower triangle (the non-zero entries) of L.\n\n\n\n\n\n","category":"method"},{"location":"conventions/#Style-and-convention-guide","page":"Style and convention guide","title":"Style and convention guide","text":"","category":"section"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"In SpeedyWeather.jl we've been following the several conventions that are documented here.","category":"page"},{"location":"conventions/#Variable-naming","page":"Style and convention guide","title":"Variable naming","text":"","category":"section"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"The prognostic variables in spectral space are called","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":" vor # Vorticity of horizontal wind field\n div # Divergence of horizontal wind field\n temp # Absolute temperature [K]\n pres_surf # Logarithm of surface pressure [log(Pa)]\n humid # Specific humidity [g/kg]","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"their transforms into grid-point space get a _grid suffix, their tendencies a _tend suffix. Further derived diagnostic dynamic variables are","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":" u\n v\n geopot\n ...","category":"page"},{"location":"conventions/#Preallocation","page":"Style and convention guide","title":"Preallocation","text":"","category":"section"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"All arrays representing variables are preallocated and grouped into two structs","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":" Prog::PrognosticVariables\n Diag::DiagnosticVariables","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"The Diag struct contains further structs which represent the grid-point transformations of the prognostic variables and their tendencies.","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":" gridvars::GridVariables\n tendencies::Tendencies\n ...","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"Constant arrays are grouped into several structs","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"Boundaries","category":"page"},{"location":"conventions/#Julian-conventions","page":"Style and convention guide","title":"Julian conventions","text":"","category":"section"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"We follow Julia's style guide and highlight here some important aspects of it.","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"Bang (!) convention. A function func does not change its input arguments, however, func! does.","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"Hence, func! is often the in-place version of func, avoiding as much memory allocation as possible and often changing its first argument, e.g. func!(out,in) so that argument in is used to calculate out which has been preallocated before function call.","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"Number format flexibility. Numeric literals such as 2.0 or 1/3 are only used in the model setup","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"but avoided throughout the code to obtain a fully number format-flexible package using the number format NF as a compile-time variable throughout the code. This often leads to overly specific code whereas a Real would generally suffice. However, this is done to avoid any implicit type conversions.","category":"page"},{"location":"shallowwater/#Shallow-water-model","page":"Shallow water model","title":"Shallow water model","text":"","category":"section"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"The shallow water model describes the evolution of a 2D flow described by its velocity and an interface height that conceptually represents pressure. A divergent flow affects the interface height which in turn can impose a pressure gradient force onto the flow. The dynamics include advection, forces, dissipation, and continuity.","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"The following description of the shallow water model largely follows the idealized models with spectral dynamics developed at the Geophysical Fluid Dynamics Laboratory[1]: The Shallow Water Equations[2].","category":"page"},{"location":"shallowwater/#Shallow-water-equations","page":"Shallow water model","title":"Shallow water equations","text":"","category":"section"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"The shallow water equations of velocity mathbfu = (uv) and interface height eta (i.e. the deviation from the fluid's rest height H) are, formulated in terms of relative vorticity zeta = nabla times mathbfu, divergence mathcalD = nabla cdot mathbfu","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"beginaligned\nfracpartial zetapartial t + nabla cdot (mathbfu(zeta + f)) =\nnabla times mathbfF + (-1)^n+1nunabla^2nzeta \nfracpartial mathcalDpartial t - nabla times (mathbfu(zeta + f)) =\nnabla cdot mathbfF -nabla^2(tfrac12(u^2 + v^2) + geta) + (-1)^n+1nunabla^2nmathcalD \nfracpartial etapartial t + nabla cdot (mathbfuh) = F_eta\nendaligned","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"We denote timet, Coriolis parameter f, a forcing vector mathbfF = (F_uF_v), hyperdiffusion (-1)^n+1 nu nabla^2n (n is the hyperdiffusion order, see Horizontal diffusion), gravitational acceleration g, dynamic layer thickness h, and a forcing for the interface height F_eta. In the shallow water model the dynamics layer thickness h is","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"h = eta + H - H_b","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"that is, the layer thickness at rest H plus the interface height eta minus orography H_b.","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"In the shallow water system the flow can be described through uv or zetamathcalD which are related through the stream function Psi and the velocity potential Phi (which is zero in the Barotropic vorticity equation).","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"beginaligned\nzeta = nabla^2 Psi \nmathcalD = nabla^2 Phi \nmathbfu = nabla^perp Psi + nabla Phi\nendaligned","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"With nabla^perp being the rotated gradient operator, in cartesian coordinates xy: nabla^perp = (-partial_y partial_x). See Derivatives in spherical coordinates for further details. Especially because the inversion of the Laplacian and the gradients of Psi Phi can be computed in a single pass, see U,V from vorticity and divergence.","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"The divergence/curl of the vorticity flux mathbfu(zeta + f) are combined with the divergence/curl of the forcing vector mathbfF, as","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"beginaligned\n- nabla cdot (mathbfu(zeta + f)) + nabla times mathbfF =\nnabla times (mathbfF + mathbfu_perp(zeta + f)) \nnabla times (mathbfu(zeta + f)) + nabla cdot mathbfF =\nnabla cdot (mathbfF + mathbfu_perp(zeta + f))\nendaligned","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"equivalently to how this is done in the Barotropic vorticity equation with mathbfu_perp = (v-u).","category":"page"},{"location":"shallowwater/#Algorithm","page":"Shallow water model","title":"Algorithm","text":"","category":"section"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"0. Start with initial conditions of relative vorticity zeta_lm, divergence D_lm, and interface height eta_lm in spectral space and transform this model state to grid-point space:","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"Invert the Laplacian of zeta_lm to obtain the stream function Psi_lm in spectral space\nInvert the Laplacian of D_lm to obtain the velocity potential Phi_lm in spectral space\nobtain velocities U_lm = (cos(theta)u)_lm V_lm = (cos(theta)v)_lm from nabla^perpPsi_lm + nablaPhi_lm\nTransform velocities U_lm, V_lm to grid-point space UV\nUnscale the cos(theta) factor to obtain uv\nTransform zeta_lm, D_lm, eta_lm to zeta D eta in grid-point space","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"Now loop over","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"Compute the forcing vector mathbfF = (F_uF_v) for u and v\nMultiply uv with zeta+f in grid-point space\nAdd A = F_u + v(zeta + f) and B = F_v - u(zeta + f)\nTransform these vector components to spectral space A_lm, B_lm\nCompute the curl of (AB)_lm in spectral space which is the tendency of zeta_lm\nCompute the divergence of (AB)_lm in spectral space which is the tendency of mathcalD_lm\nCompute the kinetic energy frac12(u^2 + v^2) and transform to spectral space\nAdd to the kinetic energy the \"geopotential\" geta_lm in spectral space to obtain the Bernoulli potential\nTake the Laplacian of the Bernoulli potential and subtract from the divergence tendency\nCompute the volume fluxes uhvh in grid-point space via h = eta + H - H_b\nTransform to spectral space and take the divergence for -nabla cdot (mathbfuh) which is the tendency for eta\nAdd possibly forcing F_eta for eta in spectral space\nCorrect the tendencies following the semi-implicit time integration to prevent fast gravity waves from causing numerical instabilities\nCompute the horizontal diffusion based on the zetamathcalD tendencies\nCompute a leapfrog time step as described in Time integration with a Robert-Asselin and Williams filter\nTransform the new spectral state of zeta_lm, mathcalD_lm, eta_lm to grid-point uvzetamathcalDeta as described in 0.\nPossibly do some output\nRepeat from 1.","category":"page"},{"location":"shallowwater/#implicit_swm","page":"Shallow water model","title":"Semi-implicit time integration","text":"","category":"section"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"Probably the biggest advantage of a spectral model is its ability to solve (parts of) the equations implicitly a low computational cost. The reason is that a linear operator can be easily inverted in spectral space, removing the necessity to solve large equation systems. An operation like Psi = nabla^-2zeta in grid-point space is costly because it requires a global communication, coupling all grid points. In spectral space nabla^2 is a diagonal operator, meaning that there is no communication between harmonics and its inversion is therefore easily done on a mode-by-mode basis of the harmonics.","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"This can be made use of when facing time stepping constraints with explicit schemes, where ridiculuously small time steps to resolve fast waves would otherwise result in a horribly slow simulation. In the shallow water system there are gravity waves that propagate at a wave speed of sqrtgH (typically 300m/s), which, in order to not violate the CFL criterion for explicit time stepping, would need to be resolved. Therefore, treating the terms that are responsible for gravity waves implicitly would remove that time stepping constraint and allows us to run the simulation at the time step needed to resolve the advective motion of the atmosphere, which is usually one or two orders of magnitude longer than gravity waves.","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"In the following we will describe how the semi implicit time integration can be combined with the Leapfrog time stepping and the Robert-Asselin and Williams filter for a large increase in numerical stability with gravity waves. Let V_i be the model state of all prognostic variables at time step i, the leapfrog time stepping is then","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"fracV_i+1 - V_i-12Delta t = N(V_i)","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"with the right-hand side operator N evaluated at the current time step i. Now the idea is to split the terms in N into non-linear terms that are evaluated explicitly in N_E and into the linear terms N_I, solved implicitly, that are responsible for the gravity waves. We could already assume to evaluate N_I at i+1, but in fact, we can introduce alpha in 01 so that for alpha=0 we use i-1 (i.e. explicit), for alpha=12 it is centred implicit tfrac12N_I(V_i-1) + tfrac12N_I(V_i+1), and for alpha=1 a fully backwards scheme N_I(V_i+1) evaluated at i+1.","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"fracV_i+1 - V_i-12Delta t = N_E(V_i) + alpha N_I(V_i+1) + (1-alpha)N_I(V_i-1)","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"Let delta V = tfracV_i+1 - V_i-12Delta t be the tendency we need for the Leapfrog time stepping. Introducing xi = 2alphaDelta t we have","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"delta V = N_E(V_i) + N_I(V_i-1) + xi N_I(delta V)","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"because N_I is a linear operator. This is done so that we can solve for delta V by inverting N_I, but let us gather the other terms as G first.","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"G = N_E(V_i) + N_I(V_i-1) = N(V_i) + N_I(V_i-1 - V_i)","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"For the shallow water equations we will only make use of the last formulation, meaning we first evaluate the whole right-hand side N(V_i) at the current time step as we would do with fully explicit time stepping but then add the implicit terms N_I(V_i-1 - V_i) afterwards to move those terms from i to i-1. Note that we could also directly evaluate the implicit terms at i-1 as it is suggested in the previous formulation N_E(V_i) + N_I(V_i-1), the result would be the same. But in general it can be more efficient to do it one or the other way, and in fact it is also possible to combine both ways. This will be discussed in the semi-implicit time stepping for the primitive equations.","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"We can now implicitly solve for delta V by","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"delta V = (1-xi N_I)^-1G","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"So what is N_I? In the shallow water system the gravity waves are caused by","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"beginaligned\nfracpartial mathcalDpartial t = -gnabla^2eta \nfracpartial etapartial t = -HmathcalD\nendaligned","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"which is a linearization of the equations around a state of rest with uniform constant layer thickness h = H. The continuity equation with the -nabla(mathbfuh) term, for example, is linearized to -nabla(mathbfuH) = -HmathcalD. The divergence and continuity equations can now be written following the delta V = G + xi N_I(delta V) formulation from above as a coupled system (The vorticity equation is zero for the linear gravity wave equation in the shallow water equations, hence no semi-implicit correction has to be made to the vorticity tendency).","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"beginaligned\ndelta mathcalD = G_mathcalD - xi g nabla^2 delta eta \ndelta eta = G_mathcaleta - xi H deltamathcalD\nendaligned","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"with","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"beginaligned\nG_mathcalD = N_mathcalD - xi g nabla^2 (eta_i-1 - eta_i) \nG_mathcaleta = N_eta - xi H (mathcalD_i-1 - mathcalD_i)\nendaligned","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"Inserting the second equation into the first, we can first solve for delta mathcalD, and then for delta eta. Reminder that we do this in spectral space to every harmonic independently, so the Laplace operator nabla^2 = -l(l+1) takes the form of its eigenvalue -l(l+1) (normalized to unit sphere, as are the scaled shallow water equations) and its inversion is therefore just the inversion of this scalar.","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"delta D = fracG_mathcalD - xi gnabla^2 G_eta1 - xi^2 H nabla^2 = S^-1(G_mathcalD - xi gnabla^2 G_eta) ","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"Where the last formulation just makes it clear that S = 1 - xi^2 H nabla^2 is the operator to be inverted. delta eta is then obtained via insertion as written above. Equivalently, by adding a superscript l for every degree of the spherical harmonics, we have","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"delta mathcalD^l = fracG_mathcalD^l + xi g l(l+1) G_eta^l1 + xi^2 H l(l+1)","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"The idea of the semi-implicit time stepping is now as follows:","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"Evaluate the right-hand side explicitly at time step i to obtain the explicit, preliminary tendencies N_mathcalDN_eta (and N_zeta without a need for semi-implicit correction)\nMove the implicit terms from i to i-1 when calculating G_mathcalD G_eta\nSolve for delta mathcalD, the new, corrected tendency for divergence.\nWith delta mathcalD obtain delta eta, the new, corrected tendency for eta.\nApply horizontal diffusion as a correction to N_zeta delta mathcalD as outlined in Horizontal diffusion.\nLeapfrog with tendencies that have been corrected for both semi-implicit and diffusion.","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"Some notes on the semi-implicit time stepping","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"The inversion of the semi-implicit time stepping depends on delta t, that means every time the time step changes, the inversion has to be recalculated.\nYou may choose alpha = 12 to dampen gravity waves but initialisation shocks still usually kick off many gravity waves that propagate around the sphere for many days.\nWith increasing alpha 12 these waves are also slowed down, such that for alpha = 1 they quickly disappear in several hours.\nUsing the scaled shallow water equations the time step delta t has to be the scaled time step tildeDelta t = delta tR which is divided by the radius R. Then we use the normalized eigenvalues -l(l+1) which also omit the 1R^2 scaling, see scaled shallow water equations for more details.","category":"page"},{"location":"shallowwater/#scaled_swm","page":"Shallow water model","title":"Scaled shallow water equations","text":"","category":"section"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"Similar to the scaled barotropic vorticity equations, SpeedyWeather.jl scales in the shallow water equations. The vorticity and the divergence equation are scaled with R^2, the radius of the sphere squared, but the continuity equation is scaled with R. We also combine the vorticity flux and forcing into a single divergence/curl operation as mentioned in Shallow water equations above","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"beginaligned\nfracpartial tildezetapartial tildet =\ntildenabla times (tildemathbfF + mathbfu_perp(tildezeta + tildef)) +\n(-1)^n+1tildenutildenabla^2ntildezeta \nfracpartial tildemathcalDpartial tildet =\ntildenabla cdot (tildemathbfF + mathbfu_perp(tildezeta + tildef)) -\ntildenabla^2left(tfrac12(u^2 + v^2) + geta right) +\n(-1)^n+1tildenutildenabla^2ntildemathcalD \nfracpartial etapartial tildet =\n- tildenabla cdot (mathbfuh) + tildeF_eta\nendaligned","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"As in the scaled barotropic vorticity equations, one needs to scale the time step, the Coriolis force, the forcing and the diffusion coefficient, but then enjoys the luxury of working with dimensionless gradient operators. As before, SpeedyWeather.jl will scale vorticity and divergence just before the model integration starts and unscale them upon completion and for output. In the semi-implicit time integration we solve an equation that also has to be scaled. It is with radius squared scaling (because it is the tendency for the divergence equation which is also scaled with R^2)","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"R^2 delta D = R^2fracG_mathcalD - xi gnabla^2 G_eta1 - xi^2 H nabla^2","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"As G_eta is only scaled with R we have","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"tildedelta D = fractildeG_mathcalD - tildexi gtildenabla^2 tildeG_eta1 - tildexi^2 H tildenabla^2","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"The R^2 normalizes the Laplace operator in the numerator, but using the scaled G_eta we also scale xi (which is convenient, because the time step within is the one we use anyway). The denominator S does not actually change because xi^2nabla^2 = tildexi^2tildenabla^2 as xi^2 is scaled with 1R^2, but the Laplace operator with R^2. So overall we just have to use the scaled time step tildeDelta t and normalized eigenvalues for tildenabla^2.","category":"page"},{"location":"shallowwater/#References","page":"Shallow water model","title":"References","text":"","category":"section"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"[1]: Geophysical Fluid Dynamics Laboratory, Idealized models with spectral dynamics","category":"page"},{"location":"shallowwater/","page":"Shallow water model","title":"Shallow water model","text":"[2]: Geophysical Fluid Dynamics Laboratory, The Shallow Water Equations.","category":"page"},{"location":"extending/#New-model-setups","page":"Extending SpeedyWeather","title":"New model setups","text":"","category":"section"},{"location":"extending/","page":"Extending SpeedyWeather","title":"Extending SpeedyWeather","text":"more to come...","category":"page"},{"location":"spectral_transform/#Spherical-Harmonic-Transform","page":"Spherical harmonic transform","title":"Spherical Harmonic Transform","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The following sections outline the implementation of the spherical harmonic transform (in short spectral transform) between the coefficients of the spherical harmonics (the spectral space) and the grid space which can be any of the Implemented grids as defined by RingGrids. This includes the classical full Gaussian grid, a regular longitude-latitude grid called the full Clenshaw grid (FullClenshawGrid), ECMWF's octahedral Gaussian grid[Malardel2016], and HEALPix grids[Gorski2004]. SpeedyWeather.jl's spectral transform module SpeedyTransforms is grid-flexible and can be used with any of these, see Grids.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"info: SpeedyTransforms is a module too!\nSpeedyTransform is the underlying module that SpeedyWeather imports to transform between spectral and grid-point space, which also implements Derivatives in spherical coordinates. You can use this module independently of SpeedyWeather for spectral transforms, see SpeedyTransforms.","category":"page"},{"location":"spectral_transform/#Inspiration","page":"Spherical harmonic transform","title":"Inspiration","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The spectral transform implemented by SpeedyWeather.jl follows largely Justin Willmert's CMB.jl and SphericalHarmonicTransforms.jl package and makes use of AssociatedLegendrePolynomials.jl and FFTW.jl for the Fourier transform. Justin described his work in a Blog series [Willmert2020].","category":"page"},{"location":"spectral_transform/#Spherical-harmonics","page":"Spherical harmonic transform","title":"Spherical harmonics","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The spherical harmonics Y_lm of degree l and order m over the longitude phi = (02pi) and colatitudes theta = (-pi2pi2), are","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Y_lm(phi theta) = lambda_l^m(sintheta) e^imphi","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"with lambda_l^m being the pre-normalized associated Legendre polynomials, and e^imphi are the complex exponentials (the Fourier modes). Together they form a set of orthogonal basis functions on the sphere. For an interactive visualisation of the spherical harmonics, see here.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"info: Latitudes versus colatitudes\nThe implementation of the spectral transforms in SpeedyWeather.jl uses colatitudes theta = (0pi) (0 at the north pole) but the dynamical core uses latitudes theta = (-pi2pi2) (pi2 at the north pole). Note: We may also use latitudes in the spherical harmonic transform in the future for consistency. ","category":"page"},{"location":"spectral_transform/#synthesis","page":"Spherical harmonic transform","title":"Synthesis (spectral to grid)","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The synthesis (or inverse transform) takes the spectral coefficients a_lm and transforms them to grid-point values f(phitheta) (for the sake of simplicity first regarded as continuous). The synthesis is a linear combination of the spherical harmonics Y_lm with non-zero coefficients.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"f(phitheta) = sum_l=0^infty sum_m=-l^l a_lm Y_lm(phitheta)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"We obtain an approximation with a finite set of a_lm by truncating the series in both degree l and order m somehow. Most commonly, a triangular truncation is applied, such that all degrees after l = l_max are discarded. Triangular because the retained array of the coefficients a_lm looks like a triangle. Other truncations like rhomboidal have been studied[Daley78] but are rarely used since. Choosing l_max also constrains m_max and determines the (horizontal) spectral resolution. In SpeedyWeather.jl this resolution as chosen as trunc when creating the SpectralGrid.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"For f being a real-valued there is a symmetry","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"a_l-m = (-1)^m a^*_l+m","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"meaning that the coefficients at -m and m are the same, but the sign of the real and imaginary component can be flipped, as denoted with the (-1)^m and the complex conjugate a_lm^*. As we are only dealing with real-valued fields anyway, we therefore never have to store the negative orders -m and end up with a lower triangular matrix of size (l_max+1) times (m_max+1) or technically (T+1)^2 where T is the truncation trunc. One is added here because the degree l and order m use 0-based indexing but sizes (and so is Julia's indexing) are 1-based.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"For correctness we want to mention here that vector quantities require one more degree l due to the recurrence relation in the Meridional derivative. Hence for practical reasons all spectral fields are represented as a lower triangular matrix of size (m_max + 2) times (m_max +1). And the scalar quantities would just not make use of that last degree, and its entries would be simply zero. We will, however, for the following sections ignore this and only discuss it again in Meridional derivative.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Another consequence of the symmetry mentioned above is that the zonal harmonics, meaning a_lm=0 have no imaginary component. Because these harmonics are zonally constant, a non-zero imaginary component would rotate them around the Earth's axis, which, well, doesn't actually change a real-valued field. ","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Following the notation of [Willmert2020] we can therefore write the truncated synthesis as","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"f(phitheta) = sum_l=0^l_max sum_m=0^l (2-delta_m0) a_lm Y_lm(phitheta)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The (2-delta_m0) factor using the Kronecker delta is used here because of the symmetry we have to count both the m-m order pairs (hence the 2) except for the zonal harmonics which do not have a pair.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Another symmetry arises from the fact that the spherical harmonics are either symmetric or anti-symmetric around the Equator. There is an even/odd combination of degrees and orders so that the sign flips like a checkerboard","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Y_lm(phipi-theta) = (-1)^l+mY_lm(phiphi)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"This means that one only has to compute the Legendre polynomials for one hemisphere and the other one follows with this equality.","category":"page"},{"location":"spectral_transform/#analysis","page":"Spherical harmonic transform","title":"Analysis (grid to spectral)","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Starting in grid-point space we can transform a field f(lambdatheta) into the spectral space of the spherical harmonics by","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"a_lm = int_0^2pi int_0^pi f(phitheta) Y_lm(phitheta) sin theta dtheta dphi","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Note that this notation again uses colatitudes theta, for latitudes the sintheta becomes a costheta and the bounds have to be changed accordingly to (-fracpi2fracpi2). A discretization with N grid points at location (phi_itheta_i), indexed by i can be written as [Willmert2020]","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"hata_lm = sum_i f(phi_itheta_i) Y_lm(phi_itheta_i) sin theta_i Deltatheta Deltaphi","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The hat on a just means that it is an approximation, or an estimate of the true a_lm approx hata_lm. We can essentially make use of the same symmetries as already discussed in Synthesis. Splitting into the Fourier modes e^imphi and the Legendre polynomials lambda_l^m(costheta) (which are defined over -11 so the costheta argument maps them to colatitudes) we have","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"hata_lm = sum_j left sum_i f(phi_itheta_j) e^-imphi_i right lambda_lm(theta_j) sin theta_j Deltatheta Deltaphi","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"So the term in brackets can be separated out as long as the latitude theta_j is constant, which motivates us to restrict the spectral transform to grids with iso-latitude rings, see Grids. Furthermore, this term can be written as a fast Fourier transform, if the phi_i are equally spaced on the latitude ring j. Note that the in-ring index i can depend on the ring index j, so that one can have reduced grids, which have fewer grid points towards the poles, for example. Also the Legendre polynomials only have to be computed for the colatitudes theta_j (and in fact only one hemisphere, due to the north-south symmetry discussed in the Synthesis). It is therefore practical and efficient to design a spectral transform implementation for ring grids, but there is no need to hardcode a specific grid.","category":"page"},{"location":"spectral_transform/#Spectral-packing","page":"Spherical harmonic transform","title":"Spectral packing","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Spectral packing is the way how the coefficients a_lm of the spherical harmonics of a given spectral field are stored in an array. SpeedyWeather.jl uses the conventional spectral packing of degree l and order m as illustrated in the following image (Cyp, CC BY-SA 3.0, via Wikimedia Commons)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Every row represents an order l geq 0, starting from l=0 at the top. Every column represents an order m geq 0, starting from m=0 on the left. The coefficients of these spherical harmonics are directly mapped into a matrix a_lm as ","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":" m \nl a_00 \n a_10 a_11 \n a_20 a_12 a_22 \n a_30 a_13 a_23 a_33","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"which is consistently extended for higher degrees and orders. Consequently, all spectral fields are lower-triangular matrices with complex entries. The upper triangle excluding the diagonal are zero. Note that internally vector fields include an additional degree, such that l_max = m_max + 1 (see Derivatives in spherical coordinates for more information). The harmonics with a_l0 (the first column) are also called zonal harmonics as they are constant with longitude phi. The harmonics with a_ll (the main diagonal) are also called sectoral harmonics as they essentially split the sphere into 2l sectors in longitude phi without a zero-crossing in latitude.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"For correctness it is mentioned here that SpeedyWeather.jl uses a LowerTriangularMatrix type to store the spherical harmonic coefficients. By doing so, the upper triangle is actually not explicitly stored and the data technically unravelled into a vector, but this is hidden as much as possible from the user. For more details see LowerTriangularMatrices.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"info: Array indices\nFor a spectral field a note that due to Julia's 1-based indexing the coefficient a_lm is obtained via a[l+1,m+1]. Alternatively, we may index over 1-based l,m but a comment is usually added for clarification.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Fortran SPEEDY does not use the same spectral packing as SpeedyWeather.jl. The alternative packing lm therein uses l=m and m=l-m as summarized in the following table.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"degree l order m l=m m=l-m\n0 0 0 0\n1 0 0 1\n1 1 1 0\n2 0 0 2\n2 1 1 1\n2 2 2 0\n3 0 0 3\n... ... ... ...","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"This alternative packing uses the top-left triangle of a coefficient matrix, and the degrees and orders from above are stored at the following indices","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":" m \nl a_00 a_10 a_20 a_30\n a_11 a_21 a_31 \n a_22 a_32 \n a_33 ","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"This spectral packing is not used in SpeedyWeather.jl but illustrated here for completeness and comparison with Fortran SPEEDY.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"SpeedyWeather.jl uses triangular truncation such that only spherical harmonics with l leq l_max and m leq m_max are explicitly represented. This is usually described as Tm_max, with l_max = m_max (although in vector quantities require one more degree l in the recursion relation of meridional gradients). For example, T31 is the spectral resolution with l_max = m_max = 31. Note that the degree l and order m are mathematically 0-based, such that the corresponding coefficient matrix is of size 32x32.","category":"page"},{"location":"spectral_transform/#Available-horizontal-resolutions","page":"Spherical harmonic transform","title":"Available horizontal resolutions","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Technically, SpeedyWeather.jl supports arbitrarily chosen resolution parameter trunc when creating the SpectralGrid that refers to the highest non-zero degree l_max that is resolved in spectral space. SpeedyWeather.jl will always try to choose an easily-Fourier transformable[FFT] size of the grid, but as we use FFTW.jl there is quite some flexibility without performance sacrifice. However, this has traditionally lead to typical resolutions that we also use for testing we therefore recommend to use. They are as follows with more details below","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"trunc nlon nlat Delta x\n31 (default) 96 48 400 km\n42 128 64 312 km\n63 192 96 216 km\n85 256 128 165 km\n127 384 192 112 km\n170 512 256 85 km\n255 768 384 58 km\n341 1024 512 43 km\n511 1536 768 29 km\n682 2048 1024 22 km\n1024 3072 1536 14 km\n1365 4092 2048 11 km","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Some remarks on this table","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"This assumes the default quadratic truncation, you can always adapt the grid resolution via the dealiasing option, see Matching spectral and grid resolution\nnlat refers to the total number of latitude rings, see Grids. With non-Gaussian grids, nlat will be one one less, e.g. 47 instead of 48 rings.\nnlon is the number of longitude points on the Full Gaussian Grid, for other grids there will be at most these number of points around the Equator.\nDelta x is the horizontal resolution. For a spectral model there are many ways of estimating this[9]. We use here the square root of the average area a grid cell covers, see Effective grid resolution","category":"page"},{"location":"spectral_transform/#Effective-grid-resolution","page":"Spherical harmonic transform","title":"Effective grid resolution","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"There are many ways to estimate the effective grid resolution of spectral models[9]. Some of them are based on the wavelength a given spectral resolution allows to represent, others on the total number of real variables per area. However, as many atmospheric models do represent a considerable amount of physics on the grid (see Parameterizations) there is also a good argument to include the actual grid resolution into this estimate and not just the spectral resolution. We therefore use the average grid cell area to estimate the resolution","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Delta x = sqrtfrac4pi R^2N","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"with N number of grid points over a sphere with radius R. However, we have to acknowledge that this usually gives higher resolution compared to other methods of estimating the effective resolution, see [Randall2021] for a discussion. You may therefore need to be careful to make claims that, e.g. trunc=85 can resolve the atmospheric dynamics at a scale of 165km.","category":"page"},{"location":"spectral_transform/#Derivatives-in-spherical-coordinates","page":"Spherical harmonic transform","title":"Derivatives in spherical coordinates","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Horizontal gradients in spherical coordinates are defined for a scalar field A and the latitudes theta and longitudes lambda as","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"nabla A = left(frac1Rcosthetafracpartial Apartial lambda frac1Rfracpartial Apartial theta right)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"However, the divergence of a vector field mathbfu = (uv) includes additional cos(theta) scalings","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"nabla cdot mathbfu = frac1Rcosthetafracpartial upartial lambda +\nfrac1Rcosthetafracpartial (v costheta)partial theta","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"and similar for the curl","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"nabla times mathbfu = frac1Rcosthetafracpartial vpartial lambda -\nfrac1Rcosthetafracpartial (u costheta)partial theta","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The radius of the sphere (i.e. Earth) is R. The zonal gradient scales with 1cos(theta) as the longitudes converge towards the poles (note that theta describes latitudes here, definitions using colatitudes replace the cos with a sin.)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Starting with a spectral field of vorticity zeta and divergence mathcalD one can obtain stream function Psi and velocity potential Phi by inverting the Laplace operator nabla^2:","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Psi = nabla^-2zeta quad Phi = nabla^-2mathcalD","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The velocities uv are then obtained from (uv) = nabla^botPsi + nablaPhi following the definition from above and nabla^bot = (-R^-1partial_theta (Rcostheta)^-1partial_lambda)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"beginaligned\nu = -frac1Rpartial_thetaPsi + frac1Rcosthetapartial_lambdaPhi \nv = +frac1Rpartial_thetaPhi + frac1Rcosthetapartial_lambdaPsi\nendaligned","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Alternatively, we can use the velocities U = ucostheta V = vcostheta, which we do as the meridional gradient for spherical harmonics is easier implemented with a costheta-scaling included, and because the divergence and curl in spherical coordinates evaluates the meridional gradient with UV and not uv. From uv we can return to zeta mathcalD via","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"beginaligned\nzeta = frac1Rcosthetapartial_lambda v - frac1Rcosthetapartial_theta (u costheta) \nmathcalD = frac1Rcosthetapartial_lambda u + frac1Rcosthetapartial_theta (v costheta)\nendaligned","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Equivalently, we have","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"beginaligned\nU = -fraccosthetaRpartial_thetaPsi + frac1Rpartial_lambdaPhi \nV = +fraccosthetaRpartial_thetaPhi + frac1Rpartial_lambdaPsi \nzeta = frac1Rpartial_lambda left( fracVcos^2theta right) -\nfraccosthetaRpartial_theta left( fracUcos^2theta right) \nmathcalD = frac1Rpartial_lambda left( fracUcos^2theta right) +\nfraccosthetaRpartial_theta left( fracVcos^2theta right)\nendaligned","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"which is a more convenient formulation because of the way how the Meridional derivative is implemented with a recursion relation, actually computing costheta partial_theta rather than partial_theta directly. The remaining cosine scalings in (UV)*cos^-2theta are done in grid-point space. If one wanted to get back to zeta mathcalD this is how it would be done, but it is often more convenient to unscale UV on the fly in the spectral transform to obtain uv and then divide again by costheta when any gradient (or divergence or curl) is taken. This is because other terms would need that single costheta unscaling too before a gradient is taken. How the operators nabla nabla times nabla cdot can be implemented with spherical harmonics is presented in the following sections.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Also note that SpeedyWeather.jl scales the equations with the radius R (see Radius scaling) such that the divisions by R drop out in this last formulation too.","category":"page"},{"location":"spectral_transform/#Zonal-derivative","page":"Spherical harmonic transform","title":"Zonal derivative","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The zonal derivative of a scalar field Psi in spectral space is the zonal derivative of all its respective spherical harmonics Psi_lm(phitheta) (now we use phi for longitudes to avoid confusion with the Legendre polynomials lambda_lm)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"v_lm = frac1R cos(theta) fracpartialpartial phi left( lambda_l^m(costheta) e^imphi right) =\nfracimR cos(theta) lambda_l^m(costheta) e^imphi = fracimR cos(theta) Psi_lm","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"So for every spectral harmonic, cos(theta)v_lm is obtained from Psi_lm via a multiplication with imR. Unscaling the cos(theta)-factor is done after transforming the spectral coefficients v_lm into grid-point space. As discussed in Radius scaling, SpeedyWeather.jl scales the stream function as tildePsi = R^-1Psi such that the division by radius R in the gradients can be omitted. The zonal derivative becomes therefore effectively for each spherical harmonic a scaling with its (imaginary) order im. The spherical harmonics are essentially just a Fourier transform in zonal direction and the derivative a multiplication with the respective wave number m times imaginary i.","category":"page"},{"location":"spectral_transform/#Meridional-derivative","page":"Spherical harmonic transform","title":"Meridional derivative","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The meridional derivative of the spherical harmonics is a derivative of the Legendre polynomials for which the following recursion relation applies[10],[11]","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"costheta fracdP_lmdtheta = -lepsilon_l+1mP_l+1m + (l+1)epsilon_lmP_l-1m","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"with recursion factors","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"epsilon_lm = sqrtfracl^2-m^24l^2-1","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"In the following we use the example of obtaining the zonal velocity u from the stream function Psi, which is through the negative meridional gradient. For the meridional derivative itself the leading minus sign has to be omitted. Starting with the spectral expansion","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Psi(lambdatheta) = sum_lmPsi_lmP_lm(sintheta)e^imlambda","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"we multiply with -R^-1costhetapartial_theta to obtain","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"costhetaleft(-frac1Rpartial_thetaPsi right) = -frac1Rsum_lmPsi_lme^imlambdacosthetapartial_theta P_lm","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"at which point the recursion from above can be applied. Collecting terms proportional to P_lm then yields","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"(cos(theta)u)_lm = -frac1R(-(l-1)epsilon_lmPsi_l-1m + (l+2)epsilon_l+1mPsi_l+1m)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"To obtain the coefficient of each spherical harmonic lm of the meridional gradient of a spectral field, two coefficients at l-1m and l+1m have to be combined. This means that the coefficient of a gradient ((costheta) u)_lm is a linear combination of the coefficients of one higher and one lower degree Psi_l+1mPsi_l-1m. As the coefficient Psi_lm with ml are zero, the sectoral harmonics (l=m) of the gradients are obtained from the first off-diagonal only. However, the l=l_max harmonics of the gradients require the l_max-1 as well as the l_max+1 harmonics. As a consequence vector quantities like velocity components uv require one more degree l than scalar quantities like vorticity[Bourke72]. However, for easier compatibility all spectral fields in SpeedyWeather.jl use one more degree l, but scalar quantities should not make use of it. Equivalently, the last degree l is set to zero before the time integration, which only advances scalar quantities.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"In SpeedyWeather.jl vector quantities like uv use therefore one more meridional mode than scalar quantities such as vorticity zeta or stream function Psi. The meridional derivative in SpeedyWeather.jl also omits the 1R-scaling as explained for the Zonal derivative and in Radius scaling.","category":"page"},{"location":"spectral_transform/#Divergence-and-curl-in-spherical-harmonics","page":"Spherical harmonic transform","title":"Divergence and curl in spherical harmonics","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The meridional gradient as described above can be applied to scalars, such as Psi and Phi in the conversion to velocities (uv) = nabla^botPsi + nablaPhi, however, the operators curl nabla times and divergence nabla cdot in spherical coordinates involve a costheta scaling before the meridional gradient is applied. How to translate this to spectral coefficients has to be derived separately[10],[11].","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The spectral transform of vorticity zeta is","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"zeta_lm = frac12piint_-tfracpi2^tfracpi2int_0^2pi zeta(lambdatheta)\nP_lm(sintheta) e^imlambda dlambda costheta dtheta","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Given that Rzeta = cos^-1partial_lambda v - cos^-1partial_theta (u costheta), we therefore have to evaluate a meridional integral of the form","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"int P_lm frac1cos theta partial_theta(u costheta)) cos theta dtheta","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"which can be solved through integration by parts. As ucostheta = 0 at theta = pm tfracpi2 only the integral","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"= -int partial_theta P_lm (u costheta) dtheta = -int costheta partial_theta P_lm\n(fracucostheta) costheta dtheta","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"remains. Inserting the recurrence relation from the Meridional derivative turns this into","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"= -int left(-l epsilon_l+1mP_l+1m + (l+1)epsilon_lm P_l-1m right) (fracucostheta)\ncos theta dtheta","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Now we expand (tfracucostheta) but only the lm harmonic will project ontoP_lm. Let u^* = ucos^-1theta v^* = vcos^-1theta we then have in total","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"beginaligned\nRzeta_lm = imv^*_lm + (l+1)epsilon_lmu^*_l-1m - lepsilon_l+1mu^*_l+1m \nRD_lm = imu^*_lm - (l+1)epsilon_lmv^*_l-1m + lepsilon_l+1mv^*_l+1m \nendaligned","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"And the divergence D is similar, but (uv) to (-vu). We have moved the scaling with the radius R directly into zetaD as further described in Radius scaling.","category":"page"},{"location":"spectral_transform/#Laplacian","page":"Spherical harmonic transform","title":"Laplacian","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The spectral Laplacian is easily applied to the coefficients Psi_lm of a spectral field as the spherical harmonics are eigenfunctions of the Laplace operator nabla^2 in spherical coordinates with eigenvalues -l(l+1) divided by the radius squared R^2, i.e. nabla^2 Psi becomes tfrac-l(l+1)R^2Psi_lm in spectral space. For example, vorticity zeta and streamfunction Psi are related by zeta = nabla^2Psi in the barotropic vorticity model. Hence, in spectral space this is equivalent for every spectral mode of degree l and order m to","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"zeta_lm = frac-l(l+1)R^2Psi_lm","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"This can be easily inverted to obtain the stream function Psi from vorticity zeta instead. In order to avoid division by zero, we set Psi_00 here, given that the stream function is only defined up to a constant anyway.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"beginaligned\nPsi_lm = fracR^2-l(l+1)zeta_lm quad foralllm 0\nPsi_00 = 0\nendaligned","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"See also Horizontal diffusion and Normalization of diffusion.","category":"page"},{"location":"spectral_transform/#U,V-from-vorticity-and-divergence","page":"Spherical harmonic transform","title":"U,V from vorticity and divergence","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"After having discussed the zonal and meridional derivatives with spherical harmonics as well as the Laplace operator, we can derive the conversion from vorticity zeta and divergence D (which are prognostic variables) to U=ucostheta V=vcostheta. Both are linear operations that act either solely on a given harmonic (the zonal gradient and the Laplace operator) or are linear combinations between one lower and one higher degree l (the meridional gradient). It is therefore computationally more efficient to compute UV directly from zetaD instead of calculating stream function and velocity potential first. In total we have","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"beginaligned\nU_lm = -fraciml(l+1)(RD)_lm + fracepsilon_l+1ml+1(Rzeta)_l+1m -\nfracepsilon_lml(Rzeta)_l-1m \nV_lm = -fraciml(l+1)(Rzeta)_lm - fracepsilon_l+1ml+1(RD)_l+1m +\nfracepsilon_lml(RD)_l-1m \nendaligned","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"We have moved the scaling with the radius R directly into zetaD as further described in Radius scaling.","category":"page"},{"location":"spectral_transform/#References","page":"Spherical harmonic transform","title":"References","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[Malardel2016]: Malardel S, Wedi N, Deconinck W, Diamantakis M, Kühnlein C, Mozdzynski G, Hamrud M, Smolarkiewicz P. A new grid for the IFS. ECMWF newsletter. 2016;146(23-28):321. doi: 10.21957/zwdu9u5i","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[Gorski2004]: Górski, Hivon, Banday, Wandelt, Hansen, Reinecke, Bartelmann, 2004. HEALPix: A FRAMEWORK FOR HIGH-RESOLUTION DISCRETIZATION AND FAST ANALYSIS OF DATA DISTRIBUTED ON THE SPHERE, The Astrophysical Journal. doi:10.1086/427976","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[Willmert2020]: Justin Willmert, 2020. justinwillmert.comIntroduction to Associated Legendre Polynomials (Legendre.jl Series, Part I)\nCalculating Legendre Polynomials (Legendre.jl Series, Part II)\nPre-normalizing Legendre Polynomials (Legendre.jl Series, Part III)\nMaintaining numerical accuracy in the Legendre recurrences (Legendre.jl Series, Part IV)\nIntroducing Legendre.jl (Legendre.jl Series, Part V)\nNumerical Accuracy of the Spherical Harmonic Recurrence Coefficient (Legendre.jl Series Addendum)\nNotes on Calculating the Spherical Harmonics\nMore Notes on Calculating the Spherical Harmonics: Analysis of maps to harmonic coefficients","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[Daley78]: Roger Daley & Yvon Bourassa (1978) Rhomboidal versus triangular spherical harmonic truncation: Some verification statistics, Atmosphere-Ocean, 16:2, 187-196, DOI: 10.1080/07055900.1978.9649026","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[Randall2021]: David Randall, 2021. An Introduction to Numerical Modeling of the Atmosphere, Chapter 22.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[Durran2010]: Dale Durran, 2010. Numerical Methods for Fluid Dynamics, Springer. In particular section 6.2, 6.4.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[GFDL]: Geophysical Fluid Dynamics Laboratory, The barotropic vorticity equation.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[FFT]: Depending on the implementation of the Fast Fourier Transform (Cooley-Tukey algorithm, or or the Bluestein algorithm) easily Fourier-transformable can mean different things: Vectors of the length n that is a power of two, i.e. n = 2^i is certainly easily Fourier-transformable, but for most FFT implementations so are n = 2^i3^j5^k with ijk some positive integers. In fact, FFTW uses O(n log n) algorithms even for prime sizes.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[Bourke72]: Bourke, W. An Efficient, One-Level, Primitive-Equation Spectral Model. Mon. Wea. Rev. 100, 683–689 (1972). doi:10.1175/1520-0493(1972)100<0683:AEOPSM>2.3.CO;2","category":"page"},{"location":"ringgrids/#RingGrids","page":"Submodule: RingGrids","title":"RingGrids","text":"","category":"section"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"RingGrids is a submodule that has been developed for SpeedyWeather.jl which is technically independent (SpeedyWeather.jl however imports it and so does SpeedyTransforms) and can also be used without running simulations. It is just not put into its own respective repository.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"RingGrids defines several iso-latitude grids, which are mathematically described in the section on Grids. In brief, they include the regular latitude-longitude grids (here called FullClenshawGrid) as well as grids which latitudes are shifted to the Gaussian latitudes and reduced grids, meaning that they have a decreasing number of longitudinal points towards the poles to be more equal-area than full grids.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"RingGrids defines and exports the following grids:","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"full grids: FullClenshawGrid, FullGaussianGrid, FullHEALPix, and FullOctaHEALPix\nreduced grids: OctahedralGaussianGrid, OctahedralClenshawGrid, OctaHEALPixGrid and HEALPixGrid","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"The following explanation of how to use these can be mostly applied to any of them, however, there are certain functions that are not defined, e.g. the full grids can be trivially converted to a Matrix (i.e. they are rectangular grids) but not the OctahedralGaussianGrid.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"note: What is a ring?\nWe use the term ring, short for iso-latitude ring, to refer to a sequence of grid points that all share the same latitude. A latitude-longitude grid is a ring grid, as it organises its grid-points into rings. However, other grids, like the cubed-sphere are not based on iso-latitude rings. SpeedyWeather.jl only works with ring grids because its a requirement for the Spherical Harmonic Transform to be efficient. See Grids.","category":"page"},{"location":"ringgrids/#Creating-data-on-a-RingGrid","page":"Submodule: RingGrids","title":"Creating data on a RingGrid","text":"","category":"section"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"Every grid in RingGrids has a grid.data field, which is a vector containing the data on the grid. The grid points are unravelled west to east then north to south, meaning that it starts at 90˚N and 0˚E then walks eastward for 360˚ before jumping on the next latitude ring further south, this way circling around the sphere till reaching the south pole. This may also be called ring order.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"Data in a Matrix which follows this ring order can be put on a FullGaussianGrid like so","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"using SpeedyWeather.RingGrids\nmap = randn(Float32,8,4)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"grid = FullGaussianGrid(map)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"A full Gaussian grid has always 2N x N grid points, but a FullClenshawGrid has 2N x N-1, if those dimensions don't match, the creation will throw an error. To reobtain the data from a grid, you can access its data field which returns a normal Vector","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"grid.data","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"Which can be reshaped to reobtain map from above. Alternatively you can Matrix(grid) to do this in one step","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"map == Matrix(FullGaussianGrid(map))","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"You can also use zeros,ones,rand,randn to create a grid, whereby nlat_half, i.e. the number of latitude rings on one hemisphere, Equator included, is used as a resolution parameter and here as a second argument.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"nlat_half = 4\ngrid = randn(OctahedralGaussianGrid{Float16},nlat_half)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"and any element type T can be used for OctahedralGaussianGrid{T} and similar for other grid types.","category":"page"},{"location":"ringgrids/#Visualising-RingGrid-data","page":"Submodule: RingGrids","title":"Visualising RingGrid data","text":"","category":"section"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"As only the full grids can be reshaped into a matrix, the underlying data structure of any AbstractGrid is a vector. As shown in the examples above, one can therefore inspect the data as if it was a vector. But as that data has, through its <:AbstractGrid type, all the geometric information available to plot it on a map, RingGrids also exports plot function, based on UnicodePlots' heatmap.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"nlat_half = 24\ngrid = randn(OctahedralGaussianGrid,nlat_half)\nplot(grid)","category":"page"},{"location":"ringgrids/#Indexing-RingGrids","page":"Submodule: RingGrids","title":"Indexing RingGrids","text":"","category":"section"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"All RingGrids have a single index ij which follows the ring order. While this is obviously not super exciting here are some examples how to make better use of the information that the data sits on a grid.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"We obtain the latitudes of the rings of a grid by calling get_latd (get_lond is only defined for full grids, or use get_latdlonds for latitudes, longitudes per grid point not per ring)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"grid = randn(OctahedralClenshawGrid,5)\nlatd = get_latd(grid)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"Now we could calculate Coriolis and add it on the grid as follows","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"rotation = 7.29e-5 # angular frequency of Earth's rotation [rad/s]\ncoriolis = 2rotation*sind.(latd) # vector of coriolis parameters per latitude ring\n\nrings = eachring(grid)\nfor (j,ring) in enumerate(rings)\n f = coriolis[j]\n for ij in ring\n grid[ij] += f\n end\nend","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"eachring creates a vector of UnitRange indices, such that we can loop over the ring index j (j=1 being closest to the North pole) pull the coriolis parameter at that latitude and then loop over all in-ring indices i (changing longitudes) to do something on the grid. Something similar can be done to scale/unscale with the cosine of latitude for example. We can always loop over all grid-points like so","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"for ij in eachgridpoint(grid)\n grid[ij]\nend","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"or use eachindex instead.","category":"page"},{"location":"ringgrids/#Interpolation-on-RingGrids","page":"Submodule: RingGrids","title":"Interpolation on RingGrids","text":"","category":"section"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"In most cases we will want to use RingGrids so that our data directly comes with the geometric information of where the grid-point is one the sphere. We have seen how to use get_latd, get_lond, ... for that above. This information generally can also be used to interpolate our data from grid to another or to request an interpolated value on some coordinates. Using our data on grid which is an OctahedralGaussianGrid from above we can use the interpolate function to get it onto a FullGaussianGrid (or any other grid for purpose)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"grid = randn(OctahedralGaussianGrid{Float32},4)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"interpolate(FullGaussianGrid,grid)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"By default this will linearly interpolate (it's an Anvil interpolator, see below) onto a grid with the same nlat_half, but we can also coarse-grain or fine-grain by specifying nlat_half directly as 2nd argument","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"interpolate(FullGaussianGrid,6,grid)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"So we got from an 8-ring OctahedralGaussianGrid{Float16} to a 12-ring FullGaussianGrid{Float64}, so it did a conversion from Float16 to Float64 on the fly too, because the default precision is Float64 unless specified. interpolate(FullGaussianGrid{Float16},6,grid) would have interpolated onto a grid with element type Float16.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"One can also interpolate onto a given coordinate ˚N, ˚E like so","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"interpolate(30.0,10.0,grid)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"we interpolated the data from grid onto 30˚N, 10˚E. To do this simultaneously for many coordinates they can be packed into a vector too","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"interpolate([30.0,40.0,50.0],[10.0,10.0,10.0],grid)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"which returns the data on grid at 30˚N, 40˚N, 50˚N, and 10˚E respectively. Note how the interpolation here retains the element type of grid.","category":"page"},{"location":"ringgrids/#Performance-for-RingGrid-interpolation","page":"Submodule: RingGrids","title":"Performance for RingGrid interpolation","text":"","category":"section"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"Every time an interpolation like interpolate(30.0,10.0,grid) is called, several things happen, which are important to understand to know how to get the fastest interpolation out of this module in a given situation. Under the hood an interpolation takes three arguments","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"output vector\ninput grid\ninterpolator","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"The output vector is just an array into which the interpolated data is written, providing this prevents unnecessary allocation of memory in case the destination array of the interpolation already exists. The input grid contains the data which is subject to interpolation, it must come on a ring grid, however, its coordinate information is actually already in the interpolator. The interpolator knows about the geometry of the grid the data is coming on and the coordinates it is supposed to interpolate onto. It has therefore precalculated the indices that are needed to access the right data on the input grid and the weights it needs to apply in the actual interpolation operation. The only thing it does not know is the actual data values of that grid. So in the case you want to interpolate from grid A to grid B many times, you can just reuse the same interpolator. If you want to change the coordinates of the output grid but its total number of points remain constants then you can update the locator inside the interpolator and only else you will need to create a new interpolator. Let's look at this in practice. Say we have two grids an want to interpolate between them","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"grid_in = rand(HEALPixGrid,4)\ngrid_out = zeros(FullClenshawGrid,6)\ninterp = RingGrids.interpolator(grid_out,grid_in)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"Now we have created an interpolator interp which knows about the geometry where to interpolate from and the coordinates there to interpolate to. It is also initialized, meaning it has precomputed the indices to of grid_in that are supposed to be used. It just does not know about the data of grid_in (and neither of grid_out which will be overwritten anyway). We can now do","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"interpolate!(grid_out,grid_in,interp)\ngrid_out","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"which is identical to interpolate(grid_out,grid_in) but you can reuse interp for other data. The interpolation can also handle various element types (the interpolator interp does not have to be updated for this either)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"grid_out = zeros(FullClenshawGrid{Float16},6);\ninterpolate!(grid_out,grid_in,interp)\ngrid_out","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"and we have converted data from a HEALPixGrid{Float64} (Float64 is always default if not specified) to a FullClenshawGrid{Float16} including the type conversion Float64-Float16 on the fly. Technically there are three data types and their combinations possible: The input data will come with a type, the output array has an element type and the interpolator has precomputed weights with a given type. Say we want to go from Float16 data on an OctahedralGaussianGrid to Float16 on a FullClenshawGrid but using Float32 precision for the interpolation itself, we would do this by","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"grid_in = randn(OctahedralGaussianGrid{Float16},24)\ngrid_out = zeros(FullClenshawGrid{Float16},24)\ninterp = RingGrids.interpolator(Float32,grid_out,grid_in)\ninterpolate!(grid_out,grid_in,interp)\ngrid_out","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"As a last example we want to illustrate a situation where we would always want to interpolate onto 10 coordinates, but their locations may change. In order to avoid recreating an interpolator object we would do (AnvilInterpolator is described in Anvil interpolator)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"npoints = 10 # number of coordinates to interpolate onto\ninterp = AnvilInterpolator(Float32,HEALPixGrid,24,npoints)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"with the first argument being the number format used during interpolation, then the input grid type, its resolution in terms of nlat_half and then the number of points to interpolate onto. However, interp is not yet initialized as it does not know about the destination coordinates yet. Let's define them, but note that we already decided there's only 10 of them above.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"latds = collect(0.0:5.0:45.0)\nlonds = collect(-10.0:2.0:8.0)\nnothing # hide","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"now we can update the locator inside our interpolator as follows","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"RingGrids.update_locator!(interp,latds,londs)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"With data matching the input from above, a nlat_half=24 HEALPixGrid, and allocate 10-element output vector","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"output_vec = zeros(10)\ngrid_input = rand(HEALPixGrid,24)\nnothing # hide","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"we can use the interpolator as follows","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"interpolate!(output_vec,grid_input,interp)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"which is the approximately the same as doing it directly without creating an interpolator first and updating its locator","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"interpolate(latds,londs,grid_input)","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"but allows for a reuse of the interpolator. Note that the two output arrays are not exactly identical because we manually set our interpolator interp to use Float32 for the interpolation whereas the default is Float64.","category":"page"},{"location":"ringgrids/#Anvil-interpolator","page":"Submodule: RingGrids","title":"Anvil interpolator","text":"","category":"section"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"Currently the only interpolator implemented is a 4-point bilinear interpolator, which schematically works as follows. Anvil interpolation is the bilinear average of a,b,c,d which are values at grid points in an anvil-shaped configuration at location x, which is denoted by Δab,Δcd,Δy, the fraction of distances between a-b,c-d, and ab-cd, respectively. Note that a,c and b,d do not necessarily share the same longitude/x-coordinate.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":" 0..............1 # fraction of distance Δab between a,b\n |< Δab >|\n\n0^ a -------- o - b # anvil-shaped average of a,b,c,d at location x\n.Δy |\n. |\n.v x \n. |\n1 c ------ o ---- d\n\n |< Δcd >|\n 0...............1 # fraction of distance Δcd between c,d\n\n^ fraction of distance Δy between a-b and c-d.","category":"page"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"This interpolation is chosen as by definition of the ring grids, a and b share the same latitude, so do c and d, but the longitudes can be different for all four, a,b,c,d.","category":"page"},{"location":"ringgrids/#Function-index","page":"Submodule: RingGrids","title":"Function index","text":"","category":"section"},{"location":"ringgrids/","page":"Submodule: RingGrids","title":"Submodule: RingGrids","text":"Modules = [SpeedyWeather.RingGrids]","category":"page"},{"location":"ringgrids/#SpeedyWeather.RingGrids.AbstractFullGrid","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.AbstractFullGrid","text":"abstract type AbstractFullGrid{T} <: AbstractGrid{T} end\n\nAn AbstractFullGrid is a horizontal grid with a constant number of longitude points across latitude rings. Different latitudes can be used, Gaussian latitudes, equi-angle latitdes, or others.\n\n\n\n\n\n","category":"type"},{"location":"ringgrids/#SpeedyWeather.RingGrids.AbstractGrid","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.AbstractGrid","text":"abstract type AbstractGrid{T} <: AbstractVector{T} end\n\nThe abstract supertype for all spatial grids on the sphere supported by SpeedyWeather.jl. Every new grid has to be of the form\n\nabstract type AbstractGridClass{T} <: AbstractGrid{T} end\nstruct MyNewGrid{T} <: AbstractGridClass{T}\n data::Vector{T} # all grid points unravelled into a vector\n nlat_half::Int # resolution: latitude rings on one hemisphere (Equator incl)\nend\n\nMyNewGrid should belong to a grid class like AbstractFullGrid, AbstractOctahedralGrid or AbstractHEALPixGrid (that already exist but you may introduce a new class of grids) that share certain features such as the number of longitude points per latitude ring and indexing, but may have different latitudes or offset rotations. Each new grid Grid (or grid class) then has to implement the following methods (as an example, see octahedral.jl)\n\nFundamental grid properties getnpoints # total number of grid points nlatodd # does the grid have an odd number of latitude rings? getnlat # total number of latitude rings getnlat_half # number of latitude rings on one hemisphere incl Equator\n\nIndexing getnlonmax # maximum number of longitudes points (at the Equator) getnlonperring # number of longitudes on ring j eachindexinring # a unit range that indexes all longitude points on a ring\n\nCoordinates getcolat # vector of colatitudes (radians) getcolatlon # vectors of colatitudes, longitudes (both radians)\n\nSpectral truncation truncationorder # linear, quadratic, cubic = 1,2,3 for grid gettruncation # spectral truncation given a grid resolution get_resolution # grid resolution given a spectral truncation\n\nQuadrature weights and solid angles getquadratureweights # = sinθ Δθ for grid points on ring j for meridional integration getsolidangle # = sinθ Δθ Δϕ, solid angle of grid points on ring j\n\n\n\n\n\n","category":"type"},{"location":"ringgrids/#SpeedyWeather.RingGrids.AbstractHEALPixGrid","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.AbstractHEALPixGrid","text":"abstract type AbstractHEALPixGrid{T} <: AbstractGrid{T} end\n\nAn AbstractHEALPixGrid is a horizontal grid similar to the standard HEALPixGrid, but different latitudes can be used, the default HEALPix latitudes or others.\n\n\n\n\n\n","category":"type"},{"location":"ringgrids/#SpeedyWeather.RingGrids.AbstractInterpolator","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.AbstractInterpolator","text":"abstract type AbstractInterpolator{NF,G} end\n\nSupertype for Interpolators. Every Interpolator <: AbstractInterpolator is expected to have two fields,\n\ngeometry, which describes the grid G to interpolate from\nlocator, which locates the indices on G and their weights to interpolate onto a new grid.\n\nNF is the number format used to calculate the interpolation, which can be different from the input data and/or the interpolated data on the new grid.\n\n\n\n\n\n","category":"type"},{"location":"ringgrids/#SpeedyWeather.RingGrids.AbstractLocator","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.AbstractLocator","text":"AbstractLocator{NF}\n\nSupertype of every Locator, which locates the indices on a grid to be used to perform an interpolation. E.g. AnvilLocator uses a 4-point stencil for every new coordinate to interpolate onto. Higher order stencils can be implemented by defining OtherLocator <: AbstractLocactor.\n\n\n\n\n\n","category":"type"},{"location":"ringgrids/#SpeedyWeather.RingGrids.AbstractOctaHEALPixGrid","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.AbstractOctaHEALPixGrid","text":"abstract type AbstractOctaHEALPixGrid{T} <: AbstractGrid{T} end\n\nAn AbstractOctaHEALPixGrid is a horizontal grid similar to the standard OctahedralGrid, but the number of points in the ring closest to the Poles starts from 4 instead of 20, and the longitude of the first point in each ring is shifted as in HEALPixGrid. Also, different latitudes can be used.\n\n\n\n\n\n","category":"type"},{"location":"ringgrids/#SpeedyWeather.RingGrids.AbstractOctahedralGrid","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.AbstractOctahedralGrid","text":"abstract type AbstractOctahedralGrid{T} <: AbstractGrid{T} end\n\nAn AbstractOctahedralGrid is a horizontal grid with 16+4i longitude points on the latitude ring i starting with i=1 around the pole. Different latitudes can be used, Gaussian latitudes, equi-angle latitdes, or others.\n\n\n\n\n\n","category":"type"},{"location":"ringgrids/#SpeedyWeather.RingGrids.AnvilLocator","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.AnvilLocator","text":"AnvilLocator{NF<:AbstractFloat} <: AbtractLocator\n\nContains arrays that locates grid points of a given field to be uses in an interpolation and their weights. This Locator is a 4-point average in an anvil-shaped grid-point arrangement between two latitude rings.\n\n\n\n\n\n","category":"type"},{"location":"ringgrids/#SpeedyWeather.RingGrids.AnvilLocator-Union{Tuple{Integer}, Tuple{NF}} where NF<:AbstractFloat","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.AnvilLocator","text":"L = AnvilLocator( ::Type{NF}, # number format used for the interpolation\n npoints::Integer # number of points to interpolate onto\n ) where {NF<:AbstractFloat}\n\nZero generator function for the 4-point average AnvilLocator. Use update_locator! to update the grid indices used for interpolation and their weights. The number format NF is the format used for the calculations within the interpolation, the input data and/or output data formats may differ.\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.FullClenshawGrid","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.FullClenshawGrid","text":"G = FullClenshawGrid{T}\n\nA FullClenshawGrid is a regular latitude-longitude grid with an odd number of nlat equi-spaced latitudes, the central latitude ring is on the Equator. The same nlon longitudes for every latitude ring. The grid points are closer in zonal direction around the poles. The values of all grid points are stored in a vector field data that unravels the data 0 to 360˚, then ring by ring, which are sorted north to south.\n\n\n\n\n\n","category":"type"},{"location":"ringgrids/#SpeedyWeather.RingGrids.FullGaussianGrid","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.FullGaussianGrid","text":"G = FullGaussianGrid{T}\n\nA full Gaussian grid is a regular latitude-longitude grid that uses nlat Gaussian latitudes, and the same nlon longitudes for every latitude ring. The grid points are closer in zonal direction around the poles. The values of all grid points are stored in a vector field v that unravels the data 0 to 360˚, then ring by ring, which are sorted north to south.\n\n\n\n\n\n","category":"type"},{"location":"ringgrids/#SpeedyWeather.RingGrids.FullHEALPixGrid","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.FullHEALPixGrid","text":"G = FullHEALPixGrid{T}\n\nA full HEALPix grid is a regular latitude-longitude grid that uses nlat latitudes from the HEALPix grid, and the same nlon longitudes for every latitude ring. The grid points are closer in zonal direction around the poles. The values of all grid points are stored in a vector field v that unravels the data 0 to 360˚, then ring by ring, which are sorted north to south.\n\n\n\n\n\n","category":"type"},{"location":"ringgrids/#SpeedyWeather.RingGrids.FullOctaHEALPixGrid","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.FullOctaHEALPixGrid","text":"G = FullOctaHEALPixGrid{T}\n\nA full OctaHEALPix grid is a regular latitude-longitude grid that uses nlat OctaHEALPix latitudes, and the same nlon longitudes for every latitude ring. The grid points are closer in zonal direction around the poles. The values of all grid points are stored in a vector field v that unravels the data 0 to 360˚, then ring by ring, which are sorted north to south.\n\n\n\n\n\n","category":"type"},{"location":"ringgrids/#SpeedyWeather.RingGrids.GridGeometry","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.GridGeometry","text":"GridGeometry{G<:AbstractGrid}\n\ncontains general precomputed arrays describing the grid of G.\n\n\n\n\n\n","category":"type"},{"location":"ringgrids/#SpeedyWeather.RingGrids.GridGeometry-Tuple{Type{<:SpeedyWeather.RingGrids.AbstractGrid}, Integer}","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.GridGeometry","text":"G = GridGeometry( Grid::Type{<:AbstractGrid},\n nlat_half::Integer)\n\nPrecomputed arrays describing the geometry of the Grid with resolution nlat_half. Contains latitudes and longitudes of grid points, their ring index j and their unravelled indices ij.\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.HEALPixGrid","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.HEALPixGrid","text":"H = HEALPixGrid{T}\n\nA HEALPix grid with 12 faces, each nsidexnside grid points, each covering the same area. The number of latitude rings on one hemisphere (incl Equator) nlat_half is used as resolution parameter. The values of all grid points are stored in a vector field v that unravels the data 0 to 360˚, then ring by ring, which are sorted north to south.\n\n\n\n\n\n","category":"type"},{"location":"ringgrids/#SpeedyWeather.RingGrids.OctaHEALPixGrid","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.OctaHEALPixGrid","text":"H = OctaHEALPixGrid{T}\n\nA OctaHEALPix grid with 4 base faces, each nlat_halfxnlat_half grid points, each covering the same area. The values of all grid points are stored in a vector field data that unravels the data 0 to 360˚, then ring by ring, which are sorted north to south.\n\n\n\n\n\n","category":"type"},{"location":"ringgrids/#SpeedyWeather.RingGrids.OctahedralClenshawGrid","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.OctahedralClenshawGrid","text":"G = OctahedralClenshawGrid{T}\n\nAn Octahedral Clenshaw grid that uses nlat equi-spaced latitudes. Like FullClenshawGrid, the central latitude ring is on the Equator. Like OctahedralGaussianGrid, the number of longitude points per latitude ring decreases towards the poles. Starting with 20 equi-spaced longitude points (starting at 0˚E) on the rings around the poles, each latitude ring towards the equator has consecuitively 4 more points, one for each face of the octahedron. E.g. 20,24,28,32,...nlon-4,nlon,nlon,nlon-4,...,32,28,24,20. The maximum number of longitue points is nlon. The values of all grid points are stored in a vector field v that unravels the data 0 to 360˚, then ring by ring, which are sorted north to south.\n\n\n\n\n\n","category":"type"},{"location":"ringgrids/#SpeedyWeather.RingGrids.OctahedralGaussianGrid","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.OctahedralGaussianGrid","text":"G = OctahedralGaussianGrid{T}\n\nAn Octahedral Gaussian grid that uses nlat Gaussian latitudes, but a decreasing number of longitude points per latitude ring towards the poles. Starting with 20 equi-spaced longitude points (starting at 0˚E) on the rings around the poles, each latitude ring towards the equator has consecuitively 4 more points, one for each face of the octahedron. E.g. 20,24,28,32,...nlon-4,nlon,nlon,nlon-4,...,32,28,24,20. The maximum number of longitue points is nlon. The values of all grid points are stored in a vector field v that unravels the data 0 to 360˚, then ring by ring, which are sorted north to south.\n\n\n\n\n\n","category":"type"},{"location":"ringgrids/#SpeedyWeather.RingGrids.Matrix!-Tuple{AbstractMatrix, OctaHEALPixGrid}","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.Matrix!","text":"Matrix!(M::AbstractMatrix,\n G::OctaHEALPixGrid;\n quadrant_rotation=(0,1,2,3),\n matrix_quadrant=((2,2),(1,2),(1,1),(2,1)),\n )\n\nSorts the gridpoints in G into the matrix M without interpolation. Every quadrant of the grid G is rotated as specified in quadrant_rotation, 0 is no rotation, 1 is 90˚ clockwise, 2 is 180˚ etc. Grid quadrants are counted eastward starting from 0˚E. The grid quadrants are moved into the matrix quadrant (i,j) as specified. Defaults are equivalent to centered at 0˚E and a rotation such that the North Pole is at M's midpoint.\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.Matrix!-Tuple{AbstractMatrix, OctahedralClenshawGrid}","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.Matrix!","text":"Matrix!(M::AbstractMatrix,\n G::OctahedralClenshawGrid;\n quadrant_rotation=(0,1,2,3),\n matrix_quadrant=((2,2),(1,2),(1,1),(2,1)),\n )\n\nSorts the gridpoints in G into the matrix M without interpolation. Every quadrant of the grid G is rotated as specified in quadrant_rotation, 0 is no rotation, 1 is 90˚ clockwise, 2 is 180˚ etc. Grid quadrants are counted eastward starting from 0˚E. The grid quadrants are moved into the matrix quadrant (i,j) as specified. Defaults are equivalent to centered at 0˚E and a rotation such that the North Pole is at M's midpoint.\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.Matrix!-Union{Tuple{Vararg{Tuple{AbstractMatrix{T}, OctaHEALPixGrid}}}, Tuple{T}} where T","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.Matrix!","text":"Matrix!(MGs::Tuple{AbstractMatrix{T},OctaHEALPixGrid}...;kwargs...)\n\nLike Matrix!(::AbstractMatrix,::OctaHEALPixGrid) but for simultaneous processing of tuples ((M1,G1),(M2,G2),...) with matrices Mi and grids Gi. All matrices and grids have to be of the same size respectively.\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.Matrix!-Union{Tuple{Vararg{Tuple{AbstractMatrix{T}, OctahedralClenshawGrid}}}, Tuple{T}} where T","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.Matrix!","text":"Matrix!(MGs::Tuple{AbstractMatrix{T},OctahedralClenshawGrid}...;kwargs...)\n\nLike Matrix!(::AbstractMatrix,::OctahedralClenshawGrid) but for simultaneous processing of tuples ((M1,G1),(M2,G2),...) with matrices Mi and grids Gi. All matrices and grids have to be of the same size respectively.\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.anvil_average-NTuple{7, Any}","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.anvil_average","text":"anvil_average(a, b, c, d, Δab, Δcd, Δy) -> Any\n\n\nThe bilinear average of a,b,c,d which are values at grid points in an anvil-shaped configuration at location x, which is denoted by Δab,Δcd,Δy, the fraction of distances between a-b,c-d, and ab-cd, respectively. Note that a,c and b,d do not necessarily share the same longitude/x-coordinate. See schematic:\n\n 0..............1 # fraction of distance Δab between a,b\n |< Δab >|\n\n 0^ a -------- o - b # anvil-shaped average of a,b,c,d at location x\n .Δy |\n . |\n .v x \n . |\n 1 c ------ o ---- d\n\n |< Δcd >|\n 0...............1 # fraction of distance Δcd between c,d\n\n^ fraction of distance Δy between a-b and c-d.\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.average_on_poles-Union{Tuple{NF}, Tuple{SpeedyWeather.RingGrids.AbstractGrid{NF}, Vector{<:UnitRange{<:Integer}}}} where NF<:AbstractFloat","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.average_on_poles","text":"average_on_poles(\n A::SpeedyWeather.RingGrids.AbstractGrid{NF<:AbstractFloat},\n rings::Vector{<:UnitRange{<:Integer}}\n) -> Tuple{Any, Any}\n\n\nComputes the average at the North and South pole from a given grid A and it's precomputed ring indices rings. The North pole average is an equally weighted average of all grid points on the northern-most ring. Similar for the South pole.\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.average_on_poles-Union{Tuple{NF}, Tuple{SpeedyWeather.RingGrids.AbstractGrid{NF}, Vector{<:UnitRange{<:Integer}}}} where NF<:Integer","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.average_on_poles","text":"average_on_poles(\n A::SpeedyWeather.RingGrids.AbstractGrid{NF<:Integer},\n rings::Vector{<:UnitRange{<:Integer}}\n) -> Tuple{Any, Any}\n\n\nMethod for A::Abstract{T<:Integer} which rounds the averaged values to return the same number format NF.\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.each_index_in_ring-Union{Tuple{Grid}, Tuple{Grid, Integer}} where Grid<:SpeedyWeather.RingGrids.AbstractGrid","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.each_index_in_ring","text":"i = each_index_in_ring(grid,j)\n\nUnitRange i to access data on grid grid on ring j.\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.eachgridpoint-Tuple{SpeedyWeather.RingGrids.AbstractGrid}","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.eachgridpoint","text":"ijs = eachgridpoint(grid)\n\nUnitRange ijs to access each grid point on grid grid.\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.eachring-Tuple{SpeedyWeather.RingGrids.AbstractGrid}","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.eachring","text":"eachring(grid::SpeedyWeather.RingGrids.AbstractGrid) -> Any\n\n\nVector{UnitRange} rings to loop over every ring of grid grid and then each grid point per ring. To be used like\n\nrings = eachring(grid)\nfor ring in rings\n for ij in ring\n grid[ij]\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.eachring-Union{Tuple{Grid}, Tuple{Grid, Vararg{Grid}}} where Grid<:SpeedyWeather.RingGrids.AbstractGrid","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.eachring","text":"eachring(\n grid1::SpeedyWeather.RingGrids.AbstractGrid,\n grids::Grid<:SpeedyWeather.RingGrids.AbstractGrid...\n) -> Any\n\n\nSame as eachring(grid) but performs a bounds check to assess that all grids in grids are of same size.\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.extrema_in-Tuple{Vector, Real, Real}","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.extrema_in","text":"true/false = extrema_in(v::Vector,a::Real,b::Real)\n\nFor every element vᵢ in v does a<=vi<=b hold?\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.get_nlons-Tuple{Type{<:SpeedyWeather.RingGrids.AbstractGrid}, Integer}","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.get_nlons","text":"get_nlons(\n Grid::Type{<:SpeedyWeather.RingGrids.AbstractGrid},\n nlat_half::Integer;\n both_hemispheres\n) -> Any\n\n\nReturns a vector nlons for the number of longitude points per latitude ring, north to south. Provide grid Grid and its resolution parameter nlat_half. For both_hemisphere==false only the northern hemisphere (incl Equator) is returned.\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.isdecreasing-Tuple{Vector}","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.isdecreasing","text":"true/false = isdecreasing(v::Vector)\n\nCheck whether elements of a vector v are strictly decreasing.\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.isincreasing-Tuple{Vector}","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.isincreasing","text":"true/false = isincreasing(v::Vector)\n\nCheck whether elements of a vector v are strictly increasing.\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.rotate_matrix_indices_180-Tuple{Integer, Integer, Integer}","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.rotate_matrix_indices_180","text":"i_new,j_new = rotate_matrix_indices_180(i,j,s)\n\nRotate indices i,j of a square matrix of size s x s by 180˚.\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.rotate_matrix_indices_270-Tuple{Integer, Integer, Integer}","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.rotate_matrix_indices_270","text":"i_new,j_new = rotate_matrix_indices_270(i,j,s)\n\nRotate indices i,j of a square matrix of size s x s anti-clockwise by 270˚.\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.rotate_matrix_indices_90-Tuple{Integer, Integer, Integer}","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.rotate_matrix_indices_90","text":"i_new,j_new = rotate_matrix_indices_90(i,j,s)\n\nRotate indices i,j of a square matrix of size s x s anti-clockwise by 90˚.\n\n\n\n\n\n","category":"method"},{"location":"ringgrids/#SpeedyWeather.RingGrids.whichring-Tuple{Integer, Vector{UnitRange{Int64}}}","page":"Submodule: RingGrids","title":"SpeedyWeather.RingGrids.whichring","text":"whichring(\n ij::Integer,\n rings::Vector{UnitRange{Int64}}\n) -> Int64\n\n\nObtain ring index j from gridpoint ij and Vector{UnitRange} describing rind indices as obtained from eachring(::Grid)\n\n\n\n\n\n","category":"method"},{"location":"#SpeedyWeather.jl-documentation","page":"Home","title":"SpeedyWeather.jl documentation","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Welcome to the documentation for SpeedyWeather.jl a global atmospheric circulation model with simple parametrizations to represent physical processes such as clouds, precipitation and radiation.","category":"page"},{"location":"#Overview","page":"Home","title":"Overview","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"SpeedyWeather.jl is a global spectral model that uses a spherical harmonic transform to simulate the general circulation of the atmosphere. The prognostic variables used are vorticity, divergence, temperature, surface pressure and specific humidity. Simple parameterizations represent various climate processes: Radiation, clouds, precipitation, surface fluxes, among others.","category":"page"},{"location":"","page":"Home","title":"Home","text":"SpeedyWeather.jl defines ","category":"page"},{"location":"","page":"Home","title":"Home","text":"BarotropicModel for the 2D barotropic vorticity equation\nShallowWaterModel for the 2D shallow water equations\nPrimitiveDryModel for the 3D primitive equations without humidity\nPrimitiveWetModel for the 3D primitive equations with humidity","category":"page"},{"location":"","page":"Home","title":"Home","text":"and solves these equations in spherical coordinates as described in this documentation.","category":"page"},{"location":"#Manual-outline","page":"Home","title":"Manual outline","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"See the following pages of the documentation for more details","category":"page"},{"location":"","page":"Home","title":"Home","text":"Installation\nHow to run SpeedyWeather.jl\nSpherical harmonic transform\nGrids\nBarotropic model\nShallow water model\nPrimitive equation model\nParameterizations\nExtending SpeedyWeather\nNetCDF output","category":"page"},{"location":"","page":"Home","title":"Home","text":"and the submodules","category":"page"},{"location":"","page":"Home","title":"Home","text":"RingGrids\nLowerTriangularMatrices \nSpeedyTransforms","category":"page"},{"location":"","page":"Home","title":"Home","text":"and the original documentation by Molteni and Kucharski.","category":"page"},{"location":"#Developers","page":"Home","title":"Developers","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"The development of SpeedyWeather.jl is lead by Milan Klöwer and current and past contributors include","category":"page"},{"location":"","page":"Home","title":"Home","text":"Tom Kimpson\nAlistair White\nMaximilian Gelbrecht\nDavid Meyer\nDaisuke Hotta\nNavid Constantinou","category":"page"},{"location":"","page":"Home","title":"Home","text":"Any contributions are always welcome!","category":"page"},{"location":"#Funding","page":"Home","title":"Funding","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"MK received funding by the European Research Council under Horizon 2020 within the ITHACA project, grant agreement number 741112 from 2021-2022. Since 2023 this project is also funded by the National Science Foundation NSF.","category":"page"},{"location":"time_integration/#Time-integration","page":"Time integration","title":"Time integration","text":"","category":"section"},{"location":"time_integration/","page":"Time integration","title":"Time integration","text":"SpeedyWeather.jl uses a leapfrog time scheme with a Robert's and Williams filter to dampen the computational mode and achieve 3rd order accuracy.","category":"page"},{"location":"time_integration/#Oscillation-equation","page":"Time integration","title":"Oscillation equation","text":"","category":"section"},{"location":"time_integration/","page":"Time integration","title":"Time integration","text":"fracdFdt = iomega F","category":"page"},{"location":"time_integration/#Implementation-details","page":"Time integration","title":"Implementation details","text":"","category":"section"}] +} diff --git a/previews/PR362/shallowwater/index.html b/previews/PR362/shallowwater/index.html new file mode 100644 index 000000000..8dc61fa94 --- /dev/null +++ b/previews/PR362/shallowwater/index.html @@ -0,0 +1,36 @@ + +Shallow water model · SpeedyWeather.jl

          Shallow water model

          The shallow water model describes the evolution of a 2D flow described by its velocity and an interface height that conceptually represents pressure. A divergent flow affects the interface height which in turn can impose a pressure gradient force onto the flow. The dynamics include advection, forces, dissipation, and continuity.

          The following description of the shallow water model largely follows the idealized models with spectral dynamics developed at the Geophysical Fluid Dynamics Laboratory[1]: The Shallow Water Equations[2].

          Shallow water equations

          The shallow water equations of velocity $\mathbf{u} = (u,v)$ and interface height $\eta$ (i.e. the deviation from the fluid's rest height $H$) are, formulated in terms of relative vorticity $\zeta = \nabla \times \mathbf{u}$, divergence $\mathcal{D} = \nabla \cdot \mathbf{u}$

          \[\begin{aligned} +\frac{\partial \zeta}{\partial t} + \nabla \cdot (\mathbf{u}(\zeta + f)) &= +\nabla \times \mathbf{F} + (-1)^{n+1}\nu\nabla^{2n}\zeta, \\ +\frac{\partial \mathcal{D}}{\partial t} - \nabla \times (\mathbf{u}(\zeta + f)) &= +\nabla \cdot \mathbf{F} -\nabla^2(\tfrac{1}{2}(u^2 + v^2) + g\eta) + (-1)^{n+1}\nu\nabla^{2n}\mathcal{D}, \\ +\frac{\partial \eta}{\partial t} + \nabla \cdot (\mathbf{u}h) &= F_\eta, +\end{aligned}\]

          We denote time$t$, Coriolis parameter $f$, a forcing vector $\mathbf{F} = (F_u,F_v)$, hyperdiffusion $(-1)^{n+1} \nu \nabla^{2n}$ ($n$ is the hyperdiffusion order, see Horizontal diffusion), gravitational acceleration $g$, dynamic layer thickness $h$, and a forcing for the interface height $F_\eta$. In the shallow water model the dynamics layer thickness $h$ is

          \[h = \eta + H - H_b\]

          that is, the layer thickness at rest $H$ plus the interface height $\eta$ minus orography $H_b$.

          In the shallow water system the flow can be described through $u,v$ or $\zeta,\mathcal{D}$ which are related through the stream function $\Psi$ and the velocity potential $\Phi$ (which is zero in the Barotropic vorticity equation).

          \[\begin{aligned} +\zeta &= \nabla^2 \Psi \\ +\mathcal{D} &= \nabla^2 \Phi \\ +\mathbf{u} &= \nabla^\perp \Psi + \nabla \Phi +\end{aligned}\]

          With $\nabla^\perp$ being the rotated gradient operator, in cartesian coordinates $x,y$: $\nabla^\perp = (-\partial_y, \partial_x)$. See Derivatives in spherical coordinates for further details. Especially because the inversion of the Laplacian and the gradients of $\Psi, \Phi$ can be computed in a single pass, see U,V from vorticity and divergence.

          The divergence/curl of the vorticity flux $\mathbf{u}(\zeta + f)$ are combined with the divergence/curl of the forcing vector $\mathbf{F}$, as

          \[\begin{aligned} +- \nabla \cdot (\mathbf{u}(\zeta + f)) + \nabla \times \mathbf{F} &= +\nabla \times (\mathbf{F} + \mathbf{u}_\perp(\zeta + f)) \\ +\nabla \times (\mathbf{u}(\zeta + f)) + \nabla \cdot \mathbf{F} &= +\nabla \cdot (\mathbf{F} + \mathbf{u}_\perp(\zeta + f)) +\end{aligned}\]

          equivalently to how this is done in the Barotropic vorticity equation with $\mathbf{u}_\perp = (v,-u)$.

          Algorithm

          0. Start with initial conditions of relative vorticity $\zeta_{lm}$, divergence $D_{lm}$, and interface height $\eta_{lm}$ in spectral space and transform this model state to grid-point space:

          • Invert the Laplacian of $\zeta_{lm}$ to obtain the stream function $\Psi_{lm}$ in spectral space
          • Invert the Laplacian of $D_{lm}$ to obtain the velocity potential $\Phi_{lm}$ in spectral space
          • obtain velocities $U_{lm} = (\cos(\theta)u)_{lm}, V_{lm} = (\cos(\theta)v)_{lm}$ from $\nabla^\perp\Psi_{lm} + \nabla\Phi_{lm}$
          • Transform velocities $U_{lm}$, $V_{lm}$ to grid-point space $U,V$
          • Unscale the $\cos(\theta)$ factor to obtain $u,v$
          • Transform $\zeta_{lm}$, $D_{lm}$, $\eta_{lm}$ to $\zeta, D, \eta$ in grid-point space

          Now loop over

          1. Compute the forcing vector $\mathbf{F} = (F_u,F_v)$ for $u$ and $v$
          2. Multiply $u,v$ with $\zeta+f$ in grid-point space
          3. Add $A = F_u + v(\zeta + f)$ and $B = F_v - u(\zeta + f)$
          4. Transform these vector components to spectral space $A_{lm}$, $B_{lm}$
          5. Compute the curl of $(A,B)_{lm}$ in spectral space which is the tendency of $\zeta_{lm}$
          6. Compute the divergence of $(A,B)_{lm}$ in spectral space which is the tendency of $\mathcal{D}_{lm}$
          7. Compute the kinetic energy $\frac{1}{2}(u^2 + v^2)$ and transform to spectral space
          8. Add to the kinetic energy the "geopotential" $g\eta_{lm}$ in spectral space to obtain the Bernoulli potential
          9. Take the Laplacian of the Bernoulli potential and subtract from the divergence tendency
          10. Compute the volume fluxes $uh,vh$ in grid-point space via $h = \eta + H - H_b$
          11. Transform to spectral space and take the divergence for $-\nabla \cdot (\mathbf{u}h)$ which is the tendency for $\eta$
          12. Add possibly forcing $F_\eta$ for $\eta$ in spectral space
          13. Correct the tendencies following the semi-implicit time integration to prevent fast gravity waves from causing numerical instabilities
          14. Compute the horizontal diffusion based on the $\zeta,\mathcal{D}$ tendencies
          15. Compute a leapfrog time step as described in Time integration with a Robert-Asselin and Williams filter
          16. Transform the new spectral state of $\zeta_{lm}$, $\mathcal{D}_{lm}$, $\eta_{lm}$ to grid-point $u,v,\zeta,\mathcal{D},\eta$ as described in 0.
          17. Possibly do some output
          18. Repeat from 1.

          Semi-implicit time integration

          Probably the biggest advantage of a spectral model is its ability to solve (parts of) the equations implicitly a low computational cost. The reason is that a linear operator can be easily inverted in spectral space, removing the necessity to solve large equation systems. An operation like $\Psi = \nabla^{-2}\zeta$ in grid-point space is costly because it requires a global communication, coupling all grid points. In spectral space $\nabla^2$ is a diagonal operator, meaning that there is no communication between harmonics and its inversion is therefore easily done on a mode-by-mode basis of the harmonics.

          This can be made use of when facing time stepping constraints with explicit schemes, where ridiculuously small time steps to resolve fast waves would otherwise result in a horribly slow simulation. In the shallow water system there are gravity waves that propagate at a wave speed of $\sqrt{gH}$ (typically 300m/s), which, in order to not violate the CFL criterion for explicit time stepping, would need to be resolved. Therefore, treating the terms that are responsible for gravity waves implicitly would remove that time stepping constraint and allows us to run the simulation at the time step needed to resolve the advective motion of the atmosphere, which is usually one or two orders of magnitude longer than gravity waves.

          In the following we will describe how the semi implicit time integration can be combined with the Leapfrog time stepping and the Robert-Asselin and Williams filter for a large increase in numerical stability with gravity waves. Let $V_i$ be the model state of all prognostic variables at time step $i$, the leapfrog time stepping is then

          \[\frac{V_{i+1} - V_{i-1}}{2\Delta t} = N(V_{i})\]

          with the right-hand side operator $N$ evaluated at the current time step $i$. Now the idea is to split the terms in $N$ into non-linear terms that are evaluated explicitly in $N_E$ and into the linear terms $N_I$, solved implicitly, that are responsible for the gravity waves. We could already assume to evaluate $N_I$ at $i+1$, but in fact, we can introduce $\alpha \in [0,1]$ so that for $\alpha=0$ we use $i-1$ (i.e. explicit), for $\alpha=1/2$ it is centred implicit $\tfrac{1}{2}N_I(V_{i-1}) + \tfrac{1}{2}N_I(V_{i+1})$, and for $\alpha=1$ a fully backwards scheme $N_I(V_{i+1})$ evaluated at $i+1$.

          \[\frac{V_{i+1} - V_{i-1}}{2\Delta t} = N_E(V_{i}) + \alpha N_I(V_{i+1}) + (1-\alpha)N_I(V_{i-1})\]

          Let $\delta V = \tfrac{V_{i+1} - V_{i-1}}{2\Delta t}$ be the tendency we need for the Leapfrog time stepping. Introducing $\xi = 2\alpha\Delta t$ we have

          \[\delta V = N_E(V_i) + N_I(V_{i-1}) + \xi N_I(\delta V)\]

          because $N_I$ is a linear operator. This is done so that we can solve for $\delta V$ by inverting $N_I$, but let us gather the other terms as $G$ first.

          \[G = N_E(V_i) + N_I(V_{i-1}) = N(V_i) + N_I(V_{i-1} - V_i)\]

          For the shallow water equations we will only make use of the last formulation, meaning we first evaluate the whole right-hand side $N(V_i)$ at the current time step as we would do with fully explicit time stepping but then add the implicit terms $N_I(V_{i-1} - V_i)$ afterwards to move those terms from $i$ to $i-1$. Note that we could also directly evaluate the implicit terms at $i-1$ as it is suggested in the previous formulation $N_E(V_i) + N_I(V_{i-1})$, the result would be the same. But in general it can be more efficient to do it one or the other way, and in fact it is also possible to combine both ways. This will be discussed in the semi-implicit time stepping for the primitive equations.

          We can now implicitly solve for $\delta V$ by

          \[\delta V = (1-\xi N_I)^{-1}G\]

          So what is $N_I$? In the shallow water system the gravity waves are caused by

          \[\begin{aligned} +\frac{\partial \mathcal{D}}{\partial t} &= -g\nabla^2\eta \\ +\frac{\partial \eta}{\partial t} &= -H\mathcal{D}, +\end{aligned}\]

          which is a linearization of the equations around a state of rest with uniform constant layer thickness $h = H$. The continuity equation with the $-\nabla(\mathbf{u}h)$ term, for example, is linearized to $-\nabla(\mathbf{u}H) = -H\mathcal{D}$. The divergence and continuity equations can now be written following the $\delta V = G + \xi N_I(\delta V)$ formulation from above as a coupled system (The vorticity equation is zero for the linear gravity wave equation in the shallow water equations, hence no semi-implicit correction has to be made to the vorticity tendency).

          \[\begin{aligned} +\delta \mathcal{D} &= G_\mathcal{D} - \xi g \nabla^2 \delta \eta \\ +\delta \eta &= G_\mathcal{\eta} - \xi H \delta\mathcal{D} +\end{aligned}\]

          with

          \[\begin{aligned} +G_\mathcal{D} &= N_\mathcal{D} - \xi g \nabla^2 (\eta_{i-1} - \eta_i) \\ +G_\mathcal{\eta} &= N_\eta - \xi H (\mathcal{D}_{i-1} - \mathcal{D}_i) +\end{aligned}\]

          Inserting the second equation into the first, we can first solve for $\delta \mathcal{D}$, and then for $\delta \eta$. Reminder that we do this in spectral space to every harmonic independently, so the Laplace operator $\nabla^2 = -l(l+1)$ takes the form of its eigenvalue $-l(l+1)$ (normalized to unit sphere, as are the scaled shallow water equations) and its inversion is therefore just the inversion of this scalar.

          \[\delta D = \frac{G_\mathcal{D} - \xi g\nabla^2 G_\eta}{1 - \xi^2 H \nabla^2} =: S^{-1}(G_\mathcal{D} - \xi g\nabla^2 G_\eta) \]

          Where the last formulation just makes it clear that $S = 1 - \xi^2 H \nabla^2$ is the operator to be inverted. $\delta \eta$ is then obtained via insertion as written above. Equivalently, by adding a superscript $l$ for every degree of the spherical harmonics, we have

          \[\delta \mathcal{D}^l = \frac{G_\mathcal{D}^l + \xi g l(l+1) G_\eta^l}{1 + \xi^2 H l(l+1)}\]

          The idea of the semi-implicit time stepping is now as follows:

          1. Evaluate the right-hand side explicitly at time step $i$ to obtain the explicit, preliminary tendencies $N_\mathcal{D},N_\eta$ (and $N_\zeta$ without a need for semi-implicit correction)
          2. Move the implicit terms from $i$ to $i-1$ when calculating $G_\mathcal{D}, G_\eta$
          3. Solve for $\delta \mathcal{D}$, the new, corrected tendency for divergence.
          4. With $\delta \mathcal{D}$ obtain $\delta \eta$, the new, corrected tendency for $\eta$.
          5. Apply horizontal diffusion as a correction to $N_\zeta, \delta \mathcal{D}$ as outlined in Horizontal diffusion.
          6. Leapfrog with tendencies that have been corrected for both semi-implicit and diffusion.

          Some notes on the semi-implicit time stepping

          • The inversion of the semi-implicit time stepping depends on $\delta t$, that means every time the time step changes, the inversion has to be recalculated.
          • You may choose $\alpha = 1/2$ to dampen gravity waves but initialisation shocks still usually kick off many gravity waves that propagate around the sphere for many days.
          • With increasing $\alpha > 1/2$ these waves are also slowed down, such that for $\alpha = 1$ they quickly disappear in several hours.
          • Using the scaled shallow water equations the time step $\delta t$ has to be the scaled time step $\tilde{\Delta t} = \delta t/R$ which is divided by the radius $R$. Then we use the normalized eigenvalues $-l(l+1)$ which also omit the $1/R^2$ scaling, see scaled shallow water equations for more details.

          Scaled shallow water equations

          Similar to the scaled barotropic vorticity equations, SpeedyWeather.jl scales in the shallow water equations. The vorticity and the divergence equation are scaled with $R^2$, the radius of the sphere squared, but the continuity equation is scaled with $R$. We also combine the vorticity flux and forcing into a single divergence/curl operation as mentioned in Shallow water equations above

          \[\begin{aligned} +\frac{\partial \tilde{\zeta}}{\partial \tilde{t}} &= +\tilde{\nabla} \times (\tilde{\mathbf{F}} + \mathbf{u}_\perp(\tilde{\zeta} + \tilde{f})) + +(-1)^{n+1}\tilde{\nu}\tilde{\nabla}^{2n}\tilde{\zeta} \\ +\frac{\partial \tilde{\mathcal{D}}}{\partial \tilde{t}} &= +\tilde{\nabla} \cdot (\tilde{\mathbf{F}} + \mathbf{u}_\perp(\tilde{\zeta} + \tilde{f})) - +\tilde{\nabla}^2\left(\tfrac{1}{2}(u^2 + v^2) + g\eta \right) + +(-1)^{n+1}\tilde{\nu}\tilde{\nabla}^{2n}\tilde{\mathcal{D}} \\ +\frac{\partial \eta}{\partial \tilde{t}} &= +- \tilde{\nabla} \cdot (\mathbf{u}h) + \tilde{F}_\eta. +\end{aligned}\]

          As in the scaled barotropic vorticity equations, one needs to scale the time step, the Coriolis force, the forcing and the diffusion coefficient, but then enjoys the luxury of working with dimensionless gradient operators. As before, SpeedyWeather.jl will scale vorticity and divergence just before the model integration starts and unscale them upon completion and for output. In the semi-implicit time integration we solve an equation that also has to be scaled. It is with radius squared scaling (because it is the tendency for the divergence equation which is also scaled with $R^2$)

          \[R^2 \delta D = R^2\frac{G_\mathcal{D} - \xi g\nabla^2 G_\eta}{1 - \xi^2 H \nabla^2}\]

          As $G_\eta$ is only scaled with $R$ we have

          \[\tilde{\delta D} = \frac{\tilde{G_\mathcal{D}} - \tilde{\xi} g\tilde{\nabla}^2 \tilde{G_\eta}}{1 - \tilde{\xi}^2 H \tilde{\nabla}^2}\]

          The $R^2$ normalizes the Laplace operator in the numerator, but using the scaled $G_\eta$ we also scale $\xi$ (which is convenient, because the time step within is the one we use anyway). The denominator $S$ does not actually change because $\xi^2\nabla^2 = \tilde{\xi}^2\tilde{\nabla}^2$ as $\xi^2$ is scaled with $1/R^2$, but the Laplace operator with $R^2$. So overall we just have to use the scaled time step $\tilde{\Delta t}$ and normalized eigenvalues for $\tilde{\nabla}^2$.

          References

          diff --git a/previews/PR362/siteinfo.js b/previews/PR362/siteinfo.js new file mode 100644 index 000000000..784b3027e --- /dev/null +++ b/previews/PR362/siteinfo.js @@ -0,0 +1 @@ +var DOCUMENTER_CURRENT_VERSION = "previews/PR362"; diff --git a/previews/PR362/spectral_transform/index.html b/previews/PR362/spectral_transform/index.html new file mode 100644 index 000000000..5947e3514 --- /dev/null +++ b/previews/PR362/spectral_transform/index.html @@ -0,0 +1,32 @@ + +Spherical harmonic transform · SpeedyWeather.jl

          Spherical Harmonic Transform

          The following sections outline the implementation of the spherical harmonic transform (in short spectral transform) between the coefficients of the spherical harmonics (the spectral space) and the grid space which can be any of the Implemented grids as defined by RingGrids. This includes the classical full Gaussian grid, a regular longitude-latitude grid called the full Clenshaw grid (FullClenshawGrid), ECMWF's octahedral Gaussian grid[Malardel2016], and HEALPix grids[Gorski2004]. SpeedyWeather.jl's spectral transform module SpeedyTransforms is grid-flexible and can be used with any of these, see Grids.

          SpeedyTransforms is a module too!

          SpeedyTransform is the underlying module that SpeedyWeather imports to transform between spectral and grid-point space, which also implements Derivatives in spherical coordinates. You can use this module independently of SpeedyWeather for spectral transforms, see SpeedyTransforms.

          Inspiration

          The spectral transform implemented by SpeedyWeather.jl follows largely Justin Willmert's CMB.jl and SphericalHarmonicTransforms.jl package and makes use of AssociatedLegendrePolynomials.jl and FFTW.jl for the Fourier transform. Justin described his work in a Blog series [Willmert2020].

          Spherical harmonics

          The spherical harmonics $Y_{lm}$ of degree $l$ and order $m$ over the longitude $\phi = (0,2\pi)$ and colatitudes $\theta = (-\pi/2,\pi/2)$, are

          \[Y_{lm}(\phi, \theta) = \lambda_l^m(\sin\theta) e^{im\phi}\]

          with $\lambda_l^m$ being the pre-normalized associated Legendre polynomials, and $e^{im\phi}$ are the complex exponentials (the Fourier modes). Together they form a set of orthogonal basis functions on the sphere. For an interactive visualisation of the spherical harmonics, see here.

          Latitudes versus colatitudes

          The implementation of the spectral transforms in SpeedyWeather.jl uses colatitudes $\theta = (0,\pi)$ (0 at the north pole) but the dynamical core uses latitudes $\theta = (-\pi/2,\pi/2)$ ($\pi/2$ at the north pole). Note: We may also use latitudes in the spherical harmonic transform in the future for consistency.

          Synthesis (spectral to grid)

          The synthesis (or inverse transform) takes the spectral coefficients $a_{lm}$ and transforms them to grid-point values $f(\phi,\theta)$ (for the sake of simplicity first regarded as continuous). The synthesis is a linear combination of the spherical harmonics $Y_{lm}$ with non-zero coefficients.

          \[f(\phi,\theta) = \sum_{l=0}^{\infty} \sum_{m=-l}^l a_{lm} Y_{lm}(\phi,\theta)\]

          We obtain an approximation with a finite set of $a_{l,m}$ by truncating the series in both degree $l$ and order $m$ somehow. Most commonly, a triangular truncation is applied, such that all degrees after $l = l_{max}$ are discarded. Triangular because the retained array of the coefficients $a_{l,m}$ looks like a triangle. Other truncations like rhomboidal have been studied[Daley78] but are rarely used since. Choosing $l_{max}$ also constrains $m_{max}$ and determines the (horizontal) spectral resolution. In SpeedyWeather.jl this resolution as chosen as trunc when creating the SpectralGrid.

          For $f$ being a real-valued there is a symmetry

          \[a_{l,-m} = (-1)^m a^*_{l,+m},\]

          meaning that the coefficients at $-m$ and $m$ are the same, but the sign of the real and imaginary component can be flipped, as denoted with the $(-1)^m$ and the complex conjugate $a_{l,m}^*$. As we are only dealing with real-valued fields anyway, we therefore never have to store the negative orders $-m$ and end up with a lower triangular matrix of size $(l_{max}+1) \times (m_{max}+1)$ or technically $(T+1)^2$ where $T$ is the truncation trunc. One is added here because the degree $l$ and order $m$ use 0-based indexing but sizes (and so is Julia's indexing) are 1-based.

          For correctness we want to mention here that vector quantities require one more degree $l$ due to the recurrence relation in the Meridional derivative. Hence for practical reasons all spectral fields are represented as a lower triangular matrix of size $(m_{max} + 2) \times (m_{max} +1)$. And the scalar quantities would just not make use of that last degree, and its entries would be simply zero. We will, however, for the following sections ignore this and only discuss it again in Meridional derivative.

          Another consequence of the symmetry mentioned above is that the zonal harmonics, meaning $a_{l,m=0}$ have no imaginary component. Because these harmonics are zonally constant, a non-zero imaginary component would rotate them around the Earth's axis, which, well, doesn't actually change a real-valued field.

          Following the notation of [Willmert2020] we can therefore write the truncated synthesis as

          \[f(\phi,\theta) = \sum_{l=0}^{l_{max}} \sum_{m=0}^l (2-\delta_{m0}) a_{lm} Y_{lm}(\phi,\theta)\]

          The $(2-\delta_{m0})$ factor using the Kronecker $\delta$ is used here because of the symmetry we have to count both the $m,-m$ order pairs (hence the $2$) except for the zonal harmonics which do not have a pair.

          Another symmetry arises from the fact that the spherical harmonics are either symmetric or anti-symmetric around the Equator. There is an even/odd combination of degrees and orders so that the sign flips like a checkerboard

          \[Y_{l,m}(\phi,\pi-\theta) = (-1)^{l+m}Y_{lm}(\phi,\phi)\]

          This means that one only has to compute the Legendre polynomials for one hemisphere and the other one follows with this equality.

          Analysis (grid to spectral)

          Starting in grid-point space we can transform a field $f(\lambda,\theta)$ into the spectral space of the spherical harmonics by

          \[a_{l,m} = \int_0^{2\pi} \int_{0}^\pi f(\phi,\theta) Y_{l,m}(\phi,\theta) \sin \theta d\theta d\phi\]

          Note that this notation again uses colatitudes $\theta$, for latitudes the $\sin\theta$ becomes a $\cos\theta$ and the bounds have to be changed accordingly to $(-\frac{\pi}{2},\frac{\pi}{2})$. A discretization with $N$ grid points at location $(\phi_i,\theta_i)$, indexed by $i$ can be written as [Willmert2020]

          \[\hat{a}_{l,m} = \sum_i f(\phi_i,\theta_i) Y_{l,m}(\phi_i,\theta_i) \sin \theta_i \Delta\theta \Delta\phi\]

          The hat on $a$ just means that it is an approximation, or an estimate of the true $a_{lm} \approx \hat{a}_{lm}$. We can essentially make use of the same symmetries as already discussed in Synthesis. Splitting into the Fourier modes $e^{im\phi}$ and the Legendre polynomials $\lambda_l^m(\cos\theta)$ (which are defined over $[-1,1]$ so the $\cos\theta$ argument maps them to colatitudes) we have

          \[\hat{a}_{l,m} = \sum_j \left[ \sum_i f(\phi_i,\theta_j) e^{-im\phi_i} \right] \lambda_{l,m}(\theta_j) \sin \theta_j \Delta\theta \Delta\phi\]

          So the term in brackets can be separated out as long as the latitude $\theta_j$ is constant, which motivates us to restrict the spectral transform to grids with iso-latitude rings, see Grids. Furthermore, this term can be written as a fast Fourier transform, if the $\phi_i$ are equally spaced on the latitude ring $j$. Note that the in-ring index $i$ can depend on the ring index $j$, so that one can have reduced grids, which have fewer grid points towards the poles, for example. Also the Legendre polynomials only have to be computed for the colatitudes $\theta_j$ (and in fact only one hemisphere, due to the north-south symmetry discussed in the Synthesis). It is therefore practical and efficient to design a spectral transform implementation for ring grids, but there is no need to hardcode a specific grid.

          Spectral packing

          Spectral packing is the way how the coefficients $a_{lm}$ of the spherical harmonics of a given spectral field are stored in an array. SpeedyWeather.jl uses the conventional spectral packing of degree $l$ and order $m$ as illustrated in the following image (Cyp, CC BY-SA 3.0, via Wikimedia Commons)

          Every row represents an order $l \geq 0$, starting from $l=0$ at the top. Every column represents an order $m \geq 0$, starting from $m=0$ on the left. The coefficients of these spherical harmonics are directly mapped into a matrix $a_{lm}$ as

          $m$
          $l$$a_{00}$
          $a_{10}$$a_{11}$
          $a_{20}$$a_{12}$$a_{22}$
          $a_{30}$$a_{13}$$a_{23}$$a_{33}$

          which is consistently extended for higher degrees and orders. Consequently, all spectral fields are lower-triangular matrices with complex entries. The upper triangle excluding the diagonal are zero. Note that internally vector fields include an additional degree, such that $l_{max} = m_{max} + 1$ (see Derivatives in spherical coordinates for more information). The harmonics with $a_{l0}$ (the first column) are also called zonal harmonics as they are constant with longitude $\phi$. The harmonics with $a_{ll}$ (the main diagonal) are also called sectoral harmonics as they essentially split the sphere into $2l$ sectors in longitude $\phi$ without a zero-crossing in latitude.

          For correctness it is mentioned here that SpeedyWeather.jl uses a LowerTriangularMatrix type to store the spherical harmonic coefficients. By doing so, the upper triangle is actually not explicitly stored and the data technically unravelled into a vector, but this is hidden as much as possible from the user. For more details see LowerTriangularMatrices.

          Array indices

          For a spectral field a note that due to Julia's 1-based indexing the coefficient $a_{lm}$ is obtained via a[l+1,m+1]. Alternatively, we may index over 1-based l,m but a comment is usually added for clarification.

          Fortran SPEEDY does not use the same spectral packing as SpeedyWeather.jl. The alternative packing $l',m'$ therein uses $l'=m$ and $m'=l-m$ as summarized in the following table.

          degree $l$order $m$$l'=m$$m'=l-m$
          0000
          1001
          1110
          2002
          2111
          2220
          3003
          ............

          This alternative packing uses the top-left triangle of a coefficient matrix, and the degrees and orders from above are stored at the following indices

          $m'$
          $l'$$a_{00}$$a_{10}$$a_{20}$$a_{30}$
          $a_{11}$$a_{21}$$a_{31}$
          $a_{22}$$a_{32}$
          $a_{33}$

          This spectral packing is not used in SpeedyWeather.jl but illustrated here for completeness and comparison with Fortran SPEEDY.

          SpeedyWeather.jl uses triangular truncation such that only spherical harmonics with $l \leq l_{max}$ and $|m| \leq m_{max}$ are explicitly represented. This is usually described as $Tm_{max}$, with $l_{max} = m_{max}$ (although in vector quantities require one more degree $l$ in the recursion relation of meridional gradients). For example, T31 is the spectral resolution with $l_{max} = m_{max} = 31$. Note that the degree $l$ and order $m$ are mathematically 0-based, such that the corresponding coefficient matrix is of size 32x32.

          Available horizontal resolutions

          Technically, SpeedyWeather.jl supports arbitrarily chosen resolution parameter trunc when creating the SpectralGrid that refers to the highest non-zero degree $l_{max}$ that is resolved in spectral space. SpeedyWeather.jl will always try to choose an easily-Fourier transformable[FFT] size of the grid, but as we use FFTW.jl there is quite some flexibility without performance sacrifice. However, this has traditionally lead to typical resolutions that we also use for testing we therefore recommend to use. They are as follows with more details below

          truncnlonnlat$\Delta x$
          31 (default)9648400 km
          4212864312 km
          6319296216 km
          85256128165 km
          127384192112 km
          17051225685 km
          25576838458 km
          341102451243 km
          511153676829 km
          6822048102422 km
          10243072153614 km
          13654092204811 km

          Some remarks on this table

          • This assumes the default quadratic truncation, you can always adapt the grid resolution via the dealiasing option, see Matching spectral and grid resolution
          • nlat refers to the total number of latitude rings, see Grids. With non-Gaussian grids, nlat will be one one less, e.g. 47 instead of 48 rings.
          • nlon is the number of longitude points on the Full Gaussian Grid, for other grids there will be at most these number of points around the Equator.
          • $\Delta x$ is the horizontal resolution. For a spectral model there are many ways of estimating this[9]. We use here the square root of the average area a grid cell covers, see Effective grid resolution

          Effective grid resolution

          There are many ways to estimate the effective grid resolution of spectral models[9]. Some of them are based on the wavelength a given spectral resolution allows to represent, others on the total number of real variables per area. However, as many atmospheric models do represent a considerable amount of physics on the grid (see Parameterizations) there is also a good argument to include the actual grid resolution into this estimate and not just the spectral resolution. We therefore use the average grid cell area to estimate the resolution

          \[\Delta x = \sqrt{\frac{4\pi R^2}{N}}\]

          with $N$ number of grid points over a sphere with radius $R$. However, we have to acknowledge that this usually gives higher resolution compared to other methods of estimating the effective resolution, see [Randall2021] for a discussion. You may therefore need to be careful to make claims that, e.g. trunc=85 can resolve the atmospheric dynamics at a scale of 165km.

          Derivatives in spherical coordinates

          Horizontal gradients in spherical coordinates are defined for a scalar field $A$ and the latitudes $\theta$ and longitudes $\lambda$ as

          \[\nabla A = \left(\frac{1}{R\cos\theta}\frac{\partial A}{\partial \lambda}, \frac{1}{R}\frac{\partial A}{\partial \theta} \right).\]

          However, the divergence of a vector field $\mathbf{u} = (u,v)$ includes additional $\cos(\theta)$ scalings

          \[\nabla \cdot \mathbf{u} = \frac{1}{R\cos\theta}\frac{\partial u}{\partial \lambda} + +\frac{1}{R\cos\theta}\frac{\partial (v \cos\theta)}{\partial \theta},\]

          and similar for the curl

          \[\nabla \times \mathbf{u} = \frac{1}{R\cos\theta}\frac{\partial v}{\partial \lambda} - +\frac{1}{R\cos\theta}\frac{\partial (u \cos\theta)}{\partial \theta}.\]

          The radius of the sphere (i.e. Earth) is $R$. The zonal gradient scales with $1/\cos(\theta)$ as the longitudes converge towards the poles (note that $\theta$ describes latitudes here, definitions using colatitudes replace the $\cos$ with a $\sin$.)

          Starting with a spectral field of vorticity $\zeta$ and divergence $\mathcal{D}$ one can obtain stream function $\Psi$ and velocity potential $\Phi$ by inverting the Laplace operator $\nabla^2$:

          \[\Psi = \nabla^{-2}\zeta, \quad \Phi = \nabla^{-2}\mathcal{D}.\]

          The velocities $u,v$ are then obtained from $(u,v) = \nabla^\bot\Psi + \nabla\Phi$ following the definition from above and $\nabla^\bot = (-R^{-1}\partial_\theta, (R\cos\theta)^{-1}\partial_\lambda)$

          \[\begin{aligned} +u &= -\frac{1}{R}\partial_\theta\Psi + \frac{1}{R\cos\theta}\partial_\lambda\Phi \\ +v &= +\frac{1}{R}\partial_\theta\Phi + \frac{1}{R\cos\theta}\partial_\lambda\Psi. +\end{aligned}\]

          Alternatively, we can use the velocities $U = u\cos\theta, V = v\cos\theta$, which we do as the meridional gradient for spherical harmonics is easier implemented with a $\cos\theta$-scaling included, and because the divergence and curl in spherical coordinates evaluates the meridional gradient with $U,V$ and not $u,v$. From $u,v$ we can return to $\zeta, \mathcal{D}$ via

          \[\begin{aligned} +\zeta &= \frac{1}{R\cos\theta}\partial_\lambda v - \frac{1}{R\cos\theta}\partial_\theta (u \cos\theta) \\ +\mathcal{D} &= \frac{1}{R\cos\theta}\partial_\lambda u + \frac{1}{R\cos\theta}\partial_\theta (v \cos\theta). +\end{aligned}\]

          Equivalently, we have

          \[\begin{aligned} +U &= -\frac{\cos\theta}{R}\partial_\theta\Psi + \frac{1}{R}\partial_\lambda\Phi \\ +V &= +\frac{\cos\theta}{R}\partial_\theta\Phi + \frac{1}{R}\partial_\lambda\Psi \\ +\zeta &= \frac{1}{R}\partial_\lambda \left( \frac{V}{\cos^2\theta} \right) - +\frac{\cos\theta}{R}\partial_\theta \left( \frac{U}{\cos^2\theta} \right) \\ +\mathcal{D} &= \frac{1}{R}\partial_\lambda \left( \frac{U}{\cos^2\theta} \right) + +\frac{\cos\theta}{R}\partial_\theta \left( \frac{V}{\cos^2\theta} \right). +\end{aligned}\]

          which is a more convenient formulation because of the way how the Meridional derivative is implemented with a recursion relation, actually computing $\cos\theta \partial_\theta$ rather than $\partial_\theta$ directly. The remaining cosine scalings in $(U,V)*\cos^{-2}\theta$ are done in grid-point space. If one wanted to get back to $\zeta, \mathcal{D}$ this is how it would be done, but it is often more convenient to unscale $U,V$ on the fly in the spectral transform to obtain $u,v$ and then divide again by $\cos\theta$ when any gradient (or divergence or curl) is taken. This is because other terms would need that single $\cos\theta$ unscaling too before a gradient is taken. How the operators $\nabla, \nabla \times, \nabla \cdot$ can be implemented with spherical harmonics is presented in the following sections.

          Also note that SpeedyWeather.jl scales the equations with the radius R (see Radius scaling) such that the divisions by R drop out in this last formulation too.

          Zonal derivative

          The zonal derivative of a scalar field $\Psi$ in spectral space is the zonal derivative of all its respective spherical harmonics $\Psi_{lm}(\phi,\theta)$ (now we use $\phi$ for longitudes to avoid confusion with the Legendre polynomials $\lambda_{lm}$)

          \[v_{lm} = \frac{1}{R \cos(\theta)} \frac{\partial}{\partial \phi} \left( \lambda_l^m(\cos\theta) e^{im\phi} \right) = +\frac{im}{R \cos(\theta)} \lambda_l^m(\cos\theta) e^{im\phi} = \frac{im}{R \cos(\theta)} \Psi_{lm}\]

          So for every spectral harmonic, $\cos(\theta)v_{lm}$ is obtained from $\Psi_{lm}$ via a multiplication with $im/R$. Unscaling the $\cos(\theta)$-factor is done after transforming the spectral coefficients $v_{lm}$ into grid-point space. As discussed in Radius scaling, SpeedyWeather.jl scales the stream function as $\tilde{\Psi} = R^{-1}\Psi$ such that the division by radius $R$ in the gradients can be omitted. The zonal derivative becomes therefore effectively for each spherical harmonic a scaling with its (imaginary) order $im$. The spherical harmonics are essentially just a Fourier transform in zonal direction and the derivative a multiplication with the respective wave number $m$ times imaginary $i$.

          Meridional derivative

          The meridional derivative of the spherical harmonics is a derivative of the Legendre polynomials for which the following recursion relation applies[10],[11]

          \[\cos\theta \frac{dP_{l,m}}{d\theta} = -l\epsilon_{l+1,m}P_{l+1,m} + (l+1)\epsilon_{l,m}P_{l-1,m}.\]

          with recursion factors

          \[\epsilon_{l,m} = \sqrt{\frac{l^2-m^2}{4l^2-1}}\]

          In the following we use the example of obtaining the zonal velocity $u$ from the stream function $\Psi$, which is through the negative meridional gradient. For the meridional derivative itself the leading minus sign has to be omitted. Starting with the spectral expansion

          \[\Psi(\lambda,\theta) = \sum_{l,m}\Psi_{l,m}P_{l,m}(\sin\theta)e^{im\lambda}\]

          we multiply with $-R^{-1}\cos\theta\partial_\theta$ to obtain

          \[\cos\theta\left(-\frac{1}{R}\partial_\theta\Psi \right) = -\frac{1}{R}\sum_{l,m}\Psi_{l,m}e^{im\lambda}\cos\theta\partial_\theta P_{l,m}\]

          at which point the recursion from above can be applied. Collecting terms proportional to $P_{l,m}$ then yields

          \[(\cos(\theta)u)_{l,m} = -\frac{1}{R}(-(l-1)\epsilon_{l,m}\Psi_{l-1,m} + (l+2)\epsilon_{l+1,m}\Psi_{l+1,m})\]

          To obtain the coefficient of each spherical harmonic $l,m$ of the meridional gradient of a spectral field, two coefficients at $l-1,m$ and $l+1,m$ have to be combined. This means that the coefficient of a gradient $((\cos\theta) u)_{lm}$ is a linear combination of the coefficients of one higher and one lower degree $\Psi_{l+1,m},\Psi_{l-1,m}$. As the coefficient $\Psi_{lm}$ with $m<l$ are zero, the sectoral harmonics ($l=m$) of the gradients are obtained from the first off-diagonal only. However, the $l=l_{max}$ harmonics of the gradients require the $l_{max}-1$ as well as the $l_{max}+1$ harmonics. As a consequence vector quantities like velocity components $u,v$ require one more degree $l$ than scalar quantities like vorticity[Bourke72]. However, for easier compatibility all spectral fields in SpeedyWeather.jl use one more degree $l$, but scalar quantities should not make use of it. Equivalently, the last degree $l$ is set to zero before the time integration, which only advances scalar quantities.

          In SpeedyWeather.jl vector quantities like $u,v$ use therefore one more meridional mode than scalar quantities such as vorticity $\zeta$ or stream function $\Psi$. The meridional derivative in SpeedyWeather.jl also omits the $1/R$-scaling as explained for the Zonal derivative and in Radius scaling.

          Divergence and curl in spherical harmonics

          The meridional gradient as described above can be applied to scalars, such as $\Psi$ and $\Phi$ in the conversion to velocities $(u,v) = \nabla^\bot\Psi + \nabla\Phi$, however, the operators curl $\nabla \times$ and divergence $\nabla \cdot$ in spherical coordinates involve a $\cos\theta$ scaling before the meridional gradient is applied. How to translate this to spectral coefficients has to be derived separately[10],[11].

          The spectral transform of vorticity $\zeta$ is

          \[\zeta_{l,m} = \frac{1}{2\pi}\int_{-\tfrac{\pi}{2}}^\tfrac{\pi}{2}\int_0^{2\pi} \zeta(\lambda,\theta) +P_{l,m}(\sin\theta) e^{im\lambda} d\lambda \cos\theta d\theta\]

          Given that $R\zeta = \cos^{-1}\partial_\lambda v - \cos^{-1}\partial_\theta (u \cos\theta)$, we therefore have to evaluate a meridional integral of the form

          \[\int P_{l,m} \frac{1}{\cos \theta} \partial_\theta(u \cos\theta)) \cos \theta d\theta\]

          which can be solved through integration by parts. As $u\cos\theta = 0$ at $\theta = \pm \tfrac{\pi}{2}$ only the integral

          \[= -\int \partial_\theta P_{l,m} (u \cos\theta) d\theta = -\int \cos\theta \partial_\theta P_{l,m} +(\frac{u}{\cos\theta}) \cos\theta d\theta\]

          remains. Inserting the recurrence relation from the Meridional derivative turns this into

          \[= -\int \left(-l \epsilon_{l+1,m}P_{l+1,m} + (l+1)\epsilon_{l,m} P_{l-1,m} \right) (\frac{u}{\cos\theta}) +\cos \theta d\theta\]

          Now we expand $(\tfrac{u}{\cos\theta})$ but only the $l,m$ harmonic will project onto$P_{l,m}$. Let $u^* = u\cos^{-1}\theta, v^* = v\cos^{-1}\theta$ we then have in total

          \[\begin{aligned} +R\zeta_{l,m} &= imv^*_{l,m} + (l+1)\epsilon_{l,m}u^*_{l-1,m} - l\epsilon_{l+1,m}u^*_{l+1,m} \\ +RD_{l,m} &= imu^*_{l,m} - (l+1)\epsilon_{l,m}v^*_{l-1,m} + l\epsilon_{l+1,m}v^*_{l+1,m} \\ +\end{aligned}\]

          And the divergence $D$ is similar, but $(u,v) \to (-v,u)$. We have moved the scaling with the radius $R$ directly into $\zeta,D$ as further described in Radius scaling.

          Laplacian

          The spectral Laplacian is easily applied to the coefficients $\Psi_{lm}$ of a spectral field as the spherical harmonics are eigenfunctions of the Laplace operator $\nabla^2$ in spherical coordinates with eigenvalues $-l(l+1)$ divided by the radius squared $R^2$, i.e. $\nabla^2 \Psi$ becomes $\tfrac{-l(l+1)}{R^2}\Psi_{lm}$ in spectral space. For example, vorticity $\zeta$ and streamfunction $\Psi$ are related by $\zeta = \nabla^2\Psi$ in the barotropic vorticity model. Hence, in spectral space this is equivalent for every spectral mode of degree $l$ and order $m$ to

          \[\zeta_{l,m} = \frac{-l(l+1)}{R^2}\Psi_{l,m}\]

          This can be easily inverted to obtain the stream function $\Psi$ from vorticity $\zeta$ instead. In order to avoid division by zero, we set $\Psi_{0,0}$ here, given that the stream function is only defined up to a constant anyway.

          \[\begin{aligned} +\Psi_{l,m} &= \frac{R^2}{-l(l+1)}\zeta_{l,m} \quad \forall~l,m > 0,\\ +\Psi_{0,0} &= 0. +\end{aligned}\]

          See also Horizontal diffusion and Normalization of diffusion.

          U,V from vorticity and divergence

          After having discussed the zonal and meridional derivatives with spherical harmonics as well as the Laplace operator, we can derive the conversion from vorticity $\zeta$ and divergence $D$ (which are prognostic variables) to $U=u\cos\theta, V=v\cos\theta$. Both are linear operations that act either solely on a given harmonic (the zonal gradient and the Laplace operator) or are linear combinations between one lower and one higher degree $l$ (the meridional gradient). It is therefore computationally more efficient to compute $U,V$ directly from $\zeta,D$ instead of calculating stream function and velocity potential first. In total we have

          \[\begin{aligned} +U_{l,m} &= -\frac{im}{l(l+1)}(RD)_{l,m} + \frac{\epsilon_{l+1,m}}{l+1}(R\zeta)_{l+1,m} - +\frac{\epsilon_{l,m}}{l}(R\zeta)_{l-1,m} \\ +V_{l,m} &= -\frac{im}{l(l+1)}(R\zeta)_{l,m} - \frac{\epsilon_{l+1,m}}{l+1}(RD)_{l+1,m} + +\frac{\epsilon_{l,m}}{l}(RD)_{l-1,m} \\ +\end{aligned}\]

          We have moved the scaling with the radius $R$ directly into $\zeta,D$ as further described in Radius scaling.

          References

          diff --git a/previews/PR362/speedytransforms/index.html b/previews/PR362/speedytransforms/index.html new file mode 100644 index 000000000..2a22a4b3b --- /dev/null +++ b/previews/PR362/speedytransforms/index.html @@ -0,0 +1,85 @@ + +Submodule: SpeedyTransforms · SpeedyWeather.jl

          SpeedyTransforms

          SpeedyTransforms is a submodule that has been developed for SpeedyWeather.jl which is technically independent (SpeedyWeather.jl however imports it) and can also be used without running simulations. It is just not put into its own respective repository.

          Example transforms

          julia> using SpeedyWeather
          +julia> alms = zeros(ComplexF64,3,3)    # spectral coefficients
          +julia> alms[2,2] = 1                   # only l=1,m=1 harmonic
          +julia> map = gridded(alms)             # convert to grid space
          +8×4 Matrix{Float64}:
          + -0.324541  -0.600363  -0.600363  -0.324541
          + -0.134429  -0.248678  -0.248678  -0.134429
          +  0.134429   0.248678   0.248678   0.134429
          +  0.324541   0.600363   0.600363   0.324541
          +  0.324541   0.600363   0.600363   0.324541
          +  0.134429   0.248678   0.248678   0.134429
          + -0.134429  -0.248678  -0.248678  -0.134429
          + -0.324541  -0.600363  -0.600363  -0.324541
          + 
          +julia> spectral(map)                   # back to spectral space
          +3×3 Matrix{ComplexF64}:
          + 0.0+0.0im  0.0+0.0im          0.0+0.0im
          + 0.0+0.0im  1.0+3.60727e-17im  0.0+0.0im
          + 0.0+0.0im  0.0+0.0im          0.0+0.0im

          and we have successfully reobtained the $l=m=1$ spherical harmonic.

          Functions and type index

          SpeedyWeather.SpeedyTransforms.SpectralTransformMethod
          S = SpectralTransform(  alms::AbstractMatrix{Complex{NF}};
          +                        recompute_legendre::Bool=true,
          +                        Grid::Type{<:AbstractGrid}=DEFAULT_GRID)

          Generator function for a SpectralTransform struct based on the size of the spectral coefficients alms and the grid Grid. Recomputes the Legendre polynomials by default.

          source
          SpeedyWeather.SpeedyTransforms.SpectralTransformMethod
          SpectralTransform(
          +    ::Type{NF},
          +    Grid::Type{<:SpeedyWeather.RingGrids.AbstractGrid},
          +    lmax::Int64,
          +    mmax::Int64;
          +    recompute_legendre,
          +    legendre_shortcut,
          +    dealiasing
          +) -> SpectralTransform
          +

          Generator function for a SpectralTransform struct. With NF the number format, Grid the grid type <:AbstractGrid and spectral truncation lmax,mmax this function sets up necessary constants for the spetral transform. Also plans the Fourier transforms, retrieves the colatitudes, and preallocates the Legendre polynomials (if recompute_legendre == false) and quadrature weights.

          source
          SpeedyWeather.SpeedyTransforms.SpectralTransformMethod
          S = SpectralTransform(  map::AbstractGrid;
          +                        recompute_legendre::Bool=true)

          Generator function for a SpectralTransform struct based on the size and grid type of gridded field map. Recomputes the Legendre polynomials by default.

          source
          SpeedyWeather.SpeedyTransforms.UV_from_vor!Method
          UV_from_vor!(   U::LowerTriangularMatrix,
          +                V::LowerTriangularMatrix,
          +                vor::LowerTriangularMatrix,
          +                S::SpectralTransform)

          Get U,V (=(u,v)*coslat) from vorticity ζ spectral space (divergence D=0) Two operations are combined into a single linear operation. First, invert the spherical Laplace ∇² operator to get stream function from vorticity. Then compute zonal and meridional gradients to get U,V.

          source
          SpeedyWeather.SpeedyTransforms.UV_from_vordiv!Method
          UV_from_vordiv!(U::LowerTriangularMatrix,
          +                V::LowerTriangularMatrix,
          +                vor::LowerTriangularMatrix,
          +                div::LowerTriangularMatrix,
          +                S::SpectralTransform)

          Get U,V (=(u,v)*coslat) from vorticity ζ and divergence D in spectral space. Two operations are combined into a single linear operation. First, invert the spherical Laplace ∇² operator to get stream function from vorticity and velocity potential from divergence. Then compute zonal and meridional gradients to get U,V.

          source
          SpeedyWeather.SpeedyTransforms._divergence!Method
          _divergence!(   kernel,
          +                div::LowerTriangularMatrix,
          +                u::LowerTriangularMatrix,
          +                v::LowerTriangularMatrix,
          +                S::SpectralTransform)

          Generic divergence function of vector u,v that writes into the output into div. Generic as it uses the kernel kernel such that curl, div, add or flipsign options are provided through kernel, but otherwise a single function is used.

          source
          SpeedyWeather.SpeedyTransforms.curl!Method
          curl!(  curl::LowerTriangularMatrix,
          +        u::LowerTriangularMatrix,
          +        v::LowerTriangularMatrix,
          +        S::SpectralTransform;
          +        flipsign::Bool=false,
          +        add::Bool=false,
          +        )

          Curl of a vector u,v written into curl, curl = ∇×(u,v). u,v are expected to have a 1/coslat-scaling included, then curl is not scaled. flipsign option calculates -∇×(u,v) instead. add option calculates curl += ∇×(u,v) instead. flipsign and add can be combined. This functions only creates the kernel and calls the generic divergence function _divergence! subsequently with flipped u,v -> v,u for the curl.

          source
          SpeedyWeather.SpeedyTransforms.divergence!Method
          divergence!(div::LowerTriangularMatrix,
          +            u::LowerTriangularMatrix,
          +            v::LowerTriangularMatrix,
          +            S::SpectralTransform{NF};
          +            flipsign::Bool=false,
          +            add::Bool=false,
          +            )

          Divergence of a vector u,v written into div, div = ∇⋅(u,v). u,v are expected to have a 1/coslat-scaling included, then div is not scaled. flipsign option calculates -∇⋅(u,v) instead. add option calculates div += ∇⋅(u,v) instead. flipsign and add can be combined. This functions only creates the kernel and calls the generic divergence function _divergence! subsequently.

          source
          SpeedyWeather.SpeedyTransforms.get_recursion_factorsMethod
          get_recursion_factors(  ::Type{NF}, # number format NF
          +                        lmax::Int,  # max degree l of spherical harmonics (0-based here)
          +                        mmax::Int   # max order m of spherical harmonics
          +                        ) where {NF<:AbstractFloat}

          Returns a matrix of recursion factors ϵ up to degree lmax and order mmax of number format NF.

          source
          SpeedyWeather.SpeedyTransforms.gridded!Method
          gridded!(   map::AbstractGrid,
          +            alms::LowerTriangularMatrix,
          +            S::SpectralTransform)

          Spectral transform (spectral to grid) of the spherical harmonic coefficients alms to a gridded field map. The spectral transform is number format-flexible as long as the parametric types of map, alms, S are identical. The spectral transform is grid-flexible as long as the typeof(map)<:AbstractGrid. Uses the precalculated arrays, FFT plans and other constants in the SpectralTransform struct S.

          source
          SpeedyWeather.SpeedyTransforms.griddedMethod
          map = gridded(  alms::AbstractMatrix;
          +                recompute_legendre::Bool=true,
          +                grid::Type{<:AbstractGrid}=DEFAULT_GRID)

          Spectral transform (spectral to grid space) from spherical coefficients alms to a newly allocated gridded field map. Based on the size of alms the grid type grid, the spatial resolution is retrieved based on the truncation defined for grid. SpectralTransform struct S is allocated to execute gridded(alms,S).

          source
          SpeedyWeather.SpeedyTransforms.griddedMethod
          map = gridded(  alms::AbstractMatrix,
          +                S::SpectralTransform)

          Spectral transform (spectral to grid space) from spherical coefficients alms to a newly allocated gridded field map with precalculated properties based on the SpectralTransform struct S. alms is converted to a LowerTriangularMatrix to execute the in-place gridded!.

          source
          SpeedyWeather.SpeedyTransforms.roundup_fftMethod
          m = roundup_fft(n::Int;
          +                small_primes::Vector{Int}=[2,3,5])

          Returns an integer m >= n with only small prime factors 2, 3 (default, others can be specified with the keyword argument small_primes) to obtain an efficiently fourier-transformable number of longitudes, m = 2^i * 3^j * 5^k >= n, with i,j,k >=0.

          source
          SpeedyWeather.SpeedyTransforms.spectral!Method
          spectral!(  alms::LowerTriangularMatrix,
          +            map::AbstractGrid,
          +            S::SpectralTransform)

          Spectral transform (grid to spectral space) from the gridded field map on a grid<:AbstractGrid to a LowerTriangularMatrix of spherical harmonic coefficients alms. Uses FFT in the zonal direction, and a Legendre Transform in the meridional direction exploiting symmetries. The spectral transform is number format-flexible as long as the parametric types of map, alms, S are identical. The spectral transform is grid-flexible as long as the typeof(map)<:AbstractGrid. Uses the precalculated arrays, FFT plans and other constants in the SpectralTransform struct S.

          source
          SpeedyWeather.SpeedyTransforms.spectralMethod
          alms = spectral(    map::AbstractMatrix;
          +                    Grid::Type{<:AbstractGrid}=DEFAULT_GRID,
          +                    kwargs...)

          Spectral transform (grid to spectral) map to grid(map) to execute spectral(map::AbstractGrid;kwargs...).

          source
          SpeedyWeather.SpeedyTransforms.spectral_interpolationMethod
          alms_interp = spectral_interpolation(   ::Type{NF},
          +                                        alms::LowerTriangularMatrix,
          +                                        ltrunc::Integer,
          +                                        mtrunc::Integer
          +                                        ) where NF

          Returns a spectral coefficient matrix alms_interp that is alms padded with zeros to interpolate in spectral space. If trunc is smaller or equal to the implicit truncation in alms obtained from its size than spectral_truncation is automatically called instead, returning alms_trunc, a coefficient matrix that is smaller than alms, implicitly setting higher degrees and orders to zero.

          source
          SpeedyWeather.SpeedyTransforms.spectral_smoothing!Method
          spectral_smoothing!(A::LowerTriangularMatrix,c;power=1)

          Smooth the spectral field A following A = (1-(1-c)∇²ⁿ) with power n of a normalised Laplacian so that the highest degree lmax is dampened by multiplication with c. Anti-diffusion for c>1.

          source
          SpeedyWeather.SpeedyTransforms.spectral_smoothingMethod
          A_smooth = spectral_smoothing(A::LowerTriangularMatrix,c;power=1)

          Smooth the spectral field A following A_smooth = (1-c*∇²ⁿ)A with power n of a normalised Laplacian so that the highest degree lmax is dampened by multiplication with c. Anti-diffusion for c<0.

          source
          SpeedyWeather.SpeedyTransforms.spectral_truncation!Method
          spectral_truncation!(alms::AbstractMatrix,ltrunc::Integer,mtrunc::Integer)

          Truncate spectral coefficients alms in-place by setting (a) the upper right triangle to zero and (b) all coefficients for which the degree l is larger than the truncation ltrunc or order m larger than the truncaction mtrunc.

          source
          SpeedyWeather.SpeedyTransforms.spectral_truncation!Method
          spectral_truncation!(alms::LowerTriangularMatrix,ltrunc::Integer,mtrunc::Integer)

          Truncate spectral coefficients alms in-place by setting all coefficients for which the degree l is larger than the truncation ltrunc or order m larger than the truncaction mtrunc. Similar to spectral_truncation!(::AbstractMatrix, ...) but skips the upper triangle which is zero by design for LowerTriangularMatrix.

          source
          SpeedyWeather.SpeedyTransforms.spectral_truncationMethod
          alms_trunc = spectral_truncation(alms,trunc)

          Returns a spectral coefficient matrix alms_trunc that is truncated from alms to the size (trunc+1)². alms_trunc only contains those coefficient of alms for which m,l ≤ trunc, and l ≥ m are zero anyway. If trunc is larger than the implicit truncation in alms obtained from its size than spectral_interpolation is automatically called instead, returning alms_interp, a coefficient matrix that is larger than alms with padded zero coefficients.

          source
          SpeedyWeather.SpeedyTransforms.ϵlmMethod
          ϵ = ϵ(l,m)

          Recursion factors ϵ as a function of degree l and order m (0-based) of the spherical harmonics. ϵ(l,m) = sqrt((l^2-m^2)/(4*l^2-1)) with default number format Float64.

          source
          SpeedyWeather.SpeedyTransforms.ϵlmMethod
          ϵ = ϵ(NF,l,m)

          Recursion factors ϵ as a function of degree l and order m (0-based) of the spherical harmonics. ϵ(l,m) = sqrt((l^2-m^2)/(4*l^2-1)) and then converted to number format NF.

          source
          SpeedyWeather.SpeedyTransforms.∇²!Method
          ∇²!(    ∇²alms::LowerTriangularMatrix,
          +        alms::LowerTriangularMatrix,
          +        S::SpectralTransform;
          +        add::Bool=false,
          +        flipsign::Bool=false,
          +        inverse::Bool=false)

          Laplace operator ∇² applied to the spectral coefficients alms in spherical coordinates. The radius R is omitted in the eigenvalues which are precomputed in S. ∇²! is the in-place version which directly stores the output in the first argument ∇²alms.

          Keyword arguments

          • add=true adds the ∇²(alms) to the output
          • flipsign=true computes -∇²(alms) instead
          • inverse=true computes ∇⁻²(alms) instead

          Default is add=false, flipsign=false, inverse=false. These options can be combined.

          source
          SpeedyWeather.SpeedyTransforms.∇⁻²!Method
          ∇⁻²!(   ∇⁻²alms::LowerTriangularMatrix,
          +        alms::LowerTriangularMatrix,
          +        S::SpectralTransform;
          +        add::Bool=false,
          +        flipsign::Bool=false)

          Calls ∇²!(∇⁻²alms, alms, S; add, flipsign, inverse=true).

          source
          diff --git a/previews/PR362/time_integration/index.html b/previews/PR362/time_integration/index.html new file mode 100644 index 000000000..2d8a9760c --- /dev/null +++ b/previews/PR362/time_integration/index.html @@ -0,0 +1,2 @@ + +Time integration · SpeedyWeather.jl
          diff --git a/stable b/stable new file mode 120000 index 000000000..48080b4cf --- /dev/null +++ b/stable @@ -0,0 +1 @@ +v0.5.0 \ No newline at end of file diff --git a/v0.5 b/v0.5 new file mode 120000 index 000000000..48080b4cf --- /dev/null +++ b/v0.5 @@ -0,0 +1 @@ +v0.5.0 \ No newline at end of file diff --git a/v0.5.0/assets/documenter.js b/v0.5.0/assets/documenter.js new file mode 100644 index 000000000..6adfbbbf4 --- /dev/null +++ b/v0.5.0/assets/documenter.js @@ -0,0 +1,331 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'highlight-julia': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia.min', + 'headroom': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/headroom.min', + 'jqueryui': 'https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min', + 'katex-auto-render': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/contrib/auto-render.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + 'headroom-jquery': 'https://cdnjs.cloudflare.com/ajax/libs/headroom/0.12.0/jQuery.headroom.min', + 'katex': 'https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.13.24/katex.min', + 'highlight': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/highlight.min', + 'highlight-julia-repl': 'https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.5.1/languages/julia-repl.min', + }, + shim: { + "highlight-julia": { + "deps": [ + "highlight" + ] + }, + "katex-auto-render": { + "deps": [ + "katex" + ] + }, + "headroom-jquery": { + "deps": [ + "jquery", + "headroom" + ] + }, + "highlight-julia-repl": { + "deps": [ + "highlight" + ] + } +} +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'katex', 'katex-auto-render'], function($, katex, renderMathInElement) { +$(document).ready(function() { + renderMathInElement( + document.body, + { + "delimiters": [ + { + "left": "$", + "right": "$", + "display": false + }, + { + "left": "$$", + "right": "$$", + "display": true + }, + { + "left": "\\[", + "right": "\\]", + "display": true + } + ] +} + + ); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'highlight', 'highlight-julia', 'highlight-julia-repl'], function($) { +$(document).ready(function() { + hljs.highlightAll(); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require([], function() { +function addCopyButtonCallbacks() { + for (const el of document.getElementsByTagName("pre")) { + const button = document.createElement("button"); + button.classList.add("copy-button", "fas", "fa-copy"); + el.appendChild(button); + + const success = function () { + button.classList.add("success", "fa-check"); + button.classList.remove("fa-copy"); + }; + + const failure = function () { + button.classList.add("error", "fa-times"); + button.classList.remove("fa-copy"); + }; + + button.addEventListener("click", function () { + copyToClipboard(el.innerText).then(success, failure); + + setTimeout(function () { + button.classList.add("fa-copy"); + button.classList.remove("success", "fa-check", "fa-times"); + }, 5000); + }); + } +} + +function copyToClipboard(text) { + // clipboard API is only available in secure contexts + if (window.navigator && window.navigator.clipboard) { + return window.navigator.clipboard.writeText(text); + } else { + return new Promise(function (resolve, reject) { + try { + const el = document.createElement("textarea"); + el.textContent = text; + el.style.position = "fixed"; + el.style.opacity = 0; + document.body.appendChild(el); + el.select(); + document.execCommand("copy"); + + resolve(); + } catch (err) { + reject(err); + } finally { + document.body.removeChild(el); + } + }); + } +} + +if (document.readyState === "loading") { + document.addEventListener("DOMContentLoaded", addCopyButtonCallbacks); +} else { + addCopyButtonCallbacks(); +} + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'headroom', 'headroom-jquery'], function($, Headroom) { + +// Manages the top navigation bar (hides it when the user starts scrolling down on the +// mobile). +window.Headroom = Headroom; // work around buggy module loading? +$(document).ready(function() { + $('#documenter .docs-navbar').headroom({ + "tolerance": {"up": 10, "down": 10}, + }); +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Modal settings dialog +$(document).ready(function() { + var settings = $('#documenter-settings'); + $('#documenter-settings-button').click(function(){ + settings.toggleClass('is-active'); + }); + // Close the dialog if X is clicked + $('#documenter-settings button.delete').click(function(){ + settings.removeClass('is-active'); + }); + // Close dialog if ESC is pressed + $(document).keyup(function(e) { + if (e.keyCode == 27) settings.removeClass('is-active'); + }); +}); + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// Manages the showing and hiding of the sidebar. +$(document).ready(function() { + var sidebar = $("#documenter > .docs-sidebar"); + var sidebar_button = $("#documenter-sidebar-button") + sidebar_button.click(function(ev) { + ev.preventDefault(); + sidebar.toggleClass('visible'); + if (sidebar.hasClass('visible')) { + // Makes sure that the current menu item is visible in the sidebar. + $("#documenter .docs-menu a.is-active").focus(); + } + }); + $("#documenter > .docs-main").bind('click', function(ev) { + if ($(ev.target).is(sidebar_button)) { + return; + } + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + }); +}) + +// Resizes the package name / sitename in the sidebar if it is too wide. +// Inspired by: https://github.com/davatron5000/FitText.js +$(document).ready(function() { + e = $("#documenter .docs-autofit"); + function resize() { + var L = parseInt(e.css('max-width'), 10); + var L0 = e.width(); + if(L0 > L) { + var h0 = parseInt(e.css('font-size'), 10); + e.css('font-size', L * h0 / L0); + // TODO: make sure it survives resizes? + } + } + // call once and then register events + resize(); + $(window).resize(resize); + $(window).on('orientationchange', resize); +}); + +// Scroll the navigation bar to the currently selected menu item +$(document).ready(function() { + var sidebar = $("#documenter .docs-menu").get(0); + var active = $("#documenter .docs-menu .is-active").get(0); + if(typeof active !== 'undefined') { + sidebar.scrollTop = active.offsetTop - sidebar.offsetTop - 15; + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +function set_theme(theme) { + var active = null; + var disabled = []; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + var themename = ss.ownerNode.getAttribute("data-theme-name"); + if(themename === null) continue; // ignore non-theme stylesheets + // Find the active theme + if(themename === theme) active = ss; + else disabled.push(ss); + } + if(active !== null) { + active.disabled = false; + if(active.ownerNode.getAttribute("data-theme-primary") === null) { + document.getElementsByTagName('html')[0].className = "theme--" + theme; + } else { + document.getElementsByTagName('html')[0].className = ""; + } + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + + // Store the theme in localStorage + if(typeof(window.localStorage) !== "undefined") { + window.localStorage.setItem("documenter-theme", theme); + } else { + console.error("Browser does not support window.localStorage"); + } +} + +// Theme picker setup +$(document).ready(function() { + // onchange callback + $('#documenter-themepicker').change(function themepick_callback(ev){ + var themename = $('#documenter-themepicker option:selected').attr('value'); + set_theme(themename); + }); + + // Make sure that the themepicker displays the correct theme when the theme is retrieved + // from localStorage + if(typeof(window.localStorage) !== "undefined") { + var theme = window.localStorage.getItem("documenter-theme"); + if(theme !== null) { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = (e.value === theme); + }) + } else { + $('#documenter-themepicker option').each(function(i,e) { + e.selected = $("html").hasClass(`theme--${e.value}`); + }) + } + } +}) + +}) +//////////////////////////////////////////////////////////////////////////////// +require(['jquery'], function($) { + +// update the version selector with info from the siteinfo.js and ../versions.js files +$(document).ready(function() { + // If the version selector is disabled with DOCUMENTER_VERSION_SELECTOR_DISABLED in the + // siteinfo.js file, we just return immediately and not display the version selector. + if (typeof DOCUMENTER_VERSION_SELECTOR_DISABLED === 'boolean' && DOCUMENTER_VERSION_SELECTOR_DISABLED) { + return; + } + + var version_selector = $("#documenter .docs-version-selector"); + var version_selector_select = $("#documenter .docs-version-selector select"); + + version_selector_select.change(function(x) { + target_href = version_selector_select.children("option:selected").get(0).value; + window.location.href = target_href; + }); + + // add the current version to the selector based on siteinfo.js, but only if the selector is empty + if (typeof DOCUMENTER_CURRENT_VERSION !== 'undefined' && $('#version-selector > option').length == 0) { + var option = $(""); + version_selector_select.append(option); + } + + if (typeof DOC_VERSIONS !== 'undefined') { + var existing_versions = version_selector_select.children("option"); + var existing_versions_texts = existing_versions.map(function(i,x){return x.text}); + DOC_VERSIONS.forEach(function(each) { + var version_url = documenterBaseURL + "/../" + each; + var existing_id = $.inArray(each, existing_versions_texts); + // if not already in the version selector, add it as a new option, + // otherwise update the old option with the URL and enable it + if (existing_id == -1) { + var option = $(""); + version_selector_select.append(option); + } else { + var option = existing_versions[existing_id]; + option.value = version_url; + option.disabled = false; + } + }); + } + + // only show the version selector if the selector has been populated + if (version_selector_select.children("option").length > 0) { + version_selector.toggleClass("visible"); + } +}) + +}) diff --git a/v0.5.0/assets/search.js b/v0.5.0/assets/search.js new file mode 100644 index 000000000..c133f7410 --- /dev/null +++ b/v0.5.0/assets/search.js @@ -0,0 +1,267 @@ +// Generated by Documenter.jl +requirejs.config({ + paths: { + 'lunr': 'https://cdnjs.cloudflare.com/ajax/libs/lunr.js/2.3.9/lunr.min', + 'lodash': 'https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.21/lodash.min', + 'jquery': 'https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min', + } +}); +//////////////////////////////////////////////////////////////////////////////// +require(['jquery', 'lunr', 'lodash'], function($, lunr, _) { + +$(document).ready(function() { + // parseUri 1.2.2 + // (c) Steven Levithan + // MIT License + function parseUri (str) { + var o = parseUri.options, + m = o.parser[o.strictMode ? "strict" : "loose"].exec(str), + uri = {}, + i = 14; + + while (i--) uri[o.key[i]] = m[i] || ""; + + uri[o.q.name] = {}; + uri[o.key[12]].replace(o.q.parser, function ($0, $1, $2) { + if ($1) uri[o.q.name][$1] = $2; + }); + + return uri; + }; + parseUri.options = { + strictMode: false, + key: ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"], + q: { + name: "queryKey", + parser: /(?:^|&)([^&=]*)=?([^&]*)/g + }, + parser: { + strict: /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, + loose: /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ + } + }; + + $("#search-form").submit(function(e) { + e.preventDefault() + }) + + // list below is the lunr 2.1.3 list minus the intersect with names(Base) + // (all, any, get, in, is, only, which) and (do, else, for, let, where, while, with) + // ideally we'd just filter the original list but it's not available as a variable + lunr.stopWordFilter = lunr.generateStopWordFilter([ + 'a', + 'able', + 'about', + 'across', + 'after', + 'almost', + 'also', + 'am', + 'among', + 'an', + 'and', + 'are', + 'as', + 'at', + 'be', + 'because', + 'been', + 'but', + 'by', + 'can', + 'cannot', + 'could', + 'dear', + 'did', + 'does', + 'either', + 'ever', + 'every', + 'from', + 'got', + 'had', + 'has', + 'have', + 'he', + 'her', + 'hers', + 'him', + 'his', + 'how', + 'however', + 'i', + 'if', + 'into', + 'it', + 'its', + 'just', + 'least', + 'like', + 'likely', + 'may', + 'me', + 'might', + 'most', + 'must', + 'my', + 'neither', + 'no', + 'nor', + 'not', + 'of', + 'off', + 'often', + 'on', + 'or', + 'other', + 'our', + 'own', + 'rather', + 'said', + 'say', + 'says', + 'she', + 'should', + 'since', + 'so', + 'some', + 'than', + 'that', + 'the', + 'their', + 'them', + 'then', + 'there', + 'these', + 'they', + 'this', + 'tis', + 'to', + 'too', + 'twas', + 'us', + 'wants', + 'was', + 'we', + 'were', + 'what', + 'when', + 'who', + 'whom', + 'why', + 'will', + 'would', + 'yet', + 'you', + 'your' + ]) + + // add . as a separator, because otherwise "title": "Documenter.Anchors.add!" + // would not find anything if searching for "add!", only for the entire qualification + lunr.tokenizer.separator = /[\s\-\.]+/ + + // custom trimmer that doesn't strip @ and !, which are used in julia macro and function names + lunr.trimmer = function (token) { + return token.update(function (s) { + return s.replace(/^[^a-zA-Z0-9@!]+/, '').replace(/[^a-zA-Z0-9@!]+$/, '') + }) + } + + lunr.Pipeline.registerFunction(lunr.stopWordFilter, 'juliaStopWordFilter') + lunr.Pipeline.registerFunction(lunr.trimmer, 'juliaTrimmer') + + var index = lunr(function () { + this.ref('location') + this.field('title',{boost: 100}) + this.field('text') + documenterSearchIndex['docs'].forEach(function(e) { + this.add(e) + }, this) + }) + var store = {} + + documenterSearchIndex['docs'].forEach(function(e) { + store[e.location] = {title: e.title, category: e.category, page: e.page} + }) + + $(function(){ + searchresults = $('#documenter-search-results'); + searchinfo = $('#documenter-search-info'); + searchbox = $('#documenter-search-query'); + searchform = $('.docs-search'); + sidebar = $('.docs-sidebar'); + function update_search(querystring) { + tokens = lunr.tokenizer(querystring) + results = index.query(function (q) { + tokens.forEach(function (t) { + q.term(t.toString(), { + fields: ["title"], + boost: 100, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["title"], + boost: 10, + usePipeline: true, + editDistance: 2, + wildcard: lunr.Query.wildcard.NONE + }) + q.term(t.toString(), { + fields: ["text"], + boost: 1, + usePipeline: true, + editDistance: 0, + wildcard: lunr.Query.wildcard.NONE + }) + }) + }) + searchinfo.text("Number of results: " + results.length) + searchresults.empty() + results.forEach(function(result) { + data = store[result.ref] + link = $(''+data.title+'') + link.attr('href', documenterBaseURL+'/'+result.ref) + if (data.category != "page"){ + cat = $('('+data.category+', '+data.page+')') + } else { + cat = $('('+data.category+')') + } + li = $('
        4. ').append(link).append(" ").append(cat) + searchresults.append(li) + }) + } + + function update_search_box() { + querystring = searchbox.val() + update_search(querystring) + } + + searchbox.keyup(_.debounce(update_search_box, 250)) + searchbox.change(update_search_box) + + // Disable enter-key form submission for the searchbox on the search page + // and just re-run search rather than refresh the whole page. + searchform.keypress( + function(event){ + if (event.which == '13') { + if (sidebar.hasClass('visible')) { + sidebar.removeClass('visible'); + } + update_search_box(); + event.preventDefault(); + } + } + ); + + search_query_uri = parseUri(window.location).queryKey["q"] + if(search_query_uri !== undefined) { + search_query = decodeURIComponent(search_query_uri.replace(/\+/g, '%20')) + searchbox.val(search_query) + } + update_search_box(); + }) +}) + +}) diff --git a/v0.5.0/assets/themes/documenter-dark.css b/v0.5.0/assets/themes/documenter-dark.css new file mode 100644 index 000000000..0bf1af7d5 --- /dev/null +++ b/v0.5.0/assets/themes/documenter-dark.css @@ -0,0 +1,7702 @@ +@charset "UTF-8"; +/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */ +@keyframes spinAround { + from { + transform: rotate(0deg); } + to { + transform: rotate(359deg); } } + +html.theme--documenter-dark .tabs, html.theme--documenter-dark .pagination-previous, +html.theme--documenter-dark .pagination-next, +html.theme--documenter-dark .pagination-link, +html.theme--documenter-dark .pagination-ellipsis, html.theme--documenter-dark .breadcrumb, html.theme--documenter-dark .file, html.theme--documenter-dark .button, .is-unselectable, html.theme--documenter-dark .modal-close, html.theme--documenter-dark .delete { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +html.theme--documenter-dark .navbar-link:not(.is-arrowless)::after, html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after { + border: 3px solid transparent; + border-radius: 2px; + border-right: 0; + border-top: 0; + content: " "; + display: block; + height: 0.625em; + margin-top: -0.4375em; + pointer-events: none; + position: absolute; + top: 50%; + transform: rotate(-45deg); + transform-origin: center; + width: 0.625em; } + +html.theme--documenter-dark .admonition:not(:last-child), html.theme--documenter-dark .tabs:not(:last-child), html.theme--documenter-dark .message:not(:last-child), html.theme--documenter-dark .list:not(:last-child), html.theme--documenter-dark .level:not(:last-child), html.theme--documenter-dark .breadcrumb:not(:last-child), html.theme--documenter-dark .highlight:not(:last-child), html.theme--documenter-dark .block:not(:last-child), html.theme--documenter-dark .title:not(:last-child), +html.theme--documenter-dark .subtitle:not(:last-child), html.theme--documenter-dark .table-container:not(:last-child), html.theme--documenter-dark .table:not(:last-child), html.theme--documenter-dark .progress:not(:last-child), html.theme--documenter-dark .notification:not(:last-child), html.theme--documenter-dark .content:not(:last-child), html.theme--documenter-dark .box:not(:last-child) { + margin-bottom: 1.5rem; } + +html.theme--documenter-dark .modal-close, html.theme--documenter-dark .delete { + -moz-appearance: none; + -webkit-appearance: none; + background-color: rgba(10, 10, 10, 0.2); + border: none; + border-radius: 290486px; + cursor: pointer; + pointer-events: auto; + display: inline-block; + flex-grow: 0; + flex-shrink: 0; + font-size: 0; + height: 20px; + max-height: 20px; + max-width: 20px; + min-height: 20px; + min-width: 20px; + outline: none; + position: relative; + vertical-align: top; + width: 20px; } + html.theme--documenter-dark .modal-close::before, html.theme--documenter-dark .delete::before, html.theme--documenter-dark .modal-close::after, html.theme--documenter-dark .delete::after { + background-color: white; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + html.theme--documenter-dark .modal-close::before, html.theme--documenter-dark .delete::before { + height: 2px; + width: 50%; } + html.theme--documenter-dark .modal-close::after, html.theme--documenter-dark .delete::after { + height: 50%; + width: 2px; } + html.theme--documenter-dark .modal-close:hover, html.theme--documenter-dark .delete:hover, html.theme--documenter-dark .modal-close:focus, html.theme--documenter-dark .delete:focus { + background-color: rgba(10, 10, 10, 0.3); } + html.theme--documenter-dark .modal-close:active, html.theme--documenter-dark .delete:active { + background-color: rgba(10, 10, 10, 0.4); } + html.theme--documenter-dark .is-small.modal-close, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.modal-close, html.theme--documenter-dark .is-small.delete, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.delete { + height: 16px; + max-height: 16px; + max-width: 16px; + min-height: 16px; + min-width: 16px; + width: 16px; } + html.theme--documenter-dark .is-medium.modal-close, html.theme--documenter-dark .is-medium.delete { + height: 24px; + max-height: 24px; + max-width: 24px; + min-height: 24px; + min-width: 24px; + width: 24px; } + html.theme--documenter-dark .is-large.modal-close, html.theme--documenter-dark .is-large.delete { + height: 32px; + max-height: 32px; + max-width: 32px; + min-height: 32px; + min-width: 32px; + width: 32px; } + +html.theme--documenter-dark .control.is-loading::after, html.theme--documenter-dark .select.is-loading::after, html.theme--documenter-dark .loader, html.theme--documenter-dark .button.is-loading::after { + animation: spinAround 500ms infinite linear; + border: 2px solid #dbdee0; + border-radius: 290486px; + border-right-color: transparent; + border-top-color: transparent; + content: ""; + display: block; + height: 1em; + position: relative; + width: 1em; } + +html.theme--documenter-dark .hero-video, html.theme--documenter-dark .modal-background, html.theme--documenter-dark .modal, html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img, +html.theme--documenter-dark .image.is-square .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img, +html.theme--documenter-dark .image.is-1by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img, +html.theme--documenter-dark .image.is-5by4 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img, +html.theme--documenter-dark .image.is-4by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img, +html.theme--documenter-dark .image.is-3by2 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img, +html.theme--documenter-dark .image.is-5by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img, +html.theme--documenter-dark .image.is-16by9 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img, +html.theme--documenter-dark .image.is-2by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img, +html.theme--documenter-dark .image.is-3by1 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img, +html.theme--documenter-dark .image.is-4by5 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img, +html.theme--documenter-dark .image.is-3by4 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img, +html.theme--documenter-dark .image.is-2by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img, +html.theme--documenter-dark .image.is-3by5 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img, +html.theme--documenter-dark .image.is-9by16 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img, +html.theme--documenter-dark .image.is-1by2 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img, +html.theme--documenter-dark .image.is-1by3 .has-ratio, +html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, .is-overlay { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; } + +html.theme--documenter-dark .pagination-previous, +html.theme--documenter-dark .pagination-next, +html.theme--documenter-dark .pagination-link, +html.theme--documenter-dark .pagination-ellipsis, html.theme--documenter-dark .file-cta, +html.theme--documenter-dark .file-name, html.theme--documenter-dark .select select, html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark .button { + -moz-appearance: none; + -webkit-appearance: none; + align-items: center; + border: 1px solid transparent; + border-radius: 0.4em; + box-shadow: none; + display: inline-flex; + font-size: 15px; + height: 2.25em; + justify-content: flex-start; + line-height: 1.5; + padding-bottom: calc(0.375em - 1px); + padding-left: calc(0.625em - 1px); + padding-right: calc(0.625em - 1px); + padding-top: calc(0.375em - 1px); + position: relative; + vertical-align: top; } + html.theme--documenter-dark .pagination-previous:focus, + html.theme--documenter-dark .pagination-next:focus, + html.theme--documenter-dark .pagination-link:focus, + html.theme--documenter-dark .pagination-ellipsis:focus, html.theme--documenter-dark .file-cta:focus, + html.theme--documenter-dark .file-name:focus, html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .button:focus, html.theme--documenter-dark .is-focused.pagination-previous, + html.theme--documenter-dark .is-focused.pagination-next, + html.theme--documenter-dark .is-focused.pagination-link, + html.theme--documenter-dark .is-focused.pagination-ellipsis, html.theme--documenter-dark .is-focused.file-cta, + html.theme--documenter-dark .is-focused.file-name, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .is-focused.button, html.theme--documenter-dark .pagination-previous:active, + html.theme--documenter-dark .pagination-next:active, + html.theme--documenter-dark .pagination-link:active, + html.theme--documenter-dark .pagination-ellipsis:active, html.theme--documenter-dark .file-cta:active, + html.theme--documenter-dark .file-name:active, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .button:active, html.theme--documenter-dark .is-active.pagination-previous, + html.theme--documenter-dark .is-active.pagination-next, + html.theme--documenter-dark .is-active.pagination-link, + html.theme--documenter-dark .is-active.pagination-ellipsis, html.theme--documenter-dark .is-active.file-cta, + html.theme--documenter-dark .is-active.file-name, html.theme--documenter-dark .select select.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active, html.theme--documenter-dark .is-active.button { + outline: none; } + html.theme--documenter-dark .pagination-previous[disabled], + html.theme--documenter-dark .pagination-next[disabled], + html.theme--documenter-dark .pagination-link[disabled], + html.theme--documenter-dark .pagination-ellipsis[disabled], html.theme--documenter-dark .file-cta[disabled], + html.theme--documenter-dark .file-name[disabled], html.theme--documenter-dark .select select[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], html.theme--documenter-dark .button[disabled], fieldset[disabled] html.theme--documenter-dark .pagination-previous, html.theme--documenter-dark fieldset[disabled] .pagination-previous, + fieldset[disabled] html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark fieldset[disabled] .pagination-next, + fieldset[disabled] html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark fieldset[disabled] .pagination-link, + fieldset[disabled] html.theme--documenter-dark .pagination-ellipsis, + html.theme--documenter-dark fieldset[disabled] .pagination-ellipsis, fieldset[disabled] html.theme--documenter-dark .file-cta, html.theme--documenter-dark fieldset[disabled] .file-cta, + fieldset[disabled] html.theme--documenter-dark .file-name, + html.theme--documenter-dark fieldset[disabled] .file-name, fieldset[disabled] html.theme--documenter-dark .select select, fieldset[disabled] html.theme--documenter-dark .textarea, fieldset[disabled] html.theme--documenter-dark .input, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark fieldset[disabled] .select select, html.theme--documenter-dark .select fieldset[disabled] select, html.theme--documenter-dark fieldset[disabled] .textarea, html.theme--documenter-dark fieldset[disabled] .input, html.theme--documenter-dark fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, fieldset[disabled] html.theme--documenter-dark .button, html.theme--documenter-dark fieldset[disabled] .button { + cursor: not-allowed; } + +/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */ +html, +body, +p, +ol, +ul, +li, +dl, +dt, +dd, +blockquote, +figure, +fieldset, +legend, +textarea, +pre, +iframe, +hr, +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + padding: 0; } + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: 100%; + font-weight: normal; } + +ul { + list-style: none; } + +button, +input, +select, +textarea { + margin: 0; } + +html { + box-sizing: border-box; } + +*, *::before, *::after { + box-sizing: inherit; } + +img, +embed, +iframe, +object, +video { + height: auto; + max-width: 100%; } + +audio { + max-width: 100%; } + +iframe { + border: 0; } + +table { + border-collapse: collapse; + border-spacing: 0; } + +td, +th { + padding: 0; } + td:not([align]), + th:not([align]) { + text-align: left; } + +.is-clearfix::after { + clear: both; + content: " "; + display: table; } + +.is-pulled-left { + float: left !important; } + +.is-pulled-right { + float: right !important; } + +.is-clipped { + overflow: hidden !important; } + +.is-size-1 { + font-size: 3rem !important; } + +.is-size-2 { + font-size: 2.5rem !important; } + +.is-size-3 { + font-size: 2rem !important; } + +.is-size-4 { + font-size: 1.5rem !important; } + +.is-size-5 { + font-size: 1.25rem !important; } + +.is-size-6 { + font-size: 15px !important; } + +.is-size-7, html.theme--documenter-dark .docstring > section > a.docs-sourcelink { + font-size: 0.85em !important; } + +@media screen and (max-width: 768px) { + .is-size-1-mobile { + font-size: 3rem !important; } + .is-size-2-mobile { + font-size: 2.5rem !important; } + .is-size-3-mobile { + font-size: 2rem !important; } + .is-size-4-mobile { + font-size: 1.5rem !important; } + .is-size-5-mobile { + font-size: 1.25rem !important; } + .is-size-6-mobile { + font-size: 15px !important; } + .is-size-7-mobile { + font-size: 0.85em !important; } } + +@media screen and (min-width: 769px), print { + .is-size-1-tablet { + font-size: 3rem !important; } + .is-size-2-tablet { + font-size: 2.5rem !important; } + .is-size-3-tablet { + font-size: 2rem !important; } + .is-size-4-tablet { + font-size: 1.5rem !important; } + .is-size-5-tablet { + font-size: 1.25rem !important; } + .is-size-6-tablet { + font-size: 15px !important; } + .is-size-7-tablet { + font-size: 0.85em !important; } } + +@media screen and (max-width: 1055px) { + .is-size-1-touch { + font-size: 3rem !important; } + .is-size-2-touch { + font-size: 2.5rem !important; } + .is-size-3-touch { + font-size: 2rem !important; } + .is-size-4-touch { + font-size: 1.5rem !important; } + .is-size-5-touch { + font-size: 1.25rem !important; } + .is-size-6-touch { + font-size: 15px !important; } + .is-size-7-touch { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1056px) { + .is-size-1-desktop { + font-size: 3rem !important; } + .is-size-2-desktop { + font-size: 2.5rem !important; } + .is-size-3-desktop { + font-size: 2rem !important; } + .is-size-4-desktop { + font-size: 1.5rem !important; } + .is-size-5-desktop { + font-size: 1.25rem !important; } + .is-size-6-desktop { + font-size: 15px !important; } + .is-size-7-desktop { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1216px) { + .is-size-1-widescreen { + font-size: 3rem !important; } + .is-size-2-widescreen { + font-size: 2.5rem !important; } + .is-size-3-widescreen { + font-size: 2rem !important; } + .is-size-4-widescreen { + font-size: 1.5rem !important; } + .is-size-5-widescreen { + font-size: 1.25rem !important; } + .is-size-6-widescreen { + font-size: 15px !important; } + .is-size-7-widescreen { + font-size: 0.85em !important; } } + +@media screen and (min-width: 1408px) { + .is-size-1-fullhd { + font-size: 3rem !important; } + .is-size-2-fullhd { + font-size: 2.5rem !important; } + .is-size-3-fullhd { + font-size: 2rem !important; } + .is-size-4-fullhd { + font-size: 1.5rem !important; } + .is-size-5-fullhd { + font-size: 1.25rem !important; } + .is-size-6-fullhd { + font-size: 15px !important; } + .is-size-7-fullhd { + font-size: 0.85em !important; } } + +.has-text-centered { + text-align: center !important; } + +.has-text-justified { + text-align: justify !important; } + +.has-text-left { + text-align: left !important; } + +.has-text-right { + text-align: right !important; } + +@media screen and (max-width: 768px) { + .has-text-centered-mobile { + text-align: center !important; } } + +@media screen and (min-width: 769px), print { + .has-text-centered-tablet { + text-align: center !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-centered-tablet-only { + text-align: center !important; } } + +@media screen and (max-width: 1055px) { + .has-text-centered-touch { + text-align: center !important; } } + +@media screen and (min-width: 1056px) { + .has-text-centered-desktop { + text-align: center !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-centered-desktop-only { + text-align: center !important; } } + +@media screen and (min-width: 1216px) { + .has-text-centered-widescreen { + text-align: center !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-centered-widescreen-only { + text-align: center !important; } } + +@media screen and (min-width: 1408px) { + .has-text-centered-fullhd { + text-align: center !important; } } + +@media screen and (max-width: 768px) { + .has-text-justified-mobile { + text-align: justify !important; } } + +@media screen and (min-width: 769px), print { + .has-text-justified-tablet { + text-align: justify !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-justified-tablet-only { + text-align: justify !important; } } + +@media screen and (max-width: 1055px) { + .has-text-justified-touch { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) { + .has-text-justified-desktop { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-justified-desktop-only { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) { + .has-text-justified-widescreen { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-justified-widescreen-only { + text-align: justify !important; } } + +@media screen and (min-width: 1408px) { + .has-text-justified-fullhd { + text-align: justify !important; } } + +@media screen and (max-width: 768px) { + .has-text-left-mobile { + text-align: left !important; } } + +@media screen and (min-width: 769px), print { + .has-text-left-tablet { + text-align: left !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-left-tablet-only { + text-align: left !important; } } + +@media screen and (max-width: 1055px) { + .has-text-left-touch { + text-align: left !important; } } + +@media screen and (min-width: 1056px) { + .has-text-left-desktop { + text-align: left !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-left-desktop-only { + text-align: left !important; } } + +@media screen and (min-width: 1216px) { + .has-text-left-widescreen { + text-align: left !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-left-widescreen-only { + text-align: left !important; } } + +@media screen and (min-width: 1408px) { + .has-text-left-fullhd { + text-align: left !important; } } + +@media screen and (max-width: 768px) { + .has-text-right-mobile { + text-align: right !important; } } + +@media screen and (min-width: 769px), print { + .has-text-right-tablet { + text-align: right !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-right-tablet-only { + text-align: right !important; } } + +@media screen and (max-width: 1055px) { + .has-text-right-touch { + text-align: right !important; } } + +@media screen and (min-width: 1056px) { + .has-text-right-desktop { + text-align: right !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-right-desktop-only { + text-align: right !important; } } + +@media screen and (min-width: 1216px) { + .has-text-right-widescreen { + text-align: right !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-right-widescreen-only { + text-align: right !important; } } + +@media screen and (min-width: 1408px) { + .has-text-right-fullhd { + text-align: right !important; } } + +.is-capitalized { + text-transform: capitalize !important; } + +.is-lowercase { + text-transform: lowercase !important; } + +.is-uppercase { + text-transform: uppercase !important; } + +.is-italic { + font-style: italic !important; } + +.has-text-white { + color: white !important; } + +a.has-text-white:hover, a.has-text-white:focus { + color: #e6e6e6 !important; } + +.has-background-white { + background-color: white !important; } + +.has-text-black { + color: #0a0a0a !important; } + +a.has-text-black:hover, a.has-text-black:focus { + color: black !important; } + +.has-background-black { + background-color: #0a0a0a !important; } + +.has-text-light { + color: #ecf0f1 !important; } + +a.has-text-light:hover, a.has-text-light:focus { + color: #cfd9db !important; } + +.has-background-light { + background-color: #ecf0f1 !important; } + +.has-text-dark { + color: #282f2f !important; } + +a.has-text-dark:hover, a.has-text-dark:focus { + color: #111414 !important; } + +.has-background-dark { + background-color: #282f2f !important; } + +.has-text-primary { + color: #375a7f !important; } + +a.has-text-primary:hover, a.has-text-primary:focus { + color: #28415b !important; } + +.has-background-primary { + background-color: #375a7f !important; } + +.has-text-link { + color: #1abc9c !important; } + +a.has-text-link:hover, a.has-text-link:focus { + color: #148f77 !important; } + +.has-background-link { + background-color: #1abc9c !important; } + +.has-text-info { + color: #024c7d !important; } + +a.has-text-info:hover, a.has-text-info:focus { + color: #012d4b !important; } + +.has-background-info { + background-color: #024c7d !important; } + +.has-text-success { + color: #008438 !important; } + +a.has-text-success:hover, a.has-text-success:focus { + color: #005122 !important; } + +.has-background-success { + background-color: #008438 !important; } + +.has-text-warning { + color: #ad8100 !important; } + +a.has-text-warning:hover, a.has-text-warning:focus { + color: #7a5b00 !important; } + +.has-background-warning { + background-color: #ad8100 !important; } + +.has-text-danger { + color: #9e1b0d !important; } + +a.has-text-danger:hover, a.has-text-danger:focus { + color: #6f1309 !important; } + +.has-background-danger { + background-color: #9e1b0d !important; } + +.has-text-black-bis { + color: #121212 !important; } + +.has-background-black-bis { + background-color: #121212 !important; } + +.has-text-black-ter { + color: #242424 !important; } + +.has-background-black-ter { + background-color: #242424 !important; } + +.has-text-grey-darker { + color: #282f2f !important; } + +.has-background-grey-darker { + background-color: #282f2f !important; } + +.has-text-grey-dark { + color: #343c3d !important; } + +.has-background-grey-dark { + background-color: #343c3d !important; } + +.has-text-grey { + color: #5e6d6f !important; } + +.has-background-grey { + background-color: #5e6d6f !important; } + +.has-text-grey-light { + color: #8c9b9d !important; } + +.has-background-grey-light { + background-color: #8c9b9d !important; } + +.has-text-grey-lighter { + color: #dbdee0 !important; } + +.has-background-grey-lighter { + background-color: #dbdee0 !important; } + +.has-text-white-ter { + color: #ecf0f1 !important; } + +.has-background-white-ter { + background-color: #ecf0f1 !important; } + +.has-text-white-bis { + color: #fafafa !important; } + +.has-background-white-bis { + background-color: #fafafa !important; } + +.has-text-weight-light { + font-weight: 300 !important; } + +.has-text-weight-normal { + font-weight: 400 !important; } + +.has-text-weight-medium { + font-weight: 500 !important; } + +.has-text-weight-semibold { + font-weight: 600 !important; } + +.has-text-weight-bold { + font-weight: 700 !important; } + +.is-family-primary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-secondary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-sans-serif { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-monospace { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-family-code { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-block { + display: block !important; } + +@media screen and (max-width: 768px) { + .is-block-mobile { + display: block !important; } } + +@media screen and (min-width: 769px), print { + .is-block-tablet { + display: block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-block-tablet-only { + display: block !important; } } + +@media screen and (max-width: 1055px) { + .is-block-touch { + display: block !important; } } + +@media screen and (min-width: 1056px) { + .is-block-desktop { + display: block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-block-desktop-only { + display: block !important; } } + +@media screen and (min-width: 1216px) { + .is-block-widescreen { + display: block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-block-widescreen-only { + display: block !important; } } + +@media screen and (min-width: 1408px) { + .is-block-fullhd { + display: block !important; } } + +.is-flex { + display: flex !important; } + +@media screen and (max-width: 768px) { + .is-flex-mobile { + display: flex !important; } } + +@media screen and (min-width: 769px), print { + .is-flex-tablet { + display: flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-flex-tablet-only { + display: flex !important; } } + +@media screen and (max-width: 1055px) { + .is-flex-touch { + display: flex !important; } } + +@media screen and (min-width: 1056px) { + .is-flex-desktop { + display: flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-flex-desktop-only { + display: flex !important; } } + +@media screen and (min-width: 1216px) { + .is-flex-widescreen { + display: flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-flex-widescreen-only { + display: flex !important; } } + +@media screen and (min-width: 1408px) { + .is-flex-fullhd { + display: flex !important; } } + +.is-inline { + display: inline !important; } + +@media screen and (max-width: 768px) { + .is-inline-mobile { + display: inline !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-tablet { + display: inline !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-tablet-only { + display: inline !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-touch { + display: inline !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-desktop { + display: inline !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-desktop-only { + display: inline !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-widescreen { + display: inline !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-widescreen-only { + display: inline !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-fullhd { + display: inline !important; } } + +.is-inline-block { + display: inline-block !important; } + +@media screen and (max-width: 768px) { + .is-inline-block-mobile { + display: inline-block !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-block-tablet { + display: inline-block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-block-tablet-only { + display: inline-block !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-block-touch { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-block-desktop { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-block-desktop-only { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-block-widescreen { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-block-widescreen-only { + display: inline-block !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-block-fullhd { + display: inline-block !important; } } + +.is-inline-flex { + display: inline-flex !important; } + +@media screen and (max-width: 768px) { + .is-inline-flex-mobile { + display: inline-flex !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-flex-tablet { + display: inline-flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-flex-tablet-only { + display: inline-flex !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-flex-touch { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-flex-desktop { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-flex-desktop-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-flex-widescreen { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-flex-widescreen-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-flex-fullhd { + display: inline-flex !important; } } + +.is-hidden { + display: none !important; } + +.is-sr-only { + border: none !important; + clip: rect(0, 0, 0, 0) !important; + height: 0.01em !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + white-space: nowrap !important; + width: 0.01em !important; } + +@media screen and (max-width: 768px) { + .is-hidden-mobile { + display: none !important; } } + +@media screen and (min-width: 769px), print { + .is-hidden-tablet { + display: none !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-hidden-tablet-only { + display: none !important; } } + +@media screen and (max-width: 1055px) { + .is-hidden-touch { + display: none !important; } } + +@media screen and (min-width: 1056px) { + .is-hidden-desktop { + display: none !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-hidden-desktop-only { + display: none !important; } } + +@media screen and (min-width: 1216px) { + .is-hidden-widescreen { + display: none !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-hidden-widescreen-only { + display: none !important; } } + +@media screen and (min-width: 1408px) { + .is-hidden-fullhd { + display: none !important; } } + +.is-invisible { + visibility: hidden !important; } + +@media screen and (max-width: 768px) { + .is-invisible-mobile { + visibility: hidden !important; } } + +@media screen and (min-width: 769px), print { + .is-invisible-tablet { + visibility: hidden !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-invisible-tablet-only { + visibility: hidden !important; } } + +@media screen and (max-width: 1055px) { + .is-invisible-touch { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) { + .is-invisible-desktop { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-invisible-desktop-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) { + .is-invisible-widescreen { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-invisible-widescreen-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1408px) { + .is-invisible-fullhd { + visibility: hidden !important; } } + +.is-marginless { + margin: 0 !important; } + +.is-paddingless { + padding: 0 !important; } + +.is-radiusless { + border-radius: 0 !important; } + +.is-shadowless { + box-shadow: none !important; } + +.is-relative { + position: relative !important; } + +html.theme--documenter-dark { + /* This file contain the overall layout. + * + * The main container is
          that is identified by id #documenter. + */ + /*! + 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 +*/ + /* Comment */ + /* Red */ + /* Orange */ + /* Yellow */ + /* Green */ + /* Blue */ + /* Purple */ } + html.theme--documenter-dark html { + background-color: #1f2424; + font-size: 16px; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + html.theme--documenter-dark article, + html.theme--documenter-dark aside, + html.theme--documenter-dark figure, + html.theme--documenter-dark footer, + html.theme--documenter-dark header, + html.theme--documenter-dark hgroup, + html.theme--documenter-dark section { + display: block; } + html.theme--documenter-dark body, + html.theme--documenter-dark button, + html.theme--documenter-dark input, + html.theme--documenter-dark select, + html.theme--documenter-dark textarea { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; } + html.theme--documenter-dark code, + html.theme--documenter-dark pre { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; } + html.theme--documenter-dark body { + color: #fff; + font-size: 1em; + font-weight: 400; + line-height: 1.5; } + html.theme--documenter-dark a { + color: #1abc9c; + cursor: pointer; + text-decoration: none; } + html.theme--documenter-dark a strong { + color: currentColor; } + html.theme--documenter-dark a:hover { + color: #1dd2af; } + html.theme--documenter-dark code { + background-color: rgba(255, 255, 255, 0.05); + color: #ececec; + font-size: 0.875em; + font-weight: normal; + padding: 0.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: 0.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: 0.875em; + overflow-x: auto; + padding: 1.25rem 1.5rem; + white-space: pre; + word-wrap: normal; } + html.theme--documenter-dark pre code { + background-color: transparent; + color: currentColor; + font-size: 1em; + padding: 0; } + html.theme--documenter-dark table td, + html.theme--documenter-dark table th { + vertical-align: top; } + html.theme--documenter-dark table td:not([align]), + html.theme--documenter-dark table th:not([align]) { + text-align: left; } + html.theme--documenter-dark table th { + color: #f2f2f2; } + html.theme--documenter-dark .box { + background-color: #343c3d; + border-radius: 8px; + box-shadow: none; + color: #fff; + display: block; + padding: 1.25rem; } + html.theme--documenter-dark a.box:hover, html.theme--documenter-dark a.box:focus { + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #1abc9c; } + html.theme--documenter-dark a.box:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #1abc9c; } + html.theme--documenter-dark .button { + background-color: #282f2f; + border-color: #4c5759; + border-width: 1px; + color: #375a7f; + cursor: pointer; + justify-content: center; + padding-bottom: calc(0.375em - 1px); + padding-left: 0.75em; + padding-right: 0.75em; + padding-top: calc(0.375em - 1px); + text-align: center; + white-space: nowrap; } + html.theme--documenter-dark .button strong { + color: inherit; } + html.theme--documenter-dark .button .icon, html.theme--documenter-dark .button .icon.is-small, html.theme--documenter-dark .button #documenter .docs-sidebar form.docs-search > input.icon, html.theme--documenter-dark #documenter .docs-sidebar .button form.docs-search > input.icon, html.theme--documenter-dark .button .icon.is-medium, html.theme--documenter-dark .button .icon.is-large { + height: 1.5em; + width: 1.5em; } + html.theme--documenter-dark .button .icon:first-child:not(:last-child) { + margin-left: calc(-0.375em - 1px); + margin-right: 0.1875em; } + html.theme--documenter-dark .button .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: calc(-0.375em - 1px); } + html.theme--documenter-dark .button .icon:first-child:last-child { + margin-left: calc(-0.375em - 1px); + margin-right: calc(-0.375em - 1px); } + html.theme--documenter-dark .button:hover, html.theme--documenter-dark .button.is-hovered { + border-color: #8c9b9d; + color: #f2f2f2; } + html.theme--documenter-dark .button:focus, html.theme--documenter-dark .button.is-focused { + border-color: #8c9b9d; + color: #17a689; } + html.theme--documenter-dark .button:focus:not(:active), html.theme--documenter-dark .button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .button:active, html.theme--documenter-dark .button.is-active { + border-color: #343c3d; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text { + background-color: transparent; + border-color: transparent; + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .button.is-text:hover, html.theme--documenter-dark .button.is-text.is-hovered, html.theme--documenter-dark .button.is-text:focus, html.theme--documenter-dark .button.is-text.is-focused { + background-color: #282f2f; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text:active, html.theme--documenter-dark .button.is-text.is-active { + background-color: #1d2122; + color: #f2f2f2; } + html.theme--documenter-dark .button.is-text[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-text { + background-color: transparent; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-white { + background-color: white; + 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: white; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-white.is-inverted { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .button.is-white.is-inverted:hover, html.theme--documenter-dark .button.is-white.is-inverted.is-hovered { + background-color: black; } + 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: white; } + 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: white; + color: white; } + 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: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-white.is-outlined.is-loading::after { + border-color: transparent transparent white white !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: white; + box-shadow: none; + color: white; } + 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: white; } + 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 white white !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: white; } + html.theme--documenter-dark .button.is-black:hover, html.theme--documenter-dark .button.is-black.is-hovered { + background-color: #040404; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black:focus, html.theme--documenter-dark .button.is-black.is-focused { + border-color: transparent; + color: white; } + 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: black; + border-color: transparent; + color: white; } + html.theme--documenter-dark .button.is-black[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-black.is-inverted { + background-color: white; + 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: white; + border-color: transparent; + box-shadow: none; + color: #0a0a0a; } + html.theme--documenter-dark .button.is-black.is-loading::after { + border-color: transparent transparent white white !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: white; } + 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 white white !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: white; + color: white; } + 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: white; + 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: white; + box-shadow: none; + color: white; } + html.theme--documenter-dark .button.is-light { + background-color: #ecf0f1; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:hover, html.theme--documenter-dark .button.is-light.is-hovered { + background-color: #e5eaec; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:focus, html.theme--documenter-dark .button.is-light.is-focused { + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light:focus:not(:active), html.theme--documenter-dark .button.is-light.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(236, 240, 241, 0.25); } + html.theme--documenter-dark .button.is-light:active, html.theme--documenter-dark .button.is-light.is-active { + background-color: #dde4e6; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .button.is-light[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light { + background-color: #ecf0f1; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-light.is-inverted { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-hovered { + background-color: #1d2122; } + html.theme--documenter-dark .button.is-light.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted { + background-color: #282f2f; + border-color: transparent; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-loading::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-light.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-outlined.is-focused { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-light.is-outlined.is-loading::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-light.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-light.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #282f2f; + color: #282f2f; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-focused { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-light.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-light.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #282f2f; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark, html.theme--documenter-dark .content kbd.button { + background-color: #282f2f; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:hover, html.theme--documenter-dark .content kbd.button:hover, html.theme--documenter-dark .button.is-dark.is-hovered, html.theme--documenter-dark .content kbd.button.is-hovered { + background-color: #232829; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:focus, html.theme--documenter-dark .content kbd.button:focus, html.theme--documenter-dark .button.is-dark.is-focused, html.theme--documenter-dark .content kbd.button.is-focused { + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark:focus:not(:active), html.theme--documenter-dark .content kbd.button:focus:not(:active), html.theme--documenter-dark .button.is-dark.is-focused:not(:active), html.theme--documenter-dark .content kbd.button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(40, 47, 47, 0.25); } + html.theme--documenter-dark .button.is-dark:active, html.theme--documenter-dark .content kbd.button:active, html.theme--documenter-dark .button.is-dark.is-active, html.theme--documenter-dark .content kbd.button.is-active { + background-color: #1d2122; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark[disabled], html.theme--documenter-dark .content kbd.button[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark, fieldset[disabled] html.theme--documenter-dark .content kbd.button { + background-color: #282f2f; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-dark.is-inverted, html.theme--documenter-dark .content kbd.button.is-inverted { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted:hover, html.theme--documenter-dark .content kbd.button.is-inverted:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-hovered { + background-color: #dde4e6; } + html.theme--documenter-dark .button.is-dark.is-inverted[disabled], html.theme--documenter-dark .content kbd.button.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted { + background-color: #ecf0f1; + border-color: transparent; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-loading::after, html.theme--documenter-dark .content kbd.button.is-loading::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-dark.is-outlined, html.theme--documenter-dark .content kbd.button.is-outlined { + background-color: transparent; + border-color: #282f2f; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-outlined.is-focused { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark.is-outlined.is-loading::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ecf0f1 #ecf0f1 !important; } + html.theme--documenter-dark .button.is-dark.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-outlined, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-outlined { + background-color: transparent; + border-color: #282f2f; + box-shadow: none; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:hover, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined:focus, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-focused { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #282f2f #282f2f !important; } + html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined[disabled], html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-dark.is-inverted.is-outlined, fieldset[disabled] html.theme--documenter-dark .content kbd.button.is-inverted.is-outlined { + background-color: transparent; + border-color: #ecf0f1; + box-shadow: none; + color: #ecf0f1; } + html.theme--documenter-dark .button.is-primary, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink { + background-color: #375a7f; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:hover, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-hovered.docs-sourcelink { + background-color: #335476; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:focus, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary:focus:not(:active), html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:focus:not(:active), html.theme--documenter-dark .button.is-primary.is-focused:not(:active), html.theme--documenter-dark .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) { + box-shadow: 0 0 0 0.125em rgba(55, 90, 127, 0.25); } + html.theme--documenter-dark .button.is-primary:active, html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink:active, html.theme--documenter-dark .button.is-primary.is-active, html.theme--documenter-dark .docstring > section > a.button.is-active.docs-sourcelink { + background-color: #2f4d6d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-primary[disabled], html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.docs-sourcelink { + background-color: #375a7f; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-primary.is-inverted, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-primary.is-inverted[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-loading.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-primary.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #375a7f; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink { + background-color: #375a7f; + border-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .button.is-primary.is-outlined.is-loading::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after { + border-color: transparent transparent #375a7f #375a7f !important; } + html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-primary.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-outlined, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #375a7f; + box-shadow: none; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:hover, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined:focus, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-focused, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink { + background-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #375a7f #375a7f !important; } + html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined[disabled], html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-primary.is-inverted.is-outlined, fieldset[disabled] html.theme--documenter-dark .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-link { + background-color: #1abc9c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:hover, html.theme--documenter-dark .button.is-link.is-hovered { + background-color: #18b193; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:focus, html.theme--documenter-dark .button.is-link.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link:focus:not(:active), html.theme--documenter-dark .button.is-link.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .button.is-link:active, html.theme--documenter-dark .button.is-link.is-active { + background-color: #17a689; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-link[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link { + background-color: #1abc9c; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-link.is-inverted { + background-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-link.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-link.is-outlined { + background-color: transparent; + border-color: #1abc9c; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-outlined.is-focused { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .button.is-link.is-outlined.is-loading::after { + border-color: transparent transparent #1abc9c #1abc9c !important; } + html.theme--documenter-dark .button.is-link.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-link.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-outlined { + background-color: transparent; + border-color: #1abc9c; + box-shadow: none; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #1abc9c #1abc9c !important; } + html.theme--documenter-dark .button.is-link.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-info { + background-color: #024c7d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:hover, html.theme--documenter-dark .button.is-info.is-hovered { + background-color: #024470; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:focus, html.theme--documenter-dark .button.is-info.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info:focus:not(:active), html.theme--documenter-dark .button.is-info.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(2, 76, 125, 0.25); } + html.theme--documenter-dark .button.is-info:active, html.theme--documenter-dark .button.is-info.is-active { + background-color: #023d64; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-info[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info { + background-color: #024c7d; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-info.is-inverted { + background-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-info.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-info.is-outlined { + background-color: transparent; + border-color: #024c7d; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-outlined.is-focused { + background-color: #024c7d; + border-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .button.is-info.is-outlined.is-loading::after { + border-color: transparent transparent #024c7d #024c7d !important; } + html.theme--documenter-dark .button.is-info.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-info.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-outlined { + background-color: transparent; + border-color: #024c7d; + box-shadow: none; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #024c7d #024c7d !important; } + html.theme--documenter-dark .button.is-info.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-success { + background-color: #008438; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:hover, html.theme--documenter-dark .button.is-success.is-hovered { + background-color: #007733; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:focus, html.theme--documenter-dark .button.is-success.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success:focus:not(:active), html.theme--documenter-dark .button.is-success.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(0, 132, 56, 0.25); } + html.theme--documenter-dark .button.is-success:active, html.theme--documenter-dark .button.is-success.is-active { + background-color: #006b2d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-success[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success { + background-color: #008438; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-success.is-inverted { + background-color: #fff; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-success.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-success.is-outlined { + background-color: transparent; + border-color: #008438; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-outlined.is-focused { + background-color: #008438; + border-color: #008438; + color: #fff; } + html.theme--documenter-dark .button.is-success.is-outlined.is-loading::after { + border-color: transparent transparent #008438 #008438 !important; } + html.theme--documenter-dark .button.is-success.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-success.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-outlined { + background-color: transparent; + border-color: #008438; + box-shadow: none; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #008438; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #008438 #008438 !important; } + html.theme--documenter-dark .button.is-success.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-warning { + background-color: #ad8100; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:hover, html.theme--documenter-dark .button.is-warning.is-hovered { + background-color: #a07700; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:focus, html.theme--documenter-dark .button.is-warning.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning:focus:not(:active), html.theme--documenter-dark .button.is-warning.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(173, 129, 0, 0.25); } + html.theme--documenter-dark .button.is-warning:active, html.theme--documenter-dark .button.is-warning.is-active { + background-color: #946e00; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-warning[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning { + background-color: #ad8100; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-warning.is-inverted { + background-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-warning.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ad8100; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-outlined.is-focused { + background-color: #ad8100; + border-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .button.is-warning.is-outlined.is-loading::after { + border-color: transparent transparent #ad8100 #ad8100 !important; } + html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-warning.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ad8100; + box-shadow: none; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ad8100 #ad8100 !important; } + html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-danger { + background-color: #9e1b0d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:hover, html.theme--documenter-dark .button.is-danger.is-hovered { + background-color: #92190c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:focus, html.theme--documenter-dark .button.is-danger.is-focused { + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger:focus:not(:active), html.theme--documenter-dark .button.is-danger.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(158, 27, 13, 0.25); } + html.theme--documenter-dark .button.is-danger:active, html.theme--documenter-dark .button.is-danger.is-active { + background-color: #86170b; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .button.is-danger[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger { + background-color: #9e1b0d; + border-color: transparent; + box-shadow: none; } + html.theme--documenter-dark .button.is-danger.is-inverted { + background-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-hovered { + background-color: #f2f2f2; } + html.theme--documenter-dark .button.is-danger.is-inverted[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-danger.is-outlined { + background-color: transparent; + border-color: #9e1b0d; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-outlined.is-focused { + background-color: #9e1b0d; + border-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .button.is-danger.is-outlined.is-loading::after { + border-color: transparent transparent #9e1b0d #9e1b0d !important; } + html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + html.theme--documenter-dark .button.is-danger.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-outlined { + background-color: transparent; + border-color: #9e1b0d; + box-shadow: none; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:hover, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-hovered, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined:focus, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #9e1b0d #9e1b0d !important; } + html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined[disabled], fieldset[disabled] html.theme--documenter-dark .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + html.theme--documenter-dark .button.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .button.is-normal { + font-size: 15px; } + html.theme--documenter-dark .button.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .button.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .button[disabled], fieldset[disabled] html.theme--documenter-dark .button { + background-color: #8c9b9d; + border-color: #dbdee0; + box-shadow: none; + opacity: 0.5; } + html.theme--documenter-dark .button.is-fullwidth { + display: flex; + width: 100%; } + html.theme--documenter-dark .button.is-loading { + color: transparent !important; + pointer-events: none; } + html.theme--documenter-dark .button.is-loading::after { + position: absolute; + left: calc(50% - (1em / 2)); + top: calc(50% - (1em / 2)); + position: absolute !important; } + html.theme--documenter-dark .button.is-static { + background-color: #282f2f; + border-color: #5e6d6f; + color: #dbdee0; + box-shadow: none; + pointer-events: none; } + html.theme--documenter-dark .button.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .buttons { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .buttons .button { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .buttons .button:not(:last-child):not(.is-fullwidth) { + margin-right: 0.5rem; } + html.theme--documenter-dark .buttons:last-child { + margin-bottom: -0.5rem; } + html.theme--documenter-dark .buttons:not(:last-child) { + margin-bottom: 1rem; } + html.theme--documenter-dark .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) { + border-radius: 3px; + font-size: 0.85em; } + html.theme--documenter-dark .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) { + font-size: 1.25rem; } + html.theme--documenter-dark .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) { + font-size: 1.5rem; } + html.theme--documenter-dark .buttons.has-addons .button:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .buttons.has-addons .button:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + margin-right: -1px; } + html.theme--documenter-dark .buttons.has-addons .button:last-child { + margin-right: 0; } + html.theme--documenter-dark .buttons.has-addons .button:hover, html.theme--documenter-dark .buttons.has-addons .button.is-hovered { + z-index: 2; } + html.theme--documenter-dark .buttons.has-addons .button:focus, html.theme--documenter-dark .buttons.has-addons .button.is-focused, html.theme--documenter-dark .buttons.has-addons .button:active, html.theme--documenter-dark .buttons.has-addons .button.is-active, html.theme--documenter-dark .buttons.has-addons .button.is-selected { + z-index: 3; } + html.theme--documenter-dark .buttons.has-addons .button:focus:hover, html.theme--documenter-dark .buttons.has-addons .button.is-focused:hover, html.theme--documenter-dark .buttons.has-addons .button:active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-active:hover, html.theme--documenter-dark .buttons.has-addons .button.is-selected:hover { + z-index: 4; } + html.theme--documenter-dark .buttons.has-addons .button.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .buttons.is-centered { + justify-content: center; } + html.theme--documenter-dark .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + html.theme--documenter-dark .buttons.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + html.theme--documenter-dark .container { + flex-grow: 1; + margin: 0 auto; + position: relative; + width: auto; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .container { + max-width: 992px; } + html.theme--documenter-dark .container.is-fluid { + margin-left: 32px; + margin-right: 32px; + max-width: none; } } + @media screen and (max-width: 1215px) { + html.theme--documenter-dark .container.is-widescreen { + max-width: 1152px; } } + @media screen and (max-width: 1407px) { + html.theme--documenter-dark .container.is-fullhd { + max-width: 1344px; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .container { + max-width: 1152px; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .container { + max-width: 1344px; } } + html.theme--documenter-dark .content li + li { + margin-top: 0.25em; } + html.theme--documenter-dark .content p:not(:last-child), + html.theme--documenter-dark .content dl:not(:last-child), + html.theme--documenter-dark .content ol:not(:last-child), + html.theme--documenter-dark .content ul:not(:last-child), + html.theme--documenter-dark .content blockquote:not(:last-child), + html.theme--documenter-dark .content pre:not(:last-child), + html.theme--documenter-dark .content table:not(:last-child) { + margin-bottom: 1em; } + html.theme--documenter-dark .content h1, + html.theme--documenter-dark .content h2, + html.theme--documenter-dark .content h3, + html.theme--documenter-dark .content h4, + html.theme--documenter-dark .content h5, + html.theme--documenter-dark .content h6 { + color: #f2f2f2; + font-weight: 600; + line-height: 1.125; } + html.theme--documenter-dark .content h1 { + font-size: 2em; + margin-bottom: 0.5em; } + html.theme--documenter-dark .content h1:not(:first-child) { + margin-top: 1em; } + html.theme--documenter-dark .content h2 { + font-size: 1.75em; + margin-bottom: 0.5714em; } + html.theme--documenter-dark .content h2:not(:first-child) { + margin-top: 1.1428em; } + html.theme--documenter-dark .content h3 { + font-size: 1.5em; + margin-bottom: 0.6666em; } + html.theme--documenter-dark .content h3:not(:first-child) { + margin-top: 1.3333em; } + html.theme--documenter-dark .content h4 { + font-size: 1.25em; + margin-bottom: 0.8em; } + html.theme--documenter-dark .content h5 { + font-size: 1.125em; + margin-bottom: 0.8888em; } + html.theme--documenter-dark .content h6 { + font-size: 1em; + margin-bottom: 1em; } + html.theme--documenter-dark .content blockquote { + background-color: #282f2f; + border-left: 5px solid #5e6d6f; + padding: 1.25em 1.5em; } + html.theme--documenter-dark .content ol { + list-style-position: outside; + margin-left: 2em; + margin-top: 1em; } + html.theme--documenter-dark .content ol:not([type]) { + list-style-type: decimal; } + html.theme--documenter-dark .content ol.is-lower-alpha:not([type]) { + list-style-type: lower-alpha; } + html.theme--documenter-dark .content ol.is-lower-roman:not([type]) { + list-style-type: lower-roman; } + html.theme--documenter-dark .content ol.is-upper-alpha:not([type]) { + list-style-type: upper-alpha; } + html.theme--documenter-dark .content ol.is-upper-roman:not([type]) { + list-style-type: upper-roman; } + html.theme--documenter-dark .content ul { + list-style: disc outside; + margin-left: 2em; + margin-top: 1em; } + html.theme--documenter-dark .content ul ul { + list-style-type: circle; + margin-top: 0.5em; } + html.theme--documenter-dark .content ul ul ul { + list-style-type: square; } + html.theme--documenter-dark .content dd { + margin-left: 2em; } + html.theme--documenter-dark .content figure { + margin-left: 2em; + margin-right: 2em; + text-align: center; } + html.theme--documenter-dark .content figure:not(:first-child) { + margin-top: 2em; } + html.theme--documenter-dark .content figure:not(:last-child) { + margin-bottom: 2em; } + html.theme--documenter-dark .content figure img { + display: inline-block; } + html.theme--documenter-dark .content figure figcaption { + font-style: italic; } + html.theme--documenter-dark .content pre { + -webkit-overflow-scrolling: touch; + overflow-x: auto; + padding: 0; + white-space: pre; + word-wrap: normal; } + html.theme--documenter-dark .content sup, + html.theme--documenter-dark .content sub { + font-size: 75%; } + html.theme--documenter-dark .content table { + width: 100%; } + html.theme--documenter-dark .content table td, + html.theme--documenter-dark .content table th { + border: 1px solid #5e6d6f; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + html.theme--documenter-dark .content table th { + color: #f2f2f2; } + html.theme--documenter-dark .content table th:not([align]) { + text-align: left; } + html.theme--documenter-dark .content table thead td, + html.theme--documenter-dark .content table thead th { + border-width: 0 0 2px; + color: #f2f2f2; } + html.theme--documenter-dark .content table tfoot td, + html.theme--documenter-dark .content table tfoot th { + border-width: 2px 0 0; + color: #f2f2f2; } + html.theme--documenter-dark .content table tbody tr:last-child td, + html.theme--documenter-dark .content table tbody tr:last-child th { + border-bottom-width: 0; } + html.theme--documenter-dark .content .tabs li + li { + margin-top: 0; } + html.theme--documenter-dark .content.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.content { + font-size: 0.85em; } + html.theme--documenter-dark .content.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .content.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .icon { + align-items: center; + display: inline-flex; + justify-content: center; + height: 1.5rem; + width: 1.5rem; } + html.theme--documenter-dark .icon.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.icon { + height: 1rem; + width: 1rem; } + html.theme--documenter-dark .icon.is-medium { + height: 2rem; + width: 2rem; } + html.theme--documenter-dark .icon.is-large { + height: 3rem; + width: 3rem; } + html.theme--documenter-dark .image, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img { + display: block; + position: relative; } + html.theme--documenter-dark .image img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img { + display: block; + height: auto; + width: 100%; } + html.theme--documenter-dark .image img.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img img.is-rounded { + border-radius: 290486px; } + html.theme--documenter-dark .image.is-square img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square img, + html.theme--documenter-dark .image.is-square .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, html.theme--documenter-dark .image.is-1by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 img, + html.theme--documenter-dark .image.is-1by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, html.theme--documenter-dark .image.is-5by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 img, + html.theme--documenter-dark .image.is-5by4 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, html.theme--documenter-dark .image.is-4by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 img, + html.theme--documenter-dark .image.is-4by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, html.theme--documenter-dark .image.is-3by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 img, + html.theme--documenter-dark .image.is-3by2 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, html.theme--documenter-dark .image.is-5by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 img, + html.theme--documenter-dark .image.is-5by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, html.theme--documenter-dark .image.is-16by9 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 img, + html.theme--documenter-dark .image.is-16by9 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, html.theme--documenter-dark .image.is-2by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 img, + html.theme--documenter-dark .image.is-2by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, html.theme--documenter-dark .image.is-3by1 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 img, + html.theme--documenter-dark .image.is-3by1 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, html.theme--documenter-dark .image.is-4by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 img, + html.theme--documenter-dark .image.is-4by5 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, html.theme--documenter-dark .image.is-3by4 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 img, + html.theme--documenter-dark .image.is-3by4 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, html.theme--documenter-dark .image.is-2by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 img, + html.theme--documenter-dark .image.is-2by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, html.theme--documenter-dark .image.is-3by5 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 img, + html.theme--documenter-dark .image.is-3by5 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, html.theme--documenter-dark .image.is-9by16 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 img, + html.theme--documenter-dark .image.is-9by16 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, html.theme--documenter-dark .image.is-1by2 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 img, + html.theme--documenter-dark .image.is-1by2 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, html.theme--documenter-dark .image.is-1by3 img, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 img, + html.theme--documenter-dark .image.is-1by3 .has-ratio, + html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio { + height: 100%; + width: 100%; } + html.theme--documenter-dark .image.is-square, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-square, html.theme--documenter-dark .image.is-1by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by1 { + padding-top: 100%; } + html.theme--documenter-dark .image.is-5by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by4 { + padding-top: 80%; } + html.theme--documenter-dark .image.is-4by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by3 { + padding-top: 75%; } + html.theme--documenter-dark .image.is-3by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by2 { + padding-top: 66.6666%; } + html.theme--documenter-dark .image.is-5by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-5by3 { + padding-top: 60%; } + html.theme--documenter-dark .image.is-16by9, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16by9 { + padding-top: 56.25%; } + html.theme--documenter-dark .image.is-2by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by1 { + padding-top: 50%; } + html.theme--documenter-dark .image.is-3by1, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by1 { + padding-top: 33.3333%; } + html.theme--documenter-dark .image.is-4by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-4by5 { + padding-top: 125%; } + html.theme--documenter-dark .image.is-3by4, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by4 { + padding-top: 133.3333%; } + html.theme--documenter-dark .image.is-2by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-2by3 { + padding-top: 150%; } + html.theme--documenter-dark .image.is-3by5, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-3by5 { + padding-top: 166.6666%; } + html.theme--documenter-dark .image.is-9by16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-9by16 { + padding-top: 177.7777%; } + html.theme--documenter-dark .image.is-1by2, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by2 { + padding-top: 200%; } + html.theme--documenter-dark .image.is-1by3, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-1by3 { + padding-top: 300%; } + html.theme--documenter-dark .image.is-16x16, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-16x16 { + height: 16px; + width: 16px; } + html.theme--documenter-dark .image.is-24x24, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-24x24 { + height: 24px; + width: 24px; } + html.theme--documenter-dark .image.is-32x32, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-32x32 { + height: 32px; + width: 32px; } + html.theme--documenter-dark .image.is-48x48, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-48x48 { + height: 48px; + width: 48px; } + html.theme--documenter-dark .image.is-64x64, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-64x64 { + height: 64px; + width: 64px; } + html.theme--documenter-dark .image.is-96x96, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-96x96 { + height: 96px; + width: 96px; } + html.theme--documenter-dark .image.is-128x128, html.theme--documenter-dark #documenter .docs-sidebar .docs-logo > img.is-128x128 { + height: 128px; + width: 128px; } + html.theme--documenter-dark .notification { + background-color: #282f2f; + border-radius: 0.4em; + padding: 1.25rem 2.5rem 1.25rem 1.5rem; + position: relative; } + html.theme--documenter-dark .notification a:not(.button):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + html.theme--documenter-dark .notification strong { + color: currentColor; } + html.theme--documenter-dark .notification code, + html.theme--documenter-dark .notification pre { + background: white; } + html.theme--documenter-dark .notification pre code { + background: transparent; } + html.theme--documenter-dark .notification > .delete { + position: absolute; + right: 0.5rem; + top: 0.5rem; } + html.theme--documenter-dark .notification .title, + html.theme--documenter-dark .notification .subtitle, + html.theme--documenter-dark .notification .content { + color: currentColor; } + html.theme--documenter-dark .notification.is-white { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .notification.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .notification.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .notification.is-dark, html.theme--documenter-dark .content kbd.notification { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .notification.is-primary, html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .notification.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .notification.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .notification.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .notification.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .notification.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .progress { + -moz-appearance: none; + -webkit-appearance: none; + border: none; + border-radius: 290486px; + display: block; + height: 15px; + overflow: hidden; + padding: 0; + width: 100%; } + html.theme--documenter-dark .progress::-webkit-progress-bar { + background-color: #5e6d6f; } + html.theme--documenter-dark .progress::-webkit-progress-value { + background-color: #dbdee0; } + html.theme--documenter-dark .progress::-moz-progress-bar { + background-color: #dbdee0; } + html.theme--documenter-dark .progress::-ms-fill { + background-color: #dbdee0; + border: none; } + html.theme--documenter-dark .progress.is-white::-webkit-progress-value { + background-color: white; } + html.theme--documenter-dark .progress.is-white::-moz-progress-bar { + background-color: white; } + html.theme--documenter-dark .progress.is-white::-ms-fill { + background-color: white; } + html.theme--documenter-dark .progress.is-white:indeterminate { + background-image: linear-gradient(to right, white 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-black::-webkit-progress-value { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black::-moz-progress-bar { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black::-ms-fill { + background-color: #0a0a0a; } + html.theme--documenter-dark .progress.is-black:indeterminate { + background-image: linear-gradient(to right, #0a0a0a 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-light::-webkit-progress-value { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light::-moz-progress-bar { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light::-ms-fill { + background-color: #ecf0f1; } + html.theme--documenter-dark .progress.is-light:indeterminate { + background-image: linear-gradient(to right, #ecf0f1 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-dark::-webkit-progress-value, html.theme--documenter-dark .content kbd.progress::-webkit-progress-value { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark::-moz-progress-bar, html.theme--documenter-dark .content kbd.progress::-moz-progress-bar { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark::-ms-fill, html.theme--documenter-dark .content kbd.progress::-ms-fill { + background-color: #282f2f; } + html.theme--documenter-dark .progress.is-dark:indeterminate, html.theme--documenter-dark .content kbd.progress:indeterminate { + background-image: linear-gradient(to right, #282f2f 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-primary::-webkit-progress-value, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary::-moz-progress-bar, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary::-ms-fill, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink::-ms-fill { + background-color: #375a7f; } + html.theme--documenter-dark .progress.is-primary:indeterminate, html.theme--documenter-dark .docstring > section > a.progress.docs-sourcelink:indeterminate { + background-image: linear-gradient(to right, #375a7f 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-link::-webkit-progress-value { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link::-moz-progress-bar { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link::-ms-fill { + background-color: #1abc9c; } + html.theme--documenter-dark .progress.is-link:indeterminate { + background-image: linear-gradient(to right, #1abc9c 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-info::-webkit-progress-value { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info::-moz-progress-bar { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info::-ms-fill { + background-color: #024c7d; } + html.theme--documenter-dark .progress.is-info:indeterminate { + background-image: linear-gradient(to right, #024c7d 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-success::-webkit-progress-value { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success::-moz-progress-bar { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success::-ms-fill { + background-color: #008438; } + html.theme--documenter-dark .progress.is-success:indeterminate { + background-image: linear-gradient(to right, #008438 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-warning::-webkit-progress-value { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning::-moz-progress-bar { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning::-ms-fill { + background-color: #ad8100; } + html.theme--documenter-dark .progress.is-warning:indeterminate { + background-image: linear-gradient(to right, #ad8100 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress.is-danger::-webkit-progress-value { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger::-moz-progress-bar { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger::-ms-fill { + background-color: #9e1b0d; } + html.theme--documenter-dark .progress.is-danger:indeterminate { + background-image: linear-gradient(to right, #9e1b0d 30%, #5e6d6f 30%); } + html.theme--documenter-dark .progress:indeterminate { + animation-duration: 1.5s; + animation-iteration-count: infinite; + animation-name: moveIndeterminate; + animation-timing-function: linear; + background-color: #5e6d6f; + background-image: linear-gradient(to right, #fff 30%, #5e6d6f 30%); + background-position: top left; + background-repeat: no-repeat; + background-size: 150% 150%; } + html.theme--documenter-dark .progress:indeterminate::-webkit-progress-bar { + background-color: transparent; } + html.theme--documenter-dark .progress:indeterminate::-moz-progress-bar { + background-color: transparent; } + html.theme--documenter-dark .progress.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.progress { + height: 0.85em; } + html.theme--documenter-dark .progress.is-medium { + height: 1.25rem; } + html.theme--documenter-dark .progress.is-large { + height: 1.5rem; } + +@keyframes moveIndeterminate { + from { + background-position: 200% 0; } + to { + background-position: -200% 0; } } + html.theme--documenter-dark .table { + background-color: #343c3d; + color: #fff; } + html.theme--documenter-dark .table td, + html.theme--documenter-dark .table th { + border: 1px solid #5e6d6f; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + html.theme--documenter-dark .table td.is-white, + html.theme--documenter-dark .table th.is-white { + background-color: white; + border-color: white; + 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: white; } + html.theme--documenter-dark .table td.is-light, + html.theme--documenter-dark .table th.is-light { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .table td.is-dark, + html.theme--documenter-dark .table th.is-dark { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .table td.is-primary, + html.theme--documenter-dark .table th.is-primary { + background-color: #375a7f; + border-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table td.is-link, + html.theme--documenter-dark .table th.is-link { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .table td.is-info, + html.theme--documenter-dark .table th.is-info { + background-color: #024c7d; + border-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .table td.is-success, + html.theme--documenter-dark .table th.is-success { + background-color: #008438; + border-color: #008438; + color: #fff; } + html.theme--documenter-dark .table td.is-warning, + html.theme--documenter-dark .table th.is-warning { + background-color: #ad8100; + border-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .table td.is-danger, + html.theme--documenter-dark .table th.is-danger { + background-color: #9e1b0d; + border-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .table td.is-narrow, + html.theme--documenter-dark .table th.is-narrow { + white-space: nowrap; + width: 1%; } + html.theme--documenter-dark .table td.is-selected, + html.theme--documenter-dark .table th.is-selected { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table td.is-selected a, + html.theme--documenter-dark .table td.is-selected strong, + html.theme--documenter-dark .table th.is-selected a, + html.theme--documenter-dark .table th.is-selected strong { + color: currentColor; } + html.theme--documenter-dark .table th { + color: #f2f2f2; } + html.theme--documenter-dark .table th:not([align]) { + text-align: left; } + html.theme--documenter-dark .table tr.is-selected { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .table tr.is-selected a, + html.theme--documenter-dark .table tr.is-selected strong { + color: currentColor; } + html.theme--documenter-dark .table tr.is-selected td, + html.theme--documenter-dark .table tr.is-selected th { + border-color: #fff; + color: currentColor; } + html.theme--documenter-dark .table thead { + background-color: transparent; } + 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: transparent; } + 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: transparent; } + html.theme--documenter-dark .table tbody tr:last-child td, + html.theme--documenter-dark .table tbody tr:last-child th { + border-bottom-width: 0; } + html.theme--documenter-dark .table.is-bordered td, + html.theme--documenter-dark .table.is-bordered th { + border-width: 1px; } + html.theme--documenter-dark .table.is-bordered tr:last-child td, + html.theme--documenter-dark .table.is-bordered tr:last-child th { + border-bottom-width: 1px; } + html.theme--documenter-dark .table.is-fullwidth { + width: 100%; } + html.theme--documenter-dark .table.is-hoverable tbody tr:not(.is-selected):hover { + background-color: #282f2f; } + html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover { + background-color: #282f2f; } + html.theme--documenter-dark .table.is-hoverable.is-striped tbody tr:not(.is-selected):hover:nth-child(even) { + background-color: #2d3435; } + html.theme--documenter-dark .table.is-narrow td, + html.theme--documenter-dark .table.is-narrow th { + padding: 0.25em 0.5em; } + html.theme--documenter-dark .table.is-striped tbody tr:not(.is-selected):nth-child(even) { + background-color: #282f2f; } + html.theme--documenter-dark .table-container { + -webkit-overflow-scrolling: touch; + overflow: auto; + overflow-y: hidden; + max-width: 100%; } + html.theme--documenter-dark .tags { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .tags .tag, html.theme--documenter-dark .tags .content kbd, html.theme--documenter-dark .content .tags kbd, html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .tags .tag:not(:last-child), html.theme--documenter-dark .tags .content kbd:not(:last-child), html.theme--documenter-dark .content .tags kbd:not(:last-child), html.theme--documenter-dark .tags .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0.5rem; } + html.theme--documenter-dark .tags:last-child { + margin-bottom: -0.5rem; } + html.theme--documenter-dark .tags:not(:last-child) { + margin-bottom: 1rem; } + html.theme--documenter-dark .tags.are-medium .tag:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .content kbd:not(.is-normal):not(.is-large), html.theme--documenter-dark .content .tags.are-medium kbd:not(.is-normal):not(.is-large), html.theme--documenter-dark .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large) { + font-size: 15px; } + html.theme--documenter-dark .tags.are-large .tag:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .content kbd:not(.is-normal):not(.is-medium), html.theme--documenter-dark .content .tags.are-large kbd:not(.is-normal):not(.is-medium), html.theme--documenter-dark .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium) { + font-size: 1.25rem; } + html.theme--documenter-dark .tags.is-centered { + justify-content: center; } + html.theme--documenter-dark .tags.is-centered .tag, html.theme--documenter-dark .tags.is-centered .content kbd, html.theme--documenter-dark .content .tags.is-centered kbd, html.theme--documenter-dark .tags.is-centered .docstring > section > a.docs-sourcelink { + margin-right: 0.25rem; + margin-left: 0.25rem; } + html.theme--documenter-dark .tags.is-right { + justify-content: flex-end; } + html.theme--documenter-dark .tags.is-right .tag:not(:first-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:first-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0.5rem; } + html.theme--documenter-dark .tags.is-right .tag:not(:last-child), html.theme--documenter-dark .tags.is-right .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.is-right kbd:not(:last-child), html.theme--documenter-dark .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0; } + html.theme--documenter-dark .tags.has-addons .tag, html.theme--documenter-dark .tags.has-addons .content kbd, html.theme--documenter-dark .content .tags.has-addons kbd, html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink { + margin-right: 0; } + html.theme--documenter-dark .tags.has-addons .tag:not(:first-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:first-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:first-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0; + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .tags.has-addons .tag:not(:last-child), html.theme--documenter-dark .tags.has-addons .content kbd:not(:last-child), html.theme--documenter-dark .content .tags.has-addons kbd:not(:last-child), html.theme--documenter-dark .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .tag:not(body), html.theme--documenter-dark .content kbd:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) { + align-items: center; + background-color: #282f2f; + border-radius: 0.4em; + color: #fff; + display: inline-flex; + font-size: 0.85em; + height: 2em; + justify-content: center; + line-height: 1.5; + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + html.theme--documenter-dark .tag:not(body) .delete, html.theme--documenter-dark .content kbd:not(body) .delete, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .delete { + margin-left: 0.25rem; + margin-right: -0.375rem; } + html.theme--documenter-dark .tag.is-white:not(body), html.theme--documenter-dark .content kbd.is-white:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-white:not(body) { + background-color: white; + 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: white; } + html.theme--documenter-dark .tag.is-light:not(body), html.theme--documenter-dark .content kbd.is-light:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-light:not(body) { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .tag.is-dark:not(body), html.theme--documenter-dark .content kbd:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-dark:not(body), html.theme--documenter-dark .content .docstring > section > kbd:not(body) { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .tag.is-primary:not(body), html.theme--documenter-dark .content kbd.is-primary:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .tag.is-link:not(body), html.theme--documenter-dark .content kbd.is-link:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-link:not(body) { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .tag.is-info:not(body), html.theme--documenter-dark .content kbd.is-info:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-info:not(body) { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .tag.is-success:not(body), html.theme--documenter-dark .content kbd.is-success:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-success:not(body) { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .tag.is-warning:not(body), html.theme--documenter-dark .content kbd.is-warning:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-warning:not(body) { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .tag.is-danger:not(body), html.theme--documenter-dark .content kbd.is-danger:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-danger:not(body) { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .tag.is-normal:not(body), html.theme--documenter-dark .content kbd.is-normal:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-normal:not(body) { + font-size: 0.85em; } + html.theme--documenter-dark .tag.is-medium:not(body), html.theme--documenter-dark .content kbd.is-medium:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-medium:not(body) { + font-size: 15px; } + html.theme--documenter-dark .tag.is-large:not(body), html.theme--documenter-dark .content kbd.is-large:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-large:not(body) { + font-size: 1.25rem; } + html.theme--documenter-dark .tag:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .content kbd:not(body) .icon:first-child:not(:last-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child) { + margin-left: -0.375em; + margin-right: 0.1875em; } + html.theme--documenter-dark .tag:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .content kbd:not(body) .icon:last-child:not(:first-child), html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: -0.375em; } + html.theme--documenter-dark .tag:not(body) .icon:first-child:last-child, html.theme--documenter-dark .content kbd:not(body) .icon:first-child:last-child, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child { + margin-left: -0.375em; + margin-right: -0.375em; } + html.theme--documenter-dark .tag.is-delete:not(body), html.theme--documenter-dark .content kbd.is-delete:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body) { + margin-left: 1px; + padding: 0; + position: relative; + width: 2em; } + html.theme--documenter-dark .tag.is-delete:not(body)::before, html.theme--documenter-dark .content kbd.is-delete:not(body)::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::before, html.theme--documenter-dark .tag.is-delete:not(body)::after, html.theme--documenter-dark .content kbd.is-delete:not(body)::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + background-color: currentColor; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + html.theme--documenter-dark .tag.is-delete:not(body)::before, html.theme--documenter-dark .content kbd.is-delete:not(body)::before, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::before { + height: 1px; + width: 50%; } + html.theme--documenter-dark .tag.is-delete:not(body)::after, html.theme--documenter-dark .content kbd.is-delete:not(body)::after, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + height: 50%; + width: 1px; } + html.theme--documenter-dark .tag.is-delete:not(body):hover, html.theme--documenter-dark .content kbd.is-delete:not(body):hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):hover, html.theme--documenter-dark .tag.is-delete:not(body):focus, html.theme--documenter-dark .content kbd.is-delete:not(body):focus, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):focus { + background-color: #1d2122; } + html.theme--documenter-dark .tag.is-delete:not(body):active, html.theme--documenter-dark .content kbd.is-delete:not(body):active, html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-delete:not(body):active { + background-color: #111414; } + html.theme--documenter-dark .tag.is-rounded:not(body), html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:not(body), html.theme--documenter-dark .content kbd.is-rounded:not(body), html.theme--documenter-dark #documenter .docs-sidebar .content form.docs-search > input:not(body), html.theme--documenter-dark .docstring > section > a.docs-sourcelink.is-rounded:not(body) { + border-radius: 290486px; } + html.theme--documenter-dark a.tag:hover, html.theme--documenter-dark .docstring > section > a.docs-sourcelink:hover { + text-decoration: underline; } + html.theme--documenter-dark .title, + html.theme--documenter-dark .subtitle { + word-break: break-word; } + html.theme--documenter-dark .title em, + html.theme--documenter-dark .title span, + html.theme--documenter-dark .subtitle em, + html.theme--documenter-dark .subtitle span { + font-weight: inherit; } + html.theme--documenter-dark .title sub, + html.theme--documenter-dark .subtitle sub { + font-size: 0.75em; } + html.theme--documenter-dark .title sup, + html.theme--documenter-dark .subtitle sup { + font-size: 0.75em; } + html.theme--documenter-dark .title .tag, html.theme--documenter-dark .title .content kbd, html.theme--documenter-dark .content .title kbd, html.theme--documenter-dark .title .docstring > section > a.docs-sourcelink, + html.theme--documenter-dark .subtitle .tag, + html.theme--documenter-dark .subtitle .content kbd, + html.theme--documenter-dark .content .subtitle kbd, + html.theme--documenter-dark .subtitle .docstring > section > a.docs-sourcelink { + vertical-align: middle; } + html.theme--documenter-dark .title { + color: #fff; + font-size: 2rem; + font-weight: 500; + line-height: 1.125; } + html.theme--documenter-dark .title strong { + color: inherit; + font-weight: inherit; } + html.theme--documenter-dark .title + .highlight { + margin-top: -0.75rem; } + html.theme--documenter-dark .title:not(.is-spaced) + .subtitle { + margin-top: -1.25rem; } + html.theme--documenter-dark .title.is-1 { + font-size: 3rem; } + html.theme--documenter-dark .title.is-2 { + font-size: 2.5rem; } + html.theme--documenter-dark .title.is-3 { + font-size: 2rem; } + html.theme--documenter-dark .title.is-4 { + font-size: 1.5rem; } + html.theme--documenter-dark .title.is-5 { + font-size: 1.25rem; } + html.theme--documenter-dark .title.is-6 { + font-size: 15px; } + html.theme--documenter-dark .title.is-7 { + font-size: 0.85em; } + html.theme--documenter-dark .subtitle { + color: #8c9b9d; + font-size: 1.25rem; + font-weight: 400; + line-height: 1.25; } + html.theme--documenter-dark .subtitle strong { + color: #8c9b9d; + font-weight: 600; } + html.theme--documenter-dark .subtitle:not(.is-spaced) + .title { + margin-top: -1.25rem; } + html.theme--documenter-dark .subtitle.is-1 { + font-size: 3rem; } + html.theme--documenter-dark .subtitle.is-2 { + font-size: 2.5rem; } + html.theme--documenter-dark .subtitle.is-3 { + font-size: 2rem; } + html.theme--documenter-dark .subtitle.is-4 { + font-size: 1.5rem; } + html.theme--documenter-dark .subtitle.is-5 { + font-size: 1.25rem; } + html.theme--documenter-dark .subtitle.is-6 { + font-size: 15px; } + html.theme--documenter-dark .subtitle.is-7 { + font-size: 0.85em; } + html.theme--documenter-dark .heading { + display: block; + font-size: 11px; + letter-spacing: 1px; + margin-bottom: 5px; + text-transform: uppercase; } + html.theme--documenter-dark .highlight { + font-weight: 400; + max-width: 100%; + overflow: hidden; + padding: 0; } + html.theme--documenter-dark .highlight pre { + overflow: auto; + max-width: 100%; } + html.theme--documenter-dark .number { + align-items: center; + background-color: #282f2f; + border-radius: 290486px; + display: inline-flex; + font-size: 1.25rem; + height: 2em; + justify-content: center; + margin-right: 1.5rem; + min-width: 2.5em; + padding: 0.25rem 0.5rem; + text-align: center; + vertical-align: top; } + html.theme--documenter-dark .select select, html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + background-color: #1f2424; + border-color: #5e6d6f; + border-radius: 0.4em; + color: #dbdee0; } + html.theme--documenter-dark .select select::-moz-placeholder, html.theme--documenter-dark .textarea::-moz-placeholder, html.theme--documenter-dark .input::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select::-webkit-input-placeholder, html.theme--documenter-dark .textarea::-webkit-input-placeholder, html.theme--documenter-dark .input::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select:-moz-placeholder, html.theme--documenter-dark .textarea:-moz-placeholder, html.theme--documenter-dark .input:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select:-ms-input-placeholder, html.theme--documenter-dark .textarea:-ms-input-placeholder, html.theme--documenter-dark .input:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder { + color: rgba(219, 222, 224, 0.3); } + html.theme--documenter-dark .select select:hover, html.theme--documenter-dark .textarea:hover, html.theme--documenter-dark .input:hover, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:hover, html.theme--documenter-dark .select select.is-hovered, html.theme--documenter-dark .is-hovered.textarea, html.theme--documenter-dark .is-hovered.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-hovered { + border-color: #8c9b9d; } + html.theme--documenter-dark .select select:focus, html.theme--documenter-dark .textarea:focus, html.theme--documenter-dark .input:focus, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:focus, html.theme--documenter-dark .select select.is-focused, html.theme--documenter-dark .is-focused.textarea, html.theme--documenter-dark .is-focused.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-focused, html.theme--documenter-dark .select select:active, html.theme--documenter-dark .textarea:active, html.theme--documenter-dark .input:active, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:active, html.theme--documenter-dark .select select.is-active, html.theme--documenter-dark .is-active.textarea, html.theme--documenter-dark .is-active.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-active { + border-color: #1abc9c; + box-shadow: 0 0 0 0.125em rgba(26, 188, 156, 0.25); } + html.theme--documenter-dark .select select[disabled], html.theme--documenter-dark .textarea[disabled], html.theme--documenter-dark .input[disabled], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled], fieldset[disabled] html.theme--documenter-dark .select select, fieldset[disabled] html.theme--documenter-dark .textarea, fieldset[disabled] html.theme--documenter-dark .input, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + background-color: #8c9b9d; + border-color: #282f2f; + box-shadow: none; + color: white; } + html.theme--documenter-dark .select select[disabled]::-moz-placeholder, html.theme--documenter-dark .textarea[disabled]::-moz-placeholder, html.theme--documenter-dark .input[disabled]::-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .select select::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .input::-moz-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-moz-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .select select[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .textarea[disabled]::-webkit-input-placeholder, html.theme--documenter-dark .input[disabled]::-webkit-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .select select::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark .input::-webkit-input-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .select select[disabled]:-moz-placeholder, html.theme--documenter-dark .textarea[disabled]:-moz-placeholder, html.theme--documenter-dark .input[disabled]:-moz-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .select select:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark .input:-moz-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-moz-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .select select[disabled]:-ms-input-placeholder, html.theme--documenter-dark .textarea[disabled]:-ms-input-placeholder, html.theme--documenter-dark .input[disabled]:-ms-input-placeholder, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .select select:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .textarea:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark .input:-ms-input-placeholder, fieldset[disabled] html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder { + color: rgba(255, 255, 255, 0.3); } + html.theme--documenter-dark .textarea, html.theme--documenter-dark .input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1); + max-width: 100%; + width: 100%; } + html.theme--documenter-dark .textarea[readonly], html.theme--documenter-dark .input[readonly], html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input[readonly] { + box-shadow: none; } + html.theme--documenter-dark .is-white.textarea, html.theme--documenter-dark .is-white.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-white { + border-color: white; } + 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: 0.85em; } + html.theme--documenter-dark .is-medium.textarea, html.theme--documenter-dark .is-medium.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .is-large.textarea, html.theme--documenter-dark .is-large.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .is-fullwidth.textarea, html.theme--documenter-dark .is-fullwidth.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-fullwidth { + display: block; + width: 100%; } + html.theme--documenter-dark .is-inline.textarea, html.theme--documenter-dark .is-inline.input, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-inline { + display: inline; + width: auto; } + html.theme--documenter-dark .input.is-rounded, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + html.theme--documenter-dark .input.is-static, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-static { + background-color: transparent; + border-color: transparent; + box-shadow: none; + padding-left: 0; + padding-right: 0; } + html.theme--documenter-dark .textarea { + display: block; + max-width: 100%; + min-width: 100%; + padding: 0.625em; + resize: vertical; } + html.theme--documenter-dark .textarea:not([rows]) { + max-height: 600px; + min-height: 120px; } + html.theme--documenter-dark .textarea[rows] { + height: initial; } + html.theme--documenter-dark .textarea.has-fixed-size { + resize: none; } + html.theme--documenter-dark .radio, html.theme--documenter-dark .checkbox { + cursor: pointer; + display: inline-block; + line-height: 1.25; + position: relative; } + html.theme--documenter-dark .radio input, html.theme--documenter-dark .checkbox input { + cursor: pointer; } + html.theme--documenter-dark .radio:hover, html.theme--documenter-dark .checkbox:hover { + color: #8c9b9d; } + html.theme--documenter-dark .radio[disabled], html.theme--documenter-dark .checkbox[disabled], fieldset[disabled] html.theme--documenter-dark .radio, fieldset[disabled] html.theme--documenter-dark .checkbox { + color: white; + cursor: not-allowed; } + html.theme--documenter-dark .radio + .radio { + margin-left: 0.5em; } + html.theme--documenter-dark .select { + display: inline-block; + max-width: 100%; + position: relative; + vertical-align: top; } + html.theme--documenter-dark .select:not(.is-multiple) { + height: 2.25em; } + html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading)::after { + border-color: #1abc9c; + right: 1.125em; + z-index: 4; } + html.theme--documenter-dark .select.is-rounded select, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.select select { + border-radius: 290486px; + padding-left: 1em; } + html.theme--documenter-dark .select select { + cursor: pointer; + display: block; + font-size: 1em; + max-width: 100%; + outline: none; } + html.theme--documenter-dark .select select::-ms-expand { + display: none; } + html.theme--documenter-dark .select select[disabled]:hover, fieldset[disabled] html.theme--documenter-dark .select select:hover { + border-color: #282f2f; } + html.theme--documenter-dark .select select:not([multiple]) { + padding-right: 2.5em; } + html.theme--documenter-dark .select select[multiple] { + height: auto; + padding: 0; } + html.theme--documenter-dark .select select[multiple] option { + padding: 0.5em 1em; } + html.theme--documenter-dark .select:not(.is-multiple):not(.is-loading):hover::after { + border-color: #8c9b9d; } + html.theme--documenter-dark .select.is-white:not(:hover)::after { + border-color: white; } + html.theme--documenter-dark .select.is-white select { + border-color: white; } + 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: black; } + 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: 0.85em; } + html.theme--documenter-dark .select.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .select.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .select.is-disabled::after { + border-color: white; } + html.theme--documenter-dark .select.is-fullwidth { + width: 100%; } + html.theme--documenter-dark .select.is-fullwidth select { + width: 100%; } + html.theme--documenter-dark .select.is-loading::after { + margin-top: 0; + position: absolute; + right: 0.625em; + top: 0.625em; + transform: none; } + html.theme--documenter-dark .select.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.85em; } + html.theme--documenter-dark .select.is-loading.is-medium:after { + font-size: 1.25rem; } + html.theme--documenter-dark .select.is-loading.is-large:after { + font-size: 1.5rem; } + html.theme--documenter-dark .file { + align-items: stretch; + display: flex; + justify-content: flex-start; + position: relative; } + html.theme--documenter-dark .file.is-white .file-cta { + background-color: white; + 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: white; } + 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: white; } + 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: white; } + html.theme--documenter-dark .file.is-black:active .file-cta, html.theme--documenter-dark .file.is-black.is-active .file-cta { + background-color: black; + border-color: transparent; + color: white; } + html.theme--documenter-dark .file.is-light .file-cta { + background-color: #ecf0f1; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-light:hover .file-cta, html.theme--documenter-dark .file.is-light.is-hovered .file-cta { + background-color: #e5eaec; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-light:focus .file-cta, html.theme--documenter-dark .file.is-light.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(236, 240, 241, 0.25); + color: #282f2f; } + html.theme--documenter-dark .file.is-light:active .file-cta, html.theme--documenter-dark .file.is-light.is-active .file-cta { + background-color: #dde4e6; + border-color: transparent; + color: #282f2f; } + html.theme--documenter-dark .file.is-dark .file-cta, html.theme--documenter-dark .content kbd.file .file-cta { + background-color: #282f2f; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:hover .file-cta, html.theme--documenter-dark .content kbd.file:hover .file-cta, html.theme--documenter-dark .file.is-dark.is-hovered .file-cta, html.theme--documenter-dark .content kbd.file.is-hovered .file-cta { + background-color: #232829; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:focus .file-cta, html.theme--documenter-dark .content kbd.file:focus .file-cta, html.theme--documenter-dark .file.is-dark.is-focused .file-cta, html.theme--documenter-dark .content kbd.file.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(40, 47, 47, 0.25); + color: #ecf0f1; } + html.theme--documenter-dark .file.is-dark:active .file-cta, html.theme--documenter-dark .content kbd.file:active .file-cta, html.theme--documenter-dark .file.is-dark.is-active .file-cta, html.theme--documenter-dark .content kbd.file.is-active .file-cta { + background-color: #1d2122; + border-color: transparent; + color: #ecf0f1; } + html.theme--documenter-dark .file.is-primary .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink .file-cta { + background-color: #375a7f; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-primary:hover .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:hover .file-cta, html.theme--documenter-dark .file.is-primary.is-hovered .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-hovered.docs-sourcelink .file-cta { + background-color: #335476; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-primary:focus .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:focus .file-cta, html.theme--documenter-dark .file.is-primary.is-focused .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-focused.docs-sourcelink .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(55, 90, 127, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-primary:active .file-cta, html.theme--documenter-dark .docstring > section > a.file.docs-sourcelink:active .file-cta, html.theme--documenter-dark .file.is-primary.is-active .file-cta, html.theme--documenter-dark .docstring > section > a.file.is-active.docs-sourcelink .file-cta { + background-color: #2f4d6d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link .file-cta { + background-color: #1abc9c; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link:hover .file-cta, html.theme--documenter-dark .file.is-link.is-hovered .file-cta { + background-color: #18b193; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-link:focus .file-cta, html.theme--documenter-dark .file.is-link.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(26, 188, 156, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-link:active .file-cta, html.theme--documenter-dark .file.is-link.is-active .file-cta { + background-color: #17a689; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info .file-cta { + background-color: #024c7d; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info:hover .file-cta, html.theme--documenter-dark .file.is-info.is-hovered .file-cta { + background-color: #024470; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-info:focus .file-cta, html.theme--documenter-dark .file.is-info.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(2, 76, 125, 0.25); + color: #fff; } + html.theme--documenter-dark .file.is-info:active .file-cta, html.theme--documenter-dark .file.is-info.is-active .file-cta { + background-color: #023d64; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success .file-cta { + background-color: #008438; + border-color: transparent; + color: #fff; } + html.theme--documenter-dark .file.is-success:hover .file-cta, html.theme--documenter-dark .file.is-success.is-hovered .file-cta { + background-color: #007733; + 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: 0.85em; } + html.theme--documenter-dark .file.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .file.is-medium .file-icon .fa { + font-size: 21px; } + html.theme--documenter-dark .file.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .file.is-large .file-icon .fa { + font-size: 28px; } + html.theme--documenter-dark .file.has-name .file-cta { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .file.has-name .file-name { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .file.has-name.is-empty .file-cta { + border-radius: 0.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: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .file.is-boxed.has-name .file-name { + border-radius: 0 0 0.4em 0.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 0.4em 0.4em 0; } + html.theme--documenter-dark .file.is-right .file-name { + border-radius: 0.4em 0 0 0.4em; + border-width: 1px 0 1px 1px; + order: -1; } + html.theme--documenter-dark .file-label { + align-items: stretch; + display: flex; + cursor: pointer; + justify-content: flex-start; + overflow: hidden; + position: relative; } + html.theme--documenter-dark .file-label:hover .file-cta { + background-color: #e5eaec; + color: #282f2f; } + html.theme--documenter-dark .file-label:hover .file-name { + border-color: #596668; } + html.theme--documenter-dark .file-label:active .file-cta { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .file-label:active .file-name { + border-color: #535f61; } + html.theme--documenter-dark .file-input { + height: 100%; + left: 0; + opacity: 0; + outline: none; + position: absolute; + top: 0; + width: 100%; } + html.theme--documenter-dark .file-cta, + html.theme--documenter-dark .file-name { + border-color: #5e6d6f; + border-radius: 0.4em; + font-size: 1em; + padding-left: 1em; + padding-right: 1em; + white-space: nowrap; } + html.theme--documenter-dark .file-cta { + background-color: #ecf0f1; + color: #343c3d; } + html.theme--documenter-dark .file-name { + border-color: #5e6d6f; + border-style: solid; + border-width: 1px 1px 1px 0; + display: block; + max-width: 16em; + overflow: hidden; + text-align: left; + text-overflow: ellipsis; } + html.theme--documenter-dark .file-icon { + align-items: center; + display: flex; + height: 1em; + justify-content: center; + margin-right: 0.5em; + width: 1em; } + html.theme--documenter-dark .file-icon .fa { + font-size: 14px; } + html.theme--documenter-dark .label { + color: #282f2f; + display: block; + font-size: 15px; + font-weight: 700; } + html.theme--documenter-dark .label:not(:last-child) { + margin-bottom: 0.5em; } + html.theme--documenter-dark .label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.label { + font-size: 0.85em; } + html.theme--documenter-dark .label.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .label.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .help { + display: block; + font-size: 0.85em; + margin-top: 0.25rem; } + html.theme--documenter-dark .help.is-white { + color: white; } + html.theme--documenter-dark .help.is-black { + color: #0a0a0a; } + html.theme--documenter-dark .help.is-light { + color: #ecf0f1; } + html.theme--documenter-dark .help.is-dark, html.theme--documenter-dark .content kbd.help { + color: #282f2f; } + html.theme--documenter-dark .help.is-primary, html.theme--documenter-dark .docstring > section > a.help.docs-sourcelink { + color: #375a7f; } + html.theme--documenter-dark .help.is-link { + color: #1abc9c; } + html.theme--documenter-dark .help.is-info { + color: #024c7d; } + html.theme--documenter-dark .help.is-success { + color: #008438; } + html.theme--documenter-dark .help.is-warning { + color: #ad8100; } + html.theme--documenter-dark .help.is-danger { + color: #9e1b0d; } + html.theme--documenter-dark .field:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .field.has-addons { + display: flex; + justify-content: flex-start; } + html.theme--documenter-dark .field.has-addons .control:not(:last-child) { + margin-right: -1px; } + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .button, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .input, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:not(:first-child):not(:last-child) .select select { + border-radius: 0; } + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .button, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .input, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:first-child:not(:only-child) .select select { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .button, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .input, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input, + html.theme--documenter-dark .field.has-addons .control:last-child:not(:only-child) .select select { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):hover, html.theme--documenter-dark .field.has-addons .control .button.is-hovered:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input.is-hovered:not([disabled]), + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-hovered:not([disabled]), + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-hovered:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select.is-hovered:not([disabled]) { + z-index: 2; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus, html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]), html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active, html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]), + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]), + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]), + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]), + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus, + html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]), + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active, + html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]) { + z-index: 3; } + html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):focus:hover, html.theme--documenter-dark .field.has-addons .control .button.is-focused:not([disabled]):hover, html.theme--documenter-dark .field.has-addons .control .button:not([disabled]):active:hover, html.theme--documenter-dark .field.has-addons .control .button.is-active:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control .input.is-focused:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .input:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control .input.is-active:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]):hover, + html.theme--documenter-dark #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):focus:hover, + html.theme--documenter-dark .field.has-addons .control .select select.is-focused:not([disabled]):hover, + html.theme--documenter-dark .field.has-addons .control .select select:not([disabled]):active:hover, + html.theme--documenter-dark .field.has-addons .control .select select.is-active:not([disabled]):hover { + z-index: 4; } + html.theme--documenter-dark .field.has-addons .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .field.has-addons.has-addons-centered { + justify-content: center; } + html.theme--documenter-dark .field.has-addons.has-addons-right { + justify-content: flex-end; } + html.theme--documenter-dark .field.has-addons.has-addons-fullwidth .control { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .field.is-grouped { + display: flex; + justify-content: flex-start; } + html.theme--documenter-dark .field.is-grouped > .control { + flex-shrink: 0; } + html.theme--documenter-dark .field.is-grouped > .control:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + html.theme--documenter-dark .field.is-grouped > .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .field.is-grouped.is-grouped-centered { + justify-content: center; } + html.theme--documenter-dark .field.is-grouped.is-grouped-right { + justify-content: flex-end; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline { + flex-wrap: wrap; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:last-child, html.theme--documenter-dark .field.is-grouped.is-grouped-multiline > .control:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .field.is-grouped.is-grouped-multiline:not(:last-child) { + margin-bottom: 0; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field.is-horizontal { + display: flex; } } + html.theme--documenter-dark .field-label .label { + font-size: inherit; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .field-label { + margin-bottom: 0.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field-label { + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + margin-right: 1.5rem; + text-align: right; } + html.theme--documenter-dark .field-label.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.field-label { + font-size: 0.85em; + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-normal { + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-medium { + font-size: 1.25rem; + padding-top: 0.375em; } + html.theme--documenter-dark .field-label.is-large { + font-size: 1.5rem; + padding-top: 0.375em; } } + html.theme--documenter-dark .field-body .field .field { + margin-bottom: 0; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .field-body { + display: flex; + flex-basis: 0; + flex-grow: 5; + flex-shrink: 1; } + html.theme--documenter-dark .field-body .field { + margin-bottom: 0; } + html.theme--documenter-dark .field-body > .field { + flex-shrink: 1; } + html.theme--documenter-dark .field-body > .field:not(.is-narrow) { + flex-grow: 1; } + html.theme--documenter-dark .field-body > .field:not(:last-child) { + margin-right: 0.75rem; } } + html.theme--documenter-dark .control { + box-sizing: border-box; + clear: both; + font-size: 15px; + position: relative; + text-align: left; } + html.theme--documenter-dark .control.has-icons-left .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right .input:focus ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select:focus ~ .icon { + color: #5e6d6f; } + html.theme--documenter-dark .control.has-icons-left .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-small ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-small ~ .icon { + font-size: 0.85em; } + html.theme--documenter-dark .control.has-icons-left .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-medium ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-medium ~ .icon { + font-size: 1.25rem; } + html.theme--documenter-dark .control.has-icons-left .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon, + html.theme--documenter-dark .control.has-icons-left .select.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right .input.is-large ~ .icon, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon, + html.theme--documenter-dark .control.has-icons-right .select.is-large ~ .icon { + font-size: 1.5rem; } + html.theme--documenter-dark .control.has-icons-left .icon, html.theme--documenter-dark .control.has-icons-right .icon { + color: #dbdee0; + height: 2.25em; + pointer-events: none; + position: absolute; + top: 0; + width: 2.25em; + z-index: 4; } + html.theme--documenter-dark .control.has-icons-left .input, html.theme--documenter-dark .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-left form.docs-search > input, + html.theme--documenter-dark .control.has-icons-left .select select { + padding-left: 2.25em; } + html.theme--documenter-dark .control.has-icons-left .icon.is-left { + left: 0; } + html.theme--documenter-dark .control.has-icons-right .input, html.theme--documenter-dark .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, html.theme--documenter-dark #documenter .docs-sidebar .control.has-icons-right form.docs-search > input, + html.theme--documenter-dark .control.has-icons-right .select select { + padding-right: 2.25em; } + html.theme--documenter-dark .control.has-icons-right .icon.is-right { + right: 0; } + html.theme--documenter-dark .control.is-loading::after { + position: absolute !important; + right: 0.625em; + top: 0.625em; + z-index: 4; } + html.theme--documenter-dark .control.is-loading.is-small:after, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.85em; } + html.theme--documenter-dark .control.is-loading.is-medium:after { + font-size: 1.25rem; } + html.theme--documenter-dark .control.is-loading.is-large:after { + font-size: 1.5rem; } + html.theme--documenter-dark .breadcrumb { + font-size: 15px; + white-space: nowrap; } + html.theme--documenter-dark .breadcrumb a { + align-items: center; + color: #1abc9c; + display: flex; + justify-content: center; + padding: 0 0.75em; } + html.theme--documenter-dark .breadcrumb a:hover { + color: #1dd2af; } + html.theme--documenter-dark .breadcrumb li { + align-items: center; + display: flex; } + html.theme--documenter-dark .breadcrumb li:first-child a { + padding-left: 0; } + html.theme--documenter-dark .breadcrumb li.is-active a { + color: #f2f2f2; + cursor: default; + pointer-events: none; } + html.theme--documenter-dark .breadcrumb li + li::before { + color: #8c9b9d; + content: "\0002f"; } + html.theme--documenter-dark .breadcrumb ul, + html.theme--documenter-dark .breadcrumb ol { + align-items: flex-start; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + html.theme--documenter-dark .breadcrumb .icon:first-child { + margin-right: 0.5em; } + html.theme--documenter-dark .breadcrumb .icon:last-child { + margin-left: 0.5em; } + html.theme--documenter-dark .breadcrumb.is-centered ol, + html.theme--documenter-dark .breadcrumb.is-centered ul { + justify-content: center; } + html.theme--documenter-dark .breadcrumb.is-right ol, + html.theme--documenter-dark .breadcrumb.is-right ul { + justify-content: flex-end; } + html.theme--documenter-dark .breadcrumb.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.breadcrumb { + font-size: 0.85em; } + html.theme--documenter-dark .breadcrumb.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .breadcrumb.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .breadcrumb.has-arrow-separator li + li::before { + content: "\02192"; } + html.theme--documenter-dark .breadcrumb.has-bullet-separator li + li::before { + content: "\02022"; } + html.theme--documenter-dark .breadcrumb.has-dot-separator li + li::before { + content: "\000b7"; } + html.theme--documenter-dark .breadcrumb.has-succeeds-separator li + li::before { + content: "\0227B"; } + html.theme--documenter-dark .card { + background-color: white; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #fff; + max-width: 100%; + position: relative; } + html.theme--documenter-dark .card-header { + background-color: transparent; + align-items: stretch; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + display: flex; } + html.theme--documenter-dark .card-header-title { + align-items: center; + color: #f2f2f2; + display: flex; + flex-grow: 1; + font-weight: 700; + padding: 0.75rem; } + html.theme--documenter-dark .card-header-title.is-centered { + justify-content: center; } + html.theme--documenter-dark .card-header-icon { + align-items: center; + cursor: pointer; + display: flex; + justify-content: center; + padding: 0.75rem; } + html.theme--documenter-dark .card-image { + display: block; + position: relative; } + html.theme--documenter-dark .card-content { + background-color: transparent; + padding: 1.5rem; } + html.theme--documenter-dark .card-footer { + background-color: transparent; + border-top: 1px solid #5e6d6f; + align-items: stretch; + display: flex; } + html.theme--documenter-dark .card-footer-item { + align-items: center; + display: flex; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + justify-content: center; + padding: 0.75rem; } + html.theme--documenter-dark .card-footer-item:not(:last-child) { + border-right: 1px solid #5e6d6f; } + html.theme--documenter-dark .card .media:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .dropdown { + display: inline-flex; + position: relative; + vertical-align: top; } + html.theme--documenter-dark .dropdown.is-active .dropdown-menu, html.theme--documenter-dark .dropdown.is-hoverable:hover .dropdown-menu { + display: block; } + html.theme--documenter-dark .dropdown.is-right .dropdown-menu { + left: auto; + right: 0; } + html.theme--documenter-dark .dropdown.is-up .dropdown-menu { + bottom: 100%; + padding-bottom: 4px; + padding-top: initial; + top: auto; } + html.theme--documenter-dark .dropdown-menu { + display: none; + left: 0; + min-width: 12rem; + padding-top: 4px; + position: absolute; + top: 100%; + z-index: 20; } + html.theme--documenter-dark .dropdown-content { + background-color: #282f2f; + border-radius: 0.4em; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + html.theme--documenter-dark .dropdown-item { + color: #fff; + display: block; + font-size: 0.875rem; + line-height: 1.5; + padding: 0.375rem 1rem; + position: relative; } + html.theme--documenter-dark a.dropdown-item, + html.theme--documenter-dark button.dropdown-item { + padding-right: 3rem; + text-align: left; + white-space: nowrap; + width: 100%; } + html.theme--documenter-dark a.dropdown-item:hover, + html.theme--documenter-dark button.dropdown-item:hover { + background-color: #282f2f; + color: #0a0a0a; } + html.theme--documenter-dark a.dropdown-item.is-active, + html.theme--documenter-dark button.dropdown-item.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .dropdown-divider { + background-color: #5e6d6f; + border: none; + display: block; + height: 1px; + margin: 0.5rem 0; } + html.theme--documenter-dark .level { + align-items: center; + justify-content: space-between; } + html.theme--documenter-dark .level code { + border-radius: 0.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: 0.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: 0.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: 0.75rem; } } + html.theme--documenter-dark .level-left { + align-items: center; + justify-content: flex-start; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .level-left + .level-right { + margin-top: 1.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-left { + display: flex; } } + html.theme--documenter-dark .level-right { + align-items: center; + justify-content: flex-end; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .level-right { + display: flex; } } + html.theme--documenter-dark .list { + background-color: white; + border-radius: 0.4em; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .list-item { + display: block; + padding: 0.5em 1em; } + html.theme--documenter-dark .list-item:not(a) { + color: #fff; } + html.theme--documenter-dark .list-item:first-child { + border-top-left-radius: 0.4em; + border-top-right-radius: 0.4em; } + html.theme--documenter-dark .list-item:last-child { + border-bottom-left-radius: 0.4em; + border-bottom-right-radius: 0.4em; } + html.theme--documenter-dark .list-item:not(:last-child) { + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .list-item.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark a.list-item { + background-color: #282f2f; + cursor: pointer; } + html.theme--documenter-dark .media { + align-items: flex-start; + display: flex; + text-align: left; } + html.theme--documenter-dark .media .content:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .media .media { + border-top: 1px solid rgba(94, 109, 111, 0.5); + display: flex; + padding-top: 0.75rem; } + html.theme--documenter-dark .media .media .content:not(:last-child), + html.theme--documenter-dark .media .media .control:not(:last-child) { + margin-bottom: 0.5rem; } + html.theme--documenter-dark .media .media .media { + padding-top: 0.5rem; } + html.theme--documenter-dark .media .media .media + .media { + margin-top: 0.5rem; } + html.theme--documenter-dark .media + .media { + border-top: 1px solid rgba(94, 109, 111, 0.5); + margin-top: 1rem; + padding-top: 1rem; } + html.theme--documenter-dark .media.is-large + .media { + margin-top: 1.5rem; + padding-top: 1.5rem; } + html.theme--documenter-dark .media-left, + html.theme--documenter-dark .media-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .media-left { + margin-right: 1rem; } + html.theme--documenter-dark .media-right { + margin-left: 1rem; } + html.theme--documenter-dark .media-content { + flex-basis: auto; + flex-grow: 1; + flex-shrink: 1; + text-align: left; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .media-content { + overflow-x: auto; } } + html.theme--documenter-dark .menu { + font-size: 15px; } + html.theme--documenter-dark .menu.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.menu { + font-size: 0.85em; } + html.theme--documenter-dark .menu.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .menu.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .menu-list { + line-height: 1.25; } + html.theme--documenter-dark .menu-list a { + border-radius: 3px; + color: #fff; + display: block; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .menu-list a:hover { + background-color: #282f2f; + color: #f2f2f2; } + html.theme--documenter-dark .menu-list a.is-active { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .menu-list li ul { + border-left: 1px solid #5e6d6f; + margin: 0.75em; + padding-left: 0.75em; } + html.theme--documenter-dark .menu-label { + color: white; + font-size: 0.75em; + letter-spacing: 0.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: 0.4em; + font-size: 15px; } + html.theme--documenter-dark .message strong { + color: currentColor; } + html.theme--documenter-dark .message a:not(.button):not(.tag):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + html.theme--documenter-dark .message.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.message { + font-size: 0.85em; } + html.theme--documenter-dark .message.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .message.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .message.is-white { + background-color: white; } + html.theme--documenter-dark .message.is-white .message-header { + background-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .message.is-white .message-body { + border-color: white; + color: #4d4d4d; } + html.theme--documenter-dark .message.is-black { + background-color: #fafafa; } + html.theme--documenter-dark .message.is-black .message-header { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .message.is-black .message-body { + border-color: #0a0a0a; + color: #090909; } + html.theme--documenter-dark .message.is-light { + background-color: #f9fafb; } + html.theme--documenter-dark .message.is-light .message-header { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .message.is-light .message-body { + border-color: #ecf0f1; + color: #505050; } + html.theme--documenter-dark .message.is-dark, html.theme--documenter-dark .content kbd.message { + background-color: #f9fafa; } + html.theme--documenter-dark .message.is-dark .message-header, html.theme--documenter-dark .content kbd.message .message-header { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .message.is-dark .message-body, html.theme--documenter-dark .content kbd.message .message-body { + border-color: #282f2f; + color: #212526; } + html.theme--documenter-dark .message.is-primary, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink { + background-color: #f8fafc; } + html.theme--documenter-dark .message.is-primary .message-header, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-header { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .message.is-primary .message-body, html.theme--documenter-dark .docstring > section > a.message.docs-sourcelink .message-body { + border-color: #375a7f; + color: #2b4159; } + html.theme--documenter-dark .message.is-link { + background-color: #f6fefc; } + html.theme--documenter-dark .message.is-link .message-header { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .message.is-link .message-body { + border-color: #1abc9c; + color: #0b2f28; } + html.theme--documenter-dark .message.is-info { + background-color: #f5fbff; } + html.theme--documenter-dark .message.is-info .message-header { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .message.is-info .message-body { + border-color: #024c7d; + color: #033659; } + html.theme--documenter-dark .message.is-success { + background-color: #f5fff9; } + html.theme--documenter-dark .message.is-success .message-header { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .message.is-success .message-body { + border-color: #008438; + color: #023518; } + html.theme--documenter-dark .message.is-warning { + background-color: #fffcf5; } + html.theme--documenter-dark .message.is-warning .message-header { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .message.is-warning .message-body { + border-color: #ad8100; + color: #3d2e03; } + html.theme--documenter-dark .message.is-danger { + background-color: #fef6f6; } + html.theme--documenter-dark .message.is-danger .message-header { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .message.is-danger .message-body { + border-color: #9e1b0d; + color: #7a170c; } + html.theme--documenter-dark .message-header { + align-items: center; + background-color: #fff; + border-radius: 0.4em 0.4em 0 0; + color: rgba(0, 0, 0, 0.7); + display: flex; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em 1em; + position: relative; } + html.theme--documenter-dark .message-header .delete { + flex-grow: 0; + flex-shrink: 0; + margin-left: 0.75em; } + html.theme--documenter-dark .message-header + .message-body { + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; } + html.theme--documenter-dark .message-body { + border-color: #5e6d6f; + border-radius: 0.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: white; } + html.theme--documenter-dark .message-body pre code { + background-color: transparent; } + html.theme--documenter-dark .modal { + align-items: center; + display: none; + flex-direction: column; + justify-content: center; + overflow: hidden; + position: fixed; + z-index: 40; } + html.theme--documenter-dark .modal.is-active { + display: flex; } + html.theme--documenter-dark .modal-background { + background-color: rgba(10, 10, 10, 0.86); } + html.theme--documenter-dark .modal-content, + html.theme--documenter-dark .modal-card { + margin: 0 20px; + max-height: calc(100vh - 160px); + overflow: auto; + position: relative; + width: 100%; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .modal-content, + html.theme--documenter-dark .modal-card { + margin: 0 auto; + max-height: calc(100vh - 40px); + width: 640px; } } + html.theme--documenter-dark .modal-close { + background: none; + height: 40px; + position: fixed; + right: 20px; + top: 20px; + width: 40px; } + html.theme--documenter-dark .modal-card { + display: flex; + flex-direction: column; + max-height: calc(100vh - 40px); + overflow: hidden; + -ms-overflow-y: visible; } + html.theme--documenter-dark .modal-card-head, + html.theme--documenter-dark .modal-card-foot { + align-items: center; + background-color: #282f2f; + display: flex; + flex-shrink: 0; + justify-content: flex-start; + padding: 20px; + position: relative; } + html.theme--documenter-dark .modal-card-head { + border-bottom: 1px solid #5e6d6f; + border-top-left-radius: 8px; + border-top-right-radius: 8px; } + html.theme--documenter-dark .modal-card-title { + color: #f2f2f2; + flex-grow: 1; + flex-shrink: 0; + font-size: 1.5rem; + line-height: 1; } + html.theme--documenter-dark .modal-card-foot { + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark .modal-card-foot .button:not(:last-child) { + margin-right: 0.5em; } + html.theme--documenter-dark .modal-card-body { + -webkit-overflow-scrolling: touch; + background-color: white; + 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: white; + 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: white; + color: #0a0a0a; } } + html.theme--documenter-dark .navbar.is-black { + background-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link { + color: white; } + 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: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-brand .navbar-link::after { + border-color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-burger { + color: white; } + @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: white; } + 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: black; + color: white; } + 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: white; } + 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: black; + color: white; } + html.theme--documenter-dark .navbar.is-black .navbar-dropdown a.navbar-item.is-active { + background-color: #0a0a0a; + color: white; } } + html.theme--documenter-dark .navbar.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link { + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-brand .navbar-link::after { + border-color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-burger { + color: #282f2f; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-light .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link { + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-light .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-light .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-light .navbar-end .navbar-link::after { + border-color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .navbar.is-light .navbar-dropdown a.navbar-item.is-active { + background-color: #ecf0f1; + color: #282f2f; } } + html.theme--documenter-dark .navbar.is-dark, html.theme--documenter-dark .content kbd.navbar { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link { + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-brand .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-brand .navbar-link::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-burger, html.theme--documenter-dark .content kbd.navbar .navbar-burger { + color: #ecf0f1; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-dark .navbar-start > .navbar-item, html.theme--documenter-dark .content kbd.navbar .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-end > .navbar-item, + html.theme--documenter-dark .content kbd.navbar .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link { + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-dark .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:focus, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link:hover, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link.is-active, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-start .navbar-link::after, html.theme--documenter-dark .content kbd.navbar .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-dark .navbar-end .navbar-link::after, + html.theme--documenter-dark .content kbd.navbar .navbar-end .navbar-link::after { + border-color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-dark .navbar-item.has-dropdown.is-active .navbar-link, + html.theme--documenter-dark .content kbd.navbar .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .content kbd.navbar .navbar-dropdown a.navbar-item.is-active { + background-color: #282f2f; + color: #ecf0f1; } } + html.theme--documenter-dark .navbar.is-primary, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-brand > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-brand .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-burger, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-primary .navbar-start > .navbar-item, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-end > .navbar-item, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-primary .navbar-start > a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:focus, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-start .navbar-link::after, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-primary .navbar-end .navbar-link::after, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:focus .navbar-link, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-primary .navbar-item.has-dropdown.is-active .navbar-link, + html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .navbar.is-primary .navbar-dropdown a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.navbar.docs-sourcelink .navbar-dropdown a.navbar-item.is-active { + background-color: #375a7f; + color: #fff; } } + html.theme--documenter-dark .navbar.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-link .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-link .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-link .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-link .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-link .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .navbar.is-link .navbar-dropdown a.navbar-item.is-active { + background-color: #1abc9c; + color: #fff; } } + html.theme--documenter-dark .navbar.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-info .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-info .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-info .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-info .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-info .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .navbar.is-info .navbar-dropdown a.navbar-item.is-active { + background-color: #024c7d; + color: #fff; } } + html.theme--documenter-dark .navbar.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-success .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-success .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-success .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-success .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-success .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .navbar.is-success .navbar-dropdown a.navbar-item.is-active { + background-color: #008438; + color: #fff; } } + html.theme--documenter-dark .navbar.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-warning .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-warning .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-warning .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-warning .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .navbar.is-warning .navbar-dropdown a.navbar-item.is-active { + background-color: #ad8100; + color: #fff; } } + html.theme--documenter-dark .navbar.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-brand > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-brand .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-burger { + color: #fff; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .navbar.is-danger .navbar-start > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-end > .navbar-item, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link { + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:focus, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item:hover, html.theme--documenter-dark .navbar.is-danger .navbar-start > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-end > a.navbar-item.is-active, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:focus, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link:hover, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-start .navbar-link::after, + html.theme--documenter-dark .navbar.is-danger .navbar-end .navbar-link::after { + border-color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:focus .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown:hover .navbar-link, + html.theme--documenter-dark .navbar.is-danger .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .navbar.is-danger .navbar-dropdown a.navbar-item.is-active { + background-color: #9e1b0d; + color: #fff; } } + html.theme--documenter-dark .navbar > .container { + align-items: stretch; + display: flex; + min-height: 4rem; + width: 100%; } + html.theme--documenter-dark .navbar.has-shadow { + box-shadow: 0 2px 0 0 #282f2f; } + html.theme--documenter-dark .navbar.is-fixed-bottom, html.theme--documenter-dark .navbar.is-fixed-top { + left: 0; + position: fixed; + right: 0; + z-index: 30; } + html.theme--documenter-dark .navbar.is-fixed-bottom { + bottom: 0; } + html.theme--documenter-dark .navbar.is-fixed-bottom.has-shadow { + box-shadow: 0 -2px 0 0 #282f2f; } + html.theme--documenter-dark .navbar.is-fixed-top { + top: 0; } + html.theme--documenter-dark html.has-navbar-fixed-top, + html.theme--documenter-dark body.has-navbar-fixed-top { + padding-top: 4rem; } + html.theme--documenter-dark html.has-navbar-fixed-bottom, + html.theme--documenter-dark body.has-navbar-fixed-bottom { + padding-bottom: 4rem; } + html.theme--documenter-dark .navbar-brand, + html.theme--documenter-dark .navbar-tabs { + align-items: stretch; + display: flex; + flex-shrink: 0; + min-height: 4rem; } + html.theme--documenter-dark .navbar-brand a.navbar-item:focus, html.theme--documenter-dark .navbar-brand a.navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .navbar-tabs { + -webkit-overflow-scrolling: touch; + max-width: 100vw; + overflow-x: auto; + overflow-y: hidden; } + html.theme--documenter-dark .navbar-burger { + color: #fff; + cursor: pointer; + display: block; + height: 4rem; + position: relative; + width: 4rem; + margin-left: auto; } + html.theme--documenter-dark .navbar-burger span { + background-color: currentColor; + display: block; + height: 1px; + left: calc(50% - 8px); + position: absolute; + transform-origin: center; + transition-duration: 86ms; + transition-property: background-color, opacity, transform; + transition-timing-function: ease-out; + width: 16px; } + html.theme--documenter-dark .navbar-burger span:nth-child(1) { + top: calc(50% - 6px); } + html.theme--documenter-dark .navbar-burger span:nth-child(2) { + top: calc(50% - 1px); } + html.theme--documenter-dark .navbar-burger span:nth-child(3) { + top: calc(50% + 4px); } + html.theme--documenter-dark .navbar-burger:hover { + background-color: rgba(0, 0, 0, 0.05); } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(1) { + transform: translateY(5px) rotate(45deg); } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(2) { + opacity: 0; } + html.theme--documenter-dark .navbar-burger.is-active span:nth-child(3) { + transform: translateY(-5px) rotate(-45deg); } + html.theme--documenter-dark .navbar-menu { + display: none; } + html.theme--documenter-dark .navbar-item, + html.theme--documenter-dark .navbar-link { + color: #fff; + display: block; + line-height: 1.5; + padding: 0.5rem 0.75rem; + position: relative; } + html.theme--documenter-dark .navbar-item .icon:only-child, + html.theme--documenter-dark .navbar-link .icon:only-child { + margin-left: -0.25rem; + margin-right: -0.25rem; } + html.theme--documenter-dark a.navbar-item, + html.theme--documenter-dark .navbar-link { + cursor: pointer; } + html.theme--documenter-dark a.navbar-item:focus, html.theme--documenter-dark a.navbar-item:focus-within, html.theme--documenter-dark a.navbar-item:hover, html.theme--documenter-dark a.navbar-item.is-active, + html.theme--documenter-dark .navbar-link:focus, + html.theme--documenter-dark .navbar-link:focus-within, + html.theme--documenter-dark .navbar-link:hover, + html.theme--documenter-dark .navbar-link.is-active { + background-color: transparent; + color: #1abc9c; } + html.theme--documenter-dark .navbar-item { + display: block; + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .navbar-item img { + max-height: 1.75rem; } + html.theme--documenter-dark .navbar-item.has-dropdown { + padding: 0; } + html.theme--documenter-dark .navbar-item.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .navbar-item.is-tab { + border-bottom: 1px solid transparent; + min-height: 4rem; + padding-bottom: calc(0.5rem - 1px); } + html.theme--documenter-dark .navbar-item.is-tab:focus, html.theme--documenter-dark .navbar-item.is-tab:hover { + background-color: transparent; + border-bottom-color: #1abc9c; } + html.theme--documenter-dark .navbar-item.is-tab.is-active { + background-color: transparent; + 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: 0.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: transparent; + color: #dbdee0; } + html.theme--documenter-dark .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active { + background-color: transparent; + color: #1abc9c; } + html.theme--documenter-dark .navbar-burger { + display: none; } + html.theme--documenter-dark .navbar-item, + html.theme--documenter-dark .navbar-link { + align-items: center; + display: flex; } + html.theme--documenter-dark .navbar-item { + display: flex; } + html.theme--documenter-dark .navbar-item.has-dropdown { + align-items: stretch; } + html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-link::after { + transform: rotate(135deg) translate(0.25em, -0.25em); } + html.theme--documenter-dark .navbar-item.has-dropdown-up .navbar-dropdown { + border-bottom: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 8px 8px 0 0; + border-top: none; + bottom: 100%; + box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1); + top: auto; } + html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown { + display: block; } + .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown, html.theme--documenter-dark .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed { + opacity: 1; + pointer-events: auto; + transform: translateY(0); } + html.theme--documenter-dark .navbar-menu { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .navbar-start { + justify-content: flex-start; + margin-right: auto; } + html.theme--documenter-dark .navbar-end { + justify-content: flex-end; + margin-left: auto; } + html.theme--documenter-dark .navbar-dropdown { + background-color: #375a7f; + border-bottom-left-radius: 8px; + border-bottom-right-radius: 8px; + border-top: 1px solid rgba(0, 0, 0, 0.2); + box-shadow: 0 8px 8px rgba(10, 10, 10, 0.1); + display: none; + font-size: 0.875rem; + left: 0; + min-width: 100%; + position: absolute; + top: 100%; + z-index: 20; } + html.theme--documenter-dark .navbar-dropdown .navbar-item { + padding: 0.375rem 1rem; + white-space: nowrap; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item { + padding-right: 3rem; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item:focus, html.theme--documenter-dark .navbar-dropdown a.navbar-item:hover { + background-color: transparent; + color: #dbdee0; } + html.theme--documenter-dark .navbar-dropdown a.navbar-item.is-active { + background-color: transparent; + 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: transparent; } + 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: transparent; } } + html.theme--documenter-dark .hero.is-fullheight-with-navbar { + min-height: calc(100vh - 4rem); } + html.theme--documenter-dark .pagination { + font-size: 15px; + margin: -0.25rem; } + html.theme--documenter-dark .pagination.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination { + font-size: 0.85em; } + html.theme--documenter-dark .pagination.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .pagination.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .pagination.is-rounded .pagination-previous, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous, + html.theme--documenter-dark .pagination.is-rounded .pagination-next, + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next { + padding-left: 1em; + padding-right: 1em; + border-radius: 290486px; } + html.theme--documenter-dark .pagination.is-rounded .pagination-link, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link { + border-radius: 290486px; } + html.theme--documenter-dark .pagination, + html.theme--documenter-dark .pagination-list { + align-items: center; + display: flex; + justify-content: center; + text-align: center; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-link, + html.theme--documenter-dark .pagination-ellipsis { + font-size: 1em; + justify-content: center; + margin: 0.25rem; + padding-left: 0.5em; + padding-right: 0.5em; + text-align: center; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next, + html.theme--documenter-dark .pagination-link { + border-color: #5e6d6f; + color: #1abc9c; + min-width: 2.25em; } + html.theme--documenter-dark .pagination-previous:hover, + html.theme--documenter-dark .pagination-next:hover, + html.theme--documenter-dark .pagination-link:hover { + border-color: #8c9b9d; + color: #1dd2af; } + html.theme--documenter-dark .pagination-previous:focus, + html.theme--documenter-dark .pagination-next:focus, + html.theme--documenter-dark .pagination-link:focus { + border-color: #8c9b9d; } + html.theme--documenter-dark .pagination-previous:active, + html.theme--documenter-dark .pagination-next:active, + html.theme--documenter-dark .pagination-link:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); } + html.theme--documenter-dark .pagination-previous[disabled], + html.theme--documenter-dark .pagination-next[disabled], + html.theme--documenter-dark .pagination-link[disabled] { + background-color: #dbdee0; + border-color: #dbdee0; + box-shadow: none; + color: #5e6d6f; + opacity: 0.5; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next { + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + html.theme--documenter-dark .pagination-link.is-current { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .pagination-ellipsis { + color: #8c9b9d; + pointer-events: none; } + html.theme--documenter-dark .pagination-list { + flex-wrap: wrap; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .pagination { + flex-wrap: wrap; } + html.theme--documenter-dark .pagination-previous, + html.theme--documenter-dark .pagination-next { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .pagination-list li { + flex-grow: 1; + flex-shrink: 1; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .pagination-list { + flex-grow: 1; + flex-shrink: 1; + justify-content: flex-start; + order: 1; } + html.theme--documenter-dark .pagination-previous { + order: 2; } + html.theme--documenter-dark .pagination-next { + order: 3; } + html.theme--documenter-dark .pagination { + justify-content: space-between; } + html.theme--documenter-dark .pagination.is-centered .pagination-previous { + order: 1; } + html.theme--documenter-dark .pagination.is-centered .pagination-list { + justify-content: center; + order: 2; } + html.theme--documenter-dark .pagination.is-centered .pagination-next { + order: 3; } + html.theme--documenter-dark .pagination.is-right .pagination-previous { + order: 1; } + html.theme--documenter-dark .pagination.is-right .pagination-next { + order: 2; } + html.theme--documenter-dark .pagination.is-right .pagination-list { + justify-content: flex-end; + order: 3; } } + html.theme--documenter-dark .panel { + font-size: 15px; } + html.theme--documenter-dark .panel:not(:last-child) { + margin-bottom: 1.5rem; } + html.theme--documenter-dark .panel-heading, + html.theme--documenter-dark .panel-tabs, + html.theme--documenter-dark .panel-block { + border-bottom: 1px solid #5e6d6f; + border-left: 1px solid #5e6d6f; + border-right: 1px solid #5e6d6f; } + html.theme--documenter-dark .panel-heading:first-child, + html.theme--documenter-dark .panel-tabs:first-child, + html.theme--documenter-dark .panel-block:first-child { + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark .panel-heading { + background-color: #282f2f; + border-radius: 0.4em 0.4em 0 0; + color: #f2f2f2; + font-size: 1.25em; + font-weight: 300; + line-height: 1.25; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .panel-tabs { + align-items: flex-end; + display: flex; + font-size: 0.875em; + justify-content: center; } + html.theme--documenter-dark .panel-tabs a { + border-bottom: 1px solid #5e6d6f; + margin-bottom: -1px; + padding: 0.5em; } + html.theme--documenter-dark .panel-tabs a.is-active { + border-bottom-color: #343c3d; + color: #17a689; } + html.theme--documenter-dark .panel-list a { + color: #fff; } + html.theme--documenter-dark .panel-list a:hover { + color: #1abc9c; } + html.theme--documenter-dark .panel-block { + align-items: center; + color: #f2f2f2; + display: flex; + justify-content: flex-start; + padding: 0.5em 0.75em; } + html.theme--documenter-dark .panel-block input[type="checkbox"] { + margin-right: 0.75em; } + html.theme--documenter-dark .panel-block > .control { + flex-grow: 1; + flex-shrink: 1; + width: 100%; } + html.theme--documenter-dark .panel-block.is-wrapped { + flex-wrap: wrap; } + html.theme--documenter-dark .panel-block.is-active { + border-left-color: #1abc9c; + color: #17a689; } + html.theme--documenter-dark .panel-block.is-active .panel-icon { + color: #1abc9c; } + html.theme--documenter-dark a.panel-block, + html.theme--documenter-dark label.panel-block { + cursor: pointer; } + html.theme--documenter-dark a.panel-block:hover, + html.theme--documenter-dark label.panel-block:hover { + background-color: #282f2f; } + html.theme--documenter-dark .panel-icon { + display: inline-block; + font-size: 14px; + height: 1em; + line-height: 1em; + text-align: center; + vertical-align: top; + width: 1em; + color: white; + margin-right: 0.75em; } + html.theme--documenter-dark .panel-icon .fa { + font-size: inherit; + line-height: inherit; } + html.theme--documenter-dark .tabs { + -webkit-overflow-scrolling: touch; + align-items: stretch; + display: flex; + font-size: 15px; + justify-content: space-between; + overflow: hidden; + overflow-x: auto; + white-space: nowrap; } + html.theme--documenter-dark .tabs a { + align-items: center; + border-bottom-color: #5e6d6f; + border-bottom-style: solid; + border-bottom-width: 1px; + color: #fff; + display: flex; + justify-content: center; + margin-bottom: -1px; + padding: 0.5em 1em; + vertical-align: top; } + html.theme--documenter-dark .tabs a:hover { + border-bottom-color: #f2f2f2; + color: #f2f2f2; } + html.theme--documenter-dark .tabs li { + display: block; } + html.theme--documenter-dark .tabs li.is-active a { + border-bottom-color: #1abc9c; + color: #1abc9c; } + html.theme--documenter-dark .tabs ul { + align-items: center; + border-bottom-color: #5e6d6f; + border-bottom-style: solid; + border-bottom-width: 1px; + display: flex; + flex-grow: 1; + flex-shrink: 0; + justify-content: flex-start; } + html.theme--documenter-dark .tabs ul.is-left { + padding-right: 0.75em; } + html.theme--documenter-dark .tabs ul.is-center { + flex: none; + justify-content: center; + padding-left: 0.75em; + padding-right: 0.75em; } + html.theme--documenter-dark .tabs ul.is-right { + justify-content: flex-end; + padding-left: 0.75em; } + html.theme--documenter-dark .tabs .icon:first-child { + margin-right: 0.5em; } + html.theme--documenter-dark .tabs .icon:last-child { + margin-left: 0.5em; } + html.theme--documenter-dark .tabs.is-centered ul { + justify-content: center; } + html.theme--documenter-dark .tabs.is-right ul { + justify-content: flex-end; } + html.theme--documenter-dark .tabs.is-boxed a { + border: 1px solid transparent; + border-radius: 0.4em 0.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: white; + border-color: #5e6d6f; + border-bottom-color: transparent !important; } + html.theme--documenter-dark .tabs.is-fullwidth li { + flex-grow: 1; + flex-shrink: 0; } + html.theme--documenter-dark .tabs.is-toggle a { + border-color: #5e6d6f; + border-style: solid; + border-width: 1px; + margin-bottom: 0; + position: relative; } + html.theme--documenter-dark .tabs.is-toggle a:hover { + background-color: #282f2f; + border-color: #8c9b9d; + z-index: 2; } + html.theme--documenter-dark .tabs.is-toggle li + li { + margin-left: -1px; } + html.theme--documenter-dark .tabs.is-toggle li:first-child a { + border-radius: 0.4em 0 0 0.4em; } + html.theme--documenter-dark .tabs.is-toggle li:last-child a { + border-radius: 0 0.4em 0.4em 0; } + html.theme--documenter-dark .tabs.is-toggle li.is-active a { + background-color: #1abc9c; + border-color: #1abc9c; + color: #fff; + z-index: 1; } + html.theme--documenter-dark .tabs.is-toggle ul { + border-bottom: none; } + html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:first-child a { + border-bottom-left-radius: 290486px; + border-top-left-radius: 290486px; + padding-left: 1.25em; } + html.theme--documenter-dark .tabs.is-toggle.is-toggle-rounded li:last-child a { + border-bottom-right-radius: 290486px; + border-top-right-radius: 290486px; + padding-right: 1.25em; } + html.theme--documenter-dark .tabs.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.tabs { + font-size: 0.85em; } + html.theme--documenter-dark .tabs.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .tabs.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .column { + display: block; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 1; + padding: 0.75rem; } + .columns.is-mobile > html.theme--documenter-dark .column.is-narrow { + flex: none; } + .columns.is-mobile > html.theme--documenter-dark .column.is-full { + flex: none; + width: 100%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-three-quarters { + flex: none; + width: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-two-thirds { + flex: none; + width: 66.6666%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-half { + flex: none; + width: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-third { + flex: none; + width: 33.3333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-quarter { + flex: none; + width: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-one-fifth { + flex: none; + width: 20%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-two-fifths { + flex: none; + width: 40%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-three-fifths { + flex: none; + width: 60%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-four-fifths { + flex: none; + width: 80%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-quarters { + margin-left: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-thirds { + margin-left: 66.6666%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-half { + margin-left: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-third { + margin-left: 33.3333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-quarter { + margin-left: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-one-fifth { + margin-left: 20%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-two-fifths { + margin-left: 40%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-three-fifths { + margin-left: 60%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-four-fifths { + margin-left: 80%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-0 { + flex: none; + width: 0%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-0 { + margin-left: 0%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-1 { + flex: none; + width: 8.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-1 { + margin-left: 8.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-2 { + flex: none; + width: 16.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-2 { + margin-left: 16.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-3 { + flex: none; + width: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-3 { + margin-left: 25%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-4 { + flex: none; + width: 33.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-4 { + margin-left: 33.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-5 { + flex: none; + width: 41.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-5 { + margin-left: 41.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-6 { + flex: none; + width: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-6 { + margin-left: 50%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-7 { + flex: none; + width: 58.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-7 { + margin-left: 58.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-8 { + flex: none; + width: 66.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-8 { + margin-left: 66.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-9 { + flex: none; + width: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-9 { + margin-left: 75%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-10 { + flex: none; + width: 83.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-10 { + margin-left: 83.3333333333%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-11 { + flex: none; + width: 91.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-11 { + margin-left: 91.6666666667%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-12 { + flex: none; + width: 100%; } + .columns.is-mobile > html.theme--documenter-dark .column.is-offset-12 { + margin-left: 100%; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .column.is-narrow-mobile { + flex: none; } + html.theme--documenter-dark .column.is-full-mobile { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-mobile { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-mobile { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-mobile { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-mobile { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-mobile { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-mobile { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-mobile { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-mobile { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-mobile { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-mobile { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-mobile { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-mobile { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-mobile { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-mobile { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-mobile { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-mobile { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-mobile { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-mobile { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-mobile { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-mobile { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-mobile { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-mobile { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-mobile { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-mobile { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-mobile { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-mobile { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-mobile { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-mobile { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-mobile { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-mobile { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-mobile { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-mobile { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-mobile { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-mobile { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-mobile { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-mobile { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-mobile { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-mobile { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-mobile { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-mobile { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-mobile { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-mobile { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-mobile { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-mobile { + margin-left: 100%; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .column.is-narrow, html.theme--documenter-dark .column.is-narrow-tablet { + flex: none; } + html.theme--documenter-dark .column.is-full, html.theme--documenter-dark .column.is-full-tablet { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters, html.theme--documenter-dark .column.is-three-quarters-tablet { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds, html.theme--documenter-dark .column.is-two-thirds-tablet { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half, html.theme--documenter-dark .column.is-half-tablet { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third, html.theme--documenter-dark .column.is-one-third-tablet { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter, html.theme--documenter-dark .column.is-one-quarter-tablet { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth, html.theme--documenter-dark .column.is-one-fifth-tablet { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths, html.theme--documenter-dark .column.is-two-fifths-tablet { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths, html.theme--documenter-dark .column.is-three-fifths-tablet { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths, html.theme--documenter-dark .column.is-four-fifths-tablet { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters, html.theme--documenter-dark .column.is-offset-three-quarters-tablet { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds, html.theme--documenter-dark .column.is-offset-two-thirds-tablet { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half, html.theme--documenter-dark .column.is-offset-half-tablet { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third, html.theme--documenter-dark .column.is-offset-one-third-tablet { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter, html.theme--documenter-dark .column.is-offset-one-quarter-tablet { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth, html.theme--documenter-dark .column.is-offset-one-fifth-tablet { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths, html.theme--documenter-dark .column.is-offset-two-fifths-tablet { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths, html.theme--documenter-dark .column.is-offset-three-fifths-tablet { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths, html.theme--documenter-dark .column.is-offset-four-fifths-tablet { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0, html.theme--documenter-dark .column.is-0-tablet { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0, html.theme--documenter-dark .column.is-offset-0-tablet { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1, html.theme--documenter-dark .column.is-1-tablet { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1, html.theme--documenter-dark .column.is-offset-1-tablet { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2, html.theme--documenter-dark .column.is-2-tablet { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2, html.theme--documenter-dark .column.is-offset-2-tablet { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3, html.theme--documenter-dark .column.is-3-tablet { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3, html.theme--documenter-dark .column.is-offset-3-tablet { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4, html.theme--documenter-dark .column.is-4-tablet { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4, html.theme--documenter-dark .column.is-offset-4-tablet { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5, html.theme--documenter-dark .column.is-5-tablet { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5, html.theme--documenter-dark .column.is-offset-5-tablet { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6, html.theme--documenter-dark .column.is-6-tablet { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6, html.theme--documenter-dark .column.is-offset-6-tablet { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7, html.theme--documenter-dark .column.is-7-tablet { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7, html.theme--documenter-dark .column.is-offset-7-tablet { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8, html.theme--documenter-dark .column.is-8-tablet { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8, html.theme--documenter-dark .column.is-offset-8-tablet { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9, html.theme--documenter-dark .column.is-9-tablet { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9, html.theme--documenter-dark .column.is-offset-9-tablet { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10, html.theme--documenter-dark .column.is-10-tablet { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10, html.theme--documenter-dark .column.is-offset-10-tablet { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11, html.theme--documenter-dark .column.is-11-tablet { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11, html.theme--documenter-dark .column.is-offset-11-tablet { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12, html.theme--documenter-dark .column.is-12-tablet { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12, html.theme--documenter-dark .column.is-offset-12-tablet { + margin-left: 100%; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .column.is-narrow-touch { + flex: none; } + html.theme--documenter-dark .column.is-full-touch { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-touch { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-touch { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-touch { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-touch { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-touch { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-touch { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-touch { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-touch { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-touch { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-touch { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-touch { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-touch { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-touch { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-touch { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-touch { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-touch { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-touch { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-touch { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-touch { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-touch { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-touch { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-touch { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-touch { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-touch { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-touch { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-touch { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-touch { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-touch { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-touch { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-touch { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-touch { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-touch { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-touch { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-touch { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-touch { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-touch { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-touch { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-touch { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-touch { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-touch { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-touch { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-touch { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-touch { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-touch { + margin-left: 100%; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .column.is-narrow-desktop { + flex: none; } + html.theme--documenter-dark .column.is-full-desktop { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-desktop { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-desktop { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-desktop { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-desktop { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-desktop { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-desktop { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-desktop { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-desktop { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-desktop { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-desktop { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-desktop { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-desktop { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-desktop { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-desktop { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-desktop { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-desktop { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-desktop { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-desktop { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-desktop { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-desktop { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-desktop { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-desktop { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-desktop { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-desktop { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-desktop { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-desktop { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-desktop { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-desktop { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-desktop { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-desktop { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-desktop { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-desktop { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-desktop { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-desktop { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-desktop { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-desktop { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-desktop { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-desktop { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-desktop { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-desktop { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-desktop { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-desktop { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-desktop { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-desktop { + margin-left: 100%; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .column.is-narrow-widescreen { + flex: none; } + html.theme--documenter-dark .column.is-full-widescreen { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-widescreen { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-widescreen { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-widescreen { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-widescreen { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-widescreen { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-widescreen { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-widescreen { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-widescreen { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-widescreen { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-widescreen { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-widescreen { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-widescreen { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-widescreen { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-widescreen { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-widescreen { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-widescreen { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-widescreen { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-widescreen { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-widescreen { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-widescreen { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-widescreen { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-widescreen { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-widescreen { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-widescreen { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-widescreen { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-widescreen { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-widescreen { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-widescreen { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-widescreen { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-widescreen { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-widescreen { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-widescreen { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-widescreen { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-widescreen { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-widescreen { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-widescreen { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-widescreen { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-widescreen { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-widescreen { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-widescreen { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-widescreen { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-widescreen { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-widescreen { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-widescreen { + margin-left: 100%; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .column.is-narrow-fullhd { + flex: none; } + html.theme--documenter-dark .column.is-full-fullhd { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-three-quarters-fullhd { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-two-thirds-fullhd { + flex: none; + width: 66.6666%; } + html.theme--documenter-dark .column.is-half-fullhd { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-one-third-fullhd { + flex: none; + width: 33.3333%; } + html.theme--documenter-dark .column.is-one-quarter-fullhd { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-one-fifth-fullhd { + flex: none; + width: 20%; } + html.theme--documenter-dark .column.is-two-fifths-fullhd { + flex: none; + width: 40%; } + html.theme--documenter-dark .column.is-three-fifths-fullhd { + flex: none; + width: 60%; } + html.theme--documenter-dark .column.is-four-fifths-fullhd { + flex: none; + width: 80%; } + html.theme--documenter-dark .column.is-offset-three-quarters-fullhd { + margin-left: 75%; } + html.theme--documenter-dark .column.is-offset-two-thirds-fullhd { + margin-left: 66.6666%; } + html.theme--documenter-dark .column.is-offset-half-fullhd { + margin-left: 50%; } + html.theme--documenter-dark .column.is-offset-one-third-fullhd { + margin-left: 33.3333%; } + html.theme--documenter-dark .column.is-offset-one-quarter-fullhd { + margin-left: 25%; } + html.theme--documenter-dark .column.is-offset-one-fifth-fullhd { + margin-left: 20%; } + html.theme--documenter-dark .column.is-offset-two-fifths-fullhd { + margin-left: 40%; } + html.theme--documenter-dark .column.is-offset-three-fifths-fullhd { + margin-left: 60%; } + html.theme--documenter-dark .column.is-offset-four-fifths-fullhd { + margin-left: 80%; } + html.theme--documenter-dark .column.is-0-fullhd { + flex: none; + width: 0%; } + html.theme--documenter-dark .column.is-offset-0-fullhd { + margin-left: 0%; } + html.theme--documenter-dark .column.is-1-fullhd { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .column.is-offset-1-fullhd { + margin-left: 8.3333333333%; } + html.theme--documenter-dark .column.is-2-fullhd { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .column.is-offset-2-fullhd { + margin-left: 16.6666666667%; } + html.theme--documenter-dark .column.is-3-fullhd { + flex: none; + width: 25%; } + html.theme--documenter-dark .column.is-offset-3-fullhd { + margin-left: 25%; } + html.theme--documenter-dark .column.is-4-fullhd { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .column.is-offset-4-fullhd { + margin-left: 33.3333333333%; } + html.theme--documenter-dark .column.is-5-fullhd { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .column.is-offset-5-fullhd { + margin-left: 41.6666666667%; } + html.theme--documenter-dark .column.is-6-fullhd { + flex: none; + width: 50%; } + html.theme--documenter-dark .column.is-offset-6-fullhd { + margin-left: 50%; } + html.theme--documenter-dark .column.is-7-fullhd { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .column.is-offset-7-fullhd { + margin-left: 58.3333333333%; } + html.theme--documenter-dark .column.is-8-fullhd { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .column.is-offset-8-fullhd { + margin-left: 66.6666666667%; } + html.theme--documenter-dark .column.is-9-fullhd { + flex: none; + width: 75%; } + html.theme--documenter-dark .column.is-offset-9-fullhd { + margin-left: 75%; } + html.theme--documenter-dark .column.is-10-fullhd { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .column.is-offset-10-fullhd { + margin-left: 83.3333333333%; } + html.theme--documenter-dark .column.is-11-fullhd { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .column.is-offset-11-fullhd { + margin-left: 91.6666666667%; } + html.theme--documenter-dark .column.is-12-fullhd { + flex: none; + width: 100%; } + html.theme--documenter-dark .column.is-offset-12-fullhd { + margin-left: 100%; } } + html.theme--documenter-dark .columns { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + html.theme--documenter-dark .columns:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .columns:not(:last-child) { + margin-bottom: calc(1.5rem - 0.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: 0.25rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-1-mobile { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-1-tablet { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-1-tablet-only { + --columnGap: 0.25rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-1-touch { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-1-desktop { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-1-desktop-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-1-widescreen { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-1-widescreen-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-1-fullhd { + --columnGap: 0.25rem; } } + html.theme--documenter-dark .columns.is-variable.is-2 { + --columnGap: 0.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-2-mobile { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-2-tablet { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-2-tablet-only { + --columnGap: 0.5rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-2-touch { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-2-desktop { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-2-desktop-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-2-widescreen { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-2-widescreen-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-2-fullhd { + --columnGap: 0.5rem; } } + html.theme--documenter-dark .columns.is-variable.is-3 { + --columnGap: 0.75rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .columns.is-variable.is-3-mobile { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .columns.is-variable.is-3-tablet { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-3-tablet-only { + --columnGap: 0.75rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .columns.is-variable.is-3-touch { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .columns.is-variable.is-3-desktop { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + html.theme--documenter-dark .columns.is-variable.is-3-desktop-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) { + html.theme--documenter-dark .columns.is-variable.is-3-widescreen { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + html.theme--documenter-dark .columns.is-variable.is-3-widescreen-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1408px) { + html.theme--documenter-dark .columns.is-variable.is-3-fullhd { + --columnGap: 0.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: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + html.theme--documenter-dark .tile.is-ancestor:last-child { + margin-bottom: -0.75rem; } + html.theme--documenter-dark .tile.is-ancestor:not(:last-child) { + margin-bottom: 0.75rem; } + html.theme--documenter-dark .tile.is-child { + margin: 0 !important; } + html.theme--documenter-dark .tile.is-parent { + padding: 0.75rem; } + html.theme--documenter-dark .tile.is-vertical { + flex-direction: column; } + html.theme--documenter-dark .tile.is-vertical > .tile.is-child:not(:last-child) { + margin-bottom: 1.5rem !important; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .tile:not(.is-child) { + display: flex; } + html.theme--documenter-dark .tile.is-1 { + flex: none; + width: 8.3333333333%; } + html.theme--documenter-dark .tile.is-2 { + flex: none; + width: 16.6666666667%; } + html.theme--documenter-dark .tile.is-3 { + flex: none; + width: 25%; } + html.theme--documenter-dark .tile.is-4 { + flex: none; + width: 33.3333333333%; } + html.theme--documenter-dark .tile.is-5 { + flex: none; + width: 41.6666666667%; } + html.theme--documenter-dark .tile.is-6 { + flex: none; + width: 50%; } + html.theme--documenter-dark .tile.is-7 { + flex: none; + width: 58.3333333333%; } + html.theme--documenter-dark .tile.is-8 { + flex: none; + width: 66.6666666667%; } + html.theme--documenter-dark .tile.is-9 { + flex: none; + width: 75%; } + html.theme--documenter-dark .tile.is-10 { + flex: none; + width: 83.3333333333%; } + html.theme--documenter-dark .tile.is-11 { + flex: none; + width: 91.6666666667%; } + html.theme--documenter-dark .tile.is-12 { + flex: none; + width: 100%; } } + html.theme--documenter-dark .hero { + align-items: stretch; + display: flex; + flex-direction: column; + justify-content: space-between; } + html.theme--documenter-dark .hero .navbar { + background: none; } + html.theme--documenter-dark .hero .tabs ul { + border-bottom: none; } + html.theme--documenter-dark .hero.is-white { + background-color: white; + 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: white; } } + html.theme--documenter-dark .hero.is-white .navbar-item, + html.theme--documenter-dark .hero.is-white .navbar-link { + color: rgba(10, 10, 10, 0.7); } + html.theme--documenter-dark .hero.is-white a.navbar-item:hover, html.theme--documenter-dark .hero.is-white a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-white .navbar-link:hover, + html.theme--documenter-dark .hero.is-white .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .tabs a { + color: #0a0a0a; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-white .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-white .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a { + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-white .tabs.is-toggle li.is-active a:hover { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + html.theme--documenter-dark .hero.is-white.is-bold { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 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%, white 71%, white 100%); } } + html.theme--documenter-dark .hero.is-black { + background-color: #0a0a0a; + color: white; } + 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: white; } + 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: white; } + @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: black; + color: white; } + html.theme--documenter-dark .hero.is-black .tabs a { + color: white; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-black .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-black .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-black .tabs.is-boxed a, html.theme--documenter-dark .hero.is-black .tabs.is-toggle a { + color: white; } + 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: white; + border-color: white; + color: #0a0a0a; } + html.theme--documenter-dark .hero.is-black.is-bold { + background-image: linear-gradient(141deg, black 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, black 0%, #0a0a0a 71%, #181616 100%); } } + html.theme--documenter-dark .hero.is-light { + background-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-light strong { + color: inherit; } + html.theme--documenter-dark .hero.is-light .title { + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .subtitle { + color: rgba(40, 47, 47, 0.9); } + html.theme--documenter-dark .hero.is-light .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-light .subtitle strong { + color: #282f2f; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-light .navbar-menu { + background-color: #ecf0f1; } } + html.theme--documenter-dark .hero.is-light .navbar-item, + html.theme--documenter-dark .hero.is-light .navbar-link { + color: rgba(40, 47, 47, 0.7); } + html.theme--documenter-dark .hero.is-light a.navbar-item:hover, html.theme--documenter-dark .hero.is-light a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-light .navbar-link:hover, + html.theme--documenter-dark .hero.is-light .navbar-link.is-active { + background-color: #dde4e6; + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .tabs a { + color: #282f2f; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-light .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-light .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a { + color: #282f2f; } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-light .tabs.is-toggle li.is-active a:hover { + background-color: #282f2f; + border-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-light.is-bold { + background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-light.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #cadfe0 0%, #ecf0f1 71%, #fafbfc 100%); } } + html.theme--documenter-dark .hero.is-dark, html.theme--documenter-dark .content kbd.hero { + background-color: #282f2f; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .content kbd.hero a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-dark strong, + html.theme--documenter-dark .content kbd.hero strong { + color: inherit; } + html.theme--documenter-dark .hero.is-dark .title, html.theme--documenter-dark .content kbd.hero .title { + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .subtitle, html.theme--documenter-dark .content kbd.hero .subtitle { + color: rgba(236, 240, 241, 0.9); } + html.theme--documenter-dark .hero.is-dark .subtitle a:not(.button), html.theme--documenter-dark .content kbd.hero .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-dark .subtitle strong, + html.theme--documenter-dark .content kbd.hero .subtitle strong { + color: #ecf0f1; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-dark .navbar-menu, html.theme--documenter-dark .content kbd.hero .navbar-menu { + background-color: #282f2f; } } + html.theme--documenter-dark .hero.is-dark .navbar-item, html.theme--documenter-dark .content kbd.hero .navbar-item, + html.theme--documenter-dark .hero.is-dark .navbar-link, + html.theme--documenter-dark .content kbd.hero .navbar-link { + color: rgba(236, 240, 241, 0.7); } + html.theme--documenter-dark .hero.is-dark a.navbar-item:hover, html.theme--documenter-dark .content kbd.hero a.navbar-item:hover, html.theme--documenter-dark .hero.is-dark a.navbar-item.is-active, html.theme--documenter-dark .content kbd.hero a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-dark .navbar-link:hover, + html.theme--documenter-dark .content kbd.hero .navbar-link:hover, + html.theme--documenter-dark .hero.is-dark .navbar-link.is-active, + html.theme--documenter-dark .content kbd.hero .navbar-link.is-active { + background-color: #1d2122; + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .tabs a, html.theme--documenter-dark .content kbd.hero .tabs a { + color: #ecf0f1; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-dark .tabs a:hover, html.theme--documenter-dark .content kbd.hero .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-dark .tabs li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a { + color: #ecf0f1; } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle a:hover, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a, html.theme--documenter-dark .content kbd.hero .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-dark .tabs.is-toggle li.is-active a:hover { + background-color: #ecf0f1; + border-color: #ecf0f1; + color: #282f2f; } + html.theme--documenter-dark .hero.is-dark.is-bold, html.theme--documenter-dark .content kbd.hero.is-bold { + background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-dark.is-bold .navbar-menu, html.theme--documenter-dark .content kbd.hero.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #0f1615 0%, #282f2f 71%, #313c40 100%); } } + html.theme--documenter-dark .hero.is-primary, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink { + background-color: #375a7f; + color: #fff; } + html.theme--documenter-dark .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-primary strong, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink strong { + color: inherit; } + html.theme--documenter-dark .hero.is-primary .title, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .title { + color: #fff; } + html.theme--documenter-dark .hero.is-primary .subtitle, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-primary .subtitle a:not(.button), html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-primary .subtitle strong, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-primary .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-menu { + background-color: #375a7f; } } + html.theme--documenter-dark .hero.is-primary .navbar-item, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-item, + html.theme--documenter-dark .hero.is-primary .navbar-link, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-primary a.navbar-item:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, html.theme--documenter-dark .hero.is-primary a.navbar-item.is-active, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-primary .navbar-link:hover, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link:hover, + html.theme--documenter-dark .hero.is-primary .navbar-link.is-active, + html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active { + background-color: #2f4d6d; + color: #fff; } + html.theme--documenter-dark .hero.is-primary .tabs a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-primary .tabs a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-primary .tabs li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle a:hover, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a, html.theme--documenter-dark .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-primary .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #375a7f; } + html.theme--documenter-dark .hero.is-primary.is-bold, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink { + background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-primary.is-bold .navbar-menu, html.theme--documenter-dark .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu { + background-image: linear-gradient(141deg, #214b62 0%, #375a7f 71%, #3a5796 100%); } } + html.theme--documenter-dark .hero.is-link { + background-color: #1abc9c; + color: #fff; } + html.theme--documenter-dark .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-link strong { + color: inherit; } + html.theme--documenter-dark .hero.is-link .title { + color: #fff; } + html.theme--documenter-dark .hero.is-link .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-link .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-link .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-link .navbar-menu { + background-color: #1abc9c; } } + html.theme--documenter-dark .hero.is-link .navbar-item, + html.theme--documenter-dark .hero.is-link .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-link a.navbar-item:hover, html.theme--documenter-dark .hero.is-link a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-link .navbar-link:hover, + html.theme--documenter-dark .hero.is-link .navbar-link.is-active { + background-color: #17a689; + color: #fff; } + html.theme--documenter-dark .hero.is-link .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-link .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-link .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-link .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #1abc9c; } + html.theme--documenter-dark .hero.is-link.is-bold { + background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-link.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #0c9764 0%, #1abc9c 71%, #17d8d2 100%); } } + html.theme--documenter-dark .hero.is-info { + background-color: #024c7d; + color: #fff; } + html.theme--documenter-dark .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-info strong { + color: inherit; } + html.theme--documenter-dark .hero.is-info .title { + color: #fff; } + html.theme--documenter-dark .hero.is-info .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-info .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-info .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-info .navbar-menu { + background-color: #024c7d; } } + html.theme--documenter-dark .hero.is-info .navbar-item, + html.theme--documenter-dark .hero.is-info .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-info a.navbar-item:hover, html.theme--documenter-dark .hero.is-info a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-info .navbar-link:hover, + html.theme--documenter-dark .hero.is-info .navbar-link.is-active { + background-color: #023d64; + color: #fff; } + html.theme--documenter-dark .hero.is-info .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-info .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-info .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-info .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #024c7d; } + html.theme--documenter-dark .hero.is-info.is-bold { + background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-info.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #003a4c 0%, #024c7d 71%, #004299 100%); } } + html.theme--documenter-dark .hero.is-success { + background-color: #008438; + color: #fff; } + html.theme--documenter-dark .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-success strong { + color: inherit; } + html.theme--documenter-dark .hero.is-success .title { + color: #fff; } + html.theme--documenter-dark .hero.is-success .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-success .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-success .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-success .navbar-menu { + background-color: #008438; } } + html.theme--documenter-dark .hero.is-success .navbar-item, + html.theme--documenter-dark .hero.is-success .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-success a.navbar-item:hover, html.theme--documenter-dark .hero.is-success a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-success .navbar-link:hover, + html.theme--documenter-dark .hero.is-success .navbar-link.is-active { + background-color: #006b2d; + color: #fff; } + html.theme--documenter-dark .hero.is-success .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-success .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-success .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-success .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #008438; } + html.theme--documenter-dark .hero.is-success.is-bold { + background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-success.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #005115 0%, #008438 71%, #009e5d 100%); } } + html.theme--documenter-dark .hero.is-warning { + background-color: #ad8100; + color: #fff; } + html.theme--documenter-dark .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-warning strong { + color: inherit; } + html.theme--documenter-dark .hero.is-warning .title { + color: #fff; } + html.theme--documenter-dark .hero.is-warning .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-warning .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-warning .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-warning .navbar-menu { + background-color: #ad8100; } } + html.theme--documenter-dark .hero.is-warning .navbar-item, + html.theme--documenter-dark .hero.is-warning .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-warning a.navbar-item:hover, html.theme--documenter-dark .hero.is-warning a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-warning .navbar-link:hover, + html.theme--documenter-dark .hero.is-warning .navbar-link.is-active { + background-color: #946e00; + color: #fff; } + html.theme--documenter-dark .hero.is-warning .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-warning .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-warning .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-warning .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #ad8100; } + html.theme--documenter-dark .hero.is-warning.is-bold { + background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-warning.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #7a4700 0%, #ad8100 71%, #c7b500 100%); } } + html.theme--documenter-dark .hero.is-danger { + background-color: #9e1b0d; + color: #fff; } + html.theme--documenter-dark .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + html.theme--documenter-dark .hero.is-danger strong { + color: inherit; } + html.theme--documenter-dark .hero.is-danger .title { + color: #fff; } + html.theme--documenter-dark .hero.is-danger .subtitle { + color: rgba(255, 255, 255, 0.9); } + html.theme--documenter-dark .hero.is-danger .subtitle a:not(.button), + html.theme--documenter-dark .hero.is-danger .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark .hero.is-danger .navbar-menu { + background-color: #9e1b0d; } } + html.theme--documenter-dark .hero.is-danger .navbar-item, + html.theme--documenter-dark .hero.is-danger .navbar-link { + color: rgba(255, 255, 255, 0.7); } + html.theme--documenter-dark .hero.is-danger a.navbar-item:hover, html.theme--documenter-dark .hero.is-danger a.navbar-item.is-active, + html.theme--documenter-dark .hero.is-danger .navbar-link:hover, + html.theme--documenter-dark .hero.is-danger .navbar-link.is-active { + background-color: #86170b; + color: #fff; } + html.theme--documenter-dark .hero.is-danger .tabs a { + color: #fff; + opacity: 0.9; } + html.theme--documenter-dark .hero.is-danger .tabs a:hover { + opacity: 1; } + html.theme--documenter-dark .hero.is-danger .tabs li.is-active a { + opacity: 1; } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a { + color: #fff; } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-boxed li.is-active a:hover, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a, html.theme--documenter-dark .hero.is-danger .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #9e1b0d; } + html.theme--documenter-dark .hero.is-danger.is-bold { + background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero.is-danger.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #75030b 0%, #9e1b0d 71%, #ba380a 100%); } } + html.theme--documenter-dark .hero.is-small .hero-body, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.hero .hero-body { + padding-bottom: 1.5rem; + padding-top: 1.5rem; } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero.is-medium .hero-body { + padding-bottom: 9rem; + padding-top: 9rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero.is-large .hero-body { + padding-bottom: 18rem; + padding-top: 18rem; } } + html.theme--documenter-dark .hero.is-halfheight .hero-body, html.theme--documenter-dark .hero.is-fullheight .hero-body, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body { + align-items: center; + display: flex; } + html.theme--documenter-dark .hero.is-halfheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight .hero-body > .container, html.theme--documenter-dark .hero.is-fullheight-with-navbar .hero-body > .container { + flex-grow: 1; + flex-shrink: 1; } + html.theme--documenter-dark .hero.is-halfheight { + min-height: 50vh; } + html.theme--documenter-dark .hero.is-fullheight { + min-height: 100vh; } + html.theme--documenter-dark .hero-video { + overflow: hidden; } + html.theme--documenter-dark .hero-video video { + left: 50%; + min-height: 100%; + min-width: 100%; + position: absolute; + top: 50%; + transform: translate3d(-50%, -50%, 0); } + html.theme--documenter-dark .hero-video.is-transparent { + opacity: 0.3; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero-video { + display: none; } } + html.theme--documenter-dark .hero-buttons { + margin-top: 1.5rem; } + @media screen and (max-width: 768px) { + html.theme--documenter-dark .hero-buttons .button { + display: flex; } + html.theme--documenter-dark .hero-buttons .button:not(:last-child) { + margin-bottom: 0.75rem; } } + @media screen and (min-width: 769px), print { + html.theme--documenter-dark .hero-buttons { + display: flex; + justify-content: center; } + html.theme--documenter-dark .hero-buttons .button:not(:last-child) { + margin-right: 1.5rem; } } + html.theme--documenter-dark .hero-head, + html.theme--documenter-dark .hero-foot { + flex-grow: 0; + flex-shrink: 0; } + html.theme--documenter-dark .hero-body { + flex-grow: 1; + flex-shrink: 0; + padding: 3rem 1.5rem; } + html.theme--documenter-dark .section { + padding: 3rem 1.5rem; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark .section.is-medium { + padding: 9rem 1.5rem; } + html.theme--documenter-dark .section.is-large { + padding: 18rem 1.5rem; } } + html.theme--documenter-dark .footer { + background-color: #282f2f; + padding: 3rem 1.5rem 6rem; } + html.theme--documenter-dark hr { + height: 1px; } + html.theme--documenter-dark h6 { + text-transform: uppercase; + letter-spacing: 0.5px; } + html.theme--documenter-dark .hero { + background-color: #343c3d; } + html.theme--documenter-dark a { + transition: all 200ms ease; } + html.theme--documenter-dark .button { + transition: all 200ms ease; + border-width: 1px; + color: white; } + 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: white; } + 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: white; + 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: white; } + 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: 0.4em; } + html.theme--documenter-dark .card .card-image img { + border-radius: 0.4em 0.4em 0 0; } + html.theme--documenter-dark .card .card-header { + box-shadow: none; + background-color: rgba(18, 18, 18, 0.2); + border-radius: 0.4em 0.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: white; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-light a:not(.button) { + color: #282f2f; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-dark a:not(.button), html.theme--documenter-dark .content kbd.notification a:not(.button) { + color: #ecf0f1; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-primary a:not(.button), html.theme--documenter-dark .docstring > section > a.notification.docs-sourcelink a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-link a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-info a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-success a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-warning a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .notification.is-danger a:not(.button) { + color: #fff; + text-decoration: underline; } + html.theme--documenter-dark .tag, html.theme--documenter-dark .content kbd, html.theme--documenter-dark .docstring > section > a.docs-sourcelink { + border-radius: 0.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: white; } + html.theme--documenter-dark .message-body { + border-width: 1px; + border-color: #343c3d; } + html.theme--documenter-dark .navbar { + border-radius: 0.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 0.4em 0.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: transparent; } + html.theme--documenter-dark .hero.is-black .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-light .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + 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: transparent; } + 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: transparent; } + html.theme--documenter-dark .hero.is-link .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-info .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-success .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-warning .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark .hero.is-danger .navbar .navbar-dropdown .navbar-item:hover { + background-color: transparent; } + html.theme--documenter-dark h1 .docs-heading-anchor, html.theme--documenter-dark h1 .docs-heading-anchor:hover, html.theme--documenter-dark h1 .docs-heading-anchor:visited, html.theme--documenter-dark h2 .docs-heading-anchor, html.theme--documenter-dark h2 .docs-heading-anchor:hover, html.theme--documenter-dark h2 .docs-heading-anchor:visited, html.theme--documenter-dark h3 .docs-heading-anchor, html.theme--documenter-dark h3 .docs-heading-anchor:hover, html.theme--documenter-dark h3 .docs-heading-anchor:visited, html.theme--documenter-dark h4 .docs-heading-anchor, html.theme--documenter-dark h4 .docs-heading-anchor:hover, html.theme--documenter-dark h4 .docs-heading-anchor:visited, html.theme--documenter-dark h5 .docs-heading-anchor, html.theme--documenter-dark h5 .docs-heading-anchor:hover, html.theme--documenter-dark h5 .docs-heading-anchor:visited, html.theme--documenter-dark h6 .docs-heading-anchor, html.theme--documenter-dark h6 .docs-heading-anchor:hover, html.theme--documenter-dark h6 .docs-heading-anchor:visited { + color: #f2f2f2; } + html.theme--documenter-dark h1 .docs-heading-anchor-permalink, html.theme--documenter-dark h2 .docs-heading-anchor-permalink, html.theme--documenter-dark h3 .docs-heading-anchor-permalink, html.theme--documenter-dark h4 .docs-heading-anchor-permalink, html.theme--documenter-dark h5 .docs-heading-anchor-permalink, html.theme--documenter-dark h6 .docs-heading-anchor-permalink { + visibility: hidden; + vertical-align: middle; + margin-left: 0.5em; + font-size: 0.7rem; } + html.theme--documenter-dark h1 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h2 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h3 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h4 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h5 .docs-heading-anchor-permalink::before, html.theme--documenter-dark h6 .docs-heading-anchor-permalink::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f0c1"; } + html.theme--documenter-dark h1:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h2:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h3:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h4:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h5:hover .docs-heading-anchor-permalink, html.theme--documenter-dark h6:hover .docs-heading-anchor-permalink { + visibility: visible; } + html.theme--documenter-dark .docs-light-only { + display: none !important; } + html.theme--documenter-dark pre { + position: relative; + overflow: hidden; } + html.theme--documenter-dark pre code, html.theme--documenter-dark pre code.hljs { + padding: 0 0.75rem !important; + overflow: auto; + display: block; } + html.theme--documenter-dark pre code:first-of-type, html.theme--documenter-dark pre code.hljs:first-of-type { + padding-top: 0.5rem !important; } + html.theme--documenter-dark pre code:last-of-type, html.theme--documenter-dark pre code.hljs:last-of-type { + padding-bottom: 0.5rem !important; } + html.theme--documenter-dark pre .copy-button { + opacity: 0.2; + transition: opacity 0.2s; + position: absolute; + right: 0em; + top: 0em; + padding: 0.5em; + width: 2.5em; + height: 2.5em; + background: transparent; + border: none; + font-family: "Font Awesome 5 Free"; + color: #fff; + cursor: pointer; + text-align: center; } + html.theme--documenter-dark pre .copy-button:focus, html.theme--documenter-dark pre .copy-button:hover { + opacity: 1; + background: rgba(255, 255, 255, 0.1); + color: #1abc9c; } + html.theme--documenter-dark pre .copy-button.success { + color: #259a12; + opacity: 1; } + html.theme--documenter-dark pre .copy-button.error { + color: #cb3c33; + opacity: 1; } + html.theme--documenter-dark pre:hover .copy-button { + opacity: 1; } + html.theme--documenter-dark .admonition { + background-color: #282f2f; + border-style: solid; + border-width: 1px; + border-color: #5e6d6f; + border-radius: 0.4em; + font-size: 15px; } + html.theme--documenter-dark .admonition strong { + color: currentColor; } + html.theme--documenter-dark .admonition.is-small, html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input.admonition { + font-size: 0.85em; } + html.theme--documenter-dark .admonition.is-medium { + font-size: 1.25rem; } + html.theme--documenter-dark .admonition.is-large { + font-size: 1.5rem; } + html.theme--documenter-dark .admonition.is-default { + background-color: #282f2f; + border-color: #5e6d6f; } + html.theme--documenter-dark .admonition.is-default > .admonition-header { + background-color: #5e6d6f; } + 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; } + 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; } + 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; } + 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; } + 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; } + html.theme--documenter-dark .admonition-header { + background-color: #5e6d6f; + align-items: center; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.5rem 0.75rem; + position: relative; } + html.theme--documenter-dark .admonition-header:before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + margin-right: 0.75rem; + content: "\f06a"; } + html.theme--documenter-dark .admonition-body { + color: #fff; + padding: 0.5rem 0.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: transparent; + border: 1px solid #5e6d6f; + box-shadow: none; + max-width: 100%; } + html.theme--documenter-dark .docstring > header { + display: flex; + flex-grow: 1; + align-items: stretch; + padding: 0.5rem 0.75rem; + background-color: #282f2f; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + box-shadow: none; + border-bottom: 1px solid #5e6d6f; } + html.theme--documenter-dark .docstring > header code { + background-color: transparent; } + html.theme--documenter-dark .docstring > header .docstring-binding { + margin-right: 0.3em; } + html.theme--documenter-dark .docstring > header .docstring-category { + margin-left: 0.3em; } + html.theme--documenter-dark .docstring > section { + position: relative; + padding: 0.75rem 0.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: 0.375rem; + bottom: 0.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; + border-bottom: 3px solid #9e1b0d; + padding: 10px 35px; + text-align: center; + font-size: 15px; } + html.theme--documenter-dark .outdated-warning-overlay .outdated-warning-closer { + position: absolute; + top: calc(50% - 10px); + right: 18px; + cursor: pointer; + width: 12px; } + html.theme--documenter-dark .outdated-warning-overlay a { + color: #1abc9c; } + html.theme--documenter-dark .outdated-warning-overlay a:hover { + color: #1dd2af; } + html.theme--documenter-dark .content pre { + border: 1px solid #5e6d6f; } + html.theme--documenter-dark .content code { + font-weight: inherit; } + html.theme--documenter-dark .content a code { + color: #1abc9c; } + html.theme--documenter-dark .content h1 code, html.theme--documenter-dark .content h2 code, html.theme--documenter-dark .content h3 code, html.theme--documenter-dark .content h4 code, html.theme--documenter-dark .content h5 code, html.theme--documenter-dark .content h6 code { + color: #f2f2f2; } + html.theme--documenter-dark .content table { + display: block; + width: initial; + max-width: 100%; + overflow-x: auto; } + html.theme--documenter-dark .content blockquote > ul:first-child, html.theme--documenter-dark .content blockquote > ol:first-child, html.theme--documenter-dark .content .admonition-body > ul:first-child, html.theme--documenter-dark .content .admonition-body > ol:first-child { + margin-top: 0; } + html.theme--documenter-dark pre, html.theme--documenter-dark code { + font-variant-ligatures: no-contextual; } + html.theme--documenter-dark .breadcrumb a.is-disabled { + cursor: default; + pointer-events: none; } + html.theme--documenter-dark .breadcrumb a.is-disabled, html.theme--documenter-dark .breadcrumb a.is-disabled:hover { + color: #f2f2f2; } + html.theme--documenter-dark .hljs { + background: initial !important; } + html.theme--documenter-dark .katex .katex-mathml { + top: 0; + right: 0; } + html.theme--documenter-dark .katex-display, html.theme--documenter-dark mjx-container, html.theme--documenter-dark .MathJax_Display { + margin: 0.5em 0 !important; } + html.theme--documenter-dark html { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; } + html.theme--documenter-dark li.no-marker { + list-style: none; } + html.theme--documenter-dark #documenter .docs-main > article { + overflow-wrap: break-word; } + html.theme--documenter-dark #documenter .docs-main > article .math-container { + overflow-x: auto; + overflow-y: hidden; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-main { + max-width: 52rem; + margin-left: 20rem; + padding-right: 1rem; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main { + width: 100%; } + html.theme--documenter-dark #documenter .docs-main > article { + max-width: 52rem; + margin-left: auto; + margin-right: auto; + margin-bottom: 1rem; + padding: 0 1rem; } + html.theme--documenter-dark #documenter .docs-main > header, html.theme--documenter-dark #documenter .docs-main > nav { + max-width: 100%; + width: 100%; + margin: 0; } } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar { + background-color: #1f2424; + border-bottom: 1px solid #5e6d6f; + z-index: 2; + min-height: 4rem; + margin-bottom: 1rem; + display: flex; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .breadcrumb { + flex-grow: 1; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right { + display: flex; + white-space: nowrap; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-icon, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label, html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + display: inline-block; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-label { + padding: 0; + margin-left: 0.3em; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button { + margin: auto 0 auto 1rem; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + font-size: 1.5rem; + margin: auto 0 auto 1rem; } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar > * { + margin: auto 0; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main header.docs-navbar { + position: sticky; + top: 0; + padding: 0 1rem; + /* For Headroom.js */ + transition-property: top, box-shadow; + -webkit-transition-property: top, box-shadow; + /* Safari */ + transition-duration: 0.3s; + -webkit-transition-duration: 0.3s; + /* Safari */ } + html.theme--documenter-dark #documenter .docs-main header.docs-navbar.headroom--not-top { + box-shadow: 0.2rem 0rem 0.4rem #171717; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } + 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; + /* Safari */ } } + html.theme--documenter-dark #documenter .docs-main section.footnotes { + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-main section.footnotes li .tag:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .docstring > section > a.docs-sourcelink:first-child, html.theme--documenter-dark #documenter .docs-main section.footnotes li .content kbd:first-child, html.theme--documenter-dark .content #documenter .docs-main section.footnotes li kbd:first-child { + margin-right: 1em; + margin-bottom: 0.4em; } + html.theme--documenter-dark #documenter .docs-main .docs-footer { + display: flex; + flex-wrap: wrap; + margin-left: 0; + margin-right: 0; + border-top: 1px solid #5e6d6f; + padding-top: 1rem; + padding-bottom: 1rem; } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-main .docs-footer { + padding-left: 1rem; + padding-right: 1rem; } } + html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage, html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-prevpage { + flex-grow: 1; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .docs-footer-nextpage { + text-align: right; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .flexbox-break { + flex-basis: 100%; + height: 0; } + html.theme--documenter-dark #documenter .docs-main .docs-footer .footer-message { + font-size: 0.8em; + margin: 0.5em auto 0 auto; + text-align: center; } + html.theme--documenter-dark #documenter .docs-sidebar { + display: flex; + flex-direction: column; + color: #fff; + background-color: #282f2f; + border-right: 1px solid #5e6d6f; + padding: 0; + flex: 0 0 18rem; + z-index: 5; + font-size: 15px; + position: fixed; + left: -18rem; + width: 18rem; + height: 100%; + transition: left 0.3s; + /* Setting up a nicer theme style for the scrollbar */ } + html.theme--documenter-dark #documenter .docs-sidebar.visible { + left: 0; + box-shadow: 0.4rem 0rem 0.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; + /* Managing collapsible submenus */ } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li > .tocitem { + font-weight: bold; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li li { + font-size: 14.25px; + margin-left: 1em; + border-left: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input.collapse-toggle { + display: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.collapsed { + display: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ ul.collapsed { + display: block; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem { + display: flex; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-label { + flex-grow: 2; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron { + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + line-height: 1; + font-size: 11.25px; + margin-left: 1rem; + margin-top: auto; + margin-bottom: auto; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f054"; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before { + content: "\f078"; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem { + display: block; + padding: 0.5rem 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu .tocitem:hover { + color: #fff; + background: #282f2f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu a.tocitem:hover, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu label.tocitem:hover { + color: #fff; + background-color: #32393a; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active { + border-top: 1px solid #5e6d6f; + border-bottom: 1px solid #5e6d6f; + background-color: #1f2424; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover { + background-color: #1f2424; + color: #fff; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu li.is-active ul.internal .tocitem:hover { + background-color: #32393a; + color: #fff; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu > li.is-active:first-child { + border-top: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal { + margin: 0 0.5rem 0.5rem; + border-top: 1px solid #5e6d6f; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal li { + font-size: 12.75px; + border-left: none; + margin-left: 0; + margin-top: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem { + width: 100%; + padding: 0; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before { + content: "⚬"; + margin-right: 0.4em; } + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search { + margin: auto; + margin-top: 0.5rem; + margin-bottom: 0.5rem; } + html.theme--documenter-dark #documenter .docs-sidebar form.docs-search > input { + width: 14.4rem; } + @media screen and (min-width: 1056px) { + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar { + width: .3rem; + background: none; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #3b4445; } + html.theme--documenter-dark #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover { + background: #4e5a5c; } } + @media screen and (max-width: 1055px) { + html.theme--documenter-dark #documenter .docs-sidebar { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar { + width: .3rem; + background: none; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #3b4445; } + html.theme--documenter-dark #documenter .docs-sidebar::-webkit-scrollbar-thumb:hover { + background: #4e5a5c; } } + html.theme--documenter-dark #documenter .docs-main #documenter-search-info { + margin-bottom: 1rem; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results { + list-style-type: circle; + list-style-position: outside; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results li { + margin-left: 2rem; } + html.theme--documenter-dark #documenter .docs-main #documenter-search-results .docs-highlight { + background-color: yellow; } + html.theme--documenter-dark { + background-color: #1f2424; + font-size: 16px; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + html.theme--documenter-dark .ansi span.sgr1 { + font-weight: bolder; } + html.theme--documenter-dark .ansi span.sgr2 { + font-weight: lighter; } + html.theme--documenter-dark .ansi span.sgr3 { + font-style: italic; } + html.theme--documenter-dark .ansi span.sgr4 { + text-decoration: underline; } + html.theme--documenter-dark .ansi span.sgr7 { + color: #1f2424; + background-color: #fff; } + html.theme--documenter-dark .ansi span.sgr8 { + color: transparent; } + html.theme--documenter-dark .ansi span.sgr8 span { + color: transparent; } + html.theme--documenter-dark .ansi span.sgr9 { + text-decoration: line-through; } + html.theme--documenter-dark .ansi span.sgr30 { + color: #242424; } + html.theme--documenter-dark .ansi span.sgr31 { + color: #f6705f; } + html.theme--documenter-dark .ansi span.sgr32 { + color: #4fb43a; } + html.theme--documenter-dark .ansi span.sgr33 { + color: #f4c72f; } + html.theme--documenter-dark .ansi span.sgr34 { + color: #7587f0; } + html.theme--documenter-dark .ansi span.sgr35 { + color: #bc89d3; } + html.theme--documenter-dark .ansi span.sgr36 { + color: #49b6ca; } + html.theme--documenter-dark .ansi span.sgr37 { + color: #b3bdbe; } + html.theme--documenter-dark .ansi span.sgr40 { + background-color: #242424; } + html.theme--documenter-dark .ansi span.sgr41 { + background-color: #f6705f; } + html.theme--documenter-dark .ansi span.sgr42 { + background-color: #4fb43a; } + html.theme--documenter-dark .ansi span.sgr43 { + background-color: #f4c72f; } + html.theme--documenter-dark .ansi span.sgr44 { + background-color: #7587f0; } + html.theme--documenter-dark .ansi span.sgr45 { + background-color: #bc89d3; } + html.theme--documenter-dark .ansi span.sgr46 { + background-color: #49b6ca; } + html.theme--documenter-dark .ansi span.sgr47 { + background-color: #b3bdbe; } + html.theme--documenter-dark .ansi span.sgr90 { + color: #92a0a2; } + html.theme--documenter-dark .ansi span.sgr91 { + color: #ff8674; } + html.theme--documenter-dark .ansi span.sgr92 { + color: #79d462; } + html.theme--documenter-dark .ansi span.sgr93 { + color: #ffe76b; } + html.theme--documenter-dark .ansi span.sgr94 { + color: #8a98ff; } + html.theme--documenter-dark .ansi span.sgr95 { + color: #d2a4e6; } + html.theme--documenter-dark .ansi span.sgr96 { + color: #6bc8db; } + html.theme--documenter-dark .ansi span.sgr97 { + color: #ecf0f1; } + html.theme--documenter-dark .ansi span.sgr100 { + background-color: #92a0a2; } + html.theme--documenter-dark .ansi span.sgr101 { + background-color: #ff8674; } + html.theme--documenter-dark .ansi span.sgr102 { + background-color: #79d462; } + html.theme--documenter-dark .ansi span.sgr103 { + background-color: #ffe76b; } + html.theme--documenter-dark .ansi span.sgr104 { + background-color: #8a98ff; } + html.theme--documenter-dark .ansi span.sgr105 { + background-color: #d2a4e6; } + html.theme--documenter-dark .ansi span.sgr106 { + background-color: #6bc8db; } + html.theme--documenter-dark .ansi span.sgr107 { + background-color: #ecf0f1; } + html.theme--documenter-dark code.language-julia-repl > span.hljs-meta { + color: #4fb43a; + font-weight: bolder; } + html.theme--documenter-dark .hljs { + background: #2b2b2b; + color: #f8f8f2; } + html.theme--documenter-dark .hljs-comment, + html.theme--documenter-dark .hljs-quote { + color: #d4d0ab; } + html.theme--documenter-dark .hljs-variable, + html.theme--documenter-dark .hljs-template-variable, + html.theme--documenter-dark .hljs-tag, + html.theme--documenter-dark .hljs-name, + html.theme--documenter-dark .hljs-selector-id, + html.theme--documenter-dark .hljs-selector-class, + html.theme--documenter-dark .hljs-regexp, + html.theme--documenter-dark .hljs-deletion { + color: #ffa07a; } + html.theme--documenter-dark .hljs-number, + html.theme--documenter-dark .hljs-built_in, + html.theme--documenter-dark .hljs-literal, + html.theme--documenter-dark .hljs-type, + html.theme--documenter-dark .hljs-params, + html.theme--documenter-dark .hljs-meta, + html.theme--documenter-dark .hljs-link { + color: #f5ab35; } + html.theme--documenter-dark .hljs-attribute { + color: #ffd700; } + html.theme--documenter-dark .hljs-string, + html.theme--documenter-dark .hljs-symbol, + html.theme--documenter-dark .hljs-bullet, + html.theme--documenter-dark .hljs-addition { + color: #abe338; } + html.theme--documenter-dark .hljs-title, + html.theme--documenter-dark .hljs-section { + color: #00e0e0; } + html.theme--documenter-dark .hljs-keyword, + html.theme--documenter-dark .hljs-selector-tag { + color: #dcc6e0; } + html.theme--documenter-dark .hljs-emphasis { + font-style: italic; } + html.theme--documenter-dark .hljs-strong { + font-weight: bold; } + @media screen and (-ms-high-contrast: active) { + html.theme--documenter-dark .hljs-addition, + html.theme--documenter-dark .hljs-attribute, + html.theme--documenter-dark .hljs-built_in, + html.theme--documenter-dark .hljs-bullet, + html.theme--documenter-dark .hljs-comment, + html.theme--documenter-dark .hljs-link, + html.theme--documenter-dark .hljs-literal, + html.theme--documenter-dark .hljs-meta, + html.theme--documenter-dark .hljs-number, + html.theme--documenter-dark .hljs-params, + html.theme--documenter-dark .hljs-string, + html.theme--documenter-dark .hljs-symbol, + html.theme--documenter-dark .hljs-type, + html.theme--documenter-dark .hljs-quote { + color: highlight; } + html.theme--documenter-dark .hljs-keyword, + html.theme--documenter-dark .hljs-selector-tag { + font-weight: bold; } } + html.theme--documenter-dark .hljs-subst { + color: #f8f8f2; } diff --git a/v0.5.0/assets/themes/documenter-light.css b/v0.5.0/assets/themes/documenter-light.css new file mode 100644 index 000000000..9595d5b8e --- /dev/null +++ b/v0.5.0/assets/themes/documenter-light.css @@ -0,0 +1,7738 @@ +@charset "UTF-8"; +/* Font Awesome 5 mixin. Can be included in any rule that should render Font Awesome icons. */ +@keyframes spinAround { + from { + transform: rotate(0deg); } + to { + transform: rotate(359deg); } } + +.tabs, .pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis, .breadcrumb, .file, .button, .is-unselectable, .modal-close, .delete { + -webkit-touch-callout: none; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; } + +.navbar-link:not(.is-arrowless)::after, .select:not(.is-multiple):not(.is-loading)::after { + border: 3px solid transparent; + border-radius: 2px; + border-right: 0; + border-top: 0; + content: " "; + display: block; + height: 0.625em; + margin-top: -0.4375em; + pointer-events: none; + position: absolute; + top: 50%; + transform: rotate(-45deg); + transform-origin: center; + width: 0.625em; } + +.admonition:not(:last-child), .tabs:not(:last-child), .message:not(:last-child), .list:not(:last-child), .level:not(:last-child), .breadcrumb:not(:last-child), .highlight:not(:last-child), .block:not(:last-child), .title:not(:last-child), +.subtitle:not(:last-child), .table-container:not(:last-child), .table:not(:last-child), .progress:not(:last-child), .notification:not(:last-child), .content:not(:last-child), .box:not(:last-child) { + margin-bottom: 1.5rem; } + +.modal-close, .delete { + -moz-appearance: none; + -webkit-appearance: none; + background-color: rgba(10, 10, 10, 0.2); + border: none; + border-radius: 290486px; + cursor: pointer; + pointer-events: auto; + display: inline-block; + flex-grow: 0; + flex-shrink: 0; + font-size: 0; + height: 20px; + max-height: 20px; + max-width: 20px; + min-height: 20px; + min-width: 20px; + outline: none; + position: relative; + vertical-align: top; + width: 20px; } + .modal-close::before, .delete::before, .modal-close::after, .delete::after { + background-color: white; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + .modal-close::before, .delete::before { + height: 2px; + width: 50%; } + .modal-close::after, .delete::after { + height: 50%; + width: 2px; } + .modal-close:hover, .delete:hover, .modal-close:focus, .delete:focus { + background-color: rgba(10, 10, 10, 0.3); } + .modal-close:active, .delete:active { + background-color: rgba(10, 10, 10, 0.4); } + .is-small.modal-close, #documenter .docs-sidebar form.docs-search > input.modal-close, .is-small.delete, #documenter .docs-sidebar form.docs-search > input.delete { + height: 16px; + max-height: 16px; + max-width: 16px; + min-height: 16px; + min-width: 16px; + width: 16px; } + .is-medium.modal-close, .is-medium.delete { + height: 24px; + max-height: 24px; + max-width: 24px; + min-height: 24px; + min-width: 24px; + width: 24px; } + .is-large.modal-close, .is-large.delete { + height: 32px; + max-height: 32px; + max-width: 32px; + min-height: 32px; + min-width: 32px; + width: 32px; } + +.control.is-loading::after, .select.is-loading::after, .loader, .button.is-loading::after { + animation: spinAround 500ms infinite linear; + border: 2px solid #dbdbdb; + border-radius: 290486px; + border-right-color: transparent; + border-top-color: transparent; + content: ""; + display: block; + height: 1em; + position: relative; + width: 1em; } + +.hero-video, .modal-background, .modal, .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img, +.image.is-square .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img, +.image.is-1by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img, +.image.is-5by4 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img, +.image.is-4by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img, +.image.is-3by2 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img, +.image.is-5by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img, +.image.is-16by9 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img, +.image.is-2by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img, +.image.is-3by1 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img, +.image.is-4by5 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img, +.image.is-3by4 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img, +.image.is-2by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img, +.image.is-3by5 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img, +.image.is-9by16 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img, +.image.is-1by2 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img, +.image.is-1by3 .has-ratio, +#documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio, .is-overlay { + bottom: 0; + left: 0; + position: absolute; + right: 0; + top: 0; } + +.pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis, .file-cta, +.file-name, .select select, .textarea, .input, #documenter .docs-sidebar form.docs-search > input, .button { + -moz-appearance: none; + -webkit-appearance: none; + align-items: center; + border: 1px solid transparent; + border-radius: 4px; + box-shadow: none; + display: inline-flex; + font-size: 1rem; + height: 2.25em; + justify-content: flex-start; + line-height: 1.5; + padding-bottom: calc(0.375em - 1px); + padding-left: calc(0.625em - 1px); + padding-right: calc(0.625em - 1px); + padding-top: calc(0.375em - 1px); + position: relative; + vertical-align: top; } + .pagination-previous:focus, + .pagination-next:focus, + .pagination-link:focus, + .pagination-ellipsis:focus, .file-cta:focus, + .file-name:focus, .select select:focus, .textarea:focus, .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .button:focus, .is-focused.pagination-previous, + .is-focused.pagination-next, + .is-focused.pagination-link, + .is-focused.pagination-ellipsis, .is-focused.file-cta, + .is-focused.file-name, .select select.is-focused, .is-focused.textarea, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .is-focused.button, .pagination-previous:active, + .pagination-next:active, + .pagination-link:active, + .pagination-ellipsis:active, .file-cta:active, + .file-name:active, .select select:active, .textarea:active, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .button:active, .is-active.pagination-previous, + .is-active.pagination-next, + .is-active.pagination-link, + .is-active.pagination-ellipsis, .is-active.file-cta, + .is-active.file-name, .select select.is-active, .is-active.textarea, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active, .is-active.button { + outline: none; } + .pagination-previous[disabled], + .pagination-next[disabled], + .pagination-link[disabled], + .pagination-ellipsis[disabled], .file-cta[disabled], + .file-name[disabled], .select select[disabled], .textarea[disabled], .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], .button[disabled], fieldset[disabled] .pagination-previous, + fieldset[disabled] .pagination-next, + fieldset[disabled] .pagination-link, + fieldset[disabled] .pagination-ellipsis, fieldset[disabled] .file-cta, + fieldset[disabled] .file-name, fieldset[disabled] .select select, .select fieldset[disabled] select, fieldset[disabled] .textarea, fieldset[disabled] .input, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input, fieldset[disabled] .button { + cursor: not-allowed; } + +/*! minireset.css v0.0.4 | MIT License | github.com/jgthms/minireset.css */ +html, +body, +p, +ol, +ul, +li, +dl, +dt, +dd, +blockquote, +figure, +fieldset, +legend, +textarea, +pre, +iframe, +hr, +h1, +h2, +h3, +h4, +h5, +h6 { + margin: 0; + padding: 0; } + +h1, +h2, +h3, +h4, +h5, +h6 { + font-size: 100%; + font-weight: normal; } + +ul { + list-style: none; } + +button, +input, +select, +textarea { + margin: 0; } + +html { + box-sizing: border-box; } + +*, *::before, *::after { + box-sizing: inherit; } + +img, +embed, +iframe, +object, +video { + height: auto; + max-width: 100%; } + +audio { + max-width: 100%; } + +iframe { + border: 0; } + +table { + border-collapse: collapse; + border-spacing: 0; } + +td, +th { + padding: 0; } + td:not([align]), + th:not([align]) { + text-align: left; } + +html { + background-color: white; + font-size: 16px; + -moz-osx-font-smoothing: grayscale; + -webkit-font-smoothing: antialiased; + min-width: 300px; + overflow-x: auto; + overflow-y: scroll; + text-rendering: optimizeLegibility; + text-size-adjust: 100%; } + +article, +aside, +figure, +footer, +header, +hgroup, +section { + display: block; } + +body, +button, +input, +select, +textarea { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif; } + +code, +pre { + -moz-osx-font-smoothing: auto; + -webkit-font-smoothing: auto; + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace; } + +body { + color: #222222; + 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: #000000; + font-size: 0.875em; + font-weight: normal; + padding: 0.1em; } + +hr { + background-color: whitesmoke; + 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: 0.875em; } + +span { + font-style: inherit; + font-weight: inherit; } + +strong { + color: #222222; + font-weight: 700; } + +fieldset { + border: none; } + +pre { + -webkit-overflow-scrolling: touch; + background-color: whitesmoke; + color: #222222; + font-size: 0.875em; + overflow-x: auto; + padding: 1.25rem 1.5rem; + white-space: pre; + word-wrap: normal; } + pre code { + background-color: transparent; + color: currentColor; + font-size: 1em; + padding: 0; } + +table td, +table th { + vertical-align: top; } + table td:not([align]), + table th:not([align]) { + text-align: left; } + +table th { + color: #222222; } + +.is-clearfix::after { + clear: both; + content: " "; + display: table; } + +.is-pulled-left { + float: left !important; } + +.is-pulled-right { + float: right !important; } + +.is-clipped { + overflow: hidden !important; } + +.is-size-1 { + font-size: 3rem !important; } + +.is-size-2 { + font-size: 2.5rem !important; } + +.is-size-3 { + font-size: 2rem !important; } + +.is-size-4 { + font-size: 1.5rem !important; } + +.is-size-5 { + font-size: 1.25rem !important; } + +.is-size-6 { + font-size: 1rem !important; } + +.is-size-7, .docstring > section > a.docs-sourcelink { + font-size: 0.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: 0.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: 0.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: 0.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: 0.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: 0.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: 0.75rem !important; } } + +.has-text-centered { + text-align: center !important; } + +.has-text-justified { + text-align: justify !important; } + +.has-text-left { + text-align: left !important; } + +.has-text-right { + text-align: right !important; } + +@media screen and (max-width: 768px) { + .has-text-centered-mobile { + text-align: center !important; } } + +@media screen and (min-width: 769px), print { + .has-text-centered-tablet { + text-align: center !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-centered-tablet-only { + text-align: center !important; } } + +@media screen and (max-width: 1055px) { + .has-text-centered-touch { + text-align: center !important; } } + +@media screen and (min-width: 1056px) { + .has-text-centered-desktop { + text-align: center !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-centered-desktop-only { + text-align: center !important; } } + +@media screen and (min-width: 1216px) { + .has-text-centered-widescreen { + text-align: center !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-centered-widescreen-only { + text-align: center !important; } } + +@media screen and (min-width: 1408px) { + .has-text-centered-fullhd { + text-align: center !important; } } + +@media screen and (max-width: 768px) { + .has-text-justified-mobile { + text-align: justify !important; } } + +@media screen and (min-width: 769px), print { + .has-text-justified-tablet { + text-align: justify !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-justified-tablet-only { + text-align: justify !important; } } + +@media screen and (max-width: 1055px) { + .has-text-justified-touch { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) { + .has-text-justified-desktop { + text-align: justify !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-justified-desktop-only { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) { + .has-text-justified-widescreen { + text-align: justify !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-justified-widescreen-only { + text-align: justify !important; } } + +@media screen and (min-width: 1408px) { + .has-text-justified-fullhd { + text-align: justify !important; } } + +@media screen and (max-width: 768px) { + .has-text-left-mobile { + text-align: left !important; } } + +@media screen and (min-width: 769px), print { + .has-text-left-tablet { + text-align: left !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-left-tablet-only { + text-align: left !important; } } + +@media screen and (max-width: 1055px) { + .has-text-left-touch { + text-align: left !important; } } + +@media screen and (min-width: 1056px) { + .has-text-left-desktop { + text-align: left !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-left-desktop-only { + text-align: left !important; } } + +@media screen and (min-width: 1216px) { + .has-text-left-widescreen { + text-align: left !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-left-widescreen-only { + text-align: left !important; } } + +@media screen and (min-width: 1408px) { + .has-text-left-fullhd { + text-align: left !important; } } + +@media screen and (max-width: 768px) { + .has-text-right-mobile { + text-align: right !important; } } + +@media screen and (min-width: 769px), print { + .has-text-right-tablet { + text-align: right !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .has-text-right-tablet-only { + text-align: right !important; } } + +@media screen and (max-width: 1055px) { + .has-text-right-touch { + text-align: right !important; } } + +@media screen and (min-width: 1056px) { + .has-text-right-desktop { + text-align: right !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .has-text-right-desktop-only { + text-align: right !important; } } + +@media screen and (min-width: 1216px) { + .has-text-right-widescreen { + text-align: right !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .has-text-right-widescreen-only { + text-align: right !important; } } + +@media screen and (min-width: 1408px) { + .has-text-right-fullhd { + text-align: right !important; } } + +.is-capitalized { + text-transform: capitalize !important; } + +.is-lowercase { + text-transform: lowercase !important; } + +.is-uppercase { + text-transform: uppercase !important; } + +.is-italic { + font-style: italic !important; } + +.has-text-white { + color: white !important; } + +a.has-text-white:hover, a.has-text-white:focus { + color: #e6e6e6 !important; } + +.has-background-white { + background-color: white !important; } + +.has-text-black { + color: #0a0a0a !important; } + +a.has-text-black:hover, a.has-text-black:focus { + color: black !important; } + +.has-background-black { + background-color: #0a0a0a !important; } + +.has-text-light { + color: whitesmoke !important; } + +a.has-text-light:hover, a.has-text-light:focus { + color: #dbdbdb !important; } + +.has-background-light { + background-color: whitesmoke !important; } + +.has-text-dark { + color: #363636 !important; } + +a.has-text-dark:hover, a.has-text-dark:focus { + color: #1c1c1c !important; } + +.has-background-dark { + background-color: #363636 !important; } + +.has-text-primary { + color: #4eb5de !important; } + +a.has-text-primary:hover, a.has-text-primary:focus { + color: #27a1d2 !important; } + +.has-background-primary { + background-color: #4eb5de !important; } + +.has-text-link { + color: #2e63b8 !important; } + +a.has-text-link:hover, a.has-text-link:focus { + color: #244d8f !important; } + +.has-background-link { + background-color: #2e63b8 !important; } + +.has-text-info { + color: #209cee !important; } + +a.has-text-info:hover, a.has-text-info:focus { + color: #1081cb !important; } + +.has-background-info { + background-color: #209cee !important; } + +.has-text-success { + color: #22c35b !important; } + +a.has-text-success:hover, a.has-text-success:focus { + color: #1a9847 !important; } + +.has-background-success { + background-color: #22c35b !important; } + +.has-text-warning { + color: #ffdd57 !important; } + +a.has-text-warning:hover, a.has-text-warning:focus { + color: #ffd324 !important; } + +.has-background-warning { + background-color: #ffdd57 !important; } + +.has-text-danger { + color: #da0b00 !important; } + +a.has-text-danger:hover, a.has-text-danger:focus { + color: #a70800 !important; } + +.has-background-danger { + background-color: #da0b00 !important; } + +.has-text-black-bis { + color: #121212 !important; } + +.has-background-black-bis { + background-color: #121212 !important; } + +.has-text-black-ter { + color: #242424 !important; } + +.has-background-black-ter { + background-color: #242424 !important; } + +.has-text-grey-darker { + color: #363636 !important; } + +.has-background-grey-darker { + background-color: #363636 !important; } + +.has-text-grey-dark { + color: #4a4a4a !important; } + +.has-background-grey-dark { + background-color: #4a4a4a !important; } + +.has-text-grey { + color: #6b6b6b !important; } + +.has-background-grey { + background-color: #6b6b6b !important; } + +.has-text-grey-light { + color: #b5b5b5 !important; } + +.has-background-grey-light { + background-color: #b5b5b5 !important; } + +.has-text-grey-lighter { + color: #dbdbdb !important; } + +.has-background-grey-lighter { + background-color: #dbdbdb !important; } + +.has-text-white-ter { + color: whitesmoke !important; } + +.has-background-white-ter { + background-color: whitesmoke !important; } + +.has-text-white-bis { + color: #fafafa !important; } + +.has-background-white-bis { + background-color: #fafafa !important; } + +.has-text-weight-light { + font-weight: 300 !important; } + +.has-text-weight-normal { + font-weight: 400 !important; } + +.has-text-weight-medium { + font-weight: 500 !important; } + +.has-text-weight-semibold { + font-weight: 600 !important; } + +.has-text-weight-bold { + font-weight: 700 !important; } + +.is-family-primary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-secondary { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-sans-serif { + font-family: "Lato Medium", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", "Helvetica", "Arial", sans-serif !important; } + +.is-family-monospace { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-family-code { + font-family: "JuliaMono", "SFMono-Regular", "Menlo", "Consolas", "Liberation Mono", "DejaVu Sans Mono", monospace !important; } + +.is-block { + display: block !important; } + +@media screen and (max-width: 768px) { + .is-block-mobile { + display: block !important; } } + +@media screen and (min-width: 769px), print { + .is-block-tablet { + display: block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-block-tablet-only { + display: block !important; } } + +@media screen and (max-width: 1055px) { + .is-block-touch { + display: block !important; } } + +@media screen and (min-width: 1056px) { + .is-block-desktop { + display: block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-block-desktop-only { + display: block !important; } } + +@media screen and (min-width: 1216px) { + .is-block-widescreen { + display: block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-block-widescreen-only { + display: block !important; } } + +@media screen and (min-width: 1408px) { + .is-block-fullhd { + display: block !important; } } + +.is-flex { + display: flex !important; } + +@media screen and (max-width: 768px) { + .is-flex-mobile { + display: flex !important; } } + +@media screen and (min-width: 769px), print { + .is-flex-tablet { + display: flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-flex-tablet-only { + display: flex !important; } } + +@media screen and (max-width: 1055px) { + .is-flex-touch { + display: flex !important; } } + +@media screen and (min-width: 1056px) { + .is-flex-desktop { + display: flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-flex-desktop-only { + display: flex !important; } } + +@media screen and (min-width: 1216px) { + .is-flex-widescreen { + display: flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-flex-widescreen-only { + display: flex !important; } } + +@media screen and (min-width: 1408px) { + .is-flex-fullhd { + display: flex !important; } } + +.is-inline { + display: inline !important; } + +@media screen and (max-width: 768px) { + .is-inline-mobile { + display: inline !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-tablet { + display: inline !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-tablet-only { + display: inline !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-touch { + display: inline !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-desktop { + display: inline !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-desktop-only { + display: inline !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-widescreen { + display: inline !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-widescreen-only { + display: inline !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-fullhd { + display: inline !important; } } + +.is-inline-block { + display: inline-block !important; } + +@media screen and (max-width: 768px) { + .is-inline-block-mobile { + display: inline-block !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-block-tablet { + display: inline-block !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-block-tablet-only { + display: inline-block !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-block-touch { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-block-desktop { + display: inline-block !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-block-desktop-only { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-block-widescreen { + display: inline-block !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-block-widescreen-only { + display: inline-block !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-block-fullhd { + display: inline-block !important; } } + +.is-inline-flex { + display: inline-flex !important; } + +@media screen and (max-width: 768px) { + .is-inline-flex-mobile { + display: inline-flex !important; } } + +@media screen and (min-width: 769px), print { + .is-inline-flex-tablet { + display: inline-flex !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-inline-flex-tablet-only { + display: inline-flex !important; } } + +@media screen and (max-width: 1055px) { + .is-inline-flex-touch { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) { + .is-inline-flex-desktop { + display: inline-flex !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-inline-flex-desktop-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) { + .is-inline-flex-widescreen { + display: inline-flex !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-inline-flex-widescreen-only { + display: inline-flex !important; } } + +@media screen and (min-width: 1408px) { + .is-inline-flex-fullhd { + display: inline-flex !important; } } + +.is-hidden { + display: none !important; } + +.is-sr-only { + border: none !important; + clip: rect(0, 0, 0, 0) !important; + height: 0.01em !important; + overflow: hidden !important; + padding: 0 !important; + position: absolute !important; + white-space: nowrap !important; + width: 0.01em !important; } + +@media screen and (max-width: 768px) { + .is-hidden-mobile { + display: none !important; } } + +@media screen and (min-width: 769px), print { + .is-hidden-tablet { + display: none !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-hidden-tablet-only { + display: none !important; } } + +@media screen and (max-width: 1055px) { + .is-hidden-touch { + display: none !important; } } + +@media screen and (min-width: 1056px) { + .is-hidden-desktop { + display: none !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-hidden-desktop-only { + display: none !important; } } + +@media screen and (min-width: 1216px) { + .is-hidden-widescreen { + display: none !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-hidden-widescreen-only { + display: none !important; } } + +@media screen and (min-width: 1408px) { + .is-hidden-fullhd { + display: none !important; } } + +.is-invisible { + visibility: hidden !important; } + +@media screen and (max-width: 768px) { + .is-invisible-mobile { + visibility: hidden !important; } } + +@media screen and (min-width: 769px), print { + .is-invisible-tablet { + visibility: hidden !important; } } + +@media screen and (min-width: 769px) and (max-width: 1055px) { + .is-invisible-tablet-only { + visibility: hidden !important; } } + +@media screen and (max-width: 1055px) { + .is-invisible-touch { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) { + .is-invisible-desktop { + visibility: hidden !important; } } + +@media screen and (min-width: 1056px) and (max-width: 1215px) { + .is-invisible-desktop-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) { + .is-invisible-widescreen { + visibility: hidden !important; } } + +@media screen and (min-width: 1216px) and (max-width: 1407px) { + .is-invisible-widescreen-only { + visibility: hidden !important; } } + +@media screen and (min-width: 1408px) { + .is-invisible-fullhd { + visibility: hidden !important; } } + +.is-marginless { + margin: 0 !important; } + +.is-paddingless { + padding: 0 !important; } + +.is-radiusless { + border-radius: 0 !important; } + +.is-shadowless { + box-shadow: none !important; } + +.is-relative { + position: relative !important; } + +.box { + background-color: white; + border-radius: 6px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #222222; + display: block; + padding: 1.25rem; } + +a.box:hover, a.box:focus { + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px #2e63b8; } + +a.box:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2), 0 0 0 1px #2e63b8; } + +.button { + background-color: white; + border-color: #dbdbdb; + border-width: 1px; + color: #363636; + cursor: pointer; + justify-content: center; + padding-bottom: calc(0.375em - 1px); + padding-left: 0.75em; + padding-right: 0.75em; + padding-top: calc(0.375em - 1px); + text-align: center; + white-space: nowrap; } + .button strong { + color: inherit; } + .button .icon, .button .icon.is-small, .button #documenter .docs-sidebar form.docs-search > input.icon, #documenter .docs-sidebar .button form.docs-search > input.icon, .button .icon.is-medium, .button .icon.is-large { + height: 1.5em; + width: 1.5em; } + .button .icon:first-child:not(:last-child) { + margin-left: calc(-0.375em - 1px); + margin-right: 0.1875em; } + .button .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: calc(-0.375em - 1px); } + .button .icon:first-child:last-child { + margin-left: calc(-0.375em - 1px); + margin-right: calc(-0.375em - 1px); } + .button:hover, .button.is-hovered { + border-color: #b5b5b5; + color: #363636; } + .button:focus, .button.is-focused { + border-color: #3c5dcd; + color: #363636; } + .button:focus:not(:active), .button.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .button:active, .button.is-active { + border-color: #4a4a4a; + color: #363636; } + .button.is-text { + background-color: transparent; + border-color: transparent; + color: #222222; + text-decoration: underline; } + .button.is-text:hover, .button.is-text.is-hovered, .button.is-text:focus, .button.is-text.is-focused { + background-color: whitesmoke; + color: #222222; } + .button.is-text:active, .button.is-text.is-active { + background-color: #e8e8e8; + color: #222222; } + .button.is-text[disabled], fieldset[disabled] .button.is-text { + background-color: transparent; + border-color: transparent; + box-shadow: none; } + .button.is-white { + background-color: white; + 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: white; + border-color: transparent; + box-shadow: none; } + .button.is-white.is-inverted { + background-color: #0a0a0a; + color: white; } + .button.is-white.is-inverted:hover, .button.is-white.is-inverted.is-hovered { + background-color: black; } + .button.is-white.is-inverted[disabled], fieldset[disabled] .button.is-white.is-inverted { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; + color: white; } + .button.is-white.is-loading::after { + border-color: transparent transparent #0a0a0a #0a0a0a !important; } + .button.is-white.is-outlined { + background-color: transparent; + border-color: white; + color: white; } + .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: white; + border-color: white; + color: #0a0a0a; } + .button.is-white.is-outlined.is-loading::after { + border-color: transparent transparent white white !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: white; + box-shadow: none; + color: white; } + .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: white; } + .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 white white !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: white; } + .button.is-black:hover, .button.is-black.is-hovered { + background-color: #040404; + border-color: transparent; + color: white; } + .button.is-black:focus, .button.is-black.is-focused { + border-color: transparent; + color: white; } + .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: black; + border-color: transparent; + color: white; } + .button.is-black[disabled], fieldset[disabled] .button.is-black { + background-color: #0a0a0a; + border-color: transparent; + box-shadow: none; } + .button.is-black.is-inverted { + background-color: white; + 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: white; + border-color: transparent; + box-shadow: none; + color: #0a0a0a; } + .button.is-black.is-loading::after { + border-color: transparent transparent white white !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: white; } + .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 white white !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: white; + color: white; } + .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: white; + 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: white; + box-shadow: none; + color: white; } + .button.is-light { + background-color: whitesmoke; + border-color: transparent; + color: #363636; } + .button.is-light:hover, .button.is-light.is-hovered { + background-color: #eeeeee; + border-color: transparent; + color: #363636; } + .button.is-light:focus, .button.is-light.is-focused { + border-color: transparent; + color: #363636; } + .button.is-light:focus:not(:active), .button.is-light.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(245, 245, 245, 0.25); } + .button.is-light:active, .button.is-light.is-active { + background-color: #e8e8e8; + border-color: transparent; + color: #363636; } + .button.is-light[disabled], fieldset[disabled] .button.is-light { + background-color: whitesmoke; + border-color: transparent; + box-shadow: none; } + .button.is-light.is-inverted { + background-color: #363636; + color: whitesmoke; } + .button.is-light.is-inverted:hover, .button.is-light.is-inverted.is-hovered { + background-color: #292929; } + .button.is-light.is-inverted[disabled], fieldset[disabled] .button.is-light.is-inverted { + background-color: #363636; + border-color: transparent; + box-shadow: none; + color: whitesmoke; } + .button.is-light.is-loading::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-light.is-outlined { + background-color: transparent; + border-color: whitesmoke; + color: whitesmoke; } + .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: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .button.is-light.is-outlined.is-loading::after { + border-color: transparent transparent whitesmoke whitesmoke !important; } + .button.is-light.is-outlined.is-loading:hover::after, .button.is-light.is-outlined.is-loading.is-hovered::after, .button.is-light.is-outlined.is-loading:focus::after, .button.is-light.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #363636 #363636 !important; } + .button.is-light.is-outlined[disabled], fieldset[disabled] .button.is-light.is-outlined { + background-color: transparent; + border-color: whitesmoke; + box-shadow: none; + color: whitesmoke; } + .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #363636; + color: #363636; } + .button.is-light.is-inverted.is-outlined:hover, .button.is-light.is-inverted.is-outlined.is-hovered, .button.is-light.is-inverted.is-outlined:focus, .button.is-light.is-inverted.is-outlined.is-focused { + background-color: #363636; + color: whitesmoke; } + .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 whitesmoke whitesmoke !important; } + .button.is-light.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-light.is-inverted.is-outlined { + background-color: transparent; + border-color: #363636; + box-shadow: none; + color: #363636; } + .button.is-dark, .content kbd.button { + background-color: #363636; + border-color: transparent; + color: whitesmoke; } + .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: whitesmoke; } + .button.is-dark:focus, .content kbd.button:focus, .button.is-dark.is-focused, .content kbd.button.is-focused { + border-color: transparent; + color: whitesmoke; } + .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: whitesmoke; } + .button.is-dark[disabled], .content kbd.button[disabled], fieldset[disabled] .button.is-dark, fieldset[disabled] .content kbd.button, .content fieldset[disabled] kbd.button { + background-color: #363636; + border-color: transparent; + box-shadow: none; } + .button.is-dark.is-inverted, .content kbd.button.is-inverted { + background-color: whitesmoke; + color: #363636; } + .button.is-dark.is-inverted:hover, .content kbd.button.is-inverted:hover, .button.is-dark.is-inverted.is-hovered, .content kbd.button.is-inverted.is-hovered { + background-color: #e8e8e8; } + .button.is-dark.is-inverted[disabled], .content kbd.button.is-inverted[disabled], fieldset[disabled] .button.is-dark.is-inverted, fieldset[disabled] .content kbd.button.is-inverted, .content fieldset[disabled] kbd.button.is-inverted { + background-color: whitesmoke; + border-color: transparent; + box-shadow: none; + color: #363636; } + .button.is-dark.is-loading::after, .content kbd.button.is-loading::after { + border-color: transparent transparent whitesmoke whitesmoke !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: whitesmoke; } + .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 whitesmoke whitesmoke !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: whitesmoke; + color: whitesmoke; } + .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: whitesmoke; + 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: whitesmoke; + box-shadow: none; + color: whitesmoke; } + .button.is-primary, .docstring > section > a.button.docs-sourcelink { + background-color: #4eb5de; + border-color: transparent; + color: #fff; } + .button.is-primary:hover, .docstring > section > a.button.docs-sourcelink:hover, .button.is-primary.is-hovered, .docstring > section > a.button.is-hovered.docs-sourcelink { + background-color: #43b1dc; + border-color: transparent; + color: #fff; } + .button.is-primary:focus, .docstring > section > a.button.docs-sourcelink:focus, .button.is-primary.is-focused, .docstring > section > a.button.is-focused.docs-sourcelink { + border-color: transparent; + color: #fff; } + .button.is-primary:focus:not(:active), .docstring > section > a.button.docs-sourcelink:focus:not(:active), .button.is-primary.is-focused:not(:active), .docstring > section > a.button.is-focused.docs-sourcelink:not(:active) { + box-shadow: 0 0 0 0.125em rgba(78, 181, 222, 0.25); } + .button.is-primary:active, .docstring > section > a.button.docs-sourcelink:active, .button.is-primary.is-active, .docstring > section > a.button.is-active.docs-sourcelink { + background-color: #39acda; + border-color: transparent; + color: #fff; } + .button.is-primary[disabled], .docstring > section > a.button.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary, fieldset[disabled] .docstring > section > a.button.docs-sourcelink { + background-color: #4eb5de; + border-color: transparent; + box-shadow: none; } + .button.is-primary.is-inverted, .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + color: #4eb5de; } + .button.is-primary.is-inverted:hover, .docstring > section > a.button.is-inverted.docs-sourcelink:hover, .button.is-primary.is-inverted.is-hovered, .docstring > section > a.button.is-inverted.is-hovered.docs-sourcelink { + background-color: #f2f2f2; } + .button.is-primary.is-inverted[disabled], .docstring > section > a.button.is-inverted.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-inverted, fieldset[disabled] .docstring > section > a.button.is-inverted.docs-sourcelink { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #4eb5de; } + .button.is-primary.is-loading::after, .docstring > section > a.button.is-loading.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-primary.is-outlined, .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #4eb5de; + color: #4eb5de; } + .button.is-primary.is-outlined:hover, .docstring > section > a.button.is-outlined.docs-sourcelink:hover, .button.is-primary.is-outlined.is-hovered, .docstring > section > a.button.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-outlined:focus, .docstring > section > a.button.is-outlined.docs-sourcelink:focus, .button.is-primary.is-outlined.is-focused, .docstring > section > a.button.is-outlined.is-focused.docs-sourcelink { + background-color: #4eb5de; + border-color: #4eb5de; + color: #fff; } + .button.is-primary.is-outlined.is-loading::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink::after { + border-color: transparent transparent #4eb5de #4eb5de !important; } + .button.is-primary.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-primary.is-outlined[disabled], .docstring > section > a.button.is-outlined.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-outlined, fieldset[disabled] .docstring > section > a.button.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #4eb5de; + box-shadow: none; + color: #4eb5de; } + .button.is-primary.is-inverted.is-outlined, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-primary.is-inverted.is-outlined:hover, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:hover, .button.is-primary.is-inverted.is-outlined.is-hovered, .docstring > section > a.button.is-inverted.is-outlined.is-hovered.docs-sourcelink, .button.is-primary.is-inverted.is-outlined:focus, .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink:focus, .button.is-primary.is-inverted.is-outlined.is-focused, .docstring > section > a.button.is-inverted.is-outlined.is-focused.docs-sourcelink { + background-color: #fff; + color: #4eb5de; } + .button.is-primary.is-inverted.is-outlined.is-loading:hover::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:hover::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-hovered::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-hovered.docs-sourcelink::after, .button.is-primary.is-inverted.is-outlined.is-loading:focus::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.docs-sourcelink:focus::after, .button.is-primary.is-inverted.is-outlined.is-loading.is-focused::after, .docstring > section > a.button.is-inverted.is-outlined.is-loading.is-focused.docs-sourcelink::after { + border-color: transparent transparent #4eb5de #4eb5de !important; } + .button.is-primary.is-inverted.is-outlined[disabled], .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink[disabled], fieldset[disabled] .button.is-primary.is-inverted.is-outlined, fieldset[disabled] .docstring > section > a.button.is-inverted.is-outlined.docs-sourcelink { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-link { + background-color: #2e63b8; + border-color: transparent; + color: #fff; } + .button.is-link:hover, .button.is-link.is-hovered { + background-color: #2b5eae; + border-color: transparent; + color: #fff; } + .button.is-link:focus, .button.is-link.is-focused { + border-color: transparent; + color: #fff; } + .button.is-link:focus:not(:active), .button.is-link.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .button.is-link:active, .button.is-link.is-active { + background-color: #2958a4; + border-color: transparent; + color: #fff; } + .button.is-link[disabled], fieldset[disabled] .button.is-link { + background-color: #2e63b8; + border-color: transparent; + box-shadow: none; } + .button.is-link.is-inverted { + background-color: #fff; + color: #2e63b8; } + .button.is-link.is-inverted:hover, .button.is-link.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-link.is-inverted[disabled], fieldset[disabled] .button.is-link.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #2e63b8; } + .button.is-link.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-link.is-outlined { + background-color: transparent; + border-color: #2e63b8; + color: #2e63b8; } + .button.is-link.is-outlined:hover, .button.is-link.is-outlined.is-hovered, .button.is-link.is-outlined:focus, .button.is-link.is-outlined.is-focused { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + .button.is-link.is-outlined.is-loading::after { + border-color: transparent transparent #2e63b8 #2e63b8 !important; } + .button.is-link.is-outlined.is-loading:hover::after, .button.is-link.is-outlined.is-loading.is-hovered::after, .button.is-link.is-outlined.is-loading:focus::after, .button.is-link.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-link.is-outlined[disabled], fieldset[disabled] .button.is-link.is-outlined { + background-color: transparent; + border-color: #2e63b8; + box-shadow: none; + color: #2e63b8; } + .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-link.is-inverted.is-outlined:hover, .button.is-link.is-inverted.is-outlined.is-hovered, .button.is-link.is-inverted.is-outlined:focus, .button.is-link.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #2e63b8; } + .button.is-link.is-inverted.is-outlined.is-loading:hover::after, .button.is-link.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-link.is-inverted.is-outlined.is-loading:focus::after, .button.is-link.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #2e63b8 #2e63b8 !important; } + .button.is-link.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-link.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-info { + background-color: #209cee; + border-color: transparent; + color: #fff; } + .button.is-info:hover, .button.is-info.is-hovered { + background-color: #1497ed; + border-color: transparent; + color: #fff; } + .button.is-info:focus, .button.is-info.is-focused { + border-color: transparent; + color: #fff; } + .button.is-info:focus:not(:active), .button.is-info.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(32, 156, 238, 0.25); } + .button.is-info:active, .button.is-info.is-active { + background-color: #1190e3; + border-color: transparent; + color: #fff; } + .button.is-info[disabled], fieldset[disabled] .button.is-info { + background-color: #209cee; + border-color: transparent; + box-shadow: none; } + .button.is-info.is-inverted { + background-color: #fff; + color: #209cee; } + .button.is-info.is-inverted:hover, .button.is-info.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-info.is-inverted[disabled], fieldset[disabled] .button.is-info.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #209cee; } + .button.is-info.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-info.is-outlined { + background-color: transparent; + border-color: #209cee; + color: #209cee; } + .button.is-info.is-outlined:hover, .button.is-info.is-outlined.is-hovered, .button.is-info.is-outlined:focus, .button.is-info.is-outlined.is-focused { + background-color: #209cee; + border-color: #209cee; + color: #fff; } + .button.is-info.is-outlined.is-loading::after { + border-color: transparent transparent #209cee #209cee !important; } + .button.is-info.is-outlined.is-loading:hover::after, .button.is-info.is-outlined.is-loading.is-hovered::after, .button.is-info.is-outlined.is-loading:focus::after, .button.is-info.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-info.is-outlined[disabled], fieldset[disabled] .button.is-info.is-outlined { + background-color: transparent; + border-color: #209cee; + box-shadow: none; + color: #209cee; } + .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-info.is-inverted.is-outlined:hover, .button.is-info.is-inverted.is-outlined.is-hovered, .button.is-info.is-inverted.is-outlined:focus, .button.is-info.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #209cee; } + .button.is-info.is-inverted.is-outlined.is-loading:hover::after, .button.is-info.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-info.is-inverted.is-outlined.is-loading:focus::after, .button.is-info.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #209cee #209cee !important; } + .button.is-info.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-info.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-success { + background-color: #22c35b; + border-color: transparent; + color: #fff; } + .button.is-success:hover, .button.is-success.is-hovered { + background-color: #20b856; + border-color: transparent; + color: #fff; } + .button.is-success:focus, .button.is-success.is-focused { + border-color: transparent; + color: #fff; } + .button.is-success:focus:not(:active), .button.is-success.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(34, 195, 91, 0.25); } + .button.is-success:active, .button.is-success.is-active { + background-color: #1ead51; + border-color: transparent; + color: #fff; } + .button.is-success[disabled], fieldset[disabled] .button.is-success { + background-color: #22c35b; + border-color: transparent; + box-shadow: none; } + .button.is-success.is-inverted { + background-color: #fff; + color: #22c35b; } + .button.is-success.is-inverted:hover, .button.is-success.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-success.is-inverted[disabled], fieldset[disabled] .button.is-success.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #22c35b; } + .button.is-success.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-success.is-outlined { + background-color: transparent; + border-color: #22c35b; + color: #22c35b; } + .button.is-success.is-outlined:hover, .button.is-success.is-outlined.is-hovered, .button.is-success.is-outlined:focus, .button.is-success.is-outlined.is-focused { + background-color: #22c35b; + border-color: #22c35b; + color: #fff; } + .button.is-success.is-outlined.is-loading::after { + border-color: transparent transparent #22c35b #22c35b !important; } + .button.is-success.is-outlined.is-loading:hover::after, .button.is-success.is-outlined.is-loading.is-hovered::after, .button.is-success.is-outlined.is-loading:focus::after, .button.is-success.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-success.is-outlined[disabled], fieldset[disabled] .button.is-success.is-outlined { + background-color: transparent; + border-color: #22c35b; + box-shadow: none; + color: #22c35b; } + .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-success.is-inverted.is-outlined:hover, .button.is-success.is-inverted.is-outlined.is-hovered, .button.is-success.is-inverted.is-outlined:focus, .button.is-success.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #22c35b; } + .button.is-success.is-inverted.is-outlined.is-loading:hover::after, .button.is-success.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-success.is-inverted.is-outlined.is-loading:focus::after, .button.is-success.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #22c35b #22c35b !important; } + .button.is-success.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-success.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-warning { + background-color: #ffdd57; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:hover, .button.is-warning.is-hovered { + background-color: #ffda4a; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:focus, .button.is-warning.is-focused { + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning:focus:not(:active), .button.is-warning.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(255, 221, 87, 0.25); } + .button.is-warning:active, .button.is-warning.is-active { + background-color: #ffd83e; + border-color: transparent; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning[disabled], fieldset[disabled] .button.is-warning { + background-color: #ffdd57; + border-color: transparent; + box-shadow: none; } + .button.is-warning.is-inverted { + background-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .button.is-warning.is-inverted:hover, .button.is-warning.is-inverted.is-hovered { + background-color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-inverted[disabled], fieldset[disabled] .button.is-warning.is-inverted { + background-color: rgba(0, 0, 0, 0.7); + border-color: transparent; + box-shadow: none; + color: #ffdd57; } + .button.is-warning.is-loading::after { + border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; } + .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ffdd57; + color: #ffdd57; } + .button.is-warning.is-outlined:hover, .button.is-warning.is-outlined.is-hovered, .button.is-warning.is-outlined:focus, .button.is-warning.is-outlined.is-focused { + background-color: #ffdd57; + border-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-outlined.is-loading::after { + border-color: transparent transparent #ffdd57 #ffdd57 !important; } + .button.is-warning.is-outlined.is-loading:hover::after, .button.is-warning.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-outlined.is-loading:focus::after, .button.is-warning.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent rgba(0, 0, 0, 0.7) rgba(0, 0, 0, 0.7) !important; } + .button.is-warning.is-outlined[disabled], fieldset[disabled] .button.is-warning.is-outlined { + background-color: transparent; + border-color: #ffdd57; + box-shadow: none; + color: #ffdd57; } + .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + color: rgba(0, 0, 0, 0.7); } + .button.is-warning.is-inverted.is-outlined:hover, .button.is-warning.is-inverted.is-outlined.is-hovered, .button.is-warning.is-inverted.is-outlined:focus, .button.is-warning.is-inverted.is-outlined.is-focused { + background-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .button.is-warning.is-inverted.is-outlined.is-loading:hover::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-warning.is-inverted.is-outlined.is-loading:focus::after, .button.is-warning.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #ffdd57 #ffdd57 !important; } + .button.is-warning.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-warning.is-inverted.is-outlined { + background-color: transparent; + border-color: rgba(0, 0, 0, 0.7); + box-shadow: none; + color: rgba(0, 0, 0, 0.7); } + .button.is-danger { + background-color: #da0b00; + border-color: transparent; + color: #fff; } + .button.is-danger:hover, .button.is-danger.is-hovered { + background-color: #cd0a00; + border-color: transparent; + color: #fff; } + .button.is-danger:focus, .button.is-danger.is-focused { + border-color: transparent; + color: #fff; } + .button.is-danger:focus:not(:active), .button.is-danger.is-focused:not(:active) { + box-shadow: 0 0 0 0.125em rgba(218, 11, 0, 0.25); } + .button.is-danger:active, .button.is-danger.is-active { + background-color: #c10a00; + border-color: transparent; + color: #fff; } + .button.is-danger[disabled], fieldset[disabled] .button.is-danger { + background-color: #da0b00; + border-color: transparent; + box-shadow: none; } + .button.is-danger.is-inverted { + background-color: #fff; + color: #da0b00; } + .button.is-danger.is-inverted:hover, .button.is-danger.is-inverted.is-hovered { + background-color: #f2f2f2; } + .button.is-danger.is-inverted[disabled], fieldset[disabled] .button.is-danger.is-inverted { + background-color: #fff; + border-color: transparent; + box-shadow: none; + color: #da0b00; } + .button.is-danger.is-loading::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-danger.is-outlined { + background-color: transparent; + border-color: #da0b00; + color: #da0b00; } + .button.is-danger.is-outlined:hover, .button.is-danger.is-outlined.is-hovered, .button.is-danger.is-outlined:focus, .button.is-danger.is-outlined.is-focused { + background-color: #da0b00; + border-color: #da0b00; + color: #fff; } + .button.is-danger.is-outlined.is-loading::after { + border-color: transparent transparent #da0b00 #da0b00 !important; } + .button.is-danger.is-outlined.is-loading:hover::after, .button.is-danger.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-outlined.is-loading:focus::after, .button.is-danger.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #fff #fff !important; } + .button.is-danger.is-outlined[disabled], fieldset[disabled] .button.is-danger.is-outlined { + background-color: transparent; + border-color: #da0b00; + box-shadow: none; + color: #da0b00; } + .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + color: #fff; } + .button.is-danger.is-inverted.is-outlined:hover, .button.is-danger.is-inverted.is-outlined.is-hovered, .button.is-danger.is-inverted.is-outlined:focus, .button.is-danger.is-inverted.is-outlined.is-focused { + background-color: #fff; + color: #da0b00; } + .button.is-danger.is-inverted.is-outlined.is-loading:hover::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-hovered::after, .button.is-danger.is-inverted.is-outlined.is-loading:focus::after, .button.is-danger.is-inverted.is-outlined.is-loading.is-focused::after { + border-color: transparent transparent #da0b00 #da0b00 !important; } + .button.is-danger.is-inverted.is-outlined[disabled], fieldset[disabled] .button.is-danger.is-inverted.is-outlined { + background-color: transparent; + border-color: #fff; + box-shadow: none; + color: #fff; } + .button.is-small, #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 2px; + font-size: 0.75rem; } + .button.is-normal { + font-size: 1rem; } + .button.is-medium { + font-size: 1.25rem; } + .button.is-large { + font-size: 1.5rem; } + .button[disabled], fieldset[disabled] .button { + background-color: white; + border-color: #dbdbdb; + box-shadow: none; + opacity: 0.5; } + .button.is-fullwidth { + display: flex; + width: 100%; } + .button.is-loading { + color: transparent !important; + pointer-events: none; } + .button.is-loading::after { + position: absolute; + left: calc(50% - (1em / 2)); + top: calc(50% - (1em / 2)); + position: absolute !important; } + .button.is-static { + background-color: whitesmoke; + border-color: #dbdbdb; + color: #6b6b6b; + box-shadow: none; + pointer-events: none; } + .button.is-rounded, #documenter .docs-sidebar form.docs-search > input.button { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + +.buttons { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .buttons .button { + margin-bottom: 0.5rem; } + .buttons .button:not(:last-child):not(.is-fullwidth) { + margin-right: 0.5rem; } + .buttons:last-child { + margin-bottom: -0.5rem; } + .buttons:not(:last-child) { + margin-bottom: 1rem; } + .buttons.are-small .button:not(.is-normal):not(.is-medium):not(.is-large) { + border-radius: 2px; + font-size: 0.75rem; } + .buttons.are-medium .button:not(.is-small):not(.is-normal):not(.is-large) { + font-size: 1.25rem; } + .buttons.are-large .button:not(.is-small):not(.is-normal):not(.is-medium) { + font-size: 1.5rem; } + .buttons.has-addons .button:not(:first-child) { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .buttons.has-addons .button:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; + margin-right: -1px; } + .buttons.has-addons .button:last-child { + margin-right: 0; } + .buttons.has-addons .button:hover, .buttons.has-addons .button.is-hovered { + z-index: 2; } + .buttons.has-addons .button:focus, .buttons.has-addons .button.is-focused, .buttons.has-addons .button:active, .buttons.has-addons .button.is-active, .buttons.has-addons .button.is-selected { + z-index: 3; } + .buttons.has-addons .button:focus:hover, .buttons.has-addons .button.is-focused:hover, .buttons.has-addons .button:active:hover, .buttons.has-addons .button.is-active:hover, .buttons.has-addons .button.is-selected:hover { + z-index: 4; } + .buttons.has-addons .button.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .buttons.is-centered { + justify-content: center; } + .buttons.is-centered:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + .buttons.is-right { + justify-content: flex-end; } + .buttons.is-right:not(.has-addons) .button:not(.is-fullwidth) { + margin-left: 0.25rem; + margin-right: 0.25rem; } + +.container { + flex-grow: 1; + margin: 0 auto; + position: relative; + width: auto; } + @media screen and (min-width: 1056px) { + .container { + max-width: 992px; } + .container.is-fluid { + margin-left: 32px; + margin-right: 32px; + max-width: none; } } + @media screen and (max-width: 1215px) { + .container.is-widescreen { + max-width: 1152px; } } + @media screen and (max-width: 1407px) { + .container.is-fullhd { + max-width: 1344px; } } + @media screen and (min-width: 1216px) { + .container { + max-width: 1152px; } } + @media screen and (min-width: 1408px) { + .container { + max-width: 1344px; } } +.content li + li { + margin-top: 0.25em; } + +.content p:not(:last-child), +.content dl:not(:last-child), +.content ol:not(:last-child), +.content ul:not(:last-child), +.content blockquote:not(:last-child), +.content pre:not(:last-child), +.content table:not(:last-child) { + margin-bottom: 1em; } + +.content h1, +.content h2, +.content h3, +.content h4, +.content h5, +.content h6 { + color: #222222; + 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: whitesmoke; + 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: #222222; } + .content table th:not([align]) { + text-align: left; } + .content table thead td, + .content table thead th { + border-width: 0 0 2px; + color: #222222; } + .content table tfoot td, + .content table tfoot th { + border-width: 2px 0 0; + color: #222222; } + .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: 0.75rem; } + +.content.is-medium { + font-size: 1.25rem; } + +.content.is-large { + font-size: 1.5rem; } + +.icon { + align-items: center; + display: inline-flex; + justify-content: center; + height: 1.5rem; + width: 1.5rem; } + .icon.is-small, #documenter .docs-sidebar form.docs-search > input.icon { + height: 1rem; + width: 1rem; } + .icon.is-medium { + height: 2rem; + width: 2rem; } + .icon.is-large { + height: 3rem; + width: 3rem; } + +.image, #documenter .docs-sidebar .docs-logo > img { + display: block; + position: relative; } + .image img, #documenter .docs-sidebar .docs-logo > img img { + display: block; + height: auto; + width: 100%; } + .image img.is-rounded, #documenter .docs-sidebar .docs-logo > img img.is-rounded { + border-radius: 290486px; } + .image.is-square img, #documenter .docs-sidebar .docs-logo > img.is-square img, + .image.is-square .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-square .has-ratio, .image.is-1by1 img, #documenter .docs-sidebar .docs-logo > img.is-1by1 img, + .image.is-1by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by1 .has-ratio, .image.is-5by4 img, #documenter .docs-sidebar .docs-logo > img.is-5by4 img, + .image.is-5by4 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-5by4 .has-ratio, .image.is-4by3 img, #documenter .docs-sidebar .docs-logo > img.is-4by3 img, + .image.is-4by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-4by3 .has-ratio, .image.is-3by2 img, #documenter .docs-sidebar .docs-logo > img.is-3by2 img, + .image.is-3by2 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by2 .has-ratio, .image.is-5by3 img, #documenter .docs-sidebar .docs-logo > img.is-5by3 img, + .image.is-5by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-5by3 .has-ratio, .image.is-16by9 img, #documenter .docs-sidebar .docs-logo > img.is-16by9 img, + .image.is-16by9 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-16by9 .has-ratio, .image.is-2by1 img, #documenter .docs-sidebar .docs-logo > img.is-2by1 img, + .image.is-2by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-2by1 .has-ratio, .image.is-3by1 img, #documenter .docs-sidebar .docs-logo > img.is-3by1 img, + .image.is-3by1 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by1 .has-ratio, .image.is-4by5 img, #documenter .docs-sidebar .docs-logo > img.is-4by5 img, + .image.is-4by5 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-4by5 .has-ratio, .image.is-3by4 img, #documenter .docs-sidebar .docs-logo > img.is-3by4 img, + .image.is-3by4 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by4 .has-ratio, .image.is-2by3 img, #documenter .docs-sidebar .docs-logo > img.is-2by3 img, + .image.is-2by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-2by3 .has-ratio, .image.is-3by5 img, #documenter .docs-sidebar .docs-logo > img.is-3by5 img, + .image.is-3by5 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-3by5 .has-ratio, .image.is-9by16 img, #documenter .docs-sidebar .docs-logo > img.is-9by16 img, + .image.is-9by16 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-9by16 .has-ratio, .image.is-1by2 img, #documenter .docs-sidebar .docs-logo > img.is-1by2 img, + .image.is-1by2 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by2 .has-ratio, .image.is-1by3 img, #documenter .docs-sidebar .docs-logo > img.is-1by3 img, + .image.is-1by3 .has-ratio, + #documenter .docs-sidebar .docs-logo > img.is-1by3 .has-ratio { + height: 100%; + width: 100%; } + .image.is-square, #documenter .docs-sidebar .docs-logo > img.is-square, .image.is-1by1, #documenter .docs-sidebar .docs-logo > img.is-1by1 { + padding-top: 100%; } + .image.is-5by4, #documenter .docs-sidebar .docs-logo > img.is-5by4 { + padding-top: 80%; } + .image.is-4by3, #documenter .docs-sidebar .docs-logo > img.is-4by3 { + padding-top: 75%; } + .image.is-3by2, #documenter .docs-sidebar .docs-logo > img.is-3by2 { + padding-top: 66.6666%; } + .image.is-5by3, #documenter .docs-sidebar .docs-logo > img.is-5by3 { + padding-top: 60%; } + .image.is-16by9, #documenter .docs-sidebar .docs-logo > img.is-16by9 { + padding-top: 56.25%; } + .image.is-2by1, #documenter .docs-sidebar .docs-logo > img.is-2by1 { + padding-top: 50%; } + .image.is-3by1, #documenter .docs-sidebar .docs-logo > img.is-3by1 { + padding-top: 33.3333%; } + .image.is-4by5, #documenter .docs-sidebar .docs-logo > img.is-4by5 { + padding-top: 125%; } + .image.is-3by4, #documenter .docs-sidebar .docs-logo > img.is-3by4 { + padding-top: 133.3333%; } + .image.is-2by3, #documenter .docs-sidebar .docs-logo > img.is-2by3 { + padding-top: 150%; } + .image.is-3by5, #documenter .docs-sidebar .docs-logo > img.is-3by5 { + padding-top: 166.6666%; } + .image.is-9by16, #documenter .docs-sidebar .docs-logo > img.is-9by16 { + padding-top: 177.7777%; } + .image.is-1by2, #documenter .docs-sidebar .docs-logo > img.is-1by2 { + padding-top: 200%; } + .image.is-1by3, #documenter .docs-sidebar .docs-logo > img.is-1by3 { + padding-top: 300%; } + .image.is-16x16, #documenter .docs-sidebar .docs-logo > img.is-16x16 { + height: 16px; + width: 16px; } + .image.is-24x24, #documenter .docs-sidebar .docs-logo > img.is-24x24 { + height: 24px; + width: 24px; } + .image.is-32x32, #documenter .docs-sidebar .docs-logo > img.is-32x32 { + height: 32px; + width: 32px; } + .image.is-48x48, #documenter .docs-sidebar .docs-logo > img.is-48x48 { + height: 48px; + width: 48px; } + .image.is-64x64, #documenter .docs-sidebar .docs-logo > img.is-64x64 { + height: 64px; + width: 64px; } + .image.is-96x96, #documenter .docs-sidebar .docs-logo > img.is-96x96 { + height: 96px; + width: 96px; } + .image.is-128x128, #documenter .docs-sidebar .docs-logo > img.is-128x128 { + height: 128px; + width: 128px; } + +.notification { + background-color: whitesmoke; + border-radius: 4px; + padding: 1.25rem 2.5rem 1.25rem 1.5rem; + position: relative; } + .notification a:not(.button):not(.dropdown-item) { + color: currentColor; + text-decoration: underline; } + .notification strong { + color: currentColor; } + .notification code, + .notification pre { + background: white; } + .notification pre code { + background: transparent; } + .notification > .delete { + position: absolute; + right: 0.5rem; + top: 0.5rem; } + .notification .title, + .notification .subtitle, + .notification .content { + color: currentColor; } + .notification.is-white { + background-color: white; + color: #0a0a0a; } + .notification.is-black { + background-color: #0a0a0a; + color: white; } + .notification.is-light { + background-color: whitesmoke; + color: #363636; } + .notification.is-dark, .content kbd.notification { + background-color: #363636; + color: whitesmoke; } + .notification.is-primary, .docstring > section > a.notification.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .notification.is-link { + background-color: #2e63b8; + color: #fff; } + .notification.is-info { + background-color: #209cee; + color: #fff; } + .notification.is-success { + background-color: #22c35b; + color: #fff; } + .notification.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .notification.is-danger { + background-color: #da0b00; + color: #fff; } + +.progress { + -moz-appearance: none; + -webkit-appearance: none; + border: none; + border-radius: 290486px; + display: block; + height: 1rem; + overflow: hidden; + padding: 0; + width: 100%; } + .progress::-webkit-progress-bar { + background-color: #dbdbdb; } + .progress::-webkit-progress-value { + background-color: #222222; } + .progress::-moz-progress-bar { + background-color: #222222; } + .progress::-ms-fill { + background-color: #222222; + border: none; } + .progress.is-white::-webkit-progress-value { + background-color: white; } + .progress.is-white::-moz-progress-bar { + background-color: white; } + .progress.is-white::-ms-fill { + background-color: white; } + .progress.is-white:indeterminate { + background-image: linear-gradient(to right, white 30%, #dbdbdb 30%); } + .progress.is-black::-webkit-progress-value { + background-color: #0a0a0a; } + .progress.is-black::-moz-progress-bar { + background-color: #0a0a0a; } + .progress.is-black::-ms-fill { + background-color: #0a0a0a; } + .progress.is-black:indeterminate { + background-image: linear-gradient(to right, #0a0a0a 30%, #dbdbdb 30%); } + .progress.is-light::-webkit-progress-value { + background-color: whitesmoke; } + .progress.is-light::-moz-progress-bar { + background-color: whitesmoke; } + .progress.is-light::-ms-fill { + background-color: whitesmoke; } + .progress.is-light:indeterminate { + background-image: linear-gradient(to right, whitesmoke 30%, #dbdbdb 30%); } + .progress.is-dark::-webkit-progress-value, .content kbd.progress::-webkit-progress-value { + background-color: #363636; } + .progress.is-dark::-moz-progress-bar, .content kbd.progress::-moz-progress-bar { + background-color: #363636; } + .progress.is-dark::-ms-fill, .content kbd.progress::-ms-fill { + background-color: #363636; } + .progress.is-dark:indeterminate, .content kbd.progress:indeterminate { + background-image: linear-gradient(to right, #363636 30%, #dbdbdb 30%); } + .progress.is-primary::-webkit-progress-value, .docstring > section > a.progress.docs-sourcelink::-webkit-progress-value { + background-color: #4eb5de; } + .progress.is-primary::-moz-progress-bar, .docstring > section > a.progress.docs-sourcelink::-moz-progress-bar { + background-color: #4eb5de; } + .progress.is-primary::-ms-fill, .docstring > section > a.progress.docs-sourcelink::-ms-fill { + background-color: #4eb5de; } + .progress.is-primary:indeterminate, .docstring > section > a.progress.docs-sourcelink:indeterminate { + background-image: linear-gradient(to right, #4eb5de 30%, #dbdbdb 30%); } + .progress.is-link::-webkit-progress-value { + background-color: #2e63b8; } + .progress.is-link::-moz-progress-bar { + background-color: #2e63b8; } + .progress.is-link::-ms-fill { + background-color: #2e63b8; } + .progress.is-link:indeterminate { + background-image: linear-gradient(to right, #2e63b8 30%, #dbdbdb 30%); } + .progress.is-info::-webkit-progress-value { + background-color: #209cee; } + .progress.is-info::-moz-progress-bar { + background-color: #209cee; } + .progress.is-info::-ms-fill { + background-color: #209cee; } + .progress.is-info:indeterminate { + background-image: linear-gradient(to right, #209cee 30%, #dbdbdb 30%); } + .progress.is-success::-webkit-progress-value { + background-color: #22c35b; } + .progress.is-success::-moz-progress-bar { + background-color: #22c35b; } + .progress.is-success::-ms-fill { + background-color: #22c35b; } + .progress.is-success:indeterminate { + background-image: linear-gradient(to right, #22c35b 30%, #dbdbdb 30%); } + .progress.is-warning::-webkit-progress-value { + background-color: #ffdd57; } + .progress.is-warning::-moz-progress-bar { + background-color: #ffdd57; } + .progress.is-warning::-ms-fill { + background-color: #ffdd57; } + .progress.is-warning:indeterminate { + background-image: linear-gradient(to right, #ffdd57 30%, #dbdbdb 30%); } + .progress.is-danger::-webkit-progress-value { + background-color: #da0b00; } + .progress.is-danger::-moz-progress-bar { + background-color: #da0b00; } + .progress.is-danger::-ms-fill { + background-color: #da0b00; } + .progress.is-danger:indeterminate { + background-image: linear-gradient(to right, #da0b00 30%, #dbdbdb 30%); } + .progress:indeterminate { + animation-duration: 1.5s; + animation-iteration-count: infinite; + animation-name: moveIndeterminate; + animation-timing-function: linear; + background-color: #dbdbdb; + background-image: linear-gradient(to right, #222222 30%, #dbdbdb 30%); + background-position: top left; + background-repeat: no-repeat; + background-size: 150% 150%; } + .progress:indeterminate::-webkit-progress-bar { + background-color: transparent; } + .progress:indeterminate::-moz-progress-bar { + background-color: transparent; } + .progress.is-small, #documenter .docs-sidebar form.docs-search > input.progress { + height: 0.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: white; + color: #363636; } + .table td, + .table th { + border: 1px solid #dbdbdb; + border-width: 0 0 1px; + padding: 0.5em 0.75em; + vertical-align: top; } + .table td.is-white, + .table th.is-white { + background-color: white; + border-color: white; + color: #0a0a0a; } + .table td.is-black, + .table th.is-black { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .table td.is-light, + .table th.is-light { + background-color: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .table td.is-dark, + .table th.is-dark { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .table td.is-primary, + .table th.is-primary { + background-color: #4eb5de; + border-color: #4eb5de; + color: #fff; } + .table td.is-link, + .table th.is-link { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + .table td.is-info, + .table th.is-info { + background-color: #209cee; + border-color: #209cee; + color: #fff; } + .table td.is-success, + .table th.is-success { + background-color: #22c35b; + border-color: #22c35b; + color: #fff; } + .table td.is-warning, + .table th.is-warning { + background-color: #ffdd57; + border-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .table td.is-danger, + .table th.is-danger { + background-color: #da0b00; + border-color: #da0b00; + color: #fff; } + .table td.is-narrow, + .table th.is-narrow { + white-space: nowrap; + width: 1%; } + .table td.is-selected, + .table th.is-selected { + background-color: #4eb5de; + color: #fff; } + .table td.is-selected a, + .table td.is-selected strong, + .table th.is-selected a, + .table th.is-selected strong { + color: currentColor; } + .table th { + color: #222222; } + .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: transparent; } + .table thead td, + .table thead th { + border-width: 0 0 2px; + color: #222222; } + .table tfoot { + background-color: transparent; } + .table tfoot td, + .table tfoot th { + border-width: 2px 0 0; + color: #222222; } + .table tbody { + background-color: transparent; } + .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: whitesmoke; } + .table.is-narrow td, + .table.is-narrow th { + padding: 0.25em 0.5em; } + .table.is-striped tbody tr:not(.is-selected):nth-child(even) { + background-color: #fafafa; } + +.table-container { + -webkit-overflow-scrolling: touch; + overflow: auto; + overflow-y: hidden; + max-width: 100%; } + +.tags { + align-items: center; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .tags .tag, .tags .content kbd, .content .tags kbd, .tags .docstring > section > a.docs-sourcelink { + margin-bottom: 0.5rem; } + .tags .tag:not(:last-child), .tags .content kbd:not(:last-child), .content .tags kbd:not(:last-child), .tags .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0.5rem; } + .tags:last-child { + margin-bottom: -0.5rem; } + .tags:not(:last-child) { + margin-bottom: 1rem; } + .tags.are-medium .tag:not(.is-normal):not(.is-large), .tags.are-medium .content kbd:not(.is-normal):not(.is-large), .content .tags.are-medium kbd:not(.is-normal):not(.is-large), .tags.are-medium .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-large) { + font-size: 1rem; } + .tags.are-large .tag:not(.is-normal):not(.is-medium), .tags.are-large .content kbd:not(.is-normal):not(.is-medium), .content .tags.are-large kbd:not(.is-normal):not(.is-medium), .tags.are-large .docstring > section > a.docs-sourcelink:not(.is-normal):not(.is-medium) { + font-size: 1.25rem; } + .tags.is-centered { + justify-content: center; } + .tags.is-centered .tag, .tags.is-centered .content kbd, .content .tags.is-centered kbd, .tags.is-centered .docstring > section > a.docs-sourcelink { + margin-right: 0.25rem; + margin-left: 0.25rem; } + .tags.is-right { + justify-content: flex-end; } + .tags.is-right .tag:not(:first-child), .tags.is-right .content kbd:not(:first-child), .content .tags.is-right kbd:not(:first-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0.5rem; } + .tags.is-right .tag:not(:last-child), .tags.is-right .content kbd:not(:last-child), .content .tags.is-right kbd:not(:last-child), .tags.is-right .docstring > section > a.docs-sourcelink:not(:last-child) { + margin-right: 0; } + .tags.has-addons .tag, .tags.has-addons .content kbd, .content .tags.has-addons kbd, .tags.has-addons .docstring > section > a.docs-sourcelink { + margin-right: 0; } + .tags.has-addons .tag:not(:first-child), .tags.has-addons .content kbd:not(:first-child), .content .tags.has-addons kbd:not(:first-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:first-child) { + margin-left: 0; + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .tags.has-addons .tag:not(:last-child), .tags.has-addons .content kbd:not(:last-child), .content .tags.has-addons kbd:not(:last-child), .tags.has-addons .docstring > section > a.docs-sourcelink:not(:last-child) { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + +.tag:not(body), .content kbd:not(body), .docstring > section > a.docs-sourcelink:not(body) { + align-items: center; + background-color: whitesmoke; + border-radius: 4px; + color: #222222; + display: inline-flex; + font-size: 0.75rem; + height: 2em; + justify-content: center; + line-height: 1.5; + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + .tag:not(body) .delete, .content kbd:not(body) .delete, .docstring > section > a.docs-sourcelink:not(body) .delete { + margin-left: 0.25rem; + margin-right: -0.375rem; } + .tag.is-white:not(body), .content kbd.is-white:not(body), .docstring > section > a.docs-sourcelink.is-white:not(body) { + background-color: white; + 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: white; } + .tag.is-light:not(body), .content kbd.is-light:not(body), .docstring > section > a.docs-sourcelink.is-light:not(body) { + background-color: whitesmoke; + color: #363636; } + .tag.is-dark:not(body), .content kbd:not(body), .docstring > section > a.docs-sourcelink.is-dark:not(body), .content .docstring > section > kbd:not(body) { + background-color: #363636; + color: whitesmoke; } + .tag.is-primary:not(body), .content kbd.is-primary:not(body), .docstring > section > a.docs-sourcelink:not(body) { + background-color: #4eb5de; + color: #fff; } + .tag.is-link:not(body), .content kbd.is-link:not(body), .docstring > section > a.docs-sourcelink.is-link:not(body) { + background-color: #2e63b8; + color: #fff; } + .tag.is-info:not(body), .content kbd.is-info:not(body), .docstring > section > a.docs-sourcelink.is-info:not(body) { + background-color: #209cee; + color: #fff; } + .tag.is-success:not(body), .content kbd.is-success:not(body), .docstring > section > a.docs-sourcelink.is-success:not(body) { + background-color: #22c35b; + color: #fff; } + .tag.is-warning:not(body), .content kbd.is-warning:not(body), .docstring > section > a.docs-sourcelink.is-warning:not(body) { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .tag.is-danger:not(body), .content kbd.is-danger:not(body), .docstring > section > a.docs-sourcelink.is-danger:not(body) { + background-color: #da0b00; + color: #fff; } + .tag.is-normal:not(body), .content kbd.is-normal:not(body), .docstring > section > a.docs-sourcelink.is-normal:not(body) { + font-size: 0.75rem; } + .tag.is-medium:not(body), .content kbd.is-medium:not(body), .docstring > section > a.docs-sourcelink.is-medium:not(body) { + font-size: 1rem; } + .tag.is-large:not(body), .content kbd.is-large:not(body), .docstring > section > a.docs-sourcelink.is-large:not(body) { + font-size: 1.25rem; } + .tag:not(body) .icon:first-child:not(:last-child), .content kbd:not(body) .icon:first-child:not(:last-child), .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:not(:last-child) { + margin-left: -0.375em; + margin-right: 0.1875em; } + .tag:not(body) .icon:last-child:not(:first-child), .content kbd:not(body) .icon:last-child:not(:first-child), .docstring > section > a.docs-sourcelink:not(body) .icon:last-child:not(:first-child) { + margin-left: 0.1875em; + margin-right: -0.375em; } + .tag:not(body) .icon:first-child:last-child, .content kbd:not(body) .icon:first-child:last-child, .docstring > section > a.docs-sourcelink:not(body) .icon:first-child:last-child { + margin-left: -0.375em; + margin-right: -0.375em; } + .tag.is-delete:not(body), .content kbd.is-delete:not(body), .docstring > section > a.docs-sourcelink.is-delete:not(body) { + margin-left: 1px; + padding: 0; + position: relative; + width: 2em; } + .tag.is-delete:not(body)::before, .content kbd.is-delete:not(body)::before, .docstring > section > a.docs-sourcelink.is-delete:not(body)::before, .tag.is-delete:not(body)::after, .content kbd.is-delete:not(body)::after, .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + background-color: currentColor; + content: ""; + display: block; + left: 50%; + position: absolute; + top: 50%; + transform: translateX(-50%) translateY(-50%) rotate(45deg); + transform-origin: center center; } + .tag.is-delete:not(body)::before, .content kbd.is-delete:not(body)::before, .docstring > section > a.docs-sourcelink.is-delete:not(body)::before { + height: 1px; + width: 50%; } + .tag.is-delete:not(body)::after, .content kbd.is-delete:not(body)::after, .docstring > section > a.docs-sourcelink.is-delete:not(body)::after { + height: 50%; + width: 1px; } + .tag.is-delete:not(body):hover, .content kbd.is-delete:not(body):hover, .docstring > section > a.docs-sourcelink.is-delete:not(body):hover, .tag.is-delete:not(body):focus, .content kbd.is-delete:not(body):focus, .docstring > section > a.docs-sourcelink.is-delete:not(body):focus { + background-color: #e8e8e8; } + .tag.is-delete:not(body):active, .content kbd.is-delete:not(body):active, .docstring > section > a.docs-sourcelink.is-delete:not(body):active { + background-color: #dbdbdb; } + .tag.is-rounded:not(body), #documenter .docs-sidebar form.docs-search > input:not(body), .content kbd.is-rounded:not(body), #documenter .docs-sidebar .content form.docs-search > input:not(body), .docstring > section > a.docs-sourcelink.is-rounded:not(body) { + border-radius: 290486px; } + +a.tag:hover, .docstring > section > a.docs-sourcelink:hover { + text-decoration: underline; } + +.title, +.subtitle { + word-break: break-word; } + .title em, + .title span, + .subtitle em, + .subtitle span { + font-weight: inherit; } + .title sub, + .subtitle sub { + font-size: 0.75em; } + .title sup, + .subtitle sup { + font-size: 0.75em; } + .title .tag, .title .content kbd, .content .title kbd, .title .docstring > section > a.docs-sourcelink, + .subtitle .tag, + .subtitle .content kbd, + .content .subtitle kbd, + .subtitle .docstring > section > a.docs-sourcelink { + vertical-align: middle; } + +.title { + color: #363636; + font-size: 2rem; + font-weight: 600; + line-height: 1.125; } + .title strong { + color: inherit; + font-weight: inherit; } + .title + .highlight { + margin-top: -0.75rem; } + .title:not(.is-spaced) + .subtitle { + margin-top: -1.25rem; } + .title.is-1 { + font-size: 3rem; } + .title.is-2 { + font-size: 2.5rem; } + .title.is-3 { + font-size: 2rem; } + .title.is-4 { + font-size: 1.5rem; } + .title.is-5 { + font-size: 1.25rem; } + .title.is-6 { + font-size: 1rem; } + .title.is-7 { + font-size: 0.75rem; } + +.subtitle { + color: #4a4a4a; + font-size: 1.25rem; + font-weight: 400; + line-height: 1.25; } + .subtitle strong { + color: #363636; + font-weight: 600; } + .subtitle:not(.is-spaced) + .title { + margin-top: -1.25rem; } + .subtitle.is-1 { + font-size: 3rem; } + .subtitle.is-2 { + font-size: 2.5rem; } + .subtitle.is-3 { + font-size: 2rem; } + .subtitle.is-4 { + font-size: 1.5rem; } + .subtitle.is-5 { + font-size: 1.25rem; } + .subtitle.is-6 { + font-size: 1rem; } + .subtitle.is-7 { + font-size: 0.75rem; } + +.heading { + display: block; + font-size: 11px; + letter-spacing: 1px; + margin-bottom: 5px; + text-transform: uppercase; } + +.highlight { + font-weight: 400; + max-width: 100%; + overflow: hidden; + padding: 0; } + .highlight pre { + overflow: auto; + max-width: 100%; } + +.number { + align-items: center; + background-color: whitesmoke; + border-radius: 290486px; + display: inline-flex; + font-size: 1.25rem; + height: 2em; + justify-content: center; + margin-right: 1.5rem; + min-width: 2.5em; + padding: 0.25rem 0.5rem; + text-align: center; + vertical-align: top; } + +.select select, .textarea, .input, #documenter .docs-sidebar form.docs-search > input { + background-color: white; + border-color: #dbdbdb; + border-radius: 4px; + color: #363636; } + .select select::-moz-placeholder, .textarea::-moz-placeholder, .input::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input::-moz-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select::-webkit-input-placeholder, .textarea::-webkit-input-placeholder, .input::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select:-moz-placeholder, .textarea:-moz-placeholder, .input:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input:-moz-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select:-ms-input-placeholder, .textarea:-ms-input-placeholder, .input:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder { + color: rgba(54, 54, 54, 0.3); } + .select select:hover, .textarea:hover, .input:hover, #documenter .docs-sidebar form.docs-search > input:hover, .select select.is-hovered, .is-hovered.textarea, .is-hovered.input, #documenter .docs-sidebar form.docs-search > input.is-hovered { + border-color: #b5b5b5; } + .select select:focus, .textarea:focus, .input:focus, #documenter .docs-sidebar form.docs-search > input:focus, .select select.is-focused, .is-focused.textarea, .is-focused.input, #documenter .docs-sidebar form.docs-search > input.is-focused, .select select:active, .textarea:active, .input:active, #documenter .docs-sidebar form.docs-search > input:active, .select select.is-active, .is-active.textarea, .is-active.input, #documenter .docs-sidebar form.docs-search > input.is-active { + border-color: #2e63b8; + box-shadow: 0 0 0 0.125em rgba(46, 99, 184, 0.25); } + .select select[disabled], .textarea[disabled], .input[disabled], #documenter .docs-sidebar form.docs-search > input[disabled], fieldset[disabled] .select select, .select fieldset[disabled] select, fieldset[disabled] .textarea, fieldset[disabled] .input, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input { + background-color: whitesmoke; + border-color: whitesmoke; + box-shadow: none; + color: #6b6b6b; } + .select select[disabled]::-moz-placeholder, .textarea[disabled]::-moz-placeholder, .input[disabled]::-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-moz-placeholder, fieldset[disabled] .select select::-moz-placeholder, .select fieldset[disabled] select::-moz-placeholder, fieldset[disabled] .textarea::-moz-placeholder, fieldset[disabled] .input::-moz-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-moz-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-moz-placeholder { + color: rgba(107, 107, 107, 0.3); } + .select select[disabled]::-webkit-input-placeholder, .textarea[disabled]::-webkit-input-placeholder, .input[disabled]::-webkit-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]::-webkit-input-placeholder, fieldset[disabled] .select select::-webkit-input-placeholder, .select fieldset[disabled] select::-webkit-input-placeholder, fieldset[disabled] .textarea::-webkit-input-placeholder, fieldset[disabled] .input::-webkit-input-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input::-webkit-input-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input::-webkit-input-placeholder { + color: rgba(107, 107, 107, 0.3); } + .select select[disabled]:-moz-placeholder, .textarea[disabled]:-moz-placeholder, .input[disabled]:-moz-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-moz-placeholder, fieldset[disabled] .select select:-moz-placeholder, .select fieldset[disabled] select:-moz-placeholder, fieldset[disabled] .textarea:-moz-placeholder, fieldset[disabled] .input:-moz-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-moz-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-moz-placeholder { + color: rgba(107, 107, 107, 0.3); } + .select select[disabled]:-ms-input-placeholder, .textarea[disabled]:-ms-input-placeholder, .input[disabled]:-ms-input-placeholder, #documenter .docs-sidebar form.docs-search > input[disabled]:-ms-input-placeholder, fieldset[disabled] .select select:-ms-input-placeholder, .select fieldset[disabled] select:-ms-input-placeholder, fieldset[disabled] .textarea:-ms-input-placeholder, fieldset[disabled] .input:-ms-input-placeholder, fieldset[disabled] #documenter .docs-sidebar form.docs-search > input:-ms-input-placeholder, #documenter .docs-sidebar fieldset[disabled] form.docs-search > input:-ms-input-placeholder { + color: rgba(107, 107, 107, 0.3); } + +.textarea, .input, #documenter .docs-sidebar form.docs-search > input { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.1); + max-width: 100%; + width: 100%; } + .textarea[readonly], .input[readonly], #documenter .docs-sidebar form.docs-search > input[readonly] { + box-shadow: none; } + .is-white.textarea, .is-white.input, #documenter .docs-sidebar form.docs-search > input.is-white { + border-color: white; } + .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: whitesmoke; } + .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: 0.75rem; } + .is-medium.textarea, .is-medium.input, #documenter .docs-sidebar form.docs-search > input.is-medium { + font-size: 1.25rem; } + .is-large.textarea, .is-large.input, #documenter .docs-sidebar form.docs-search > input.is-large { + font-size: 1.5rem; } + .is-fullwidth.textarea, .is-fullwidth.input, #documenter .docs-sidebar form.docs-search > input.is-fullwidth { + display: block; + width: 100%; } + .is-inline.textarea, .is-inline.input, #documenter .docs-sidebar form.docs-search > input.is-inline { + display: inline; + width: auto; } + +.input.is-rounded, #documenter .docs-sidebar form.docs-search > input { + border-radius: 290486px; + padding-left: 1em; + padding-right: 1em; } + +.input.is-static, #documenter .docs-sidebar form.docs-search > input.is-static { + background-color: transparent; + border-color: transparent; + box-shadow: none; + padding-left: 0; + padding-right: 0; } + +.textarea { + display: block; + max-width: 100%; + min-width: 100%; + padding: 0.625em; + resize: vertical; } + .textarea:not([rows]) { + max-height: 600px; + min-height: 120px; } + .textarea[rows] { + height: initial; } + .textarea.has-fixed-size { + resize: none; } + +.radio, .checkbox { + cursor: pointer; + display: inline-block; + line-height: 1.25; + position: relative; } + .radio input, .checkbox input { + cursor: pointer; } + .radio:hover, .checkbox:hover { + color: #363636; } + .radio[disabled], .checkbox[disabled], fieldset[disabled] .radio, fieldset[disabled] .checkbox { + color: #6b6b6b; + cursor: not-allowed; } + +.radio + .radio { + margin-left: 0.5em; } + +.select { + display: inline-block; + max-width: 100%; + position: relative; + vertical-align: top; } + .select:not(.is-multiple) { + height: 2.25em; } + .select:not(.is-multiple):not(.is-loading)::after { + border-color: #2e63b8; + right: 1.125em; + z-index: 4; } + .select.is-rounded select, #documenter .docs-sidebar form.docs-search > input.select select { + border-radius: 290486px; + padding-left: 1em; } + .select select { + cursor: pointer; + display: block; + font-size: 1em; + max-width: 100%; + outline: none; } + .select select::-ms-expand { + display: none; } + .select select[disabled]:hover, fieldset[disabled] .select select:hover { + border-color: whitesmoke; } + .select select:not([multiple]) { + padding-right: 2.5em; } + .select select[multiple] { + height: auto; + padding: 0; } + .select select[multiple] option { + padding: 0.5em 1em; } + .select:not(.is-multiple):not(.is-loading):hover::after { + border-color: #363636; } + .select.is-white:not(:hover)::after { + border-color: white; } + .select.is-white select { + border-color: white; } + .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: black; } + .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: whitesmoke; } + .select.is-light select { + border-color: whitesmoke; } + .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: 0.75rem; } + .select.is-medium { + font-size: 1.25rem; } + .select.is-large { + font-size: 1.5rem; } + .select.is-disabled::after { + border-color: #6b6b6b; } + .select.is-fullwidth { + width: 100%; } + .select.is-fullwidth select { + width: 100%; } + .select.is-loading::after { + margin-top: 0; + position: absolute; + right: 0.625em; + top: 0.625em; + transform: none; } + .select.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.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: white; + 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: white; } + .file.is-black:hover .file-cta, .file.is-black.is-hovered .file-cta { + background-color: #040404; + border-color: transparent; + color: white; } + .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: white; } + .file.is-black:active .file-cta, .file.is-black.is-active .file-cta { + background-color: black; + border-color: transparent; + color: white; } + .file.is-light .file-cta { + background-color: whitesmoke; + border-color: transparent; + color: #363636; } + .file.is-light:hover .file-cta, .file.is-light.is-hovered .file-cta { + background-color: #eeeeee; + border-color: transparent; + color: #363636; } + .file.is-light:focus .file-cta, .file.is-light.is-focused .file-cta { + border-color: transparent; + box-shadow: 0 0 0.5em rgba(245, 245, 245, 0.25); + color: #363636; } + .file.is-light:active .file-cta, .file.is-light.is-active .file-cta { + background-color: #e8e8e8; + border-color: transparent; + color: #363636; } + .file.is-dark .file-cta, .content kbd.file .file-cta { + background-color: #363636; + border-color: transparent; + color: whitesmoke; } + .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: whitesmoke; } + .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: whitesmoke; } + .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: whitesmoke; } + .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: 0.75rem; } + .file.is-medium { + font-size: 1.25rem; } + .file.is-medium .file-icon .fa { + font-size: 21px; } + .file.is-large { + font-size: 1.5rem; } + .file.is-large .file-icon .fa { + font-size: 28px; } + .file.has-name .file-cta { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + .file.has-name .file-name { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .file.has-name.is-empty .file-cta { + border-radius: 4px; } + .file.has-name.is-empty .file-name { + display: none; } + .file.is-boxed .file-label { + flex-direction: column; } + .file.is-boxed .file-cta { + flex-direction: column; + height: auto; + padding: 1em 3em; } + .file.is-boxed .file-name { + border-width: 0 1px 1px; } + .file.is-boxed .file-icon { + height: 1.5em; + width: 1.5em; } + .file.is-boxed .file-icon .fa { + font-size: 21px; } + .file.is-boxed.is-small .file-icon .fa, #documenter .docs-sidebar form.docs-search > input.is-boxed .file-icon .fa { + font-size: 14px; } + .file.is-boxed.is-medium .file-icon .fa { + font-size: 28px; } + .file.is-boxed.is-large .file-icon .fa { + font-size: 35px; } + .file.is-boxed.has-name .file-cta { + border-radius: 4px 4px 0 0; } + .file.is-boxed.has-name .file-name { + border-radius: 0 0 4px 4px; + border-width: 0 1px 1px; } + .file.is-centered { + justify-content: center; } + .file.is-fullwidth .file-label { + width: 100%; } + .file.is-fullwidth .file-name { + flex-grow: 1; + max-width: none; } + .file.is-right { + justify-content: flex-end; } + .file.is-right .file-cta { + border-radius: 0 4px 4px 0; } + .file.is-right .file-name { + border-radius: 4px 0 0 4px; + border-width: 1px 0 1px 1px; + order: -1; } + +.file-label { + align-items: stretch; + display: flex; + cursor: pointer; + justify-content: flex-start; + overflow: hidden; + position: relative; } + .file-label:hover .file-cta { + background-color: #eeeeee; + color: #363636; } + .file-label:hover .file-name { + border-color: #d5d5d5; } + .file-label:active .file-cta { + background-color: #e8e8e8; + color: #363636; } + .file-label:active .file-name { + border-color: #cfcfcf; } + +.file-input { + height: 100%; + left: 0; + opacity: 0; + outline: none; + position: absolute; + top: 0; + width: 100%; } + +.file-cta, +.file-name { + border-color: #dbdbdb; + border-radius: 4px; + font-size: 1em; + padding-left: 1em; + padding-right: 1em; + white-space: nowrap; } + +.file-cta { + background-color: whitesmoke; + color: #4a4a4a; } + +.file-name { + border-color: #dbdbdb; + border-style: solid; + border-width: 1px 1px 1px 0; + display: block; + max-width: 16em; + overflow: hidden; + text-align: left; + text-overflow: ellipsis; } + +.file-icon { + align-items: center; + display: flex; + height: 1em; + justify-content: center; + margin-right: 0.5em; + width: 1em; } + .file-icon .fa { + font-size: 14px; } + +.label { + color: #363636; + display: block; + font-size: 1rem; + font-weight: 700; } + .label:not(:last-child) { + margin-bottom: 0.5em; } + .label.is-small, #documenter .docs-sidebar form.docs-search > input.label { + font-size: 0.75rem; } + .label.is-medium { + font-size: 1.25rem; } + .label.is-large { + font-size: 1.5rem; } + +.help { + display: block; + font-size: 0.75rem; + margin-top: 0.25rem; } + .help.is-white { + color: white; } + .help.is-black { + color: #0a0a0a; } + .help.is-light { + color: whitesmoke; } + .help.is-dark, .content kbd.help { + color: #363636; } + .help.is-primary, .docstring > section > a.help.docs-sourcelink { + color: #4eb5de; } + .help.is-link { + color: #2e63b8; } + .help.is-info { + color: #209cee; } + .help.is-success { + color: #22c35b; } + .help.is-warning { + color: #ffdd57; } + .help.is-danger { + color: #da0b00; } + +.field:not(:last-child) { + margin-bottom: 0.75rem; } + +.field.has-addons { + display: flex; + justify-content: flex-start; } + .field.has-addons .control:not(:last-child) { + margin-right: -1px; } + .field.has-addons .control:not(:first-child):not(:last-child) .button, + .field.has-addons .control:not(:first-child):not(:last-child) .input, + .field.has-addons .control:not(:first-child):not(:last-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:not(:first-child):not(:last-child) form.docs-search > input, + .field.has-addons .control:not(:first-child):not(:last-child) .select select { + border-radius: 0; } + .field.has-addons .control:first-child:not(:only-child) .button, + .field.has-addons .control:first-child:not(:only-child) .input, + .field.has-addons .control:first-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:first-child:not(:only-child) form.docs-search > input, + .field.has-addons .control:first-child:not(:only-child) .select select { + border-bottom-right-radius: 0; + border-top-right-radius: 0; } + .field.has-addons .control:last-child:not(:only-child) .button, + .field.has-addons .control:last-child:not(:only-child) .input, + .field.has-addons .control:last-child:not(:only-child) #documenter .docs-sidebar form.docs-search > input, + #documenter .docs-sidebar .field.has-addons .control:last-child:not(:only-child) form.docs-search > input, + .field.has-addons .control:last-child:not(:only-child) .select select { + border-bottom-left-radius: 0; + border-top-left-radius: 0; } + .field.has-addons .control .button:not([disabled]):hover, .field.has-addons .control .button.is-hovered:not([disabled]), + .field.has-addons .control .input:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):hover, + .field.has-addons .control .input.is-hovered:not([disabled]), + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-hovered:not([disabled]), + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-hovered:not([disabled]), + .field.has-addons .control .select select:not([disabled]):hover, + .field.has-addons .control .select select.is-hovered:not([disabled]) { + z-index: 2; } + .field.has-addons .control .button:not([disabled]):focus, .field.has-addons .control .button.is-focused:not([disabled]), .field.has-addons .control .button:not([disabled]):active, .field.has-addons .control .button.is-active:not([disabled]), + .field.has-addons .control .input:not([disabled]):focus, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus, + .field.has-addons .control .input.is-focused:not([disabled]), + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]), + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]), + .field.has-addons .control .input:not([disabled]):active, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active, + .field.has-addons .control .input.is-active:not([disabled]), + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]), + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]), + .field.has-addons .control .select select:not([disabled]):focus, + .field.has-addons .control .select select.is-focused:not([disabled]), + .field.has-addons .control .select select:not([disabled]):active, + .field.has-addons .control .select select.is-active:not([disabled]) { + z-index: 3; } + .field.has-addons .control .button:not([disabled]):focus:hover, .field.has-addons .control .button.is-focused:not([disabled]):hover, .field.has-addons .control .button:not([disabled]):active:hover, .field.has-addons .control .button.is-active:not([disabled]):hover, + .field.has-addons .control .input:not([disabled]):focus:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):focus:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):focus:hover, + .field.has-addons .control .input.is-focused:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-focused:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-focused:not([disabled]):hover, + .field.has-addons .control .input:not([disabled]):active:hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input:not([disabled]):active:hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input:not([disabled]):active:hover, + .field.has-addons .control .input.is-active:not([disabled]):hover, + .field.has-addons .control #documenter .docs-sidebar form.docs-search > input.is-active:not([disabled]):hover, + #documenter .docs-sidebar .field.has-addons .control form.docs-search > input.is-active:not([disabled]):hover, + .field.has-addons .control .select select:not([disabled]):focus:hover, + .field.has-addons .control .select select.is-focused:not([disabled]):hover, + .field.has-addons .control .select select:not([disabled]):active:hover, + .field.has-addons .control .select select.is-active:not([disabled]):hover { + z-index: 4; } + .field.has-addons .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .field.has-addons.has-addons-centered { + justify-content: center; } + .field.has-addons.has-addons-right { + justify-content: flex-end; } + .field.has-addons.has-addons-fullwidth .control { + flex-grow: 1; + flex-shrink: 0; } + +.field.is-grouped { + display: flex; + justify-content: flex-start; } + .field.is-grouped > .control { + flex-shrink: 0; } + .field.is-grouped > .control:not(:last-child) { + margin-bottom: 0; + margin-right: 0.75rem; } + .field.is-grouped > .control.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .field.is-grouped.is-grouped-centered { + justify-content: center; } + .field.is-grouped.is-grouped-right { + justify-content: flex-end; } + .field.is-grouped.is-grouped-multiline { + flex-wrap: wrap; } + .field.is-grouped.is-grouped-multiline > .control:last-child, .field.is-grouped.is-grouped-multiline > .control:not(:last-child) { + margin-bottom: 0.75rem; } + .field.is-grouped.is-grouped-multiline:last-child { + margin-bottom: -0.75rem; } + .field.is-grouped.is-grouped-multiline:not(:last-child) { + margin-bottom: 0; } + +@media screen and (min-width: 769px), print { + .field.is-horizontal { + display: flex; } } + +.field-label .label { + font-size: inherit; } + +@media screen and (max-width: 768px) { + .field-label { + margin-bottom: 0.5rem; } } + +@media screen and (min-width: 769px), print { + .field-label { + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + margin-right: 1.5rem; + text-align: right; } + .field-label.is-small, #documenter .docs-sidebar form.docs-search > input.field-label { + font-size: 0.75rem; + padding-top: 0.375em; } + .field-label.is-normal { + padding-top: 0.375em; } + .field-label.is-medium { + font-size: 1.25rem; + padding-top: 0.375em; } + .field-label.is-large { + font-size: 1.5rem; + padding-top: 0.375em; } } + +.field-body .field .field { + margin-bottom: 0; } + +@media screen and (min-width: 769px), print { + .field-body { + display: flex; + flex-basis: 0; + flex-grow: 5; + flex-shrink: 1; } + .field-body .field { + margin-bottom: 0; } + .field-body > .field { + flex-shrink: 1; } + .field-body > .field:not(.is-narrow) { + flex-grow: 1; } + .field-body > .field:not(:last-child) { + margin-right: 0.75rem; } } + +.control { + box-sizing: border-box; + clear: both; + font-size: 1rem; + position: relative; + text-align: left; } + .control.has-icons-left .input:focus ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input:focus ~ .icon, + .control.has-icons-left .select:focus ~ .icon, .control.has-icons-right .input:focus ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input:focus ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input:focus ~ .icon, + .control.has-icons-right .select:focus ~ .icon { + color: #6b6b6b; } + .control.has-icons-left .input.is-small ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input ~ .icon, + .control.has-icons-left .select.is-small ~ .icon, .control.has-icons-right .input.is-small ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input ~ .icon, + .control.has-icons-right .select.is-small ~ .icon { + font-size: 0.75rem; } + .control.has-icons-left .input.is-medium ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-medium ~ .icon, + .control.has-icons-left .select.is-medium ~ .icon, .control.has-icons-right .input.is-medium ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-medium ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-medium ~ .icon, + .control.has-icons-right .select.is-medium ~ .icon { + font-size: 1.25rem; } + .control.has-icons-left .input.is-large ~ .icon, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input.is-large ~ .icon, + .control.has-icons-left .select.is-large ~ .icon, .control.has-icons-right .input.is-large ~ .icon, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input.is-large ~ .icon, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input.is-large ~ .icon, + .control.has-icons-right .select.is-large ~ .icon { + font-size: 1.5rem; } + .control.has-icons-left .icon, .control.has-icons-right .icon { + color: #dbdbdb; + height: 2.25em; + pointer-events: none; + position: absolute; + top: 0; + width: 2.25em; + z-index: 4; } + .control.has-icons-left .input, .control.has-icons-left #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-left form.docs-search > input, + .control.has-icons-left .select select { + padding-left: 2.25em; } + .control.has-icons-left .icon.is-left { + left: 0; } + .control.has-icons-right .input, .control.has-icons-right #documenter .docs-sidebar form.docs-search > input, #documenter .docs-sidebar .control.has-icons-right form.docs-search > input, + .control.has-icons-right .select select { + padding-right: 2.25em; } + .control.has-icons-right .icon.is-right { + right: 0; } + .control.is-loading::after { + position: absolute !important; + right: 0.625em; + top: 0.625em; + z-index: 4; } + .control.is-loading.is-small:after, #documenter .docs-sidebar form.docs-search > input.is-loading:after { + font-size: 0.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 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: #222222; + cursor: default; + pointer-events: none; } + .breadcrumb li + li::before { + color: #b5b5b5; + content: "\0002f"; } + .breadcrumb ul, + .breadcrumb ol { + align-items: flex-start; + display: flex; + flex-wrap: wrap; + justify-content: flex-start; } + .breadcrumb .icon:first-child { + margin-right: 0.5em; } + .breadcrumb .icon:last-child { + margin-left: 0.5em; } + .breadcrumb.is-centered ol, + .breadcrumb.is-centered ul { + justify-content: center; } + .breadcrumb.is-right ol, + .breadcrumb.is-right ul { + justify-content: flex-end; } + .breadcrumb.is-small, #documenter .docs-sidebar form.docs-search > input.breadcrumb { + font-size: 0.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: white; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + color: #222222; + max-width: 100%; + position: relative; } + +.card-header { + background-color: transparent; + align-items: stretch; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + display: flex; } + +.card-header-title { + align-items: center; + color: #222222; + display: flex; + flex-grow: 1; + font-weight: 700; + padding: 0.75rem; } + .card-header-title.is-centered { + justify-content: center; } + +.card-header-icon { + align-items: center; + cursor: pointer; + display: flex; + justify-content: center; + padding: 0.75rem; } + +.card-image { + display: block; + position: relative; } + +.card-content { + background-color: transparent; + padding: 1.5rem; } + +.card-footer { + background-color: transparent; + border-top: 1px solid #dbdbdb; + align-items: stretch; + display: flex; } + +.card-footer-item { + align-items: center; + display: flex; + flex-basis: 0; + flex-grow: 1; + flex-shrink: 0; + justify-content: center; + padding: 0.75rem; } + .card-footer-item:not(:last-child) { + border-right: 1px solid #dbdbdb; } + +.card .media:not(:last-child) { + margin-bottom: 1.5rem; } + +.dropdown { + display: inline-flex; + position: relative; + vertical-align: top; } + .dropdown.is-active .dropdown-menu, .dropdown.is-hoverable:hover .dropdown-menu { + display: block; } + .dropdown.is-right .dropdown-menu { + left: auto; + right: 0; } + .dropdown.is-up .dropdown-menu { + bottom: 100%; + padding-bottom: 4px; + padding-top: initial; + top: auto; } + +.dropdown-menu { + display: none; + left: 0; + min-width: 12rem; + padding-top: 4px; + position: absolute; + top: 100%; + z-index: 20; } + +.dropdown-content { + background-color: white; + border-radius: 4px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); + padding-bottom: 0.5rem; + padding-top: 0.5rem; } + +.dropdown-item { + color: #4a4a4a; + display: block; + font-size: 0.875rem; + line-height: 1.5; + padding: 0.375rem 1rem; + position: relative; } + +a.dropdown-item, +button.dropdown-item { + padding-right: 3rem; + text-align: left; + white-space: nowrap; + width: 100%; } + a.dropdown-item:hover, + button.dropdown-item:hover { + background-color: whitesmoke; + color: #0a0a0a; } + a.dropdown-item.is-active, + button.dropdown-item.is-active { + background-color: #2e63b8; + color: #fff; } + +.dropdown-divider { + background-color: #dbdbdb; + border: none; + display: block; + height: 1px; + margin: 0.5rem 0; } + +.level { + align-items: center; + justify-content: space-between; } + .level code { + border-radius: 4px; } + .level img { + display: inline-block; + vertical-align: top; } + .level.is-mobile { + display: flex; } + .level.is-mobile .level-left, + .level.is-mobile .level-right { + display: flex; } + .level.is-mobile .level-left + .level-right { + margin-top: 0; } + .level.is-mobile .level-item:not(:last-child) { + margin-bottom: 0; + margin-right: 0.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: 0.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: 0.75rem; } } +.level-left { + align-items: center; + justify-content: flex-start; } + @media screen and (max-width: 768px) { + .level-left + .level-right { + margin-top: 1.5rem; } } + @media screen and (min-width: 769px), print { + .level-left { + display: flex; } } +.level-right { + align-items: center; + justify-content: flex-end; } + @media screen and (min-width: 769px), print { + .level-right { + display: flex; } } +.list { + background-color: white; + border-radius: 4px; + box-shadow: 0 2px 3px rgba(10, 10, 10, 0.1), 0 0 0 1px rgba(10, 10, 10, 0.1); } + +.list-item { + display: block; + padding: 0.5em 1em; } + .list-item:not(a) { + color: #222222; } + .list-item:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; } + .list-item:last-child { + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; } + .list-item:not(:last-child) { + border-bottom: 1px solid #dbdbdb; } + .list-item.is-active { + background-color: #2e63b8; + color: #fff; } + +a.list-item { + background-color: whitesmoke; + cursor: pointer; } + +.media { + align-items: flex-start; + display: flex; + text-align: left; } + .media .content:not(:last-child) { + margin-bottom: 0.75rem; } + .media .media { + border-top: 1px solid rgba(219, 219, 219, 0.5); + display: flex; + padding-top: 0.75rem; } + .media .media .content:not(:last-child), + .media .media .control:not(:last-child) { + margin-bottom: 0.5rem; } + .media .media .media { + padding-top: 0.5rem; } + .media .media .media + .media { + margin-top: 0.5rem; } + .media + .media { + border-top: 1px solid rgba(219, 219, 219, 0.5); + margin-top: 1rem; + padding-top: 1rem; } + .media.is-large + .media { + margin-top: 1.5rem; + padding-top: 1.5rem; } + +.media-left, +.media-right { + flex-basis: auto; + flex-grow: 0; + flex-shrink: 0; } + +.media-left { + margin-right: 1rem; } + +.media-right { + margin-left: 1rem; } + +.media-content { + flex-basis: auto; + flex-grow: 1; + flex-shrink: 1; + text-align: left; } + +@media screen and (max-width: 768px) { + .media-content { + overflow-x: auto; } } + +.menu { + font-size: 1rem; } + .menu.is-small, #documenter .docs-sidebar form.docs-search > input.menu { + font-size: 0.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: #222222; + display: block; + padding: 0.5em 0.75em; } + .menu-list a:hover { + background-color: whitesmoke; + color: #222222; } + .menu-list a.is-active { + background-color: #2e63b8; + color: #fff; } + .menu-list li ul { + border-left: 1px solid #dbdbdb; + margin: 0.75em; + padding-left: 0.75em; } + +.menu-label { + color: #6b6b6b; + font-size: 0.75em; + letter-spacing: 0.1em; + text-transform: uppercase; } + .menu-label:not(:first-child) { + margin-top: 1em; } + .menu-label:not(:last-child) { + margin-bottom: 1em; } + +.message { + background-color: whitesmoke; + 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: 0.75rem; } + .message.is-medium { + font-size: 1.25rem; } + .message.is-large { + font-size: 1.5rem; } + .message.is-white { + background-color: white; } + .message.is-white .message-header { + background-color: white; + color: #0a0a0a; } + .message.is-white .message-body { + border-color: white; + color: #4d4d4d; } + .message.is-black { + background-color: #fafafa; } + .message.is-black .message-header { + background-color: #0a0a0a; + color: white; } + .message.is-black .message-body { + border-color: #0a0a0a; + color: #090909; } + .message.is-light { + background-color: #fafafa; } + .message.is-light .message-header { + background-color: whitesmoke; + color: #363636; } + .message.is-light .message-body { + border-color: whitesmoke; + color: #505050; } + .message.is-dark, .content kbd.message { + background-color: #fafafa; } + .message.is-dark .message-header, .content kbd.message .message-header { + background-color: #363636; + color: whitesmoke; } + .message.is-dark .message-body, .content kbd.message .message-body { + border-color: #363636; + color: #2a2a2a; } + .message.is-primary, .docstring > section > a.message.docs-sourcelink { + background-color: #f6fbfd; } + .message.is-primary .message-header, .docstring > section > a.message.docs-sourcelink .message-header { + background-color: #4eb5de; + color: #fff; } + .message.is-primary .message-body, .docstring > section > a.message.docs-sourcelink .message-body { + border-color: #4eb5de; + color: #1f556a; } + .message.is-link { + background-color: #f7f9fd; } + .message.is-link .message-header { + background-color: #2e63b8; + color: #fff; } + .message.is-link .message-body { + border-color: #2e63b8; + color: #264981; } + .message.is-info { + background-color: #f6fbfe; } + .message.is-info .message-header { + background-color: #209cee; + color: #fff; } + .message.is-info .message-body { + border-color: #209cee; + color: #12537d; } + .message.is-success { + background-color: #f6fdf9; } + .message.is-success .message-header { + background-color: #22c35b; + color: #fff; } + .message.is-success .message-body { + border-color: #22c35b; + color: #0f361d; } + .message.is-warning { + background-color: #fffdf5; } + .message.is-warning .message-header { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .message.is-warning .message-body { + border-color: #ffdd57; + color: #3c3108; } + .message.is-danger { + background-color: #fff5f5; } + .message.is-danger .message-header { + background-color: #da0b00; + color: #fff; } + .message.is-danger .message-body { + border-color: #da0b00; + color: #9b0c04; } + +.message-header { + align-items: center; + background-color: #222222; + border-radius: 4px 4px 0 0; + color: #fff; + display: flex; + font-weight: 700; + justify-content: space-between; + line-height: 1.25; + padding: 0.75em 1em; + position: relative; } + .message-header .delete { + flex-grow: 0; + flex-shrink: 0; + margin-left: 0.75em; } + .message-header + .message-body { + border-width: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; } + +.message-body { + border-color: #dbdbdb; + border-radius: 4px; + border-style: solid; + border-width: 0 0 0 4px; + color: #222222; + padding: 1.25em 1.5em; } + .message-body code, + .message-body pre { + background-color: white; } + .message-body pre code { + background-color: transparent; } + +.modal { + align-items: center; + display: none; + flex-direction: column; + justify-content: center; + overflow: hidden; + position: fixed; + z-index: 40; } + .modal.is-active { + display: flex; } + +.modal-background { + background-color: rgba(10, 10, 10, 0.86); } + +.modal-content, +.modal-card { + margin: 0 20px; + max-height: calc(100vh - 160px); + overflow: auto; + position: relative; + width: 100%; } + @media screen and (min-width: 769px), print { + .modal-content, + .modal-card { + margin: 0 auto; + max-height: calc(100vh - 40px); + width: 640px; } } +.modal-close { + background: none; + height: 40px; + position: fixed; + right: 20px; + top: 20px; + width: 40px; } + +.modal-card { + display: flex; + flex-direction: column; + max-height: calc(100vh - 40px); + overflow: hidden; + -ms-overflow-y: visible; } + +.modal-card-head, +.modal-card-foot { + align-items: center; + background-color: whitesmoke; + 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: #222222; + flex-grow: 1; + flex-shrink: 0; + font-size: 1.5rem; + line-height: 1; } + +.modal-card-foot { + border-bottom-left-radius: 6px; + border-bottom-right-radius: 6px; + border-top: 1px solid #dbdbdb; } + .modal-card-foot .button:not(:last-child) { + margin-right: 0.5em; } + +.modal-card-body { + -webkit-overflow-scrolling: touch; + background-color: white; + flex-grow: 1; + flex-shrink: 1; + overflow: auto; + padding: 20px; } + +.navbar { + background-color: white; + min-height: 3.25rem; + position: relative; + z-index: 30; } + .navbar.is-white { + background-color: white; + 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: white; + color: #0a0a0a; } } + .navbar.is-black { + background-color: #0a0a0a; + color: white; } + .navbar.is-black .navbar-brand > .navbar-item, + .navbar.is-black .navbar-brand .navbar-link { + color: white; } + .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: black; + color: white; } + .navbar.is-black .navbar-brand .navbar-link::after { + border-color: white; } + .navbar.is-black .navbar-burger { + color: white; } + @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: white; } + .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: black; + color: white; } + .navbar.is-black .navbar-start .navbar-link::after, + .navbar.is-black .navbar-end .navbar-link::after { + border-color: white; } + .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: black; + color: white; } + .navbar.is-black .navbar-dropdown a.navbar-item.is-active { + background-color: #0a0a0a; + color: white; } } + .navbar.is-light { + background-color: whitesmoke; + color: #363636; } + .navbar.is-light .navbar-brand > .navbar-item, + .navbar.is-light .navbar-brand .navbar-link { + color: #363636; } + .navbar.is-light .navbar-brand > a.navbar-item:focus, .navbar.is-light .navbar-brand > a.navbar-item:hover, .navbar.is-light .navbar-brand > a.navbar-item.is-active, + .navbar.is-light .navbar-brand .navbar-link:focus, + .navbar.is-light .navbar-brand .navbar-link:hover, + .navbar.is-light .navbar-brand .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-brand .navbar-link::after { + border-color: #363636; } + .navbar.is-light .navbar-burger { + color: #363636; } + @media screen and (min-width: 1056px) { + .navbar.is-light .navbar-start > .navbar-item, + .navbar.is-light .navbar-start .navbar-link, + .navbar.is-light .navbar-end > .navbar-item, + .navbar.is-light .navbar-end .navbar-link { + color: #363636; } + .navbar.is-light .navbar-start > a.navbar-item:focus, .navbar.is-light .navbar-start > a.navbar-item:hover, .navbar.is-light .navbar-start > a.navbar-item.is-active, + .navbar.is-light .navbar-start .navbar-link:focus, + .navbar.is-light .navbar-start .navbar-link:hover, + .navbar.is-light .navbar-start .navbar-link.is-active, + .navbar.is-light .navbar-end > a.navbar-item:focus, + .navbar.is-light .navbar-end > a.navbar-item:hover, + .navbar.is-light .navbar-end > a.navbar-item.is-active, + .navbar.is-light .navbar-end .navbar-link:focus, + .navbar.is-light .navbar-end .navbar-link:hover, + .navbar.is-light .navbar-end .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-start .navbar-link::after, + .navbar.is-light .navbar-end .navbar-link::after { + border-color: #363636; } + .navbar.is-light .navbar-item.has-dropdown:focus .navbar-link, + .navbar.is-light .navbar-item.has-dropdown:hover .navbar-link, + .navbar.is-light .navbar-item.has-dropdown.is-active .navbar-link { + background-color: #e8e8e8; + color: #363636; } + .navbar.is-light .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #363636; } } + .navbar.is-dark, .content kbd.navbar { + background-color: #363636; + color: whitesmoke; } + .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: whitesmoke; } + .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: whitesmoke; } + .navbar.is-dark .navbar-brand .navbar-link::after, .content kbd.navbar .navbar-brand .navbar-link::after { + border-color: whitesmoke; } + .navbar.is-dark .navbar-burger, .content kbd.navbar .navbar-burger { + color: whitesmoke; } + @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: whitesmoke; } + .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: whitesmoke; } + .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: whitesmoke; } + .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: whitesmoke; } + .navbar.is-dark .navbar-dropdown a.navbar-item.is-active, .content kbd.navbar .navbar-dropdown a.navbar-item.is-active { + background-color: #363636; + color: whitesmoke; } } + .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 whitesmoke; } + .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 whitesmoke; } + .navbar.is-fixed-top { + top: 0; } + +html.has-navbar-fixed-top, +body.has-navbar-fixed-top { + padding-top: 3.25rem; } + +html.has-navbar-fixed-bottom, +body.has-navbar-fixed-bottom { + padding-bottom: 3.25rem; } + +.navbar-brand, +.navbar-tabs { + align-items: stretch; + display: flex; + flex-shrink: 0; + min-height: 3.25rem; } + +.navbar-brand a.navbar-item:focus, .navbar-brand a.navbar-item:hover { + background-color: transparent; } + +.navbar-tabs { + -webkit-overflow-scrolling: touch; + max-width: 100vw; + overflow-x: auto; + overflow-y: hidden; } + +.navbar-burger { + color: #4a4a4a; + cursor: pointer; + display: block; + height: 3.25rem; + position: relative; + width: 3.25rem; + margin-left: auto; } + .navbar-burger span { + background-color: currentColor; + display: block; + height: 1px; + left: calc(50% - 8px); + position: absolute; + transform-origin: center; + transition-duration: 86ms; + transition-property: background-color, opacity, transform; + transition-timing-function: ease-out; + width: 16px; } + .navbar-burger span:nth-child(1) { + top: calc(50% - 6px); } + .navbar-burger span:nth-child(2) { + top: calc(50% - 1px); } + .navbar-burger span:nth-child(3) { + top: calc(50% + 4px); } + .navbar-burger:hover { + background-color: rgba(0, 0, 0, 0.05); } + .navbar-burger.is-active span:nth-child(1) { + transform: translateY(5px) rotate(45deg); } + .navbar-burger.is-active span:nth-child(2) { + opacity: 0; } + .navbar-burger.is-active span:nth-child(3) { + transform: translateY(-5px) rotate(-45deg); } + +.navbar-menu { + display: none; } + +.navbar-item, +.navbar-link { + color: #4a4a4a; + display: block; + line-height: 1.5; + padding: 0.5rem 0.75rem; + position: relative; } + .navbar-item .icon:only-child, + .navbar-link .icon:only-child { + margin-left: -0.25rem; + margin-right: -0.25rem; } + +a.navbar-item, +.navbar-link { + cursor: pointer; } + a.navbar-item:focus, a.navbar-item:focus-within, a.navbar-item:hover, a.navbar-item.is-active, + .navbar-link:focus, + .navbar-link:focus-within, + .navbar-link:hover, + .navbar-link.is-active { + background-color: #fafafa; + color: #2e63b8; } + +.navbar-item { + display: block; + flex-grow: 0; + flex-shrink: 0; } + .navbar-item img { + max-height: 1.75rem; } + .navbar-item.has-dropdown { + padding: 0; } + .navbar-item.is-expanded { + flex-grow: 1; + flex-shrink: 1; } + .navbar-item.is-tab { + border-bottom: 1px solid transparent; + min-height: 3.25rem; + padding-bottom: calc(0.5rem - 1px); } + .navbar-item.is-tab:focus, .navbar-item.is-tab:hover { + background-color: transparent; + border-bottom-color: #2e63b8; } + .navbar-item.is-tab.is-active { + background-color: transparent; + 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: whitesmoke; + 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: white; + 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: whitesmoke; + color: #0a0a0a; } + .navbar.is-transparent .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + color: #2e63b8; } + .navbar-burger { + display: none; } + .navbar-item, + .navbar-link { + align-items: center; + display: flex; } + .navbar-item { + display: flex; } + .navbar-item.has-dropdown { + align-items: stretch; } + .navbar-item.has-dropdown-up .navbar-link::after { + transform: rotate(135deg) translate(0.25em, -0.25em); } + .navbar-item.has-dropdown-up .navbar-dropdown { + border-bottom: 2px solid #dbdbdb; + border-radius: 6px 6px 0 0; + border-top: none; + bottom: 100%; + box-shadow: 0 -8px 8px rgba(10, 10, 10, 0.1); + top: auto; } + .navbar-item.is-active .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown { + display: block; } + .navbar.is-spaced .navbar-item.is-active .navbar-dropdown, .navbar-item.is-active .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus .navbar-dropdown, .navbar-item.is-hoverable:focus .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:focus-within .navbar-dropdown, .navbar-item.is-hoverable:focus-within .navbar-dropdown.is-boxed, .navbar.is-spaced .navbar-item.is-hoverable:hover .navbar-dropdown, .navbar-item.is-hoverable:hover .navbar-dropdown.is-boxed { + opacity: 1; + pointer-events: auto; + transform: translateY(0); } + .navbar-menu { + flex-grow: 1; + flex-shrink: 0; } + .navbar-start { + justify-content: flex-start; + margin-right: auto; } + .navbar-end { + justify-content: flex-end; + margin-left: auto; } + .navbar-dropdown { + background-color: white; + 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: whitesmoke; + color: #0a0a0a; } + .navbar-dropdown a.navbar-item.is-active { + background-color: whitesmoke; + 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: transparent; } + .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: -0.25rem; } + .pagination.is-small, #documenter .docs-sidebar form.docs-search > input.pagination { + font-size: 0.75rem; } + .pagination.is-medium { + font-size: 1.25rem; } + .pagination.is-large { + font-size: 1.5rem; } + .pagination.is-rounded .pagination-previous, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-previous, + .pagination.is-rounded .pagination-next, + #documenter .docs-sidebar form.docs-search > input.pagination .pagination-next { + padding-left: 1em; + padding-right: 1em; + border-radius: 290486px; } + .pagination.is-rounded .pagination-link, #documenter .docs-sidebar form.docs-search > input.pagination .pagination-link { + border-radius: 290486px; } + +.pagination, +.pagination-list { + align-items: center; + display: flex; + justify-content: center; + text-align: center; } + +.pagination-previous, +.pagination-next, +.pagination-link, +.pagination-ellipsis { + font-size: 1em; + justify-content: center; + margin: 0.25rem; + padding-left: 0.5em; + padding-right: 0.5em; + text-align: center; } + +.pagination-previous, +.pagination-next, +.pagination-link { + border-color: #dbdbdb; + color: #363636; + min-width: 2.25em; } + .pagination-previous:hover, + .pagination-next:hover, + .pagination-link:hover { + border-color: #b5b5b5; + color: #363636; } + .pagination-previous:focus, + .pagination-next:focus, + .pagination-link:focus { + border-color: #3c5dcd; } + .pagination-previous:active, + .pagination-next:active, + .pagination-link:active { + box-shadow: inset 0 1px 2px rgba(10, 10, 10, 0.2); } + .pagination-previous[disabled], + .pagination-next[disabled], + .pagination-link[disabled] { + background-color: #dbdbdb; + border-color: #dbdbdb; + box-shadow: none; + color: #6b6b6b; + opacity: 0.5; } + +.pagination-previous, +.pagination-next { + padding-left: 0.75em; + padding-right: 0.75em; + white-space: nowrap; } + +.pagination-link.is-current { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; } + +.pagination-ellipsis { + color: #b5b5b5; + pointer-events: none; } + +.pagination-list { + flex-wrap: wrap; } + +@media screen and (max-width: 768px) { + .pagination { + flex-wrap: wrap; } + .pagination-previous, + .pagination-next { + flex-grow: 1; + flex-shrink: 1; } + .pagination-list li { + flex-grow: 1; + flex-shrink: 1; } } + +@media screen and (min-width: 769px), print { + .pagination-list { + flex-grow: 1; + flex-shrink: 1; + justify-content: flex-start; + order: 1; } + .pagination-previous { + order: 2; } + .pagination-next { + order: 3; } + .pagination { + justify-content: space-between; } + .pagination.is-centered .pagination-previous { + order: 1; } + .pagination.is-centered .pagination-list { + justify-content: center; + order: 2; } + .pagination.is-centered .pagination-next { + order: 3; } + .pagination.is-right .pagination-previous { + order: 1; } + .pagination.is-right .pagination-next { + order: 2; } + .pagination.is-right .pagination-list { + justify-content: flex-end; + order: 3; } } + +.panel { + font-size: 1rem; } + .panel:not(:last-child) { + margin-bottom: 1.5rem; } + +.panel-heading, +.panel-tabs, +.panel-block { + border-bottom: 1px solid #dbdbdb; + border-left: 1px solid #dbdbdb; + border-right: 1px solid #dbdbdb; } + .panel-heading:first-child, + .panel-tabs:first-child, + .panel-block:first-child { + border-top: 1px solid #dbdbdb; } + +.panel-heading { + background-color: whitesmoke; + border-radius: 4px 4px 0 0; + color: #222222; + font-size: 1.25em; + font-weight: 300; + line-height: 1.25; + padding: 0.5em 0.75em; } + +.panel-tabs { + align-items: flex-end; + display: flex; + font-size: 0.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: #222222; } + .panel-list a:hover { + color: #2e63b8; } + +.panel-block { + align-items: center; + color: #222222; + display: flex; + justify-content: flex-start; + padding: 0.5em 0.75em; } + .panel-block input[type="checkbox"] { + margin-right: 0.75em; } + .panel-block > .control { + flex-grow: 1; + flex-shrink: 1; + width: 100%; } + .panel-block.is-wrapped { + flex-wrap: wrap; } + .panel-block.is-active { + border-left-color: #2e63b8; + color: #363636; } + .panel-block.is-active .panel-icon { + color: #2e63b8; } + +a.panel-block, +label.panel-block { + cursor: pointer; } + a.panel-block:hover, + label.panel-block:hover { + background-color: whitesmoke; } + +.panel-icon { + display: inline-block; + font-size: 14px; + height: 1em; + line-height: 1em; + text-align: center; + vertical-align: top; + width: 1em; + color: #6b6b6b; + margin-right: 0.75em; } + .panel-icon .fa { + font-size: inherit; + line-height: inherit; } + +.tabs { + -webkit-overflow-scrolling: touch; + align-items: stretch; + display: flex; + font-size: 1rem; + justify-content: space-between; + overflow: hidden; + overflow-x: auto; + white-space: nowrap; } + .tabs a { + align-items: center; + border-bottom-color: #dbdbdb; + border-bottom-style: solid; + border-bottom-width: 1px; + color: #222222; + display: flex; + justify-content: center; + margin-bottom: -1px; + padding: 0.5em 1em; + vertical-align: top; } + .tabs a:hover { + border-bottom-color: #222222; + color: #222222; } + .tabs li { + display: block; } + .tabs li.is-active a { + border-bottom-color: #2e63b8; + color: #2e63b8; } + .tabs ul { + align-items: center; + border-bottom-color: #dbdbdb; + border-bottom-style: solid; + border-bottom-width: 1px; + display: flex; + flex-grow: 1; + flex-shrink: 0; + justify-content: flex-start; } + .tabs ul.is-left { + padding-right: 0.75em; } + .tabs ul.is-center { + flex: none; + justify-content: center; + padding-left: 0.75em; + padding-right: 0.75em; } + .tabs ul.is-right { + justify-content: flex-end; + padding-left: 0.75em; } + .tabs .icon:first-child { + margin-right: 0.5em; } + .tabs .icon:last-child { + margin-left: 0.5em; } + .tabs.is-centered ul { + justify-content: center; } + .tabs.is-right ul { + justify-content: flex-end; } + .tabs.is-boxed a { + border: 1px solid transparent; + border-radius: 4px 4px 0 0; } + .tabs.is-boxed a:hover { + background-color: whitesmoke; + border-bottom-color: #dbdbdb; } + .tabs.is-boxed li.is-active a { + background-color: white; + border-color: #dbdbdb; + border-bottom-color: transparent !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: whitesmoke; + border-color: #b5b5b5; + z-index: 2; } + .tabs.is-toggle li + li { + margin-left: -1px; } + .tabs.is-toggle li:first-child a { + border-radius: 4px 0 0 4px; } + .tabs.is-toggle li:last-child a { + border-radius: 0 4px 4px 0; } + .tabs.is-toggle li.is-active a { + background-color: #2e63b8; + border-color: #2e63b8; + color: #fff; + z-index: 1; } + .tabs.is-toggle ul { + border-bottom: none; } + .tabs.is-toggle.is-toggle-rounded li:first-child a { + border-bottom-left-radius: 290486px; + border-top-left-radius: 290486px; + padding-left: 1.25em; } + .tabs.is-toggle.is-toggle-rounded li:last-child a { + border-bottom-right-radius: 290486px; + border-top-right-radius: 290486px; + padding-right: 1.25em; } + .tabs.is-small, #documenter .docs-sidebar form.docs-search > input.tabs { + font-size: 0.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: 0.75rem; } + .columns.is-mobile > .column.is-narrow { + flex: none; } + .columns.is-mobile > .column.is-full { + flex: none; + width: 100%; } + .columns.is-mobile > .column.is-three-quarters { + flex: none; + width: 75%; } + .columns.is-mobile > .column.is-two-thirds { + flex: none; + width: 66.6666%; } + .columns.is-mobile > .column.is-half { + flex: none; + width: 50%; } + .columns.is-mobile > .column.is-one-third { + flex: none; + width: 33.3333%; } + .columns.is-mobile > .column.is-one-quarter { + flex: none; + width: 25%; } + .columns.is-mobile > .column.is-one-fifth { + flex: none; + width: 20%; } + .columns.is-mobile > .column.is-two-fifths { + flex: none; + width: 40%; } + .columns.is-mobile > .column.is-three-fifths { + flex: none; + width: 60%; } + .columns.is-mobile > .column.is-four-fifths { + flex: none; + width: 80%; } + .columns.is-mobile > .column.is-offset-three-quarters { + margin-left: 75%; } + .columns.is-mobile > .column.is-offset-two-thirds { + margin-left: 66.6666%; } + .columns.is-mobile > .column.is-offset-half { + margin-left: 50%; } + .columns.is-mobile > .column.is-offset-one-third { + margin-left: 33.3333%; } + .columns.is-mobile > .column.is-offset-one-quarter { + margin-left: 25%; } + .columns.is-mobile > .column.is-offset-one-fifth { + margin-left: 20%; } + .columns.is-mobile > .column.is-offset-two-fifths { + margin-left: 40%; } + .columns.is-mobile > .column.is-offset-three-fifths { + margin-left: 60%; } + .columns.is-mobile > .column.is-offset-four-fifths { + margin-left: 80%; } + .columns.is-mobile > .column.is-0 { + flex: none; + width: 0%; } + .columns.is-mobile > .column.is-offset-0 { + margin-left: 0%; } + .columns.is-mobile > .column.is-1 { + flex: none; + width: 8.3333333333%; } + .columns.is-mobile > .column.is-offset-1 { + margin-left: 8.3333333333%; } + .columns.is-mobile > .column.is-2 { + flex: none; + width: 16.6666666667%; } + .columns.is-mobile > .column.is-offset-2 { + margin-left: 16.6666666667%; } + .columns.is-mobile > .column.is-3 { + flex: none; + width: 25%; } + .columns.is-mobile > .column.is-offset-3 { + margin-left: 25%; } + .columns.is-mobile > .column.is-4 { + flex: none; + width: 33.3333333333%; } + .columns.is-mobile > .column.is-offset-4 { + margin-left: 33.3333333333%; } + .columns.is-mobile > .column.is-5 { + flex: none; + width: 41.6666666667%; } + .columns.is-mobile > .column.is-offset-5 { + margin-left: 41.6666666667%; } + .columns.is-mobile > .column.is-6 { + flex: none; + width: 50%; } + .columns.is-mobile > .column.is-offset-6 { + margin-left: 50%; } + .columns.is-mobile > .column.is-7 { + flex: none; + width: 58.3333333333%; } + .columns.is-mobile > .column.is-offset-7 { + margin-left: 58.3333333333%; } + .columns.is-mobile > .column.is-8 { + flex: none; + width: 66.6666666667%; } + .columns.is-mobile > .column.is-offset-8 { + margin-left: 66.6666666667%; } + .columns.is-mobile > .column.is-9 { + flex: none; + width: 75%; } + .columns.is-mobile > .column.is-offset-9 { + margin-left: 75%; } + .columns.is-mobile > .column.is-10 { + flex: none; + width: 83.3333333333%; } + .columns.is-mobile > .column.is-offset-10 { + margin-left: 83.3333333333%; } + .columns.is-mobile > .column.is-11 { + flex: none; + width: 91.6666666667%; } + .columns.is-mobile > .column.is-offset-11 { + margin-left: 91.6666666667%; } + .columns.is-mobile > .column.is-12 { + flex: none; + width: 100%; } + .columns.is-mobile > .column.is-offset-12 { + margin-left: 100%; } + @media screen and (max-width: 768px) { + .column.is-narrow-mobile { + flex: none; } + .column.is-full-mobile { + flex: none; + width: 100%; } + .column.is-three-quarters-mobile { + flex: none; + width: 75%; } + .column.is-two-thirds-mobile { + flex: none; + width: 66.6666%; } + .column.is-half-mobile { + flex: none; + width: 50%; } + .column.is-one-third-mobile { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-mobile { + flex: none; + width: 25%; } + .column.is-one-fifth-mobile { + flex: none; + width: 20%; } + .column.is-two-fifths-mobile { + flex: none; + width: 40%; } + .column.is-three-fifths-mobile { + flex: none; + width: 60%; } + .column.is-four-fifths-mobile { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-mobile { + margin-left: 75%; } + .column.is-offset-two-thirds-mobile { + margin-left: 66.6666%; } + .column.is-offset-half-mobile { + margin-left: 50%; } + .column.is-offset-one-third-mobile { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-mobile { + margin-left: 25%; } + .column.is-offset-one-fifth-mobile { + margin-left: 20%; } + .column.is-offset-two-fifths-mobile { + margin-left: 40%; } + .column.is-offset-three-fifths-mobile { + margin-left: 60%; } + .column.is-offset-four-fifths-mobile { + margin-left: 80%; } + .column.is-0-mobile { + flex: none; + width: 0%; } + .column.is-offset-0-mobile { + margin-left: 0%; } + .column.is-1-mobile { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-mobile { + margin-left: 8.3333333333%; } + .column.is-2-mobile { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-mobile { + margin-left: 16.6666666667%; } + .column.is-3-mobile { + flex: none; + width: 25%; } + .column.is-offset-3-mobile { + margin-left: 25%; } + .column.is-4-mobile { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-mobile { + margin-left: 33.3333333333%; } + .column.is-5-mobile { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-mobile { + margin-left: 41.6666666667%; } + .column.is-6-mobile { + flex: none; + width: 50%; } + .column.is-offset-6-mobile { + margin-left: 50%; } + .column.is-7-mobile { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-mobile { + margin-left: 58.3333333333%; } + .column.is-8-mobile { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-mobile { + margin-left: 66.6666666667%; } + .column.is-9-mobile { + flex: none; + width: 75%; } + .column.is-offset-9-mobile { + margin-left: 75%; } + .column.is-10-mobile { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-mobile { + margin-left: 83.3333333333%; } + .column.is-11-mobile { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-mobile { + margin-left: 91.6666666667%; } + .column.is-12-mobile { + flex: none; + width: 100%; } + .column.is-offset-12-mobile { + margin-left: 100%; } } + @media screen and (min-width: 769px), print { + .column.is-narrow, .column.is-narrow-tablet { + flex: none; } + .column.is-full, .column.is-full-tablet { + flex: none; + width: 100%; } + .column.is-three-quarters, .column.is-three-quarters-tablet { + flex: none; + width: 75%; } + .column.is-two-thirds, .column.is-two-thirds-tablet { + flex: none; + width: 66.6666%; } + .column.is-half, .column.is-half-tablet { + flex: none; + width: 50%; } + .column.is-one-third, .column.is-one-third-tablet { + flex: none; + width: 33.3333%; } + .column.is-one-quarter, .column.is-one-quarter-tablet { + flex: none; + width: 25%; } + .column.is-one-fifth, .column.is-one-fifth-tablet { + flex: none; + width: 20%; } + .column.is-two-fifths, .column.is-two-fifths-tablet { + flex: none; + width: 40%; } + .column.is-three-fifths, .column.is-three-fifths-tablet { + flex: none; + width: 60%; } + .column.is-four-fifths, .column.is-four-fifths-tablet { + flex: none; + width: 80%; } + .column.is-offset-three-quarters, .column.is-offset-three-quarters-tablet { + margin-left: 75%; } + .column.is-offset-two-thirds, .column.is-offset-two-thirds-tablet { + margin-left: 66.6666%; } + .column.is-offset-half, .column.is-offset-half-tablet { + margin-left: 50%; } + .column.is-offset-one-third, .column.is-offset-one-third-tablet { + margin-left: 33.3333%; } + .column.is-offset-one-quarter, .column.is-offset-one-quarter-tablet { + margin-left: 25%; } + .column.is-offset-one-fifth, .column.is-offset-one-fifth-tablet { + margin-left: 20%; } + .column.is-offset-two-fifths, .column.is-offset-two-fifths-tablet { + margin-left: 40%; } + .column.is-offset-three-fifths, .column.is-offset-three-fifths-tablet { + margin-left: 60%; } + .column.is-offset-four-fifths, .column.is-offset-four-fifths-tablet { + margin-left: 80%; } + .column.is-0, .column.is-0-tablet { + flex: none; + width: 0%; } + .column.is-offset-0, .column.is-offset-0-tablet { + margin-left: 0%; } + .column.is-1, .column.is-1-tablet { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1, .column.is-offset-1-tablet { + margin-left: 8.3333333333%; } + .column.is-2, .column.is-2-tablet { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2, .column.is-offset-2-tablet { + margin-left: 16.6666666667%; } + .column.is-3, .column.is-3-tablet { + flex: none; + width: 25%; } + .column.is-offset-3, .column.is-offset-3-tablet { + margin-left: 25%; } + .column.is-4, .column.is-4-tablet { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4, .column.is-offset-4-tablet { + margin-left: 33.3333333333%; } + .column.is-5, .column.is-5-tablet { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5, .column.is-offset-5-tablet { + margin-left: 41.6666666667%; } + .column.is-6, .column.is-6-tablet { + flex: none; + width: 50%; } + .column.is-offset-6, .column.is-offset-6-tablet { + margin-left: 50%; } + .column.is-7, .column.is-7-tablet { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7, .column.is-offset-7-tablet { + margin-left: 58.3333333333%; } + .column.is-8, .column.is-8-tablet { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8, .column.is-offset-8-tablet { + margin-left: 66.6666666667%; } + .column.is-9, .column.is-9-tablet { + flex: none; + width: 75%; } + .column.is-offset-9, .column.is-offset-9-tablet { + margin-left: 75%; } + .column.is-10, .column.is-10-tablet { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10, .column.is-offset-10-tablet { + margin-left: 83.3333333333%; } + .column.is-11, .column.is-11-tablet { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11, .column.is-offset-11-tablet { + margin-left: 91.6666666667%; } + .column.is-12, .column.is-12-tablet { + flex: none; + width: 100%; } + .column.is-offset-12, .column.is-offset-12-tablet { + margin-left: 100%; } } + @media screen and (max-width: 1055px) { + .column.is-narrow-touch { + flex: none; } + .column.is-full-touch { + flex: none; + width: 100%; } + .column.is-three-quarters-touch { + flex: none; + width: 75%; } + .column.is-two-thirds-touch { + flex: none; + width: 66.6666%; } + .column.is-half-touch { + flex: none; + width: 50%; } + .column.is-one-third-touch { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-touch { + flex: none; + width: 25%; } + .column.is-one-fifth-touch { + flex: none; + width: 20%; } + .column.is-two-fifths-touch { + flex: none; + width: 40%; } + .column.is-three-fifths-touch { + flex: none; + width: 60%; } + .column.is-four-fifths-touch { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-touch { + margin-left: 75%; } + .column.is-offset-two-thirds-touch { + margin-left: 66.6666%; } + .column.is-offset-half-touch { + margin-left: 50%; } + .column.is-offset-one-third-touch { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-touch { + margin-left: 25%; } + .column.is-offset-one-fifth-touch { + margin-left: 20%; } + .column.is-offset-two-fifths-touch { + margin-left: 40%; } + .column.is-offset-three-fifths-touch { + margin-left: 60%; } + .column.is-offset-four-fifths-touch { + margin-left: 80%; } + .column.is-0-touch { + flex: none; + width: 0%; } + .column.is-offset-0-touch { + margin-left: 0%; } + .column.is-1-touch { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-touch { + margin-left: 8.3333333333%; } + .column.is-2-touch { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-touch { + margin-left: 16.6666666667%; } + .column.is-3-touch { + flex: none; + width: 25%; } + .column.is-offset-3-touch { + margin-left: 25%; } + .column.is-4-touch { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-touch { + margin-left: 33.3333333333%; } + .column.is-5-touch { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-touch { + margin-left: 41.6666666667%; } + .column.is-6-touch { + flex: none; + width: 50%; } + .column.is-offset-6-touch { + margin-left: 50%; } + .column.is-7-touch { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-touch { + margin-left: 58.3333333333%; } + .column.is-8-touch { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-touch { + margin-left: 66.6666666667%; } + .column.is-9-touch { + flex: none; + width: 75%; } + .column.is-offset-9-touch { + margin-left: 75%; } + .column.is-10-touch { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-touch { + margin-left: 83.3333333333%; } + .column.is-11-touch { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-touch { + margin-left: 91.6666666667%; } + .column.is-12-touch { + flex: none; + width: 100%; } + .column.is-offset-12-touch { + margin-left: 100%; } } + @media screen and (min-width: 1056px) { + .column.is-narrow-desktop { + flex: none; } + .column.is-full-desktop { + flex: none; + width: 100%; } + .column.is-three-quarters-desktop { + flex: none; + width: 75%; } + .column.is-two-thirds-desktop { + flex: none; + width: 66.6666%; } + .column.is-half-desktop { + flex: none; + width: 50%; } + .column.is-one-third-desktop { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-desktop { + flex: none; + width: 25%; } + .column.is-one-fifth-desktop { + flex: none; + width: 20%; } + .column.is-two-fifths-desktop { + flex: none; + width: 40%; } + .column.is-three-fifths-desktop { + flex: none; + width: 60%; } + .column.is-four-fifths-desktop { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-desktop { + margin-left: 75%; } + .column.is-offset-two-thirds-desktop { + margin-left: 66.6666%; } + .column.is-offset-half-desktop { + margin-left: 50%; } + .column.is-offset-one-third-desktop { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-desktop { + margin-left: 25%; } + .column.is-offset-one-fifth-desktop { + margin-left: 20%; } + .column.is-offset-two-fifths-desktop { + margin-left: 40%; } + .column.is-offset-three-fifths-desktop { + margin-left: 60%; } + .column.is-offset-four-fifths-desktop { + margin-left: 80%; } + .column.is-0-desktop { + flex: none; + width: 0%; } + .column.is-offset-0-desktop { + margin-left: 0%; } + .column.is-1-desktop { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-desktop { + margin-left: 8.3333333333%; } + .column.is-2-desktop { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-desktop { + margin-left: 16.6666666667%; } + .column.is-3-desktop { + flex: none; + width: 25%; } + .column.is-offset-3-desktop { + margin-left: 25%; } + .column.is-4-desktop { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-desktop { + margin-left: 33.3333333333%; } + .column.is-5-desktop { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-desktop { + margin-left: 41.6666666667%; } + .column.is-6-desktop { + flex: none; + width: 50%; } + .column.is-offset-6-desktop { + margin-left: 50%; } + .column.is-7-desktop { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-desktop { + margin-left: 58.3333333333%; } + .column.is-8-desktop { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-desktop { + margin-left: 66.6666666667%; } + .column.is-9-desktop { + flex: none; + width: 75%; } + .column.is-offset-9-desktop { + margin-left: 75%; } + .column.is-10-desktop { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-desktop { + margin-left: 83.3333333333%; } + .column.is-11-desktop { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-desktop { + margin-left: 91.6666666667%; } + .column.is-12-desktop { + flex: none; + width: 100%; } + .column.is-offset-12-desktop { + margin-left: 100%; } } + @media screen and (min-width: 1216px) { + .column.is-narrow-widescreen { + flex: none; } + .column.is-full-widescreen { + flex: none; + width: 100%; } + .column.is-three-quarters-widescreen { + flex: none; + width: 75%; } + .column.is-two-thirds-widescreen { + flex: none; + width: 66.6666%; } + .column.is-half-widescreen { + flex: none; + width: 50%; } + .column.is-one-third-widescreen { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-widescreen { + flex: none; + width: 25%; } + .column.is-one-fifth-widescreen { + flex: none; + width: 20%; } + .column.is-two-fifths-widescreen { + flex: none; + width: 40%; } + .column.is-three-fifths-widescreen { + flex: none; + width: 60%; } + .column.is-four-fifths-widescreen { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-widescreen { + margin-left: 75%; } + .column.is-offset-two-thirds-widescreen { + margin-left: 66.6666%; } + .column.is-offset-half-widescreen { + margin-left: 50%; } + .column.is-offset-one-third-widescreen { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-widescreen { + margin-left: 25%; } + .column.is-offset-one-fifth-widescreen { + margin-left: 20%; } + .column.is-offset-two-fifths-widescreen { + margin-left: 40%; } + .column.is-offset-three-fifths-widescreen { + margin-left: 60%; } + .column.is-offset-four-fifths-widescreen { + margin-left: 80%; } + .column.is-0-widescreen { + flex: none; + width: 0%; } + .column.is-offset-0-widescreen { + margin-left: 0%; } + .column.is-1-widescreen { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-widescreen { + margin-left: 8.3333333333%; } + .column.is-2-widescreen { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-widescreen { + margin-left: 16.6666666667%; } + .column.is-3-widescreen { + flex: none; + width: 25%; } + .column.is-offset-3-widescreen { + margin-left: 25%; } + .column.is-4-widescreen { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-widescreen { + margin-left: 33.3333333333%; } + .column.is-5-widescreen { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-widescreen { + margin-left: 41.6666666667%; } + .column.is-6-widescreen { + flex: none; + width: 50%; } + .column.is-offset-6-widescreen { + margin-left: 50%; } + .column.is-7-widescreen { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-widescreen { + margin-left: 58.3333333333%; } + .column.is-8-widescreen { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-widescreen { + margin-left: 66.6666666667%; } + .column.is-9-widescreen { + flex: none; + width: 75%; } + .column.is-offset-9-widescreen { + margin-left: 75%; } + .column.is-10-widescreen { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-widescreen { + margin-left: 83.3333333333%; } + .column.is-11-widescreen { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-widescreen { + margin-left: 91.6666666667%; } + .column.is-12-widescreen { + flex: none; + width: 100%; } + .column.is-offset-12-widescreen { + margin-left: 100%; } } + @media screen and (min-width: 1408px) { + .column.is-narrow-fullhd { + flex: none; } + .column.is-full-fullhd { + flex: none; + width: 100%; } + .column.is-three-quarters-fullhd { + flex: none; + width: 75%; } + .column.is-two-thirds-fullhd { + flex: none; + width: 66.6666%; } + .column.is-half-fullhd { + flex: none; + width: 50%; } + .column.is-one-third-fullhd { + flex: none; + width: 33.3333%; } + .column.is-one-quarter-fullhd { + flex: none; + width: 25%; } + .column.is-one-fifth-fullhd { + flex: none; + width: 20%; } + .column.is-two-fifths-fullhd { + flex: none; + width: 40%; } + .column.is-three-fifths-fullhd { + flex: none; + width: 60%; } + .column.is-four-fifths-fullhd { + flex: none; + width: 80%; } + .column.is-offset-three-quarters-fullhd { + margin-left: 75%; } + .column.is-offset-two-thirds-fullhd { + margin-left: 66.6666%; } + .column.is-offset-half-fullhd { + margin-left: 50%; } + .column.is-offset-one-third-fullhd { + margin-left: 33.3333%; } + .column.is-offset-one-quarter-fullhd { + margin-left: 25%; } + .column.is-offset-one-fifth-fullhd { + margin-left: 20%; } + .column.is-offset-two-fifths-fullhd { + margin-left: 40%; } + .column.is-offset-three-fifths-fullhd { + margin-left: 60%; } + .column.is-offset-four-fifths-fullhd { + margin-left: 80%; } + .column.is-0-fullhd { + flex: none; + width: 0%; } + .column.is-offset-0-fullhd { + margin-left: 0%; } + .column.is-1-fullhd { + flex: none; + width: 8.3333333333%; } + .column.is-offset-1-fullhd { + margin-left: 8.3333333333%; } + .column.is-2-fullhd { + flex: none; + width: 16.6666666667%; } + .column.is-offset-2-fullhd { + margin-left: 16.6666666667%; } + .column.is-3-fullhd { + flex: none; + width: 25%; } + .column.is-offset-3-fullhd { + margin-left: 25%; } + .column.is-4-fullhd { + flex: none; + width: 33.3333333333%; } + .column.is-offset-4-fullhd { + margin-left: 33.3333333333%; } + .column.is-5-fullhd { + flex: none; + width: 41.6666666667%; } + .column.is-offset-5-fullhd { + margin-left: 41.6666666667%; } + .column.is-6-fullhd { + flex: none; + width: 50%; } + .column.is-offset-6-fullhd { + margin-left: 50%; } + .column.is-7-fullhd { + flex: none; + width: 58.3333333333%; } + .column.is-offset-7-fullhd { + margin-left: 58.3333333333%; } + .column.is-8-fullhd { + flex: none; + width: 66.6666666667%; } + .column.is-offset-8-fullhd { + margin-left: 66.6666666667%; } + .column.is-9-fullhd { + flex: none; + width: 75%; } + .column.is-offset-9-fullhd { + margin-left: 75%; } + .column.is-10-fullhd { + flex: none; + width: 83.3333333333%; } + .column.is-offset-10-fullhd { + margin-left: 83.3333333333%; } + .column.is-11-fullhd { + flex: none; + width: 91.6666666667%; } + .column.is-offset-11-fullhd { + margin-left: 91.6666666667%; } + .column.is-12-fullhd { + flex: none; + width: 100%; } + .column.is-offset-12-fullhd { + margin-left: 100%; } } +.columns { + margin-left: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + .columns:last-child { + margin-bottom: -0.75rem; } + .columns:not(:last-child) { + margin-bottom: calc(1.5rem - 0.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: 0.25rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-1-mobile { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-1-tablet { + --columnGap: 0.25rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-1-tablet-only { + --columnGap: 0.25rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-1-touch { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-1-desktop { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-1-desktop-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-1-widescreen { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-1-widescreen-only { + --columnGap: 0.25rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-1-fullhd { + --columnGap: 0.25rem; } } + .columns.is-variable.is-2 { + --columnGap: 0.5rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-2-mobile { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-2-tablet { + --columnGap: 0.5rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-2-tablet-only { + --columnGap: 0.5rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-2-touch { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-2-desktop { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-2-desktop-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-2-widescreen { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-2-widescreen-only { + --columnGap: 0.5rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-2-fullhd { + --columnGap: 0.5rem; } } + .columns.is-variable.is-3 { + --columnGap: 0.75rem; } + @media screen and (max-width: 768px) { + .columns.is-variable.is-3-mobile { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px), print { + .columns.is-variable.is-3-tablet { + --columnGap: 0.75rem; } } + @media screen and (min-width: 769px) and (max-width: 1055px) { + .columns.is-variable.is-3-tablet-only { + --columnGap: 0.75rem; } } + @media screen and (max-width: 1055px) { + .columns.is-variable.is-3-touch { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) { + .columns.is-variable.is-3-desktop { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1056px) and (max-width: 1215px) { + .columns.is-variable.is-3-desktop-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) { + .columns.is-variable.is-3-widescreen { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1216px) and (max-width: 1407px) { + .columns.is-variable.is-3-widescreen-only { + --columnGap: 0.75rem; } } + @media screen and (min-width: 1408px) { + .columns.is-variable.is-3-fullhd { + --columnGap: 0.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: -0.75rem; + margin-right: -0.75rem; + margin-top: -0.75rem; } + .tile.is-ancestor:last-child { + margin-bottom: -0.75rem; } + .tile.is-ancestor:not(:last-child) { + margin-bottom: 0.75rem; } + .tile.is-child { + margin: 0 !important; } + .tile.is-parent { + padding: 0.75rem; } + .tile.is-vertical { + flex-direction: column; } + .tile.is-vertical > .tile.is-child:not(:last-child) { + margin-bottom: 1.5rem !important; } + @media screen and (min-width: 769px), print { + .tile:not(.is-child) { + display: flex; } + .tile.is-1 { + flex: none; + width: 8.3333333333%; } + .tile.is-2 { + flex: none; + width: 16.6666666667%; } + .tile.is-3 { + flex: none; + width: 25%; } + .tile.is-4 { + flex: none; + width: 33.3333333333%; } + .tile.is-5 { + flex: none; + width: 41.6666666667%; } + .tile.is-6 { + flex: none; + width: 50%; } + .tile.is-7 { + flex: none; + width: 58.3333333333%; } + .tile.is-8 { + flex: none; + width: 66.6666666667%; } + .tile.is-9 { + flex: none; + width: 75%; } + .tile.is-10 { + flex: none; + width: 83.3333333333%; } + .tile.is-11 { + flex: none; + width: 91.6666666667%; } + .tile.is-12 { + flex: none; + width: 100%; } } +.hero { + align-items: stretch; + display: flex; + flex-direction: column; + justify-content: space-between; } + .hero .navbar { + background: none; } + .hero .tabs ul { + border-bottom: none; } + .hero.is-white { + background-color: white; + 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: white; } } + .hero.is-white .navbar-item, + .hero.is-white .navbar-link { + color: rgba(10, 10, 10, 0.7); } + .hero.is-white a.navbar-item:hover, .hero.is-white a.navbar-item.is-active, + .hero.is-white .navbar-link:hover, + .hero.is-white .navbar-link.is-active { + background-color: #f2f2f2; + color: #0a0a0a; } + .hero.is-white .tabs a { + color: #0a0a0a; + opacity: 0.9; } + .hero.is-white .tabs a:hover { + opacity: 1; } + .hero.is-white .tabs li.is-active a { + opacity: 1; } + .hero.is-white .tabs.is-boxed a, .hero.is-white .tabs.is-toggle a { + color: #0a0a0a; } + .hero.is-white .tabs.is-boxed a:hover, .hero.is-white .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-white .tabs.is-boxed li.is-active a, .hero.is-white .tabs.is-boxed li.is-active a:hover, .hero.is-white .tabs.is-toggle li.is-active a, .hero.is-white .tabs.is-toggle li.is-active a:hover { + background-color: #0a0a0a; + border-color: #0a0a0a; + color: white; } + .hero.is-white.is-bold { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } + @media screen and (max-width: 768px) { + .hero.is-white.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #e8e3e4 0%, white 71%, white 100%); } } + .hero.is-black { + background-color: #0a0a0a; + color: white; } + .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: white; } + .hero.is-black .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-black .subtitle a:not(.button), + .hero.is-black .subtitle strong { + color: white; } + @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: black; + color: white; } + .hero.is-black .tabs a { + color: white; + opacity: 0.9; } + .hero.is-black .tabs a:hover { + opacity: 1; } + .hero.is-black .tabs li.is-active a { + opacity: 1; } + .hero.is-black .tabs.is-boxed a, .hero.is-black .tabs.is-toggle a { + color: white; } + .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: white; + border-color: white; + color: #0a0a0a; } + .hero.is-black.is-bold { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } + @media screen and (max-width: 768px) { + .hero.is-black.is-bold .navbar-menu { + background-image: linear-gradient(141deg, black 0%, #0a0a0a 71%, #181616 100%); } } + .hero.is-light { + background-color: whitesmoke; + color: #363636; } + .hero.is-light a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-light strong { + color: inherit; } + .hero.is-light .title { + color: #363636; } + .hero.is-light .subtitle { + color: rgba(54, 54, 54, 0.9); } + .hero.is-light .subtitle a:not(.button), + .hero.is-light .subtitle strong { + color: #363636; } + @media screen and (max-width: 1055px) { + .hero.is-light .navbar-menu { + background-color: whitesmoke; } } + .hero.is-light .navbar-item, + .hero.is-light .navbar-link { + color: rgba(54, 54, 54, 0.7); } + .hero.is-light a.navbar-item:hover, .hero.is-light a.navbar-item.is-active, + .hero.is-light .navbar-link:hover, + .hero.is-light .navbar-link.is-active { + background-color: #e8e8e8; + color: #363636; } + .hero.is-light .tabs a { + color: #363636; + opacity: 0.9; } + .hero.is-light .tabs a:hover { + opacity: 1; } + .hero.is-light .tabs li.is-active a { + opacity: 1; } + .hero.is-light .tabs.is-boxed a, .hero.is-light .tabs.is-toggle a { + color: #363636; } + .hero.is-light .tabs.is-boxed a:hover, .hero.is-light .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-light .tabs.is-boxed li.is-active a, .hero.is-light .tabs.is-boxed li.is-active a:hover, .hero.is-light .tabs.is-toggle li.is-active a, .hero.is-light .tabs.is-toggle li.is-active a:hover { + background-color: #363636; + border-color: #363636; + color: whitesmoke; } + .hero.is-light.is-bold { + background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } + @media screen and (max-width: 768px) { + .hero.is-light.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #dfd8d9 0%, whitesmoke 71%, white 100%); } } + .hero.is-dark, .content kbd.hero { + background-color: #363636; + color: whitesmoke; } + .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: whitesmoke; } + .hero.is-dark .subtitle, .content kbd.hero .subtitle { + color: rgba(245, 245, 245, 0.9); } + .hero.is-dark .subtitle a:not(.button), .content kbd.hero .subtitle a:not(.button), + .hero.is-dark .subtitle strong, + .content kbd.hero .subtitle strong { + color: whitesmoke; } + @media screen and (max-width: 1055px) { + .hero.is-dark .navbar-menu, .content kbd.hero .navbar-menu { + background-color: #363636; } } + .hero.is-dark .navbar-item, .content kbd.hero .navbar-item, + .hero.is-dark .navbar-link, + .content kbd.hero .navbar-link { + color: rgba(245, 245, 245, 0.7); } + .hero.is-dark a.navbar-item:hover, .content kbd.hero a.navbar-item:hover, .hero.is-dark a.navbar-item.is-active, .content kbd.hero a.navbar-item.is-active, + .hero.is-dark .navbar-link:hover, + .content kbd.hero .navbar-link:hover, + .hero.is-dark .navbar-link.is-active, + .content kbd.hero .navbar-link.is-active { + background-color: #292929; + color: whitesmoke; } + .hero.is-dark .tabs a, .content kbd.hero .tabs a { + color: whitesmoke; + opacity: 0.9; } + .hero.is-dark .tabs a:hover, .content kbd.hero .tabs a:hover { + opacity: 1; } + .hero.is-dark .tabs li.is-active a, .content kbd.hero .tabs li.is-active a { + opacity: 1; } + .hero.is-dark .tabs.is-boxed a, .content kbd.hero .tabs.is-boxed a, .hero.is-dark .tabs.is-toggle a, .content kbd.hero .tabs.is-toggle a { + color: whitesmoke; } + .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: whitesmoke; + border-color: whitesmoke; + color: #363636; } + .hero.is-dark.is-bold, .content kbd.hero.is-bold { + background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); } + @media screen and (max-width: 768px) { + .hero.is-dark.is-bold .navbar-menu, .content kbd.hero.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #1f191a 0%, #363636 71%, #46403f 100%); } } + .hero.is-primary, .docstring > section > a.hero.docs-sourcelink { + background-color: #4eb5de; + color: #fff; } + .hero.is-primary a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), .docstring > section > a.hero.docs-sourcelink a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-primary strong, + .docstring > section > a.hero.docs-sourcelink strong { + color: inherit; } + .hero.is-primary .title, .docstring > section > a.hero.docs-sourcelink .title { + color: #fff; } + .hero.is-primary .subtitle, .docstring > section > a.hero.docs-sourcelink .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-primary .subtitle a:not(.button), .docstring > section > a.hero.docs-sourcelink .subtitle a:not(.button), + .hero.is-primary .subtitle strong, + .docstring > section > a.hero.docs-sourcelink .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-primary .navbar-menu, .docstring > section > a.hero.docs-sourcelink .navbar-menu { + background-color: #4eb5de; } } + .hero.is-primary .navbar-item, .docstring > section > a.hero.docs-sourcelink .navbar-item, + .hero.is-primary .navbar-link, + .docstring > section > a.hero.docs-sourcelink .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-primary a.navbar-item:hover, .docstring > section > a.hero.docs-sourcelink a.navbar-item:hover, .hero.is-primary a.navbar-item.is-active, .docstring > section > a.hero.docs-sourcelink a.navbar-item.is-active, + .hero.is-primary .navbar-link:hover, + .docstring > section > a.hero.docs-sourcelink .navbar-link:hover, + .hero.is-primary .navbar-link.is-active, + .docstring > section > a.hero.docs-sourcelink .navbar-link.is-active { + background-color: #39acda; + color: #fff; } + .hero.is-primary .tabs a, .docstring > section > a.hero.docs-sourcelink .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-primary .tabs a:hover, .docstring > section > a.hero.docs-sourcelink .tabs a:hover { + opacity: 1; } + .hero.is-primary .tabs li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs li.is-active a { + opacity: 1; } + .hero.is-primary .tabs.is-boxed a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a, .hero.is-primary .tabs.is-toggle a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a { + color: #fff; } + .hero.is-primary .tabs.is-boxed a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed a:hover, .hero.is-primary .tabs.is-toggle a:hover, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-primary .tabs.is-boxed li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-boxed li.is-active a, .hero.is-primary .tabs.is-boxed li.is-active a:hover, .hero.is-primary .tabs.is-toggle li.is-active a, .docstring > section > a.hero.docs-sourcelink .tabs.is-toggle li.is-active a, .hero.is-primary .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #4eb5de; } + .hero.is-primary.is-bold, .docstring > section > a.hero.is-bold.docs-sourcelink { + background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); } + @media screen and (max-width: 768px) { + .hero.is-primary.is-bold .navbar-menu, .docstring > section > a.hero.is-bold.docs-sourcelink .navbar-menu { + background-image: linear-gradient(141deg, #1bc7de 0%, #4eb5de 71%, #5fa9e7 100%); } } + .hero.is-link { + background-color: #2e63b8; + color: #fff; } + .hero.is-link a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-link strong { + color: inherit; } + .hero.is-link .title { + color: #fff; } + .hero.is-link .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-link .subtitle a:not(.button), + .hero.is-link .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-link .navbar-menu { + background-color: #2e63b8; } } + .hero.is-link .navbar-item, + .hero.is-link .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-link a.navbar-item:hover, .hero.is-link a.navbar-item.is-active, + .hero.is-link .navbar-link:hover, + .hero.is-link .navbar-link.is-active { + background-color: #2958a4; + color: #fff; } + .hero.is-link .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-link .tabs a:hover { + opacity: 1; } + .hero.is-link .tabs li.is-active a { + opacity: 1; } + .hero.is-link .tabs.is-boxed a, .hero.is-link .tabs.is-toggle a { + color: #fff; } + .hero.is-link .tabs.is-boxed a:hover, .hero.is-link .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-link .tabs.is-boxed li.is-active a, .hero.is-link .tabs.is-boxed li.is-active a:hover, .hero.is-link .tabs.is-toggle li.is-active a, .hero.is-link .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #2e63b8; } + .hero.is-link.is-bold { + background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); } + @media screen and (max-width: 768px) { + .hero.is-link.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #1b6098 0%, #2e63b8 71%, #2d51d2 100%); } } + .hero.is-info { + background-color: #209cee; + color: #fff; } + .hero.is-info a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-info strong { + color: inherit; } + .hero.is-info .title { + color: #fff; } + .hero.is-info .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-info .subtitle a:not(.button), + .hero.is-info .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-info .navbar-menu { + background-color: #209cee; } } + .hero.is-info .navbar-item, + .hero.is-info .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-info a.navbar-item:hover, .hero.is-info a.navbar-item.is-active, + .hero.is-info .navbar-link:hover, + .hero.is-info .navbar-link.is-active { + background-color: #1190e3; + color: #fff; } + .hero.is-info .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-info .tabs a:hover { + opacity: 1; } + .hero.is-info .tabs li.is-active a { + opacity: 1; } + .hero.is-info .tabs.is-boxed a, .hero.is-info .tabs.is-toggle a { + color: #fff; } + .hero.is-info .tabs.is-boxed a:hover, .hero.is-info .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-info .tabs.is-boxed li.is-active a, .hero.is-info .tabs.is-boxed li.is-active a:hover, .hero.is-info .tabs.is-toggle li.is-active a, .hero.is-info .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #209cee; } + .hero.is-info.is-bold { + background-image: linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%); } + @media screen and (max-width: 768px) { + .hero.is-info.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #05a6d6 0%, #209cee 71%, #3287f5 100%); } } + .hero.is-success { + background-color: #22c35b; + color: #fff; } + .hero.is-success a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-success strong { + color: inherit; } + .hero.is-success .title { + color: #fff; } + .hero.is-success .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-success .subtitle a:not(.button), + .hero.is-success .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-success .navbar-menu { + background-color: #22c35b; } } + .hero.is-success .navbar-item, + .hero.is-success .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-success a.navbar-item:hover, .hero.is-success a.navbar-item.is-active, + .hero.is-success .navbar-link:hover, + .hero.is-success .navbar-link.is-active { + background-color: #1ead51; + color: #fff; } + .hero.is-success .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-success .tabs a:hover { + opacity: 1; } + .hero.is-success .tabs li.is-active a { + opacity: 1; } + .hero.is-success .tabs.is-boxed a, .hero.is-success .tabs.is-toggle a { + color: #fff; } + .hero.is-success .tabs.is-boxed a:hover, .hero.is-success .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-success .tabs.is-boxed li.is-active a, .hero.is-success .tabs.is-boxed li.is-active a:hover, .hero.is-success .tabs.is-toggle li.is-active a, .hero.is-success .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #22c35b; } + .hero.is-success.is-bold { + background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); } + @media screen and (max-width: 768px) { + .hero.is-success.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #12a02c 0%, #22c35b 71%, #1fdf83 100%); } } + .hero.is-warning { + background-color: #ffdd57; + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-warning strong { + color: inherit; } + .hero.is-warning .title { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .subtitle { + color: rgba(0, 0, 0, 0.9); } + .hero.is-warning .subtitle a:not(.button), + .hero.is-warning .subtitle strong { + color: rgba(0, 0, 0, 0.7); } + @media screen and (max-width: 1055px) { + .hero.is-warning .navbar-menu { + background-color: #ffdd57; } } + .hero.is-warning .navbar-item, + .hero.is-warning .navbar-link { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning a.navbar-item:hover, .hero.is-warning a.navbar-item.is-active, + .hero.is-warning .navbar-link:hover, + .hero.is-warning .navbar-link.is-active { + background-color: #ffd83e; + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .tabs a { + color: rgba(0, 0, 0, 0.7); + opacity: 0.9; } + .hero.is-warning .tabs a:hover { + opacity: 1; } + .hero.is-warning .tabs li.is-active a { + opacity: 1; } + .hero.is-warning .tabs.is-boxed a, .hero.is-warning .tabs.is-toggle a { + color: rgba(0, 0, 0, 0.7); } + .hero.is-warning .tabs.is-boxed a:hover, .hero.is-warning .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-warning .tabs.is-boxed li.is-active a, .hero.is-warning .tabs.is-boxed li.is-active a:hover, .hero.is-warning .tabs.is-toggle li.is-active a, .hero.is-warning .tabs.is-toggle li.is-active a:hover { + background-color: rgba(0, 0, 0, 0.7); + border-color: rgba(0, 0, 0, 0.7); + color: #ffdd57; } + .hero.is-warning.is-bold { + background-image: linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%); } + @media screen and (max-width: 768px) { + .hero.is-warning.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #ffae24 0%, #ffdd57 71%, #fffa71 100%); } } + .hero.is-danger { + background-color: #da0b00; + color: #fff; } + .hero.is-danger a:not(.button):not(.dropdown-item):not(.tag):not(.pagination-link.is-current), + .hero.is-danger strong { + color: inherit; } + .hero.is-danger .title { + color: #fff; } + .hero.is-danger .subtitle { + color: rgba(255, 255, 255, 0.9); } + .hero.is-danger .subtitle a:not(.button), + .hero.is-danger .subtitle strong { + color: #fff; } + @media screen and (max-width: 1055px) { + .hero.is-danger .navbar-menu { + background-color: #da0b00; } } + .hero.is-danger .navbar-item, + .hero.is-danger .navbar-link { + color: rgba(255, 255, 255, 0.7); } + .hero.is-danger a.navbar-item:hover, .hero.is-danger a.navbar-item.is-active, + .hero.is-danger .navbar-link:hover, + .hero.is-danger .navbar-link.is-active { + background-color: #c10a00; + color: #fff; } + .hero.is-danger .tabs a { + color: #fff; + opacity: 0.9; } + .hero.is-danger .tabs a:hover { + opacity: 1; } + .hero.is-danger .tabs li.is-active a { + opacity: 1; } + .hero.is-danger .tabs.is-boxed a, .hero.is-danger .tabs.is-toggle a { + color: #fff; } + .hero.is-danger .tabs.is-boxed a:hover, .hero.is-danger .tabs.is-toggle a:hover { + background-color: rgba(10, 10, 10, 0.1); } + .hero.is-danger .tabs.is-boxed li.is-active a, .hero.is-danger .tabs.is-boxed li.is-active a:hover, .hero.is-danger .tabs.is-toggle li.is-active a, .hero.is-danger .tabs.is-toggle li.is-active a:hover { + background-color: #fff; + border-color: #fff; + color: #da0b00; } + .hero.is-danger.is-bold { + background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); } + @media screen and (max-width: 768px) { + .hero.is-danger.is-bold .navbar-menu { + background-image: linear-gradient(141deg, #a70013 0%, #da0b00 71%, #f43500 100%); } } + .hero.is-small .hero-body, #documenter .docs-sidebar form.docs-search > input.hero .hero-body { + padding-bottom: 1.5rem; + padding-top: 1.5rem; } + @media screen and (min-width: 769px), print { + .hero.is-medium .hero-body { + padding-bottom: 9rem; + padding-top: 9rem; } } + @media screen and (min-width: 769px), print { + .hero.is-large .hero-body { + padding-bottom: 18rem; + padding-top: 18rem; } } + .hero.is-halfheight .hero-body, .hero.is-fullheight .hero-body, .hero.is-fullheight-with-navbar .hero-body { + align-items: center; + display: flex; } + .hero.is-halfheight .hero-body > .container, .hero.is-fullheight .hero-body > .container, .hero.is-fullheight-with-navbar .hero-body > .container { + flex-grow: 1; + flex-shrink: 1; } + .hero.is-halfheight { + min-height: 50vh; } + .hero.is-fullheight { + min-height: 100vh; } + +.hero-video { + overflow: hidden; } + .hero-video video { + left: 50%; + min-height: 100%; + min-width: 100%; + position: absolute; + top: 50%; + transform: translate3d(-50%, -50%, 0); } + .hero-video.is-transparent { + opacity: 0.3; } + @media screen and (max-width: 768px) { + .hero-video { + display: none; } } +.hero-buttons { + margin-top: 1.5rem; } + @media screen and (max-width: 768px) { + .hero-buttons .button { + display: flex; } + .hero-buttons .button:not(:last-child) { + margin-bottom: 0.75rem; } } + @media screen and (min-width: 769px), print { + .hero-buttons { + display: flex; + justify-content: center; } + .hero-buttons .button:not(:last-child) { + margin-right: 1.5rem; } } +.hero-head, +.hero-foot { + flex-grow: 0; + flex-shrink: 0; } + +.hero-body { + flex-grow: 1; + flex-shrink: 0; + padding: 3rem 1.5rem; } + +.section { + padding: 3rem 1.5rem; } + @media screen and (min-width: 1056px) { + .section.is-medium { + padding: 9rem 1.5rem; } + .section.is-large { + padding: 18rem 1.5rem; } } +.footer { + background-color: #fafafa; + padding: 3rem 1.5rem 6rem; } + +h1 .docs-heading-anchor, h1 .docs-heading-anchor:hover, h1 .docs-heading-anchor:visited, h2 .docs-heading-anchor, h2 .docs-heading-anchor:hover, h2 .docs-heading-anchor:visited, h3 .docs-heading-anchor, h3 .docs-heading-anchor:hover, h3 .docs-heading-anchor:visited, h4 .docs-heading-anchor, h4 .docs-heading-anchor:hover, h4 .docs-heading-anchor:visited, h5 .docs-heading-anchor, h5 .docs-heading-anchor:hover, h5 .docs-heading-anchor:visited, h6 .docs-heading-anchor, h6 .docs-heading-anchor:hover, h6 .docs-heading-anchor:visited { + color: #222222; } + +h1 .docs-heading-anchor-permalink, h2 .docs-heading-anchor-permalink, h3 .docs-heading-anchor-permalink, h4 .docs-heading-anchor-permalink, h5 .docs-heading-anchor-permalink, h6 .docs-heading-anchor-permalink { + visibility: hidden; + vertical-align: middle; + margin-left: 0.5em; + font-size: 0.7rem; } + h1 .docs-heading-anchor-permalink::before, h2 .docs-heading-anchor-permalink::before, h3 .docs-heading-anchor-permalink::before, h4 .docs-heading-anchor-permalink::before, h5 .docs-heading-anchor-permalink::before, h6 .docs-heading-anchor-permalink::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f0c1"; } + +h1:hover .docs-heading-anchor-permalink, h2:hover .docs-heading-anchor-permalink, h3:hover .docs-heading-anchor-permalink, h4:hover .docs-heading-anchor-permalink, h5:hover .docs-heading-anchor-permalink, h6:hover .docs-heading-anchor-permalink { + visibility: visible; } + +.docs-dark-only { + display: none !important; } + +pre { + position: relative; + overflow: hidden; } + pre code, pre code.hljs { + padding: 0 0.75rem !important; + overflow: auto; + display: block; } + pre code:first-of-type, pre code.hljs:first-of-type { + padding-top: 0.5rem !important; } + pre code:last-of-type, pre code.hljs:last-of-type { + padding-bottom: 0.5rem !important; } + pre .copy-button { + opacity: 0.2; + transition: opacity 0.2s; + position: absolute; + right: 0em; + top: 0em; + padding: 0.5em; + width: 2.5em; + height: 2.5em; + background: transparent; + border: none; + font-family: "Font Awesome 5 Free"; + color: #222222; + 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: 0.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 0.75rem; + position: relative; } + .admonition-header:before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + margin-right: 0.75rem; + content: "\f06a"; } + +.admonition-body { + color: #222222; + padding: 0.5rem 0.75rem; } + .admonition-body pre { + background-color: whitesmoke; } + .admonition-body code { + background-color: rgba(0, 0, 0, 0.05); } + +.docstring { + margin-bottom: 1em; + background-color: transparent; + border: 1px solid #dbdbdb; + box-shadow: 2px 2px 3px rgba(10, 10, 10, 0.1); + max-width: 100%; } + .docstring > header { + display: flex; + flex-grow: 1; + align-items: stretch; + padding: 0.5rem 0.75rem; + background-color: whitesmoke; + box-shadow: 0 1px 2px rgba(10, 10, 10, 0.1); + box-shadow: none; + border-bottom: 1px solid #dbdbdb; } + .docstring > header code { + background-color: transparent; } + .docstring > header .docstring-binding { + margin-right: 0.3em; } + .docstring > header .docstring-category { + margin-left: 0.3em; } + .docstring > section { + position: relative; + padding: 0.75rem 0.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: 0.375rem; + bottom: 0.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: white; } + +.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: #222222; } + +.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: #222222; } + +.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; } + +/* This file contain the overall layout. + * + * The main container is
          that is identified by id #documenter. + */ +#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: white; + border-bottom: 1px solid #dbdbdb; + z-index: 2; + min-height: 4rem; + margin-bottom: 1rem; + display: flex; } + #documenter .docs-main header.docs-navbar .breadcrumb { + flex-grow: 1; } + #documenter .docs-main header.docs-navbar .docs-right { + display: flex; + white-space: nowrap; } + #documenter .docs-main header.docs-navbar .docs-right .docs-icon, #documenter .docs-main header.docs-navbar .docs-right .docs-label, #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + display: inline-block; } + #documenter .docs-main header.docs-navbar .docs-right .docs-label { + padding: 0; + margin-left: 0.3em; } + #documenter .docs-main header.docs-navbar .docs-right .docs-settings-button { + margin: auto 0 auto 1rem; } + #documenter .docs-main header.docs-navbar .docs-right .docs-sidebar-button { + font-size: 1.5rem; + margin: auto 0 auto 1rem; } + #documenter .docs-main header.docs-navbar > * { + margin: auto 0; } + @media screen and (max-width: 1055px) { + #documenter .docs-main header.docs-navbar { + position: sticky; + top: 0; + padding: 0 1rem; + /* For Headroom.js */ + transition-property: top, box-shadow; + -webkit-transition-property: top, box-shadow; + /* Safari */ + transition-duration: 0.3s; + -webkit-transition-duration: 0.3s; + /* Safari */ } + #documenter .docs-main header.docs-navbar.headroom--not-top { + box-shadow: 0.2rem 0rem 0.4rem #bbb; + transition-duration: 0.7s; + -webkit-transition-duration: 0.7s; + /* Safari */ } + #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; + /* Safari */ } } +#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: whitesmoke; + 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; + /* Setting up a nicer theme style for the scrollbar */ } + #documenter .docs-sidebar.visible { + left: 0; + box-shadow: 0.4rem 0rem 0.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; + /* Managing collapsible submenus */ } + #documenter .docs-sidebar ul.docs-menu > li > .tocitem { + font-weight: bold; } + #documenter .docs-sidebar ul.docs-menu > li li { + font-size: 0.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: 0.75rem; + margin-left: 1rem; + margin-top: auto; + margin-bottom: auto; } + #documenter .docs-sidebar ul.docs-menu label.tocitem .docs-chevron::before { + font-family: "Font Awesome 5 Free"; + font-weight: 900; + content: "\f054"; } + #documenter .docs-sidebar ul.docs-menu input:checked ~ label.tocitem .docs-chevron::before { + content: "\f078"; } + #documenter .docs-sidebar ul.docs-menu .tocitem { + display: block; + padding: 0.5rem 0.5rem; } + #documenter .docs-sidebar ul.docs-menu .tocitem, #documenter .docs-sidebar ul.docs-menu .tocitem:hover { + color: #0a0a0a; + background: whitesmoke; } + #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: white; } + #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem, #documenter .docs-sidebar ul.docs-menu li.is-active .tocitem:hover { + background-color: white; + 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: 0.85rem; + border-left: none; + margin-left: 0; + margin-top: 0.5rem; } + #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem { + width: 100%; + padding: 0; } + #documenter .docs-sidebar ul.docs-menu ul.internal .tocitem::before { + content: "⚬"; + margin-right: 0.4em; } + #documenter .docs-sidebar form.docs-search { + margin: auto; + margin-top: 0.5rem; + margin-bottom: 0.5rem; } + #documenter .docs-sidebar form.docs-search > input { + width: 14.4rem; } + @media screen and (min-width: 1056px) { + #documenter .docs-sidebar ul.docs-menu { + overflow-y: auto; + -webkit-overflow-scroll: touch; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar { + width: .3rem; + background: none; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb { + border-radius: 5px 0px 0px 5px; + background: #e0e0e0; } + #documenter .docs-sidebar ul.docs-menu::-webkit-scrollbar-thumb:hover { + background: #cccccc; } } + @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: #cccccc; } } +#documenter .docs-main #documenter-search-info { + margin-bottom: 1rem; } + +#documenter .docs-main #documenter-search-results { + list-style-type: circle; + list-style-position: outside; } + #documenter .docs-main #documenter-search-results li { + margin-left: 2rem; } + #documenter .docs-main #documenter-search-results .docs-highlight { + background-color: yellow; } + +.ansi span.sgr1 { + font-weight: bolder; } + +.ansi span.sgr2 { + font-weight: lighter; } + +.ansi span.sgr3 { + font-style: italic; } + +.ansi span.sgr4 { + text-decoration: underline; } + +.ansi span.sgr7 { + color: white; + background-color: #222222; } + +.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: whitesmoke; } + +.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: whitesmoke; } + +code.language-julia-repl > span.hljs-meta { + color: #066f00; + font-weight: bolder; } + +/*! + Theme: Default + Description: Original highlight.js style + Author: (c) Ivan Sagalaev + Maintainer: @highlightjs/core-team + Website: https://highlightjs.org/ + License: see project LICENSE + Touched: 2021 +*/ +/* +This is left on purpose making default.css the single file that can be lifted +as-is from the repository directly without the need for a build step + +Typically this "required" baseline CSS is added by `makestuff.js` during build. +*/ +pre code.hljs { + display: block; + overflow-x: auto; } + +code.hljs { + padding: 3px 5px; } + +/* end baseline CSS */ +.hljs { + background: #F0F0F0; + color: #444; } + +/* Base color: saturation 0; */ +.hljs-subst { + /* default */ } + +/* purposely ignored */ +.hljs-comment { + color: #888888; } + +.hljs-tag, +.hljs-punctuation { + color: #444a; } + +.hljs-tag .hljs-name, +.hljs-tag .hljs-attr { + color: #444; } + +.hljs-keyword, +.hljs-attribute, +.hljs-selector-tag, +.hljs-meta .hljs-keyword, +.hljs-doctag, +.hljs-name { + font-weight: bold; } + +/* User color: hue: 0 */ +.hljs-type, +.hljs-string, +.hljs-number, +.hljs-selector-id, +.hljs-selector-class, +.hljs-quote, +.hljs-template-tag, +.hljs-deletion { + color: #880000; } + +.hljs-title, +.hljs-section { + color: #880000; + font-weight: bold; } + +.hljs-regexp, +.hljs-symbol, +.hljs-variable, +.hljs-template-variable, +.hljs-link, +.hljs-selector-attr, +.hljs-operator, +.hljs-selector-pseudo { + color: #BC6060; } + +/* Language color: hue: 90; */ +.hljs-literal { + color: #78A960; } + +.hljs-built_in, +.hljs-bullet, +.hljs-code, +.hljs-addition { + color: #397300; } + +/* Meta color: hue: 200 */ +.hljs-meta { + color: #1f7199; } + +.hljs-meta .hljs-string { + color: #4d99bf; } + +/* Misc effects */ +.hljs-emphasis { + font-style: italic; } + +.hljs-strong { + font-weight: bold; } diff --git a/v0.5.0/assets/themeswap.js b/v0.5.0/assets/themeswap.js new file mode 100644 index 000000000..c58e993e3 --- /dev/null +++ b/v0.5.0/assets/themeswap.js @@ -0,0 +1,66 @@ +// Small function to quickly swap out themes. Gets put into the tag.. +function set_theme_from_local_storage() { + // Intialize the theme to null, which means default + var theme = null; + // If the browser supports the localstorage and is not disabled then try to get the + // documenter theme + if(window.localStorage != null) { + // Get the user-picked theme from localStorage. May be `null`, which means the default + // theme. + theme = window.localStorage.getItem("documenter-theme"); + } + // Check if the browser supports user color preference + var darkPreference = false; + // Check if the users preference is for dark color scheme + if(window.matchMedia('(prefers-color-scheme: dark)').matches === true) { + darkPreference = true; + } + // Initialize a few variables for the loop: + // + // - active: will contain the index of the theme that should be active. Note that there + // is no guarantee that localStorage contains sane values. If `active` stays `null` + // we either could not find the theme or it is the default (primary) theme anyway. + // Either way, we then need to stick to the primary theme. + // + // - disabled: style sheets that should be disabled (i.e. all the theme style sheets + // that are not the currently active theme) + var active = null; var disabled = []; var darkTheme = null; + for (var i = 0; i < document.styleSheets.length; i++) { + var ss = document.styleSheets[i]; + // The tag of each style sheet is expected to have a data-theme-name attribute + // which must contain the name of the theme. The names in localStorage much match this. + var themename = ss.ownerNode.getAttribute("data-theme-name"); + // attribute not set => non-theme stylesheet => ignore + if(themename === null) continue; + // To distinguish the default (primary) theme, it needs to have the data-theme-primary + // attribute set. + var isprimary = (ss.ownerNode.getAttribute("data-theme-primary") !== null); + // Check if the theme is primary dark theme + var isDarkTheme = (ss.ownerNode.getAttribute("data-theme-primary-dark") !== null); + // If ss is for dark theme then set the value of darkTheme to the name of the theme + if(isDarkTheme) darkTheme = themename; + // If we find a matching theme (and it's not the default), we'll set active to non-null + if(themename === theme) active = i; + // Store the style sheets of inactive themes so that we could disable them + if(themename !== theme) disabled.push(ss); + } + if(active !== null) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + theme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + ss.disabled = true; + }); + } + else if(darkTheme !== null && darkPreference === true) { + // If we did find an active theme, we'll (1) add the theme--$(theme) class to + document.getElementsByTagName('html')[0].className = "theme--" + darkTheme; + // and (2) disable all the other theme stylesheets + disabled.forEach(function(ss){ + if (ss.ownerNode.getAttribute("data-theme-name") !== darkTheme) { + ss.disabled = true; + } + }); + } +} +set_theme_from_local_storage(); diff --git a/v0.5.0/assets/warner.js b/v0.5.0/assets/warner.js new file mode 100644 index 000000000..5531c8851 --- /dev/null +++ b/v0.5.0/assets/warner.js @@ -0,0 +1,49 @@ +function maybeAddWarning () { + // DOCUMENTER_NEWEST is defined in versions.js, DOCUMENTER_CURRENT_VERSION and DOCUMENTER_STABLE + // in siteinfo.js. + // If either of these are undefined something went horribly wrong, so we abort. + if ( + window.DOCUMENTER_NEWEST === undefined || + window.DOCUMENTER_CURRENT_VERSION === undefined || + window.DOCUMENTER_STABLE === undefined + ) { + return + }; + + // Current version is not a version number, so we can't tell if it's the newest version. Abort. + if (!/v(\d+\.)*\d+/.test(window.DOCUMENTER_CURRENT_VERSION)) { + return + }; + + // Current version is newest version, so no need to add a warning. + if (window.DOCUMENTER_NEWEST === window.DOCUMENTER_CURRENT_VERSION) { + return + }; + + // Add a noindex meta tag (unless one exists) so that search engines don't index this version of the docs. + if (document.body.querySelector('meta[name="robots"]') === null) { + const meta = document.createElement('meta'); + meta.name = 'robots'; + meta.content = 'noindex'; + + document.getElementsByTagName('head')[0].appendChild(meta); + }; + + const div = document.createElement('div'); + div.classList.add('outdated-warning-overlay'); + const closer = document.createElement('button'); + closer.classList.add('outdated-warning-closer', 'delete'); + closer.addEventListener('click', function () { + document.body.removeChild(div); + }); + const href = window.documenterBaseURL + '/../' + window.DOCUMENTER_STABLE; + div.innerHTML = 'This documentation is not for the latest stable release, but for either the development version or an older release.
          Click here to go to the documentation for the latest stable release.'; + div.appendChild(closer); + document.body.appendChild(div); +}; + +if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', maybeAddWarning); +} else { + maybeAddWarning(); +}; diff --git a/v0.5.0/boundary_conditions/index.html b/v0.5.0/boundary_conditions/index.html new file mode 100644 index 000000000..673d1d924 --- /dev/null +++ b/v0.5.0/boundary_conditions/index.html @@ -0,0 +1,2 @@ + +Boundary conditions · SpeedyWeather.jl

          Boundary conditions

          This page describes the formulation of boundary conditions and their implementation.

          diff --git a/v0.5.0/conventions/index.html b/v0.5.0/conventions/index.html new file mode 100644 index 000000000..f2c4295ad --- /dev/null +++ b/v0.5.0/conventions/index.html @@ -0,0 +1,12 @@ + +Style and convention guide · SpeedyWeather.jl

          Style and convention guide

          In SpeedyWeather.jl we've been following the several conventions that are documented here.

          Variable naming

          The prognostic variables in spectral space are called

              vor         # Vorticity of horizontal wind field
          +    div         # Divergence of horizontal wind field
          +    temp        # Absolute temperature [K]
          +    pres_surf   # Logarithm of surface pressure [log(Pa)]
          +    humid       # Specific humidity [g/kg]

          their transforms into grid-point space get a _grid suffix, their tendencies a _tend suffix. Further derived diagnostic dynamic variables are

              u
          +    v
          +    geopot
          +    ...

          Preallocation

          All arrays representing variables are preallocated and grouped into two structs

              Prog::PrognosticVariables
          +    Diag::DiagnosticVariables

          The Diag struct contains further structs which represent the grid-point transformations of the prognostic variables and their tendencies.

              gridvars::GridVariables
          +    tendencies::Tendencies
          +    ...

          Constant arrays are grouped into several structs

          Boundaries

          Julian conventions

          We follow Julia's style guide and highlight here some important aspects of it.

          • Bang (!) convention. A function func does not change its input arguments, however, func! does.

          Hence, func! is often the in-place version of func, avoiding as much memory allocation as possible and often changing its first argument, e.g. func!(out,in) so that argument in is used to calculate out which has been preallocated before function call.

          • Number format flexibility. Numeric literals such as 2.0 or 1/3 are only used in the model setup

          but avoided throughout the code to obtain a fully number format-flexible package using the number format NF as a compile-time variable throughout the code. This often leads to overly specific code whereas a Real would generally suffice. However, this is done to avoid any implicit type conversions.

          diff --git a/v0.5.0/development/index.html b/v0.5.0/development/index.html new file mode 100644 index 000000000..bd1c65c9a --- /dev/null +++ b/v0.5.0/development/index.html @@ -0,0 +1,3 @@ + +Development notes · SpeedyWeather.jl

          Development notes

          To run tests, from the path of your local clone of the repository do:

          julia --project=. -e 'import Pkg; Pkg.test()'

          To install dependencies:

          julia --project -e 'import Pkg; Pkg.instantiate()`

          then opening:

          julia --project

          you are able to using SpeedyWeather.

          To generate the docs:

          julia --project=docs -e 'import Pkg; Pkg.develop(path="."); Pkg.instantiate()'
          +julia --project=docs docs/make.jl

          If the docs are generated successfully, you view them by opening docs/build/index.html in your favorite browser.

          diff --git a/v0.5.0/dynamical_core/index.html b/v0.5.0/dynamical_core/index.html new file mode 100644 index 000000000..d4e103306 --- /dev/null +++ b/v0.5.0/dynamical_core/index.html @@ -0,0 +1,20 @@ + +Dynamical core · SpeedyWeather.jl

          Dynamical core

          A mathematical and implementation-specific description of the dynamical core used in SpeedyWeather.jl. We start by describing the barotropic vorticity equations which is one set of equations that SpeedyWeather.jl can solve (see How to run SpeedyWeather.jl) as many details therein also apply to the Shallow water equations and Primitive equations explained thereafter.

          The dynamical core presented here largely follows the idealized models with spectral dynamics developed at the Geophysical Fluid Dynamics Laboratory[1]: A barotropic vorticity model[2], a shallow water model [3] and a primitive equation model[4].

          Barotropic vorticity equation

          The barotropic vorticity equation is the prognostic equation that describes the time evolution of relative vorticity $\zeta$ with advection, Coriolis force and diffusion in a single global layer.

          \[\frac{\partial \zeta}{\partial t} + \nabla \cdot (\mathbf{u}(\zeta + f)) = (-1)^{n+1}\nu\nabla^{2n}\zeta\]

          with time $t$, velocity vector $\mathbf{u} = (u, v)$, Coriolis parameter $f$, and hyperdiffusion $(-1)^{n+1} \nu \nabla^{2n} \zeta$ ($n$ is the hyperdiffusion order; see Horizontal diffusion). Starting with some relative vorticity $\zeta$, the Laplacian is inverted to obtain the stream function $\Psi$

          \[\Psi = \nabla^{-2}\zeta\]

          The zonal velocity $u$ and meridional velocity $v$ are then the (negative) meridional gradient and zonal gradient of $\Psi$

          \[\begin{aligned} +u &= -\frac{1}{R} \frac{\partial \Psi}{\partial \theta} \\ +v &= \frac{1}{R\cos(\theta)} \frac{\partial \Psi}{\partial \phi} \\ +\end{aligned}\]

          which is described in Derivatives in spherical coordinates.

          Algorithm

          We briefly outline the algorithm that SpeedyWeather.jl uses in order to integrate the barotropic vorticity equation

          1. Start with initial conditions of $\zeta_{lm}$ in spectral space
          2. Use $\zeta_{lm}$ to
            • Invert the Laplacian to obtain the stream function $\Psi_{lm}$ in spectral space
            • Transform $\zeta_{lm}$ to $\zeta$ in grid-point space
          3. Use $\Psi_lm$ to
          4. Transform zonal and meridional velocity $(\cos(\theta)u)_{lm}$, $(\cos(\theta)v)_{lm}$ to grid-point space and unscale the $\cos(\theta)$ factor to obtain $u,v$.
          5. Multiply $u,v$ with $\zeta+f$ in grid-point space
          6. Transform $u(\zeta + f)$ and $v(\zeta+f)$ to spectral space
          7. Compute the divergence of $(\mathbf{u}(\zeta + f))_{lm}$ in spectral space through a Meridional derivative and Zonal derivative which will be the tendency of $\zeta_{lm}$
          8. Compute the Horizontal diffusion based on that tendency
          9. Compute a leapfrog time step as described in Time integration
          10. Repeat from 1.

          Shallow water equations

          \[\begin{aligned} +\frac{\partial \zeta}{\partial t} + \nabla \cdot (\mathbf{u}(\zeta + f)) &= (-1)^{n+1}\nu\nabla^{2n}\zeta \\ +\frac{\partial \mathcal{D}}{\partial t} - \nabla \times (\mathbf{u}(\zeta + f)) &= -\nabla^2(\tfrac{1}{2}(u^2 + v^2) + g\eta) + (-1)^{n+1}\nu\nabla^{2n}\mathcal{D} \\ +\frac{\partial \eta}{\partial t} + \nabla \cdot (\mathbf{u}h) &= 0. +\end{aligned}\]

          more to come

          Primitive equations

          The primitive equations solved by SpeedyWeather.jl are

          \[\begin{aligned} +\partial_t u = ... \\ +\partial_t v = ... \\ +\partial_t T = ... \\ +\partial_t Q = ... +\end{aligned}\]

          more to come

          Horizontal diffusion

          In SpeedyWeather.jl we use hyerdiffusion through an $n$-th power Laplacian $(-1)^{n+1}\nabla^{2n}$ (hyper when $n>1$) which can be implemented as a multiplication of the spectral coefficients $\Psi_{lm}$ with $(-l(l+1))^nR^{-2n}$ (see spectral Laplacian) It is therefore computationally not more expensive to apply hyperdiffusion over diffusion as the $(-l(l+1))^nR^{-2n}$ can be precomputed. Note the sign change $(-1)^{n+1}$ here is such that the dissipative nature of the diffusion operator is retained for $n$ odd and even.

          In SpeedyWeather.jl the diffusion is applied implicitly. For that, consider a leapfrog scheme with time step $\Delta t$ of variable $\zeta$ to obtain from time steps $i-1$ and $i$, the next time step $i+1$

          \[\zeta_{i+1} = \zeta_{i-1} + 2\Delta t d\zeta,\]

          with $d\zeta$ being some tendency evaluated from $\zeta_i$. Now we want to add a diffusion term $(-1)^{n+1}\nu \nabla^{2n}\zeta$ with viscosity $\nu$, wich however, is implicitly calculated from $\zeta_{i+1}$, then

          \[\zeta_{i+1} = \zeta_{i-1} + 2\Delta t (d\zeta + (-1)^{n+1} \nu\nabla^{2n}\zeta_{i+1})\]

          As the application of $(-1)^{n+1}\nu\nabla^{2n}$ is, for every spectral mode, equivalent to a multiplication of a constant, we can rewrite this to

          \[\zeta_{i+1} = \frac{\zeta_{i-1} + 2\Delta t d\zeta}{1 - 2\Delta (-1)^{n+1}\nu\nabla^{2n}},\]

          and expand the numerator to

          \[\zeta_{i+1} = \zeta_{i-1} + 2\Delta t \frac{d\zeta + (-1)^{n+1} \nu\nabla^{2n}\zeta_{i-1}}{1 - 2\Delta t (-1)^{n+1}\nu \nabla^{2n}},\]

          Hence the diffusion can be applied implicitly by updating the tendency $d\zeta$ as

          \[d\zeta \to \frac{d\zeta + (-1)^{n+1}\nu\nabla^{2n}\zeta_{i-1}}{1 - 2\Delta t \nu \nabla^{2n}}\]

          which only depends on $\zeta_{i-1}$. Now let $D_\text{explicit} = (-1)^{n+1}\nu\nabla^{2n}$ be the explicit part and $D_\text{implicit} = 1 - (-1)^{n+1} 2\Delta t \nu\nabla^{2n}$ the implicit part. Both parts can be precomputed and are $D_\text{implicit} = 1 - 2\Delta t \nu\nabla^{2n}$ the implicit part. Both parts can be precomputed and are only an element-wise multiplication in spectral space. For every spectral harmonic $l,m$ we do

          \[d\zeta \to D_\text{implicit}^{-1}(d\zeta + D_\text{explicit}\zeta_{i-1}).\]

          Hence 2 multiplications and 1 subtraction with precomputed constants. However, we will normalize the (hyper-)Laplacians as described in the following. This also will take care of the alternating sign such that the diffusion operation is dissipative regardless the power $n$.

          Normalization of diffusion

          In physics, the Laplace operator $\nabla^2$ is often used to represent diffusion due to viscosity in a fluid. In that case, the viscosity coefficient is $\nu$ of units $\text{m}^2\text{s}^{-1}$ and the full operator reads as $\nu \nabla^2$ with units $(\text{m}^2\text{s}^{-1})(\text{m}^{-2}) = \text{s}^{-1}$. This motivates us to normalize the Laplace operator by a constant of units $\text{m}^{-2}$ and the viscosity coefficient by its inverse such that the viscosity coefficient becomes a damping timescale of unit $\text{s}^{-1}$. Given the application in spectral space we decide to normalize by the largest eigenvalue $-l_\text{max}(l_\text{max}+1)$ such that all entries in the discrete spectral Laplace operator are in $[0,1]$. This also has the effect that the alternating sign drops out, such that higher wavenumbers are always dampened and not amplified. The normalized viscosity coefficient $\nu^* = l_\text{max}(l_\text{max}+1)\nu$ (always positive) is therefore reinterpreted as the (inverse) time scale at which the highest wavenumber is dampened to zero due to diffusion. Together we have

          \[D^\text{explicit}_{l,m} = -\nu^* \frac{l(l+1)}{l_\text{max}(l_\text{max}+1)}\]

          and the hyper-Laplacian of power $n$ follows as

          \[D^\text{explicit,n}_{l,m} = -\nu^* \left(\frac{l(l+1)}{l_\text{max}(l_\text{max}+1)}\right)^n\]

          and the implicit part is accordingly $D^\text{implicit,n}_{l,m} = 1 - 2\Delta t D^\text{explicit,n}_{l,m}$.

          Radius scaling

          SpeedyWeather.jl uses a scaling for vorticity $\zeta$ and stream function $\Psi$ that is

          \[\tilde{\zeta} = \zeta R, \tilde{\Psi} = \Psi R^{-1}.\]

          In the barotropic voriticity equation model the inversion of the Laplcians in order to obtain $\Psi$ from $\zeta$ therefore becomes

          \[\tilde{\zeta} = \tilde{\nabla}^2 \tilde{\Psi}\]

          where the dimensionless gradients simply omit the scaling with $1/R$, $\tilde{\nabla} = R\nabla$. The Barotropic vorticity equation scaled with $R^2$ is

          \[\partial_{\tilde{t}}\tilde{\zeta} + \tilde{\nabla} \cdot (\mathbf{u}(\tilde{\zeta} + \tilde{f})) = \tilde{\nu}\tilde{\nabla}^{2n}\tilde{\zeta}\]

          with

          • $\tilde{t} = tR^{-1}$, the scaled time $t$
          • $\mathbf{u} = (u,v)$, the velocity vector (no scaling applied)
          • $\tilde{f} = fR$, the scaled Coriolis parameter $f$
          • $\tilde{\nu} = \nu^* R$, the scaled viscosity $\nu^*$, which itself is normalized to a damping time scale, see Normalization of diffusion.

          Scaled shallow water equations

          Similar to the scaled barotropic vorticity equations, the scaled shallow water equations scale the vorticity and the divergence equation with $R^2$, but the continuity equation with $R$

          \[\begin{aligned} +\frac{\partial \tilde{\zeta}}{\partial \tilde{t}} + \tilde{\nabla} \cdot (\mathbf{u}(\tilde{\zeta} + \tilde{f})) &= +\tilde{\nu}\tilde{\nabla}^{2n}\tilde{\zeta} \\ +\frac{\partial \tilde{\mathcal{D}}}{\partial \tilde{t}} - \tilde{\nabla} \times (\mathbf{u}(\tilde{\zeta} + \tilde{f})) &= +-\tilde{\nabla}^2\left(\tfrac{1}{2}(u^2 + v^2) + g\eta \right) + \tilde{\nu}\tilde{\nabla}^{2n}\tilde{\mathcal{D}} \\ +\frac{\partial \eta}{\partial \tilde{t}} + \tilde{\nabla} \cdot (\mathbf{u}h) &= 0. +\end{aligned}\]

          Time integration

          SpeedyWeather.jl uses a leapfrog time scheme with a Robert's and William's filter to dampen the computational mode and achieve 3rd order accuracy.

          Oscillation equation

          \[\frac{dF}{dt} = i\omega F\]

          References

          diff --git a/v0.5.0/functions/index.html b/v0.5.0/functions/index.html new file mode 100644 index 000000000..7f1621efd --- /dev/null +++ b/v0.5.0/functions/index.html @@ -0,0 +1,103 @@ + +Function and type index · SpeedyWeather.jl

          Function and type index

          Parameters and constants

          SpeedyWeather.ParametersType
          P = Parameters{M<:ModelSetup}(kwargs...) <: AbstractParameters{M}

          A struct to hold all model parameters that may be changed by the user. The struct uses keywords such that default values can be changed at creation. The default values of the keywords define the default model setup.

          • NF::DataType: number format

          • trunc::Int64: spectral truncation

          • Grid::Type{<:SpeedyWeather.RingGrids.AbstractGrid}: grid in use

          • dealiasing::Float64: dealiasing factor, 1=linear, 2=quadratic, 3=cubic grid

          • planet::SpeedyWeather.Planet: planet

          • mol_mass_dry_air::Any: molar mass of dry air [g/mol]

          • mol_mass_vapour::Any: molar mass of water vapour [g/mol]

          • cₚ::Float64: specific heat at constant pressure [J/K/kg]

          • R_gas::Float64: universal gas constant [J/K/mol]

          • R_dry::Float64: specific gas constant for dry air [J/kg/K]

          • R_vapour::Float64: specific gas constant for water vapour [J/kg/K]

          • alhc::Float64: latent heat of condensation [J/g] for consistency with specific humidity [g/Kg]

          • alhs::Float64: latent heat of sublimation [?]

          • sbc::Float64: stefan-Boltzmann constant [W/m²/K⁴]

          • lapse_rate::Float64: moist adiabatic temperature lapse rate $-dT/dz$ [K/km]

          • temp_ref::Float64: absolute temperature at surface $z=0$ [K]

          • temp_top::Float64: absolute temperature in stratosphere [K]

          • ΔT_stratosphere::Float64: for stratospheric lapse rate [K] after Jablonowski

          • scale_height::Float64: scale height for pressure [km]

          • pres_ref::Float64: surface pressure [hPa]

          • scale_height_humid::Float64: scale height for specific humidity [km]

          • relhumid_ref::Float64: relative humidity of near-surface air [1]

          • water_pres_ref::Float64: saturation water vapour pressure [Pa]

          • layer_thickness::Float64: layer thickness for the shallow water model [km]

          • GLcoefs::SpeedyWeather.Coefficients: vertical coordinates of the nlev vertical levels, defined by a generalised logistic function, interpolating ECMWF's L31 configuration

          • σ_tropopause::Float64: σ coordinate where the tropopause starts

          • σ_levels_half::Vector{Float64}: only used if set manually, otherwise empty

          • nlev::Int64: number of vertical levels

          • diffusion::SpeedyWeather.DiffusionParameters: horizontal (hyper)-diffusion

          • vertical_diffusion::SpeedyWeather.VerticalDiffusion: vertical diffusion

          • static_energy_diffusion::SpeedyWeather.VerticalDiffusion: static energy diffusion

          • interface_relaxation::Bool: turn on interface relaxation for shallow water?

          • interface_relax_time::Float64: time scale [hrs] of interface relaxation

          • interface_relax_amplitude::Float64: Amplitude [m] of interface relaxation

          • physics::Bool: en/disables the physics parameterizations

          • n_shortwave::Int64: Compute shortwave radiation every n steps

          • sppt_on::Bool: Turn on SPPT?

          • magnus_coefs::SpeedyWeather.Coefficients: For computing saturation vapour pressure

          • k_lsc::Int64: Index of atmospheric level at which large-scale condensation begins

          • RH_thresh_pbl_lsc::Float64: Relative humidity threshold for boundary layer

          • RH_thresh_range_lsc::Float64: Vertical range of relative humidity threshold

          • RH_thresh_max_lsc::Float64: Maximum relative humidity threshold

          • humid_relax_time_lsc::Float64: Relaxation time for humidity (hours)

          • pres_thresh_cnv::Float64: Minimum (normalised) surface pressure for the occurrence of convection

          • RH_thresh_pbl_cnv::Float64: Relative humidity threshold for convection in PBL

          • RH_thresh_trop_cnv::Float64: Relative humidity threshold for convection in the troposphere

          • humid_relax_time_cnv::Float64: Relaxation time for PBL humidity (hours)

          • max_entrainment::Float64: Maximum entrainment as a fraction of cloud-base mass flux

          • ratio_secondary_mass_flux::Float64: Ratio between secondary and primary mass flux at cloud-base

          • nband::Int64: Number of bands used to compute fband

          • radiation_coefs::SpeedyWeather.Coefficients: radiation coefficients

          • boundary_layer::SpeedyWeather.BoundaryLayer{Float64}: boundary layer drag

          • temperature_relaxation::SpeedyWeather.TemperatureRelaxation{Float64}: temperature relaxation

          • startdate::Dates.DateTime: time at which the integration starts

          • n_days::Float64: number of days to integrate for

          • Δt_at_T31::Float64: time step in minutes for T31, scale linearly to trunc

          • robert_filter::Float64: Robert (1966) time filter coefficeint to suppress comput. mode

          • williams_filter::Float64: William's time filter (Amezcua 2011) coefficient for 3rd order acc

          • implicit_α::Float64: coefficient for semi-implicit computations to filter gravity waves

          • recalculate_implicit::Int64: recalculate implicit operators on temperature profile every n time steps

          • recompute_legendre::Bool: recomputation is slower but requires less memory

          • legendre_NF::DataType: which format to use to calculate the Legendre polynomials

          • legendre_shortcut::Symbol: :linear, :quadratic, :cubic, :lincub_coslat, :linquad_coslat²

          • boundary_path::String: package location is default

          • orography::SpeedyWeather.AbstractOrography: orography

          • orography_scale::Float64: scale orography by a factor

          • orography_path::String: path of orography

          • orography_file::String: filename of orography

          • seed::Int64: random seed for the global random number generator

          • initial_conditions::SpeedyWeather.InitialConditions: initial conditions

          • pressure_on_orography::Bool: calculate the initial surface pressure from orography

          • verbose::Bool: print dialog for feedback

          • debug::Bool: print debug info, NaR detection

          • output::Bool: Store data in netCDF?

          • output_dt::Float64: output time step [hours]

          • output_path::String: path to output folder

          • run_id::Union{Int64, String}: name of the output folder, defaults to 4-digit number counting up from run-0001

          • output_filename::String: name of the output netcdf file

          • output_vars::Vector{Symbol}: variables to output: :u, :v, :vor, :div, :temp, :humid

          • compression_level::Int64: compression level; 1=low but fast, 9=high but slow

          • keepbits::NamedTuple: mantissa bits to keep for every variable

          • version::VersionNumber: SpeedyWeather.jl version number

          • output_NF::DataType: number format used for output

          • output_nlat_half::Int64: 0 = reuse nlat_half from dynamical core

          • output_Grid::Type{<:SpeedyWeather.RingGrids.AbstractFullGrid}: output grid

          • output_Interpolator::Type{<:SpeedyWeather.RingGrids.AbstractInterpolator}: output interpolator

          • output_matrix::Bool: if true sort gridpoints into a matrix

          • output_quadrant_rotation::NTuple{4, Int64}: rotation of output quadrant

          • output_matrix_quadrant::NTuple{4, Tuple{Int64, Int64}}: matrix of output quadrant

          • missing_value::Float64: missing value to be used in netcdf output

          • write_restart::Bool: also write restart file if output==true?

          • restart_path::String: path for restart file

          • restart_id::Union{Int64, String}: run_id of restart file in run-????/restart.jld2

          source
          Missing docstring.

          Missing docstring for SpeedyWeather.Constants. Check Documenter's build log for details.

          Boundaries and boundary conditions

          Missing docstring.

          Missing docstring for SpeedyWeather.Boundaries. Check Documenter's build log for details.

          Spherical harmonic transform

          Missing docstring.

          Missing docstring for SpeedyWeather.GeoSpectral. Check Documenter's build log for details.

          SpeedyWeather.SpeedyTransforms.spectralFunction
          alms = spectral(    map::AbstractMatrix;
          +                    Grid::Type{<:AbstractGrid}=DEFAULT_GRID,
          +                    kwargs...)

          Converts map to grid(map) to execute spectral(map::AbstractGrid;kwargs...).

          source
          alms = spectral(    map::AbstractGrid;
          +                    Grid::Type{<:AbstractGrid}=DEFAULT_GRID,
          +                    kwargs...)

          Converts map to Grid(map) to execute spectral(map::AbstractGrid;kwargs...).

          source
          alms = spectral(    map::AbstractMatrix;
          +                    Grid::Type{<:AbstractGrid}=DEFAULT_GRID,
          +                    kwargs...)

          Spectral transform (grid to spectral) map to grid(map) to execute spectral(map::AbstractGrid;kwargs...).

          source
          SpeedyWeather.SpeedyTransforms.spectral!Function
          spectral!(  alms::LowerTriangularMatrix,
          +            map::AbstractGrid,
          +            S::SpectralTransform)

          Spectral transform (grid to spectral space) from the gridded field map on a grid<:AbstractGrid to a LowerTriangularMatrix of spherical harmonic coefficients alms. Uses FFT in the zonal direction, and a Legendre Transform in the meridional direction exploiting symmetries. The spectral transform is number format-flexible as long as the parametric types of map, alms, S are identical. The spectral transform is grid-flexible as long as the typeof(map)<:AbstractGrid. Uses the precalculated arrays, FFT plans and other constants in the SpectralTransform struct S.

          source
          SpeedyWeather.SpeedyTransforms.griddedFunction
          map = gridded(  alms::AbstractMatrix;
          +                recompute_legendre::Bool=true,
          +                grid::Type{<:AbstractGrid}=DEFAULT_GRID)

          Spectral transform (spectral to grid space) from spherical coefficients alms to a newly allocated gridded field map. Based on the size of alms the grid type grid, the spatial resolution is retrieved based on the truncation defined for grid. SpectralTransform struct S is allocated to execute gridded(alms,S).

          source
          map = gridded(  alms::AbstractMatrix,
          +                S::SpectralTransform)

          Spectral transform (spectral to grid space) from spherical coefficients alms to a newly allocated gridded field map with precalculated properties based on the SpectralTransform struct S. alms is converted to a LowerTriangularMatrix to execute the in-place gridded!.

          source
          SpeedyWeather.SpeedyTransforms.gridded!Function
          gridded!(   diagn::DiagnosticVariables{NF}, # all diagnostic variables
          +            progn::PrognosticVariables{NF}, # all prognostic variables
          +            M::BarotropicModel,             # everything that's constant
          +            lf::Int=1                       # leapfrog index
          +            ) where NF

          Propagate the spectral state of the prognostic variables progn to the diagnostic variables in diagn for the barotropic vorticity model. Updates grid vorticity, spectral stream function and spectral and grid velocities u,v.

          source
          gridded!(   diagn::DiagnosticVariables{NF}, # all diagnostic variables
          +            progn::PrognosticVariables{NF}, # all prognostic variables
          +            lf::Int=1                       # leapfrog index
          +            M::ShallowWaterModel,           # everything that's constant
          +            ) where NF

          Propagate the spectral state of the prognostic variables progn to the diagnostic variables in diagn for the shallow water model. Updates grid vorticity, grid divergence, grid interface displacement (pres_grid) and the velocities U,V (scaled by cos(lat)).

          source
          gridded!(   map::AbstractGrid,
          +            alms::LowerTriangularMatrix,
          +            S::SpectralTransform)

          Spectral transform (spectral to grid) of the spherical harmonic coefficients alms to a gridded field map. The spectral transform is number format-flexible as long as the parametric types of map, alms, S are identical. The spectral transform is grid-flexible as long as the typeof(map)<:AbstractGrid. Uses the precalculated arrays, FFT plans and other constants in the SpectralTransform struct S.

          source
          Missing docstring.

          Missing docstring for SpeedyWeather.triangular_truncation. Check Documenter's build log for details.

          Missing docstring.

          Missing docstring for SpeedyWeather.roundup_fft. Check Documenter's build log for details.

          SpeedyWeather.SpeedyTransforms.spectral_truncationFunction
          alms_trunc = spectral_truncation(alms,trunc)

          Returns a spectral coefficient matrix alms_trunc that is truncated from alms to the size (trunc+1)². alms_trunc only contains those coefficient of alms for which m,l ≤ trunc, and l ≥ m are zero anyway. If trunc is larger than the implicit truncation in alms obtained from its size than spectral_interpolation is automatically called instead, returning alms_interp, a coefficient matrix that is larger than alms with padded zero coefficients.

          source
          SpeedyWeather.SpeedyTransforms.spectral_truncation!Function
          spectral_truncation!(alms::AbstractMatrix,ltrunc::Integer,mtrunc::Integer)

          Truncate spectral coefficients alms in-place by setting (a) the upper right triangle to zero and (b) all coefficients for which the degree l is larger than the truncation ltrunc or order m larger than the truncaction mtrunc.

          source
          spectral_truncation!(alms::LowerTriangularMatrix,ltrunc::Integer,mtrunc::Integer)

          Truncate spectral coefficients alms in-place by setting all coefficients for which the degree l is larger than the truncation ltrunc or order m larger than the truncaction mtrunc. Similar to spectral_truncation!(::AbstractMatrix, ...) but skips the upper triangle which is zero by design for LowerTriangularMatrix.

          source
          spectral_truncation!(alms,trunc)

          Truncate spectral coefficients alms in-place by setting (a) the upper right triangle to zero and (b) all coefficients for which the degree l is larger than the truncation trunc.

          source
          spectral_truncation!(alms)

          Truncate spectral coefficients alms in-place by setting the upper right triangle to zero. This is to enforce that all coefficients for which the degree l is larger than order m are zero.

          source
          Missing docstring.

          Missing docstring for SpeedyWeather.spectral_interpolation!. Check Documenter's build log for details.

          Missing docstring.

          Missing docstring for SpeedyWeather.get_legendre_polynomials!. Check Documenter's build log for details.

          SpeedyWeather.SpeedyTransforms.∇²!Function
          ∇²!(    ∇²alms::LowerTriangularMatrix,
          +        alms::LowerTriangularMatrix,
          +        S::SpectralTransform;
          +        add::Bool=false,
          +        flipsign::Bool=false,
          +        inverse::Bool=false)

          Laplace operator ∇² applied to the spectral coefficients alms in spherical coordinates. The radius R is omitted in the eigenvalues which are precomputed in S. ∇²! is the in-place version which directly stores the output in the first argument ∇²alms.

          Keyword arguments

          • add=true adds the ∇²(alms) to the output
          • flipsign=true computes -∇²(alms) instead
          • inverse=true computes ∇⁻²(alms) instead

          Default is add=false, flipsign=false, inverse=false. These options can be combined.

          source
          Missing docstring.

          Missing docstring for SpeedyWeather.∇². Check Documenter's build log for details.

          SpeedyWeather.SpeedyTransforms.∇⁻²!Function
          ∇⁻²!(   ∇⁻²alms::LowerTriangularMatrix,
          +        alms::LowerTriangularMatrix,
          +        S::SpectralTransform;
          +        add::Bool=false,
          +        flipsign::Bool=false)

          Calls ∇²!(∇⁻²alms, alms, S; add, flipsign, inverse=true).

          source
          Missing docstring.

          Missing docstring for SpeedyWeather.∇⁻². Check Documenter's build log for details.

          Missing docstring.

          Missing docstring for SpeedyWeather.gradient_latitude!. Check Documenter's build log for details.

          Missing docstring.

          Missing docstring for SpeedyWeather.gradient_latitude. Check Documenter's build log for details.

          Missing docstring.

          Missing docstring for SpeedyWeather.gradient_longitude!. Check Documenter's build log for details.

          Missing docstring.

          Missing docstring for SpeedyWeather.gradient_longitude. Check Documenter's build log for details.

          SpeedyWeather.SpeedyTransforms.divergence!Function
          divergence!(div::LowerTriangularMatrix,
          +            u::LowerTriangularMatrix,
          +            v::LowerTriangularMatrix,
          +            S::SpectralTransform{NF};
          +            flipsign::Bool=false,
          +            add::Bool=false,
          +            )

          Divergence of a vector u,v written into div, div = ∇⋅(u,v). u,v are expected to have a 1/coslat-scaling included, then div is not scaled. flipsign option calculates -∇⋅(u,v) instead. add option calculates div += ∇⋅(u,v) instead. flipsign and add can be combined. This functions only creates the kernel and calls the generic divergence function _divergence! subsequently.

          source
          SpeedyWeather.SpeedyTransforms.curl!Function
          curl!(  curl::LowerTriangularMatrix,
          +        u::LowerTriangularMatrix,
          +        v::LowerTriangularMatrix,
          +        S::SpectralTransform;
          +        flipsign::Bool=false,
          +        add::Bool=false,
          +        )

          Curl of a vector u,v written into curl, curl = ∇×(u,v). u,v are expected to have a 1/coslat-scaling included, then curl is not scaled. flipsign option calculates -∇×(u,v) instead. add option calculates curl += ∇×(u,v) instead. flipsign and add can be combined. This functions only creates the kernel and calls the generic divergence function _divergence! subsequently with flipped u,v -> v,u for the curl.

          source
          Missing docstring.

          Missing docstring for SpeedyWeather._divergence!. Check Documenter's build log for details.

          Missing docstring.

          Missing docstring for SpeedyWeather.curl_div!. Check Documenter's build log for details.

          SpeedyWeather.SpeedyTransforms.UV_from_vordiv!Function
          UV_from_vordiv!(U::LowerTriangularMatrix,
          +                V::LowerTriangularMatrix,
          +                vor::LowerTriangularMatrix,
          +                div::LowerTriangularMatrix,
          +                S::SpectralTransform)

          Get U,V (=(u,v)*coslat) from vorticity ζ and divergence D in spectral space. Two operations are combined into a single linear operation. First, invert the spherical Laplace ∇² operator to get stream function from vorticity and velocity potential from divergence. Then compute zonal and meridional gradients to get U,V.

          source
          SpeedyWeather.SpeedyTransforms.UV_from_vor!Function
          UV_from_vor!(   U::LowerTriangularMatrix,
          +                V::LowerTriangularMatrix,
          +                vor::LowerTriangularMatrix,
          +                S::SpectralTransform)

          Get U,V (=(u,v)*coslat) from vorticity ζ spectral space (divergence D=0) Two operations are combined into a single linear operation. First, invert the spherical Laplace ∇² operator to get stream function from vorticity. Then compute zonal and meridional gradients to get U,V.

          source
          Missing docstring.

          Missing docstring for SpeedyWeather.ϵlm. Check Documenter's build log for details.

          Missing docstring.

          Missing docstring for SpeedyWeather.get_recursion_factors. Check Documenter's build log for details.

          Dynamics

          SpeedyWeather.bernoulli_potential!Function
          bernoulli_potential!(   diagn::DiagnosticVariablesLayer, 
          +                        G::Geometry,
          +                        S::SpectralTransform)

          Computes the Laplace operator ∇² of the Bernoulli potential B in spectral space.

          1. computes the kinetic energy KE = ½(u²+v²) on the grid
          2. transforms KE to spectral space
          3. adds geopotential for the Bernoulli potential in spectral space
          4. takes the Laplace operator.

          This version is used for both ShallowWater and PrimitiveEquation, only the geopotential calculation in geopotential! differs.

          source
          SpeedyWeather.volume_flux_divergence!Function
          volume_flux_divergence!(diagn::DiagnosticVariablesLayer,
          +                        surface::SurfaceVariables,
          +                        model::ShallowWater)

          Computes the (negative) divergence of the volume fluxes uh,vh for the continuity equation, -∇⋅(uh,vh).

          source
          Missing docstring.

          Missing docstring for SpeedyWeather.vorticity_fluxes!. Check Documenter's build log for details.

          Missing docstring.

          Missing docstring for SpeedyWeather.vorticity_flux_curl!. Check Documenter's build log for details.

          Missing docstring.

          Missing docstring for SpeedyWeather.vorticity_flux_divergence!. Check Documenter's build log for details.

          Geometry

          SpeedyWeather.GeometryType
          Geometry{NF<:AbstractFloat} <: AbstractGeometry

          Geometry struct containing parameters and arrays describing an iso-latitude grid <:AbstractGrid and the vertical levels. NF is the number format used for the precomputed constants.

          source
          SpeedyWeather.vertical_coordinatesFunction
          σ_levels_half = vertical_coordinates(P::Parameters)

          Vertical sigma coordinates defined by their nlev+1 half levels σ_levels_half. Sigma coordinates are fraction of surface pressure (p/p0) and are sorted from top (stratosphere) to bottom (surface). The first half level is at 0 the last at 1. Evaluate a generalised logistic function with coefficients in P for the distribution of values in between. Default coefficients follow the L31 configuration historically used at ECMWF.

          source
          SpeedyWeather.GenLogisticCoefsType

          Coefficients of the generalised logistic function to describe the vertical coordinate. Default coefficients A,K,C,Q,B,M,ν are fitted to the old L31 configuration at ECMWF. See geometry.jl and function vertical_coordinate for more informaiton.

          Following the notation of https://en.wikipedia.org/wiki/Generalisedlogisticfunction (Dec 15 2021).

          Change default parameters for more/fewer levels in the stratosphere vs troposphere vs boundary layer.

          source

          Time stepping

          SpeedyWeather.time_stepping!Function
          time_stepping!( progn::PrognosticVariables,     # all prognostic variables
          +                diagn::DiagnosticVariables,     # all pre-allocated diagnostic variables
          +                model::ModelSetup)              # all precalculated structs

          Main time loop that that initialises output and feedback, loops over all time steps and calls the output and feedback functions.

          source
          SpeedyWeather.timestep!Function
          timestep!(  progn::PrognosticVariables,     # all prognostic variables
          +            diagn::DiagnosticVariables,     # all pre-allocated diagnostic variables
          +            time::DateTime,                 # time at timestep
          +            dt::Real,                       # time step (mostly =2Δt, but for init steps =Δt,Δt/2)
          +            lf1::Int=2,                     # leapfrog index 1 (dis/enables Robert+William's filter)
          +            lf2::Int=2,                     # leapfrog index 2 (time step used for tendencies)
          +            M::BarotropicModel,             # everything that's constant at runtime
          +            )

          Calculate a single time step for the barotropic vorticity equation model of SpeedyWeather.jl

          source
          timestep!(  progn::PrognosticVariables{NF}, # all prognostic variables
          +            diagn::DiagnosticVariables{NF}, # all pre-allocated diagnostic variables
          +            time::DateTime,                 # time at timestep
          +            dt::Real,                       # time step (mostly =2Δt, but for init steps =Δt,Δt/2)
          +            M::ShallowWaterModel,           # everything that's constant at runtime
          +            lf1::Int=2,                     # leapfrog index 1 (dis/enables Robert+William's filter)
          +            lf2::Int=2                      # leapfrog index 2 (time step used for tendencies)
          +            ) where {NF<:AbstractFloat}

          Calculate a single time step for the shallow water model of SpeedyWeather.jl

          source
          timestep!(  progn::PrognosticVariables{NF}, # all prognostic variables
          +            diagn::DiagnosticVariables{NF}, # all pre-allocated diagnostic variables
          +            time::DateTime,                 # time at timestep
          +            dt::Real,                       # time step (mostly =2Δt, but for init steps =Δt,Δt/2)
          +            M::PrimitiveEquation,      # everything that's constant at runtime
          +            lf1::Int=2,                     # leapfrog index 1 (dis/enables Robert+William's filter)
          +            lf2::Int=2                      # leapfrog index 2 (time step used for tendencies)
          +            ) where {NF<:AbstractFloat}

          Calculate a single time step for the primitive equation model of SpeedyWeather.jl

          source
          SpeedyWeather.first_timesteps!Function
          first_timesteps!(   progn::PrognosticVariables, # all prognostic variables
          +                    diagn::DiagnosticVariables, # all pre-allocated diagnostic variables
          +                    time::DateTime,             # time at timestep
          +                    M::ModelSetup,              # everything that is constant at runtime
          +                    feedback::AbstractFeedback  # feedback struct
          +                    )

          Performs the first two initial time steps (Euler forward, unfiltered leapfrog) to populate the prognostic variables with two time steps (t=0,Δt) that can then be used in the normal leap frogging.

          source
          SpeedyWeather.leapfrog!Function
          leapfrog!(  A_old::LowerTriangularMatrix{Complex{NF}},      # prognostic variable at t
          +            A_new::LowerTriangularMatrix{Complex{NF}},      # prognostic variable at t+dt
          +            tendency::LowerTriangularMatrix{Complex{NF}},   # tendency (dynamics+physics) of A
          +            dt::Real,                                       # time step (=2Δt, but for init steps =Δt,Δt/2)
          +            lf::Int=2,                                      # leapfrog index to dis/enable William's filter
          +            C::DynamicsConstants{NF},                       # struct with constants used at runtime
          +            ) where {NF<:AbstractFloat}                     # number format NF

          Performs one leapfrog time step with (lf=2) or without (lf=1) Robert+William's filter (see William (2009), Montly Weather Review, Eq. 7-9).

          source

          Longwave radiation

          SpeedyWeather.radset!Function
          function radset!(model::PrimitiveEquation) where {NF<:AbstractFloat}

          Compute energy fractions in four longwave bands as a function of temperature.

          source
          SpeedyWeather.radlw_down!Function
          function radlw_down!(
          +    column::ColumnVariables{NF}, model::PrimitiveEquation
          +) where {NF<:AbstractFloat}

          Compute the downward flux of longwave radiation. Inputs variables are temp,wvi,tau2. Output column varables arefsfcd,dfabs,flux,st4a`.

          source
          SpeedyWeather.compute_bbe!Function
          function compute_bbe!(
          +    column::ColumnVariables{NF}, model::PrimitiveEquation
          +) where {NF<:AbstractFloat}

          Computes black-body (or grey-body) emissions.

          Input and output variables are ts and fsfcu, respectively.

          source
          SpeedyWeather.radlw_up!Function
          function radlw_up!(
          +    column::ColumnVariables{NF}, model::PrimitiveEquation
          +) where {NF<:AbstractFloat}

          Computes the upward flux of longwave radiation.

          Input variables are nlev, temp, fsfcu, fsfcd, flux, ts, tau2, st4a, dfabs, stratc, σ_levels_thick, n_stratosphere_levels. Output column variables are fsfc and ftop.

          source

          Shortwave radiation

          SpeedyWeather.shortwave_radiation!Function
          function shortwave_radiation!(
          +    column::ColumnVariables{NF}, model::PrimitiveEquation
          +)

          Compute air temperature tendencies from shortwave radiation for an atmospheric column. For more details see http://users.ictp.it/~kucharsk/speedydescription/kmver41_appendixA.pdf

          source
          SpeedyWeather.solar!Function
          function solar!(column::ColumnVariables{NF})

          Compute average daily flux of solar radiation for an atmospheric column, from Hartmann (1994).

          source
          SpeedyWeather.sol_oz!Function
          function sol_oz!(
          +    column::ColumnVariables{NF}, model::PrimitiveEquation
          +)

          Compute solar radiation parametres for an atmospheric column.

          source
          SpeedyWeather.cloud!Function
          function cloud!(
          +    column::ColumnVariables{NF}, model::PrimitiveEquation
          +)

          Compute shortwave radiation cloud contibutions for an atmospheric column.

          source
          SpeedyWeather.radsw!Function
          function radsw!(
          +    column::ColumnVariables{NF}, model::PrimitiveEquation
          +)

          Compute shortwave radiation fluxes for an atmospheric column.

          source
          diff --git a/v0.5.0/grids/index.html b/v0.5.0/grids/index.html new file mode 100644 index 000000000..8ba03d6ca --- /dev/null +++ b/v0.5.0/grids/index.html @@ -0,0 +1,2 @@ + +Grids · SpeedyWeather.jl

          Grids

          The spectral transform (the Spherical Harmonic Transform) in SpeedyWeather.jl supports any ring-based equi-longitude grid. Several grids are already implemented but other can be added. The following pages will describe an overview of these grids and how they can be used.

          Ring-based equi-longitude grids

          SpeedyWeather.jl's spectral transform currently only supports ring-based equi-longitude grids. These grids have their grid points located on rings with constant latitude and on rings the points are equi-spaced in longitude. There is technically no constrain on the spacing of the latitude rings, but the Legendre transform requires a quadrature to map those to spectral space and back. Common choices for latitudes are the Gaussian latitudes which use the Gaussian quadrature, or equi-angle latitudes (i.e. just regular latitudes but excluding the poles) that use the Clenshaw-Curtis quadrature. The longitudes have to be equi-spaced on every ring, which is necessary for the fast Fourier transform, as one would otherwise need to use a non-uniform Fourier transform. In SpeedyWeather.jl the first grid point on any ring can have a longitudinal offset though, for example by spacing 4 points around the globe at 45˚E, 135˚E, 225˚E, and 315˚E. In this case the offset is 45˚E as the first point is not at 0˚E.

          Implemented grids

          All grids in SpeedyWeather.jl are a subtype of AbstractGrid, i.e. <: AbstractGrid. We further distinguish between full, and reduced grids. Full grids have the same number of longitude points on every latitude ring (i.e. points converge towards the poles) and reduced grids reduce the number of points towards the poles to have them more evenly spread out across the globe. More evenly does not necessarily mean that a grid is equal-area, meaning that every grid cell covers exactly the same area (although the shape changes).

          Currently the following full grids <: AbstractFullGrid are implemented

          • FullGaussianGrid, a full grid with Gaussian latitudes
          • FullClenshawGrid, a full grid with equi-angle latitudes

          and additionally we have FullHEALPixGrid and FullOctaHEALPixGrid which are the full grid equivalents to the HEALPix grid and the OctaHEALPix grid discussed below. Full grid equivalent means that they have the same latitude rings, but no reduction in the number of points per ring towards the poles and no longitude offset. Other implemented reduced grids are

          • OctahedralGaussianGrid, a reduced grid with Gaussian latitudes based on an octahedron
          • OctahedralClenshawGrid, similar but based on equi-angle latitudes
          • HEALPixGrid, an equal-area grid based on a dodecahedron with 12 faces
          • OctaHEALPixGrid, an equal-area grid from the class of HEALPix grids but based on an octahedron.

          An overview of these grids is visualised here

          Overview of implemented grids in SpeedyWeather.jl

          Visualised are each grid's grid points (white dots) and grid faces (white lines). All grids shown have 16 latitude rings on one hemisphere, Equator included. The total number of grid points is denoted in the top left of every subplot. The sphere is shaded with grey, orange and turquoise regions to denote the hemispheres in a and b, the 8 octahedral faces c, d,f and the 12 dodecahedral faces (or base pixels) in e. Coastlines are added for orientation.

          Resolution

          All grids use the same resolution parameter nlat_half, i.e. the number of rings on one hemisphere, Equator included. The Gaussian grids (full and reduced) do not have a ring on the equator, so their total number of rings nlat is always even and twice nlat_half. Clenshaw-Curtis grids and the HEALPix grids have a ring on the equator such their total number of rings is always odd and one less than the Gaussian grids at the same nlat_half.

          HEALPix grids do not use Nside as resolution parameter

          The original formulation for HEALPix grids use $N_{side}$, the number of grid points along the edges of each basepixel (8 in the figure above), SpeedyWeather.jl uses nlat_half, the number of rings on one hemisphere, Equator included, for all grids. This is done for consistency across grids. We may use $N_{side}$ for the documentation or within functions though.

          Truncation

          A given spectral resolution can be matched to a variety of grid resolutions. A cubic grid, for example, combines a spectral truncation T with a grid resolution N (=nlat_half) such that T + 1 = N. Using T31 and an O32 is therefore often abbreviated as Tco31 meaning that the spherical harmonics are truncated at $l_{max}=31$ in combination with N=32, i.e. 64 latitude rings in total on an octahedral Gaussian grid.

          Let J be the total number of rings. Then we have

          • $T \approx J$ for linear truncation
          • $\frac{3}{2}T \approx J$ for quadratic truncation
          • $2T \approx J$ for cubic truncation

          and in general $\frac{m+1}{2}T \approx J$ for m-th order truncation. So the higher the truncaction order the more grid points are used in combination with the same spectral resolution. A higher truncation order therefore makes all grid-point calculations more expensive, but can represent products of terms on the grid (which will have higher wavenumber components) to a higher accuracy as more grid points are available within a given wavelength. Using a sufficiently high truncation is therefore one way to avoid aliasing. In SpeedyWeather.jl the parameter dealiasing controls this option, = 1 would be linear, = 2 quadratic, = 3 cubic etc.

          Full Gaussian grid

          ...

          Full Clenshaw-Curtis grid

          ...

          Octahedral Gaussian grid

          ...

          The HEALPix grid

          Technically, HEALPix grids are a class of grids that tessalate the sphere into faces that are often called basepixels. For each member of this class there are $N_\varphi$ basepixels in zonal direction and $N_\theta$ basepixels in meridional direction. For $N_\varphi = 4$ and $N_\theta = 3$ we obtain the classical HEALPix grid with $N_\varphi N_\theta = 12$ basepixels shown above in Implemented Grids. Each basepixel has a quadratic number of grid points in them. There's an equatorial zone where the number of zonal grid points is constant (always $2N$, so 32 at $N=16$) and there are polar caps above and below the equatorial zone with the border at $\cos(\theta) = 2/3$ ($\theta$ in colatitudes).

          Following Górski, 2004[1], the $z=cos(\theta)$ colatitude of the $j$-th ring in the north polar cap, $j=1,...,N_{side}$ with $2N_{side} = N$ is

          \[z = 1 - \frac{j^2}{3N_{side}^2}\]

          and on that ring, the longitude $\phi$ of the $i$-th point ($i$ is the in-ring-index) is at

          \[\phi = \frac{\pi}{2j}(i-\tfrac{1}{2})\]

          The in-ring index $i$ goes from $i=1,...,4$ for the first (i.e. northern-most) ring, $i=1,...,8$ for the second ring and $i = 1,...,4j$ for the $j$-th ring in the northern polar cap.

          In the north equatorial belt $j=N_{side},...,2N_{side}$ this changes to

          \[z = \frac{4}{3} - \frac{2j}{3N_{side}}\]

          and the longitudes change to ($i$ is always $i = 1,...,4N_{side}$ in the equatorial belt meaning the number of longitude points is constant here)

          \[\phi = \frac{\pi}{2N_{side}}(i - \frac{s}{2}), \quad s = (j - N_{side} + 1) \mod 2\]

          The modulo function comes in as there is an alternating longitudinal offset from the prime meridian (see Implemented grids). For the southern hemisphere the grid point locations can be obtained by mirror symmetry.

          Grid cell boundaries

          The cell boundaries are obtained by setting $i = k + 1/2$ or $i = k + 1/2 + j$ (half indices) into the equations above, such that $z(\phi,k)$, a function for the cosine of colatitude $z$ of index $k$ and the longitude $\phi$ is obtained. These are then (northern polar cap)

          \[z = 1 - \frac{k^2}{3N_{side}^2}\left(\frac{\pi}{2\phi_t}\right)^2, \quad z = 1 - \frac{k^2}{3N_{side}^2}\left(\frac{\pi}{2\phi_t - \pi}\right)^2\]

          with $\phi_t = \phi \mod \tfrac{\pi}{2}$ and in the equatorial belt

          \[z = \frac{2}{3}-\frac{4k}{3N_{side}} \pm \frac{8\phi}{3\pi}\]

          OctaHEALPix grid

          While the classic HEALPix grid is based on a dodecahedron, other choices for $N_\varphi$ and $N_\theta$ in the class of HEALPix grids will change the number of faces there are in zonal/meridional direction. With $N_\varphi = 4$ and $N_\theta = 1$ we obtain a HEALPix grid that is based on an octahedron, which has the convenient property that there are twice as many longitude points around the equator than there are latitude rings between the poles. This is a desirable for truncation as this matches the distances too, $2\pi$ around the Equator versus $\pi$ between the poles. $N_\varphi = 6, N_\theta = 2$ or $N_\varphi = 8, N_\theta = 3$ are other possible choices for this, but also more complicated. See Górski, 2004[1] for further examples and visulations of these grids.

          We call the $N_\varphi = 4, N_\theta = 1$ HEALPix grid the OctaHEALPix grid, which combines the equal-area property of the HEALPix grids with the octahedron that's also used in the OctahedralGaussianGrid or the OctahedralClenshawGrid. As $N_\theta = 1$ there is no equatorial belt which simplifies the grid. The latitude of the $j$-th isolatitude ring on the OctaHEALPixGrid is defined by

          \[z = 1 - \frac{j^2}{N^2},\]

          with $j=1,...,N$, and similarly for the southern hemisphere by symmetry. On this grid $N_{side} = N$ where $N$= nlat_half, the number of latitude rings on one hemisphere, Equator included, because each of the 4 basepixels spans from pole to pole and covers a quarter of the sphere. The longitudes with in-ring- index $i = 1,...,4j$ are

          \[\phi = \frac{\pi}{2j}(i - \tfrac{1}{2})\]

          and again, the southern hemisphere grid points are obtained by symmetry.

          Grid cell boundaries

          Similar to the grid cell boundaries for the HEALPix grid, the OctaHEALPix grid's boundaries are

          \[z = 1 - \frac{k^2}{N^2}\left(\frac{\pi}{2\phi_t}\right)^2, \quad z = 1 - \frac{k^2}{N^2}\left(\frac{\pi}{2\phi_t - \pi}\right)^2\]

          The $3N_{side}^2$ in the denominator of the HEALPix grid came simply $N^2$ for the OctaHEALPix grid and there's no separate equation for the equatorial belt (which doesn't exist in the OctaHEALPix grid).

          References

          [1] Górski, Hivon, Banday, Wandelt, Hansen, Reinecke, Bartelmann, 2004. HEALPix: A FRAMEWORK FOR HIGH-RESOLUTION DISCRETIZATION AND FAST ANALYSIS OF DATA DISTRIBUTED ON THE SPHERE, The Astrophysical Journal. doi:10.1086/427976

          diff --git a/v0.5.0/how_to_run_speedy/index.html b/v0.5.0/how_to_run_speedy/index.html new file mode 100644 index 000000000..7a27e3fbb --- /dev/null +++ b/v0.5.0/how_to_run_speedy/index.html @@ -0,0 +1,7 @@ + +How to run SpeedyWeather.jl · SpeedyWeather.jl

          How to run SpeedyWeather.jl

          The simplest way to run SpeedyWeather.jl with default parameters is

          using SpeedyWeather
          +run_speedy()

          Hooray, you have just simulated the Earth's atmosphere. Parameters, their meanings and defaults are documented in Parameters. For example, if you want to run the primitive equation dry core (no humidity) simulation in double precision (Float64), at higher resolution (trunc, the triangular spectral truncation), slow down the rotation of the Earth (rotation in $s^{-1}$), and create some netCDF ouput, do

          run_speedy(Float64,PrimitiveDryCore,trunc=42,planet=Earth(rotation=1e-5),output=true)

          If provided, the number format has to be the first argument, the model (Barotropic, ShallowWater, PrimitiveDryCore, PrimitiveWetCore are available) the second, and all other arguments are keyword arguments.

          The run_speedy interface

          SpeedyWeather.run_speedyFunction
          progn_vars = run_speedy(NF,Model;kwargs...)     or
          +progn_vars = run_speedy(NF;kwargs...)           or
          +progn_vars = run_speedy(Model;kwargs...)

          Runs SpeedyWeather.jl with number format NF and the model Model and any additional parameters in the keyword arguments kwargs.... Any unspecified parameters will use the default values as defined in Parameters.

          source

          The initialize_speedy interface

          SpeedyWeather.initialize_speedyFunction
          progn_vars, diagn_vars, model_setup = initialize_speedy(NF,Model;kwargs...) or
          +progn_vars, diagn_vars, model_setup = initialize_speedy(NF,kwargs...)       or
          +progn_vars, diagn_vars, model_setup = initialize_speedy(Model,kwargs...)

          Initialize the model by returning

          • progn_vars, the initial conditions of the prognostic variables
          • diagn_vars, the preallocated the diagnotic variables (initialised to zero)
          • model_setup, the collected pre-calculated structs that don't change throughout integration.

          The keyword arguments kwargs are the same as for run_speedy. The model_setup contains fields that hold the parameters, constants, geometry, spectral transform, boundaries and diffusion.

          source
          diff --git a/v0.5.0/index.html b/v0.5.0/index.html new file mode 100644 index 000000000..cfe2a1fd9 --- /dev/null +++ b/v0.5.0/index.html @@ -0,0 +1,2 @@ + +Home · SpeedyWeather.jl

          SpeedyWeather.jl documentation

          Welcome to the documentation for SpeedyWeather.jl a global atmospheric circulation model with simple parametrizations to represent physical processes such as clouds, precipitation and radiation.

          Overview

          SpeedyWeather.jl is a global spectral model that uses a spherical harmonic transform to perform some calculations in spectral space (time integration, gradients, linear terms) and some in grid-point space (advection, non-linear terms, parameterizations). The prognostic variables used are vorticity, divergence, absolute temperature, logarithm of surface pressure and specific humidity. The time stepping uses a leapfrog scheme with additional filters and a semi-implicit formulation for gravity waves. The default resolution is T31 (96x48 grid points on a regular Gaussian grid, about 400km at the Equator) and 8 vertical levels.

          Simple parameterizations are used to represent the physical processes convection, large-scale condensation, clouds, short-wave radiation, long-waves radiation, surface fluxes of momentum and energy, and vertical diffusion.

          Manual outline

          See the following pages of the documentation for more details

          and the original documentation by Molteni and Kucharski.

          Scope

          The focus of SpeedyWeather.jl is to develop a global atmospheric model of intermediate complexity, that can run at various levels of precision (16, 32 and 64-bit) on different architectures (x86 and ARM, GPUs in the future). Additionally, the model is written in an entirely number format-flexible way, such that any custom number format can be used and Julia will compile to the format automatically. Similarly, many model components are written in an abstract way to support modularity and extandability.

          History

          SpeedyWeather.jl is a Julia implementation of SPEEDY, which is written in Fortran 77. Sam Hatfield translated SPEEDY to Fortran 90 and started the project to port it to Julia. However, we are making an effort to overhaul the implementation of the mathematical model behind speedy completely and it is unlikely that a single line of code survived.

          Installation

          SpeedyWeather.jl is registered in the Julia Registry. Open Julia's package manager from the REPL with ] and add the github repository to install SpeedyWeather.jl and all dependencies

          (@v1.8) pkg> add SpeedyWeather

          which will automatically install the latest release. However, you may want to install directly from the main branch with

          (@v1.8) pkg> add https://github.com/SpeedyWeather/SpeedyWeather.jl#main

          other branches than #main can be installed by adding #branch_name instead.

          Developers

          The development of SpeedyWeather.jl is lead by Milan Klöwer and current and past contributors include

          Any contributions are always welcome!

          Funding

          Contributors received funding by the European Research Council under Horizon 2020 within the ITHACA project, grant agreement number 741112 from 2021-2022.

          diff --git a/v0.5.0/new_model_setups/index.html b/v0.5.0/new_model_setups/index.html new file mode 100644 index 000000000..ed0bcf6f2 --- /dev/null +++ b/v0.5.0/new_model_setups/index.html @@ -0,0 +1,2 @@ + +New model setups · SpeedyWeather.jl diff --git a/v0.5.0/parametrizations/index.html b/v0.5.0/parametrizations/index.html new file mode 100644 index 000000000..3579e997f --- /dev/null +++ b/v0.5.0/parametrizations/index.html @@ -0,0 +1,2 @@ + +Parameterizations · SpeedyWeather.jl
          diff --git a/v0.5.0/search/index.html b/v0.5.0/search/index.html new file mode 100644 index 000000000..7a1091e2e --- /dev/null +++ b/v0.5.0/search/index.html @@ -0,0 +1,2 @@ + +Search · SpeedyWeather.jl

          Loading search...

            diff --git a/v0.5.0/search_index.js b/v0.5.0/search_index.js new file mode 100644 index 000000000..fd74e242a --- /dev/null +++ b/v0.5.0/search_index.js @@ -0,0 +1,3 @@ +var documenterSearchIndex = {"docs": +[{"location":"development/#Development-notes","page":"Development notes","title":"Development notes","text":"","category":"section"},{"location":"development/","page":"Development notes","title":"Development notes","text":"To run tests, from the path of your local clone of the repository do:","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"julia --project=. -e 'import Pkg; Pkg.test()'","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"To install dependencies:","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"julia --project -e 'import Pkg; Pkg.instantiate()`","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"then opening:","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"julia --project","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"you are able to using SpeedyWeather.","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"To generate the docs:","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"julia --project=docs -e 'import Pkg; Pkg.develop(path=\".\"); Pkg.instantiate()'\njulia --project=docs docs/make.jl","category":"page"},{"location":"development/","page":"Development notes","title":"Development notes","text":"If the docs are generated successfully, you view them by opening docs/build/index.html in your favorite browser.","category":"page"},{"location":"functions/#Function-and-type-index","page":"Function and type index","title":"Function and type index","text":"","category":"section"},{"location":"functions/#Parameters-and-constants","page":"Function and type index","title":"Parameters and constants","text":"","category":"section"},{"location":"functions/","page":"Function and type index","title":"Function and type index","text":"SpeedyWeather.Parameters\nSpeedyWeather.Constants","category":"page"},{"location":"functions/#SpeedyWeather.Parameters","page":"Function and type index","title":"SpeedyWeather.Parameters","text":"P = Parameters{M<:ModelSetup}(kwargs...) <: AbstractParameters{M}\n\nA struct to hold all model parameters that may be changed by the user. The struct uses keywords such that default values can be changed at creation. The default values of the keywords define the default model setup.\n\nNF::DataType: number format\ntrunc::Int64: spectral truncation\nGrid::Type{<:SpeedyWeather.RingGrids.AbstractGrid}: grid in use\ndealiasing::Float64: dealiasing factor, 1=linear, 2=quadratic, 3=cubic grid\nplanet::SpeedyWeather.Planet: planet\nmol_mass_dry_air::Any: molar mass of dry air [g/mol]\nmol_mass_vapour::Any: molar mass of water vapour [g/mol]\ncₚ::Float64: specific heat at constant pressure [J/K/kg]\nR_gas::Float64: universal gas constant [J/K/mol]\nR_dry::Float64: specific gas constant for dry air [J/kg/K]\nR_vapour::Float64: specific gas constant for water vapour [J/kg/K]\nalhc::Float64: latent heat of condensation [J/g] for consistency with specific humidity [g/Kg]\nalhs::Float64: latent heat of sublimation [?]\nsbc::Float64: stefan-Boltzmann constant [W/m²/K⁴]\nlapse_rate::Float64: moist adiabatic temperature lapse rate -dTdz [K/km]\ntemp_ref::Float64: absolute temperature at surface z=0 [K]\ntemp_top::Float64: absolute temperature in stratosphere [K]\nΔT_stratosphere::Float64: for stratospheric lapse rate [K] after Jablonowski\nscale_height::Float64: scale height for pressure [km]\npres_ref::Float64: surface pressure [hPa]\nscale_height_humid::Float64: scale height for specific humidity [km]\nrelhumid_ref::Float64: relative humidity of near-surface air [1]\nwater_pres_ref::Float64: saturation water vapour pressure [Pa]\nlayer_thickness::Float64: layer thickness for the shallow water model [km]\nGLcoefs::SpeedyWeather.Coefficients: vertical coordinates of the nlev vertical levels, defined by a generalised logistic function, interpolating ECMWF's L31 configuration\nσ_tropopause::Float64: σ coordinate where the tropopause starts\nσ_levels_half::Vector{Float64}: only used if set manually, otherwise empty\nnlev::Int64: number of vertical levels\ndiffusion::SpeedyWeather.DiffusionParameters: horizontal (hyper)-diffusion\nvertical_diffusion::SpeedyWeather.VerticalDiffusion: vertical diffusion\nstatic_energy_diffusion::SpeedyWeather.VerticalDiffusion: static energy diffusion\ninterface_relaxation::Bool: turn on interface relaxation for shallow water?\ninterface_relax_time::Float64: time scale [hrs] of interface relaxation\ninterface_relax_amplitude::Float64: Amplitude [m] of interface relaxation\nphysics::Bool: en/disables the physics parameterizations\nn_shortwave::Int64: Compute shortwave radiation every n steps\nsppt_on::Bool: Turn on SPPT?\nmagnus_coefs::SpeedyWeather.Coefficients: For computing saturation vapour pressure\nk_lsc::Int64: Index of atmospheric level at which large-scale condensation begins\nRH_thresh_pbl_lsc::Float64: Relative humidity threshold for boundary layer\nRH_thresh_range_lsc::Float64: Vertical range of relative humidity threshold\nRH_thresh_max_lsc::Float64: Maximum relative humidity threshold\nhumid_relax_time_lsc::Float64: Relaxation time for humidity (hours)\npres_thresh_cnv::Float64: Minimum (normalised) surface pressure for the occurrence of convection\nRH_thresh_pbl_cnv::Float64: Relative humidity threshold for convection in PBL\nRH_thresh_trop_cnv::Float64: Relative humidity threshold for convection in the troposphere\nhumid_relax_time_cnv::Float64: Relaxation time for PBL humidity (hours)\nmax_entrainment::Float64: Maximum entrainment as a fraction of cloud-base mass flux\nratio_secondary_mass_flux::Float64: Ratio between secondary and primary mass flux at cloud-base\nnband::Int64: Number of bands used to compute fband\nradiation_coefs::SpeedyWeather.Coefficients: radiation coefficients\nboundary_layer::SpeedyWeather.BoundaryLayer{Float64}: boundary layer drag\ntemperature_relaxation::SpeedyWeather.TemperatureRelaxation{Float64}: temperature relaxation\nstartdate::Dates.DateTime: time at which the integration starts\nn_days::Float64: number of days to integrate for\nΔt_at_T31::Float64: time step in minutes for T31, scale linearly to trunc\nrobert_filter::Float64: Robert (1966) time filter coefficeint to suppress comput. mode\nwilliams_filter::Float64: William's time filter (Amezcua 2011) coefficient for 3rd order acc\nimplicit_α::Float64: coefficient for semi-implicit computations to filter gravity waves\nrecalculate_implicit::Int64: recalculate implicit operators on temperature profile every n time steps\nrecompute_legendre::Bool: recomputation is slower but requires less memory\nlegendre_NF::DataType: which format to use to calculate the Legendre polynomials\nlegendre_shortcut::Symbol: :linear, :quadratic, :cubic, :lincub_coslat, :linquad_coslat²\nboundary_path::String: package location is default\norography::SpeedyWeather.AbstractOrography: orography\norography_scale::Float64: scale orography by a factor\norography_path::String: path of orography\norography_file::String: filename of orography\nseed::Int64: random seed for the global random number generator\ninitial_conditions::SpeedyWeather.InitialConditions: initial conditions\npressure_on_orography::Bool: calculate the initial surface pressure from orography\nverbose::Bool: print dialog for feedback\ndebug::Bool: print debug info, NaR detection\noutput::Bool: Store data in netCDF?\noutput_dt::Float64: output time step [hours]\noutput_path::String: path to output folder\nrun_id::Union{Int64, String}: name of the output folder, defaults to 4-digit number counting up from run-0001\noutput_filename::String: name of the output netcdf file\noutput_vars::Vector{Symbol}: variables to output: :u, :v, :vor, :div, :temp, :humid\ncompression_level::Int64: compression level; 1=low but fast, 9=high but slow\nkeepbits::NamedTuple: mantissa bits to keep for every variable\nversion::VersionNumber: SpeedyWeather.jl version number\noutput_NF::DataType: number format used for output\noutput_nlat_half::Int64: 0 = reuse nlat_half from dynamical core\noutput_Grid::Type{<:SpeedyWeather.RingGrids.AbstractFullGrid}: output grid\noutput_Interpolator::Type{<:SpeedyWeather.RingGrids.AbstractInterpolator}: output interpolator\noutput_matrix::Bool: if true sort gridpoints into a matrix\noutput_quadrant_rotation::NTuple{4, Int64}: rotation of output quadrant\noutput_matrix_quadrant::NTuple{4, Tuple{Int64, Int64}}: matrix of output quadrant\nmissing_value::Float64: missing value to be used in netcdf output\nwrite_restart::Bool: also write restart file if output==true?\nrestart_path::String: path for restart file\nrestart_id::Union{Int64, String}: run_id of restart file in run-????/restart.jld2\n\n\n\n\n\n","category":"type"},{"location":"functions/#Boundaries-and-boundary-conditions","page":"Function and type index","title":"Boundaries and boundary conditions","text":"","category":"section"},{"location":"functions/","page":"Function and type index","title":"Function and type index","text":"SpeedyWeather.Boundaries","category":"page"},{"location":"functions/#Spherical-harmonic-transform","page":"Function and type index","title":"Spherical harmonic transform","text":"","category":"section"},{"location":"functions/","page":"Function and type index","title":"Function and type index","text":"SpeedyWeather.GeoSpectral\nSpeedyWeather.SpectralTransform\nSpeedyWeather.spectral\nSpeedyWeather.spectral!\nSpeedyWeather.gridded\nSpeedyWeather.gridded!\nSpeedyWeather.triangular_truncation\nSpeedyWeather.roundup_fft\nSpeedyWeather.spectral_truncation\nSpeedyWeather.spectral_truncation!\nSpeedyWeather.spectral_interpolation!\nSpeedyWeather.get_legendre_polynomials!\nSpeedyWeather.∇²!\nSpeedyWeather.∇²\nSpeedyWeather.∇⁻²!\nSpeedyWeather.∇⁻²\nSpeedyWeather.gradient_latitude!\nSpeedyWeather.gradient_latitude\nSpeedyWeather.gradient_longitude!\nSpeedyWeather.gradient_longitude\nSpeedyWeather.divergence!\nSpeedyWeather.curl!\nSpeedyWeather._divergence!\nSpeedyWeather.curl_div!\nSpeedyWeather.UV_from_vordiv!\nSpeedyWeather.UV_from_vor!\nSpeedyWeather.ϵlm\nSpeedyWeather.get_recursion_factors","category":"page"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.SpectralTransform","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.SpectralTransform","text":"S = SpectralTransform{NF<:AbstractFloat}(...)\n\nSpectralTransform struct that contains all parameters and preallocated arrays for the spectral transform.\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.spectral","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.spectral","text":"alms = spectral( map::AbstractMatrix;\n Grid::Type{<:AbstractGrid}=DEFAULT_GRID,\n kwargs...)\n\nConverts map to grid(map) to execute spectral(map::AbstractGrid;kwargs...).\n\n\n\n\n\nalms = spectral( map::AbstractGrid;\n Grid::Type{<:AbstractGrid}=DEFAULT_GRID,\n kwargs...)\n\nConverts map to Grid(map) to execute spectral(map::AbstractGrid;kwargs...).\n\n\n\n\n\nalms = spectral( map::AbstractMatrix;\n Grid::Type{<:AbstractGrid}=DEFAULT_GRID,\n kwargs...)\n\nSpectral transform (grid to spectral) map to grid(map) to execute spectral(map::AbstractGrid;kwargs...).\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.spectral!","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.spectral!","text":"spectral!( alms::LowerTriangularMatrix,\n map::AbstractGrid,\n S::SpectralTransform)\n\nSpectral transform (grid to spectral space) from the gridded field map on a grid<:AbstractGrid to a LowerTriangularMatrix of spherical harmonic coefficients alms. Uses FFT in the zonal direction, and a Legendre Transform in the meridional direction exploiting symmetries. The spectral transform is number format-flexible as long as the parametric types of map, alms, S are identical. The spectral transform is grid-flexible as long as the typeof(map)<:AbstractGrid. Uses the precalculated arrays, FFT plans and other constants in the SpectralTransform struct S.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.gridded","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.gridded","text":"map = gridded( alms::AbstractMatrix;\n recompute_legendre::Bool=true,\n grid::Type{<:AbstractGrid}=DEFAULT_GRID)\n\nSpectral transform (spectral to grid space) from spherical coefficients alms to a newly allocated gridded field map. Based on the size of alms the grid type grid, the spatial resolution is retrieved based on the truncation defined for grid. SpectralTransform struct S is allocated to execute gridded(alms,S).\n\n\n\n\n\nmap = gridded( alms::AbstractMatrix,\n S::SpectralTransform)\n\nSpectral transform (spectral to grid space) from spherical coefficients alms to a newly allocated gridded field map with precalculated properties based on the SpectralTransform struct S. alms is converted to a LowerTriangularMatrix to execute the in-place gridded!.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.gridded!","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.gridded!","text":"gridded!( diagn::DiagnosticVariables{NF}, # all diagnostic variables\n progn::PrognosticVariables{NF}, # all prognostic variables\n M::BarotropicModel, # everything that's constant\n lf::Int=1 # leapfrog index\n ) where NF\n\nPropagate the spectral state of the prognostic variables progn to the diagnostic variables in diagn for the barotropic vorticity model. Updates grid vorticity, spectral stream function and spectral and grid velocities u,v.\n\n\n\n\n\ngridded!( diagn::DiagnosticVariables{NF}, # all diagnostic variables\n progn::PrognosticVariables{NF}, # all prognostic variables\n lf::Int=1 # leapfrog index\n M::ShallowWaterModel, # everything that's constant\n ) where NF\n\nPropagate the spectral state of the prognostic variables progn to the diagnostic variables in diagn for the shallow water model. Updates grid vorticity, grid divergence, grid interface displacement (pres_grid) and the velocities U,V (scaled by cos(lat)).\n\n\n\n\n\ngridded!( map::AbstractGrid,\n alms::LowerTriangularMatrix,\n S::SpectralTransform)\n\nSpectral transform (spectral to grid) of the spherical harmonic coefficients alms to a gridded field map. The spectral transform is number format-flexible as long as the parametric types of map, alms, S are identical. The spectral transform is grid-flexible as long as the typeof(map)<:AbstractGrid. Uses the precalculated arrays, FFT plans and other constants in the SpectralTransform struct S.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.spectral_truncation","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.spectral_truncation","text":"alms_trunc = spectral_truncation(alms,trunc)\n\nReturns a spectral coefficient matrix alms_trunc that is truncated from alms to the size (trunc+1)². alms_trunc only contains those coefficient of alms for which m,l ≤ trunc, and l ≥ m are zero anyway. If trunc is larger than the implicit truncation in alms obtained from its size than spectral_interpolation is automatically called instead, returning alms_interp, a coefficient matrix that is larger than alms with padded zero coefficients.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.spectral_truncation!","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.spectral_truncation!","text":"spectral_truncation!(alms::AbstractMatrix,ltrunc::Integer,mtrunc::Integer)\n\nTruncate spectral coefficients alms in-place by setting (a) the upper right triangle to zero and (b) all coefficients for which the degree l is larger than the truncation ltrunc or order m larger than the truncaction mtrunc.\n\n\n\n\n\nspectral_truncation!(alms::LowerTriangularMatrix,ltrunc::Integer,mtrunc::Integer)\n\nTruncate spectral coefficients alms in-place by setting all coefficients for which the degree l is larger than the truncation ltrunc or order m larger than the truncaction mtrunc. Similar to spectral_truncation!(::AbstractMatrix, ...) but skips the upper triangle which is zero by design for LowerTriangularMatrix.\n\n\n\n\n\nspectral_truncation!(alms,trunc)\n\nTruncate spectral coefficients alms in-place by setting (a) the upper right triangle to zero and (b) all coefficients for which the degree l is larger than the truncation trunc.\n\n\n\n\n\nspectral_truncation!(alms)\n\nTruncate spectral coefficients alms in-place by setting the upper right triangle to zero. This is to enforce that all coefficients for which the degree l is larger than order m are zero.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.∇²!","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.∇²!","text":"∇²!( ∇²alms::LowerTriangularMatrix,\n alms::LowerTriangularMatrix,\n S::SpectralTransform;\n add::Bool=false,\n flipsign::Bool=false,\n inverse::Bool=false)\n\nLaplace operator ∇² applied to the spectral coefficients alms in spherical coordinates. The radius R is omitted in the eigenvalues which are precomputed in S. ∇²! is the in-place version which directly stores the output in the first argument ∇²alms.\n\nKeyword arguments\n\nadd=true adds the ∇²(alms) to the output\nflipsign=true computes -∇²(alms) instead\ninverse=true computes ∇⁻²(alms) instead\n\nDefault is add=false, flipsign=false, inverse=false. These options can be combined.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.∇⁻²!","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.∇⁻²!","text":"∇⁻²!( ∇⁻²alms::LowerTriangularMatrix,\n alms::LowerTriangularMatrix,\n S::SpectralTransform;\n add::Bool=false,\n flipsign::Bool=false)\n\nCalls ∇²!(∇⁻²alms, alms, S; add, flipsign, inverse=true).\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.divergence!","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.divergence!","text":"divergence!(div::LowerTriangularMatrix,\n u::LowerTriangularMatrix,\n v::LowerTriangularMatrix,\n S::SpectralTransform{NF};\n flipsign::Bool=false,\n add::Bool=false,\n )\n\nDivergence of a vector u,v written into div, div = ∇⋅(u,v). u,v are expected to have a 1/coslat-scaling included, then div is not scaled. flipsign option calculates -∇⋅(u,v) instead. add option calculates div += ∇⋅(u,v) instead. flipsign and add can be combined. This functions only creates the kernel and calls the generic divergence function _divergence! subsequently.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.curl!","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.curl!","text":"curl!( curl::LowerTriangularMatrix,\n u::LowerTriangularMatrix,\n v::LowerTriangularMatrix,\n S::SpectralTransform;\n flipsign::Bool=false,\n add::Bool=false,\n )\n\nCurl of a vector u,v written into curl, curl = ∇×(u,v). u,v are expected to have a 1/coslat-scaling included, then curl is not scaled. flipsign option calculates -∇×(u,v) instead. add option calculates curl += ∇×(u,v) instead. flipsign and add can be combined. This functions only creates the kernel and calls the generic divergence function _divergence! subsequently with flipped u,v -> v,u for the curl.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.UV_from_vordiv!","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.UV_from_vordiv!","text":"UV_from_vordiv!(U::LowerTriangularMatrix,\n V::LowerTriangularMatrix,\n vor::LowerTriangularMatrix,\n div::LowerTriangularMatrix,\n S::SpectralTransform)\n\nGet U,V (=(u,v)*coslat) from vorticity ζ and divergence D in spectral space. Two operations are combined into a single linear operation. First, invert the spherical Laplace ∇² operator to get stream function from vorticity and velocity potential from divergence. Then compute zonal and meridional gradients to get U,V.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.SpeedyTransforms.UV_from_vor!","page":"Function and type index","title":"SpeedyWeather.SpeedyTransforms.UV_from_vor!","text":"UV_from_vor!( U::LowerTriangularMatrix,\n V::LowerTriangularMatrix,\n vor::LowerTriangularMatrix,\n S::SpectralTransform)\n\nGet U,V (=(u,v)*coslat) from vorticity ζ spectral space (divergence D=0) Two operations are combined into a single linear operation. First, invert the spherical Laplace ∇² operator to get stream function from vorticity. Then compute zonal and meridional gradients to get U,V.\n\n\n\n\n\n","category":"function"},{"location":"functions/#Dynamics","page":"Function and type index","title":"Dynamics","text":"","category":"section"},{"location":"functions/","page":"Function and type index","title":"Function and type index","text":"SpeedyWeather.bernoulli_potential!\nSpeedyWeather.volume_flux_divergence!\nSpeedyWeather.vorticity_fluxes!\nSpeedyWeather.vorticity_flux_curl!\nSpeedyWeather.vorticity_flux_divergence!","category":"page"},{"location":"functions/#SpeedyWeather.bernoulli_potential!","page":"Function and type index","title":"SpeedyWeather.bernoulli_potential!","text":"bernoulli_potential!( diagn::DiagnosticVariablesLayer, \n G::Geometry,\n S::SpectralTransform)\n\nComputes the Laplace operator ∇² of the Bernoulli potential B in spectral space.\n\ncomputes the kinetic energy KE = ½(u²+v²) on the grid\ntransforms KE to spectral space\nadds geopotential for the Bernoulli potential in spectral space\ntakes the Laplace operator.\n\nThis version is used for both ShallowWater and PrimitiveEquation, only the geopotential calculation in geopotential! differs.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.volume_flux_divergence!","page":"Function and type index","title":"SpeedyWeather.volume_flux_divergence!","text":"volume_flux_divergence!(diagn::DiagnosticVariablesLayer,\n surface::SurfaceVariables,\n model::ShallowWater)\n\nComputes the (negative) divergence of the volume fluxes uh,vh for the continuity equation, -∇⋅(uh,vh).\n\n\n\n\n\n","category":"function"},{"location":"functions/#Geometry","page":"Function and type index","title":"Geometry","text":"","category":"section"},{"location":"functions/","page":"Function and type index","title":"Function and type index","text":"SpeedyWeather.Geometry\nSpeedyWeather.vertical_coordinates\nSpeedyWeather.GenLogisticCoefs\nSpeedyWeather.generalised_logistic","category":"page"},{"location":"functions/#SpeedyWeather.Geometry","page":"Function and type index","title":"SpeedyWeather.Geometry","text":"Geometry{NF<:AbstractFloat} <: AbstractGeometry\n\nGeometry struct containing parameters and arrays describing an iso-latitude grid <:AbstractGrid and the vertical levels. NF is the number format used for the precomputed constants.\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.vertical_coordinates","page":"Function and type index","title":"SpeedyWeather.vertical_coordinates","text":"σ_levels_half = vertical_coordinates(P::Parameters)\n\nVertical sigma coordinates defined by their nlev+1 half levels σ_levels_half. Sigma coordinates are fraction of surface pressure (p/p0) and are sorted from top (stratosphere) to bottom (surface). The first half level is at 0 the last at 1. Evaluate a generalised logistic function with coefficients in P for the distribution of values in between. Default coefficients follow the L31 configuration historically used at ECMWF.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.GenLogisticCoefs","page":"Function and type index","title":"SpeedyWeather.GenLogisticCoefs","text":"Coefficients of the generalised logistic function to describe the vertical coordinate. Default coefficients A,K,C,Q,B,M,ν are fitted to the old L31 configuration at ECMWF. See geometry.jl and function vertical_coordinate for more informaiton.\n\nFollowing the notation of https://en.wikipedia.org/wiki/Generalisedlogisticfunction (Dec 15 2021).\n\nChange default parameters for more/fewer levels in the stratosphere vs troposphere vs boundary layer.\n\n\n\n\n\n","category":"type"},{"location":"functions/#SpeedyWeather.generalised_logistic","page":"Function and type index","title":"SpeedyWeather.generalised_logistic","text":"Generalised logistic function based on the coefficients in coefs.\n\n\n\n\n\n","category":"function"},{"location":"functions/#Time-stepping","page":"Function and type index","title":"Time stepping","text":"","category":"section"},{"location":"functions/","page":"Function and type index","title":"Function and type index","text":"SpeedyWeather.time_stepping!\nSpeedyWeather.timestep!\nSpeedyWeather.first_timesteps!\nSpeedyWeather.leapfrog!","category":"page"},{"location":"functions/#SpeedyWeather.time_stepping!","page":"Function and type index","title":"SpeedyWeather.time_stepping!","text":"time_stepping!( progn::PrognosticVariables, # all prognostic variables\n diagn::DiagnosticVariables, # all pre-allocated diagnostic variables\n model::ModelSetup) # all precalculated structs\n\nMain time loop that that initialises output and feedback, loops over all time steps and calls the output and feedback functions.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.timestep!","page":"Function and type index","title":"SpeedyWeather.timestep!","text":"timestep!( progn::PrognosticVariables, # all prognostic variables\n diagn::DiagnosticVariables, # all pre-allocated diagnostic variables\n time::DateTime, # time at timestep\n dt::Real, # time step (mostly =2Δt, but for init steps =Δt,Δt/2)\n lf1::Int=2, # leapfrog index 1 (dis/enables Robert+William's filter)\n lf2::Int=2, # leapfrog index 2 (time step used for tendencies)\n M::BarotropicModel, # everything that's constant at runtime\n )\n\nCalculate a single time step for the barotropic vorticity equation model of SpeedyWeather.jl \n\n\n\n\n\ntimestep!( progn::PrognosticVariables{NF}, # all prognostic variables\n diagn::DiagnosticVariables{NF}, # all pre-allocated diagnostic variables\n time::DateTime, # time at timestep\n dt::Real, # time step (mostly =2Δt, but for init steps =Δt,Δt/2)\n M::ShallowWaterModel, # everything that's constant at runtime\n lf1::Int=2, # leapfrog index 1 (dis/enables Robert+William's filter)\n lf2::Int=2 # leapfrog index 2 (time step used for tendencies)\n ) where {NF<:AbstractFloat}\n\nCalculate a single time step for the shallow water model of SpeedyWeather.jl \n\n\n\n\n\ntimestep!( progn::PrognosticVariables{NF}, # all prognostic variables\n diagn::DiagnosticVariables{NF}, # all pre-allocated diagnostic variables\n time::DateTime, # time at timestep\n dt::Real, # time step (mostly =2Δt, but for init steps =Δt,Δt/2)\n M::PrimitiveEquation, # everything that's constant at runtime\n lf1::Int=2, # leapfrog index 1 (dis/enables Robert+William's filter)\n lf2::Int=2 # leapfrog index 2 (time step used for tendencies)\n ) where {NF<:AbstractFloat}\n\nCalculate a single time step for the primitive equation model of SpeedyWeather.jl \n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.first_timesteps!","page":"Function and type index","title":"SpeedyWeather.first_timesteps!","text":"first_timesteps!( progn::PrognosticVariables, # all prognostic variables\n diagn::DiagnosticVariables, # all pre-allocated diagnostic variables\n time::DateTime, # time at timestep\n M::ModelSetup, # everything that is constant at runtime\n feedback::AbstractFeedback # feedback struct\n )\n\nPerforms the first two initial time steps (Euler forward, unfiltered leapfrog) to populate the prognostic variables with two time steps (t=0,Δt) that can then be used in the normal leap frogging.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.leapfrog!","page":"Function and type index","title":"SpeedyWeather.leapfrog!","text":"leapfrog!( A_old::LowerTriangularMatrix{Complex{NF}}, # prognostic variable at t\n A_new::LowerTriangularMatrix{Complex{NF}}, # prognostic variable at t+dt\n tendency::LowerTriangularMatrix{Complex{NF}}, # tendency (dynamics+physics) of A\n dt::Real, # time step (=2Δt, but for init steps =Δt,Δt/2)\n lf::Int=2, # leapfrog index to dis/enable William's filter\n C::DynamicsConstants{NF}, # struct with constants used at runtime\n ) where {NF<:AbstractFloat} # number format NF\n\nPerforms one leapfrog time step with (lf=2) or without (lf=1) Robert+William's filter (see William (2009), Montly Weather Review, Eq. 7-9).\n\n\n\n\n\n","category":"function"},{"location":"functions/#Longwave-radiation","page":"Function and type index","title":"Longwave radiation","text":"","category":"section"},{"location":"functions/","page":"Function and type index","title":"Function and type index","text":"SpeedyWeather.radset!\nSpeedyWeather.radlw_down!\nSpeedyWeather.compute_bbe!\nSpeedyWeather.radlw_up!","category":"page"},{"location":"functions/#SpeedyWeather.radset!","page":"Function and type index","title":"SpeedyWeather.radset!","text":"function radset!(model::PrimitiveEquation) where {NF<:AbstractFloat}\n\nCompute energy fractions in four longwave bands as a function of temperature.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.radlw_down!","page":"Function and type index","title":"SpeedyWeather.radlw_down!","text":"function radlw_down!(\n column::ColumnVariables{NF}, model::PrimitiveEquation\n) where {NF<:AbstractFloat}\n\nCompute the downward flux of longwave radiation. Inputs variables are temp,wvi,tau2. Output column varables arefsfcd,dfabs,flux,st4a`.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.compute_bbe!","page":"Function and type index","title":"SpeedyWeather.compute_bbe!","text":"function compute_bbe!(\n column::ColumnVariables{NF}, model::PrimitiveEquation\n) where {NF<:AbstractFloat}\n\nComputes black-body (or grey-body) emissions.\n\nInput and output variables are ts and fsfcu, respectively.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.radlw_up!","page":"Function and type index","title":"SpeedyWeather.radlw_up!","text":"function radlw_up!(\n column::ColumnVariables{NF}, model::PrimitiveEquation\n) where {NF<:AbstractFloat}\n\nComputes the upward flux of longwave radiation.\n\nInput variables are nlev, temp, fsfcu, fsfcd, flux, ts, tau2, st4a, dfabs, stratc, σ_levels_thick, n_stratosphere_levels. Output column variables are fsfc and ftop.\n\n\n\n\n\n","category":"function"},{"location":"functions/#Shortwave-radiation","page":"Function and type index","title":"Shortwave radiation","text":"","category":"section"},{"location":"functions/","page":"Function and type index","title":"Function and type index","text":"SpeedyWeather.shortwave_radiation!\nSpeedyWeather.solar!\nSpeedyWeather.sol_oz!\nSpeedyWeather.cloud!\nSpeedyWeather.radsw!","category":"page"},{"location":"functions/#SpeedyWeather.shortwave_radiation!","page":"Function and type index","title":"SpeedyWeather.shortwave_radiation!","text":"function shortwave_radiation!(\n column::ColumnVariables{NF}, model::PrimitiveEquation\n)\n\nCompute air temperature tendencies from shortwave radiation for an atmospheric column. For more details see http://users.ictp.it/~kucharsk/speedydescription/kmver41_appendixA.pdf\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.solar!","page":"Function and type index","title":"SpeedyWeather.solar!","text":"function solar!(column::ColumnVariables{NF})\n\nCompute average daily flux of solar radiation for an atmospheric column, from Hartmann (1994).\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.sol_oz!","page":"Function and type index","title":"SpeedyWeather.sol_oz!","text":"function sol_oz!(\n column::ColumnVariables{NF}, model::PrimitiveEquation\n)\n\nCompute solar radiation parametres for an atmospheric column.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.cloud!","page":"Function and type index","title":"SpeedyWeather.cloud!","text":"function cloud!(\n column::ColumnVariables{NF}, model::PrimitiveEquation\n)\n\nCompute shortwave radiation cloud contibutions for an atmospheric column.\n\n\n\n\n\n","category":"function"},{"location":"functions/#SpeedyWeather.radsw!","page":"Function and type index","title":"SpeedyWeather.radsw!","text":"function radsw!(\n column::ColumnVariables{NF}, model::PrimitiveEquation\n)\n\nCompute shortwave radiation fluxes for an atmospheric column.\n\n\n\n\n\n","category":"function"},{"location":"parametrizations/#Parameterizations","page":"Parameterizations","title":"Parameterizations","text":"","category":"section"},{"location":"parametrizations/","page":"Parameterizations","title":"Parameterizations","text":"This page describes the mathematical formulation of the parameterizations used in SpeedyWeather.jl to represent physical processes in the atmopshere. Every section is followed by a brief description of implementation details.","category":"page"},{"location":"parametrizations/#Convection","page":"Parameterizations","title":"Convection","text":"","category":"section"},{"location":"parametrizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"parametrizations/#Large-scale-condensation","page":"Parameterizations","title":"Large-scale condensation","text":"","category":"section"},{"location":"parametrizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"parametrizations/#Clouds","page":"Parameterizations","title":"Clouds","text":"","category":"section"},{"location":"parametrizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"parametrizations/#Short-wave-radiation","page":"Parameterizations","title":"Short-wave radiation","text":"","category":"section"},{"location":"parametrizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"parametrizations/#Long-wave-radiation","page":"Parameterizations","title":"Long-wave radiation","text":"","category":"section"},{"location":"parametrizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"parametrizations/#Surface-fluxes-of-momentum-and-energy","page":"Parameterizations","title":"Surface fluxes of momentum and energy","text":"","category":"section"},{"location":"parametrizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"parametrizations/#Vertical-diffusion","page":"Parameterizations","title":"Vertical diffusion","text":"","category":"section"},{"location":"parametrizations/","page":"Parameterizations","title":"Parameterizations","text":"more to come ...","category":"page"},{"location":"how_to_run_speedy/#How-to-run-SpeedyWeather.jl","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"","category":"section"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"The simplest way to run SpeedyWeather.jl with default parameters is","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"using SpeedyWeather\nrun_speedy()","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"Hooray, you have just simulated the Earth's atmosphere. Parameters, their meanings and defaults are documented in Parameters. For example, if you want to run the primitive equation dry core (no humidity) simulation in double precision (Float64), at higher resolution (trunc, the triangular spectral truncation), slow down the rotation of the Earth (rotation in s^-1), and create some netCDF ouput, do","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"run_speedy(Float64,PrimitiveDryCore,trunc=42,planet=Earth(rotation=1e-5),output=true)","category":"page"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"If provided, the number format has to be the first argument, the model (Barotropic, ShallowWater, PrimitiveDryCore, PrimitiveWetCore are available) the second, and all other arguments are keyword arguments.","category":"page"},{"location":"how_to_run_speedy/#The-run_speedy-interface","page":"How to run SpeedyWeather.jl","title":"The run_speedy interface","text":"","category":"section"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"run_speedy","category":"page"},{"location":"how_to_run_speedy/#SpeedyWeather.run_speedy","page":"How to run SpeedyWeather.jl","title":"SpeedyWeather.run_speedy","text":"progn_vars = run_speedy(NF,Model;kwargs...) or\nprogn_vars = run_speedy(NF;kwargs...) or\nprogn_vars = run_speedy(Model;kwargs...)\n\nRuns SpeedyWeather.jl with number format NF and the model Model and any additional parameters in the keyword arguments kwargs.... Any unspecified parameters will use the default values as defined in Parameters.\n\n\n\n\n\n","category":"function"},{"location":"how_to_run_speedy/#The-initialize_speedy-interface","page":"How to run SpeedyWeather.jl","title":"The initialize_speedy interface","text":"","category":"section"},{"location":"how_to_run_speedy/","page":"How to run SpeedyWeather.jl","title":"How to run SpeedyWeather.jl","text":"initialize_speedy","category":"page"},{"location":"how_to_run_speedy/#SpeedyWeather.initialize_speedy","page":"How to run SpeedyWeather.jl","title":"SpeedyWeather.initialize_speedy","text":"progn_vars, diagn_vars, model_setup = initialize_speedy(NF,Model;kwargs...) or\nprogn_vars, diagn_vars, model_setup = initialize_speedy(NF,kwargs...) or\nprogn_vars, diagn_vars, model_setup = initialize_speedy(Model,kwargs...)\n\nInitialize the model by returning\n\nprogn_vars, the initial conditions of the prognostic variables\ndiagn_vars, the preallocated the diagnotic variables (initialised to zero)\nmodel_setup, the collected pre-calculated structs that don't change throughout integration.\n\nThe keyword arguments kwargs are the same as for run_speedy. The model_setup contains fields that hold the parameters, constants, geometry, spectral transform, boundaries and diffusion.\n\n\n\n\n\n","category":"function"},{"location":"grids/#Grids","page":"Grids","title":"Grids","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"The spectral transform (the Spherical Harmonic Transform) in SpeedyWeather.jl supports any ring-based equi-longitude grid. Several grids are already implemented but other can be added. The following pages will describe an overview of these grids and how they can be used.","category":"page"},{"location":"grids/#Ring-based-equi-longitude-grids","page":"Grids","title":"Ring-based equi-longitude grids","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"SpeedyWeather.jl's spectral transform currently only supports ring-based equi-longitude grids. These grids have their grid points located on rings with constant latitude and on rings the points are equi-spaced in longitude. There is technically no constrain on the spacing of the latitude rings, but the Legendre transform requires a quadrature to map those to spectral space and back. Common choices for latitudes are the Gaussian latitudes which use the Gaussian quadrature, or equi-angle latitudes (i.e. just regular latitudes but excluding the poles) that use the Clenshaw-Curtis quadrature. The longitudes have to be equi-spaced on every ring, which is necessary for the fast Fourier transform, as one would otherwise need to use a non-uniform Fourier transform. In SpeedyWeather.jl the first grid point on any ring can have a longitudinal offset though, for example by spacing 4 points around the globe at 45˚E, 135˚E, 225˚E, and 315˚E. In this case the offset is 45˚E as the first point is not at 0˚E.","category":"page"},{"location":"grids/#Implemented-grids","page":"Grids","title":"Implemented grids","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"All grids in SpeedyWeather.jl are a subtype of AbstractGrid, i.e. <: AbstractGrid. We further distinguish between full, and reduced grids. Full grids have the same number of longitude points on every latitude ring (i.e. points converge towards the poles) and reduced grids reduce the number of points towards the poles to have them more evenly spread out across the globe. More evenly does not necessarily mean that a grid is equal-area, meaning that every grid cell covers exactly the same area (although the shape changes).","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"Currently the following full grids <: AbstractFullGrid are implemented","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"FullGaussianGrid, a full grid with Gaussian latitudes\nFullClenshawGrid, a full grid with equi-angle latitudes","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"and additionally we have FullHEALPixGrid and FullOctaHEALPixGrid which are the full grid equivalents to the HEALPix grid and the OctaHEALPix grid discussed below. Full grid equivalent means that they have the same latitude rings, but no reduction in the number of points per ring towards the poles and no longitude offset. Other implemented reduced grids are","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"OctahedralGaussianGrid, a reduced grid with Gaussian latitudes based on an octahedron\nOctahedralClenshawGrid, similar but based on equi-angle latitudes\nHEALPixGrid, an equal-area grid based on a dodecahedron with 12 faces\nOctaHEALPixGrid, an equal-area grid from the class of HEALPix grids but based on an octahedron.","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"An overview of these grids is visualised here","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"(Image: Overview of implemented grids in SpeedyWeather.jl)","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"Visualised are each grid's grid points (white dots) and grid faces (white lines). All grids shown have 16 latitude rings on one hemisphere, Equator included. The total number of grid points is denoted in the top left of every subplot. The sphere is shaded with grey, orange and turquoise regions to denote the hemispheres in a and b, the 8 octahedral faces c, d,f and the 12 dodecahedral faces (or base pixels) in e. Coastlines are added for orientation.","category":"page"},{"location":"grids/#Resolution","page":"Grids","title":"Resolution","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"All grids use the same resolution parameter nlat_half, i.e. the number of rings on one hemisphere, Equator included. The Gaussian grids (full and reduced) do not have a ring on the equator, so their total number of rings nlat is always even and twice nlat_half. Clenshaw-Curtis grids and the HEALPix grids have a ring on the equator such their total number of rings is always odd and one less than the Gaussian grids at the same nlat_half. ","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"info: HEALPix grids do not use Nside as resolution parameter\nThe original formulation for HEALPix grids use N_side, the number of grid points along the edges of each basepixel (8 in the figure above), SpeedyWeather.jl uses nlat_half, the number of rings on one hemisphere, Equator included, for all grids. This is done for consistency across grids. We may use N_side for the documentation or within functions though.","category":"page"},{"location":"grids/#Truncation","page":"Grids","title":"Truncation","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"A given spectral resolution can be matched to a variety of grid resolutions. A cubic grid, for example, combines a spectral truncation T with a grid resolution N (=nlat_half) such that T + 1 = N. Using T31 and an O32 is therefore often abbreviated as Tco31 meaning that the spherical harmonics are truncated at l_max=31 in combination with N=32, i.e. 64 latitude rings in total on an octahedral Gaussian grid.","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"Let J be the total number of rings. Then we have","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"T approx J for linear truncation\nfrac32T approx J for quadratic truncation\n2T approx J for cubic truncation","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"and in general fracm+12T approx J for m-th order truncation. So the higher the truncaction order the more grid points are used in combination with the same spectral resolution. A higher truncation order therefore makes all grid-point calculations more expensive, but can represent products of terms on the grid (which will have higher wavenumber components) to a higher accuracy as more grid points are available within a given wavelength. Using a sufficiently high truncation is therefore one way to avoid aliasing. In SpeedyWeather.jl the parameter dealiasing controls this option, = 1 would be linear, = 2 quadratic, = 3 cubic etc.","category":"page"},{"location":"grids/#Full-Gaussian-grid","page":"Grids","title":"Full Gaussian grid","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"...","category":"page"},{"location":"grids/#Full-Clenshaw-Curtis-grid","page":"Grids","title":"Full Clenshaw-Curtis grid","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"...","category":"page"},{"location":"grids/#Octahedral-Gaussian-grid","page":"Grids","title":"Octahedral Gaussian grid","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"...","category":"page"},{"location":"grids/#The-HEALPix-grid","page":"Grids","title":"The HEALPix grid","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"Technically, HEALPix grids are a class of grids that tessalate the sphere into faces that are often called basepixels. For each member of this class there are N_varphi basepixels in zonal direction and N_theta basepixels in meridional direction. For N_varphi = 4 and N_theta = 3 we obtain the classical HEALPix grid with N_varphi N_theta = 12 basepixels shown above in Implemented Grids. Each basepixel has a quadratic number of grid points in them. There's an equatorial zone where the number of zonal grid points is constant (always 2N, so 32 at N=16) and there are polar caps above and below the equatorial zone with the border at cos(theta) = 23 (theta in colatitudes).","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"Following Górski, 2004[1], the z=cos(theta) colatitude of the j-th ring in the north polar cap, j=1N_side with 2N_side = N is ","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"z = 1 - fracj^23N_side^2","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"and on that ring, the longitude phi of the i-th point (i is the in-ring-index) is at","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"phi = fracpi2j(i-tfrac12)","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"The in-ring index i goes from i=14 for the first (i.e. northern-most) ring, i=18 for the second ring and i = 14j for the j-th ring in the northern polar cap.","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"In the north equatorial belt j=N_side2N_side this changes to","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"z = frac43 - frac2j3N_side","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"and the longitudes change to (i is always i = 14N_side in the equatorial belt meaning the number of longitude points is constant here)","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"phi = fracpi2N_side(i - fracs2) quad s = (j - N_side + 1) mod 2","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"The modulo function comes in as there is an alternating longitudinal offset from the prime meridian (see Implemented grids). For the southern hemisphere the grid point locations can be obtained by mirror symmetry.","category":"page"},{"location":"grids/#Grid-cell-boundaries","page":"Grids","title":"Grid cell boundaries","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"The cell boundaries are obtained by setting i = k + 12 or i = k + 12 + j (half indices) into the equations above, such that z(phik), a function for the cosine of colatitude z of index k and the longitude phi is obtained. These are then (northern polar cap)","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"z = 1 - frack^23N_side^2left(fracpi2phi_tright)^2 quad z = 1 - frack^23N_side^2left(fracpi2phi_t - piright)^2","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"with phi_t = phi mod tfracpi2 and in the equatorial belt","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"z = frac23-frac4k3N_side pm frac8phi3pi","category":"page"},{"location":"grids/#OctaHEALPix-grid","page":"Grids","title":"OctaHEALPix grid","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"While the classic HEALPix grid is based on a dodecahedron, other choices for N_varphi and N_theta in the class of HEALPix grids will change the number of faces there are in zonal/meridional direction. With N_varphi = 4 and N_theta = 1 we obtain a HEALPix grid that is based on an octahedron, which has the convenient property that there are twice as many longitude points around the equator than there are latitude rings between the poles. This is a desirable for truncation as this matches the distances too, 2pi around the Equator versus pi between the poles. N_varphi = 6 N_theta = 2 or N_varphi = 8 N_theta = 3 are other possible choices for this, but also more complicated. See Górski, 2004[1] for further examples and visulations of these grids.","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"We call the N_varphi = 4 N_theta = 1 HEALPix grid the OctaHEALPix grid, which combines the equal-area property of the HEALPix grids with the octahedron that's also used in the OctahedralGaussianGrid or the OctahedralClenshawGrid. As N_theta = 1 there is no equatorial belt which simplifies the grid. The latitude of the j-th isolatitude ring on the OctaHEALPixGrid is defined by","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"z = 1 - fracj^2N^2","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"with j=1N, and similarly for the southern hemisphere by symmetry. On this grid N_side = N where N= nlat_half, the number of latitude rings on one hemisphere, Equator included, because each of the 4 basepixels spans from pole to pole and covers a quarter of the sphere. The longitudes with in-ring- index i = 14j are","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"phi = fracpi2j(i - tfrac12)","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"and again, the southern hemisphere grid points are obtained by symmetry.","category":"page"},{"location":"grids/#Grid-cell-boundaries-2","page":"Grids","title":"Grid cell boundaries","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"Similar to the grid cell boundaries for the HEALPix grid, the OctaHEALPix grid's boundaries are","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"z = 1 - frack^2N^2left(fracpi2phi_tright)^2 quad z = 1 - frack^2N^2left(fracpi2phi_t - piright)^2","category":"page"},{"location":"grids/","page":"Grids","title":"Grids","text":"The 3N_side^2 in the denominator of the HEALPix grid came simply N^2 for the OctaHEALPix grid and there's no separate equation for the equatorial belt (which doesn't exist in the OctaHEALPix grid).","category":"page"},{"location":"grids/#References","page":"Grids","title":"References","text":"","category":"section"},{"location":"grids/","page":"Grids","title":"Grids","text":"[1] Górski, Hivon, Banday, Wandelt, Hansen, Reinecke, Bartelmann, 2004. HEALPix: A FRAMEWORK FOR HIGH-RESOLUTION DISCRETIZATION AND FAST ANALYSIS OF DATA DISTRIBUTED ON THE SPHERE, The Astrophysical Journal. doi:10.1086/427976","category":"page"},{"location":"boundary_conditions/#Boundary-conditions","page":"Boundary conditions","title":"Boundary conditions","text":"","category":"section"},{"location":"boundary_conditions/","page":"Boundary conditions","title":"Boundary conditions","text":"This page describes the formulation of boundary conditions and their implementation.","category":"page"},{"location":"conventions/#Style-and-convention-guide","page":"Style and convention guide","title":"Style and convention guide","text":"","category":"section"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"In SpeedyWeather.jl we've been following the several conventions that are documented here.","category":"page"},{"location":"conventions/#Variable-naming","page":"Style and convention guide","title":"Variable naming","text":"","category":"section"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"The prognostic variables in spectral space are called","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":" vor # Vorticity of horizontal wind field\n div # Divergence of horizontal wind field\n temp # Absolute temperature [K]\n pres_surf # Logarithm of surface pressure [log(Pa)]\n humid # Specific humidity [g/kg]","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"their transforms into grid-point space get a _grid suffix, their tendencies a _tend suffix. Further derived diagnostic dynamic variables are","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":" u\n v\n geopot\n ...","category":"page"},{"location":"conventions/#Preallocation","page":"Style and convention guide","title":"Preallocation","text":"","category":"section"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"All arrays representing variables are preallocated and grouped into two structs","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":" Prog::PrognosticVariables\n Diag::DiagnosticVariables","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"The Diag struct contains further structs which represent the grid-point transformations of the prognostic variables and their tendencies.","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":" gridvars::GridVariables\n tendencies::Tendencies\n ...","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"Constant arrays are grouped into several structs","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"Boundaries","category":"page"},{"location":"conventions/#Julian-conventions","page":"Style and convention guide","title":"Julian conventions","text":"","category":"section"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"We follow Julia's style guide and highlight here some important aspects of it.","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"Bang (!) convention. A function func does not change its input arguments, however, func! does.","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"Hence, func! is often the in-place version of func, avoiding as much memory allocation as possible and often changing its first argument, e.g. func!(out,in) so that argument in is used to calculate out which has been preallocated before function call.","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"Number format flexibility. Numeric literals such as 2.0 or 1/3 are only used in the model setup","category":"page"},{"location":"conventions/","page":"Style and convention guide","title":"Style and convention guide","text":"but avoided throughout the code to obtain a fully number format-flexible package using the number format NF as a compile-time variable throughout the code. This often leads to overly specific code whereas a Real would generally suffice. However, this is done to avoid any implicit type conversions.","category":"page"},{"location":"new_model_setups/#New-model-setups","page":"New model setups","title":"New model setups","text":"","category":"section"},{"location":"new_model_setups/","page":"New model setups","title":"New model setups","text":"more to come...","category":"page"},{"location":"dynamical_core/#Dynamical-core","page":"Dynamical core","title":"Dynamical core","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"A mathematical and implementation-specific description of the dynamical core used in SpeedyWeather.jl. We start by describing the barotropic vorticity equations which is one set of equations that SpeedyWeather.jl can solve (see How to run SpeedyWeather.jl) as many details therein also apply to the Shallow water equations and Primitive equations explained thereafter.","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"The dynamical core presented here largely follows the idealized models with spectral dynamics developed at the Geophysical Fluid Dynamics Laboratory[1]: A barotropic vorticity model[2], a shallow water model [3] and a primitive equation model[4]. ","category":"page"},{"location":"dynamical_core/#Barotropic-vorticity-equation","page":"Dynamical core","title":"Barotropic vorticity equation","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"The barotropic vorticity equation is the prognostic equation that describes the time evolution of relative vorticity zeta with advection, Coriolis force and diffusion in a single global layer.","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"fracpartial zetapartial t + nabla cdot (mathbfu(zeta + f)) = (-1)^n+1nunabla^2nzeta","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"with time t, velocity vector mathbfu = (u v), Coriolis parameter f, and hyperdiffusion (-1)^n+1 nu nabla^2n zeta (n is the hyperdiffusion order; see Horizontal diffusion). Starting with some relative vorticity zeta, the Laplacian is inverted to obtain the stream function Psi","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"Psi = nabla^-2zeta","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"The zonal velocity u and meridional velocity v are then the (negative) meridional gradient and zonal gradient of Psi","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"beginaligned\nu = -frac1R fracpartial Psipartial theta \nv = frac1Rcos(theta) fracpartial Psipartial phi \nendaligned","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"which is described in Derivatives in spherical coordinates.","category":"page"},{"location":"dynamical_core/#Algorithm","page":"Dynamical core","title":"Algorithm","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"We briefly outline the algorithm that SpeedyWeather.jl uses in order to integrate the barotropic vorticity equation","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"Start with initial conditions of zeta_lm in spectral space\nUse zeta_lm to\nInvert the Laplacian to obtain the stream function Psi_lm in spectral space\nTransform zeta_lm to zeta in grid-point space\nUse Psi_lm to\nobtain zonal velocity (cos(theta)u)_lm through a Meridional derivative\nobtain meridional velocity (cos(theta)v)_lm through a Zonal derivative\nTransform zonal and meridional velocity (cos(theta)u)_lm, (cos(theta)v)_lm to grid-point space and unscale the cos(theta) factor to obtain uv.\nMultiply uv with zeta+f in grid-point space\nTransform u(zeta + f) and v(zeta+f) to spectral space\nCompute the divergence of (mathbfu(zeta + f))_lm in spectral space through a Meridional derivative and Zonal derivative which will be the tendency of zeta_lm\nCompute the Horizontal diffusion based on that tendency\nCompute a leapfrog time step as described in Time integration\nRepeat from 1.","category":"page"},{"location":"dynamical_core/#Shallow-water-equations","page":"Dynamical core","title":"Shallow water equations","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"beginaligned\nfracpartial zetapartial t + nabla cdot (mathbfu(zeta + f)) = (-1)^n+1nunabla^2nzeta \nfracpartial mathcalDpartial t - nabla times (mathbfu(zeta + f)) = -nabla^2(tfrac12(u^2 + v^2) + geta) + (-1)^n+1nunabla^2nmathcalD \nfracpartial etapartial t + nabla cdot (mathbfuh) = 0\nendaligned","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"more to come","category":"page"},{"location":"dynamical_core/#Primitive-equations","page":"Dynamical core","title":"Primitive equations","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"The primitive equations solved by SpeedyWeather.jl are","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"beginaligned\npartial_t u = \npartial_t v = \npartial_t T = \npartial_t Q = \nendaligned","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"more to come","category":"page"},{"location":"dynamical_core/#Horizontal-diffusion","page":"Dynamical core","title":"Horizontal diffusion","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"In SpeedyWeather.jl we use hyerdiffusion through an n-th power Laplacian (-1)^n+1nabla^2n (hyper when n1) which can be implemented as a multiplication of the spectral coefficients Psi_lm with (-l(l+1))^nR^-2n (see spectral Laplacian) It is therefore computationally not more expensive to apply hyperdiffusion over diffusion as the (-l(l+1))^nR^-2n can be precomputed. Note the sign change (-1)^n+1 here is such that the dissipative nature of the diffusion operator is retained for n odd and even.","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"In SpeedyWeather.jl the diffusion is applied implicitly. For that, consider a leapfrog scheme with time step Delta t of variable zeta to obtain from time steps i-1 and i, the next time step i+1","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"zeta_i+1 = zeta_i-1 + 2Delta t dzeta","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"with dzeta being some tendency evaluated from zeta_i. Now we want to add a diffusion term (-1)^n+1nu nabla^2nzeta with viscosity nu, wich however, is implicitly calculated from zeta_i+1, then","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"zeta_i+1 = zeta_i-1 + 2Delta t (dzeta + (-1)^n+1 nunabla^2nzeta_i+1)","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"As the application of (-1)^n+1nunabla^2n is, for every spectral mode, equivalent to a multiplication of a constant, we can rewrite this to","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"zeta_i+1 = fraczeta_i-1 + 2Delta t dzeta1 - 2Delta (-1)^n+1nunabla^2n","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"and expand the numerator to","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"zeta_i+1 = zeta_i-1 + 2Delta t fracdzeta + (-1)^n+1 nunabla^2nzeta_i-11 - 2Delta t (-1)^n+1nu nabla^2n","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"Hence the diffusion can be applied implicitly by updating the tendency dzeta as","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"dzeta to fracdzeta + (-1)^n+1nunabla^2nzeta_i-11 - 2Delta t nu nabla^2n","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"which only depends on zeta_i-1. Now let D_textexplicit = (-1)^n+1nunabla^2n be the explicit part and D_textimplicit = 1 - (-1)^n+1 2Delta t nunabla^2n the implicit part. Both parts can be precomputed and are D_textimplicit = 1 - 2Delta t nunabla^2n the implicit part. Both parts can be precomputed and are only an element-wise multiplication in spectral space. For every spectral harmonic lm we do","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"dzeta to D_textimplicit^-1(dzeta + D_textexplicitzeta_i-1)","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"Hence 2 multiplications and 1 subtraction with precomputed constants. However, we will normalize the (hyper-)Laplacians as described in the following. This also will take care of the alternating sign such that the diffusion operation is dissipative regardless the power n.","category":"page"},{"location":"dynamical_core/#Normalization-of-diffusion","page":"Dynamical core","title":"Normalization of diffusion","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"In physics, the Laplace operator nabla^2 is often used to represent diffusion due to viscosity in a fluid. In that case, the viscosity coefficient is nu of units textm^2texts^-1 and the full operator reads as nu nabla^2 with units (textm^2texts^-1)(textm^-2) = texts^-1. This motivates us to normalize the Laplace operator by a constant of units textm^-2 and the viscosity coefficient by its inverse such that the viscosity coefficient becomes a damping timescale of unit texts^-1. Given the application in spectral space we decide to normalize by the largest eigenvalue -l_textmax(l_textmax+1) such that all entries in the discrete spectral Laplace operator are in 01. This also has the effect that the alternating sign drops out, such that higher wavenumbers are always dampened and not amplified. The normalized viscosity coefficient nu^* = l_textmax(l_textmax+1)nu (always positive) is therefore reinterpreted as the (inverse) time scale at which the highest wavenumber is dampened to zero due to diffusion. Together we have ","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"D^textexplicit_lm = -nu^* fracl(l+1)l_textmax(l_textmax+1)","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"and the hyper-Laplacian of power n follows as","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"D^textexplicitn_lm = -nu^* left(fracl(l+1)l_textmax(l_textmax+1)right)^n","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"and the implicit part is accordingly D^textimplicitn_lm = 1 - 2Delta t D^textexplicitn_lm.","category":"page"},{"location":"dynamical_core/#Radius-scaling","page":"Dynamical core","title":"Radius scaling","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"SpeedyWeather.jl uses a scaling for vorticity zeta and stream function Psi that is","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"tildezeta = zeta R tildePsi = Psi R^-1","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"In the barotropic voriticity equation model the inversion of the Laplcians in order to obtain Psi from zeta therefore becomes","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"tildezeta = tildenabla^2 tildePsi","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"where the dimensionless gradients simply omit the scaling with 1R, tildenabla = Rnabla. The Barotropic vorticity equation scaled with R^2 is","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"partial_tildettildezeta + tildenabla cdot (mathbfu(tildezeta + tildef)) = tildenutildenabla^2ntildezeta","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"with","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"tildet = tR^-1, the scaled time t\nmathbfu = (uv), the velocity vector (no scaling applied)\ntildef = fR, the scaled Coriolis parameter f\ntildenu = nu^* R, the scaled viscosity nu^*, which itself is normalized to a damping time scale, see Normalization of diffusion.","category":"page"},{"location":"dynamical_core/#Scaled-shallow-water-equations","page":"Dynamical core","title":"Scaled shallow water equations","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"Similar to the scaled barotropic vorticity equations, the scaled shallow water equations scale the vorticity and the divergence equation with R^2, but the continuity equation with R","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"beginaligned\nfracpartial tildezetapartial tildet + tildenabla cdot (mathbfu(tildezeta + tildef)) =\ntildenutildenabla^2ntildezeta \nfracpartial tildemathcalDpartial tildet - tildenabla times (mathbfu(tildezeta + tildef)) =\n-tildenabla^2left(tfrac12(u^2 + v^2) + geta right) + tildenutildenabla^2ntildemathcalD \nfracpartial etapartial tildet + tildenabla cdot (mathbfuh) = 0\nendaligned","category":"page"},{"location":"dynamical_core/#Time-integration","page":"Dynamical core","title":"Time integration","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"SpeedyWeather.jl uses a leapfrog time scheme with a Robert's and William's filter to dampen the computational mode and achieve 3rd order accuracy.","category":"page"},{"location":"dynamical_core/#Oscillation-equation","page":"Dynamical core","title":"Oscillation equation","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"fracdFdt = iomega F","category":"page"},{"location":"dynamical_core/#References","page":"Dynamical core","title":"References","text":"","category":"section"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"[1]: Geophysical Fluid Dynamics Laboratory, Idealized models with spectral dynamics","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"[2]: Geophysical Fluid Dynamics Laboratory, The barotropic vorticity equation.","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"[3]: Geophysical Fluid Dynamics Laboratory, The Shallow Water Equations.","category":"page"},{"location":"dynamical_core/","page":"Dynamical core","title":"Dynamical core","text":"[4]: Geophysical Fluid Dynamics Laboratory, The Spectral Dynamical Core","category":"page"},{"location":"spectral_transform/#Spherical-Harmonic-Transform","page":"Spherical harmonic transform","title":"Spherical Harmonic Transform","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The following sections outline the implementation of the spherical harmonic transform (in short spectral transform) between the coefficients of the spherical harmonics (the spectral space) and the grid space on a longitude-latitude regular Gaussian grid.","category":"page"},{"location":"spectral_transform/#Inspiration","page":"Spherical harmonic transform","title":"Inspiration","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The spectral transform implemented by SpeedyWeather.jl follows largely Justin Willmert's CMB.jl package and makes use of AssociatedLegendrePolynomials.jl and FFTW.jl (for Float32/64) or GenericFFT.jl (for generic) for the Fourier transform. Justin described his work in a Blog series [1][2][3][4][5][6][7][8].","category":"page"},{"location":"spectral_transform/#Spherical-harmonics","page":"Spherical harmonic transform","title":"Spherical harmonics","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The spherical harmonics Y_lm of degree l and order m over the longitude phi = (02pi) and colatitudes theta = (-pi2pi2), are","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Y_lm(phi theta) = lambda_l^m(sintheta) e^imphi","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"with lambda_l^m being the pre-normalized associated Legendre polynomials, and e^imphi are the complex exponentials (the Fourier modes). Together they form a set of orthogonal basis functions on the sphere. For an interactive visualisation of the spherical harmonics, see here.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"info: Latitudes versus colatitudes\nThe implementations of the spherical transforms in SpeedyWeather.jl use colatitudes theta = (0pi) (0 at the north pole) but the dynamical core uses latitudes theta = (-pi2pi2) (pi2 at the north pole). However, all arrays are always sorted north to south such that [i,1] will access the northern-most grid points. Note: We may also use latitudes in the spherical harmonic transform in the future for consistency. ","category":"page"},{"location":"spectral_transform/#Synthesis-(spectral-to-grid)","page":"Spherical harmonic transform","title":"Synthesis (spectral to grid)","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The synthesis (or inverse transform) takes the spectral coefficients a_lm and transforms them to grid-point values f(phitheta) (for the sake of simplicity first regarded as continuous). The synthesis is a linear combination of the spherical harmonics Y_lm with non-zero coefficients.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"f(phitheta) = sum_l=0^infty sum_m=-l^l a_lm Y_lm(phitheta)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"We obtain an approximation with a finite set of a_lm by truncating the series after l = l_max.","category":"page"},{"location":"spectral_transform/#Analysis-(grid-to-spectral)","page":"Spherical harmonic transform","title":"Analysis (grid to spectral)","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Starting in grid-point space we can transform a field f(lambdatheta) into the spectral space of the spherical harmonics by","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"a_lm = int_0^2pi int_-tfracpi2^tfracpi2 f(lambdatheta) Y_lm(lambdatheta) cos theta dtheta dlambda","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"This integral has to be discretized to when grid-point values f(lambda_itheta_i) are used. For more details, see [7],[8].","category":"page"},{"location":"spectral_transform/#Spectral-packing","page":"Spherical harmonic transform","title":"Spectral packing","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Spectral packing is the way how the coefficients a_lm of the spherical harmonics of a given spectral field are stored in an array. SpeedyWeather.jl uses the conventional spectral packing of degree l and order m as illustrated in the following image (Cyp, CC BY-SA 3.0, via Wikimedia Commons)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Every row represents an order l geq 0, starting from l=0 at the top. Every column represents an order m geq 0, starting from m=0 on the left. The coefficients of these spherical harmonics are directly mapped into a matrix a_lm as ","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":" m \nl a_00 \n a_10 a_11 \n a_20 a_12 a_22 \n a_30 a_13 a_23 a_33","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"which is consistently extended for higher degrees and orders. Consequently, all spectral fields are lower-triangular matrices with complex entries. The upper triangle excluding the diagonal explicitly stores zeros. Note that internally vector fields include an additional degree, such that l_max = m_max + 1 (see Gradients in spherical coordinates for more information). The harmonics with a_l0 (the first column) are also called zonal harmonics as they are constant with longitude phi. The harmonics with a_ll (the main diagonal) are also called sectoral harmonics as they essentially split the sphere into 2l sectors in longitude phi without a zero-crossing in latitude.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"info: Array indices\nFor a spectral field alms note that due to Julia's 1-based indexing the coefficient a_lm is obtained via alms[l+1,m+1].","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Fortran speedy does not use the same spectral packing as SpeedyWeather.jl. The alternative packing lm therein uses l=m and m=l-m as summarized in the following table.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"degree l order m l=m m=l-m\n0 0 0 0\n1 0 0 1\n1 1 1 0\n2 0 0 2\n2 1 1 1\n2 2 2 0\n3 0 0 3\n... ... ... ...","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"This alternative packing uses the top-left triangle of a coefficient matrix, and the degrees and orders from above are stored at the following indices","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":" m \nl a_00 a_10 a_20 a_30\n a_11 a_21 a_31 \n a_22 a_32 \n a_33 ","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"This spectral packing is not used in SpeedyWeather.jl but illustrated here for completeness and comparison with Fortran-speedy.","category":"page"},{"location":"spectral_transform/#Example-transforms","page":"Spherical harmonic transform","title":"Example transforms","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"julia> using SpeedyWeather\njulia> alms = zeros(ComplexF64,3,3) # spectral coefficients\njulia> alms[2,2] = 1 # only l=1,m=1 harmonic\njulia> map = gridded(alms) # convert to grid space\n8×4 Matrix{Float64}:\n -0.324541 -0.600363 -0.600363 -0.324541\n -0.134429 -0.248678 -0.248678 -0.134429\n 0.134429 0.248678 0.248678 0.134429\n 0.324541 0.600363 0.600363 0.324541\n 0.324541 0.600363 0.600363 0.324541\n 0.134429 0.248678 0.248678 0.134429\n -0.134429 -0.248678 -0.248678 -0.134429\n -0.324541 -0.600363 -0.600363 -0.324541\n \njulia> spectral(map) # back to spectral space\n3×3 Matrix{ComplexF64}:\n 0.0+0.0im 0.0+0.0im 0.0+0.0im\n 0.0+0.0im 1.0+3.60727e-17im 0.0+0.0im\n 0.0+0.0im 0.0+0.0im 0.0+0.0im","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"and we have successfully reobtained the l=m=1 spherical harmonic.","category":"page"},{"location":"spectral_transform/#Available-horizontal-resolutions","page":"Spherical harmonic transform","title":"Available horizontal resolutions","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"SpeedyWeather.jl uses triangular truncation such that only spherical harmonics with l leq l_max and m leq m_max are explicitly represented. This is usually described as Tm_max, with l_max = m_max (although in vector quantities require one more degree l in the recursion relation of meridional gradients). For example, T31 is the spectral resolution with l_max = m_max = 31. Note that the degree l and order m are mathematically 0-based, such that the corresponding coefficient matrix is of size 32x32.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Using triangular truncation[9], there are constraints on the corresponding grid resolution. Let nlon, nlat be the number of longitudes, latitudes on a regular Gaussian grid. Then spectral and grid resolution have to be chosen such that","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"nlon geq 3l_max+1\nnlat geq (3l_max+1)2","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"In general, we choose nlon = 2nlat, and ideally nlon is easily Fourier-transformable, e.g. nlon = 2^i3^j5^k with some integers ijk geq 0. SpeedyWeather.jl is tested at the following horizontal resolutions, with Delta x = tfrac2pi Rnlon as the approximate grid spacing at the Equator","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"l_max nlon nlat Delta x\n31 (default) 96 48 400 km\n42 128 64 300 km\n85 256 128 160 km\n170 512 256 80 km\n341 1024 512 40 km\n682 2048 1024 20 km","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Choosing trunc as argument in run_speedy will automatically choose nlon,nlat as presented in the table. Other common choices are T63 (192x96), T127 (384x192), T255 (768x384), T511 (1536x768), among others.","category":"page"},{"location":"spectral_transform/#Derivatives-in-spherical-coordinates","page":"Spherical harmonic transform","title":"Derivatives in spherical coordinates","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Horizontal gradients in spherical coordinates are defined for a scalar field A and the latitudes theta and longitudes lambda as","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"nabla A = left(frac1Rcosthetafracpartial Apartial lambda frac1Rfracpartial Apartial theta right)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"However, the divergence of a vector field mathbfu = (uv) includes additional cos(theta) scalings","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"nabla cdot mathbfu = frac1Rcosthetafracpartial upartial lambda +\nfrac1Rcosthetafracpartial (v costheta)partial theta","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"and similar for the curl","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"nabla times mathbfu = frac1Rcosthetafracpartial vpartial lambda -\nfrac1Rcosthetafracpartial (u costheta)partial theta","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The radius of the sphere (i.e. Earth) is R. The zonal gradient scales with 1cos(theta) as the longitudes converge towards the poles (note that theta describes latitudes here, defintions using colatitudes replace the cos with a sin.)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Starting with a spectral field of vorticity zeta and divergence mathcalD one can obtain stream function Psi and velocity potential Phi by inverting the Laplace operator nabla^2:","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Psi = nabla^-2zeta quad Phi = nabla^-2mathcalD","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The velocities uv are then obtained from (uv) = nabla^botPsi + nablaPhi following the defintion from above and nabla^bot = (-R^-1partial_theta (Rcostheta)^-1partial_lambda)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"beginaligned\nu = -frac1Rpartial_thetaPsi + frac1Rcosthetapartial_lambdaPhi \nv = +frac1Rpartial_thetaPhi + frac1Rcosthetapartial_lambdaPsi\nendaligned","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Alternatively, we can use the velocities U = ucostheta V = vcostheta, which we do as the meridional gradient for spherical harmonics is easier implemented with a costheta-scaling included, and because the divergence and curl in spherical coordinates evaluates the meridional gradient with UV and not uv. From uv we can return to zeta mathcalD via","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"beginaligned\nzeta = frac1Rcosthetapartial_lambda v - frac1Rcosthetapartial_theta (u costheta) \nmathcalD = frac1Rcosthetapartial_lambda u + frac1Rcosthetapartial_theta (v costheta)\nendaligned","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Equivalently, we have","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"beginaligned\nU = -fraccosthetaRpartial_thetaPsi + frac1Rpartial_lambdaPhi \nV = +fraccosthetaRpartial_thetaPhi + frac1Rpartial_lambdaPsi \nzeta = frac1Rpartial_lambda left( fracVcos^2theta right) -\nfraccosthetaRpartial_theta left( fracUcos^2theta right) \nmathcalD = frac1Rpartial_lambda left( fracUcos^2theta right) +\nfraccosthetaRpartial_theta left( fracVcos^2theta right)\nendaligned","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"which is a more convenient formulation as required costheta scalings are reduced to a minimum. The remaining (UV)*cos^-2theta are done in grid-point space and usually in combination with other operations like the computation of the vorticity flux. But also note that SpeedyWeather.jl scales the equations with the radius R (see Radius scaling) such that the divisions by R drop out too. As described in Meridional derivative, it is more convenient to implement costheta partial_theta via a recursion relation for the Legendre polynomials than partial_theta directly. How the operators nabla nabla times nabla cdot can be implemented with spherical harmonics is presented in the following sections.","category":"page"},{"location":"spectral_transform/#Zonal-derivative","page":"Spherical harmonic transform","title":"Zonal derivative","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The zonal derivative of a scalar field Psi in spectral space is the zonal derivative of all its respective spherical harmonics Psi_lm(phitheta) (now we use phi for longitudes to avoid confusion with the Legendre polynomials lambda_lm)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"v_lm = frac1R cos(theta) fracpartialpartial phi left( lambda_l^m(costheta) e^imphi right) =\nfracimR cos(theta) lambda_l^m(costheta) e^imphi = fracimR cos(theta) Psi_lm","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"So for every spectral harmonic, cos(theta)v_lm is obtained from Psi_lm via a multiplication with imR. Unscaling the cos(theta)-factor is done after transforming the spectral coefficients v_lm into grid-point space. As discussed in Radius scaling, SpeedyWeather.jl scales the stream function as tildePsi = R^-1Psi such that the division by radius R in the gradients can be omitted. The zonal derivative becomes therefore effectively for each spherical harmonic a scaling with its (imaginary) order im. The spherical harmonics are essentially just a Fourier transform in zonal direction and the derivative a multiplication with the respective wave number m times imaginary i.","category":"page"},{"location":"spectral_transform/#Meridional-derivative","page":"Spherical harmonic transform","title":"Meridional derivative","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The meridioinal derivative of the spherical harmonics is a derivative of the Legendre polynomials for which the following recursion relation applies[10],[11]","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"costheta fracdP_lmdtheta = -lepsilon_l+1mP_l+1m + (l+1)epsilon_lmP_l-1m","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"with recursion factors","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"epsilon_lm = sqrtfracl^2-m^24l^2-1","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"In the following we use the example of obtaining the zonal velocity u from the stream function Psi, which is through the negative meridional gradient. For the meridional derivative itself the leading minus sign has to be omitted. Starting with the spectral expansion","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Psi(lambdatheta) = sum_lmPsi_lmP_lm(sintheta)e^imlambda","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"we multiply with -R^-1costhetapartial_theta to obtain","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"costhetaleft(-frac1Rpartial_thetaPsi right) = -frac1Rsum_lmPsi_lme^imlambdacosthetapartial_theta P_lm","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"at which point the recursion from above can be applied. Collecting terms proportional to P_lm then yields","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"(cos(theta)u)_lm = -frac1R(-(l-1)epsilon_lmPsi_l-1m + (l+2)epsilon_l+1mPsi_l+1m)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"To obtain the coefficient of each spherical harmonic lm of the meridional gradient of a spectral field, two coefficients at l-1m and l+1m have to be combined. This means that the coefficient of a gradient ((costheta) u)_lm is a linear combination of the coefficients of one higher and one lower degree Psi_l+1mPsi_l-1m. As the coefficient Psi_lm with ml are zero, the sectoral harmonics (l=m) of the gradients are obtained from the first off-diagonal only. However, the l=l_max harmonics of the gradients require the l_max-1 as well as the l_max+1 harmonics. In SpeedyWeather.jl vector quantitie like uv use therefore one more meridional mode than scalar quantities such as vorticity zeta or stream function Psi. The meridional derivative in SpeedyWeather.jl also omits the 1R-scaling as explained for the Zonal derivative and in Radius scaling.","category":"page"},{"location":"spectral_transform/#Divergence-and-curl-in-spherical-harmonics","page":"Spherical harmonic transform","title":"Divergence and curl in spherical harmonics","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The meridional gradient as described above can be applied to scalars, such as Psi and Phi in the conversion to velocities (uv) = nabla^botPsi + nablaPhi, however, the operators curl nabla times and divergence nabla cdot in spherical coordinates involve a costheta scaling before the meridional gradient is applied. How to translate this to spectral coefficients has to be derived separately[10],[11].","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The spectral transform of vorticity zeta is","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"zeta_lm = frac12piint_-tfracpi2^tfracpi2int_0^2pi zeta(lambdatheta) P_lm(sintheta) e^imlambda dlambda costheta dtheta","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Given that Rzeta = cos^-1partial_lambda v - cos^-1partial_theta (u costheta), we therefore have to evaluate a meridional integral of the form","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"int P_lm frac1cos theta partial_theta(u costheta)) cos theta dtheta","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"which can be solved through integration by parts. As ucostheta = 0 at theta = pm tfracpi2 only the integral","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"= -int partial_theta P_lm (u costheta) dtheta = -int costheta partial_theta P_lm (fracucostheta) costheta dtheta","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"remains. Inserting the recurrence relation from the Meridional derivative turns this into","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"= -int left(-l epsilon_l+1mP_l+1m + (l+1)epsilon_lm P_l-1m right) (fracucostheta) cos theta dtheta","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"Now we expand (tfracucostheta) but only the lm harmonic will project ontoP_lm. Let u^* = ucos^-1theta v^* = vcos^-1theta we then have in total","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"beginaligned\nRzeta_lm = imv^*_lm + (l+1)epsilon_lmu^*_l-1m - lepsilon_l+1mu^*_l+1m \nRD_lm = imu^*_lm - (l+1)epsilon_lmv^*_l-1m + lepsilon_l+1mv^*_l+1m \nendaligned","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"And the divergence D is similar, but (uv) to (-vu). We have moved the scaling with the radius R directly into zetaD as further described in Radius scaling.","category":"page"},{"location":"spectral_transform/#Laplacian","page":"Spherical harmonic transform","title":"Laplacian","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"The spectral Laplacian is easily applied to the coefficients Psi_lm of a spectral field as the spherical harmonics are eigenfunctions of the Laplace operator nabla^2 in spherical coordinates with eigenvalues -l(l+1) divided by the radius squared R^2, i.e. nabla^2 Psi becomes tfrac-l(l+1)R^2Psi_lm in spectral space. For example, vorticity zeta and streamfunction Psi are related by zeta = nabla^2Psi in the barotropic vorticity model. Hence, in spectral space this is equivalent for every spectral mode of degree l and order m to","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"zeta_lm = frac-l(l+1)R^2Psi_lm","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"This can be easily inverted to obtain the stream function Psi from vorticity zeta instead. In order to avoid division by zero, we set Psi_00 here, given that the stream function is only defined up to a constant anyway.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"beginaligned\nPsi_lm = fracR^2-l(l+1)zeta_lm quad foralllm 0\nPsi_00 = 0\nendaligned","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"See also Horizontal diffusion and Normalization of diffusion.","category":"page"},{"location":"spectral_transform/#U,V-from-vorticity-and-divergence","page":"Spherical harmonic transform","title":"U,V from vorticity and divergence","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"After having discussed the zonal and meridional derivatives with spherical harmonics as well as the Laplace operator, we can derive the conversion from vorticity zeta and divergence D (which are prognostic variables) to U=ucostheta V=vcostheta. Both are linear operations that act either solely on a given harmonic (the zonal gradient and the Laplace operator) or are linear combinations between one lower and one higher degree l (the meridional gradient). It is therefore computationally more efficient to compute UV directly from zetaD instead of calculating stream function and velocity potential first. In total we have","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"beginaligned\nU_lm = -fraciml(l+1)(RD)_lm + fracepsilon_l+1ml+1(Rzeta)_l+1m - fracepsilon_lml(Rzeta)_l-1m \nV_lm = -fraciml(l+1)(Rzeta)_lm - fracepsilon_l+1ml+1(RD)_l+1m + fracepsilon_lml(RD)_l-1m \nendaligned","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"We have moved the scaling with the radius R directly into zetaD as further described in Radius scaling.","category":"page"},{"location":"spectral_transform/#References","page":"Spherical harmonic transform","title":"References","text":"","category":"section"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[1]: Justin Willmert, 2020. Introduction to Associated Legendre Polynomials (Legendre.jl Series, Part I)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[2]: Justin Willmert, 2020. Calculating Legendre Polynomials (Legendre.jl Series, Part II)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[3]: Justin Willmert, 2020. Pre-normalizing Legendre Polynomials (Legendre.jl Series, Part III)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[4]: Justin Willmert, 2020. Maintaining numerical accuracy in the Legendre recurrences (Legendre.jl Series, Part IV)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[5]: Justin Willmert, 2020. Introducing Legendre.jl (Legendre.jl Series, Part V)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[6]: Justin Willmert, 2020. Numerical Accuracy of the Spherical Harmonic Recurrence Coefficient (Legendre.jl Series Addendum)","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[7]: Justin Willmert, 2020. Notes on Calculating the Spherical Harmonics","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[8]: Justin Willmert, 2022. More Notes on Calculating the Spherical Harmonics: Analysis of maps to harmonic coefficients","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[9]: David Randall, 2021. An Introduction to Numerical Modeling of the Atmosphere, Chapter 22.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[10]: Dale Durran, 2010. Numerical Methods for Fluid Dynamics, Springer. In particular section 6.2, 6.4.","category":"page"},{"location":"spectral_transform/","page":"Spherical harmonic transform","title":"Spherical harmonic transform","text":"[11]: Geophysical Fluid Dynamics Laboratory, The barotropic vorticity equation.","category":"page"},{"location":"#SpeedyWeather.jl-documentation","page":"Home","title":"SpeedyWeather.jl documentation","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Welcome to the documentation for SpeedyWeather.jl a global atmospheric circulation model with simple parametrizations to represent physical processes such as clouds, precipitation and radiation.","category":"page"},{"location":"#Overview","page":"Home","title":"Overview","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"SpeedyWeather.jl is a global spectral model that uses a spherical harmonic transform to perform some calculations in spectral space (time integration, gradients, linear terms) and some in grid-point space (advection, non-linear terms, parameterizations). The prognostic variables used are vorticity, divergence, absolute temperature, logarithm of surface pressure and specific humidity. The time stepping uses a leapfrog scheme with additional filters and a semi-implicit formulation for gravity waves. The default resolution is T31 (96x48 grid points on a regular Gaussian grid, about 400km at the Equator) and 8 vertical levels.","category":"page"},{"location":"","page":"Home","title":"Home","text":"Simple parameterizations are used to represent the physical processes convection, large-scale condensation, clouds, short-wave radiation, long-waves radiation, surface fluxes of momentum and energy, and vertical diffusion.","category":"page"},{"location":"#Manual-outline","page":"Home","title":"Manual outline","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"See the following pages of the documentation for more details","category":"page"},{"location":"","page":"Home","title":"Home","text":"How to run SpeedyWeather.jl\nSpherical harmonic transform\nGrids\nDynamical core\nParametrizations\nNew model setups\nFunction and type index","category":"page"},{"location":"","page":"Home","title":"Home","text":"and the original documentation by Molteni and Kucharski.","category":"page"},{"location":"#Scope","page":"Home","title":"Scope","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"The focus of SpeedyWeather.jl is to develop a global atmospheric model of intermediate complexity, that can run at various levels of precision (16, 32 and 64-bit) on different architectures (x86 and ARM, GPUs in the future). Additionally, the model is written in an entirely number format-flexible way, such that any custom number format can be used and Julia will compile to the format automatically. Similarly, many model components are written in an abstract way to support modularity and extandability.","category":"page"},{"location":"#History","page":"Home","title":"History","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"SpeedyWeather.jl is a Julia implementation of SPEEDY, which is written in Fortran 77. Sam Hatfield translated SPEEDY to Fortran 90 and started the project to port it to Julia. However, we are making an effort to overhaul the implementation of the mathematical model behind speedy completely and it is unlikely that a single line of code survived.","category":"page"},{"location":"#Installation","page":"Home","title":"Installation","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"SpeedyWeather.jl is registered in the Julia Registry. Open Julia's package manager from the REPL with ] and add the github repository to install SpeedyWeather.jl and all dependencies","category":"page"},{"location":"","page":"Home","title":"Home","text":"(@v1.8) pkg> add SpeedyWeather","category":"page"},{"location":"","page":"Home","title":"Home","text":"which will automatically install the latest release. However, you may want to install directly from the main branch with","category":"page"},{"location":"","page":"Home","title":"Home","text":"(@v1.8) pkg> add https://github.com/SpeedyWeather/SpeedyWeather.jl#main","category":"page"},{"location":"","page":"Home","title":"Home","text":"other branches than #main can be installed by adding #branch_name instead.","category":"page"},{"location":"#Developers","page":"Home","title":"Developers","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"The development of SpeedyWeather.jl is lead by Milan Klöwer and current and past contributors include","category":"page"},{"location":"","page":"Home","title":"Home","text":"Tom Kimpson\nAlistair White\nMaximilian Gelbrecht\nDavid Meyer\nDaisuke Hotta","category":"page"},{"location":"","page":"Home","title":"Home","text":"Any contributions are always welcome!","category":"page"},{"location":"#Funding","page":"Home","title":"Funding","text":"","category":"section"},{"location":"","page":"Home","title":"Home","text":"Contributors received funding by the European Research Council under Horizon 2020 within the ITHACA project, grant agreement number 741112 from 2021-2022.","category":"page"},{"location":"time_integration/#Time-integration","page":"Time integration","title":"Time integration","text":"","category":"section"},{"location":"time_integration/","page":"Time integration","title":"Time integration","text":"SpeedyWeather.jl uses a leapfrog time scheme with a Robert's and William's filter to dampen the computational mode and achieve 3rd order accuracy.","category":"page"},{"location":"time_integration/#Oscillation-equation","page":"Time integration","title":"Oscillation equation","text":"","category":"section"},{"location":"time_integration/","page":"Time integration","title":"Time integration","text":"fracdFdt = iomega F","category":"page"},{"location":"time_integration/#Implementation-details","page":"Time integration","title":"Implementation details","text":"","category":"section"}] +} diff --git a/v0.5.0/siteinfo.js b/v0.5.0/siteinfo.js new file mode 100644 index 000000000..06e1faf7a --- /dev/null +++ b/v0.5.0/siteinfo.js @@ -0,0 +1 @@ +var DOCUMENTER_CURRENT_VERSION = "v0.5.0"; diff --git a/v0.5.0/spectral_transform/index.html b/v0.5.0/spectral_transform/index.html new file mode 100644 index 000000000..c3acc853f --- /dev/null +++ b/v0.5.0/spectral_transform/index.html @@ -0,0 +1,45 @@ + +Spherical harmonic transform · SpeedyWeather.jl

            Spherical Harmonic Transform

            The following sections outline the implementation of the spherical harmonic transform (in short spectral transform) between the coefficients of the spherical harmonics (the spectral space) and the grid space on a longitude-latitude regular Gaussian grid.

            Inspiration

            The spectral transform implemented by SpeedyWeather.jl follows largely Justin Willmert's CMB.jl package and makes use of AssociatedLegendrePolynomials.jl and FFTW.jl (for Float32/64) or GenericFFT.jl (for generic) for the Fourier transform. Justin described his work in a Blog series [1][2][3][4][5][6][7][8].

            Spherical harmonics

            The spherical harmonics $Y_{lm}$ of degree $l$ and order $m$ over the longitude $\phi = (0,2\pi)$ and colatitudes $\theta = (-\pi/2,\pi/2)$, are

            \[Y_{lm}(\phi, \theta) = \lambda_l^m(\sin\theta) e^{im\phi}\]

            with $\lambda_l^m$ being the pre-normalized associated Legendre polynomials, and $e^{im\phi}$ are the complex exponentials (the Fourier modes). Together they form a set of orthogonal basis functions on the sphere. For an interactive visualisation of the spherical harmonics, see here.

            Latitudes versus colatitudes

            The implementations of the spherical transforms in SpeedyWeather.jl use colatitudes $\theta = (0,\pi)$ (0 at the north pole) but the dynamical core uses latitudes $\theta = (-\pi/2,\pi/2)$ ($\pi/2$ at the north pole). However, all arrays are always sorted north to south such that [i,1] will access the northern-most grid points. Note: We may also use latitudes in the spherical harmonic transform in the future for consistency.

            Synthesis (spectral to grid)

            The synthesis (or inverse transform) takes the spectral coefficients $a_{lm}$ and transforms them to grid-point values $f(\phi,\theta)$ (for the sake of simplicity first regarded as continuous). The synthesis is a linear combination of the spherical harmonics $Y_{lm}$ with non-zero coefficients.

            \[f(\phi,\theta) = \sum_{l=0}^{\infty} \sum_{m=-l}^l a_{lm} Y_{lm}(\phi,\theta)\]

            We obtain an approximation with a finite set of $a_{l,m}$ by truncating the series after $l = l_{max}$.

            Analysis (grid to spectral)

            Starting in grid-point space we can transform a field $f(\lambda,\theta)$ into the spectral space of the spherical harmonics by

            \[a_{l,m} = \int_0^{2\pi} \int_{-\tfrac{\pi}{2}}^\tfrac{\pi}{2} f(\lambda,\theta) Y_{l,m}(\lambda,\theta) \cos \theta d\theta d\lambda\]

            This integral has to be discretized to when grid-point values $f(\lambda_i,\theta_i)$ are used. For more details, see [7],[8].

            Spectral packing

            Spectral packing is the way how the coefficients $a_{lm}$ of the spherical harmonics of a given spectral field are stored in an array. SpeedyWeather.jl uses the conventional spectral packing of degree $l$ and order $m$ as illustrated in the following image (Cyp, CC BY-SA 3.0, via Wikimedia Commons)

            Every row represents an order $l \geq 0$, starting from $l=0$ at the top. Every column represents an order $m \geq 0$, starting from $m=0$ on the left. The coefficients of these spherical harmonics are directly mapped into a matrix $a_{lm}$ as

            $m$
            $l$$a_{00}$
            $a_{10}$$a_{11}$
            $a_{20}$$a_{12}$$a_{22}$
            $a_{30}$$a_{13}$$a_{23}$$a_{33}$

            which is consistently extended for higher degrees and orders. Consequently, all spectral fields are lower-triangular matrices with complex entries. The upper triangle excluding the diagonal explicitly stores zeros. Note that internally vector fields include an additional degree, such that $l_{max} = m_{max} + 1$ (see Gradients in spherical coordinates for more information). The harmonics with $a_{l0}$ (the first column) are also called zonal harmonics as they are constant with longitude $\phi$. The harmonics with $a_{ll}$ (the main diagonal) are also called sectoral harmonics as they essentially split the sphere into $2l$ sectors in longitude $\phi$ without a zero-crossing in latitude.

            Array indices

            For a spectral field alms note that due to Julia's 1-based indexing the coefficient $a_{lm}$ is obtained via alms[l+1,m+1].

            Fortran speedy does not use the same spectral packing as SpeedyWeather.jl. The alternative packing $l',m'$ therein uses $l'=m$ and $m'=l-m$ as summarized in the following table.

            degree $l$order $m$$l'=m$$m'=l-m$
            0000
            1001
            1110
            2002
            2111
            2220
            3003
            ............

            This alternative packing uses the top-left triangle of a coefficient matrix, and the degrees and orders from above are stored at the following indices

            $m'$
            $l'$$a_{00}$$a_{10}$$a_{20}$$a_{30}$
            $a_{11}$$a_{21}$$a_{31}$
            $a_{22}$$a_{32}$
            $a_{33}$

            This spectral packing is not used in SpeedyWeather.jl but illustrated here for completeness and comparison with Fortran-speedy.

            Example transforms

            julia> using SpeedyWeather
            +julia> alms = zeros(ComplexF64,3,3)    # spectral coefficients
            +julia> alms[2,2] = 1                   # only l=1,m=1 harmonic
            +julia> map = gridded(alms)             # convert to grid space
            +8×4 Matrix{Float64}:
            + -0.324541  -0.600363  -0.600363  -0.324541
            + -0.134429  -0.248678  -0.248678  -0.134429
            +  0.134429   0.248678   0.248678   0.134429
            +  0.324541   0.600363   0.600363   0.324541
            +  0.324541   0.600363   0.600363   0.324541
            +  0.134429   0.248678   0.248678   0.134429
            + -0.134429  -0.248678  -0.248678  -0.134429
            + -0.324541  -0.600363  -0.600363  -0.324541
            + 
            +julia> spectral(map)                   # back to spectral space
            +3×3 Matrix{ComplexF64}:
            + 0.0+0.0im  0.0+0.0im          0.0+0.0im
            + 0.0+0.0im  1.0+3.60727e-17im  0.0+0.0im
            + 0.0+0.0im  0.0+0.0im          0.0+0.0im

            and we have successfully reobtained the $l=m=1$ spherical harmonic.

            Available horizontal resolutions

            SpeedyWeather.jl uses triangular truncation such that only spherical harmonics with $l \leq l_{max}$ and $|m| \leq m_{max}$ are explicitly represented. This is usually described as $Tm_{max}$, with $l_{max} = m_{max}$ (although in vector quantities require one more degree $l$ in the recursion relation of meridional gradients). For example, T31 is the spectral resolution with $l_{max} = m_{max} = 31$. Note that the degree $l$ and order $m$ are mathematically 0-based, such that the corresponding coefficient matrix is of size 32x32.

            Using triangular truncation[9], there are constraints on the corresponding grid resolution. Let nlon, nlat be the number of longitudes, latitudes on a regular Gaussian grid. Then spectral and grid resolution have to be chosen such that

            • $nlon \geq 3l_{max}+1$
            • $nlat \geq (3l_{max}+1)/2$

            In general, we choose $nlon = 2nlat$, and ideally $nlon$ is easily Fourier-transformable, e.g. $nlon = 2^i3^j5^k$ with some integers $i,j,k \geq 0$. SpeedyWeather.jl is tested at the following horizontal resolutions, with $\Delta x = \tfrac{2\pi R}{nlon}$ as the approximate grid spacing at the Equator

            $l_{max}$nlonnlat$\Delta x$
            31 (default)9648400 km
            4212864300 km
            85256128160 km
            17051225680 km
            341102451240 km
            6822048102420 km

            Choosing trunc as argument in run_speedy will automatically choose nlon,nlat as presented in the table. Other common choices are T63 (192x96), T127 (384x192), T255 (768x384), T511 (1536x768), among others.

            Derivatives in spherical coordinates

            Horizontal gradients in spherical coordinates are defined for a scalar field $A$ and the latitudes $\theta$ and longitudes $\lambda$ as

            \[\nabla A = \left(\frac{1}{R\cos\theta}\frac{\partial A}{\partial \lambda}, \frac{1}{R}\frac{\partial A}{\partial \theta} \right).\]

            However, the divergence of a vector field $\mathbf{u} = (u,v)$ includes additional $\cos(\theta)$ scalings

            \[\nabla \cdot \mathbf{u} = \frac{1}{R\cos\theta}\frac{\partial u}{\partial \lambda} + +\frac{1}{R\cos\theta}\frac{\partial (v \cos\theta)}{\partial \theta},\]

            and similar for the curl

            \[\nabla \times \mathbf{u} = \frac{1}{R\cos\theta}\frac{\partial v}{\partial \lambda} - +\frac{1}{R\cos\theta}\frac{\partial (u \cos\theta)}{\partial \theta}.\]

            The radius of the sphere (i.e. Earth) is $R$. The zonal gradient scales with $1/\cos(\theta)$ as the longitudes converge towards the poles (note that $\theta$ describes latitudes here, defintions using colatitudes replace the $\cos$ with a $\sin$.)

            Starting with a spectral field of vorticity $\zeta$ and divergence $\mathcal{D}$ one can obtain stream function $\Psi$ and velocity potential $\Phi$ by inverting the Laplace operator $\nabla^2$:

            \[\Psi = \nabla^{-2}\zeta, \quad \Phi = \nabla^{-2}\mathcal{D}.\]

            The velocities $u,v$ are then obtained from $(u,v) = \nabla^\bot\Psi + \nabla\Phi$ following the defintion from above and $\nabla^\bot = (-R^{-1}\partial_\theta, (R\cos\theta)^{-1}\partial_\lambda)$

            \[\begin{aligned} +u &= -\frac{1}{R}\partial_\theta\Psi + \frac{1}{R\cos\theta}\partial_\lambda\Phi \\ +v &= +\frac{1}{R}\partial_\theta\Phi + \frac{1}{R\cos\theta}\partial_\lambda\Psi. +\end{aligned}\]

            Alternatively, we can use the velocities $U = u\cos\theta, V = v\cos\theta$, which we do as the meridional gradient for spherical harmonics is easier implemented with a $\cos\theta$-scaling included, and because the divergence and curl in spherical coordinates evaluates the meridional gradient with $U,V$ and not $u,v$. From $u,v$ we can return to $\zeta, \mathcal{D}$ via

            \[\begin{aligned} +\zeta &= \frac{1}{R\cos\theta}\partial_\lambda v - \frac{1}{R\cos\theta}\partial_\theta (u \cos\theta) \\ +\mathcal{D} &= \frac{1}{R\cos\theta}\partial_\lambda u + \frac{1}{R\cos\theta}\partial_\theta (v \cos\theta). +\end{aligned}\]

            Equivalently, we have

            \[\begin{aligned} +U &= -\frac{\cos\theta}{R}\partial_\theta\Psi + \frac{1}{R}\partial_\lambda\Phi \\ +V &= +\frac{\cos\theta}{R}\partial_\theta\Phi + \frac{1}{R}\partial_\lambda\Psi \\ +\zeta &= \frac{1}{R}\partial_\lambda \left( \frac{V}{\cos^2\theta} \right) - +\frac{\cos\theta}{R}\partial_\theta \left( \frac{U}{\cos^2\theta} \right) \\ +\mathcal{D} &= \frac{1}{R}\partial_\lambda \left( \frac{U}{\cos^2\theta} \right) + +\frac{\cos\theta}{R}\partial_\theta \left( \frac{V}{\cos^2\theta} \right). +\end{aligned}\]

            which is a more convenient formulation as required $\cos\theta$ scalings are reduced to a minimum. The remaining $(U,V)*\cos^{-2}\theta$ are done in grid-point space and usually in combination with other operations like the computation of the vorticity flux. But also note that SpeedyWeather.jl scales the equations with the radius R (see Radius scaling) such that the divisions by R drop out too. As described in Meridional derivative, it is more convenient to implement $\cos\theta \partial_\theta$ via a recursion relation for the Legendre polynomials than $\partial_\theta$ directly. How the operators $\nabla, \nabla \times, \nabla \cdot$ can be implemented with spherical harmonics is presented in the following sections.

            Zonal derivative

            The zonal derivative of a scalar field $\Psi$ in spectral space is the zonal derivative of all its respective spherical harmonics $\Psi_{lm}(\phi,\theta)$ (now we use $\phi$ for longitudes to avoid confusion with the Legendre polynomials $\lambda_{lm}$)

            \[v_{lm} = \frac{1}{R \cos(\theta)} \frac{\partial}{\partial \phi} \left( \lambda_l^m(\cos\theta) e^{im\phi} \right) = +\frac{im}{R \cos(\theta)} \lambda_l^m(\cos\theta) e^{im\phi} = \frac{im}{R \cos(\theta)} \Psi_{lm}\]

            So for every spectral harmonic, $\cos(\theta)v_{lm}$ is obtained from $\Psi_{lm}$ via a multiplication with $im/R$. Unscaling the $\cos(\theta)$-factor is done after transforming the spectral coefficients $v_{lm}$ into grid-point space. As discussed in Radius scaling, SpeedyWeather.jl scales the stream function as $\tilde{\Psi} = R^{-1}\Psi$ such that the division by radius $R$ in the gradients can be omitted. The zonal derivative becomes therefore effectively for each spherical harmonic a scaling with its (imaginary) order $im$. The spherical harmonics are essentially just a Fourier transform in zonal direction and the derivative a multiplication with the respective wave number $m$ times imaginary $i$.

            Meridional derivative

            The meridioinal derivative of the spherical harmonics is a derivative of the Legendre polynomials for which the following recursion relation applies[10],[11]

            \[\cos\theta \frac{dP_{l,m}}{d\theta} = -l\epsilon_{l+1,m}P_{l+1,m} + (l+1)\epsilon_{l,m}P_{l-1,m}.\]

            with recursion factors

            \[\epsilon_{l,m} = \sqrt{\frac{l^2-m^2}{4l^2-1}}\]

            In the following we use the example of obtaining the zonal velocity $u$ from the stream function $\Psi$, which is through the negative meridional gradient. For the meridional derivative itself the leading minus sign has to be omitted. Starting with the spectral expansion

            \[\Psi(\lambda,\theta) = \sum_{l,m}\Psi_{l,m}P_{l,m}(\sin\theta)e^{im\lambda}\]

            we multiply with $-R^{-1}\cos\theta\partial_\theta$ to obtain

            \[\cos\theta\left(-\frac{1}{R}\partial_\theta\Psi \right) = -\frac{1}{R}\sum_{l,m}\Psi_{l,m}e^{im\lambda}\cos\theta\partial_\theta P_{l,m}\]

            at which point the recursion from above can be applied. Collecting terms proportional to $P_{l,m}$ then yields

            \[(\cos(\theta)u)_{l,m} = -\frac{1}{R}(-(l-1)\epsilon_{l,m}\Psi_{l-1,m} + (l+2)\epsilon_{l+1,m}\Psi_{l+1,m})\]

            To obtain the coefficient of each spherical harmonic $l,m$ of the meridional gradient of a spectral field, two coefficients at $l-1,m$ and $l+1,m$ have to be combined. This means that the coefficient of a gradient $((\cos\theta) u)_{lm}$ is a linear combination of the coefficients of one higher and one lower degree $\Psi_{l+1,m},\Psi_{l-1,m}$. As the coefficient $\Psi_{lm}$ with $m<l$ are zero, the sectoral harmonics ($l=m$) of the gradients are obtained from the first off-diagonal only. However, the $l=l_{max}$ harmonics of the gradients require the $l_{max}-1$ as well as the $l_{max}+1$ harmonics. In SpeedyWeather.jl vector quantitie like $u,v$ use therefore one more meridional mode than scalar quantities such as vorticity $\zeta$ or stream function $\Psi$. The meridional derivative in SpeedyWeather.jl also omits the $1/R$-scaling as explained for the Zonal derivative and in Radius scaling.

            Divergence and curl in spherical harmonics

            The meridional gradient as described above can be applied to scalars, such as $\Psi$ and $\Phi$ in the conversion to velocities $(u,v) = \nabla^\bot\Psi + \nabla\Phi$, however, the operators curl $\nabla \times$ and divergence $\nabla \cdot$ in spherical coordinates involve a $\cos\theta$ scaling before the meridional gradient is applied. How to translate this to spectral coefficients has to be derived separately[10],[11].

            The spectral transform of vorticity $\zeta$ is

            \[\zeta_{l,m} = \frac{1}{2\pi}\int_{-\tfrac{\pi}{2}}^\tfrac{\pi}{2}\int_0^{2\pi} \zeta(\lambda,\theta) P_{l,m}(\sin\theta) e^{im\lambda} d\lambda \cos\theta d\theta\]

            Given that $R\zeta = \cos^{-1}\partial_\lambda v - \cos^{-1}\partial_\theta (u \cos\theta)$, we therefore have to evaluate a meridional integral of the form

            \[\int P_{l,m} \frac{1}{\cos \theta} \partial_\theta(u \cos\theta)) \cos \theta d\theta\]

            which can be solved through integration by parts. As $u\cos\theta = 0$ at $\theta = \pm \tfrac{\pi}{2}$ only the integral

            \[= -\int \partial_\theta P_{l,m} (u \cos\theta) d\theta = -\int \cos\theta \partial_\theta P_{l,m} (\frac{u}{\cos\theta}) \cos\theta d\theta\]

            remains. Inserting the recurrence relation from the Meridional derivative turns this into

            \[= -\int \left(-l \epsilon_{l+1,m}P_{l+1,m} + (l+1)\epsilon_{l,m} P_{l-1,m} \right) (\frac{u}{\cos\theta}) \cos \theta d\theta\]

            Now we expand $(\tfrac{u}{\cos\theta})$ but only the $l,m$ harmonic will project onto$P_{l,m}$. Let $u^* = u\cos^{-1}\theta, v^* = v\cos^{-1}\theta$ we then have in total

            \[\begin{aligned} +R\zeta_{l,m} &= imv^*_{l,m} + (l+1)\epsilon_{l,m}u^*_{l-1,m} - l\epsilon_{l+1,m}u^*_{l+1,m} \\ +RD_{l,m} &= imu^*_{l,m} - (l+1)\epsilon_{l,m}v^*_{l-1,m} + l\epsilon_{l+1,m}v^*_{l+1,m} \\ +\end{aligned}\]

            And the divergence $D$ is similar, but $(u,v) \to (-v,u)$. We have moved the scaling with the radius $R$ directly into $\zeta,D$ as further described in Radius scaling.

            Laplacian

            The spectral Laplacian is easily applied to the coefficients $\Psi_{lm}$ of a spectral field as the spherical harmonics are eigenfunctions of the Laplace operator $\nabla^2$ in spherical coordinates with eigenvalues $-l(l+1)$ divided by the radius squared $R^2$, i.e. $\nabla^2 \Psi$ becomes $\tfrac{-l(l+1)}{R^2}\Psi_{lm}$ in spectral space. For example, vorticity $\zeta$ and streamfunction $\Psi$ are related by $\zeta = \nabla^2\Psi$ in the barotropic vorticity model. Hence, in spectral space this is equivalent for every spectral mode of degree $l$ and order $m$ to

            \[\zeta_{l,m} = \frac{-l(l+1)}{R^2}\Psi_{l,m}\]

            This can be easily inverted to obtain the stream function $\Psi$ from vorticity $\zeta$ instead. In order to avoid division by zero, we set $\Psi_{0,0}$ here, given that the stream function is only defined up to a constant anyway.

            \[\begin{aligned} +\Psi_{l,m} &= \frac{R^2}{-l(l+1)}\zeta_{l,m} \quad \forall~l,m > 0,\\ +\Psi_{0,0} &= 0. +\end{aligned}\]

            See also Horizontal diffusion and Normalization of diffusion.

            U,V from vorticity and divergence

            After having discussed the zonal and meridional derivatives with spherical harmonics as well as the Laplace operator, we can derive the conversion from vorticity $\zeta$ and divergence $D$ (which are prognostic variables) to $U=u\cos\theta, V=v\cos\theta$. Both are linear operations that act either solely on a given harmonic (the zonal gradient and the Laplace operator) or are linear combinations between one lower and one higher degree $l$ (the meridional gradient). It is therefore computationally more efficient to compute $U,V$ directly from $\zeta,D$ instead of calculating stream function and velocity potential first. In total we have

            \[\begin{aligned} +U_{l,m} &= -\frac{im}{l(l+1)}(RD)_{l,m} + \frac{\epsilon_{l+1,m}}{l+1}(R\zeta)_{l+1,m} - \frac{\epsilon_{l,m}}{l}(R\zeta)_{l-1,m} \\ +V_{l,m} &= -\frac{im}{l(l+1)}(R\zeta)_{l,m} - \frac{\epsilon_{l+1,m}}{l+1}(RD)_{l+1,m} + \frac{\epsilon_{l,m}}{l}(RD)_{l-1,m} \\ +\end{aligned}\]

            We have moved the scaling with the radius $R$ directly into $\zeta,D$ as further described in Radius scaling.

            References

            diff --git a/v0.5.0/time_integration/index.html b/v0.5.0/time_integration/index.html new file mode 100644 index 000000000..1b86e4162 --- /dev/null +++ b/v0.5.0/time_integration/index.html @@ -0,0 +1,2 @@ + +Time integration · SpeedyWeather.jl
            diff --git a/versions.js b/versions.js new file mode 100644 index 000000000..7611beb05 --- /dev/null +++ b/versions.js @@ -0,0 +1,7 @@ +var DOC_VERSIONS = [ + "stable", + "v0.5.0", + "dev", +]; +var DOCUMENTER_NEWEST = "v0.5.0"; +var DOCUMENTER_STABLE = "stable";
          • M^K{cA9{{NFi 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 z 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�~%5B1)h+FgP-f_Cw;>{_*BaSS6{Cqgly5i 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

        5. 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

        6. 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%0Dam?A(> zotXcxcQMH7{e{jr!tqPqb^O`ODY;1-JsD(J@F;KI$yo~sEO`+tdT_d&5#4ddh3_|a35j_l&Wb!cJXOo4pazR=zlhO4z2~%< z2Y|&O0D3IPmfMfw{f=+!v&|=vPdqRQP&Cf#bIe~AodKLTmqK;oXpZ_ywT;JQ6XP3lfq9=QN+-zDGs^EH6;;rQ4I z9QUS2>b)bPfV<51(Gh;7w}8N`mb_qFzr`=24?`UBu0d)^3IK3oPQuKa1(et(#%tKf z2c6g&A-^oQB(YJ98Y^XkW#^#^I7WAmAo_lqF(n3W&)KR2Ez)0}y~E}3)l7fBGU5aG zkLRKhXk*YrI_DFjVAEfAM>o*k$*hSU^0^vv$TMKUR5yUa5{NiTugLQ)_4-qqa8goc zB4k(J@RA~l(UlHbGq(%zS}J=Uvc?vB2G$p|d=?Yw8!W$oraOniRX@|S_gPmYy8t1w zY1*#eg?!FCo;3lMg@|Zef8WAi@Q0&|Hw278@S!#Dx{Jg-U%?!OCd+_DAf=+Bf1wbt z8w@i9R5~K>VedJP7xNExhqND$WYJ?!XsvsFgcu;{3Q&9JTYbCZ2ZcU>aUSt40IKEG zH~!Njd;#FLYDfjyJL{PRUpM8)Sl`(t4%Onl$@=eA$RsIHx5$I-)hGA`WOvba$TeU> za@%ADKEnVMF|x(&SHZj_;%HuA`@DPEs7$mH+eYFvsxx^BWV>g|_$JSu z&uD+3L%=m!UfDFa?Z-l7F1v>2kWv@)9mvzQv`7#0FX!W5vu0S3r?81Eh3-F1dFDk*XkqU<9pAnlkyj-B_=;35%I!}=6(k}+V@3$Uy6B0r(}#-~+EF6g@0W^ki&YYY`#?3H}ad<}9wM+s%T zo>k024B}VN;2w5i`<}5vBytPS1$klqtB{bE%4S|7udMmVP(Nitsudj3mKF@_stJ z>Q5PMd_%qK7iNP5)3}y9bY(;(hJBj_g8T{(Cl>DAyfZ6lBMG#Fu4u64gFNj%TIY{x zLl}$l>vNYbBVY8Ko~zxQc#c@l3G3-?yt!&jNWt+qK!tG4#1g^uw_Vu{DQ1&npjMvU zHojBd_MIB{9ZI*Q-P`W!td-*#@%>{Ef&Uzr6f8a0KhD(XV|I-G-OfL0oO^&R14Yv} zs=6|2AY*G!sQUV&!PZ;Qmyp`=E`La!VGT;85m9L1xd)VmrqVf86;Hv!T_#kodR}+R z(0#QMU$3>qa0L7pN~n3b}k-DT>wq|q)C3KE?M z6kX$qZ}?gpOe#qQ9wrF-xKPndIBLE)T`(o{cJJ{iDVv2!&!8W_Jw0+gF3KOdAIU)> z#lNHAo}HnOS75!;s?4(RBNbinXWDF3A&F#dngHiVE#TFVQ~29iX5M4(o`qtp#ji(! zCLkrMCr!)VyerCgpQo5cy_bif_)?-&*C$X#sUPKQ>~!KkdS5j%Fg4GkVS92mWy}4L z!aA-9V>vBnkx5S>OI(8XPSPkA60Pw=i?27pDU4>zA3hU_#~Tk*w3*@g2*0l@6)qXZ zT9hngG4ZmxlUNuGMnvOEnY@Xs>t7%ApjB7BI|V}YMvhX}>3i1`u1XeAuxFL`=|97g zJnK2|8<8!f+>|`rF0KHYy8;dpJcy!rikfPlFyoxw# zFrabT`Z5#i>1qo}ef@>H?oNv&E$JpHZKK%d@Ios7c<8%3{DcWIb1{|2mRFK|7;>Ki`;T z;`h!YPo)Ri7B|;fWw4Ppi|-bp{JUj??)cv?54FX>NoIqCoXL;0RDPupN6ET3wFGvl zK)Ko=HSnzm!$_J>p7;ZlJZ$-=;wdo;7I{>{`M<;t&)&sn{e}%R(_fDjIU@~a_UZRP zm|q4Lv=gzJeUk-5kGwu9o`@b}AW@T%qpSEbNv@~THZ_a_xdv5NBOr2TsYc?3J`zV& z|H`ucm;x+MQbiTXZ;I#8OE(EJVRP<+oMM;d_yo5H^orF$nGFmYJzWnp^h)V@>xutv zYGAL1?V8fo?HdTmXuH+QC>$^1jqeSyPG}v#DVtqxxl3$X13p}&eAG7z0G}!rpp8T+ zEfQl}aYzESxx+|CTM66x{fP?~e(JmEV2ZLd5{+|}Zb zOI0xI-gv+@cxM^L|8%lk?&hK&w@uouscBYGVE8t0r

          DIyJOPak8%Z|z{h`I7>|crP@m#We`Ah`4Z@lOB5PllAK_ zHuLgyLop$F$B0Ob>r6iJOiF8U?DZ2kOH);3_1CnDc2*ed{1w-p>0HpOm;< zm30m6taSJtQ=-Ah52q@!?QH0hnZZZgd*Cn!O{;~|BNkj>SVnqaXl!n3VlWc?zA?!! zX9^u@m%HgNArBrac5YcxR8|+x-3G*+1Ar=-#5PfGiGn+7XM!LBBGmXL%{gN>_q&n%bK38k%Y8SZJ4dM3T_#Zv>Ke`T;D$ z%P6IOQl`?9)5nu{U>+(sLIqI;#kjqEVL7u4!({sTrun~)VDbpz7;XM^$~w|o(!!#; zQc1aq;Sm_{$iQyC6l0JKImYgFb`Sz_uu__CW3`LT;j!)gTuYH^ZP4`mbU0U2Dq22K zcYny$Ju|nteBnZ6=(OV1ugC zu{E+R=>_65v-LF6a+9&pFDwXWL%dfIi64boYmwAfcx&qNJq;~BF~%Md6&dU5>iw$$ zZf^8DNEg5V_!iK&$j3y-TGr0Qyu^{~#$v!P(5H2U^zG89m3M2%`yRDKQeNu)hWm-ih|Z2lh)agO zv@IuI3t*tJO<}9Bxc~%4K#Qojna6JCB9Tbl-V=xDQwT&7?wza1$w~rDn{mq$S`IZw zsFU2gyNiIu=N-3u177GVa1ap|`h@@hT@4=JIEgC;;o0bV4J20mBKXI}>xs$kPJO&T zp0=crbyy0xj>v?^f_Zwn{3}7BO_!>jS(A%NhlfSq+ke;9d1Qym4Y+8Ks)8R+e)EwL z4ha4(L!rkn=SjGgtVG-F_5s&(bAnqH4t?wn9mIh+frh#0gX?6rhi_H;-Dy#1|faP(7TOs4hlXH*2jGLTppWjI-_4jfc z^VB1EL>`(U{xjIXn^V^r41@y?@I#28Wc%3Nk?asDpq8W|lG z6mQ$jtdeFSx1vDa-1mxCSYhPq?PB6z(M2f_DT{bASL6T}9wW;)xjDKy22M&#*vs!Ek?JM#V9c z5jHsBhHXgk5q2AF>OnSUa#1wVQI^K0cJyYIw6Uz(JU3)dFi&fk7F)Hxbo}KrhMUMj8AMVbpFhNsdYVzKH+Y-~ufwig>)d6b6iCN`h z`aL|`n4bmDbL;Hf&^fD?yH6OjAf1EO?mJv=e0_NFshJI2r#*^`F+$jFa|;z4nIfmF zttu&?p&by6gznrS$jN20t1co3rc{J7>BG=)US0d<&G?z#zcREs+5>Y z)JpL+P^gOx(0@57E|nMX>z&0WfMo(OG-I>$O5!J%9;7AcJQl`}CCp}Zz+O{!PhDr| z@OS|akBgTU8Sk6fKJ}Im(KzGIYe3BJ@-0JKN4Ob|_rO$NVCt%Kck{4!>1yQJQBB7) zp86@ph>T@1-NV7dh23}HiQ&-k$kJd3G7f(odrOM?SKxJR{e>}Js~a68^~n-8QM<&>g-8P_N@8(p5}1JxQR8nJ$!q{tt)tG=P~+fr;IsZ7Ebt(!C^FmM0}Cnvl#gZ? zw<3o9lW)cXQWi_z7od=FR4LVRlvW)~d9KXi6$3L==}^I?X4BJeAaItF1GvyuRXQ-R zDHM}o$WHXxfDkjw##DN<`1bVyMziAYW z*|Ts5ImBfKwBx>=>B~sD7If^_08>_xD^gf1I6JKY{nv+!sA&|L;lkr%oJDVtNi8a3 zbY{-{?Fcq|H)NQk$QTs>(plBo+elgYaWv#&A*)CMowI_q)V*KOD|j`W6d$}qy#*c) z?v*W->=P?85vaPzJWdU(khV=yqWoCb_{EEOZ~0Y{!U9*1{~J_LL`+mLz_U#Q+j{H{ z>BE9dQ$!y{ow?=LFG^TOQdl1TDThF_f7>RO)%atQfLz)9*3r}0xoQV+pGTqT^3NJ) zuaoch#^Ch$&Hw<0Bgc8zyn!5A2lZm$G^l;bPO>PbY8BB!*g02ktkgKIcY;r=v&$=7 zl#EYKPI@{fcz0_T2fgaZVwqbKma#$T*;k1Fd2=^00qf?UbUgF&F;*g z<_2$2={_Rs3)E!Al`Zz>E^n`&>(Ar$n+FkfXR$EC!J2XhkgmT9f~%>}8Z6p*0!0Nt zB>*%iW39Ayo`4f+_!(vV%xh%q^j_jbdB-T;30*+sbCany0?pPH@Gu-WPJOT*Jxe+{ zM}@;M7V}V3%T(HeC8;fUv2yek7UviESlL;B-WnR(Jpnf8KD8znzo+#xs!>n#h3fSW z^10<}p4qA!4lTg1Z*08Maq+KgY%A!-B_q6UO^raj&|7Q+j25A(ur@seY%RTjSTOlm z)lbMnxyqS@EHOH}X4`d?Ek|2?fO78>86$!aV8CwR&_61bx{mFzZ(Fe;oeHT&V)X0B z(%(svopV@z1UO-15Sf8t-5K%79B_tmFM*RG@g9u9EuMC{k{wU>%7$dS3j9t>t^WOc z)~9z@46=_tZk&ZfxOT@Ut2{S%IBYh`33928JXLH}~X9p|)yicXLh8W^5}Y4ahT zC#qq!0r=d=x+aZqh7+vzv7Hh~e)^*v1L0-D;1DxW$x|^|Y3*^a&9AB?fjCeRHTi-k z!k+I$h(sceN;zUtcBi`GOtjn@Hcn)ImiAoX`2K>**vfmHkMj5B17!UXFb$0?rhShB zVNy4ToeY0T9;K~r@O1e;`@}WJ02U>MXz%p__;a#yvG8?uMRQhC{ZA-wQw3P7Z!2x$ z5*1qyvF;tJ*r&e*8K~&yvpMyHOT>i-i3xhQe~?f7#g%nS741C(P5G6K=@_=siY_e$cQP53M(tCf1i?ya$-;nSkm@5TysESh4<$1yt@BHIQ?nK$vtPui$6f_E(_c0p-@o0?E2>F;^uw#L~HxQ!^{5r5Nu6()OZa6l;+aJ zyyM;YzBqx24EzfrpL%#h8%ALA17sxKRVHqTW$%i0;pKjQItXL=qCp^S>*-~JBM)vp zTw7__=LC{X$#NqAkhwwzt6qp0sVVAUFy#6%b??td2b-~<{0Mm)rl^W+K7cIUwmQ=x z0X9j9-NWe274`{n;v&Y`14UjVaDDAE@ zb8s=TGIO){)-`o?cs{_QWryWxDg9Xl5aH2103W`a82{#WgNb|dQvtnyJ>RhNRtqD1 zjD-i{KZr;1dTL|v+Bf(srH(M(jw++Q8(5-kVNHD|oDz4_bG!?CQBiG5i-Dje+6 z&hb>wLJ9)I+h|r%5aY)LZnUOdlg8Y2h?J@$bsOyKCiD`T(obI+TLzM6im0vtJc6u` z8jpNv1pEnpGdiQ9CHY0od0>%jvdG(V${1Yj_xbYjvNAGpkeKS>=49w$a{Dz}>-$^N zVn(&gUs;f4L^c}0jZ67}7(9FZDU7n-{R5qymZBq|Bnj>%=${R1C+Sbf3CeagZYyiKg1@o#jH1`?|3_`L{(cNkG{l_cToiHoVrr7u1Tcq6WB z0n1FjJGb^UaIq3k5AF(~|J(2o2J{<V$@x@XjE7N{Xe3nS7H`>@*)}L34G^0&A{Oz`qNwURR_cMfKfVCa zl%93T^hi5H1;HVE!F_gD8ME(lD^!mNfq{6a23YHFYpAZZK?Q3b$|tUpk*C^a_Wy)yedaz*&+Ci|Z3~ zEL?2#TnzZ5oSv7B1Dd;Ps-*p|7pBa35GwJ1f#j^y)q&{={Xr z78fU1-}4ioERK^AkBy5xY?>i|#`yFM2;}|G)S3YXod^3K<@%1^s0h;=!h4H#d7bf( zk`(e-6uTa0m!{@_9D7xTzdB>%BV^=cdj%RDRc-fqyOz|Fm3y=T)fm zQk5SlJFg;GT;F^tF@lE|*ljYwADn@UiHGH^J2w^kZmb*t9ebixjlU>i+e-s*^k}77 z9EZw<(A^qVlrsM_x~G9cd0;6R2kCMsB%PWBM~TbD=PnrYpGWwY*2LYy-e50-a3JWn z2Po%`+MaE^eNp3m|D?@)I3BmB12+dT&vp91{i>i5Ms= z%9vAPuk`|00_HuuP)xs^^m>4)^7l2EXbeJstmmb@ww;H0CPrp< z`sdHzm!GHU5eRd|dipZt1P8~!W~3l7hkw<#l1JWDRqw;{&}fjp1pa*Vn~PTrV<>B< z{W2+|Q^+C8#ILXjq7bsGG)1$`%#Cd15t>^C5~}i{PzuRdTF_|zJ?)iIHCOaUYfe!E zwdxC#iBQuRZ@4Q=%wdSzZGuv;)<2QNf zL>ow6UB1lQYJGW(JEZe?#s0TTX}=Tg+v#Dgp*mD9`+Ej{8zS}M{1X@f?G6`^r^IL3 zY9{TSt4q`YPrDW`EfOEr|1-@_^0HzW|4)YupFGn;PrvJw_h8lP&ui>wtFO`W+?0-^ z>CV&ARI9GbU`MU(`^(Dh*6+6U=FRZq(mXbu@8&xFm;O}~aboW0JU_kL>_Mh&_uO46INmOMz2_;L+q(B)b>U>H*WLlUAlqjtIbH`g z&)6AN8>GwhSqLrnKdBox<6)NnJ9JIQ%c50J7og!`3%IL1&jYknO-%0Fs;@4fGyGc1 zAS*!EvooI;il3A``iwWUc78^r`tZFK=97Ei;Vh1y&UK0ND%;HWr1v%a&0m`h&x7a3 z9e9gpsWp9n>zM7Ya8hF7N3&cPm)Jq%jVrMcupQn0qc-(fU zqrp|0&$no5wHiF^!09#(9QT{7R`w7p9^o0`T)p!bkM5pF8JYWfaDTzh zH-B``9xM)KSslc^4R&2QVL~3tkLTh#5dAmPn#4fwHSk&fN6=2RtPb%Z0EOcOb4ZBZ z4C{}*!!}sApCovw`GCj(3_yvb4{1Zlyd{3sC(J1{yS_;D#P@R+tp`=21Tk9JF;H|e zYl8%8LyD!#1_0-M_5K!0;wZ&2jZ>YDx^$e9?U3gC>uqO%2V@BbRKO5qnpd6JTIFCt zZSk3xBip@hp%_lxGDQMFcr-d?A42n+vW<_s17Y};yrqvPp1*>gQNkhiRGSA$lyqeGbew^nJOykq+YyZ;OQ*^8|L82%Rqrn*{Q^Mn=7fD^!3)6B*4s%5%7O^~7Vrx$*50A6sk_i1zH4U_O8qIn?GGVD>L-w05Kf7^bc z-~*H21}s=PV0VQ=6wG`CTjWg_ei9UEALYJ0q8z~@j2ee^O0D2zsQ1Phd%C17cYkx( z=q+5z!&x&_>&geLKeaql z1PIaNh3!R=p(PjBb1JEae_bg2-DTc}a8+uZ2{$Q0hvKLWu_4n$gd8rli^X$GgZ1nL zQSr4$@MI@<##@kvM{Qi;2kS`)-(rl7jb9E`;>y@%Quu`8YP31U=7j8ZdT--0hHAFU zS-pG>p7VAb+|D+K6rr)hV?a*8Ip(Y|$s5pf1Q5C({O~LLqwuqc&-3R+v%$Fr$)2Rc zVRP~k+LM~sh#m#B*GTw2?UEw%O!ZCAG*qaA@DT-MM*P5qhPqQeV5ic1+N^I$U5T!h(NX)`aJVPI9@3xd)@Neb>ud|`%Uo0}<4T!;R)!|}x|UA1VAK|G7dBJni5Nn7Qt zF|BJdlZd?~pd+LLZA(iqCosRk;cYc%IOK?sx8jULb{|h@j00}62pz!FDU(O<2HSiG zfnA=dA0(#$b(fUF_`z48RY2$;^S+5YiWLpIWpNMW@k!B3C1IdE&Ll9VEdj2&GVmzZ zSNVB&Kj!s9M9i@HsA{!#ocznT8zL_*utbkr5N^L0z>?ybrg{fYIbbD_K?XjzpH#z^oqR-m$%4zMFRGNc0@fBKiUsk8_3P=d(@pMe(DH3P~K|wAy|(i z%ahpf>|>UbRD4pbrKeyv&_+QO8pZUN-y^IgI${&c*C@PQP zu+*sBA%B+}gT>8~ugoZ4b%)ZTl_dZB1I4&gOndbZ^G)-evy$m* zwNWc`NaM!8c(x-5ehcy`&;bv^R`%jlbGkY}WHEVLvSzMDJTG?L9~FZCH7q%j|&G z-z-%Jny(}?0N*k4O6Yx}(x3xr%jid}Skv6s{V;N)<|X}zHPPj=2YKA0T-B=lfOkcs zf%|(agbG;d_Bc~^eY*57Pg>7*OcFIwHz&u3?V}c+O!3xp*`OAl!`B^L%YD{9l78pC zUxx`}0%SiPkrZB{1Cc9e2-~7jsDd{5nqnzOlwu zc2fCo$o{d|__jVV36R+q8*8hWJl9(BEgXJj=QNs3K219m@6j*W%j$xBF}qb&&BzYQ zWZ|lcj+HJ$5!@U1T2HN>(%iY-T;ky~Luc7gQH?G{$g31o)@sP}pZGl$0U^ifwZY+? z6cnbZ(vnh^mKOs-iKB9=%eO@m@uqT6t@;aRl&604O|L9(s>+R|%-~26{A`@mdan?Y zgH5H>Xzwbd)ou#B$sJ8}IJdR;)WnKAvkPV2^e!ACcjK#KFuI7PtQzS@AbZQ-WPN;e zUGr`S^U|>Y8c~Z}!y4h%K0VAGb;{j}pbO7G+4gR=f>+B6B%gqZuj37x4_f1_wcT=! zUYE}8hu8B>58c@6;o8!)d^h8O?Hfs+WAEZ$hom=*A%VHbB+E>v7RpLMm%IvS~tR4 z5%wR8ezr^WbUjGCOcK;&`z;zlRmvk!GE?_U#Iq`U%+27`cgMs~=y61Ew5_W89awzk zkvJy)FVCFr$5bSue(MB9W$jr9aUaF^TB4lnLlnESn}VcxdP^s{_7PT*~g&TTl>TS8@{r%+IY4ylov(-H=2`=hj zsLY1y>O8n1?-LEJm7*cQdq`D@B!@ptptz=d^W;}vCE%>0Sk!VQ7xqac5bT9hc-vpk zaB(IQ-MML`+5Tskf&rL!qTH0rlN|200qx<5)f3jX+K;NjXlq@wb zw-`Ero^iz4-U&pFvlK{A>iUN8$gLXUa#7EykE#;6EAbnaYW#P@)mA{r7#q^9cKERbBBj(|rNMG*VNeNlo&Y-8=hb zRH}4)IqlC5zJufDxcC1L|M!pZ`^cGh`R>)@SE)ghVwY^MYNu+yY`1**3|3>>xNOS->@$vPW)K7hX7wsM3{r0I{y>{BDR{NJtx>~U;)vis21|96ByUIeFs;tVI zIc;i3=~T?$xn_$JY%|dP7L+l0d}pC^YKuNvtaSQ#?zVP&aBbSHTb(jFY}lhglRCL< z*&Xg0dPq5ZA3#x@EW=iM3|%bMykqX%@$GM*nR3lh!#;HU>4O0BmiV*Z9%G#zGJo5G z-7G~}d)koRMDpN<>$&dZ%YhR!dU)={bx4GCcL9#7jFlTzb;Mr2^EpO7u+DVWsf%Ff@f@~0q02HA zgg?0wdxt{P2A(p;9)pHVka3>M;tvvNj&wHMy=ilrY&gy)P7_rJ(Nzei{c`5`u|NAC zJWx{gsuu7RZk*tGujch@LRPzHryz~h$aP~Dr)t4cH5rh2#b&R1B`cSY5Kzd2hA6>S zRr-^KEf>S&7a@P;N^f$2%=`9~j_R8!$C4$s?I7Zhwsy4&?@4TNglVvXe$afOs&G77 z!hHR+4KaMKt+Le%*fgQe#p`%b5-#hl2_@S>vgr)nm(SsYg2;;)<)B$-HmeU*Y_77&FCUGbs28U)mSIh=W-He zjvk0;3RX>?Atr%A^Jz8nbBtUcVhS$XVUsDJH*P(=_YP#G=u)b0fnZl{YSk!@8BnzQ zv!S>mP~9Ph$e%5j$6i=#+XW~kCwzKmTt+3R#x$LzK8w_5a)Mg&?TMl-*Kn`rhLd%n zg_10Kb>x1h)D$`3l&jLghUMCnsZyf2nv>V5M&zp&6*E!__mP&>MU-=kZp~|t4lN3o z7%i8vWOLq3)UE=hbKk-pe_={58_Uc^&2Rfiq(?vvK~K~qvocm2`J7kxVYF9~7c^K6coA~;1g zus*;4#i%Z>8@6xfa_S}-)5Y-UmiY~%axD4u{!uD+D?1I`cq2HViFRp)A6=)T92Jn! zaxAt1txO8qZGwdc0{wBrfj?DJ%ymccrgNx8~bp*ho^a_7A$h84XCWvo3Lc4*e6 zMP(7?m;x>wiguN`Vt;kgzR{$XwXGqn-yk0r(>mYD(L99TPDqvu!t; zvyN2xUCnlf4*mw*h6{y$9La@nDCWXVAGA!o>z77#VvaZ%66%%vDrY&Ejl`IY_J^aK zr=2VX=6ykyob;CkH#80t^D1$!(S}W%EymuedW~LHDRzR+lqvY z_MRrBsHx$|LY;aH+z4T?#pW*t1Y0dhyA^6&WXLWB8?zGM4mYMz)qx!Z@2Bw3?B}6W zjJo#oa3azUT8%IUo!G$L2k0h3t7XA9!U>dChs*zRWyKIk@5c;qXuB{#rFzOu_$e-P zJtZ;7g0}g&HD`XRB@UReQIFcF<%DH7`38i}F&SF2GChf^NSjPni&Ymv)ya4QciU+B zH2ur7L9tMg-gBtutm_64Ghlhd)TrErvq}#!L5Xb+iG@g~bqRS4O!IFsHVFX66`eTY zX6u8>s$`*c0wf=>?>L{1B`Qqx!?8oJ;?G3mq=3B(kaGaL%1=8Nu;L0!XKICtA__ol zVy(4XRGW-+t5&jQt-Naz;<2d}>fzVCn&HXXuBe|9bz`oY%d}~0ssQFa6L2c_m=zOv zyw)Ynj6fFz|Dhg@HjB}`&G<$GDr42e5!Hud6*kzYVd+>g@7Wm1Jf<1y4>i)T)udiV zOhR1(I|w8?PM4%YuC#?u@!_k6 zASmuKd_)Cy#nWzBtSO04ei8qqEWVa6cVFL&kyGKMj(Pk6{un%HfPIw5(6Q~HH4ThpMLtNo~no#r%lkN!VV+_t7u*bxK z;m`wlt!?z|mTlji8Oa9is7elPr>uXIa7D$xJ5L-%MJG?CQB`KtAM}<Wt)L*HG&qqP^j);Wv^}U9n5ojdSvuT8jCaqavSQLo*@?u8_>{>4kAS@} zl}f>w0w9Y70Df*H9i75(Fo}{;U!NIzdn}a-R$w5A0zId?;Gq#PS9Pm8)5bWf8p2iV z9b8bCgjeAn#3s-pI-mKopg`ON_3gQB2ugd=f(`k5C?2r(}MjxJ1#>N#~ie_(q zPxf*wKEs5SwFdTE*dWj5f%{B|FqQs5d(Mc$5K#;$j1~})nO;QV9jF)3@&aZGDZ(rY z5X;I^o8WGEp9^%q0)lGsfC_)8s7*AYr%#;W1aC0^F2|j;83(phfY!?rIEo>iKHh-< z4Bw^CbRMQ+;-6ZOT#Rc1pDkIUBCVgtR5B=M*5plebz{v+R}JNz2d1M7%(RjE`mNb)>uF`>X@&C0^T2!oM&$}1s;Br#)BwEn>Yw$7};jTglokT=&NWS)J~F0L5rhHup>VEw!o?DFMv~w z=E@?$sR_0!L@ecS%zob{6Fi$f_PmcO9><(hYTHfEyT=A13t1intVew^1(FF;O=kX% zw?bFNzZVjnJ$#196_^(o4`L?~I;F!p!m!nD^mkdEPO%AOE;Ssj z71U|<+Gv8tu0JWC+P;KDfW3~O&7eya3ApHq{8OU__7apxDh+WcR!}$v;o?a_;G3F& zA~@lhO_bFxv94Y$L1qC*?(1Jy?UHY zI@PgQ32#n*_Apu`-n2^@=%0UJXe<}E>VTV6O)ER8hkZq&=CInP=4Li!O9FCOpl%;Pr zbu3$jOsHT_+^*T#JPve4@NQz4(YevSr0wXi{Wdhj&@t zYQ5^#{q%5#9+%;YP0$FR?IZt_g@mxH>T`zYQjx(@_a-hWGNj;T8|<^fek!?&L?$3j zQp|H`E1k%&>g31~3#~$(cyo|+$b|OtPhBTw*P0fqHvT|X#2Kv(j-4P5CU5DBxD5g4>cw4d^u| z3ACFV&U6C*6CN5^5W-Y>VY8phc0`fQ@$qTPjn;*tLedAhzkakTw||!0OmVW3yo%S= zPRQqv+1XTGEwTdhz8{^u1M-Vfhj#Vz78G`}2s%^HhQ|&8L#Zk#D|)6BBv_KL>`iL2 z0>+n3)k(dV1NvK^6GI`3K>ETN1kgF2U6T}}=A=+ASPSc8dx4onIBItc5Zu_+i4F^I z#r=YvMg%Ns9;<8-i-9t(Y;ZZc%}fU|W`DuC0DLXG2+}w)iz$^a#+!QO@aNiN}YB)J-tl2Bc=@{r?sK6(Z>O){1G zn8e2{eswV1cly-Pe1owig`}q(vjH7@81wKfJIn~WZhgtdfj(+;iHT#l13`cxaABUG zpB%NPCsVcL^B*#)GRa{Smigg}0hWzYp()Iaf>9Y00*0!GvN0bz{DCPOR}`pEXLBvp2u6Jcqy=gTaOsQ0dW#w7DD46Haj7nC5+W5YOTmR$IhraBNEhld$Qp}k zV>JHX)WH!AvL1qTq3$`{M-6a&v*Jl4l@<;inJD4zuJ}F5(FxEgMAUy(VMI$*wJ?G_=^Ru(ZBtVQ5jV2OEUgX!)Di-{plF&15BhSb)07pX zVCq0&np5E(cvCFJ*zosP`PgTE+g{a)+BNWX%1X3pD?p3XOAcJ~hjqDSofKJ?fyZTa zGzubxrEHBI>(wsVMoxK3#hD#&DS>AG{TNG9AdAcsPf#EyRvYY1V*<2HI^fTza z-e8;U9`|k|SXDGs`iTw637?y3V9#zbn-K0y^K87ZH57&WoSi`6IB0Sj=uw-dY+ z@H6xy!Q-u|^p_oNbwpR=Z;`CWeQ9u56aq!n$P3(y5>R6P;k=7IjZ! z$$+2HT@y9kLu^!7rONmKME0=RX;mmq_QooOUOAkTK#{;ioD`{{j3;kBJRc7}7lvnU zJh>+kDpL%gVm_Pv-T^L3*u6IJkdL`F*JP&eQ|xzM%C)qrD?akjVTQUB3Yo}JUJEDX z$cV#f54C|^f#0>O;-ZGXwl0mP*cXJH2|NRpv*+detG7(3CZa}!)T-{9nmWbW2b@1jW}Q{_xw0IK9-TDs(l?r>@V9td zTw6pn&#rN%DIZ}2t@w~urh083m%*?6GM!TiBw5kmJw_ati_6+r`P*F`uGq2o{7sz4~3N)!X#7f9gF4Wax%Vf zYHNg#f4^7%8KC2Lb9xujPo8s^)B#i@Lf z!12)9pm=3fqsCz`R(VKFdfp2JYC80_$$-fto4o5H?rDEI8kJ_^;4uDj)Qk&PCH9P# zS1l&Iy5*kjss{zP(D zG909P>R#d_R>#kQBCK!vFyuu*XNlZ(W)~R7Vr`*d_^O3Zje1Tdz(W)Ac zxl$kvQ)EF=rXvB;R)P~P{qIfNe*LI1fc%D**D|A`ZXXIZjW8))vr2>JWN>QK;t=7f z-Z7DKB9-m0P@Of_)gLvvsQs*PgA}HjsT30{=a7J&#!nAb3)TgCh7?Rx%PHu7drmgC zlVIA=;3%}B%(YTF`?cX*lCgB|wCGG5pPZ>;YV!N(W*5L@uHH-=z>OM{JJ~X2YMP5- z+VNRcHA(sK?O{uw7u%z6)tX@CTzc7IUpfaf(!zITej<>rrMigQ?U7ciSNR)S0?LMikK0H%+# z>b4=7Xz41Co03XG>v6$jJri%5#?j(f^E~~=1(Aed8?uZmC%jT|`#&ksM%4Tvuk!;+ z`W_wSlC7+g#gDD<`bjCRHUN)1s^JPQH8cAyw-*fffiYU-39v8J8ysV{EaWYujHP|% z`Y{!26`fZdvrtxFemw~ykU9sI$1^S)I=s>5DM*k7 zx2-(XgPLpzr?*9$9zMW4x45;L-Rf{*Kz%jQ0TrPP@0NQOmsR1?g_z_|-V{d0sE^+4 zl!>Vx4t(Aiwhc}8%FutdXCnr5N;Q|QXcS?VRJ;dwaOZ7(aWS9vW-&C7>i=P-*Xqh_ zwdZ?kA=3#2tqH2@JQmqIlPj-SEZiE#;nrBU8M~-laAc`{GEv+$2=Q)?bSzG%HG+3x z7C(0L$HaUDtF2*P9oJbw4xDokN^5!NMYcsE0Es?5j$Wjo*>s3C$%^vnob7`x7B_X2 ztE)hoxVOVhNSUy1UeSD=yIk&xr8%ak(gJ}N{0&rmaN)ydiztes1cEs?;K4Eb(3@lz zgM?-s1N6XW>4>JG(Uo0C4mTub)`JEzBp-hBg=kR5w!-*+>u9+Jig4wo@oNpxGC4s)2x%!Mqe0(bi3(WR>3w7#KO zlW=v#Wy-(94N78+tD>`PqW2>d+fOnN`VZ0jK#9i@t)TAk^=r}mSav!NHrb_p=3odp zsVu*4LupH;+~Pff63_NE3I(db&0{_})Gj%P@PKGRWLq7i5QJ2?eO(Mx%9>EPO<7ct zh7cm0DSOqlzyv!u=?c9QJ^Wuqowgd=u)BiRJqmyQim~P3O4pE0iygv@%s zs3s?s@s->{TI$R+htGz_)3NE}a?pZH(>ksA)AzDY)?EE#RQTx)%v!d!>V9>C%{p*y zx^417cS?0$R%m)Nla@@1UiIji0#97az>-61+CO;G)he+h3)fQ#M1>;QD18^Qv9dTW z?Un%bReUR)!1hBGYOSqcgLUgD+_N@)f~*uXHv8~{q#<_8fxKoOXQ5pdn?yn@SAERj zgrwB1adeg%fJsNuTx=)0RFv6wus|BC?`qm5QOMBhRVi$+(v)3Wx_eWWB}}kbL8iK3 z4_Q}$77kJuD^?Wg_T}2Vo*8tL31f2-P9mx#ce_rd9q@&4uwi#5LV&=^3iuopCX1SR zp%l9F4)4W;bQL?0+m@%)$tof{q_UM9ZX?k^;LgqJ-?jiEMnICRVYep4>AlE7)-okQ zWY~4kLEpSpP^vg7I(FJ zYgKl^jNO|3G)X1cMGSwKN13Wgv)4YGJMjE5NJL1afZ=|9ZPglWLff_d$Ov9VVRol# z5i(2tvUj`LTh6XM8OZ z3vp==o2rHAz~)vHyBr=hKd(&-;+##7 zW~79+*TNgg0H<-96em{@!GAS#26I&BZ;H0;W84iIriyzO-?8Tg?6W6lFRJ)BVpH%^=l^!-iykj-f35by}bm^4R3 z!W`uyih5$~y9|dJ;Y?jMsOa*CSXkt$Jv;4Y!oapu5IERyJYRZ$A$2C{LdMUBm*yc< zlyUa$i8j69G|~mBDee5qgehV998~0EN}qqqGj6>&H?WwMtBScrH;OC)p9;A<8VspCaJSE^|h3%v*T0{h`vT~o2tlAt?KzpC#KL-l@4Sk2{fp89AE-s*7lg2@mYZTlI>a~!JcG{nDj}ek49r(Pp=%drf zXJPRq%SyxI+;mF2^c(xk;DOeOd@0#8m6{{t;FOn3_poM!Yf?54xkXi`R-*PU1qvi_ z!gJO4oH!iI%x+jQn2ET@Yfj^nl6m@IvR;wb)7c{1Qb?>HfKdb5>ANMb-T3io*M?wMxZPN1oS|{SyD3 zDyUB@6&rL%!?cRx|1${bLp4vF<|#6X06w&FyW-P)|qtFfvo`4ul;lVbwjMn?AK3w zLq-m48bn~N&!k`y+m>4b&6>9IZvuI+1KkeJyqIt|Qrj3`)YF+j`G5v1N0s!?vs4!8 z6h8cF(?ySXUgiwsK7{bWgJmW0KrfEZpA0;f=$99!6>cDD(l<(5)~h_!6J}US8hNEq zb@CoD6U=H2OO7T)eRwKsETT8~t|sGDl2@vV7}P#apQqSAygSodoeAFIUmG||WH;RZ zG1a6o(ZPBw+|Rv&g^$23gC%&M^5v_|Et}ArS}%|(qy47bpQ|4q9Z*YX#$0nvj)%dK*tF3F}L;+M^0VmDbUcq`n9cx)D( z6lZ_v)HOhvVx7JI1)mR(w&5yNu*!gdF6b3`s%9gyTK z=eZd&!p0FA>n+wRX3S2$X(W>Q8^WPj>jSCa{8fJYuRJ*ju4X1c!-C$UK(M_>U2k1b zoB}#~sMI)F@mRiBdfg&Mb#PE#Ns0lg{UO{0VPHue>FvM*An;a$00=~CRPOjjsp@km zSh#r6b35yzpqv6H7lg{mv(RNQVM1S8m6;w^5FY?jLmiUBsUFM44X%S-{qo4k?`t4+ z5e{U1(qaxtc(aJA9`s@k&{&26r#lkYxBw(s(%TZQn^G_ajs80@>#H!cbUtrqjAr3> zi?^#=Bf)&eHKiF<7s&A*^7kk4QL>{nflZPowQhu_Mgtz^mG7_jSj*g)u>~~>j9%Qeu(Gm-u{nvt(ibsHFSfkO zkZz)bl%)=57x+0-Z7NSJM2(v1NY}__wg^w+WY#or+nmkCoklZG!KCn?aG2UA=nIBP zgA;79^eGEO9iv=`J30WXj5zvk7<--2KJreDW5>rQR9&G9(f8jup4KQa`FoZRHVLnz z@1}CTi>@T_!`+0c9_2NMFIoiAwSW!58K&MgqlmC^*YH67@^&Sdg(RcFs^H|^$mo^f zXg~(^yjIW#mZ2W>yZ8{Q1tI}7b9aknMj&8X$m91)I*5? zbLzFcd}x%F^{jH$8g>?gKi35h@tPPhuXrLJJ=+8nXs%KaKNrYmP0C}bc|H1*^Q7{f z59w5cj3+>|piBIL0c&IMGL5D5Cw*Mx;Q$CRy7}Zij*dwJ^PJtnNO06Mq~khs6^Fd!y+SlpBdTm z5DQELcfVjK&!6Qjvt`4TF z===etm!g?uK-dL)PvY`G$_zL|0I8+@5rl4XXAW}U^;KA0&p2()Eukr-?3pOs$(!s5q*xxC0)(bTmsAC8qhB4_F!Q}>mwDA`{oH6n*)VHEfiX>& zj&=$8uMS8k@{P*^34dT8whd8Da;yF7pl;NojfV8uJ2fsW9P4RiwLE(tf$$;q zx?>7uH_IuuqhtRFP`tsUXB;>3bp_O5)8 zijWQ6>yE$^OCK}|Cq$tTHxU|E9cvIi6sa6DYsSa^Y z6w$~7z6ZDmav`aRc27$08Rk(%k8(+G$yaBw7*j$n3I_Oa(?;X>r4lg4q$IgS1aqZM zp2)HmEWgic!)fc+hG-;3x>&sGb5l8Sdz4)f)WgG`!+A--3K1J0ca8sNj$+3Vf6`yS z;1TYkDu>cuKpLFi)l7{-J{bTg@c^cSX&NkUubvBc0cNyF+DjHLm^{%?rwQP~u*4T| zyN3ci3}gI@eKmcJ(#^s-aS=dG$EIS<7!mcXPi;3w2O933q?iJq%SA`R%)_{jRKX(r zT6{8hOIF{TDi8u=7W1Rjr~QXJP8(aL4-7-Y>PUL*_0?Fjnre|y*BS^%R#Tu<2kW_c zzM4T`ER8yMNyg%G|JqmyA@d((SN^Q7V-^#PDQCJtKPB;YNUInWdg2+(sO_bb6}XH% zAn9mf6SsP?j}eDchBfq#7fS$KRA>28_zM|zf%EZNN$HLF@>%u%xLTVxbz`w9JP>pd z0q$#6W5n20tU`a4?{6^)u=H9fu_%NMDnPEHdKHIW-YGHYsdfj?-YlYhmLCUO#5t16 zw|?1$yf$d<-N3`}L2${EY81z?kiu$KVO3x7k2b7ka*x~z)6DunvIfGmHBX&E*GXh? zDICFU5NG}c_$qnhfODTgF+x@UF(h-N4RcbmFc#uexLGdZHbv)%jk%r>@&#XOMert$ z&t4;*bCBY*yvSo<*Vw%Nd9&CC9*-*`AHgr}f^s(B2!odUMs;qKWdluV*9W2uz>JL3 zEga-mG7z$Y6|NrDsp8lBNpXzSFV#c(h z3ZZ<#-6|@{Y&e!}=hd+j?5WU|Zt~A~M{bd!CTN#!Gt$4ZWv(ns!y=L0MCmXOl0==n zWx~^?WGzQFlyD@pcwQjTT#AO+Ed768K^i4~>PG4Nh8J?wG8=RhI%->q9D&04mVym- z5#x{~~Kug)b)@2av4rn(NXErlVj3=1&YatoP4nG3e5_p+Z z^bGpYBEbM)KO!roML;@uwc5?inv*W-n@#9qp885rnet6_k`xQ}-w~4brAuT-{3>G{ z#<30~60`U^K?5nMU(p?dFH+qF0LWk?^S?KLp;=Mv=!>wGF?u(jGB*8iD~8}=>(k`H zl?6qLfTVy-Lf9OZR;}QV>cHMFr%SnMC&$%&O>OYE#qT;7CvbPK}n883TBiC0L1Nixr?T~Vr zN=i_B2dHk661Dv)AM1!dnM|%?-oH{`!wJ|Xuk1|WC!tfdXi}Di+R<^&Y}k=v3eywK zXl6E9$GP4-5G>hV@|qILWKwLLR67P00VBKy@WOm5#tVdE*PJ^gU$D&-X>jjx5Wq3U z3Rcl6v>%Yl@K^CUvPlqIAzZlb>72#(%lD-NLH=Q(m&%0GPegIKTYH!1MJi=%~yQj`FAo8Hkjh4}J)vNdQ~XIPiFW zYIA>CTWJR+EfV*7f`)nj0)iV+fN<$0-7Z=AxI^!hP~E>Twf-TJdSN0bqkmW!y;v;s zB3c5Eeu<#8mNB(y5On#VL~Nk^=WiCUoOJegiqZqr>SPg7PVSb~wV>SD){0WytXlIJ zbY3u8;fd?{$HGt&J0`Ez!1Uo_8%XMLVo>hmOtl~ZygC}JSO=QmpI5)IINy{lx)bOj zf80MytKzbp(VDAFd2C=vOhQ0hVSqB3Cqw~lfN5<>5C+1=glI%QHHQ}+3c#VLF-=)8 zl4|AF;}Uy;nNJ!O6^Sq84fagQ%p%VKSH?TZ*~L6@qbzyU4FswM@RAAb_O`g(V^B8+Ji=$ax&T|O*cTXCm%UM*(Wqx@r2ieNA!M{YhGg!!8 zeSqHul=>am6XWEzVMojmxkm7a2k0}_8`sYEoIJWB5x5VUaTB)YTahSedSH;$ytHTZ z_?r^R0*v#0)51w`Uq{4l$z2S6|+VBoZ36ZM>MZThC| z5#9S#)5?&%&TM=JdF6Yv^jLXjPMOA+#}1UxZD8hgWO5NXv=@36XUg7zMGg4hEH0d| z8QRW~R-)n%i5dt@Atq~-x(!Q4=4*YQtHcrbKuZKLM1Q4@+FB`Xuapje?n`iYi`@=Z zR`9pAW>=tVZ3A;n=kR!3KI5j86s0($yfQnEWNN5ukLtF@O?PPIkvI5CTC53aTqy|} zDZ%@qtJ1IDB9y{mq)K@A!5nPwkB}>H1}qma35Zb3q~glq<#{+s+#NU4*64X7jya(3*2kKad&qc8EHmCUtMh#|!IbAr4LaZ_1jO%H5s}>?8(26j*wLiF7M!>6|Bt zXQ2!`;Mm}Bwca_T%_T^KwCNqoiSES&V}sFM>UlW0NVSR2_p2#hmM$JC=;l_! zqRQN7H7q;i<0Apyv^DaSgPST;HXUkF&7omq5ptsyY16%mj?ph6y=}`iBSDl(6&g5T zF?*Nb8xQMD7!#x(mw+e_^$I|i1e^E42*qB}uG${kwKE#)wq$j21=67Kt_K$>bo|SE zNNc(b&DEK$%=)dD}w;w>1r`6X*f1d0$1jgjp*R;55ezy@|tr?<@oG|e0L zqW{$Pk8HTFX*%F6v&@Bo$2FFUvVxWJgo8))(iU-PSV!PtVDDN9z_Tp?eD8ph7;iVxBH1V%R7M6`r|E^OnB0qmt4xi8AgVq z3Z47TbMX`~QiJ(X4}C5yf0|d5Ea*j^7}gdTB=PQ&UcpRkP(TeUQzWV-HWy4D?%Q~p zZuP*U^;pEwVms638;pRCgOyk?MpRx;p{pjmV-5mH^J0KcJi7TQsP6G`{rd4(pV4`K zxuJA>{Y<-iyBN2+6R``P$)Fg2m3^-FqW-`^Bfo^?)qJ0DfLD zS4<%b4t4=4;yylTU%m%Hkxe_@U3L#6G5k5xcUK>_Z(q3fJl{B`bMXm0DAM2uCl@<- zkciNCmx!B#Gq>@FbR65iQF!o~a0#1)D>*-J1mC}O=S|X)@A5B6u4hlO0=3Q4Pq&~8 zxo*C3UEi-(C4P4vNJDHhaBN+wr4p0G*&mBPm%BNz&@(*~`xh);WVt=vWRSTAPfzWc zfmypFFSauyKmD(QkFLXyhf-!mJzG!Tf2L>fdIyNVDa0kLju~76MnJVl?;cEF3rnQ4 z0A`aVD1Ff1tvS0MGZghb4nTynseUzTZV7`wyGSjlUL3tMgfVOo^I;Vn=KUHb_?YK> zPxC!Yy%m6JowJP=ew4a6_lBA84Ph;j+kC;??>Lb9L`Y$|N)jfmVx-#`!c3`q_t?8P z1&Q>%C2X>hwl%1_ljpk~{KF@p!Gqf{4;TYCwfrT*tRER7xuEZ9vUuk2S7_6$SP#y= zCn!0P?kZO% zV~1&9GdXVz3x_p}eraot9N)LyhrqtRN!s4E!yky>-xnlRg#Sju2$~=>z1qMjUf+NP zQDr5CZe?0ye!PbE`I}CRE(8wQ@r|BaL`s*& z9P%styezeB24#vIM2P!slRy4+@*b4i^ynY|O}6VRz@*YL>wrC+2-TKo!+EH{CJh$= z(|vpl#3$cQ$EOU_#?ZLND(uloH_3nPf&%6TU`My+1d9rb;V zh3+HuuK+@^_ab7SD^PP`UXCTQ9rX1<{Ls698!_5HuX9j4U-MNjI>6PRiMZc(|0z5~ z#2EqnLpv23JAh8LqKEq+wIt4QR+t+sU9C!a;HUA-&(CEX#8*>$PE6hAe;e)1fx{t1 z{7D_y3&UXna(Rs*gBtGm+jmgF#gg;1639*Ry&X6;0F3f;dpdr`({cd;qO%Fwcv0gU z@A&o7gTwtJL;H%3x*Gg3naB|Tohw+=wom473aAU+d3&IYxj3L-^!22(VT9?<&uUAm zi0C}sE-;kyaiaL4Lh&{Mas4h}`*l{yg?$D|k1{HZcfk958)-=zc`Y_T#(5vbhIxzw zGZ@7s^#qZL`3j9hz2yK!LDn;bJHg|Ld?W7jl|AzM?Ho#ck{I_S{3vwiB+N8ED~9Ra zjL`7=gGp8okSSQ9zI@Oo9Tj# z9#q&ElPQzML)QK95kB?53!1KrwgdQ%l|?{gh|R{?`>evjscS_tMdOMXR_!S|vR90cl0ZO%n`F@~pY zeQgK%4klav*M|R(3p}z3`i)<{>@7iFJ^#ct#UV}rWl9V| z(03r$Y)vB=BWbyuoPPB_1mHCE=VqdTFuQl#lQ>7^W3<@zmSA2I%Z2z)osA1KmVyHm zT4}Yf%(r{Z=~gFe*MZPC%hL;9Cp7gR9Zr@gyFKkGB}qA~sYPw#dL z(y(kFg1AbVczI3E+ux3nQB5dQ@n!lxSk_nAkb)i5o>kMcE&enEa-ADuN}VKsAJ-O5 z>Q-&#bE$83lQ^}n*8JEGp!gH!DGw*$mxt}Y<&ljQ6>qje=%|MK(x?gD|MngBD85REcjeI1KY{uB1CGR!t2xb1D;GhC;A}#a!?LM`f z?Dd+VbaH%HmObaMvx~|)?TZ^b&W$k%L8mc=T`Geh$Ay7e&9_vTwIm=kyR8HU-{ z)7YiE`tt|$nGxepHtkb6c8nqY>)MhcftayP^n*z!;nt*9{SC(dhLO)Dkjr{%`%t3eS2v|swhzOHyDp~Cb0x?!VQ=GAn?)!C46)VF?% zTg}Hy4&onyxT*wU0&x)HAq5Fd*!X-U$l>FGm~Z?JGo>5x`86klFuW_ghgoz_Hc{G{ zoBPYc?BG+IRqq8empw1YpnX<~rxzH>mA=arf%H%7Yp{_R#G|jT^GISo>GiqT&qe9l z0d^{)C-IN@;_mc!20?A@{mIJ>Al~t5{&yDW?gox4pHzLTa)yvL8=ctCk}lak(@vgj+L7KQFtJQ2A6(2fprkn$ zgI`%jAcuebLQuI--x!?!;Qa{+ z5&cF%^N zF|{&6K&}6nHvUGwLM7(?GeW-1rXcAN{}*bsEATs9F(#a!gY#S`6LQlse_8WBQ zjW6T<&B}#i&FsIj*``BrqDxrQd--K|`DVHOw-L};Sb|jF8vJd#Xy7Q^FU+3@%ln!q zv;esmNbjTZoY1Qq|9wS|))Z9!*dKonu^&`Klq1Q}pV(=>!Ml%!Gz)FuUBlJ)6US#? z$#3VuC(EYL+?>=OiMJt_-_0-ZQzA!x|07-dPVy8(109pokr=L{^VQgQo3#Do(h{iH zO|!wT|8q0yJDU}O`6>;{ceJ}?>UG9rtN7jfAiiNd&7}X)Q<%g1l59#kBgG62v9EjD zC#NGc_=K8+SjFGU0cZDP(g4Bmb>bWGX_U1Oti$+D$oLTq$AyG^H!kFH$FMfkInqP) zv;X?T`hi;W7<;@03n|(CNa=UDE$8-{RIQzs(;3WkmNNc8dGA}mJLVYnIYJjmGb-Uw zeBoIA;#2?XfS9UF`SZ2glbd6H$=m#${S7Os8#fcMd*K|nh>CgE>Du&l2!%<``_>|d zcVb*{8G_++#bcXD%nMH5&iM6C7!uDn>svv=)5**96jOYUqQl4i>bTk-|6_aF(|~Sw z8gmGSX!;w@I{hUdOU!Ec(uMc9U*;qDqasT9Ibb^3lbhXf^QqxakQAU|UVHQ;umWBb zvhyQM(R$8X`g3p=+Y;D2t4sGK7>07suy+UhVg zHl450Av}H{e@n2|)^rgL_PWk;eAMly>=aP``(5ltU3lo=c-(sF<>Z`oCNRDmvYeXK zJLCZ}Y47Fh!Me|ZWjh9D&nMkOubW}tg6{-U{Kn`t;c9ha8e$&SZ5>Uf9y?>*L%p02 z@#S&1+)q|7e(u={5uF{`RpgZ-z@6fo&lX%q3Ql#5d!@F5%bk4h8+d6aDeB~E8XO;` zrCXHs?j>PQ*a5rxmXz2*{~KsX4nEk^_=O6Jubtn; zFJ=6w$S3h}jD7)uF!iofzS2vKLc##?!kPCq?xgW(xU*tv=c4E`s)oX?G+ukY*3;)# zB_j<&2-!^VXF~YT%Um?Ux^)=C=l6_nyuh<4*77yo+DJI7rK^{Hi0R5#?OT?fvlhd? z*S*L};b&98(BjR{JDw0PSZqNOZ z$uH2hn(2h>(dT|fO~6$>qlfqQ2nsXahc`$t?(63pOV8)(^}6SaZmv)`hU2t=L6T?W z*S5}!4IJ$sv!g5N_G1Uv`H2a}{PjI8zfN)f^^x+u!OhonFp~Z<5lD{%WA|;lbIad$ zgSq(W`?gd<`pJ;ApGxDVbD3$Zrn-T9eRlm@5Y8YZq2o}BMBt=E|6hYmEQ0yjwOG5b z5YL1C@1q2gDUTzZcio8U$$M4Xwfl%OFes?DJjnmm|9u61eo$wZmss3Pj6OFPCohL! z7fxnmBBP?R&(6%sDyXSOr6OP-9P60o6ykneS;Ra#m-KSa>}rRDkiN}|M`Z4JQp)(F z1alHNog|0KjLr!EBpE8ruQL8y=j;d-78>X$`BRW@XrOS(x3rVjJ zxI~p?BIcuaG4Zf)_@f19)cVn&``3_H=7=w#gk zF;aM(#O?$qJy~;=t@YzCEF?J6-$(I>xTLVS$kfQh_+UQl5} zCD;ewj_;mB_#Euh3;!ug^U^YEnz6vIhzO{=9}=)^AVgSrW<$gC^%U>C{lV3+t zF(vP^yKXzE=>CJ3$H=dl4eSrbZ+MEPYftTJ;^lt%@N;%vSX)xnS3*Tc&;JK$gNY0l z9wsUS8l4{DBBdv#BjFw!0eU|irxLY2Efnj26FznC`37BON_ua5U?y%-`GZ9%at)5r z;}TUAS0Fmrn7n~=e>989f9{r-=aoY*)dh7_#WWO!q?P}>>*9CKHA5=w@Ar-_N5E;mbLrjQ+Y$+{+Wn_Fi+v(e39VDzY)c#7Kyg zQ63r{o?-{k)74Zq7kSzl_&9&;KE4A(AOJ(7)@>|GpR9vfO(TAG@gIy&fRvAwj`>1qTltjvKyiXwpESfxgQ zc1r&G)ukL14TQY3tfb)pMj~#jp&1XqGQOm?vAyr=zjeAr?;`b>*e?R z&&StW0b4aqC2tjVeH#xU<$pOHReAMDpw|P^GL7ig9}{_e`$)p|#hx=*ZjvjHeU@4# zXQr~<3RG`NGW-x?W@CnqKp5L`Ip4f$QV<4QS4cZ-)kU;d+%d6p;Wc*rT4X$cv+ z^2-1HCm)-Wl#YbIUpNewA&@D06w4hUL6)!otIxpBNKH>mNXt&oM8YRHyf`~Hved6E zDe4!J6P3EPT`4W4q#PZUkoX5>SL=IYOE3HE%BG58LM|Q(@$Tc~{L3h3UH(0|#uOt# z9^5$NwFcFg>2yYT8^=-K!$qbC$jK=Cxg>%*^zJci0(c!Fv>g=r^&@qxCQv2K7mKWA*N#GmsCjR^MjcyD87pdl|Q#Ep)O0DJ%EFDx7) zBv9ZH5D^j({CC!2exDs|ug-%9`1x~aXmALu{@x#5O*N%?2|=zV{OEm7Awz*Hc!GwX z1EW(53X6(MvXi3%-)eB6H9ZkxZNXD;kFOludc+`QQ>S zmX?;6S60{7*Vot97N*rL#|HTzWx8V@LnU)WY)W#^%P_>f-cBe_L%)Mogf)wXO^g z0~rny%*D>^kIFQEW0r$~vdAQCosj0=?Hn3P(n3?ElsmO`(aWGJk;9>vV-CUl7b$NaJ@D~;y4(89r)>Lb9ZT`Nie=vA)*g1mEYJ52=fdF?YPyA=%%@x9^bgsW~7q^-BQc zi)ii{nOomKzk@+QMnlKM!bC?yg1bB2njLJd%1w&!cXzaWrXerROHYJ)F;$nI7!zJT zd5g!P@WST(7Z2w*)`sfRLR`!=;5tG_g1I?6fI~z^!zLgF(U^vcf|P`akcfnooPvs) znu?N~1QPL)VDGO^4-XEH&%vb%E@UpRgX0^dnhOW(xuud@eu$o@$wXc$0-0bV*dwBQ0mg}dHe9O-SVudXP`&rFH* zcX{mec3zKM} z)%X+?9upqmsn2q5Jsb=xPg3_&8gEooYSR zd1h*5|H0kE3oH+}y!6DVU>_H2JvlylVszMx&Be)|{oNfc-$AS_%*!t-{oXf!g-XsX zYxu@1BtEmKrm3^Hf3Ux&tF@srFFDM^T$T}eCfy9vE-}|2rm3r`O2>Drp3F3=rf=!+ z5*!jt0&+T59$`s&O+(AKU;M-4v&+8sPOhImg0n~nvIuH=W;RY9K0bavaNDynGtf{F z6M*oCij0H+_vhwleQKbsp`oF!x)P*ZzV08LUBJfuf+Av*Gja=yOG^qz`Z^lQKt}0d zXP_d<&qhmzkBJQa;Q86<)dL(l0X2u1+Vgk5k!i&ZJ(Fw4ckn0}*f==gA3%bCygFE) z?5)p_4|wyGp9FEeyD;Ljp{k;Sv14#{^U@y-Vp;}By2dLcE(6J0Oe}1j+`R)L60*Pp zOmAMoqu~;hQPR*evT}m_R8UAr0CN4av4DJqhKiDc9DIuexLD{&e=iR=L7W9o!>f5!0}MTS`_@Nm2fZxF9zx9R(3K3e4%+cxQEPe9-5Y+A@6X479W$En{Ni z6_e9209m;SNVZ;BzOsAs_T5LfFP=UDA(2U0WsSWvAS~gKfWyPa#V05#CN3^61`$h`H9Wt0e2;)ZNXfz{p{QkOZu9notDCFyI|pl1eGLT( zK2~aCEM%C=-KDYaM({VJrX(dNCnd&3g@*=*hJ}ZR2KoE>`uh0?1O^5L1&4%1M8zbg zW*67A4Xs`v5m2-83WJnVMNM5zMNv)~lB$FKLly_f@5Q8K6_k_|Wh4aH>4-7mFMch} z%*-xt9^XRV9C&f`^t9lbVx=a+LjHTcvp7EZqocLC39_17+q*$-wfyS>26BGsIfS05 z>YLd(xq5i{`UeID2L}iG`*?l+X!}B2PMCv^obX?my*)qN+x_)xcW?jK*5brKXLDm+ zb$L;4R$6LGN@{9aT6#uic5XpYX?b;hOZV9F9XbW4xU!CsnbqspuU=Z1=xZuH5fg+Q zAvSg{elb}!T@$mHFRjdsw3Q@y=t(e;U>@%O!lUAn(sPN(s%q;QfXq`-ieFI_WG%R$ zxVk<)*xlLQ-ubn6aD0CA00-g&5hWv+kfh>M4iO)}n2f5P=_?1PcW>>jK+G56pe4jXL&v}+ zqGI8fR(ob?|K9b}=g+S1?JRVkYsv_*(~}eZ`{t3sZGnM>OGrvd$IQViBBk`y(8A`e z%U3TSA0ID|&u*W-eDU}KPO-1AkGHSCzn`bGttq(71qB2Ig&_5muqap}!a{tUkkkYN z3HI*daBFF1Y~<(2*wozOGKk7cON+~EyJs-S1hjnex|X)@-hce??wym9ll?2RXWFXr zQWB!#l5)yg2F5SU%%2^G15m%|f(RfhAqXyca3Nu!BEZ~To}HXu-95s>!NNTJ2D!*@ z7;vZ2bBf5QKGg%|-cwCYEggM*y{GERa?;|W!VnZf!or|{;$~+89MF+Kse?sC$0ebn zZ*J@K;ln#e+gDbWmM>quwz1L#g}R)SC_fkY>N$8oRs2LrL(kaU+U^Yq7@xm*d~$tf zZ*2xRD9K7o$|$O+t17E&>F8)Z1(%}rYa3geSD=K0gcw_gH;!+eoZdRxzqT;Z(@>NW z=4E4~fmCj|*w~=P!Y3dkgakwsWE6B95*k)+5Hvx=Wd9d1=@?nqIYIDY1-$}Nd~oq2 zARr=v8{q!paA$pODDI_VYre|jJ*7@@{FK_Ubc>nJKjCEAyB!&5TxB(Y&sV6cr zPr%6*65!|HlsHKDN1MybtG~|vAkFOmLBS@Xpk-o*+=Bc(T%6#I zf)W^HbMTMXC!l^@-`L(gJOml&$uW4DOAGUJGn1g6?Eg8lb&ZHcM8hee{>=Q9!@G|z zuK((42k_pkOrQM&AS?t9q=G6q-Ui^qc&e$U0-8UHit^GT98_43o702f_AgEevXvtL zJ)G|?dG-RI9}B5KG3Ss%!9FlHEvK-wu5>;z zys7S2HMLc~*{YZT>8j=fCprhoO{s?iLuG0*=wh z4jdjGkGQ;oytFVEBRMY0pZ(dciqw$LuM7>0Y`&s0D?0=x7F0I2cK+z@Xlkgb%#HQ5 zF}3#!i%-ifDJ@P5d#52H_QE$ItDvN!y0R!UF)B2`)9Hnp2p5N#j#F4(`|2M|5;}GP zNjXJDSx}I&f?f_SNQ%KV#KFY}iNVH@bnz?X+xX)49$efyib9OIFzdsejde9OC20YA z6hlwF8B!Pjz}@x-ETwvkz!I}cJhcFS$R{+dX7~`1fQF5Smzxb#TtV_o1=T z(J`?R0Uyo5g~CpOd3UgPgUKlOCcLQs7aR^HyRfu^yo>}t3nd;Z94st6GCB?+xVeR8 zHJ*XQ&Ds6S*RLL*T;AE48>ou25+m#mwbj>DmgJ?!23SiFTy})u!}^!HCBXR&Bhv{# zQPnjyf37CUFK-oC(7OYJj!#TNjE{{9cd;?nUY-`_ZY)NA-xVtRm=;kK*}!?LpV)JP zLPX5~!UHMZS-rim`!I)XaHyBH3U&9lV0c!N!I4k`b+hM&#%9m8_=x{*jkVVlq(lY> zg;(xV8;4iV+@O;%@k_}mDancR(%~bVt5ooF!85-zmtI3OV z(ct`D{ZU<%m!F#v7x>9qTbfr;PS50-mXflj@$2`WKD#>ESX;eN<-vM*Bv$p#Y#!e{ zxxNL>oc)#2mV)T7rZUX9_cK+&3a6UCjgs=(-2G@Lxjv*+wfz7$`*3e%kR*?NAD)P| z0xMjD?z?Zqmf_L9I>_2>HRs3}*o1@_i>Xh}YZJqmSIh<%gH^*Zo<)=ouAakVlG1bV z35y7GGZLd*uT6|iZ(JkeQ!#V#gBTAI3~EXWGE$J)qrx7|v==2thDXIjhkmnA;9_Rs z*Km!i>K>Vzo1dQiocjU46TSJ-m1O}*onUov@Lu|zuT&9V|cyR{w?6WN<*c{`FO42;V|3p<3 z8zq+1l*X}^oEyFK2&~-0Ai50bZeh3fkBCV~D{dLzeL%({Bq1fnL3uph+1kB;MZvr)0#w=75>V7W=aysKnl_Yw-gfo0vh;!cH5D z)Cz%{lN#;(5`|X&O>k;SBdBrqPEJn__COZ8zq>Iz&{Uif?(Jl%0h*-5mu+`sG^R?gmmA2<`XDhBgKUR+}EZODYRo?=q- z$QrwcrI*$x!1<@r9e4=|`3z<&J z_=8VSWPECBN^(+Mgx?!ws*8p|S%f7FhobJTlKA-S^3>-ylER~d&+1@kL{&hZq^lt> z!a+lb0a`nE$7|;cKgyE>-CpSm!nugb2e=hbM{Z&u_G``SbfU@n=hZjW*H@>!=VoLl z>8$Hy7Q@#rbQq^L^$QPn5v(c~(Ukt<;H_~TVHG(vQ|D9_=#A=7cTXj(q^=;$i2G-K zw6Aw)d}6q}E-T2CX~Q2eq~-mIsB2t7RdsPbHmMSBsEndZx%eXF=6{>j&# zvz}-(t}6UzlOJi^t3%7OO+*YdgqyYYDABz7z_y~Ia?(RFi2=Lbsz)k&XNg(s|D1^>2_CH*kHTxq_>llc7uVax@W>1SVmU(b)$IuZ=1 zGja60jdH;S-@7_nYD+R>g94*6iVI_3T!@tuGa(h2eOs1K-z5`K(*p&Afq|~3x|W`X z0P)>q#pm-Z3g7Gu$C?mXPcJj=pb=tCzuewmuxQvgpxt?~JvY<}84$eDm*s^-gez>6 zo4NWJE2e|8q|&aU#aOw3Z`2P_$0OLrs7lth_Cc+16tpjWi5XjfS&MO^9LRkj0^C|C@D#CVAq;rjgdvU_V5nKT?u8xNsr>}Nm7;`E+?vT ziW@t6rgo1e)8#9sa&8eeGcf8qxL?2cl^QwTa^^ zj#0_KkTKEztknDBB(8c-pkSYurQE!1h9jj!Un$GzKooHZP0q~9NYBW~0N+J;z&8g2 z3G%f!V(Q&6Xt&K;WTWcdpve(cHjhjvVeAo|U*FNyR$GwZXQRZ5b@H<|FDtLAb7JcX z4t;p(;O6#Zt|44@TT4xLkk%0oamqQn zMR0mW&jBv4#&ZL4{I%W1pZdkcm)Cc;Gi1WtwFzYTtR7-~Aq4lo;yv z@10zO3&vpx=(weIUb}gDx!Y)qP{PlY20a&|A*1Ejatcb!t7_A?^9&C2vtl2Cy-e!N z*)k<~;qCX?Tv=9*AAvhZKeeu*XJ;gZo?WE)5Qm1DfgB6w*VN=L9MW#;9W#|x zKzwF?epZ~Xl?(&QQdz)D6MLVCgrtP1fRB1~Wj2_xhs>s-rQ>%*f<_)8;r_3MF^}%4 zwY=i9LHd@Q7#|lG8ygb?hH`;k4jS}J>N&DuVY*WRwPez2N>5bYCjB@>fb>Psaqw_Z z?^oM1zRF?s2Z~{1alA|(yu)V{luIwJZLW*vIM{p@@n!FHO5|gJzn7ccbCWlIG0~2& zRM@T=4TDQN)7fk+%AM%kswS2eh8i*=0(`v87_GE;LO}(sKc}WA2HVP#1Kt|Q@-q;j z-mdhNCk5EcVEDq3Mz52rdZaWh!Bc^DdQy6vmlh2Y3d7THF&Q~oV1N`B6adSlI#rd#r20==AH=}A!kZFRYyk?6j;9tudO z8>TVvjO?!b29s*JN5ud}E7hcWUjsaC&0kv^8GK0YJ^8bi0w*jP(=<6%p@JsYi!W{E z5fBm*M-VJn@%- zSuJzFaoDw7Lt`VpK4nBjp;2`WPfkmTiwFW^I9sb1CI;FXsw$vyU}R=ttip}6^F7(m zQJZDko82GtLqXSIS4og6dXuL-D+zoHvuD&JkB+6qQ+~YFusLJ3%(mmfIA*7OPs0bh z7E~eAkIpYu1b8Loq@_(FdtnF&Z*y+^Omi9wOjsCO@njtWVp6kn!MRNg`5=c9`wlB^ z=mY^17aI-kY;~lyEF;SIt)VPC;p0TEEezqQ*8nQVQ|GX(#<6`kJZ3qwcTT2KRA^|F zPhR^)#z95}A6^-2%8Bu@(UB8iqobl>ld(xYH8ED@#Xo8c6lxG4XTloMjVrAHUlFn| z&6c9g`w#D2J$?NHyd4zDMonMUzABlz`Wxcw@!^AidfN^lv2WrheYam!4#p2+Xg1&l+`viHCAK<8j;l=H3$5B#3H7kAi+Vt-5O~sN)Gd~ z)fS~enoWP=5w2hTn@Y;eD=NFTf8`1hn}S_bT7(G?5s65^z}Y_}#P73%sg?{s6FDyO z{oedwTWwi!Y5njSHlu(b3-)RXx2gp!@h_Nk3IF8eU`zV8`IZu%!DzVPx0&NI=8LNK1x`bh*@BniS+>s>nrfR{w6TgFbN?hv(_r zfP{kj-r2neBv4F}lH#Gj!r?G0m^*uVy4e{ii?EQQ|JfODD@hLhW@n_StfXe>5?$Uu z(UWc5fQo78YEH}-!SyjX=%XBR1fyWXEj9r*!d`#gSC%y10f~U}k?pHLf9~%g4PRDH zei1Pdel{|gE+2v~MB&E>Q7awvw%JqrZP-GmRA@%UUaQpVA48IIOKa+DOHu=jC_8DX z4eBoN=vdj9s0q;@Hu}pGe5_=dFn`s!+|eTV^dKFE^~0IsSk{!_E(BF&cwb-xDb*Nnv&}gvn?MI6n+ITX$C* zd6Y!zv0Wz=kEY3jutvuL98q)6@WhOqyzJzVH&W=O=;FGS2bfeW9BiPq4YSo>8vS00 z7N##&p^f*>wdsaT^qDgV&ov!C=QfXSU=UGIK(-D8k50-asqxHEN1l%w<6^8L+DVq| zu+#zDb3iSsL=%wvF1~jl$#Nz%LbOry5FR ztzs~VsToUu`h#Co?V^%0u&{vZ;O}NnL9i*?ZIODfbP`uc$2Ez7HVD6&W#4~{ zEo>bF5fCB@Dv&0iViD8xN-8Qn;ithk?#c9cf>xva^(D1)M$5#;{^75Mp33y3!hr{J zK{d;_)~ZY=&*SSzmCVf5nYJv;lq*+Gx4Xh=+HZoUu(;H$TzvvVLPLW5JiXqTKa~+= zqr^O{(tVeqlH9X#@o>98-&+>-MvC;lrnWbZ;A71>nW({=uYLi3o^Nz`P}`qbwmH`C zp%Br~1KkwnpXIg;PZh#Ged;;m_~vaidNJKMK9Q+~we16wOWR=ku<(c|pnH#nM@-Gk zBPhsChjZ1RW=q>a4I`B~14qEXBO>_(2&KSCoeU2PhlBx)FL)_oenxhZjnb-_nW-`D zeZ)iZ%E}FsOSV+0fn`<$H)LX3W)>)B!07RYU(2_!Smg|D-n+cFF_5G@&t*@z{L;9GLP$YPMT(1jHB%RB$9*2rpXuHQ zN6Id)X$8b0|CA@gGpjog`Ur^s8!J%JGtyJyJWdxn)8v_occHS#=vzCvd3^o)+2!r) z7Y1OSA_CN2jAS@)Ljhd1IzGSoO&nfnuv|uO^!_482}GodTP2pV@`=tUs;sH4E-%bX z2=lO1<|2ljtqN0UN`iZp+B$c1ceB}36lRFymvCs`iZ1I@GK)aLr>OtJ;)R|Z2li47 z_E#*w=3PWQQVKEx4A@_TMS&Wad56*NKT$z!`S1;lNdKuE2F4)@va5R-ctkK30WSc^ z$Os5<(H@rSfjt)o^fs ztHXiNU^pj*6i4IVgT$`w5|&m{-`d&T*;-$olNkD1g%x9?%3qDNBi9?xC^);Jr@yTr zQ1uTVC$e4n1-)KC(dZ2hy`Zd`rkX526~dtZy$fML^A0=~Au%B~(&c<}$_K6~me0OR z1VTFY-k|B2T~G!YZVpc^uKzl|yalHR(#rq05aAz=X1>Q6!m?BT5^@YnE2?g2Y^<-T zCvxpNk+7f0zGVZh{Q#qE0R*^9fz(X<(u50nLwjH-g!Npb3cFVB&`Ic6L7XH)Tq$`u9gOy=eD($j0}BK3 zdbuslnR{qXV2SCOS5$goRZ~ZIPv5{G78J?V;9PMkZ0^5K2WGh{&NKr4sTOBXutm37we|N4zH+OKy z9fi1_olk5*>*PKR8a^pGDL%^iP?~O^6O3K%&qG)gG-TN0$(l$5^slmI6vhFm<;~sw z!;`afvoq7vQ`0lE^Ghr1n>)J)hewBCoVq$cG0;|(75-N2j}u2Bm32(zz~bK7<>l%A z#_Z3Ix}vmbNIfnt6W+ME-jg5k&DP|pyo98ZzKx4lP+WHTf7>4c z+s}^nG7}?;=M4(aK7qez(?D}+Sv)~yQnn4L+sEa3>fjj^msj7vaBzQ5_7^~T2YH{2y57mfwe^ji{oT#gr3LU1GqZCGVBEO6y1KFi zRDV4!Re1^iFNG14-l`snd8B_I+c>>_c=&z3yFAuiUzif^Wv45_h;`f%CD*48?_Rr& z$))dAIDar*9{J7A?D;c&Q-`ksVbO^>72mrDN5{v0_B5AgMtT?t;LOweCRU)(b21~_ z;vEZE_$C&8|9ODHC}rpZQ7V+T49;#IUR<5+&UI#gW=V5fQi-UY*t_|2f4bbA`;F&& za~7RlY-QiVE`WJ{dUkQPzqzt7J2g2mK0ZD%F)=0p7VAy{G#MN9Xzk^O~=5O=$muWX&Z z1VqFpq~?@0wEyqZO$~L?;X)e;73(WRWR+HuB@N^x|57k|3Xg_QC!z%r{3WF2SGRz- zH9I#s*jx~1jO(2=F5y?$v$%hHvOU$3=FC$3tAXDuyLEEs8U_yb@%HNK>f&g7d1ibV zDE@kTesp(rv^LdM6r{%ne$?YZZI*aqvC3i*n%6q9dGh<=;r4uYak#xA1Biu{Iq|Ot zQY=sf#1Jg=W{~Mblr5Zn(tEe2bNoKozH$I_jF^O^)U2ZFruHAbJ)KQed5M9J>MRJ| zKDZ*?h%`bcff()A#`4V1?&dlmv&_%Q1dWBrAn$k2-X9=l8F{WF7AB@6+A2xrv{>Z8gO?>B&Gf z6%yd>?qI4eLW?q&!UKO4yhQxOHYlaExo>=KadB<}2zo#SF_)%+?THZYA_>9P3n?Dh zLm;5%mDRIx_x1};EiaCJ|I*s}^?RS7u!!iywCwz%;-dWQ zQkWKdL^-{$tjPy7a?dQR?A*K|B9oAikU-yW?=3V0Ne|MnxIV5k=zGQGRW&x&6eauW zlQ(wrt@FK$uNqj|I|J?G+sosf<;j6gpo`9kivW|{Pw#AA=qie^5W-BPYZmhgX6=)K z%q1qPqN%HIaImklu{3x2Kz<`BO<&oZTX2w(HnqdQIohi?9Opf8q+EU43oV$sMC2C?5~PJql9*b@HfnbaWT zZWBlEV9&Q!R_5lGukGKueDm=Gol;*fS346WUNX4x^yhHuA+hTy_-D0ZXbIR_e#ymk zt^Kp7SS*TWj?N$7+L-Ce^HZa3*M33u-*jzw7Ox$g-oJn6 zXk)IgD8ztu+8wV4qayri3=tEx?ac?GNzS)1ML-w3aEL-J`qa$kwWW!+f)E4tS$CvJ zEE`?;5Il{9zWo=_E%yCvqs9tfLZs=n%Vgjgn^)U0GlI6KzcRGJ>?{aQni3jJ!K zw!(l7uk|D;FY-uW z&BjO+okG$|8oCBYCxPy^v%V-P*!h_#CE{vhvez?iwBcAT-i^>rdc(lH&gENlQYJnr zB`tkJBZH^PQrsZP{2s{SNrnBcaQp_7oP|&9iM#?>a!(}w*(QLFlAZsFs=B-|7Yh>; zD;K}8sF;|TFh3_FB@W!qkE~C8i~QKH25(R>U}h{w_`AS}Agg(D9~PU6OH5u(O+`+O zn-=G8B-89Xpjtj*=z)-3O4G#h^(%9Ic~1O|Wa51JW>mo!-Z9zb-#dB-`g=PX%d_MB z9ksY|4;w?(P>P6RDZ@H$$)zm3<4Zbc_8(F4$m!X6g+xV#1vnWQfNaym|4J{BrMJREEw2P3DTpdcg0$3(nZ?I{Y< zC;5(&^s(&*0~2wl`ZhlFn&(w`anI^4DiJ-9yGcok@-ma5pZBL29t0N%hqWD|Q}IZt zXzS`~%JNeqO-AA(vlrens5u5C>WU8YsJ36iVk&GW!>go>y8$`ljCEe zA|avS5D?;`{=GUqIXS<%e|!J|`e=K8ur4Fmf@9A=?j&^V3KbvYuGjw$Z5^(PS8Dy} z9vqNiumUA4H!Ce6@^Npf89bgNxohFnJq|U8u*4H-QC?b{i*|pM5!{#+0%0S!;P}kK zvZ|_zlH8Oi{||wBlx4lZtiV+V|-fyx{U3j-DL@pQSjEaEv) ztbZ+!Pua|0JO+NCj(B19>b14y3nLwsCnDU;l=x_H*GJpCMfhUFsi1p{zwj96}=0gHl;i#}y{Cu)?l|b3|-XYDS_iVFN>rNWJOP+@yuQN&;$ zTRF6T4UdYA2aFJSI6xqe3M>*2C+nco7UjUR$^kPk8BjUBe zfIgdrB>q0Ga%l4o8Jn1bh8F0Lu@H_%$^vATH=d&!Mb%9n!=d960R7_M?e0|bbGwlj zW&8Nts+Mkkp;2-1aWP?_@Y5BeL7GliZzY|V4K5zseniCub^>}}TmmwEOceP0lZ~ma z@UF12YXSK7J;m+cviZp?)$=uavscoqHrqd=gSJVmu7E zMYqIp;F?a?ch23)pSC4=0j#v7M10;Wb=~PP@ho=%!H+%OLWJ!Vk-fp(fWZCh7 z0){IX5!NK3dFdJ%hm@Lug`J&^nVyOmNaBGdt-UzrqclnslEb4?VEM!~CKZ>Ix{=kJ z5AI()fT{-EHu|bkd`zSmkH5y6a-+VzR_DSy9xO==ic5|1)D#wG!9DA+3uhZ;e496R zi%r8Tqo5=!%7(w6%ZqI}OQq|RQUfF;uqc?oiG_&*b28hO<)Z-a-V=@_;}%!k+&?xk z+Sim9Zb}w6*ew~}c8EzQtZZcc*2Uf3+0n{Cfu9n2rOX+J!-~K$qh}iyT%?R_Ts%PI z$3jOzfB|>9)K``KRS6^0NAXbHD{tTkg_KoPS5L9I=(V_3S@cYSg?DejalK&&qN3}Lnkn}{ejMSVB`=H zlYo+ul}kWON!JLtNZf#K)y?^pp)4ovK?-qPq2C&fwr4^~`{>Hv+12&c$*;xXmg3mY z%7nd&=R)OwC^|WN!v8Q~VQw`8r$2Kh7VvsTMh)T=K$w~=v(%`|a)P+d)BIdDt z&Hs6fOi05942lxq3gzcy0!h&IQfFSE4q;(}^p42a>>oP_1PuJ(8h28uFK zb}AgW{n5J2;1Aloc&kZ-wu0rSc=RmXqH>x>Rt_#e-RK_z+Wk>6aj{Y1Awa44T%HYU zGO!ihex6F}YkW!T$invC@$u2_`s`qHagwhYKXRjrOow4|*Zk4WT63&qRJg-9g|=@- z)65A1HVF+QkaRNA5@Y_|?8^8+lLFVw<5f6vib6!o&Mzhjah3}6veFQu-L3y94AR5T zRJOd6@yYAoMI@jHW-7yfia1Y**3t#CeI+q28a#xH>) z0lNpptdNzPmtR<1TvS+8RG6QWk&+PR^;(4mu7++S7e(T2L|)U-;`Yha&F`zTUn}EX z)tTWR)tO-1JW%DRDp84v@4Ze3mGciMmEME@b8Hh59dQXj0}K9YrLQPN7sHRYis@rU z_ck0Z1q(Ms?g{$we5^D?Xn!^bN7a;C+ zfC#ij!D~b~nrKY-H{-{ijiDV~^Z1F$p=R;k8)BO*tp?&ku(~=sI@;SnXl<^q1U(Bk z9hU2)&b}lVerw>A>z&y;{(TP&0cSf)!>wg0!OjNabm&Jt1)+{c^5&nDI}h=BwB829 z=hb$PE^O_eo}C?UFAX*2N4yof`|RzHq7hs+as&=P6E_g{iU0*S6D2;%-9}$&*mJ55 zM3f;mr{w0P2P{fD&3tOvVo@H2mLM)_h z^DQ_wy|B8eb6{+Gc41**aS`|sf%+5(a=rtPu$=P+Cz_TUT3EmXjFbX2g%)^@Q~K z3Y$Yhhe0VNX`FEE0DECx)ru9v$DLX4??5Z6|cJ&&jyJ3%I5ilDv#0==bZr;Cd55%BQyF%GkwbmC?8T8WfvRT-(|+GPAt7cL*flzi)0X zPY<@1Ci+^c@>3$gl#&&xEicMW zjgJfl1(`RfA%epr!50)89TDp50y@`thc&uidLmD_Y@@2iPY`g)88~?aAfbmD*is)i z`ijHM=!e-NQZZD0b2=fNNCsXpc?~@ib8A~WJ3AX|b7MVK8DVxBeB{fy)+}Ewk{$tM zk*eR+q8b+OJOiWC@+%tJ`$p&1A&qQEBN+bg?Kx;M&CSftE`hRRZKet@oG5ycI#nSoU}`h{!1O%;7(`6U3%73690dB}9J@ynlB$ zV4?t01!@*v0RaIv%A;bin`{` zpR*fBH(;0oNoS7N##;+xzi81f+YK7+@Vt&J?U>%Xh6C;-e0)4SkTYCuPPF7l+6mnG zE^ALv>3)kVX&qfV`2#L_G8$&!0hf@HmXVea6X0T@Cc=b2UF@ky@-gOwEn#|s6+4N_ zs$%CC2Sgi#z>2oEwR>=Ma&~@k2^KJMgIbM4Oi9zgR9{`54W~<7x?mlHSxi~~1#pq; zsmThm0D;5y&)U?0HyU8J3>|Z?mdHnnMaCdV7^l=A=SC0tT zWQ;uGimEEg((FWko9yjUI(Ol)z$A_x*vFV?fYIl8x+Oc%g!wL?K_{RTy@AK#A!LqN z(UPq*fUJIWGGxrWTe z{pKJc^8%6G_rB>2N8I~iAl-G|GDDPfM;@N zacrpnM`us}(8$>MN^Gc~*H`zC?q9wALZTAV^ULcyhv&Ah;L-6Z7=fQz zPF3TnuAa6Qq-^1$BSO1d?#vA|pzIgDblGMy4#=n*T0gvj1x5@6IGDSu<6mp@z`foH zj&zE@mGB%K`zEhbB5-Y&tG%wUt=PxokxSQFzBnz?_pN~t z(Q!FH25laK;Oo%r@1xt7u&6kAgv4aPu8NQSPjvrycmMGC7X}s<4)j4!f2~aagt$3N z3n3bxl;o7OjI4svYS29%o?ckn-Ur7S*e&k<&1PW#g5-96s=q4P=NawnvyZaCQfw2D zQr_G*wFa3W{MuZF$oWCUOpf@dN^?j{{7W{X^#B7LWi~>X*%1e)-RKP>2@9_vAh*xS z&df-O4fFSSW2zy^!$5)od%iy2QI#FzYc7QGL&L~so!Q7gqj7M4_uq$%0$wfHJ20CA zzv0O-utM)`uP;Hmh@Gw9fxf(=thBhOAU_wZygXoVFV4?~G?1L0Nm9f1hd#y4&xu|o zlC(+hKf_W9u9*HyCZK8aH8?J_sIsBGr*Ck0^e6D$x73#ArbKu<=(1cU{6alY4sYB+ zqZ5TVj5GzvVAqqGx(>X4ATTO{>nS8Q0j&7wFwnYuW3Hzx0f}vBu&2vI^%;RyLU76L z`+0vkjC>MuDw_MoCTHe>8w&U_W~Zkn#z!Gtb6|n{USC^PUQ%3AQd(MGSzTM-@V%*} zwY{V3$B$0Xmafc>^>dU)ufTB&IOVViN(On?($?YSA6PheFy%u;0QP8LQ93=?SziVi z`ar9^Fa!L!4+|wOOlme@zflljB7hsseNPegZd^X1bsv=&7}Yhk zbq$P6jP$iNROBJ`Gy^%PNH10gYSII(1Q1Ip?}ZC4s1?jz{G(EHi^^*nTH4w>!QOs! zgCZ5;@&De~&`@93(A3fnrg-BsOCWUr8^8lcG5BE$z-dUjWn2U3 zdSa46>}EnD;Ns%}{s$@&U>*DCN&EpujG)h`#*Mv@z;wGEx<)GZCM>skV(&LFw&H<} zov%Tnw6hB3m}ZIL47JkRkc^tX@r5m*SpW+b7WVdRZ+&j86AYVtUdvLR6^PT88E=;t-J0FtYOq0W%}`VI>-B zDoP4+pfL(G(JRdfHnjD5N~coZdClX${-6>-ekcbu@H7(QVxYiY?#vCgl%#-kng?S% z7=eu}W)7QA-!(X?u%UNqX>3@bFZl~F_xRHV@diE?}X zFLOa37K4}+ewb!Bd zJO7-MNB8gkX78-KZaep(w|?sS@Bi>;`<4zL`5SCM9f4h^C1@#a|JJ6}7rn6OvQJL8 zOwRep`Ym_f_uwz5PyhAr|9tVk@b>)MU_bdSXXEEJ-gxbm7f(EY48EZ;-T%nXfBJ)+ zcY^&wVsaV0FSCNjN(ed^U%F=9`i+~ezvG;1-zVr(2Tq7CpJpY0V;j;|veM595Ot@`q+qQY)bZjRlI6=p@-Eq>f zZRfZrT#e+O@^H+}QBCsnmpjcQO|t=iw-8-Fm8P`j?<-tajt{b>HryBGZL z+djML2*tg>k)(HZ<~^!$L` zGegf^E`7S`erRDNAuMf_J2E2a_S|)w-}Sl+<8wN?^zuJjbNc1KoL+C>bwlUh=>Afc zA@=WNC!-+Xagp5Nb7?%k`*I*|{)hile6K2r-%F3z4+MpfI31&ao49+t|3c!O`caKi z-Y-#e>N{Nn?ywVe3cM}<9j;d2eh$>7>FoOLv;Pad4A{lZaq5F^r~dJ{&ra6Y^QoH? zM;SY~WR7H(j$XreO74l5>4j2%f&S98yV&J*N>f8i6cv^XC&kTVzb{vS8?ix&25H=+g| zlj-mv(ZAK?2&r)aii}E;KQdLqKPwRWQMnA!h3^vRIL1muv-K@q_N1H@$t$bGG77{Y z-mV!B?xKxa_9g-ZZ)~u@SCPD87h`p8MSnbt3neUwF|U1u=|YYa9qW;yS2fI~MH(sE zg3AftCZ|YeaRvl=Ni%aGU@6$LwHj5#sQm+HFiZjo(8TXW{|)|b=MiG^3M#5A@#?X04K5*5%7C ztOX@$`~W+{s<`#rmo>c`RGWAK;dNoV8O0G{H+VvKzK>3;d2(xNt4-t{LTs&{-rRWK z4DDd3G-5>zxeFeiq~7xe<+f2^>kEqRyT!Z?=sS5Z*G2y{y_uG0xVL@Fi;qq&3$?30 zgRPayWkLm{^q~n9S%iy zy%2Fay4{`_TjtFS+F&A+*n7P)J3KX`ErMhT^&p{jbTusDnqSH75X#(k#VIGb+RB zqgNK9fmI>M6jBsL6vx0qiTcfyOTM{`L#dW9mi~)ES#ZeNN}ZvrLd+ zJuN_=v4Q!e_Y*Q23g-J5yhW?_lfE}OJG`BepU_rmrVwPWIvt)q70l@5;6iA<0^e0R z4YS;rHB8-RdMd)M1InO)zgm8jzNv``i3IG!FPd2sR6`%8ug*)|BUYt}7kVFz72f)X|F6_aY9|r zUYWV?_P#7M-5z~C_L}pmETVst7+Dz~8T-YP=y2dduycB7fVsu;W}%K~kCMqKnEQ6! z=V;&RnQkSVHk7Trck{xX(x8Ss=YGE=BdtZuq;l{~s}IK>@%zA8WHlE%2B{#qIo4@6 zoTQ18J3R?ABss2mnuS7XVfyDwGloUezck;<;^#q(}v^pmM%6Ah8gLg6{K$hsH(6H+tUK3reBh3-1ieM4-`qcublL`Za)RJ-&6mQ-aq_YkU_Fq$MTRI z!eyNaB{#hhM*Dt<@EHEox`E*OMoyXv-CtLYDb#Am-;sLX9ZsUd1cQ8#@+x)04)q;Y zv}R`?3?t&1rXg|l`3aX}w?L<@5RCrj7q~PGH}{wK?p8}hL{qq8vZx6E$aL~g{J~xc zrE6p-y93Mns_+6zf3e6A;aV04%M)Qw$0wjf8C>~qycl;~&*U3-a_c&vA_5*+nmb=x z$0hujAYi&$RP^%RPNKl3-x6*Z|B4&2zKI%op`G#nb1vEc4(gt;P8t469 zYQ76I@;xe&7L8~RtsDXt?k9}rf@ui^{0}LJPp$+df}B{3ga(^io3TDb18qv~%7rc8XL<&xZ&>9H* zN8w3-NIGV3sM?M4c4z_0QdP(TFfj?H?ue~2s}}y4uLcUMKEEr&D)4j@7;ZB{d;$L1 zN0G$c2Yf*pvn}6LzNfdHZ=H@gJu21H7K^CDzm~8tM<_Pqa~-7T*&5ACLk%TNzi&Z{ z)+HaLI|h0F0teC`t|L=^xc(|tfnm?Clay0Mw#*`Hrn88mo50^>gAd59TXeBBc%ls{KT4 zpx%&*oTM8qd+J_pRe~OFiC@Cybmz%U@6l5+Logzi!NS}!u2OLMfR=F=3tc;krl_%T zr(pPD%%!)R3@|s;;K^$GcDO;ARg5Q@@8~6F=XelGEwaHSuV<+^65TkJ&ZH7LUZppg zb?!txgS@e&a7q^tZ^49-5?-^C+%>saWbjW8rZuc}_5utF7Pfd=M`}Wd8AqN%QF>>M z^83JCcjZXq{%O#RVq2aqAt&--!*VU=-&UnI@&GLwmAh`Ebx!SBgD2R~kLhK?7Y(QS zFWic-;_JMfB#o`W;USfAuJEodldZ9KsFekqzjuFkQ$me6VSQw%ja3nEu|8?o@xA9C zJZ7>)vbWJq0CU6T)|#c%{{n`J3MyD^;kWsnq>eNN1_I1~tN$}l{Vy;u{{zBbx2E6H zQWO}N|JR0drY%i7+V=Rd>MRcY{TubpHjq1(*Ef3`yzM|o<%{N6@#7^F z_W|=|c9{mx6=y!HG8Im`uM01-NAf(wXluj^=#Sze)MTZhj%vBfk3PL>ENN3|wzb+$ zJUO+V70WlCe!YKBE?<0iRVsFE0hg_|omwkTAV7+?MpKlC^Vzb=ytiZxW?5&W0i01TGUQi`{aUu@O(+oMr6Mf%kDYMaMcg?J+CWS$BR+ zvP64fi81NF%=(a24eoc-vc=m3C@1TjP)kPUo3WcbzgrbgjdHa+qVywJGXy+sWwb@| zEn{)>n{`zYl_@8gBR(q8 zuqGN_v=7)n;c0BO+bFc-%BctF!apYPVi5}7HYy0`#mX1D7#@4JZjzn{mol9#2cjlH zj&sZE%p$)=Q{$a9gIRJ zsj*%NXeiQ-j?`(`wP80}J?=TuyXrHVYku|Y>TgS|=G%|hS6T4?r7^m@n4oM_qcmj4 zaTl4#fqq0yIusBlR8STi*HTG_L8CfCf6gP5zDPfbvnpMfmgaG-RS^gv``z?pSf@QP z<>>H@>@-r5(y;P(;W)Mx9#Bn0d_Yu^`2>2I;@h_WIk{g;@mB?lRL`D)cnA%;lSWXm;R_$Wa($fwc-jvxB z*Nt3vQ0!L4M~iWUT|72AVvx1QN8CP2VE~6Z`37>k4Yx6G#ixU&!ed4{Zn&WB=3O)#Wl9Hln z$zhzEveMRT^&V^u!rrCp#R&PJEJJse=3jN(C6aK6(TiXmMWt2GBEj6-QFpow_Wgyz z!HO4_hHcsx9$S_xM&a&lN5GU1kbefcT8I7oL}vVvQUgBu$Mw0tuCi?WB1>ubOJ(Qo z*k-&PF8&T3Cp~PUhO$NoJ&@^3$nb3)(r~QqDf|S!D~&^b~;gjlD9CO=Im6uZ*X=iKPY zL8G%(w<_(zKX%596sIyyB*p=t(UqnuUvT5}O2mWuT$+AB%nm$^=R%!${Dk*F*dRG? zBP9392)*m^IIl}nojkT9u|=070W;Q*Tu^6Old8@KM}Bi?r8%Xwz%>rIL4TCGn-+-U zBi41%w(MJmOQz}D>-2d%y??cCPPBhx0vgX(j)oYfa{W{n!KxTcy$gdUOl~D4-fHRf zdQCFim;(C-UGjZ|ZwOe%apswKE{=+$`tEA?Lj6J{M)|c*aC5EklS?gifb;S{jr)5; zTQ&K!XqaZ=vjJ!i)?;&S1%(|1+ses@<+`fU{>x#N$0fgh!=TR$KE)gH2>lb5eC_IB zLiXX51&c{x2JSwd=5c&>hVM!*Scps@SU)^sOBBC04d%W`!V4~|6U)*!e$h7D=m)Ju z?uoaWp4E(D`DCd)^APe7P5TvYAr8TJZ+8OWX8N)xg^>cPfPLul+BuEByHQ#BS@AMl zv~q+W>4NDNXj874y6<{)`8bV+rZ<+oJ7n)T{`@9If&+>rGLE=p z5&H2c$~z%v&N$AO-8b^Ez+Dg}t0TR(i(o;y{_v!4?@#z{Q>_Iq4%R&5GVNI7z+^68 zTwPd&#Cgk@xZoQhOHBZjC~%e(hqS=fnVe`x?!P1udPZfLqn2pl?FiwKm{os4BDCx@ z)84BvMU^?cD9S&OY)vKRa)U%e+BSvksHR(l5IhiPnKJ#`j=bPegG(OXYDP|Ia#gxg zwMq}TbPIP|UqMe|9;JktYF<$Ou~Hv|6(XQ)DLnlGB~RP4 zOlYmhJRtyrX&XJ*0zxKYm;#ii6EwY#IeG8vN0I6`@NIuqKz;I95yn=m6VX3nSbj%2 zk8RAcR}DOWf!4{|loBdU@(#=9#3Zz3dGC-<0@d>SwGq{EIAfF&!UlX2aPFD{%C={A7Y5-y zu>?^Nb;^ImjRtLDE*b9ofEX(~#*Ed}1l!POwh?%Rk~A#4=(BFO{$!-HEW)Vo>fHue zloR$VpPFYS2o?U8=3~+V+h_?Gh#1oCp{>HTOX@sY~vnp@Bvbp-qVoRiUVQ5sGbatl+h5drDn+(}X00>8Hy zTvP~zc4INiwsJoJCi=j{>a@KwMn0Q3mJj9q1P0XOaXU% z%8?15Sggo!#3WQoa^kE4mkm#cT^xC7jd99_AiON zutcYJ_ik`fWSw@5o{Kh~VoIpkJsbf>1x!-?0oXc3ge><7b;5idNYVk`wObuqwauTx4-Sqsp^lBq%#Sm`ELRGFm@Nh z-dZzrza1J^$|R|uAU-WTqN{)$&Lz#s(2*G5HNAJimTQa_^{w#bi;M`+gZP*vuLJB8 zZDzcJn-(f82@~6i>dDd_zYiP7x~u+r(~EBt-_u4Z#BcMC0Mb|~HsD^A4B%dNWD+De zbwaE{6(KJC!Uzz80>bha?TO%0U^AeO*(sOy*PgsR;MQzfw$rX#tR!FMP$z?ulI{)c z7HY&zDZa4AV_@Deo#K#Bigbf!ZE(FMiJ}F%N+41VuZAwOWLW>}K6x6vY>3(IQu~i9 zAm2aSj#*bX?HKPcix#A%7GWc_Vh*Qp2t1~+W{3Yi_MI+aUw9rO4j#Ql z@7f!jap2X%N^u#WIAcBKv)AT!&AikQ$_@weSUhtn9zW%+(()~A%fD^sGn6V9LkpzM z>15|w>UnCK(PpH16*+*G&6vhXa4VhcKCh`Za;@@!4n7-kg&BV-)8J=6gO|RQLKHEw z5evl=Kk3292UP=EVFR|QW5ga9XH-kz``X=Yut63lS}%Ye6rSttIqNn9Rvng_B#M$& z5O2X&gf8+v;h=Aigynw@6?NJ#D^nXRc(8UoJ3|inx)d-UtM;M=ns|CPMdh0M{dx`r ze{nEHBkxNqt3NHr@LM%F3qY4onBxwt1#Vslk!Qe??sRUBRD^?sX=m%KlDL}n?ts#0 zhDwu00mBP}sx=01^)17l?W&{?({U40LTwAvn02Qln@!^;^&aN^Z)cOl*DS53vd7YF8o zWl4D_k1gH-az~DWGA$RnPHlot#-eVFLBp;lLg|gz*tG%upIH)FV$j8ZfFzVQA;**} z%6iDtpdu2jo;WS*SLUjLmZ5iFKOBwd87G~4;~~m6#U(~VLW14sYp4G#g+Mc1LekS^ zc#l#umo}m^c*uWU`?Coux=dxdv4<8W+zc{d!^C6iFzjAQIQMLH72i2<%jo#9RyamFuoE47%9E0;k55D6#q3Du5z6Sefs z?nM&!^^FhoH+w}(FKSsT0#x5zq+&r9+Vs*K4z?~|~V zOtX4BYdlPCgdBby#%)FLu`%axw}#6~6u-GysdaimMYQ2Ixn}fCrKLC7k}X12@1T>% zY!!~IAKf-e&2Yhqre8hBJS+FB_8gVnKn&1}^~CO8B)pHfd@Cz{%^)LjIap)0WXmTl zv><4)PP_V~r-NYh9xOa!n#=A<-^eQjbLQT-cIkQ9Wem6++_>TGezoQz3fpef3Udh- zkPgJ)pC#9*>1DuQ8-CT$!m+VCVP0;|WaBYOiu0r$A0J#1S#3L8_|`IIBYQ%{eE(X>s@HyUZs2uLv7=CzKtqz3p5pS> zRusw-mwxnRmOJR!ivA2-$oNy_GHTHZN>SD zwPQisrs#e;S#b<}jz@xYHSW_~xl}^_;{p)oo%Wl3s5!W%VeSMU#6x+hO+v61v^5Xd z4&JqP-N4b(q&L6N@$AGMphkSSGuKY#w46KVw+da1AADf6mXlqd7>BTy_EZwhEHPHs z6Nf6<<*}C)e>tygo_(TN`*{kn->&&3?X#ISKA8%KQ9sc?%^q|V2z7$5-@h7g*{sGU z_088wb@^$y&QmGA!A=r8M$3Bra$b5jvd(y1gJgp@x#P+2*zJM&HsV@hiNEP-UW?P) zK5uT-m~_co^5VR~$uEBQbIRXBcZ?~MX)sBj=*XRB>ZVvEn(ho_-`1gCcZvQ~uB$b^ zY0qjU-M2+?1zCXtg9KzhkD{hGbm3?Q1$SQ}0fzyuX;Ta>$Kg4g{uNdE%clkt$){>e zX(7qko?xIKBu95jG;2L7aa*E=3X}d3gZpP!hjcP@Qs{2=>G2bjbsmN;3n1r&(aAf4 z5;dB`UB!;o;VSs_8EW`=_eIokbGRwpYl@C#LMbOAV#Ffi$jB{SMrOHjx}pltr^*(& zN+}Z`Du^-Ar21WH#wBNR!P-uLeA9BtL#wvt@l&{jCrRn- z%^256Gt-(7bp2txLzxh2=~Is%;v!~|3U?CfD!!c|X8N-f4%Cw~s{G_B*b z&RH<24X(!)!}+d1OR2fz!5P;n=eiqd0B(WCjdy9SyUIaK_{Mc?@j`p|N50df$1+i> zv>g(271ih#OF84~1_CrXZRs5?AlU6IIXEF z8OMuEuOt-)Vaw}@PrB%x7rIp*PqlkZW%jRY3X{BCSstz5k5sTAbdR(MI;aV#EHZB# zG&oo=YMQbg(Z*Ap&DkRLOw==TDc6>b=$0D{R~Va+?16fYs6@=X1tJuiE1<0t+kwcP zHeiOv_NXvIIuuG*D8{#J7!~?GTk) zFc1Rj)-$xggNjbiYP(a*9+tYPx$}sV1jUQ-`ys&g3?t6Z;A40!3mO*4(VINr;f0g7!Z$ z3`N?R^H%EIT;`0+PO7~JT8CpF_G+g<&N-ysMgP#tLzDLCT&8v1ich)1!X^)GuBAo- ztDL;(>lUH5mV#(TlWect22QP7W0;GqdFpoam(ud1tV>4@6+X9eL$XuZr=$>)HmK_e zC2yogQuPF_Kss9aXl)yf*B%{NqvG}2$u9l2S_xxahre1kdE5#cE)1aq%AG^n;$bp~ z*KXGf+&BG49T_72Bz#neKe{HA5%^IbP}`_lxjHkDCyj z#t6VzE&-(0dVRp1HfBhw%mwtb@132q#C3TN={*DckGr_V`Y;P(53MtdJWM{lCaS6m zeM>~jIb@4=s;*J&)y*wG0TYmTl zVQ%D}A5FGx+za?~Ro^yUc1#EbNga4yJm^8>ok#JCh}!C?3DZMNJM*RP{-EtZgEEj} zXH7{m2;81{WrVaT$EM}(6JjQ+l{bK8%R3I92^iILh3d}{MD=jUg%-(-yM(6yW{^uu zo9Ph$xv^D5^&f@Xav`__d-b#tX>#*3e8*NRx5jF=HqKsO;q>=}Xwk=FYPqX3&fJp; zckje2{KMZ4w5i^{Etla7cP!mjO*11>sr*F0K=B||$@V6&<7zC<`bTXIFWK*}N=MJ7I(}&qzPvXXy=?6dk50!THB+tkQT|`e zNgD?{M0}a~7PPHS0wqUl%$C`MDuVCf52cejve*!L_d&(zk1Lfa33JngzEW7fTXMLMBN8O9E4$Ot!OVlt6 zxQeEM>(`W-V9TH|fIHt*b!xCQg)7o({Spf97Y^E53~B2RCH`U1MKZ`YS+svnZC0^VMhI z@N!fsLFg~Jjd}V?^g>t6`gVpIq0>U9-?k_BG!-Lp`UZTU@+B98Y7%xFwjiBqntm*9MDTex_ykT zxyfCKX3&8RUA!%dBaZzvvI5Qj-4Q+3(Am6(?3B~AY$dHxv99%bdguDRs*@5p>DjPp z-y>D(W#0OC3L$Vt+o{OUtKFSds+OjbbDCe-^zBxIuSN&GXOo@_!HtN@toB13MN%hJ zp{JjosJNzlMzv^MwwD&EDv@hZ%(~0i_xN0$d`mh*VdUJQ%U}R!QONaIIIuL(Gk^>P3=J5%krF077q+*i5qN-8T+M^5# z%vjlFs<GAx%rhOY1c&!SAuDS+Hcr6BUie-!e&d(A~R~S&Y zw%CApm$xLa;#wi^W-Dm4eVj?#X6_;fBZ-Ej6g2xuu+S1a%6O-Xdlk3Dcd3$%T=f~R5C$gTG8}S4S#s`m$B$*NR3FY|8tEXYbHs=E;_1dDA$l!~ImpgJ$n5~Ejsk_Z-f3Eu-% zT$KxDQy`uYP5j!}?9_mRkotrs>P@sfD-rih!8C&m;Qs z&bTT|say_`eU}@OG9>s2wbTXPKD@8sxx{yKsS43F(&*oR;+QWG6yt5bW`gzQN>+(q zkZNwGSe5f!y2Lwug~94d$Q(z*!R$J&RgON%jHfENHhr(tiguY7VjNH_jQAa8w7hR- zqeROt&YxMD>dkTDt9t}TgiE{hEjDBetfubzX(TMGP*8bocvQ)mE3PoJ49rhM;O=Ry zZsTtb6W7{YJEgsD(VA5|#O`Wx5;mr?YYQ9^axZB~dr}reY4yTbsH6T7#T2bsr@_fG zDTt5J{6kEEZhPUwc}5%|ju*~N-dS!HMvLt8Pg?4wfSjZRobT!zX+e;Dr69%rKnc=* z!=|IZnXX6o;Z{M%efiVOZq$ZGU8b|r*YfWswu#obX&ypT^T!e;s(C^jVR^PHnOU}j zsV@=o9tctXdekj(E8hguY^}9QUpaAP8KLVG&cbzmbvw45MKq5h?HZ*RM*;7#UCvZj zmdc57-}KtFm*LI&)h?&QP1$sAOVkH1FNGZ1m*R}uLgtUwur+O{G}Tz8S}(0zzljYm zVg%1&Y7J5cYLOyKo3$L`wkQ^TZOP(G+By*Qctwa*90GvKOqKRIgqo@)p>wqBVO0M0 zMpK#|gd$iD!-&POtqvN7Kqyaf`e;&n1!wETb7(;&R0QnC^6QF3QI zI#@xq2fI^b>rxU3*jUJznbDrv-LR!iz}0dY?}`CFD&p}YOu{TxFJGi6i6?8AR!<{E zmuO%xjYZ=cNrdw`8?k+GN)=XRpea&jYT;I zXuhLyqc<$j!vKA8Rj;c7DgI_bQrYMUMbSfAaT&A?o2c5+o~qo(6^+KC{GU+CcN4u8 z;o+U@)dzagR!ATLV@|c|D8U|X0`oipO1HI%k*!TQ1}f_2NkOf%C=28D0qf=&zA-n{ zJmF{lOI8ubQ|toUukMqvDQ5UbmOmC=OF6WJ`>q~Yxr>8o-7LfU zj??Pnww}2*E+lSD`}*!KK{~J!m+O8^^=JNrCvlG{I^He{XeV_Fy-E)CR4LWT(21CI zHOYM3GC$bH(bRs4sIfaIEyG6wbcywp#Z7Ij^s4-ACz?=UR-c~#nZH-3U^ylPoqoEz z8n`s?+ARFt=;YH`x717PZ{ZGfO)+IT`k(VC8R`}*D|L?3-`t9|z~#Q37&I#TZ@l}) z(ELyo*j<&2d>6^r>%4m}uFTI%;+_~$YOffiThok>NYWNZI46dXoY1BOomXt5&VcFE zlUb8hBHSnIA0PrjA}Bj(oZZAxqyVcz`>ivZ$%YSDACbz=*J7+$|B-aL+_5Y`M}NqC z#FqMR29n>E?0K>l_<71U=AjTegWXlzhs9$GQVQ7NWbVc{i`M>|5M3daX9zwvH2ub0@FhK$@Dk zRhTb?!s}J=kKD`9gN6)ZFV88HH8g7Gc8^q(M2RbSwdde`=mMtPcJ6vs%WZIQgl^`L zJzQ^TsgHJ?(1u3U-I$d?s0_6Gq*FTQRZ0XxV_O9P^ed^0`?Swv0#IYzwNvy{gz{g9 zv|{bzLRf>h;PXEH+hgH;`&^lYT5K6tsV$Lvf-7#^jAus$ox`&vBxG@1T_sAmBS0(B z!J#T(&dW`}>ypn~cDr50cO8+=?U}8)+*X*@ok&Aja6Mv~bxx`%`y&GM0S8;k?i%rJ z8&R&QuqesZd8HV29;L6OprNM3jL|-#6~uzy$TFd7{*Ch6W7Q?6-6rQ0mz9wNK`$*I z51o-7OZ!z7YYQWU5pl_5#2f?-OJ(D5sZ6${$-;WCS(gUuLhmF;6TP@UcPL*gOq`VsbZ{7DE)2yKt9z|oqZ%N0BWC?m zvYgd=29}lIs^Jo0R%}IO*nU1Z=@;{)3%xCG5&>}Gb&a`uX@lgQR|bRn$H*5%h$|=rm66&X_QRliUoNT~&5ca1S8uq&Qc9!X-)JbOcC6*6gBY*3QcBu<$d5bU87pupjK(_yq1wyh;=hnn%Q07+JZo9!CdY!CJR-L^^5ZG#u7ROmFe3} z>uk+I#CZx-3sin%TsD?h_{*Mv#o~VO7d)ZpMsm^OMBa?1M}>G*5_-h;NYO$wv4lfB z7CQ)G(F*x2K=k@R{bwM9E_!B=>8g^W0eQhjs+eoJm>y4bqv0s_uZxVdxBxBWK@~XB z8x-HxlHFQ3#r~A4ms!uBT`6jpg+-VfF76T9mGXL`vyr}z-y4G@t1eh{iu*{8$6q=! z30<;Wk?Asc_aLbYuL7L}u)28Um=9sEI`W2Wb!Zh`M}+}b5!29&NR|fsqo(fjg+O!; zAHkY}KTpQ#O3DMcn$5&Se-}671dt&j9R&iMEo9wvguC9lBNk_!3>OXTi}UjWKVt--2fGD+v+qY;J#ZtCVmZEQK>+nZaaLPExbiqx`s_ z*j;Ge!4!ikf+1)K;g|uc@5)R^^XW;{#0&9U6e*(TP+QT~?sN&;KhUW$KorbIaP3Dg zrmDCR@X!aPbKqzzhQq0{sa&Mp^SeU)YWKqn~0R*D#_iQ4g=}R zN1IUokXnhjQ#`U6KLxpKBbjZAz`REV%VV)HrE&!g>av;(Ig!K@&gcwSNI=aEdursS zc!u%MB+?#T_4*=Uo8bV$8hR1|!JiIee8Xl!#V%Cl5MhkqkAtSU! znK!PNvh@rCF%4`Z=Z}*7G2l3ZA2Vg#=>Z#sql)~h+Q|3MS_8a;$HKUH84=aEWFAvU z&6eO{z;rRW#Y@{wQKxwVT^{xqKOA&)jaB_#irp z(5!J(_eYgwd@7!VS%^*tKS}g9-l{lUC(h7fjR|qHAVZxhJh9Oe`uSUtI+E)pLLx)p zg&OmBBvj*f@xQt}ltfuj@1y`@$v*PK$U;nRr7Fn{nLnK(TL?%XM-zf4IS4SXSjIy` zo-DU+zw9tGjc^Sv_JaAfySs}~+;%t0jth1Xq1_+=L<>WO+s>7u7@(U)IEI+ffWhEj zZza+x9g1LGCRRX2EOoGc)K~n``VbtUwooy+6>D=kFyIU%6Enr-`JD;4_*hW7Z`#;y+dzEx9AN>SDgHaKl=$ zN{N{0AOgfzD{0CWdx0!Ng=2rkwy3t_ngW-8$tuso`eaw@oe9r&)fiWCT!lhbh+qwz z92I47mOu|MWFvf9Lxz8^z;on4;iie46srRJhg&pRGu4dxLS0DAp$EiShi`_<_$Dg8 z$S4}qUt+LPVs;|7OJELGElN}&bb1^IL6Dmm?&AeC|K#`KZhRhdu21JwP?w2sLZ>b( zQnlaFq-*}N;ecHTD&`^Rc2nJ18ErzNWc~44S{eSG7^DL|=T18N-1AMX|dS z9TADppEnO1$kNsP4$F=kLr1|>Ct@xZ8$S%YzdJ140r9EO*N zHq!Dq*5h#1EUhA)$)8L-LY2|EZpnZSe@geUhJOOujAh(9q)p*BYjm zZ>znPWvSSj((^$Hk%-%b$*(<~Yz?3#3W;NcG0Jb4*{%=31*d2i0YeN$@Zu=wq++xf zHP-B%aap@p3elT~FZ&1tL)MZ9sgN>8F*JR2JzBppbyH5gQwAY3VfCrY=P_At9CDVx zSSOwqUkG9?aO`d3P_=v(>8@HY>`=e=b>@{^JCe0U&I%S!;!@s5)DUmJ^bnMPHHKtI z#SlEpQCDZ0gxyutdAZ-1q1lG1bz~4yCj2x<%b6?Lvn7fb%OL$5{xO4sm!L6S;mnhMNsrq;R9O*;%Qi<}g)l;Jn@zbO!-Yl(d>5H`qsT1zC@%Fh z>a!>kus5czU!@aHXkjal$G@-1KvYE$t!Ayt$IQo>$J-LEm>fAg$sN7N~u~w;0<+lSd)hip07NQI965SP8`GD>7vdje< zzAYaAb$eV5{p06i`*m2OvO!zRF3z;5ROGm;cm)sUZ?UQhRf^czc1uAhxEeuN#+bo$ zlaqyY03t2d#7Vutja^C3#~dXcw_?^q3H8D+h#rf6P1)+NrODD>EmE5yXX;W#)(ty% zVZ2mLU39+8u7hRTAsc6L1~RJ2wMq)hJfxDm*wn2WZap8Qr}ad8%^I>e0vlhK@7JgY z?v1n*t+5??a~$mi408%ItEfb4(mY~%^yPw7sPGX-=M2<_KjAC@Wqz5@WyxbYh+eCQ zYQ&JNPbpwWq<2fwQEK5_3AG@3fjY#dRt)P@xT;>-xMJu+VqBk|6NZzu@ODc|NW(BO zcv_p{rNS~m*`gp=sgSVf7gU*DeJPnROd5|Bu&nXEIO2gXyC*zBBsS+}2?|!oYo<_v z=uPZ!?Vv$&84SM_FCl!=yL5a>~hPj`0+4<=aVo3<$j4oje8C^CuT-a%OaM!O_?_H6$MCb%d7NNs5Ns zRSy;wST#xKlI1lciC7*3W<&s1DwW{hgQGzE?|bRYPdEa3yxuW_>0rIiL2G$#Ee>Ra zaud94EhVYys(8fI2uKE5k+aM%87mn@(i1yQB;`1~IF6G>VRa$d^E%2_)jBd>r7gHP zJIGQUeh1LW6vFw0=0Z0{ghx?!N*4#nFZ--$1(&YMripO*%eo{?0*l~k@m0sjVrf$- zawB!<6hK@smOOq%>eW@0@5w)4;*oH-e@My7^DABnfD}5QR>|4OM-U_=N9M#S*rFG1 z?VEdhJW8mCg7W?0$z;$@`&Evrshx;HIm|Va!k9Y(xxI_DHU0xE9Q$br4j5>_XASdN zI3+kj)Mt#mubiekv<4;0Xm6Z93lr|%6-qQey?~;tm$lM?qWG_9<*9Jibmu6NYJSI2 z-w+1ONfzvFya8D4XEmip0;!km1DxW@CmZoh#$t>~Dg^huD{NISL5gL~R-*D4 z%Laj3`(1R7b6Zhkx-b=4rvF0Eq{)`OVk`QUnK*(56Z?qpK$Zm=@+ou#9qOQ)?LC3WIh0|BvZR!RDl*EDz4 zf(JDNMXS6-J_Q;^(NWDn!_7 z3eP)-<80|nqRFxXm)9f(OEK_yMw~g^+%-@64tg!c?we!Po18+>N6q^57^htyz~Kdh zPm(BIrUBt<;IdDq-*EcjXa^7zN@|)fHt0ky6H+Y53vAIj98|< zuV<4SK!);Yx5&ZBIAvr!VAO|6;lg*mA_md)5DN#Yv66brEC(JmZj$g@#BFTD zFIcQf$xaBgaZ78GQ>n@jipAbpEI>CCub!oIL@n44+lESs77CF34}162AJ_Z+4gA~K zMq@jT(V($y+iGl0>@>C;qcNK%lQg!`*tRkF=XZWTgnRF^Iota+b6sn#J^S;vl!C`n z5TPbGB5cHgF_54PdDw$l^sFuxv;WU??E-@%AGz70A)$o-mzn{Z96UOKa_3xzp(i)< zU&rP7G%a&ZSoy}JEz8if5?Rg2FnXST)TcXQJ}=K8Kg0ki+IVhy%TL|OM#q^g!qh*< zQJV^<8}IK9H{>Z_n5oi-ZG`M85fg}-XYG&MM{{ngV3NOCvVSirzP_tKj4Nha7!RRP z(zC}(?a76&^zr+LVJ()Lbtw$|9*u0tHKE`#-_`4Kyc;RxgmUb@x&7B82#nDKV91eI zH33R`^o;2--%wPf--=`$ptI9jGlBuoySIDb``ep3l)v}&x`O*BA;|$_D7P6fL*Q=6qvOj+g8xA54VH(Iz{mpkm0+MC^jVZ3Lt94 z{v1&Ndg7c3&9yR%|qocJ0Z*6>Qf*W7h588|?ER5Jax@n-wZ|K0qJ> z_3OD^5CH<9w_@+#37s&hRw0+`gtG1e+};zFitl-sug~3}6ppj@Bva?Tg{+5`>+R2A z`KM6h6=hmg=&eLSaLG;9FFU1;Rs1MGvJ`#RQ^UdiaRK<{-JAqEN8cDup-SSr(T{m~ zn;?oE{Ccw@Mzv1S6AC}^J{`^IL7o^Y59uA6-`MQa29_Cj|P zT|`Al-^0N$U?p=lYDgR37Tis*-`XsA5qis(iv9?EZ1&~tgE^kA`?4`)f8`P@Am7wsa#j@SJics15lod(UVLEevNCPV*{pSKY5O$X71o8QV2-q0SbCG<>w35`k6Es1kC4hS|H4SEk|i)7sU!PEWF&g z?)Fo-&~OJkD9?u!HPAk#0pB~*08X?bTQ4l9Fy(*^p3CD>Ba`6Avm5}#4?lYw=_>pl zvRwwI=!47e-^A#lJaL4A)Je&M-vBZf6Q)qu`v+9qr#&&KkR9z<6au{A_vxKZw1(eb)ON#@pm;-EWNfbRE_PWgeQp>_;#k1?WG zdRWJAkoW%bcL`1Gq!?tQD+37Q(uzbYfDQ6Pqr}Ls%Iq#qVG|N6|wj%TAV@co4l9^@*JeYk9;5K@p zR`2-dV}iWjv2J~7yN@~-p~v8$Y_r#|kW4BH z$C(uKV2hM>cXr|2|92uyd5=m;94>)9a}S4R(``X9Iya_&K=n!@_vF8aEVejRwm3j3 z18(_ac-!c{N}Yq=r_@BQtO6wq!Ze{vV>?0)eQE5Vw$^9aS`zl zcb4fl_1AO2*52YEb?|StqeC}rgiXX)=?)NsX9O*_BK8<{H=nkGhQbdD$ zKVjx_6~&~)(R+5^*Z!4?_4G<~aUA=f$XZgoi`g>M++@=3O87?5kWBt(tmjML;Q4zO zsDE+MW#}hxZK=}N!q1<6#zAi9eUg`ro?}UhJR^dK_?}Xdl6b^UKPLoXdvS(#E0SQ} zk^)S;u4S%*?A;lXjxO5f-sFXPtDv~g?0Lb(kjOD0abg5$LYx*52%r|d<()wk6MB(B ze2fJWGQ9mw-10gPpvGOfSCnWw=v;;3P+=8hErXc}P9k zykj5eD&3lT3DK20r+aNojao10C-^Y{T;3hgIFE#P*ug0uJQlfnuxNzTI(fbA9`*zc z-vEHke`IxLbY+z)Y!oVw7$zpNOH@rKY$+jf87=Y>(dk@);-}!rYHGPPs1`|hwf$vd zV0Uvc33=fDiF^z&N@2o9ngE{knw>K_Wq5s!GJ~iXX0mr|7t6>%L}i1$#d_p z69}4&z0jH~UAXub*mWYgyB~w`8cMj`Ejpxda!LpH=30n=r(d&Swxyo70a!y9noem% z^4=S|EdcEX#jV5l=YZZ_81Dc0Q_+PrXLzW0(H3^Do#xgHboYo($1H)|2B-Nq*sFih z*xq-puSeTBD@QZC|J@$Me17$$2?|e`(|)V3HU8jEhzseSYI++;=Ty1u3GeLHhapm_ zxLgz^R1>hm`AF8K>f}<^b zeSyM9^vqtT6zEDFkyIEdQpz*@9krErqtBHBVl^-M?{OmO$_7GwN=HKVUI{i60{qsK zc}#gn9!SHr0c^pYT6`kHjd`b}7SL!Pm{DwD*nE`JFMrpIlc-MLOF&`&ybM-g&M3uHfb90P z7{AKH-Ejw6*Ld&3YAjN4TWtfO=S)=jtC;i8@ycB_lq%P|`KePz=}=rSzlCYR7(6{h zN*&o-@RMt@s|+M5=_RyXK8j6Xgq9)R=*Y`Y5Zfx3J;6FIt4?N3YX07}neg2|wi8Dw zbfl#mr@^m{P~Mom3mPeC{P!( z`oLhN;Zzk-lU5Nr!+M^c<*~u&4R4?RT}&cSz!_eAbSwN51%YRaW$>siz_#MV#oOj( zKm6G;YA-bKX+7GBi}vgT`q=E23&hSg=6!m59EuViKkNySJTHx?QJ=bbtE=?n;~OT= zjj-U~YB_Asw)qP?#^3sB7{_~%VvOO9=rz_4@|Sw6mHT!7FJ#??oj}xYYv>?qce^fG z5))A60MJSrxnXa5h*kb+yMc@8B+q=&Q*+2bjO-zw1W|hkq<(|UTob04QBM_S9BjI5 z{GOde=>TY2_8YfRJifnM-o{RIH4W?Dxs0SXMlkYD0VULrlU430*fFw4eRcXm);X&Aj`UfyeV${!0i6ubnpq5m#aseP#iWKohdehRf0!pV=`ucDjhr*50w}lq&%!&san!1A#m#Z&ue=t| zMcKX3vky=o3FASO;H04ms~p>$9;X9$lcG_8^Y^YQ_S!QOAz``y^n%mz15TM{4!HNR zqo9)AZK0sV0Cq=H5cXA9<0HM0Xj?e7jzVIr5OnUQ=hZo(pow83DLoY$tNm{EZA zH);8m_QB738=x*ty3p2x)4nw{8m2y6w#KGN>`VU5<(elx2LBLQ{n;=u~w?J1^pR}8e^1rMT15t%l(7~nnPc-oVfmzXf>4-4Jj&Z`m*pBg4=QUB?w8B!Y&weA3g;gT*S07qydr=55O@7TrF*|dBgXc=4I>^w#pyHr)=9utx;a8U6ZfTsobm6M>vZO>;z5)9 zv_9Xu^W%M>G3z)B9{nk%IE6Q9*2B(~LGbrkk|UPpEs&vR^{kh(dDC}s+AD8{xl%Z` z4M`#g?B0$02>gHGna2BmQE=|d$jQ+sbR)0lk+0%Eun@k2%7WrWvWcFyD7?r83>FMxj&26H*qb7)7#(u%`5LO)1WfL?NW z5YAi9Vb|6RHZ#4=SyVN9t5GC$<$=N7^>wV07l~z?361E&R*K`TNNg+Ps|7Rz>Zvrg zCmMV}&i5v_IJ7G|2S5&Fmwn6yC&Xg9?&iSb{oWh{SUpT(2k(irm2dy-5%TWsFcVF4 zZ&{;2A9-v|E%ld%M!pG|yo7;-Oex?F>7|QCUn{^#gmd%Zmwu`30bEcUyVK74zfbtD zQee~P**&&UU44ttdm4?mvPyQ$N9XJ-)RY_GtOtE`<0K}(3G~nTxZ@SW+jC0be91_; zND9=+)?`-o+=RLuv3V3_;YYfDGtIpeK%~Jg8wzweGAf1xk;S03np5pIP1y1)1)V zzmc8mLD8Q@k)YRK0jN3bYXOELpA=|CR1shBann4Y8NlBdyr3{h?e^QZe`93)0dMXv zhg|#jw>-CLx<+L!Z%*l=CrWqSrcF@Zk=~8TO%fxR#fa06b93qgx9-@oZ}wMdOD_*f z^j^S{qEXugcxVh5bI}o+!3tIq2^lUOQN%mss(1(urgsGT-!0vN;=uet@5Mc)-;dY? ziEWm|pwVB{-l##SRL=_tj8tChXV$2(6~g~z&Rlf=1DnnQ_WRTR1n<_@KZHwNCIK7V z`ok~&D}_9cEMPEJzMNGxzFL)4J==ACL^h?Oc>;CUw(|AsoR=s&AJJ zDN2EczKvKj83wBBr7~r@!l;jJzYrP&z>kEnYltL62ML>RkB_?oMHf)(E}@R#Q)%)G z41xRg$A?mueOJMb^S_l7zy|1Bo;nmL4+Xy}8L+E@Enq490QjS|SwUkWF)IaJHbJTJ zg#n4KIKFnZs zq~q3_{6c6Uj~`oIG_axn!gdAi7 zL!W!c34K_#4VriWjT3m%!{>u!Cd5;v9$PX5C4YD+FrCpfC@Y29eHq)R1qssVVmDrphZ$bB%$oRM*nPch0gis|lse!^aEcqRImCr z%SgmT$AXR@MnG~O>UUWOAL81|N)N&BL})he=HGb*(I8`xS8Pm_vYg7qq;U0C? z)zo+OApTjnxEr3{y*_^j#$Z|D@n~5g?QOrGhd*9ReqVZ3Cud#+&d+5Os-!T#58}6@ zH55v4+{jgZUiF2S{-8$iwX~LaTU)(80{oSf$@{AYio?H`)>r(jE32YpXJDbBW1^yG zW*wawnHodbmsF96iI4p8@O*c2e7Bf2J$wgRJP~6@RYvyaY7M{s{%W3?KO3o}KEi=k zFnSitttBDo{P9Jp)a{=e^E*`D9N^9yc^*{@L_xq1m!~u4Mx5an$97}VhcC})Q{G|m z@(H@KgKBBQc~?~8ylS{w>SO!{_x8=qi>YZKUBa(z zZNlH?x99ZKvs19hclOQdsG0g?6cfT@qY`|fm|1P(#kg$4y}x`5!9mT>;#-sVBlAFHrIEBAG2(CT!TSHLOG5TTpP<(a*{xf zZ}JXCFX1DMbybeLAW%5KOij*CPR%T2TWFhbMtIXGpVa9CvEO9RJ(S_0++xMHLid})SWHO#1DcmwL#XOt6zPtWaY*rpWYQG<@3^fbf5i75^P z{cN17YWF7|hId7c49M++DxXuBUbTOL_wPyGkDrlt$~ib@=jPN?ASTc)ebV#qY|2T2 z_Vm)IL@Md;5$&|NYCNqzNny%pdMRnx)NCDtnq4wRcRfr+;*`7TyzZ}9c;p4i`RO0k zDlQQL>C5gEstdm@A_=Ory?U^Ut1uI^V-HFW0~6Tj%BtjvM>`mucfSuV_z+BAbE1AJX-Q@+A55TNR95cGPBz7x_2@#1lXv@4)?uY=Pn)`p z)WrkjFS9`>inT6h@E!FmbRbXH+kpC^qs?I2ZU{^KxbrTwjRXxxM#Mf*_Q~WrjAma` zT#dQ5s;0X3S9J~Rm&q}?7^FbwN`?XH$e<3c4TDrX{FeChl5RlPi8aINr{Ko1K-f$ks&fpD+0RapA^gPoJ+=}AHNj6zX=+iD{2h% z-5NgPn!PI3k!7!oypv?agz6ehYzz^S9$f65Rs87Pjm;@W?&c;kIsi?U)9d2j(zz>)M|NC(1eq9nv)94)U^Y+>iAAN5qKC z{=u6(tGIk<1M-Zg+2Y>2g#V36OG#nVd$CvpQuY>x;ChTqr6Q(=|#F-u|O4Urc`toT&PDR)Ebil2}I zi>qiGAxG2wO*t7w(Z|m*qbHx$SXo^Mld+wX0IUg5JQ>I3!x0F7o?M$b7qs#Ae=-aY z{$()7(rIyhy1fVN@7q|G(K9ejj!g9{sLChA|3Kn<86u-b`B-)3=pS~>%`D81_h317 zB>snl#uUY8gy!N=L?}l@zYAd*&6YHBC*B=fc{K`-(}gI^n`+9+y{!_-8{?B)7I$o=m);*$|{WvjSBn9O4ZK{V2R*;sVN#&k;Bv<-B~T_{iK&yT0N7LkBxl#oF7+(z zlOOk0DJCf%4gKcP{X^JYnG2!Qv3J9!3QpE7C|cFeA$DMrM`>P2*)5^@X7q8;6r1g( zsLjtVEX*b2T9iV%zplMD^>}zjhWt<+n`B}8;7Na>LK0{R(T7cR>pa(=iG~_$8ft9; zSSe7G3*}ZTk#ZJgmEk3Hc93vDOpLU`3>^Y>=R|Gs=-`LRn_0Mfx>T@m4s0xri&PYo z_*9#at*`%YRZl1{=0*-z46G-!QItASezI?wF~Gi;<@byf&>pWV~WX5&5uAjP)x?cc2>a* z4*k=@vy6ThM6c(l<;%z#`HBb^nnBCk*6!2FmvKxR;k!;;Gx~we&ugZoe8f|xY0PuF zp~Q^UoMf;1{XvhFpJuMHvx6-PcJ}-35#)t@@bTaL%rj6~awT!yD7XafE2r zoeqYb39;&O;Um*pUSG;eY=^(Y?aud>?Y~8_rZJ+|L-YbuaV9rJ@qrMFft!U{?xx1( zCYTqcgoNT^SUNIXU$LV~m~EK2(73R$hvzdhbXxGt6mR+Kzns(m0&GJxU zPaBLMrB9ovC<2YhSf>)uJ;jN@qcDpMRCDtBkr{~vl4s-`FUQ*)_AaC@%kmjND$G zOfl`PThaUA?dj?1{R|)~$k*2!9Dr#$cL0Eesu)F&tZ7F^hQb)ws07GBqRPgm;%Wjt zk`g0SKZ|V-@l(|2_&7KLpw)+z(Ds^-hyxN{s$pQ-V{GAX&{rq}g2P?ST2enBW>Q?d z>PLYxIX%VB$jZt(I`OeNOplFCO-)R|KH4fT9QU72q0+KSeEbrf#odVfq^+gliQK5j zz3BysnH3b64G?rx)NJGA733#IM@Pp;nJVQ;@X8$S@5pbu#Y0 zWeI(lM7_5zJ(HpIqNPEM^4ar@Y$ z-rL5Y8D{dJvkE%xlR4}!vb3_e%-i-DNK|C3XYgqb1&?eY&636xL2TUF-l@vP&dK?^ zBXnbFL6k@EaUUilIaBhp6T77ciz5k(hb0+45jHv2FD7wxv5840#**TCN2|Bh`L*TY zw_6%AZF_NV0}WwD1VOy4h};}mJq2-n?YW_0Elr(}STvGDh*iLMH)n5Wb3gDg%qyuFV5{qcsfwv9 z>xgTN&m_)9Z*cQTEcQ#O&CTjG@}lCFiHY+xpN(Lg#l|EL-oehMuhb!L;ukWb&7KXD z_s;b^dxiVi6ft$|tA=_u7crf|K6=_x^Mf5i-B}Kf7B{~qddjb?!qi;M^n85u%pZBO zth75*-Om)Dz@QD%zH?Of7OuI45K_1anumnC{Ea_WM}Qqrtp3e6-yD^g(X7 zFB2p^Xjw;gW!s;g=yjRLceuL;Jngkz8=5jOFa(^-=FSHu9KcaFSeRMtVrz0W-p7tJ z+7oC0`|aE7yN`&H)HsW!RuFUpy?KhP?3m$ZCq$Gb#AH`hRrMhxvHT*fFYh)x5*HJv zI6lf!YkwL-prU9juOg9+sk5%39x{wYL3j+ntZS5(lpg3~u*KDxo#&rl(NIs$fR_~` zI-p}}4F7yelr7*3FK)<2!-D#o5t&nM!-Hc%BQ;H(+clQ?EPL&%h?iH;*~QC2Z0Sea zS{Pa%mCqsc?Zs41Zmd5OJ5y(V5%91&+&{E={tu9p)!p)q@fA%xpsw0TdO7?n!u``urMO`H?i&Gk3Yi5P+T;SOP%<^m@VFL$(8W>Uffk9Nkv2c{0C z86BA#ni`lub)ex?r=p^Avlp;dmh@00d1u(65ftd|{2c(i3A(1h!rHlh-g++Ys0CX} zez6wl!<;0hHRmulhtrB=O-M*!B{fTPYvIc0-w0AIg zFh8@97cJUh`))XK?-6e(i=^hx$7wC;;hLSuV->l2+W%Z!EF&{QPYF+wl}kKmuGSGN zKQTa$bH?0k5wKjI&wYYGKh zLp_vIMTy<{A`B_%)0%@fdGL)-UwMe5JHNQFq?Nf-LL(($S_GOGeK}mWa|(3Vk(Y#msNhhwoGAU0am*yx z0AGR}8<^hpG_;bl(lSysH)eU!nm6ay5KaawMu46je9KF`?T?Amzpl5;lRf0B!cvl4 z#MIP^DXOr)pe^ECiS4Ciq`^v}5fKSUdwt{nxG)o75On&vtGo1&#@I`mNyL8xn76Qv zu+GdSaUshbMKY0|P?s0!1WJZqvs3Hn#`M(~kvOZ);b$za8Vq~lm z)1QPnb9ICNf-9s;;mQL7i@mtF^2}>sSu@BA#J?OdUc=eS)mK+$!gr` zTGAZ(eI?q}c{K^u97Oz#XA6Y{^@wWYS~T~5f_mP9ydMeC@J_x;AGC?lc6j*iot&6C z-pc7}%Oq!@fvqZPOa6Qn<=!o)mihe~B3SyvP;4~-^=VqKh{Z&+gK#U87^m6ad2YxU zwNkFQgN}}BP@*gHG3d3am;R@g+{Bc;%1^kkz|Kf(-?@d)lNz})^c59JT7IrRnb+`} z7B~Yz33jzl@gM2`VmBR~$_4qP1qHu&{l;dm_}@{(c}6LoAfvRuxcD5}n^T#|A6TZsKLc)q30GE7R?dyjj|nqeXJKw|v-^;!-maeZR_;2M_XfoftqCR* zkKjl$nchx`C$q~KF^`bEKhiIk3_Sz66f_bFQc5fp^c@woqwXJ$)jbK=r~DddD49#K zj9`R67KkYFH>u2EpS9?m^9(|zq+`8{J!Ztrnf^xf19WL^Yd<$<1K~kaZrIJB(pn&u zTA;+L(*2c{j|ci9db~%Psn9u!7z+*#0R{oPQsi%Nc^8lR;swnYiX)8HolqSyjfA8e zxYrj37$#r^I4>q06gT{1tH1Z@Y*I}~{;swV?wcK$dmP6xHBgJF;bfJAKc(DH6)o}@ zd1-(onk5MT3t?;AxbR6EOv&OloGCqBaFOK(FX?|zdm$6pCPJA2bAAbekz z2+a$P%a8c)-k(cRt9^^L@>d6E?xE*#khUp6(!}3ne-gI3xZc((_`D=e1E-`kl}YyDr|W6gyGV%gajL@Ci~snr?mTP}SQqtW>R=GJ z#Z1*4kQVA2XzFUGrV&#RfrgiijKlImQ{gD$0(sYsGw@$GvacH&oX5t%SD1StA1Ook z7W9_T#qBvVVqgJXu5;z^T-(Hpiup=%#OP#Z=&Z!+5U(En^t8 znq{r?2?D?Bzq=P?i?Y%P%t}nLR=J-1hm1-{h-==>uU%RVHQD!?B_VN}BtHE#fEs4L ztuE2lmrEuL8JWu%5JLL=Ihg|8d#Wh-1}*lSyHlz~0W}8jxpE1bY$VXw7}N;lh5jOG z1^U@HQL&RHq)Q9fBdeu3^xj=e=o{d$x05w7jNwJ+V_T!LrgpmzFpq10~i|1>lh`kSn^^M;IwXU z3pEFotFzd}FV+HeM9+lDT54XN1P*+tytSXcvGppEOKl8G=j~cl1w1`K{B1j5di3;- zu?rIrMm}#gg*r{iiOAZc^9exM$MQoYRcK~H8e?w6RAE2;=^C97Z^j(Dgbn)6`!N=F zDRBDrD8O)emXW&N>q!t56yvzjzn{J|y9EENHQxO9g6F_W%C1sT)3P9Tvgur6(MUAN zT_L`fP`)i3#edmZy<}DIB$;G&Qz<}MT;qhBo9+|62J7H{SNE^bpa1zCkWQB9x^*Fx z;8D11B>rA3kK(zV4Bu}y_`xVmC*TTjA(f;A+KL`Vb=%GQqQiBhqvFmMaOvY)%O$_C z8E+anl_B3grPg#IN)O4v2b?u;9^sA`*uTrlz;)W);h3Ta*M0kG9v(wWv<#8>3f$i2a$Ih#cntdQ~1BUj5^DMHDN;+;)yrt`#e6PV?9EjkUMsYq^Ug36%HchW>m! z^wTR>ub-8@90H5$Qiai(aF_{Gb17r79M`%+^PBJ~#P};PCAn-eYG?(`NJ&WbtMyAo zB%(7|$q?|?dt$_0x9D69#vvvS+nenXfab>`ohR~isIXG?*U5{E1i14(mr2q(;x zQZ%X9%u@9-cMiSR)tCkmpx=p95W#ryD;ozQl?`%y7+mvLKb2p%%zPhBR{}!XUg-dg z$+tG1dG##wfqazrRL6|Z5)&Vz4V~>pDDHUuBXza275D}OvO`sJh)a{)K&RD@QM+cZ zC;y-O{_)1_ZApv}_}?_%sev>tio#$hqUOo*>v7d*^@Y)|Cxob`K&AR3(Cc&U(xoh2 zN%TB-GZk0c&f010iyWF^?jLk~RbXEqVN&Py=BR#)&YV0G5|*udn=O4ZbuEeF-^1Lh za%ODb#JVN@YF=(YGRhc=X32&*s-VpA@=aPA(bI~Lghl`6#=U<~gg1^&GA$`lS`@+Il=R{#FDlIlpm~CkA*-^et zB2B!g0@t#@roKD{r!ObQcm@B(HzD%gr>Vim;{DE|TtV_7O~TBm3O*&Aa;!Ubyswu> zr;IOd_Gj+!QB?Ed^P1KGKZ06m->8`5)&2>K`}S6f#a(o?4=$|(#P6~cHGr|TnV@iM zSp!cm{cZ*~zSfahlmH*^;Mk^uemEl7l|Q3IU_yiy6B_I@XZc06iU2E1XH_^TUU7=P z0zAmi_;n|zoQnbS&urSz%SM@+O14c4~uuDkpS zkCm~!Al#S>0Hrl7eAZ96{kGkJ%eW~(hor%-ah(ktpMRW$Q(YKJ9NJ-;-t?IEx3u_u zX^@d%kDby_uGBw^jNGpx2z~pr;U&*SZPq+!MF04|{vD7hfNfi7f4Y)Tla)o{4S#zj3QwyW6@n%j8cVsxl)mT*ZQeE z*FF_Fdxyy3z5`fNOk7e{GVamEwvLHqRi+T%wqyE!+vSmls%QfnDQ&oAb#KOlFk1`e ztpO*FSy6NQ{KlQBYvdp^6W@kjI{Ho2r>%p7b5=)JTYF)4j(=8t=kL2Z$*HwV35&v? z=SwZd)~oZZ-;A$dA3c&P;j=R*&BPhbR@l8X+<_t@|bYxcg@nHDfEU4fJ02Fev76$J~=j~kcfV}SWHU&ed;UKeoAsC-qFt?$yHKD)tew%3GYp! z2;kyf)mgU0Fds*Cm7kqClp;MnRMuc+d|E3u`o|B`6(M0NCbo^40RvT&kQ_7;_uqo^ z`ldQsdK&zl;W9%*GYYP1*7JV)od)Gwb$B@$N9>&4;s#yuF|O?b|BRuWLQlW2C!R<~ z^wVx8sa?~E$ndiaR(XC0B}K_b#DC48_G*b`xK7(}7qiX#$2?MC%m{Us|yx2jHlPEHLg165E;NbCJx0hU)afBH^%TjOFwMn~Y`)lO(+yq#% z_=;7dr?{g$tO&vO8QcOnLkSm9;rYG)o*j`ZX?#&p=M z#nBjy;>MiyRA#onVP&DFor1o0A!_;ua@ zehH(qHLb8X@G!%m{nZk2cHFMWF9>WZjr=-z2Z~Pql@w1bzfY|(^bPq7{IGwM%pZ7F z(2f8GI^t*IIOK2=vrjtAFqB>YiWogMGebKGy)e)o7U|ZpeHSy0cau5ntf+GcT+(84 zzG23y$SEYCduK|p8#JI4N|YX^rKjN@TlWF;>SGuCYpFnknX^72V~mzhTwFb^T`um{ z*B6*L#CT}eF)`-4quDzVD5H!l3a-hNlPg2n3oa4h`Oap!?>Vchq8o+RUobdzdC;oC zvC<=BGok#KWRJw^f7b@o!_QFt)F(GY4<=H4ad6UO)bae?lsy8DE7_h1WQe&^^V3&j zM(&FiD3rZZ5Laf%3(3A?WWgiz3bRx5Cpz~W`kDNW8!EB5+^4`hfNmK42%J{FrM4iA zj8l}7FiK9ud3UHARDI|Jhy1=t&Nh@;fqb`eP&Yolxj5=SgjMo`XM=%U6C}r^#>N+A zWuVzNF^l<5fbgyFUMK?now1qpiR8_l>A6n8GyhIAETzicdrIv7>OCkJ(N!L+dVS7n zg-yTvE!5IR<8ir;orCww1WsB?RyGpx^|!u*JjcFho%iuOa(i*XZ#?wx`Nl={p0uJ- z3e~th_JZZhDD~Nr71(plp0}*e|x(EU+z!NK6(F3M6c)Sn#FJ<+le|(o374%R&~zY(dXCl2K5cjfvSxp8fJPIm090iHl6PzkQlO zl;C6};N!bcAtfW*U^TNer@VTsBmsdOyy@&nKIi2YWEEwl<>X@F-z`5jWul4V3b4)Z zT9so;Nn9j;J|-BgF;#%pu@UI9B7VlD;_<%%Ast z*49Bg*?~xQy>lMYA6??U;}E@tdEOf@Plw>ck%qL1061Da9#6EJV%S@_Jz(^EUQ5sG zm66XLLvj&LL#kq)puc~&kij`id`ntsc%V}&od9F;O3P!)&t2>pZ$BrP(*3>t(lDa~ zc^%Y3!(Mj%K`U)H6cy$w=hG9=#7+o~+};?Ov0?e9@kuzh znm1`ywBetJ;f683t)yYp5=O0hz_Wt4lg>0*=SHTJ&vs*t&|htIpQ%r0el-4zunseD zwL|mnY5U#V)&g*MyASzK>idqkOc>>cG5Pg()`aKfidWY*JbX^SGF~)g_J)QpGe6LS zommn2&mqngaT^DWBvaTD@R~18-NG{-2Hge|E&DL}i~4ikM>@{PUFoc*vZ2sp4+p0R1B`=gg+_?)E(f(HrPVg(AB#YVpiORDjE6pyRmw3O;5dEjF1 zrDf0$66U_i+C|`L9l+TE8OFh#qD;|yIZ}8$k4ZCOEL~70r(iNtXm4j%z)N&UOw7&m z)!Fmz$IQ&t*4U(#`x-^$x2aN#S=Ok$ zo2HpJGcFXSU@w0JXC&u_X_X(Cm`OiWRA$)N`aN#n?OZ%gg*wUERWNvtH+Y|_ZSO{% zioSJ5Q_|3E6@s$K-ry>rpQeBR^vquWW$si0=jk?p#N+<4OXF4o8ER8OMW1WN<*Ks- zKHAYr!sWm-B4UW(>c_C3=v65T)smH1+qTF=D#SCN$Xa%hilg^t;YAgWOZ@xF>|$74 zX36U&i~w%@X+2QGN5q^ygz<;%X0iK?Nr7)(=|-MVHCG?M>a0at8C zqThG8L2vL6D&6abV)+kk-Az0+cR2*$%*s2G7>ARQ{zp_wvOY0*@XN>33TvGQ5*BH1 zP|KFomOyS^&blxBP?^;c0qp5i->lm9aa7XjE;%u4 zav|o)?uwE|+#b*RUx-8sZz+&+mDV$mIdeu*6NTkWsCT*!D)<`o=i7P)G?&T&^5iBn zbM%Faczhcio6FI}*5=>86W3t4GMc?AmWPC=f>qr9-@rhk7e|e;zCm^Y@%#LyMn=)+ zgDSD6yC_xH)PGbZ-XCfhjv$^9x+rNwqL)@k#tCw&Xu@H3;TPE^_znpDo_5Ov$`ARf zd?AAx48YaN&YLhLH4{riaanV9X?H^dsvN7PM1IDJb6&o;Cz79a`oW8wPQ%$R$Bq)T zzwYA(Hdm0{*nf1|Uf+YZ=__q3dfPLkME<%PZmK6$7j1O=cS3vk)IfzTb-z@ZYwWN1 z;c$~;K39B+q6BpdZEqXo6upWFV5GaleiN(E%g4U&H;4+P`FSV%DL3E6e_=I=1&Nqm z%?K=DLiYN=$<${MMQ$xPgOI2QH_+uu8mghTeyeS!q~L$JI#a#zAExb!Za-(Wz$?6T zIq%eWGP3XJ_+7W3+PUy#58n!qd24<<;9LxLbVI>s9XFKPb23CcnCtiHIwQ=3i zF_N-2u9TABAkwvgSo|iH%6CC(g2`b^T+R7r_mKIYaNeRgd(=s$qGOGN*J(PUUt5|% zJwWzIFB6e`YO35t3$w|amiHds9 zmG)C)wYIqgph}Q1b6u{(nN^vap}-vBn!}*78)MLeii{pr&13Pi-;Q;st+tDcf6HO- z|JXZ+?ogsG4ac@^+qP}nzOilFwrx8%wr$%^ZaQDD?jO+euF0--YF2}@w%+FzlsO|D zJ=}YGD1CWJeP{-tt>!o~A$nY+T3a9fZSX5B=ibuAJh!T({pQGF;5~l(W_G2-v+`js zb9mv0?pQ35qy{g91@#49CT1S6#WjlgebIi_Q&F5~lFr#PPu&K0qrl10kYva$u8*)# z;9AR1iH+F;;-6)Be7*yQi1YX3=jWD`kO={Lr3+6Iy9Xdl(U-i}^Ffb2y5rJoXrUQInLv#L4N1mt?UB0tm512+Fg! zUMJ8*8U)_FA1&a@`-!im^!U}86VHo>18*7>4Y$XZfN1$@ccqgCkEiazMFG>**W=AQ zh1;@=FAzUy#=#b6+k1u9{)u~H6mKXqz4WOmAf0BQ4hai)BQ?1%YjSaQ_S@ClZy;gf zLgW5sqW)1e<@m2z0T#QPBoz}|OwIz!;V)mnpM!rT$|m{KhluK4SMM{o*UaeBx}3HP ze#DYIiL|yo7CN3gh7lPa9+>xnYTj)HkT>j!bqg0@r*8B&KmU6Ac(&62EhuWo}O;S``21ZHcm)(269O!E32<3OR)Z_#uWre*?x(TEL^j5~yvS9Bxh=bULnC$_k z#8YtBdRQQ3Xv^KA(U2V?&EHXFcDQ?RWm-!*C4S+`CdsDkNof!6FT1|P{Q{eSYP#qa zb9YPk;cZ9LerH|vbVBj6skQiA`^2|vQ!L{z*wpY4i@{-;GD|TPPIL_Pl-%ODii23kxeFbMUMDN+7myrd3QxNsEsRZ%fLGApeGBFRi5+ zlh$cwI%a6amt&MWnEBL)X=X2Oq|zzWM^Iq24==;W$hsVXp4H2H8NCGtR}6L5g?l8+ z>gx5rdi_kvWuaRyp=De%2RuB!C8iEk47b!wx0F;AyhKJTn3H;r*(Xxoo0sK)O0yKT z*IIL_*1b*CbqSRHrL8E0e}b2jx0z}-^%x^u?9h_+vEW;-q9Car6u2=mFfjp8D=&S@ z+Xdc2g$|#vJhz^_Z(?L*YH)aj9{4*|Enwu*x0GrmueuFV!_i+rD6Ah-6BlL`milD3 zV~n5#Xj+*Vnp#>&flWCf_6=@SYX5KTAGHvirLHu&8$7zU52cty7$lz}XJfpsg_-H* z+}jjTIbyFXtN+22R-$v?)C10S^HXlN{_%X0c>p6OepW9{9*{05E;hae(($oBM??UG zM-gWh%8 z1n$23jgxOYm)Oc^*AlCVj!^Wov&0crow?N^$lO~Z;CM!Gc6T)fJnznKN2GeY$v%%_ zPT1O$P-JJRfOH}CthBdY)j(Xl>qPM*6I)$p&Fv)y!l?^;nz?8n6WU*GIb?S+r?Pvt ziu%?bw=-;obUR!f!hE9xqy#`x5MEr?cJy8y3u&f*VV6SRy=I`8XMFx&(>D=GMLjK; z@c`10j!g6M2g3952?_;oBKae{J3Cun4Ngy=Urz?+9*uQ$-r_2zJPj9$rU?z3R z{8MQ9+{NW?&q%0ofe}gY;pXld6b-gz)H?~-6baoGdVvT{P~#O=RuyA+i$=9*6XP+U zvq(~FU?fMX{zgzw^7-8oFpf&5qPTFw4?op7+U%X4&fv&k#zsa$0j*zs;E|AByqZ{* zv2BFXx>oz}e}2h=hw)49CWluy=jZoJ0}C43iqT;ikqF59HeMdKX78i_Zbn4ha1ruV zmf2ccS(a0eNkcx)81haNk0Ht6bBcrz*|o2Q6@O8vf}-tV0HlRL52SQ*_2Ue7W|xB? ze0;i#QWra-q=rX`Na)BXrR43{(x{BIO_%=l<@~Tx{>yH#&#a~%l>79u!{f79IAYLq zddaeRM87%2;L+5S0JNAOOz`Cx#Of$NdN0dyh~|PfUTW8J>`!w9kTx$uiF=>tGt_SZ zB%ZfF4 zTXUPQ2GL})x#X@bXqvav69lDJXKQu)?`!%KUO?jF-%&$tAq6-q-ov<#ysFs|wHGrm zt)web^5VBNh)VEgSRZ^^--#y^4yEu3*-~UQ~%bs`gdA`+lcB37dUUP;xaJ z#9nS1a!@dDcN@?YUnwH%lnp=MUut=%ClsUM9=xh&!Mc(BE7`40JLr4K7?-lxjA_AC zKV0Sp=$P=;$sj&`-`{hiW5jZ4?UB91#30W06Jz7y_j5m2-c^xHg04`13fyGMZ}itV zdpP)YKGo7JVks>IFy|WMCdrJSjzak3Y{sGHh^lRjGfuq{Hb0Rwf<;Bv=SHsIyZrMF@{_#|4~B$6$A{8Usc ziqH%@VT-BG;mbGh$3*6Oc)k&_Ug56DA~%URW8!lde%9>~c+^eaqiU8QiLy!gz6Q$^ zmD&E?-rL!czm8D_wVYSu*Q#No%Q%tSIaq|2sJg_!%)&UgrjmwsnnTLZmSHbxzpoBg zT~gj8ZKL}hC^<}8W^)4}l~aHyM+M&Pv2S5iK|IV4-l1_p7vG53uRhWcw5p=Pez7kP zcn$&!PvaCYKm?+b72TU%0{@WpKy;-VGoh&f^@SwLBb$r$!Q18N6!aHBxb^$VzNwLT zNEI8W7^x9B_Blev!o|k@SWp2-#3bpUN7Z3;36g~#5#0C?3+=RGGH~~LXO%6wHQXlg zy26Un6Hr^6n_8HFDo;@@2GO9%XOG&Oi7YYKu~#4Lvp7SCVr+^p>@9ixY5RJm-@d}D zkhE7a+@^Iy3r=VF`ExhC&t439^Da(oe6)9Raj}2=xPX4eLLdnP^W^tAIJrF_qMMkr z*StbQ|8`7MGV{4Kk$bC6-j@IQ&&dVgiW+s?j+N5bALvV9!aN&dhE3x}2Sb{q!1V0!Zvi?N$E3)sVD3Jl05}+vmGpfxO5HR51 zt-c4RHfE)Sz0x61wc9E9xx$S5YH%cpUkBNNng?^7C|_|5_h5%tfYvwz^V$ z65s{D9kb>`&Ruht5enpLdSYxu&0?Q~L191u(4`bOw&NhKsf66c_j{Q>xr=dGelRk3 zO105FR(Ird)is{(248PyFE9UA_8ASt@~~X5JgJMs?MH+Rj0{($r+~1zO+Mh+BC`K6 zI`{-$Wb|vjyNSymqJzc9aSOgi7mt^VoV>oDPj-49|0N|&9Gah7F@42w!sY0u3%Mr> zs-P$0ID+)t(o)DZl`wJg(o*x%KKW?C+buujfTy$7(m)OU7%~kkM$(Ul;VYr0s;&{V z)|Xg0IKMwLajq*Tqu`yGlu&@i02tKyg@wlZN%IZRlb7r6;9{hwsVXbWtE=8qG0&_f zd{9PdIwvnvXKVfl40qC0))$x;msS)KcT9=-crnRg6+~Q_X^EPD*=KZwDAz<&o~Ez2 zyY&I@KeTsG@#NG-uok{xL@30OpCxYw-5@=>D9cnF*=`G!9i^$P46E=n-r%w%ZEd~* zW>+r0IPO?a|8_Gb6$*ajQXi&$C)cZ+d`}Z*S=u{F8lR@kN8BFnf^laJII|z}m&rh^ zmD~zYmr|1UkMxgCQ5Tt>-_tRmh``A^fqwYWexSWAYhVrFhsDi}4`2tL8Jj?C&@0Mu z@dU@jHj^iZyxA!(3Gu;Q6CBLjhXWjUh4e&arM0!SbwQV7H6Mv`lsh1{^{I`lHPT&{ z@n@7NI>O4*QPlmhy}ZH=tnu}A@c15m+4(mxKmYG$mM&``R`X1wW zT2>e(XD@Jt{_%42v(MGHc19lV)s1Q=M+!B9}n z=nWcJFWQ%!SAs58Yi_jelj3jmFWQ<)Yhz=h((zym;9|dR!C)P@_n96?UOAHtjv!y? z2qigLeUZ)G#K_Fn3J4}zU}jV%0Gjh{C-Jx}bT>E)&Es$BHw{xuePu(B8wN~co9`FM z#Laim&`{8K4{rLhz0KR?+S9|#Iz9x{!u7n#^bvdHS}rq?mK-Cb0HCa_W6 z^sy5?LUZKo+?t;t!Toh>Tn5>-;Hmz;g^>FprlzzJX6ovWhN#K#03jqCupKK|&=kO% zLZIWhhjKW_Tvm=AQ+A1uhqSC6CE7c&Pk7?}*5@<6C#2$Ij?0GM(csnAG$Latj!L4RJ!_opeRHHDFS6HwnJ|Q6T?XBCf?q z6qDYA)DjhiOVj{Ewb>0lU%jC9S(ZOYIT7t&N%3fhHb#|{Cz(_eVo9X3-Ltg0#{*3g zhJkqiHZWvi-8opRi%kA|sAxIraw|}!+vy-{5f%mV#=FRIz(qKF{&Xy>Dyav?ghKtP zw$nH3ggA_Sqhq}Ja(5AQmN*-ofo@@uzk4_E;LRZYn-8C_$J_jSFd%lpzFexe@?>_h z=-uk4&+rQgQDD0CO*w5E<|?i*aQAE}J;`6JBLkjKxM*7&+My(h^cw zJO_hcIyB8kZ)Xr?*hxLp%cPv|{iw@q3=QoKZjL~;$pceg*yY?80hN7)jg_VM%BTHn zR~!FWiMa4EX{qDFn*%G!?$Z5B)#QK(hJ?2;Ya`jpt_JOBf+2V#rtI)Ec|W2;BSN6X zj2V!3zK_TM&BDeM@bX6gEj(XnXMkC&`;j1EVs!LY?*X zRIuGWLf>AgbU>U8!b9#}HE4_aUg-v~1|>JkT;bqk_s`4A3&R~y+s6ff{-&rd-oB6E zTOIwrB6|lG*e4eunmJk6m)2F4))yC9n_b|cqh;s=pwlNKe#jTcCBq@_9TEGzvnd9d z^uRU4((+;`zz0(&1MAn5{0J&A&MGLyeygM0)=r1QdDs(zM+_715MS{)zp%K)rWs%KrAKi z84-QuV~#O?T6t#Nsr0+Uq^3wHK(_!VHb&6k=!FiLq%XR92d*Ca!6G9AAiFq#TL*~O z;sjYx%7Q(p5#cJw*&6v~Z`TF-fme1PD=4P+3!T#dVf6ChCC9@`qDL|x62F?)_Rw8B zm9G9ucnuLSJQ5%2zPHOGOmK#ns=Y=}+2QK$Zhdom|$PAL9lY{>3n~ z_}<*$zCE~D)c4huHQ}m|v8I$5oagsTg~vohM8w8QOU=@~X)JDWGI0IQsNEc00i|N8 z8TP+dba8A)IOKzxsPHsCU`cr86hZ$mhn3yz%<2Q$(b&@hy0!mq%l|Si0Ld1XZ@$#? z;ozE6`mr72)+WS(LeCm=hnZ3KKL3*c6x)QAx;(rGI8~%pmV89Bk^+2vUpWIlK{8jM_1{U{<7M;bq6JSDw?&++U1Y{B-8i ztMBXQx0Ma+Tc49Hd|$V(dtmN1y}pBosN7z==gXar4_)e2`77VIQ*ya}z4;vEHo83K zhS!m_G#lTy^}arre+Q49e|GaWTFh^IffxJfz~OQEyx-;ugu&qpvj#Co^K-l;$9zODj&PEYFIKK{nx<#2j@*qxsC2fN;M zo%Y-|z6JsJeoxzT#qy>2=cNWPAI$PPb;qsG){b+x{aJT@WbXqz4PU9&>#*Kz$at$?%hkC&qeYShq8MppKE4e-?BY^gF^XS?My% zqu1=ZukVa+&BI6FeeH(B!sc|kjh>6!{CsOa%N6{6GU6xuV+^>+q0o^mDy0GI#B`7P z(U;RdzR!6-99}1+Bsv;_UYQnm=HO-US3%6ruRu{-4IYcMyPf;gRcc0+P44r9lXM}+ z#5_SzwFD{o$@+Q$D3~3A2Kgnx4M2Jkjwr(&{MGa z>x-iFb9-=RM4IQ}~dh=IoUJ}Xn-X8ZoS zJk{+nn*O-m>hanoj#HJ-@dk7}cB<=!s>-$d5}AY!AMD!;C&H<&0%I7(m?5b%rmf3I zv~cqWC;Yb69$XnEezONlfYU_!w*|o?(o%Gv8#@pezSW(IJ(vztFi+r(nML^CCWuGi zzPM`>aO&a@eti`9=$d0CfNo9FzCf1RE**$|g$~8piX64ug}h<8p}(g==p{3AGup=wR1dqpScp$0F@Esw~&OWmgMDq#pgz~G8~ z;l#SE^rq9}tFseb2mnVw>o?@<@!s`z{8I#1bkg%H@6YP7wE{@}2X&IvAJ=Ba9Gc9W zOhgcqzkrCtUD}DE_B=oioM#uu7tZA;r(sZsd}hFb@&<|_`gW356jwBzRSrr>l)or7 z*0d$W{Drt5LqJVt*B zyd&VQ1pJLe7=l9u=eHP$e=BUsG3P8E|F4TQBG3cR#QykurpAu*$rWj^h*zRr4 z!e1m$n(N=pY;j2gyrtkTvhQp@KiJ*l8*mID$k=LF_lF_<>1YYC)LGH4@`k*o8Rvyr z^dve)dh9`7h9op~JcE4p)RKIni|-f}2%cfdAO>nVKv^X)>HC5sS9cDZfyI7w@mX?FGMr`C5$F{DI%W zJ@MBP0M26t*SFNZx|%x{($yd+`*sptf9g3D5BBff->wCz4D_182K@z#Gy4~%u`A2NL?!eVvV3$%xB#9O{Z+=!tFc@-#a6@)vG%<8KTas@)e$f7hr zKcG<)Ha1dyL4Zyv)j|-nV)5nue(aK<4u{GzCT5<__FQ}@r1r*P|8Ix13xT>{`+7l4 z^yuxd{S+e=KP(7p<=#C;x~oc;O*9WNt0|!}^|`|XQqKg`(U{}r6s1^+jjh>ZN$ISB z#+F39>EBq*vN5_a8nCPTM6Z?q`9>)a?%V?#XThu;oxmu+YGF!zYZHki*&?HLnTr}u zEVL%H)>s`ukWKnp1^NT^aBQQKjPx^s6u_<%H!&@R_v%D;s;n_=$!!AUFv%Z4)d^|O z{`eOn|peQSto&H!y$Md7WI3&=lT@DN($fsDM^G>Wg*w*A-Q^toBmHWTRt}!h`jd3Mb z-C4c`@02RqLJ4)m1z0%&Le*EqpwU2z%yx-A8PP`!mEBb&@R@68@PcSgQs$$7`LY1H z`xGXl=rev;ZGj#1OLxNr4{8GJW>KCVq%JPBlHfeb7Gvzjm(T9j=j;e0>Jkw>=vN+L$03p#ooN%pDdlsK3<3A z1q)nvJYKMV@DaI%;y3U~?#V)8Z}ye{XiQ;$w5t5k<2T6tnlrpJeIw3)Eve&9a5}j3 znkXwbZHvglC4IMODttOTat+DB&n@h<9T+-NSyW5vf}U`@kE*PixOw@@+@WvMGbu9pJ-w zTqP%(l$2ew0v}?t+{MM=I=Z)jYHi57TvM2moF7C1@Gpw9_ zfuCp<>L{N<5~l2tlXn_%mvUtsU@u21>r5cJLbXo#0{k6c8DdQXd1v?v=Tf;{r;eylz0bnK)Z-1L@_g+HWnx!^>wh%aWXHhtL5 zvOJ-Yi~3@U$B&W$XxK-y0!Kd?Pa?A@I z%G(QIybaGD!AA@f;}FKaxP+8T)uDptf3!VvvAL4Cb-9c1ss649B1&x;u}(SOpH)c7 zA&cK^4%~&{eT)m@S0G9``W5G6+$dZFh^W4k$PT5@f}RSqXZb2WHG&zF=3)RS_9xtv zqUMZF%|8J2nkgC0c&@NSn!lNL!OIdwRUwE8aZm1@)*^*r6O&ThH~Y`tw_({I*I=%l zQ984sYJ`6DJm)&Dl`Q2KJn51xLt1HB&Hr zQrQZ57G0{*Ut46~5@+_%OKwQRW{T9)TR1lB<=fWCqCriYiVgBNO!A!rt1RX4 zaJ=VP8m_f5J7Q6*l-)plt5CwOk4XPz2`D1m(-KyrIDVwmF?Q&?^gowq0=^cy7O*6< zc`+IP5t8jkk~Qi?dXsj;!7ROoSb(E`4|L9~rQ^yoktm+nqVvdx9xvV9=`Ld)d0IpB zO|@-aOr8vNv_=#8dg`l57x(I&Ng#E2Elx$3OkZvLdz1|M)W`CE6F1-KXojUNVSg4g zlOUuc^7jXjfnL7WUGKV^dhX(^l`ZlYqV-Fj5Fz*lgm7$U^l+#`fB+!|2oNCr#{Y!> z{thAXpXUO_+T~>9f6o6m{Ph^gvj3!O@~ZJ$MJ$uJ-rz;YCppAjHQ!1c@2+D9-@$Qr z+M5pe|Cj&!Px$vU3%G~__t9fpwr#ajr&hIn?(Eg`&wzu4cCr&lqqe|uy4CM_3_*UCnVrD z24|D%%;O`GL`uogT9!UFMyqHUH$C+_wwnNFbaCCNW9RB+bn#uPnL$Ya`uo6Py!|eN zB%;tC`~fFzT!&sgJ`S26=$TV=8eIx?t9KDUv-L2L)Q}~XoRYjh^4*&)OOBk8*x`t) zmGjCi)1^pftg4a3WG3v|3N0*u`>N#<6<)t#iZDr_NUw@qy=dL4jk^bMO&;FRJe{7s zYv_IAzA)Iy>RqTor()%9*_DVIBC2*^k8IYnMvD?1nyVcGuTdG&NNuJ19d%(%(8WrwgcQUHLeqi>{>YW-0$Ub_D$Zz6kx;m zicryW)KEhJLFAs}Fp>os=g`UQ*UMp&2b?Bt>XVe} zcuum_bMIcA+O$Q7KBsBho^<3`r#f1B<}i*;XY$Re;#8~af@4nu9+NBx7bY)Vvf^WjM!$9SWX$Ry_iG#Qg(^tW^G2Aw}+7-KjuU9{))jIoyD0w*jZX{nbY zjm1WDlALLCemis{xthu^C#*10bZa*7n~wGM!%EmZ(ZqAg_?`PGWQgLui*=U_G_<>T zvThkV4fAc{BnI&Ut{sC(=#T5cz9&LDs=8dVq3hoI*B)=Z@v09cR!!W^J@$=jxen#t z9XpsLuNr^g&C4M)?X8#@P|r}DLx{O0|A3I^+X(=00Q#-d2KFL}ps6zgYm7T%d8oBj z-b+`J&|y^~nKeh)wK(&wECu?Fp+$?iNf_CpG@iC^cEw$gFvhxpKaL+dp^aF>{xkNwca6IA+=v5@K(Rdhpd{ zFjwzbYYiGdnKDQ1(Xn<#8Y+P9ox5_=c1~3q_BZy2u27G}V!sp#(waJwCbQRw)!oE$ z<*qU7DZU$NX&A2*ErL2!Yx?rw4zg|xMJwjp&1LE)m=9STOg*vJo)ZvGi#_b+;V}Dt z=svLnX&Fq125;H6Sy32ixP`f#sHHU(mPlijG+Ocq>{7BES63nJ>B%O)Ba~kwug%rP<;t-*2dwEmZ9bB#`-}0t# z?)D(dQg59;E@0k)h62&0L~qV^-<|>LDseJoO+49jGTYFU>2xYE`dGXUX_tJ_CQs8O zO8ea!GKre2G~J(z?T}i1DV$@?>NwY<2YZ~eY%9!eN`vLzd625u8N$pzICMa9zYD>o zKy^}R?+k6MqnC8$jNqpY;$w-OvYDfaXcfjYVT8QyWKsL$vp35gHhJu*_u0~}Muw&< z|0!yK)sZu;`jit3{_d*H?>4Addr2=Bn7lYP9H`&p+qY`D9D_8UHwiVj++TU&2<8jr z#)a>8*`T{RJWUgObx>`Qlc8&g$l^e5k#YiXzYx|&ipf%?K$Hku4QW$5UUU9opXnug z%>|`~t~d2?sN+<6Tg%gIhTL51D#@PTGGpOD=vN+|F}-$!RY{{`UYf319wL>)JToJ> zv#D*E+Jv61BzT7P)P);}C4l9=mcL4I+O%cMiY<&U=Gs^3&>=L9SGUhD4r_Rsau}_~ zPD!HDk;=Zfli`vPs1r$sAN< zHj*u3Hc%txG7koI-XS;)wN<5M+pJxq#Yu0QowL4sTseezgiVy{oX9b1zFY~ZK3>SH z3leq`wQj{xf3IwRft(D=Z$8iM1Wt`@1hG&{YH+^x1~#AuQUbtVCW8kaoh|w9q6os zv*$HFj^@7%^%h3vBwa?w5q|f3(^uH7Y?6sA(K?PUimDhu>l7RclBWdD+qiJa3c+~v zP&-;i}TbO1-k-hf|&GEwB+q2L?$xAO#+e_=Wud!h1`p&{Hj6fj*{S+RJ@{a~CQ%`U+YvNi4 z+qZ(|aa|ki#N>$JnPBpUKNn-!)dR)c8ff5lH&Nu02|U(RVd3C0!fY;xy3?&f$%m$N zl~slrRDg1XIRaWX1D_&2030>!u@C>UjM6b}5|@z~^eI>XipG-n-`MY+7Ay-o3;!IP zLOfjE{PyLJ0}lQ>{Nm0htUQXh6ofZ;H}Xl&H|JPo z{oj_fxXOE0@N4#HEo7mxGhhpI_%7N7mz)LI8%L21r_iZ5fINVYQ|JQ#rDoi@Gsg>f z=qO7M+KLBC_2lXCgfftD93UVFqmw1#D@E!Fb4Aplf_TU`qb7N<E{uK+Zwv{yySaN=aV>X>BWVoWWq++4XXRv<1uAQ9xF%r{3!pU`Smjq`C zip5v6#(Bd8c#Be1q_TI(KQn}`@=GiB!Ug%$NKnw2(Vmqelirgo;4ND^TAy>pT2&!= zt5|2Xhf*)Li-`J~>N`fYncf5bfnu`-CuLXk}lY+ThXkR40E zpugG@5C&fD$=~WZm6Db{8TD`cm!L|B;9Rz6%qNTTmosHeH*(8eI9dhkpv!^xwre1K z``bbbRdRIpGX|u~$-4FXG|>X1DOEg&d{yzZk8^Zthe}>UbtfCbj=$Tdj{z?3pQRYn zGB(3&O#P_KOT@AUGFbxT5&>Y*hLvEXlG$noG}sWHG2hwhIel-Fo5F=sVvh;k1pW1Z zdV#|N8!`@Ey^c~Gdop&d^lE|B!F~#??f_bipQXNnLL2eiLPWn%z6j!BNM&=x@Ud|x17Tz*}>p?ld$-pBGV)5pFx;Jql z?elv9O@W^#hVGaP)Ym9mUJN+SR{Upd#$g_LN1L=W4AesD#gTY4uP6seB7ltW>iZfu zJRJd>qqfeSQ6F9M+1uNs_|lGBhX!PjJ!sc%QuUIk(H(ab>6R}-9jncAn1QSmlbAk- zShX$S0aLXc3D{FV59w~;*;l0IunBx1YKJr((~3Fzbq(ud4{7O%;379Ec!}F)aLK!!Fo)XeeR|hK zJwuZ9RHQ=-q8?`!E~9!ZoI3GV8I97jB{zxQmUBsUJjnkI2TS6{U%PLN{skM?SLm?;?{{&?J`40>Ubt01F|XDX;-N> z)*nU-Nmgce1dr%PC!aZ9|FCP}mHWDI;>C{u6{w`wOn!}2Q9?X}93luJ%uGS1)wNxS zI?P|ma_xKHsEV7GT)NBkF-&sl(L{S_u0>bRJIAbX?>cJLu%D?U#7{Yi_2?Z;FYBl| z4Q`w`9agumi?o~(42~jTsT5BR;yw-a6l2>%hqE9}S@{83`onkN;Hz|eSQ4^)x9C(u zIE?Ea(qurBS9HSRxQJ#(wReJ`?bn8xa!lEY&s+h3a?Vr-DMh5Uq$Z7{KVMbuJLlyrKxAfSL&CIho|-_Oi6IGor7Htaj}7tl;boW(Zc0XD+b4lFDA}c}Dqmyh#Pjk&3sOpEr;?ERL<0iOF9M774!dyM>dVLsP0JJM zKaB3Cv1RF!uEvoeH(1c?!lHQf8eDV}i zsns6#)#~sXL^?<@ zSOW3$*8n0pu;~{4(NjV2&!4OUlp-;Qi3@hBe$MsF;+ERmZ);zUa)pk+xrH00**4?T zt~kpPO{Z05;Z@;PXxJt0R)5-3q=$D0AJHd5f;8`E3+-J~w}&jV$K~jF+VV!7dglOx z@kSFi4_bP#UA~3=5$p)Cduc}Z-BZR>_UgG*pDpB8HT(Ft?Y;QFum_@RT-VZrMg_D{u4kJyN)0PbKC9(P zU{LFg_!*&`;yrS99md5WdVL`LP1>?O0R?8H#bBTqhdfV%O)6Cq+b2xTVmSQVF2hCM zN>Wif^BiI7wtq~CsuEltOYykq)aeUm>g|mc$5AVfA9-%&O1DpHZ(^&>2=&`WE}`j%oUxXe1^cJ+s&e}>mO`wK zRMkcaf(i?EutO5;SeK@-3`pR%41w)axc`*Nk!IVygl+3pZtAsBz+xw|x-DsNXoHep zfTb;4bmhUmtQt@9Jc;Kjb6zzzEe}6r5non9t!uVguyqin#XQA?CX)55l|}qj60O{c zV)lxFZ*$<^xk7t+R*IBgH8r0{^#-Ka5n4va!wg4kkGJQ_1n&vOx*q9fz^mAiV2c|e z9IbJ6>{+$OrfS0iPmX-K^srsfshx`2X>4)a4T>p$wsl#iMyV;fX4$;#VW)h3>(-?{ zZ#AzxJSbspWGmY))_>|4cCT3t%I}eeW||Zql=* zF(%xkeSFo)t4_6@ZElX^k}Iwew%kMm|A#2mF&R;_WG(ZArPjNi*09Seteasvi(Bwu z_R`&ih?4d=p8vk(9!>I;sL`4`mVXw^Vd?6vWV_{pYQ3C6bB%oG!akMa=o3>^gCi%f zppI0uS8k$foh%ZC-IZx@V3%Ia%%^1BHddXe?6?33;(NVk0d?p2Pf|&wCp$KO9VBH2%WzhU(QH?`&^5Tf8nIq*jxTc-p;d zc~M}p!>gvFC9AH6b4^Yat70Lr1=pY(YEDNpKeix?Mp|aty@|*<@IbA~CX9nyM3Qe6dNBB>J_Ql%OLT#XQkNMUUKJcv{nc@QwmG#(R% zFL@k2kYBdOwAe1t0p022a46@))yKp`)3K3QhqIHqYK}U)PB!|{Q0Sp+dz)TJR4J9^ znWn7ia`m77(+r(!=gWuo%+8nwepZ8!T6-2UiidZI3 zFO959<6a-0*q83cb(YI4<<&>rMMvPJ0`vxJo9qv$eEf5Z3O#Cz>$gF3*TcwSmehr4 zWag%oz)5x3?(@16KMStfz@3#SJwlbAfFSOidUm zqCGcx`)*|FfF*jTQdrD8OT}^6nCr$@sd5-I>C|(@)r<34&^e3L_QU~*7aS*|$`B1A z`PC1$UGWMi77=L~QLz7ornTR*VryM`%I7SVQh#3PDbVK!Lq0R904iuaSH~9o;`E7& z#Gc`nVlQM-BxMCJI!dk7nGx-xYk>P`H`%0O%OLA+P@P2(KAEESr>NRy1p6E?9(9U0 zHdEa80b6;uGl;fz<$G-D_}CwPCi3Fjs*W2AWB-2SYwLKmlv9Uh*I%cdR%YHi*63Q& z5Ww?0Zc)z2x0xJxa)1DUMeK z+kg{WJy{tg$XcbH8CR1!b@FiNtp-0utPAwKBWQAd_P>;XO~KdgSSDC>*vd3sZEP?y z&w8;iX=yGBN%Y@(IT0rzu!uckPRy%eg~o1U#l$?x&|i&}YEl%D-R}lsw-)beR^cwX zw~34uw6)9K(Aj1(?K=<`*48(FMp|eVwpmS{+G6(Noy^N4>DdrmhQ9BDH^g6EXx)+7VUa+qh?1jD+afB?==o!sbHtN805 z;pu9puOg2bE2GE0rD)C5(AG`jm{nh9JAJ8zH+&Pp%`zBNUZ@htb-J`1Iw3;w3#H#u z*vRHp#s*!b$h8h-L$xwgvEx{!Io=7ICUUjn{KrLWnIvs?iFxW;!FAZ!SdTkiXfZsw z?0wZ*?5XZ{DlWxc*Y)i}`q^5!qNQ!C9#{0e6^>|}TH2p zroZXSkq+i!tpS6woLdcm<@x??K%*Op%aS6c0}c9W(V#^&cx6zCHKm+oHDFnFxiX^{ zbLW0t^S#}Or{dxx#Uuo5Uh^qxbT`xNOt%+Z9TC3 z#Oe8~-ivYiIi<_y0P!wn8RfX174&QijP|cSby2}q$lx0%6-1KJE>o6LPvSKYoN>Ex zLpFG=IcSM&?e*+Pjm?THwdPK&=B(dZrGWyl&ze+C1du&L#@io0jHu~(6SSr6Ru!6w zDjg24Q-%D+;ELR|n)92)@$7lgmP_v%ZTzi??ZJBvSn9UrO|nY&kj#jSyR$-eub^B9Hg_i;eVOi57G|gI zA^Y)DfBToi0wyS*h9#_g_qCdnkQno;l-~K7nMtPx3GjT)thtI)r^`QoTzhAlJ~UH+ zC7bpw4(6J?T7X=f8K>;0bz-xY38P|BBJXldudH)}!&@DiJ5^sKzaDd$FNtAi3jfmR zs0s4--MZ=?51O_bYU_D8pdDgm))wfxp|*I-U5=0o^1#*P7=nv{sb|MH^&e7{oy?)L zw~RT1!Vu+G8Ny;w=)B90=W%Q8moYh_vP=wd>kc{%h|=c<@(YUBXv| zp|;_cTAt&m#j`VizAM%v+p5ONPLZnGq|%cftl-izBf&&HpI)P?DS}fclZHna414D3 zV+a{(b)spOdKuIy6jG|jDA(+7fme@-u%dNes!sLky$MEU(r?lf5FfToLs9vJ78`{# zST4%#-JdIQle;U{DMxFM(5POP7HWeck5EaEEdO#iQDZB5fz;$rXSZO*iitExZVwE| zm865uIC_b7q#btT|1b8=sj-qSSi`Yx+qRP(+qP}n)`Sz=cD{*iO>Enl*vURQ_va^^ z>YKjp)z!5Mz1~Mi25-{1qMRMv(x?O@LxggszHqi@&0Da zke`KV+e@WF7Y4bjLVG7+4kv+{kHg!O=hcLwlb19G@|%37b{aEY~>8)H8X6r zbv4jEQ4GEvhJQu7CSPQGm2Y?hqsvu5grBYy2%eRo6F5D>=dE_LkJ|axksJ=Of~#CqVa_+)Bf>E7n$cX$ zlF{u`ju*dAKea6&TV`C?J#wmP2#$1uns;ioIHcN*!$cALRcYGo+Ft9q!kq9WmI9w< zs?U7CT6X@hx`up{9WUxq(LD>el`MUHY3hIqs&2xwHDkDeG^MgjlFSK6iIs(P2y?tv zceZ;hXLrwXzYm#IKxv(0vHPj_O6dm_j!pJ%*;J!)3o$`eII#1>%>9!nc!ybYz@}d5 zHikNTB~%*Im^%pY>X@%M@lWg{uG|kZ9chdVMBpRwb!5(woQ6<}y+lH!jcvuWL0$up z>Ud1Djq=~e>329J>er~v$U*OQGd5pZtZ&A=+3pfH7^9rE7E7+y7Qw)|8Fh912}5Or zX*3E0cmCLRZ0TZXU5?~NJ07~7b48|i!>&b$isZ7I!Yp;VIJ_>lmY^{+Yj?p%ju3$R zS7U3>q@>l#&t%=iIO-WQtKXKqsCGeE#C@!ODfT0@Mb}ibQc`hxEs=BUfhj? zHMd6zB3{A>*Os8arrO?4C%Fq-!ORat;SUCfm_3RZ5`;Fv7h?n5g0@rRojQN$#t= z$W)yc)48bP*tm;fZ41;6ZLuAxLDha1gT=|GlBe@<+@WQRrvG+nO3uR#gF~Lm%$%Qo^=C%HgJ zU6-D}61oO;6ZQm5$oNLPBzeD==y2a)Gr^Zx5j4!`PB6F)`UDSI!skTT%XApY>I`*r z(l^*_TouLa4BL}L&HPc_2r|V)6J!^CGG8Mtx`u4I^3#|w=}qUQ2OB{O1~^bpATTHl z*Y}K>tiBdZ$Ur2Iaym4X&;(vK3>~-68LYu(uK&Z*wYN@VP>E(ik9RiZ3L^&e*tV zz-Ax*hu3bp1y)AAfyH+c5`Do$J zxV|I#zs#ED{*|rw^0vvr922s16dpds2gLxNd|T)__Svtz?H<|B=vGVr6M2tfyS(GBR#__F@^lX#o@A;+PN;6G3;L zBx}eP#_i1H#QACsfeWotpSMP*H~3a7cmp~5_iWN5$xETxUp?pU{1cX@Lc0Zbe0(c7 z%OZmasn}%y{g-4r?q}NeXTrX@LT#eycxzzY)&S=XG*z@;-a8=)wB(nD%Pw47qg9Xi zvS!w9u_SYXYc;#Ubpr>71``dKBo=q(fhadNRA`mwbZ?1sE0K*EErh&t3FKV_6<_9a zZAGTjZ%sirCnh!=UOKLA6^~HUuy*2lr0P}{LA8B@4ncRTv)6@8GL|kgkMXpJ8$~)3 z+gWH`UEdOomB)=P2`@4nEZNJm-9>f&3#zE)H72L{$}{=>#5sl%M_j%YN4ae|hh@AH zt6wq%7m6W)OOa;P@g@jpb*@VSt0HbAn1eMdg&{NH{`%(K_}V6No5;Bx9cUaNHy8c* z%Qbnn?uLjE82_G&4w3xCTF0<(#LHnN@XpS-<<=1+!RItJSp8Y7X&wT-^qRocstQ5N z{;=vpP{Tvd7|g~?m2KD4dwfC?psB~|BW`F}N;v;&l00@sy-;Hkp~;N$e#U+itkQwXJQr<-FNxDk!~gw zh6W9Cj$H``BDLI_t?*wEjs@Ha0XX-b9%NOkCCEZ%C-*gT1lnYfa1MX_`j8_e_~p5t zieQ?_qSUBB_VK#BB%#L!S48%&EKpEejo@ zj?-mDK{tm+H54S2U(|*RKt!#9#|x9g<6`KiMK4}}U)(8LXF%9kkq3!jMKKAX;XmR8 zI~QVNU)37RfH(Ro&p5nWZoy&kbD1XE|JsMypc+`ZNYTBMJ{a+sm4v~*8x}&G5Ba+8 z)^Eg)3J_4gKXz<05Xpk~V6tYk*$z35KX&8HJ^na^3?t=0h&1Q)tX>UMb6(9HEiT&B zgfD@kF_21=+@gE|p<2Mgk)$nB>*yhLZc>+t5M7L*cJ@dxz!p7X)OvL_me3xrfK*~1CUbmwS*Y2h z_Mc-ZKFQLw>4Wg<$`?hHJvg2qKgxJo#2YW!@8G&=n$wB|bY{%|gNkcphhQ<*12>OZ zWzoaCafQ0yyK`^SH46yQ;TK=D!-IS~n)+K05Xry*43i-YkT7(Y>2ZL5qEC9#yXi1N zj?b^1@s>$jj#U~z`*ld%=p{|nF=;w97DC-C2}d?cT@WceIMQ$vs85`CfVe5I&pFgQ z=qQ=fOAGvZP~O^}l{zyw@J)5o9AjX8vVo2lu=nJcy%AwbH7fEkCyRFtqMHW8b@*)7 z&?Jz@GzsoiP)WU}P%z~>iRD#k3^v;E*XgGb>fE$1f_umqH(ydk#&Hv{J$=aBwbg`& za|oDc;8*?6Q6^Vw=0LXo*@0N9d|TMO?n{!j>pb_7GB_uZv}y(5moakwKK zGq}{EIpydeCP{^5?yR3*)ta%T)F!%pa3&Q>9Iqp`M+XgquieJzAPeELg@C<$5wyYu z=aq3lgr4q#{Z1i{uK8mLVT=Mwa;hA-@lU!i2*Yy1>A@u*i`Y2E z$C^Kb6+D^U`top4i+f%6^UuNbpm36o)(Ju1QWOy>fvZO5e?^S>ZHJDL1LEbq4J9Qbq!yChm(M zEtt&k-y+n9sf?lZ>Bh6J&Bxa<=?W3_AJz9Zo2sH56N3Lsl(WH6Hi3YlAT$rQH4(=Q z?k#~7kabt)XP^hgo!4gbuu;J%v81tF!w!_PwfgIUj7l@1+!XXf(c3or?2--BwB}I@ z0uPMBf^8&Ru}NQE*Ec-MR_r#p<_t_`&atk;??=j1ZolHP3)R}PIn*jst3+~l-PL(j z6+qV$#Jn;(8QG3ru{ns-uYF0*BY$-?zR_A@Z&ZOL$45l)shjSWciEeTaVWl0xWUPz zlDA!K>~aQuwww5-RBi$f7KB~WT+0T#ZVpw92W>$#zHqw2rm3Os)R_47X+|i(Yhc}F zqb-S!zp3O*3#(Nr!~KWupj8=mHp5Iiy&F8+JQ{R!Ei$-=98P3TmXwE^pUD>jXTY9+ zJf*5V_y`yb-xv%hOi7w6V;6v9{D_6#7OqV5i#$V~6%RAj@y<4X$__HNaczFsj%cb@ zS?ns?SQ{lQQu@eZKfbKSGsHDw`i~ChNTk>Vc{8KhnWS_F3@LG<^?oCLn7#Xn#}v-B zO5D;jdrgO!y`?^-TFD3{&te7t33%8h;z8| zspW0j&=`;<(S0kfNV!W8O{d(eUY_HJ=&2IxNO9yIQ~OwBJtQ?a9)>GWxj4+%^Tk0s zi?Ed5@D<}Gh(pE)HtyW|L>izy_jHko0HFuUIgX|jVvmifis|TNK%<=eJpHFAwms;v z1DFj>A`|NQJ52}C;m+-W3nb4?Z}O%l#Ehu-2oxq9_j*-}(7MMg z)saHESy75Xr6h@V%dXJ%!uupH$$6o9R>QpoQ8c$X~dcJ{fM2B>m<@G1y$NYxkNXrED{V+ug2QvvCdMiXItuS6eT*s`673<-h|R&_oHDd)Fd206GL1? zi2N)ll}FAU5NrxRBy)^2`%u{V&Bt4{>+*X7kCi2LfB7)b1=ck+m#KUp4?w66Cz>Qn z6$ubY^X}y4Yz4dh(V3PrTls50Yl-9OMeZ91atT|EPi3`INnPYRSDu-8W{G@pufKlB z0o7 zBXfslnJ$*%EoF4D!GV#sC~DCz0?{r;R72=I|7>l}Z_~WI{;QlDr`bUCrwkV5pSAp^ z?11p)5(Ye!q+K(}TB|m6Z`$$nq#f4rB3?dYh1MLgnMf2?eMTK016B?N8-Z zaIilQkXrrJWD^K3RU>(C=QaqqN`yfRK zrcZN7lcsmPQA9SL6wyNyupl@I_|UQO&+TFzOb!{5g6sOj!c9vs!hTV`P%9m!I!gxP z8SDTq+lStpdY&GOdC#CZ)EZeDJ)Ki$1~2Pf4(R& zz$H-o{X6>2-`ke5B#p%PWd`a1LrNYVtbA=YwWS~gO+LwzfPyHl;dI(n$;=8@6$Cu1$G~os6YoHxy&Hw{#ISu==XrYY+^SW ziKPZxF(0O59;-4S(0YMsqj0(pSek&fR__j#CvH(CNne>sHdncqlR)MmQg#F5$R$Y? zCr5o^c;|E&q1Nzq2U#H}+&5$f4L6=oL3=>e2s-lsH}@{>ZwuPB6>@Vep4R44QozZT&BzJHL*(S<7R(>6b(> zgj~2q_{`%I@wuL)vM*SB_yWBZbD>6|`68>ApBQ3!`|Mhp7*U6D!&RYReYpq^wo@{R z(ck_{$4J)7|Hc{N2V|JqSi!m_%HvlNlh#$a(*&t}!r=An#jjxuQL0p$PF9Q2*PuW` zV>tip{=q$#3*_7)>xq)0GAqBcF-H;Zl@8Xl9_$!Tde$yCfiHFs!eF7<9myr{2|x5L zD>G=7;Ty)dx@lg;HXhAat%V=7kKUKU-4SfMu}E*T z2BoBmBz6+s3*AF~niKbhxjXpDK2&}+LjCfxic&aYb5=+GxPa>WAoadMkRGyt#-oDICw+WiIyju>qN`#$~l7oXzrzb+5}DRQepK=y>7oqC?{ z2ktzfp!f42ne$b^hde;&?Qz)&R>|g@z3g>2$mQ!3_mHEl>x-H2NDub&ZVdVBG_SZI zNQnLJ?>;i{wFbShZ_(+Dq`_4t;pt7;sQFckn5ymd@FfU18%6KKr8@~&H2eB|`;fwu zj*`X;x+K~4k3o95V*#$yo`C>xzOD#~Q%}RTi12oglJj4f83a`R+x_?F4ut`Ie^u)3 zjh%Nwfetu8O9DzjLJAy$bnjD zBVs@_XjK8^zkf%7Aa)P-s%&8)z{KM^@Y9KGx~4&P9{H)8bMq)TpM^F|@gloL3|K>rev%g_X1spe zG=llQ851JT`YTbL8jfsfepRC0y_@|MG~B()3{;@L+qc^lN+R4lv3UCTxxE{PKDmPU$B=vEvwVM}`AWYp3`_lC<0Ffs8V71R*GYQDvN!<5scolTq-MdiA%<2syE!jeFxBva!JU4z5CSgP}WYB zh=VLCwjYM_@*9^DjbLtL&J)Lk=((I{^4>9Wzoe0F5qyZ0x)x=E0^g4_*b1S)ic;;3 z3hwS=cBA+3sXs-(XJ^}}REeBV-*jH56k>{Ch%4KH*H|;!?cbRDM$X3(6U3s=Q@g6y zZ-+I|{=(LC3F11$-M~9Y6Q!W<_eZa*uQ&OI1@M=YaB%FF+s&s5x6k%uV2qmlA`p~M zZTQ(4gShZ<$kRCH%69_OQM``|sX$S9x?`w6{P__Z7|91X3%XacwGj9#DN9(Zk>}(tahKm!%_f%Z@~dC6%>Zgad9fHe#6**GV__s3LJ&+ zz3&N(=HIWT0!wLbIM2HUpN>(8-JfHM633`tv9T2&rHTiY09}h7Y7hKx^00j-*AGnv ziDGzPV@}*`H^2Zv|9cl%wG=fLZLl9B5|>zQdlu`-J@v?Q+Dhn?z^ zkC_U!0D%H!msdhIx(M)tVKTK8dM9n)()rJOLSLMB?N<+p@}|)3>-`G5`2j=!+E9{9 z_mn2Z{$x{dBDDCAeBn36AIIN>BTj^5F`+5EdJmer06@qwcg>*9kbssJfP5F6#k0+@ z0^)Qu@o(yp#^I3+`wyxlseyg)52xn7uZ(4uK4?#=Fm=bVY z)Yuwdtmp{cCGM{G#84&;3Ob_~wXvb5zN4F(OhQ;C@wmkjs9VMc?fAb57K)mvzUFim zmKskg7WXY-2q_o1-nIc$Ngn3W)D|ti!6*&~!r5>zNN)T?Rcuhn1qt~#dSs#R7l+FG zy6naXqld<`>cU`;L?07hD)_ro#@#`m)3z@68&hMc>Ukux#l7S8*pc6@E{p(QKf!8# zLU~bMHr!_17$)v*fnViCJ_eS{0#yQz&B3yW_ze1C-2)(sCNRE*UZ=?M=rX{wz#oW%y+%KQ6rME%*h+M30a zVjM|K&29Dwu!sy239zLp{HD$v!1#`=J+Sgll@t&NRrDl(s>+0F4wPF1Di`vPdu7z%%A$+y}T4@FX1RFywz3<9y42wCz0>M!jYv z0rlVj-(ODZcTQSpEo+GAQ^S2#n!mvgXODJY^StNP6K@_XtSBcP({?FljF*~iokaui z5>oq`X3tb;KmJYjzoss26)5IgGQoo9Bd~jz!y?L;Idwc+1+1*IFZ5B9oQK@zo6qQT zU4rk%-Nj%B>5Jv=VXF-QZ;zy2O=0#x6&yQqIt zQJN}rgc0d3z$kok+k9Purtk~uD#b)5UzBbs*%ejYe$RB$umBSkmU0}ZL0;4--tQS= zUJE(_Rb4%TaWDx%72g%#%qwW}zPbfSx6mW^OFU@EUi2>8avd*ys#eoimj?X$6QvlZY{(xqN8 zJ4e$8X117peG9wi4>Xle$5Oa&* zT|xHXY=Gu70oC@SGV!Dc@r2TN2dFw3AWzu)B+wLu8HDe@qcId{n0X!J9=Z6tlY0Jw zaVwT*CC__gFllN=?Xfd(`S;jQ3d$}!V2hHssyW(pO>dtsqNz^tSk-_4UUCd|h@0<9 zK1AfAx3F*Usi7A_%s0^(u)8aztHCEdz&Dc^5cr`*2NG$XDV~zBJA_p5c=6n_dc&XU zcTpexC-LC`3KzG*mr3ZM-QLz;*xf=RVsoPpAE9KIJI8K`uiVoExT zCfz+hCWF_!y$Uu?t}F!qbd%^rER?Eb--D@flPKRqTtyG(44d9P_6yns`RB2Jc`HFZ z({}EAwiP~yxN!qN3A%}bZv&&db{duPZ|*QPl+ZxFF!U-b??$)*F2th>;emw!OIUx= zDd_tcUgCgL?4zK@#;9w+<>L&Qlcv1nZ6V;;$@NczN5OLH_VINWU7<4ivIC{m`g1`bEKklmnX3b|5aJj`3K{ed)^MuX_QB zWg~)pq2-s*PgT6NU}A$kN;>3P9EI52$kfxS_21ZuxFVi$zdv_-j{;@Csn@cghH?r6 zM}TAU2iQmKj~TE2D5A%edIC|2pi#hv3Yb)(BQE%n=%|IyxUa*h`9X1)f13Bw6pk^o zMhid=mAAct?HceeLHirUpxA$`cdw7D{84KHhQ9OChsf#00Wtvcg10N=LSR1kcXptt zL}FCW31SQwz>T|{3~oN3ted|y2$kvBclNR32#{88$X zuaAetg1NF!rzM|4nwVfN zAZZHXmYF{&^0 zuV^&#>;C}FA6Ht;|NTi34M-kQ{}pq={?&)^$&GaI#MI8%xUzfj4gV12r+ec|K#~A_ zqA?ffEwJ6Fpbk2$Mq8Pmb+Y)al>LIi-q+g3+zuRmU)^rSf3pW1Yx4W^UVYUP%jYd) z^)41TjXb+&=5&3iBfdqPEP{bvuQWYXX>Au#cFjV2^EzDIqN%;Xq3+~QFERNHdTm*~ zyiy_)jd^<$N&*4rAYT6-YK6~L=h1Zd6vfAwI`klxY5c>B=JlvV5;A?|N2s zBz!cBOv?t2H#I{Di5@eMfv{rvSjy@yUxKwIh&8H2iP{ z_KIEgABgi42#?a3k5A5oS7$2R?VtP4WAby}2D`h&1wtD-ySl(*x?UlWfcN)nig6*= zPzVfG^<;fuH}Kkyl;um|=4~6+u)1!x8~A+H8iEyX~vF-Q76ynm?9nyMq+VOcydKgx(K|@(a4l>yvs4dZ_CY z*#g36a-K7L8(!re8~vWe|2I+A^}ohnhJTKRf(mFH<)YN7&5tK&my zVS$N>siDEi$*Ex>0m-ZL!}wAm4g68Qr}D*bkf1_xRBOEso)CuMcLb3P-2w zONFJ$<%y)oKb-Sxa?!ZiStL@4v=(ipfAsnN#T(@!(!wO2L^>;oTy1f0%w)e%dtnIi}+ zWLy6I-gl{5mq>eZ$lDG8Z;+HUdh+^@Yvs4q801FHLu#%%eLFVJf8V9aUeVL_Hv|S7 zz3ozxW0YhS7N&;>m>6j+ob2q}+-)q}-0bX}oUB~F<}lCoH6@4<4NzzFlT#DYa?!Bx z_aV^6rDbH~!vn$nK%w0)o{#d1CIYmaLxolhK47Eg#DgfKEFAAQ6m>rNPF9ZYS+6Mzi*mP-Y+sUHZ?(?YlNS|<$)fv zNasYBue&kaAq@+Y6`2~I9GDrKWhNo%9~+t&6-EA{Q$Y>Pubo9|OScgB!w+$TXjOUD-Mm{Pk=+AGIkZVR{wnIQ|NvD zjnU(kXPIYbmE*Tbr@fAzRD80g`tIUqK`*E8wk;*Ok7e4h${{hYa?>TIsY^dy6VZtp z>w`UfJalYqY+`&&qQ~j6p^<@|zbm5~3tQ@%@daVYk-0F~oiNeTw3X*LI>8#?SL^GU zxcwp2gJY2!5bb?^^?i8-1UL5nx>q#r z=$Q8vy0crOr!D5$%nzMdvq`r$?G)+=4gz35)Z}?5s>wbT!p}2MBqwS`*Xs0(?xgjI=_00&`>Q8-quvOZ{iI z)pTrX=w>BkL%<$zO$7LY-`V*Q=&ztIure~VE-EI0j$BlH#z}XLpg}NbWMErABI0d} z+y9lt^p5^Gznsh9lRAWVL;^Gw;_UcRadr0l=#O6=39G4evm#23KxRw1a2|HuwzqDn z;+4-`CZ%X-8?G*JvasDbn!GJ${J>H2>V7>fN1V@xJa;zd{y<>8;2j`Un4sW9<%JPJ z!;)gv{*E)U(9x0$a`Fn@M|9<75jE1o-8ZwT7Jue?pTVpeDJ3HH0VTwTD2u>0Pth^b zeuHxBD-ha#9hVM=zqWq|pktI$i2vNJWmZOe?RsU5ZOWkun8R8+NW<3L@Wh8L&}~Ff zWnf{SjQQci6*IgAQjeh`qu5BKBRg#!&fSh%>vi@;%S!_bzJk~}`#O=XfKS9c-Vovx z;^N^^o0oB6zm~J+d;k16Kx_DTA$8&m!haebGejTZV^-#t7FHCJkbow?(lR<`Mq1Eq zEP6)VcG12-|GrO`sNm2TDS1iQr&t1kP*XP93qGh(Dys6)NZ&bpGP?emQE4$qCRS1* zBq+GSh8E_3@6{>#BcvMKZ+Awx9^i{LALUwJAaP;H=mrud7d#^as&)i_&+A&OP{^oE zFwH7XlVNe+EdHAz3}}$t{mT&e+U(}<^6+!`7m^SiAG-jAL4d%%^0bHNwON3jYi(US zxc~|Yjm2c7%!0C`s;Ow_&q<_iKRxZZbo8wYiz+I31q1^;h+J^u%Ri*Og9CIlHC9)c zAK7KxY`t~i>(r3+=AT%I&It?3ghd6#N5>-z-4X_S}|&8ffn;-OK~zG4*?yMi~@Y(Ugq!Il#7$UA*;qOHFh~&Q56}hZO+js z90>LTqSo>v3S!_0gsi_&4!#hVCgKr6##Z=mFF2jKbeg^m6Eux=GPBO?XeOdzZ=KK1 zaB=W(&MGHkomrL94#6H^L?ppj;aEA@8!~gV>j%hhA+71AqJN^C8XEfE_w3A}Ffj)D z+l}!b@@0ZqD{~c+Quo&>PBtb|*jMlAsG+KA<$R<|uKm})h~oZyhO{2&Qh+@hH#ytv zuE^0H#()hz9$uiQM}Qx4A_O9F;Zi^N9LNK7Ezy!Lcvncmr?W?U+kZdMgYGYz&Mq>3 zRsn{`ZSXoa3Nk!OR z2wmeLpdchJDH9bO8^ljGcYO1>Xs)E@;A7(=;^^tCs(& z%#80Lk}{Pp#fzseqtNotYG;XRa{)0!w>a~(TS%+|Rhh%}5%E{Ng0$ky_+NSk+J<_k zYa+aYk5;emhwt5G$O>ZUeri%uN>VB+DlkBBRAEsGG*fg|OiVr=4+)woN^0?dQNfLW zq;Gymefq}zAVFiq(Ql-^)gr~7uChN2%z{E}YpaXv1AkZk?o4cR(}0C*D!Z*d*!rJ* zRs7m6X_+EkM%P|9y&mWbkc0Y5O!rfj7h3LOrRl5f&O`T9G(=RRTGU+@mrVHP*FpXF}i{=aKNyz?Im0Qz)V_tp`wXtos)y|>;oZ)tZj}Tp6}WK z(P!SJtql5L2hDUFk>x8$jys@5d(C5%6rn5>3>4$LV8B7tP^hcDLri>#wAl0rD@|iL#L%PPadCTMLs%v{f&d#56$y#J zQveMQiwISRGl2aTUuafrki7WEN)A&~)X)ym(a;abhk|jDo?o7x-Te>*imSVS(~LW} z4;<_tV`F8gfc5^{m1${Xn^)6H!a&_S2GhJYf&)Ep)<;n)DmqMNeVD4gytuTcnF>2Z z3}v#hp;ZAzN}>wM8U2g+o!pvBCOrz&aj>wUl+ckeG31ie)s;jt;bk<#ht}dwvOUMc z$;!mBo{V!|2ulr4h=KRVZi{YBiQFM)m$Spy%5Dd(#cb4PHT&t`vrSMJ@3DjtGM1E-1hS68 zVQ&KQCmba)I5S&ASyn|w@pn#gN;nEJj*2T>9C)fQ03C7FxKpxY*?22t08}Ix^z+%iPP#>Sgcj_4VxR@c??MWq`bB zKe#n2At4q5nehDP4EdtxHG4knK&*w=vQKEvm{OV^R_#iZWA! zj1;ug%-}tgd&s2Gw=mL`INBt=@66(Z;P(AbWMOz}NQNe?G7^mJ(6d$|MJD^GB%GiX z419cS2NuC?^wGKfU`=q+@*&93lwe^}ROKWjOPXouho`1ypeK2GAq3EGr#A;{#!gy( zZUz=Ifq|ej%B`M=3Uztpg@>qUs0SuRWIKje0f7KO-{bKSQC>LeURnmI5gsHd(#m?< zL~n=-dR%?4vtZ<-`7hI%atUflrr2NH_bS zNCKEk!*i@|a+QM3E_a9t(FscOiZU_^im`FN=a<&yHN`Z{4TUgRF#PIE93I43n|z%< z!CjVi)iq>{VEMr@=@^&$XJ6V%0XmM7qTw0I5adiyP^2Z%D$a^ygZoYp5U+iJhTfpA zZXTeor{~=vXs8(61?%A8r~T4v(r(6>6!jN4_|JqOkC0Go(WsZy7;T<~Z9e(1WcQzf zhk6w1xRRftJGQAwV;j@WQpqy{Y9dzH-|xLYz}?f`+4&)n@gjE<7#1HA@$TII)8xp`NlVL1Mg3PaIXUixXRtK4wXnhY zYUyw4|L759XJMi#Y3XQV@KNJshYh1W+NxeDyw$SRRqXopB~#rUIGK)%!(uu=h)6L+|scDBF!y5v9IXO%v`CpE=xWBf2# zZR1$gP+wUMO?>xu#SDQ?OhHZ3T~0wM9L4VgP|iZdL~zvUfA3lyLjQ-HWMkgFcmZ9J zzBBu)4O86PH@pnmUE%1xYh<2thd31#WyNVmdd7(bg~XeVtu!ngj9e9t0Fok| zV^CLMgyWGiC%ThJkS zG49hUC!6SFY2jkyy4^-DAS`l$@s0d!sZ1ZGeuK5>X9z}3hO1(uxm zidbm<7l4(gxyAN;Oic&+Q})5blSe}(JIy8{BfoHKSw(Krxg8j-T}nU9?GHI2VuWw% zc#mi)8k#ONx;3E~CQ?ieQM>+nW87n9GetJB|8Mtjf5?F`;5$x2R8dqONr*SG5gHjP?GydOn*5`2^N=bi<-CQT`kla_#X1^KG5~Eu8Z=R2uYnwVF{nENee(vm@rfoN$=&N4oU6>wvJOvcK|x~Zw&UvzcZrD9lRG&CJZmCOopHmhtYXl_oe4T~*obkfkr}M=4znmQAk>R+yO-{||fT5S>ZX zZsFLr&5oTfw#|-hvt!$~?WAMdb~?6gCpZ7#U+Yfq{MMvut*TM2bE?jJ-e>RqqF5Q+ zsvfW#>8cfOcXFn0i;IK5TM~2!LfY9>+s4>pd9z?AW9g&H0=e>CF}ce$=FVoLLq~pF zGk$UKGTVUIvT_+$m(U(PLDDN7$XQhTn{w~;*t#g+h)|c&S@M_3H#2=#U5!;dyDyi*5s!37NPvOdAN5>KL zKq$1$qB}_oxijGOltEe(CI`)45Q?+f3iP-ini_!~jg(u=piHq8f5Gss5 z0*sP{bpQKBE`K-QdWowJ`rq(z$qB{hWw8?TlZ3g~W=^j%mi89yK}CkPsmAM(OEM&T`nGf9;(JGuB-B7XIZz02em?7yaL z4)e2(iJni4{~iNbex03<&v*WN`zx=AfW5N0OXv0J#IJ}Qa>yF(!^6|Vv#yi9)N+|nP((nub$9H9jxv{BG{#$4h6zV2O#P6;1A+-BFTS&JTAu9FO{;di1Xn_WLBTU8~4sun` zD9blT#fgNep;imLCb!FtCTrrR!FKY6VY%1`dY(nWmtW_~sZMPj_RdcjK;}Ls5Rit-~;) zYk%kr%?O>4p=Q9iN7)kcJ~t$XW_|w>+hKbMmy(i=aaJVKiS*hh%3kK<`Im)xSuh*} z={qYF^D)tF3yX~jd3U}JYCb1Hp6{llw8xxt93huA%go~> zREDH7+wp-;0FIB3etLa)6`CGDz1F`7g(ytTuJpkF4*Pky4?l*%x{we8$20`){%Out zE(`B~_o^=CdwI7WifLz|D%1E978h4{qsUP5OZZUX()FBpF(`8;XQXoe^;Owot72Wt zB7$XrA4lSSz-W&!F$wRzKMC<~Oef+T8SP&9ub%*Gea8cP1oEtbGTTcg0$w^~3W_#A ze|cjsAukz`6IeY=8XXM+93-iNesAurOxZvM2zUff*3R_pKt>DjJO=6)qE*=m77F$yCe}xs-txKQvJdb4wHvjrZ6U^ zaDh($peRv4_c_c;xxkn^E$4siS=@oU=`bTOn`SC1q5ob+fgst=mYMPioONYkwP0m| z`=gx$%5R)xlB&HDEF!8Huv#(QKQMfAqlK`*UeYBbIUhlkBY#znN8bPJ2^R=^<4388 zvm254%%rR4NMs7sa7GM=XnYv? zBSy!=T|BdHaKdFJ^@NjxHRg%)8`~N{Mc#|^ppvoB4{Y;^r{#iUJwE9JwIk>zA={F9 z^9|f?v4n=pZ#YZJihW;H?UXHW?7M|nv9`CLRS!)LlbX79H@G^!l=alpF>OTR+OCK~0i z{c`r|e77iRIVom#wa{jZl(u%v>H)@FlakdIkgz;Q@c(gTIKEr0)dIs)Ll5;MlJ_SDPk*z`IB%Y?h?wsn}SNRS_w}q z@wvC$^?knnH1fERi9*`}WOarN@s2-v-A6lNB(~-xsuj&)|Ca@=J+8 z1YBpNd#yVpF!bH!^^qHdAXHAl_BoW_?EyqejhGso{3pRJLkWiu+l3dDm#zt&T=W%y zT~34s<9%dUFdD;dsxqX};m(dfhcWO?#@^Lvwfl1Pb_WT9fs9Q}Fdlo@Oa|JCffH=` z^3I$y^Aw$FZ+=o1R``2-F8dhFTIgdD)5kG;vEoh2i}fGWpRh13e~ZwJIq<2%YxOs; zPeth%#<1{Ngv=%a7jrR)yC+eiA@4pDeUp$91@8SNhh>t%)M^O9B~zE&ue@E91$*j$ zA_p#$zM{m(ip{a3HW#?o3^Daeb5By`XD8sv-uBK3g4`#Eu>6Gb9O71_s=x)&VMXdV zF(4WnSdOt#bU9>fo!;Ngd}Axq(@P`UGfRGm^Ae}BxwGtC%Q`0`Y%_mCUrk3^@PcA| zXX_N@Gu^P1iAmldl%kRz;1(w>4T|xj9aLZo*DTnEFks+5&GG8bDiW%&q;EL`Qp@7% zBa4h+1TCnM2`Eqw2EsGkX!xqC#nvf&KTCMgm|Z2kW79sC!=v?14zlV^1+iT|NxhfC z<<8C!{tn4rPW`7mU^0-`sfzwerYQPZ4jdW}0m5rNNK{|Q8sQJk#Qv^y z;ir()9y{JHyrDB1rEzq+x^*@%Z>c7x;t}R1Whdk)|4zalwcU8V1I_oVqT)S!_Vm&; zH5l150izw2GBzV?;hRD_wgQo4i7nki@E|efAk~PahS#Oco|7oEsvLu9h$pdu#{jET z_O*KciiyeO43wa=Ji$-h=Dhp5LC8*%R9IzZEG{bf#W61@yUIh>)!1H7#lm#g7Fpho zMhJ^eT(-Hn*+*&=&u9+|QXTj%y^~yL9K~2}^AV7q2)5;3~D% zH~l;Z#Q|pPs0--cj~p!%;AUfDf=?}b=-hZ{Rbar?!Peyh8GSr*w$pKN_3&`Dc;Ddo z*<0uOIQJI_GMHLxz5n&KlY|wx{r*%s$ZGuikLNX|cnHKhH?EWt=#&WnJ00s(fFNtT zBbLD$QxDME>fOkuX#B$HMuMix;w_t>x%hrNq42T^y`uaIj7J@MQxsJ-x!9T-^UL{t znvX%g_i3tns;QV$0%>_IF^Wpf$UzbHg?Y>9ju%Fz`UFpJ^}UoN5AqJ)UBO5>^}tvk zdG0t|CJc zJtHTkeLCmrX}ALY_A}ZL7ZmXlG9(h@v9Xxv2`>z|_fk@4#Z%vI_b@G`P;FJ1@l)b& z)`kLds1E2Oj0j66|$AyXekMO}}mN-`yF>0aXGpr1OaIG==p+_;ik1F`|c z=w-aZ7&u;Vm99C@!QA!p0F#8v+?=`2;XW{hkDHeom?I9=l@vOA5B@x>()_hK67p6C;7=EMcEa1IoBe` zrB2}=U%U}e{kGVVGSVT6u=Q~z;V_K|9~rdPj(WkYZjS5}Z$IUoFng9jg4)Z4o!#dC zWMx}iRf)fv$_Nkp;w){dr1(r99c)32t@p%qwVTC)R}v>QH=)ZF8>B2P83a$SuaU+b zzDR(gI>o{~i;TXlL6*tBv4d3Mk9sY4yDSRIaurTtTbu zzP=wxpgM)y`~2eu7WW7;d=W^AA9|vK7qEx2*Uz(aRmlJG#k{4Kfm0Oolomi#X6k(U z`CB;QDSjeN@^z081Ys&KVN46f2R@S$xKD6K8}21;!nE7?a?fep@2xO_6PKyK^sV&3 z;zaPBb$oi4x{Z9PIxvxD{kSDB6HZ0V7%eF&??wtPiMq`Ex5(n8^(2}(WLLPQM7gR? zPIhQnkxVBEN`m3X#iAP&cP&iAv$Ja~0rf2T_L`|K|gv1R^7-f0Gh zi%&_4JkzU#)5Bfk@>;TfshC@vZorgQxG@~0jXH0Wi?ypq-3OpNhR0-slP9{$$ZP5W zoxY){xh=b^*q;Y-IA{#S0#I)?pW9mgH%CeRYml(RuYmfs?So>INm= zu!)|>)t@9cqSqEVWpsjxk7+v8Y!T{ca8cdnL%ZrGOKkf=#zPMv2N3_7T~bNUg)k~6 zmLgCZNkK?;pgGFa)YeUVzzQWw<~G3d7aXE#v%LdL4$#t+71z>;0{5iBY!NCm#Ei_* zQ&JO4N(gp%)J<&&mbwQ>OI%o*aDbO#!uRV+vyCIv*9Vs>`8uE}L zPF6tCj=G&cAdHW|c^wvrG(Q|_E1&yfujn+sS;`sIi1!YV@=CasPMhp6phe7&PHk@D zZuNoyws0}xzIk!xDNsrXpbhE?0p(|uOtQ;UbbtwmabiL0^{w(1d-Af?;i0NEF?M~N zc={R}ip^a2oP7v@0lB%kz5PB77NEp$jDBifKGIVSxmP)x3KvF(`tz?KCW9_#Y53W*-F~T z#X+npw;YXkoU$t${ON5BgS0p?6DCD{o?EdEzIv_ls{w+b~-!W-=i0|x&d11)) zDJy9OWsmiwYbv?NxqX3my5_4ivB3p)PLkf{{L;$GrlxWl%2D2AK)a@PyV?yT;k>t> zb~_ACJr=7H{c0h{;0MIl7&+a*wfqiKIF*IPXq_Eq1lza>V4>7^UxDc_v*IqXwX>KL zdYVkQ*s`pxcZYb8fP%uDKsXXM?Mdv<#|4Odck1=)IQVvJcyCdk^eFacD30ICUc1&@ z?e2bg@xO5L{?kst*)5?I3+>*LC-JQ% zK=bf?e0Y0wx2Ry{ZhBy35x`Va!0r(n(ARVgRfcs!1;rohr%=pH+Ao@zdhl$V)0d;3 zsQrW&q_}pWVXbypnf(*CjjNoSUNJUNt_4Y9jG3aw@dq&`s`JdId^EyU*+>j8Hox&7 z#r|GN`-ALvLE=(F>o;z4Sd8@iEGbD>!T!?V-trI~2+H2(%3+LK{)Z=RPsoy%vlj^n zZP4cm;EkJosWU$MUJqH&OAfeQP2m0Rx}u+dWBc>-{{86e!~A`L=R_8b>`z9~%Z+3tC(`0CK1V zlkF)QD8B#dcJ=mYUg6ZK zSMR{)h1_yb{h`VAxoI?>Fch`_PB=L0%`KCnVBzOAdfc;3jjyIohBx=df=UYdWqzO6 zO0Twlql68X4twJpI>8UDNQepgLvzdvs7B;cu=Jbb-Lv$2?gzB2yja(l@WoTN4VgUt zn2_Cf+y^ssb%GSIL{yyp1j%Nub$D`V^)A6TrI37U7II|$6ClbT300A1u5>Wngr2Fm z#Lt9?SU+tGE=G5msuti}TvAg{I-&O{@2n%jQ{(Hb|9hQ>JuhrNCI|nq6Ayjo7Hnf+>sL+0cOMM{uf$Ot1+h3Jv~;$&|1B;)-qe(@Z^_g%SMo8@(P4{Q zW@}*w4cGo~Qa0%CaxAutG>~!!h0aDbU-WvYW+9kFw<# z>2J=?kH^4QS4R&M*1jfpsNe}R;bqXF?8VB*KlBaBc*s+?0TcD=P6azFJG%=adokDA zduNo?7~K!wOh*Or>LcbAR*1tr9EukXv#aKX?4s)LRfI)y+*z|q%8IaAdYj&+Q9f2) zKKmt67aN#Qi@U73mYuQ&5@eN?X^-{3c@TUm8T{q+6s8% z1YaC124A(fMJD#Sa*b69!mf*1+feJdPs&xMX&XUjhwplC^>%(j*R;p}AxK${g6vX| z?G~wXy88W^ZJj6aJB17Ol>NkDe_>gknA5=jxphOvNCwKt5co(+gqEV)GIf-R8?qi- zo3b{RlVmatS`cx(9$$4L!^0t_^UTeg{qYqKgYn!oDP@?E2IkL};gi>X$QE4S<|}Qi zui)g}NHV~{{4CVhKdqEcg)(mq5&`2h59|3!n1E~Yb5$FJW$+}02d5Tv#o>8*jInn- zgZT`Bb)?R$Yn(sw4{v*}B;1;bd0aje%XWb%P8N9U(6< zJra<&cM+CV3rm$}jO!c}85yLcAomN}))h~}F`$t40ec_fqsHVIbI``BaeDobrs4YXZ-7W>wa`;UO_(|^oI>a{L5j^6D(YG6C7_M>td0L1HAtVHVWG{Hf#FzQx7VS zIt-lEH8s;ocq*^?*rWoasCSUlT*5a-9U|i6--M%2TXPP|-MNQI3Hnm=BLV{G@v2G= z_92n0&Qaub#zx7{cR#A7E_o~I$L|{AxKWLJz zy3F3->B@O|d4&Y)0zq}uQR2M6nWYE>-Y z8^0W|C0;?Oy2jn%{&fya@U{Cqbaj`x+|T*LYeh{R{T4Q@(u35az%6KNl&4{0Gt5-m z2?v-wTzU)pw-Zq_vG;H5O8dQ33DU5Ol{>>HXXq(z@BNJoT}h?m`}G7SG}uc{^oxR+ zytbmcvY1RDx_`W_dUj%DWMVS#%W>Qi z$&iY${{;XHMpx9E29v1q*7FRW?9f%slw$T3nin76`v*5Qqmh*a=Hnw8PDw~XIx;FH z7yA6_CfCJJ7!69~YJRC12n%vb=Pvwni4m9-t_39#oV3WwmPEE1etjGPXBtnBf5suu55@oT>r8PoXSR8*U^Dcsjt zNXXF8P)SNnQTBcG-6$`o)Zh@@GcEz?sDx5z?JA~75phS>+f%%sywq<0=$(h^Cb%cI zBd{qwA46rBjDm!UiVWsp;urJAgTRT9l%%jctPCr~UQ3fYdH&rfwo|+&AbX1X&XH_@ zwV6$sQld3!lBYkR9wv{Ngj^u@-H1ooLg9SvuPc0dl(5nikc6)D!Hb05J1r>t0z(?S zaD$~MWeT5-wM`YBECM?^xm)GJ_98X-8*_+Sr$qTK-Ce0oSubb?2Z#o26qxC*Gv9ib5MDIxh_kDS&-% zd%NY2eVBxVJ^u{5DP(2BMeB7$+_&KxWoZZsoUXco<>th#(C{p2Yaj2K%+uH6q16^5>anOgV3IfI z`8atsbe3&m&elk%P-5!GMw5)Vb4yFx_MAZF!fj9E# zoz1^t!J!apuh$2;AbjqL@Akiqqwu_hND4?mvf#+d^e7{&k%<3h&FN%@i9GQ1qa+l3 zOp=8Wj;k8NUWO{R!hfK``UyB5z=t`kS>B<3I0J}kyN;2@j3DHhMm6%5e(}+}GO`JP zsD#`92c!5=6-}@NG*VNT`%c4#aMbi8*GpMyw7-UmiH!`31Vi$>G%TxQ>=%&t3$$*e z;a@^Nmiey?bVZAfIWR$wQCpm1pGq?2$7FyM^>ERu7l@fVqXT*dID)F?GKW`cd;)hA z{XSu#U~cN>kPCIER=`<`o3hT1;jT&d6q$hA;CZQsmz-m~5+V&R$%7kRB$R$;nU$xw zm63^{)ITFY#r0!Ejr+K0+RUWv~pJ^4c++ zEpdFEw53KXFKl#FcywfR43ztsVL1)Ms7!>zAI5FH%uKYaa}WwGT2_CBpd^23l{h_# z-+qzdaQoJcvu_B~zOize@$Y_lGInV4tt_UQGf(Mnzz^M$T*?St9d|lYMtfD<>T;6xAAnMcZt*6dK0KI`3 zPsVlA81l*POrR{(*Vp^a9+ek^u#9ViAk5X8@tU>D>{$*k%hA`!xgJ5B)eBuLwuXr> zz)PkyD$A@EyFoxlJ8jQWbCUIq;>-euhCxZu330La&W$UG`y|6(-|s8O!PG6rEBmmN zOYHi7w@CRz|BclMsXt%us8|?pA4!2Gm+cfbN=(!}Ng&%^IKq#s>>9Pm)&{%(_xmmbGm)k)`jL+zu61g#KV$=^8pZ>3CHVvm;MfZH)A~ex!$r%nsfd7})se$Oksn zy+ee?e^nS7 zU*o^XQ>P{+0kPh6%Tb)|T^O5hW2`lNB#$oNfsgEW9~qn<$?E0p$Lnw4cj-aA4sPsS zJUny^#opWLA*z*H>fnb`srr`Axuq!bf7pJ0FktNt0>9~!#mzmUiH<4n!l4D zsxB`knToF7`ml{*AH|w~fr*cjlvo;H9-LiSn^jSa2RW@B#`<+1&Nc=LGL+aJom>*4 zp`Bb`T9=m+jfw=dawnY&8`f?7~vq35EYPpFQ%W+#Lp7D3{Y?0!WasUKUjNb#uUQLrBcaZj};w9LbdV~Q4&;_ zXXjPokqs$AzE#fOM(&$z$Cy#TdkW&aQhn{IkPbb#HO_M@pVX`9sHq;;#mMMzDNR2uG}W1}LV zVBz5r+@2o76N~*T8j)bBhX=mgia7x8;qTl$)Tx6JU!Qt;09he1L8+)v{}*qg0>FYg zOcO$?e47hqbW)0cz|OPGhJ0XHEsvbV)HT8`lcagtYFjJk?=q;k7;z`r>CB0s#1Mu$ zY|+IiLeIA@C^(NNLLZ1u{)uSh{)M3&EU|JOD@3=44@WMHX+A*%qW&n*5J;%H4I8** z(ccn8rOHiAT%7ntdM4+8>dN}6!f%ao!v>=|1N!^>3;I7gv#K5r{xSOgvEp?XqyPyT z(gxm}DW{|@Q5@oRTHh8#LsTsa82imw_?JsNbB{WjWmhA^W3cktvLH%%v9V0cSB%1j zFnNWuvksiXSz*q<;?cvif=}=is}FAduk#s9WQv~LOh59;V6NYIoqqx&3-X?rdcin0 z@^iAK_QD<;1$k;w`pMD{Z#y1k+>Q9dm}56T#b`@Gx~ee=FrD$kN;10tx?` zd+V2wR_qMLVL5Q}9(Qu`TuIx@S+YXgA?6fKhR+7suOHWf7%4p}5%aA4aXYfZ$D$ea zSKJmO3($ola(;fWZ(>_YI4bUYyRF$sOgl1-H$P1_`Zump=&lj!r(?IY? ztre>>2%uuLQ{!U6`^|si#-GuP+5#gz4S7G^6(}qm_>D1J(%jO_%CWQp(j{ox56i-o zC)az`?u#G;@$-+CnL{+)JT5Pu3bZRR-I9&%Ijdm+Q3VCHV8Yv}+XjGsvD5^+oa|9VELa_gebs2BEVSWasytX;GikmhJc%MRRgC|IuPNdcIb`q%C=GF*YU^h6r?o_h7YtTJTEFN zt|z4U$Vjsq#hX5oe_{yGt5-SAiXIMi?PWfU|Fl&|`q>Sc}q8p4< zjYudQ*j?RO#LbP9v4r=UUCxJOYG%zhDF;q{&FEukc z2Ziv__D?-v$=^u!%>g>c$NF;pQp*`cio%uXDMW5XnDRUs-FOJR^+fXT4uYv>LylCT zYM~bRO< zWcu6N3(=1D6A}F#tkd%qG5o5 z1A@i~zom$FZb1Yi7U(8pI4;iMkS3xcd)dpZlz31u*r{PF-&BGV*;&L#X``AS?!23jo?wi8J>L$77VT`4|;Y7R*Y` zLArBk2CRlS2qvms)0H40c_gtSPI>WtL2s$}fs38y`M*pJ%{>jTg~sZ+BFy-HygGcC zR9rwu$KyL)^s1l9=S&i?<533@XOD>V5Bn&VgAa*<|4dBRaqG0q+L2OIhh&iZVfwlg zHl zQ@;TF_jaf6Aeo+2{WFd_Pa?bfIuplg6&vMJe(o;6~RUL#eFM(1Tw7LodK>cuYw) zjo|&*(7OoxSSOuOOV6ICP5l+LMO0*NY5%Vall*0M)uoFR?AbIl5trUzE>snL(Ak4J^9e2 zm|TAgDX0>-=157!H}oQ!ejZVRtZD$28D`w-94AAw<1KW=l>Z{@6HL~~%h2%`ml%bq zni``U_?8IJfv6tGQHYk5lI|G`-UvVD`{)-ZCvhpWBIIhKd=q}nWsKwiC2>b*+xKH8 zhn-j`7w)(dsxU!i;PRGI8;!Sk)e<1nUB+T0bLetHFOLn<2AP<6>${T&M7H`?P{D+L z8h9Z|Q6TJi*BmsPLrn$fnn7WisTsIW2<*hAq@=i%(yz~m1-U;v0KQdMX&|WN)$W80 zu2adfT`Z3i2tWPy_6eeanLfsK*;N0xn5eEMoUy=;EX<33r-$#Us<&$^!cdimAxMO! zipB9_s-0OS>0^4p-W0|MHZwR)S!4f?M(x{DPx9~X%%;twaVwRApbC0rxMnN{wv!mS z%_DPDE6f{79JD>oR!lV9LnFsh61s8mpm>+pnWa%xH5v7b9Z*YD0qp|Dtj_hV^96G~cHDxi0G$dUk}C*vK$9BM$`=JY2E~$WN7}?feo+iEz~Z zD-T2x(iG%7Ct&Tj#k?~5JUBPr5tCzJ+1=La<~EhNKJD?$t^G3TOS?pREeRo|#U$z( zMXv-EURZIyox{)i$!9?=;lQppnh(|8w(fG)%}<)4%z6(4j{rS0E+GfvNF>3}3d;9& zV`ORzB#G~UOcdPhpL_2)xp8t-mYzr{ko<$k*90{u+P|O!eIckxNMs}8ZGu2`UQQ-B zUnXIe8EgQAe{fg?bejGhv>WybBE`i|`JXiC-YbFfaeAjOyT$^aG0E> zTOIe#Om$d%*-!)H31pqIq}cyq?`Uh|i(v+jm2sgTCqRs3nwC7wo6)ihx{3KWSxLR2 z*0gB~3Jud{&iA)FUQ`&LgjxWh8W>Gkyx?0ty5P!t+w}V9-Jb|T9=)dv_baFA>-K4v z&zf`XW4`CE+U>VwZ}D7jpVPMMPAr72+OHQEj*Uq|z1G(f+?w^TIhqz5e7k_kFU)~w z{N=vQSDM-$n-z|y4bXHHpHE<0hF+aL)f<9Aa0M$p1W0g(EU&YhA0w~#k5oSA2`4N5 zKi5V*fZG}JiD{iSM{?a;j}d_M_xqpLQ_meOZg$%D!{O^1PwUmUOjqA;vyq(F_3xDK zQyZFT-@#<4_&$1fG51;ysO;)ekJ?{!0K6Q_z-wq9DCQnq}FKl+}6`I zG_?ug3gbrKkW$WK&|Hp9(_sS*XCa6&it^mk-dOD*f9a3E;0A}~p@T`8h+kkoXv8_? zMqD9(*)urDsG$-)u*rkalRnJ`h+Z5?cu50t!cIAQr(IExw9!wVF~vymc-s1ZEA2xKHL}y;lRWEIwra ziHmUc1q3q|Npk=nlv`)~$d4_lj|mib0%l&pbX^otufPnBLQQ9XbdIe$0BvCZG+1_n z4(+wb!R-dmIQ^($<$`;^9tZ0o!mmqcli?9r5LTiA`8k!Z7DhuD>l~tynVxiHwOU(} zKQ+40@qWo8W+`oMwCoI%HCoVCG zKv1aHWipo~1$9&j`B&6irdWmwUBKwGO$P|yU16Vdwp-26ivHFiH2GX4}ubcLigf!U#`v8EXfj&8QsAg$_IX;TQO5C z6oAF#vn6}VtoZ1S*M|N3466z$2JI|jP!-OV+2w7=!^gdHct5(hK%M(~6y~yfs}jL* zxy;BT=Qq(c)8A|>x66#%C}jSpmh?F?3;iAsCnqB8SrYywH_d$rL;78@E7a5BFSHJ@ zN6Mb3;l7x%_nkUUC1Zz|Cb_=7j0J?AGiI-ks;$`$c0F>z(ShIGO>E9 z;1Iy9&jD_D@cuuQVpP7EKB#bMY(%wUApQ|TT5|*7SS~!T6iQtUJE1&1L#Dv%EM;vU zEEOi4ojzO*twP=~6Zj>o%iV%ElVE3LV|aUPu?3;s$sHm%I5T}|JTx~00TXsY=#XtV zg4o?*@+0GmsHu}xwm5XnXgvXLGv=?*8^2_ug{~@)bWDQtv}Au?w=<^p;=lfSJB$qU zReuC$uFx{&$Cd*w!!CCzQzW19HconQh*qC=Syr$@;O{vNIpZe)|K`{F&8LGsjUR9)xK~29N*_Z$r z9XQk>DKlM21biwN`_%T8)$V~Q{pm#2A12#H0*4mBmd|GqUUm*#2>3{9Z%(nOntttL zrsnK31`-d!!g8Mt1Z*QNfOaF=Fov)0IdgJJ9a|~SdRGSvqjAeX<6yg=>3>Hl$!oa! z@k>r8wD-lPNq+Db4XaKj2^sDGpYAc1KJx#JTaJ3HVZCkTfWS)gH=vS&0Wx#e|2IWREJo39h&B8zZ2g|J-FXXD`XkhyTZA?F*8o&`I>ZOt%j}QO30AkfCk~!^ zA;(b6-IdPG!ruEKnAgCDV-{@RxzOSu)R?%lU!G*RCiMr8rP+9_b!CAkyZyt#q|~5D zgtfFF_Bs;%BwT*qvjqvtGl18GQgI$>C2$=md8veO9YxPUAA2l0S;D6n@E=G zInzV=DdeT{jZ{4~!DbJrUgKx_oD(sY6T2Ljm4UDEUEKEXdU6K+(J(S@IrP<*@IlwnXM!ZC&REgYzoJ3T`pCMBBFvFQ++R^O= z@3O6RuEyG{KZmsiWF74s`$aPdw`R}7=BAB3y)Rl_7-fj!Axfo=n|+56_)D=_(NC|) z$EOOc?mM*z-p0uPwEqvkogZi)|eGuz9Gb^HATG`VZw-&prZV83Kui16| zOHtW#1e_Sofbppk4#ch`G}XFTwg7&q>kW#XzCygfzZd4k`TdK?yhTKtS&j-!Q0h1$C4c;M1#kS_Yrz z7*F#U)Q1Hy$G4bSrjOD3CRMEoCAw0oq1BKzi>|Xr{n_vx=AJo$R7c zNt$c@S4o8)z=xHHO0am6In=U%Gm)b>r>IOX zsc@x?ZxB?yhb^EruuzjUNGh>sE{ee&9pFRM7f zN^%pf7dix6K^>5_DG<_eIP@s;b+rr9p$yP?D_i6$nbfZ$VYF0E2_yRk;dLQt3I3U* z_-oWh6l6=Kb)ze{R2V{ARy1@MF2ahxhXT7ytK{@coS!C*ptHc7Eu*aowExXxWxFQ?g*r zj2$~b1m)E(Ha7INzrVzY7dw(D$(lWFdOu{?rfJ8%zWHU(lg*$WvkxwqM5dvrDm!EB z1Q?jaj3{<2)~w{nsCF$~KS!jUsK4B`KjDlyZ{J!EPSx&Y!CPy#(FpXZUAJh-i1w(~ zq)v@+Ul=uEX)mdWpuO2RY~7|kUXa9!+92lJuwk=IRx1BZdvIT3adaOn6i*Oay1)Bi zjT`IIH8)zCICz}407$7kAiJPi!5z5|2y-&$4A!7hwVZNov0IIaw2Pr!ST$_hvfek^ zw&kFLmB*x>x^(Tzk{Rh2iW+5Dya~%&qf? z`T{|~))VXgU9*gP+0Ew6!=EK{Jn`u2+quChh!#GTfxwQMdyVN$lR0I|jQ#1b3kA`k zT)1?)J{GOE{&@=G9*%;VlGEqC2dlS)6(}j#I&oUJUWL(M4)?ReFI=io8!)IXhVr_e z{z4c`Izr%lX2McA_Tk=<1yKW@FKGGbk2}5WsXK;YX*2OidB5~E8D5_;mhQ|ttO^xe zl%NFh#=RU6iX(u?b%{WYl(y^P!Dv6ILk|i^EDojD*ZXG4Tb)l7Fv|ityJ1EsC_n zHFP0(b?7s~g}2+#lQ_AEn{lZPpX2`TI!&dPy4D4b&N_bdg{vZJ>w>F860_(@51IC| zQOBrD(VQe5Yey^BQs?l@`KP;GpV{~nK{rNFopLKK7q`lkWhzVmyjo4XuBC=tY1swN z@vtt9OUP{PFJSGGsqn8B+xAqk_O*mQQ zHZ3#&XoO=TbBgpFRYi;vMmFjR@@yH7m~vjSG(% zrY*Y-An$o8%_bc|HSszQ=0@+e?>?6ER%}&ZHG;L;UQaztRXU#PwrNd*nsBRU5?1Sw zaA6=-bw`KfI##Jn1~*%2V&!qII=h`YbX-~wlC+@>N_D9d{vp8jsE^$pOr%7v8XN!F zu^cE=A`s)2TShKJ;nkl5k8tOZw-hYB6C$8Ah^widDLm zGNJY^$Eah|vOdJ9wW;ZBhLjxty4gy4W}{?Zsj8B4)Y_clR7`<&EYHEg`1g14A~N6( zz`3*Ffgw9QXASImd+G7RVb~AE$+BwMK2fHb%udL7(79a?h~h#g8#w;E5C~#C&JD9G?51o(u$Tm-8O*1|LDzbP_J^eN|vU=pA_MIA~^VHWHkyJKDk?i*=JrNRoYH{ zyO~#zEg)=U@?|?Z@RBAAm+f?9)w28qkt64>Ol!OswOp}WhIx{6?^KPO17Fmd^GK@B z(?L-{wt`3Wdc9qyKlH-sa(6}!cU%N^t5B&U;^u|PdFO3KiNA(s-I&Q`E12)jsTx$;;e==Pld-7fUwK@rsN~+INlJx>=IcQcY6{H{Kye^&K4BMrQbRI5S z1*NZft1IIF^{_@}Fqs6yR#E5M;l*fs)7^!KKp~1&v!bqTHB+4lxq7{1N*lLhX0irM zER)ICktM*Myy^CeH0ZoRo&=?xMq|%vn6hx@)qKa9tk2+>fdq`MGEzGPZ#dQq9MWvD zK0$ZDAM%;x4C|0urHtec*@-INcJt7qMAPb3v*Ixt4UvDDT(h0aYa6RGJ&Evb95g`I z;C>bHcG@Bb6tYmV+2({Z{G(o_Rv1wt|`Ma0~cVMCTo1 z`Q<_x(;DgI?!>|S83?3xmii{SuZ0w<4xzkabAkS)* zv*LEWSnVnDz?kryDtx1=ND}k%h~+FIv5R84iu9)dB?tLQmc!C@WPyWrt(XIcFK15D zi%rW5CNNc`7w~&X)LP_p5rBm20Xgt$wU~}aI2;J|++jDjDYs|RBs=gaSfAhnkVA7I z70N`(PN!O}Hv7Y1w&S3YEO#wco1G4R5wWGcM$Fg zr4mfGAuODoX+_{K&%>s+yTciI6md=9j;jb20+fQ%47w=1>!iXZgoE9bycFfVogN%> zHjBI*dR@Q?WU8BxJ5e%=Hz@aK#CKW6#3Et|l>_ooO%ixgoFZ?gT*0b1??c-K-tC0FRH>Q zfri2E#&$`XY{W6HgIUE5d!0-I>;;=5c^CQF{OZ;Ww7EzY8 zcx|H8d&5CHFD|w`(m<7;h}THWfnt;l&^9Vq3t*mbgvTqL3qyM+8yzInBE*@&VHA8^K z3fXd_O<8ZVYDlwerneSk`4ScL6VQGV)m)*1>Tdw)BQ53@wdznV_j)bkSab&zB--6} zO`n%M9;#kMv0Eyky3vH?V4XEb8xFyS^SbT zdfyu&=Q+8;s*8G4KO@0eZs0VQaJ4cN88&f*YvUyO=ItE;o~F}*AE7F!*EWSgQ1$)x z%)6o9YkG?_Nv%+AqrkI!wal?NU1Y1BT5h$f?scloD@gvVrZGMQqEW6jP#oiwfz-G5 zO1=h{1!ZP&92X*b509!>SoH=q6QsVOO1BNawn@JhcCh~$@VpA z?G433wNlWy)pUA<9(H@ZYEIZqY%{a!InHtDo)ONu#UQirish!_>|_&;M)d1LA&clD z3#<-kp!{y;qWoAc6>~xmR4!(XisZa5UJsO3;X2?d3U4TgKd<{vpnA} z?|VVEjojB>2xg-XP31h!mFm{eYGjUqMKGI zmo(J9o4tL>j&1U2vl(IMD zJUl8IH@KXpQlVg|BITA;Su5fdt+B%i`c0k|K~^}fCSJFcK@nQ6)oaGBuB=4EYq&5% zsahOWkJeT#p?aqjXNZhm*dMO~cZkS|o_Dj^A=|J9t^9s%i)JOStb|>#n7PH1?anwf z2&hb*E}0QiKtegS_e-Vz0{-*Q!)E{;#Ia$dTYpsDZULMYu)5(h%jb_!9=2^Wr->$>PQpmyO8Ra@^A#`uh5kMjr`NMWz zTD#58XeVW|A{t3zb{AatHFpwuwWH>C3OCJDnlAXkf^pWQ1~Bu3AU~_#LPIIaD|-%Q zZw$QIQG{k_{3@7g?V*;vWTU-cmOI1#XlGT%eB}EJA%ilqQY~kt^L8~K4{KbD>x}%a zG+&e*@O6EZQQ;1em!rB={j;~<`%_`eL0t=E9;YLRV$wrzB0w=IudHmoKi(pFJB3$m zBk7p}9MozR^`$1_T;kq<6+AYV61P0F#+n60913+`WhMIH{7tdi9$`ei!Fd0Xxn zWYvkMb_Ys*avAe`;l`P5MfGN$zPvcge0UHLDT>+4csN?^S5`@aoNBe3HCe7^f!%R7 zYIT5C-58w{%NUnzS3S%n)JY1z@tfL-FSuxw6DZ)apQLED% zA*m9lBlre>V{;x~Ev$0Y$!0TdU&8uQu6wg_Zhfo{J-26a%V<0-5P&8Xo0S9W}I2Je!^RY{=ePR!Dy8P_ ze5p*_i^fkyX}1w_rAj%Ukxq+{nnHuRDIF$Oe#=RbnD18XF`5QisogCvO1il$m#vLF zJJyW()N+@kG-E)!A$xOD2lBl+nz%~3&6(C2q< zi*?~5?X245fFuhptKVt2TeX6A9T)bz6~XGlVXL&+ul%w#stj9=;`&g_qpKwP3tulr z$5v3znxVjj-DY{Q91EJt1>r&8>`tOLA8F2VH5wgerl&O;TFw(@N~TTyTF$Imnw3#vMRk^>X7dYwd0}%Q?q;O z%@9{x^kS9^6rG!;j*x+-Q&GS8+A`x8+k-(DIo}FigP%>#V>$1Imf$*WOUv?B);vqO z_OPk9E}6Wc?6N&km~BgbG~9||#@wHsu6Mocrn#D0&{i#@72xhjrCp~ZtF~J0^g1vK z^nhxeb_E@kTeRMkbK@g-*+e611fU(4yUn zZPZO#CSPe$ixfRxcTkZh^0hpd94=Qy!%rA%SKM}27*@QXcU(0JvSGSbXxD766;3MA zQq7n0I_GICSX9e(3K@IokI&2UsZzN}?Pl%J^w2vF;j=M|^4c&v4(_&K7^OzDQtAY& z&0=h$(V1&y7aU5%;&HMTbsY^gr&Tg^z3y+0VY_rRic+_z4yPtxb9S>`ellBZk+IUX zJK)+=^g#=YpLB9pGtw`fblEh`@F)l;M>sZ|VP)GiTYWEE)3YPls19e_aMTx!V$sxv z#jSEw%z8T?xkIUZJcsgfBk-B7o9UPQ#rAMSlYQcp&yud#2 zV$O*CqhB>tnd-sJ6`|P>eQTPxoUUr++9&?9vDb(3bK8kG=@>N6dMq#$=46ECmFmWe}?)h>)vtDcAX6;r`t0C<`uWmQud(FTv z@(S1Y_B%gQ^c%ryw{TIP@eK#pHY_V=gbU1#m%FQk zE_D~-5^gRFt`1k{sfr3?U^rK_Slv>iU-r~mO>+*t3G93>XIZ&>-Hh_}e5kfA&T6#V zg{2^y4|crBE&3c++Ny@3o_xa+xrV<%uAeh9s;=KcX)Ni2o%dG$u(dmmY}rCMDng97%<9hK^xil{fwS4XgHf6Ez{d|3cA+lNsIA ztfBK!vAi7259q11M8zqLKnvPP=WwtxB(d*W82fn3J=MI&_#2sk%{EFdE zP8Y_F-ihB?mzfdl=R$FDnrCaJYQ#l6D#ZPAI`(?Tb!-=;+i-K)k1JEYypq9&5rMf!C&pU===m0P)p6ZVY)a;yE>o6kb(debV4_O+m)JCZFCeGwqtk8+F{@ZMLWP`ZDf^2#}Cy?y&z>fTzNP_3l&{FHE1l) zyReI1%V?*lQNi8?W|cGg8;(D(LIJH~i-+D)BisaP&3W9d3r+(h9JR+sXC%eO7`axn|$CdF)ILInlMK~ov^ z0KE2kMPEaCsJFdI&~m5Mj=C#^$djYMv(cfWVJo#$s3(-IS|b9zAc6I*OmV0d5n~Tb~J5|4qpEsgi+pu!5bk<-ZRo2t81#_F^_L4Q%$G_p~qWepmIVtZ(}T2r~$Xg70$jeP`cig+vtF;zXRXhacMXt{md+54R$0y52)v+CM{Jtknv<8M`GsLl3gqhTJ z*t9O$awQXNFFIPc)^tNY+_RbmU83$N0dEdSaTd31bBN&Tbd6bOmZ?;7T##|Dy)k;c z+psV}_CZFa$~>B4Mc&;_Rw6(1t3x|e?{-S_Zhwyn7s_-cm(QtrXLaRvZU0n5dhGZ0 zk!K1c-GSZbba6K-Eeivo)TjCM2!r12Ei8na+|YMQx9Y{jl#dE6_k_UZxENHQhQgvW-L4}?wL-ZFwL&uo!_Uk-IJIY@k(VlVuC93dItCUr z7#p^W>SgW?TIi}eeze@~w{zcWRE(W@Y(?k|7SMxP^h4gL_XZ6`IN0#W8o>%g^r6f9 z69(02J=6-yF0ckxF{6!-r?p>Rj+DNo3dMeTyqJ~3Tc(WsMfHoDf*l=24b2t!;?j{X z+=^7qVl?DC{ff5h&(23JgLI~qDQ=WJI>wy_@)}|6>7)62>F2_#D@TFW3uee9(SoRE zxEWm8VZBBEUcmTc0yZ~Qe>PQ1!<|+vs`E_H+e${coLRwV%&*kG(b0Y1gdM4Nm`O&Z z-mqGE`LtP0o7q*NZx0%#B0!0RiR54MjazeklF%-f#(O{057$=_UHJXfsqzKkVD?<# zQZVWRD+|)9he2MpXll18->=Wnv^MgFE?(B|RKv{qyb3I9nIDT~+mEK0aai>nKObmg zK36Yz(}FX1I zEFft%y>YLAk1wPCRhbyxQD>lpE#O4xQO7N6LtOTc7bG`mDH+Os$ocBf&lIHEBx4P0 zt$lG|)o#AMTRBS8+cn4AbBqtVY{IT&6a~yzF>b@)*{k2Qfhbh2{rQoLBy3^w^3VWN;%GL)Hlbm-dtAv zH4<}RV zIEjE?W#UI8(T+*?a{%^;&}3 zR^nbf@DnSyFf2m6eqWJC>A=y5g|V(cv6`4$)h!T|y+meZy4w9l0e_0i%0uq)7ytH|pC zSF#y(dTw72v!>VKgc|QwYoga`?5EZw8nq0VKDrnewJbK=>E=lA6-11zW9S3BGRtb} z=qO@Xenie?755zp!xz17xnp2^fTO?&xZNlLB_en1bGAmELIyK(1_a=m8o>rI0+o=L zyG7`9fdP<3QP%SnD9>a8=m#~B30)=}=Z@*haxYw;39Sbt9`G!KqH>-MQ77kH=1u7~ z_*=(V)a<;k<%0Pj@TxoKSm-pfYaw&149Cko+7}={80;dy=mbNpxLOYgZ-PPi+$r+8 zQL*1B5B%Bc0Kv!5q%xfQIJ2y;6@*vnilCbWD3iKt2S&K3Mk{h~nLDh}Q|~n}dk63U zsVovpKm;(s!G$4C5=a!YQ z(KFXMd8`+d=|)C+3SZDa)!|G7HEvi00v+Jh1rMG%<&Ul9sr#-v9-zQP+gmEu^+Ib%xaqrO^?k z8lWa{gPlfEyF?vypSK+FvuFpPQq=@N#{duNw=tHlH)E_YCB+yrSaqC#zc#IKb>b!H z6JR3(YMj6-inEqCFE(0Z?ld0m<@HP#nrK(#1Z6)m`h`|zyoh@KF%ZiG50PcPT1-a$ z!nNw$%t5%`&fN;4PhFHM=;eg!UMT^81D{7IO(2^Y_;%%H#ob^jWQz4RCcyw7OTW^(_G(tfnvTZD;bNp|!sv=Q6PoF8)1lWdaNW&L1+;3p-AvtvHnW41 zZJ83c%$9rJ6w~q;luYdx{x}R;yVn8R$h;S58=+TmiGm7{zj>f^jH! zSj7SWTo9vtLb4+jk}uO*UYtmTd8+g;@YCfv3{i80I=jx@z7u$BYJdlAg z_zK+8c4B3k9pKa85&>oc&ajYE`K5Ka8n+g3a6k(q$H9CCz=OjE!bS321O7)RFbQ{< zJ9)QJo{0s_nN~;Km_Q<=Jr@8htr9=9XVwPz!%D4M@492lYq`6*$y=SlY1PX#wA-SR z@g|Ea8qJiM17g$!pjKE0vRUg;u@Mdnt}vaQLOnmpYmL4;*#LQkvX0?h4$GjgS)$k- z?-52Zj6!1&kji~n^fh0#7aXu^02ozja8fEy5TudS0i+uJ2Y7dkEIOv{?qp=i@Et@x z@rAJ2m)#-&gf=>@?5%|KqCe>NP@~%mS+b7ud4T4L=wy-S=R0s?J26{s5}=`vj+MBm zI^~s$>3h3x4+jlBGB`&n)@5Nz_0wz%xE>Ar$?45T9nH12WxzoQa&BM*h(vZjv$d*n zD7nisVa$mBDq0cnpqSGSfYOCe2dwm%QEpA3T=RfvjTxesp}mny68YhXwMg7NjT>#d!GY5-e;kuBsdidwnV z$$FZANo_Dkguc=m1Ogh>6~Qe)39vd-ltK}QcF;B&miGQo?F37_iWwm=kEKFJx?rF_ z#)!0_bJNy=L!o0wXQGakStkZa22P6bf`~wNBeTvQ+SGvR(e#gCd0wLz@%0S`T}HlI z5a+>Uwb^X;46cuU7t~U|&Ij9UVSE9&ro>iCa)6Un>ot9xU!o^6^rx#B@`XhPj~iDEuw@9#fSMRu z5WEgy7ofufkk)ohKlF{-me3Cv5VOUau~W3X`f!H=M=?tkjYGD;UC#%C5@Jxp@Hf)| zKjr%{Jb=omkC!8?n4w>+oWo^-i1)^`1wePSm*MtG(s-KLX4~!rft!IqFMFgpEj=1S zD8Uk_5&-?kQ;}Mc`cqb_T;?5rVF5Id!5YDkS`t7G1A4%gT&^eJ5`B2iT}Q|uCNlgD zVf3fd(9T93%;&C)P8M|}NiF(k=>W%AF@_?X`rs zhAttv56nJWUm&eKVWKi2-0c~VwBVKjq@F>w0Ii++gY0eFncYr{ZU%4y*bz_LJt$yq z7p(Mb7n5OWdnt?Ua7`#zY!NV-9A-nE-?k@v0cc2u^!Qy?Q6Yy3Dr;rRFlmlSA*OgmgCS(8&#oj~!1EjSdf=VK3CK-8ys&;Tz zWBZ^|Mn$t@?0L+9q{!<oVR{OMa9TNWS?os{6fub7YZyJC%U^dVI z*$3tRxIGuL6(Fe4Dn`26SaD|u*1CsH1O9lLI|Zv(3J-*(>SFhdL02)xJdgNR zAMIP(t->w}Sp^MuFee8-CM&GH+N_-SQ2>E{w3umuhpoBM0u3SXdyTxZcO_9D9b^*; zZIb0paIi+HShJw209oj&2BcM1x*>U`TQ^N{8;XNareK1+dcUHL7C^qt$nUH zLgIr;lG@*w-F(!N%uZ%FKTCkBG88eey2ugszTqlCT-*XjgB8N{nl15-hJ$7ap1&t_ zcQv9Ptt{}LjFW9lu{}DNM>!`Se0^}U7Q9vfX9#^sB@uw_g^X&@(A|R%R?%~#mfIek z5tKz)E>v&LwVXA}7#|^A0FT|Of}WkHH|)I%GzvTqa3Ex*7|izyC*!uwTjLEau^z<-k++0o?yTeqb3#jbv@{9YKpM5vxw(zj4#p$|uZxl0H21_s+ybbK@L!{XgLyTQ z0w5@{{=xvpDNhsL(+mZHm4A^uI zud?1K1du|2gaIe}ZCJzu@c`x`O3#Pcfg<*&XOyQ^l-CS`j(Kpej-4GWFkla%8bg{z zxW-Yptl!3^ik-#kUA{Z#vna{o6$ohz&$J%X3fHEBj*CJ#uMzfW0M!T9U|p-1*4Zx7 zMl3nN)UjHK0=F(Ua?&6|cME@fgRmYEPfKO zz6n%xM!Ic6G;ZvS6#)Qg0J{Z%4_ihhSUXTY1RAfFktC{wG2JbEw78`swoP^iFCX#w z9>Hz)SDqZt21o*TP%mIH$UF&FJ)v@Rih)c%6W@iYluB8IsmwdBci&g0;))d zJTFI0sd+w@hSQ?}gjNX)Cg^ZLjmj~2B#aA{aW zsdR?p)e##y@t!C$1J=$dDGPBIiWO(Nr#%+n?&6(eG9L;xUe`P~cu%5~5c@sxCM(+m z1r!w>x)K5PfZY;sm?9m z4_K*=s+JlJ2tc$vwjb`=&4pANc!1Ghn~PY%mOYWl!#s1etANC_3`@b%+{~>Ux}izh ziU2>iWrf4i7eWpe#y7MG!hmrZVdJ6~FZY~a;$wrN2e*PnHaz?|$>sQlPkcg5AVhsx ziX>me1Qy-FF1Fu*3Tw#290B1`0RR95Vh^Yq+KooTVoJ8f3hZc5k`|598QoOYQ$$ma zRznPE7g1ira(EF{9fzcy{6ZBqHf=y)^b%IRac_QAWNtrb3WNE69^_@~Vj${epp09r z2mu?1D7Qf;MrY0;)79;@2=7RHND61+Z)hnkp&=Eu@`ArHier?cARkvp8T1Q2$}qA5 z$Hm2hwQM{3Ov_U3$9r-;86M60uTTVZ^|A__UL~j8mab{LwP?%9`#~2i!4>fO;3Z0SQk4z)G+t^`i7a6n`;aZ6mO?yh~;lIC6U3mjRpEE zW8g0oSPVu>h)tldj@ihl1u$s8Oe^_I@z{)jng-*9?Fh}BVk01MhQa(ZJS}ZBFVNEA zZf!Hnf5n`ll*I#g%GTft$4a;RPLgv1?u{sp}?)4Pwx`Ph;T?NuJ z1Tuz*aE1+iTh2Fkv`&1(tPJPB_2*o!<)9(Cf)DHK&7yy-0*rPO+15AK142=I8=33TH zF1K^C=&xwBVM5qJMF>iiang1g`_YGFOBUin#~SVT6)ILrMG$lvInL*bipyR@Wjrak z%Nr&qA!_pzrOX4}Df8_*))r72(v}Sh1Z*rKv%O5a*TN9pA&TR)Lks{x4g3$Am`%)c z+UTG)oM=OR2iP?>P(TgsQKFIoAP-C2#D^YsuA{~91l%yfJ$`5aFS;F(5D2IySZ9|q ze)??(48hUx!omc)GV{Q}VlN&l94GC|VkDLZY>OK+EN?|?%dCv0;SqR*`D0$*4sWX* zqWy&`nHw3`prr1tv4yrk6NT)u-kr4B`X@tyn?*G7#`7&4Dh(yr)+|+6fU1E;loNY4 zQ|TDzR%sxV?J*l35i8KA!NQqz2k)m&2YtI)xZnQ5OL}eSnot+Bu;GIBWovke{)94@o1EQAGAQu+tA& zphiP^*u}3xsQf+})|AOY#qTH>l@{$8w%Jd2AcbM!9+E^_a-zW;YDAEa0vr|Wd@&{H zgI&*@tgf^(2h`tE0Ip>Ve*^pg2-~fpm2M0(_~r;}6#06eQg3X$U3__3h&T$2m=IFK zh|;U1y}^FzBl$rUI1(g|@BvuUeEx_F>NHeQ^g9>v&sm^ve!wy!7Ov%U)V)dD*5r&y zIeM%M{C)sBJF)HusKHj$TcKY)p&xX(pl?TJhtdLdq9csB!GhP>FOf9cOwlh(SLYVZ z=z_|wR3mrJezyc^@}w(7+xGN|Q$c3}>c>33MzZ@)Y) z_JbzLmHfU-`~xpE2S^`~a#-pGAfn<&4w4_9p)74cdWQ_0{qhVgp~25xe`D9L|BF|A z$Nz`d|03;gxBAZx!G1<0x&E_n{tx;8A3o$~A5YW$lfVD+N#F7R$2ZsO=l++7k8kt0 zNBHT}VxrR2l8yZ%ivEbNKhqa`B{F{exF6;J$st}I^3Lpc@}l3FkND+xI=~C@Z~yt@ z595D)j8}F)>H8{%$9tgLc%dg@?!V}YNdrL-iejM{IK*F{;g8?(rTD^*`9o@n@aUgk z@D^j*3mgAdVP5U{*B^iU$tX>(gsA6#|F~2BjW2x?2(`NF)q}#nI^XMie?;*~{)*q< zoQwJQAAi2k500k~W2A5Tu3`7by}eExzaIul_bR%_XP+`8%lRb{R{VByp&^z`J(q=a}d5yA{N@xSaJ(D%^T z_;j&VKiK|{^zr^k)Bg?mOiKU8F@F4rqTm1V5cYTKlyEP32)iea4q|>hrI(x_eqh?% znZVMzl&0yg13>c0*ITDf_1zov+WQ$&mh$qIlzyA$o2ow~^k?*HYJW}gUuH1(lmGbf z3)BW)gWdUyj1rxA$%gR3ze$bo_7~C~#__F_xPSbwJjk~WATgw;RG&up;+kGb{x-LJ zQqA7}hPi+3-@X&~&%*2T=A@#~%BN)iN~j4{Uy{?G@$~N<^2;Z_(bvB}0BOzdzrXwE zZyES~Qt=-W`G52ApYiq{UfxvTMGgL!c>I4ueo805)!@79z9#|S3GYjUe7cEW5pKzR z{v8tINBuy|d79bZelNxT@14`H6p09nJf(>9bToAEUn3T0*}L?1oN7L){q6DAuiu^^ zVNM+F?)Q1#?O*>g{_5oKn)4m~zrNlTM8+o|;#0K8&x}v;BO&#--~LRpm^E2-DuK9j_thfFaB%&RGWTbhz>Gh2rOYYqIuZx*=mYfbjG26F|tj4ZQL9Nyg)e@H%(n z`_o`ges?2y;fp-)PLO#ITrn4(*9*B!LsLR}u!5=IL;1cl<~L>f`rlY#nZ6JkzV&3U zk|j3aZE`zAl*S>_=JNv&x zz~5M1@HgaBaEPnfxX;E)-8keC>kMcX5zK6fKKMAngZHt1q=fjwAi7D)&82KBHriAJ z1imR96@L4Jl#j)apDG^3wr8y#laE6)cSBG9BewnNzv4(ui9md_fwEyv_ui=>(AD)>J2**qJJAad1Fhz;t4hrKw69Z{7V`ju`H*q^Z zO!NPv1JGGxN@KRNP{;U7v6o$6lRL&|lJi|r?+rMT{NvZ^D8;+qq} z{u#vrzrTMco=(V={k;v&$bZO=vGiYYEP3jA%=Y+IIwT#Nj)v2wJq=?c-6};Y91Mx# z4+GxiTkfVj22t{ZJa~%e6!TFx->=w&$>5ni(7zAX;Vu*m6VWhjj^LVpjimziJjf?v z)25u{JFkq6h5kqSOz*tM6PRd0!Vid?X)#mt`^B0rvERcVzo)!FYy@||#ZE{kNgkV2Z!}aD|UV89ZW18TCOxe=0@(IrYptFjmA$%+xG>#jX@jBYx1^Ou|2- z9}@~36N8O^#_hqoUx>YHqQWsN?^g7zAMieV>+W1$xbzIkcjm{w6d^AmpENbqO?|Yo zn7PH`Oz3~Q)}NmxCi0(&k0i^E`_=a}=HXlz(-RRhihun_!oO68f2S;^I84zW-Zybu zzy6*c?>r05AF(u<%lq55;r&p*{&J@ti7Ir7k(|iyS>@r5jBMOH@ws;{^TCyX8!qn8W9Kj z=>zdYDM?FG>4&A0r;5LRC!a;~N3);NpZYY5wnPZkR6n&z3X!pu#NtVUamt_l`pbQY zk$P4ZZlu*xt@-vdsu@e5HxBuc3pT~{q`-wY$ z>O;bt#JfIt^<}ulCP}FY?^7r-{mJ!9$_$Ag^iG^pyoA?>0=>=9*y|~hSYhz@SE4;k zD-*LKvBqk`E7Rc_535Q%#p3{vacnX#P2(EwI+V_I6Ec#D;EnsN{P~@Y>@XTiAAtNtd^;lG z9#Edzl2X}3>d%~&WOt`OT|qGR6TS2<8~sBJm;yeq0QU*+GeJsh_Th}*l3=2r=_6Cg z7y9pfVS4r2$9knb`5&{NL{Cz~&r|^vlmD0l#!qFgmAoq(s?$jzm#1fnAADzis%C%q z$@p3Eol*yg2e!BnY#)}8Vt>rU=Y`MR-4|mCdnfh@cTHyWKhYyGdghI5fBZKY#=~Ng z2G~86P}cck*5p6qJI0jW4-khN%$wQumP)cu|5p_KBhiGI)PJywFm~s6m-h6?iTS3< zPnh;@b$9#>i%oA%?^yso!_*&lKE~5gb_DwOpDF&n_#GnlF7*F;!dT+7-@_3*W1Np9 zF^b*yMP^@Q9v|hY1<%wfafGjE7RHm*E#HwHcl~(vnjq}IAIZ}n0OH_!f{xPkKUCxH zJ6}CL3j&WO%BvXSgS>T*@2Or&gP=WW9sXhbliic~i2EB~$bT^t7#=gd@Q%P*X$=Tf*9)gGxC}4ys#?Kr27F_78hUd;rt8vbfmkl zdEArngCTbQbMj*|PE0nT;;ZVvNjh}^)<|RZ|JQSV;XZRsU+9NAKRw$k_rEAVq;|(L zJX7>n>ffrfU+<~pOKqNOSQ5dJ;C zyi4FO5AX=|U&&7rGG=x}KhuARB0{YaXE#r}l4sy>?_TUBy1nVn9d`DV0DYR2|NVnM zIm0tedASAS{ym>$Uj_Yf{}HcJY-aRRe*0#;FXb0YRdAk%iGN4_i~7VW`9}Xw(BLmo z{wL%=s3SSY^v8Y>8Ocj5j6Zlcq$FQp^#`==5lWx*#~)88f%gper5o@w7epka!MyL} z$Ju;}w?B}3GWwJ2mxyq@@4n|X=_Hp=p5ZI|lhZyD+f*VOCxY*(!IP5Y`Kio?#rbq9 z%!K%kU1p^MSVnAnUN747gHqMEgds_H;?KPnNy%Z;Nzc<(-lOZozKADAItXMwMhzt<7p`yV{yzwf#2L(uQKLyrI5ufQ^?*ttKS6#tce`rkj3pq9>~ z2p0UE?@JYhPv*0dJ*{bP=KE%}_vgH14a{?XAs^I!q2g)1OrPS$$(J1V71jJ;KwJyI zUym8oPuc%B3k0#_fA=fQW?$(~8VyfNPRM_^-*22Oa{%Ac@k}#P^rv+W1=e@ReiisP zeVgwz;KdKYC$I&P^zB)I{%5-4c$yCtwBK<5>jufIhoGqWjo4m%-oHtH%84?UmXQCr zeUiM!Euc3)_5B{nw|e`+{l8m3VQJ;}3i~dB7xG!R>QU~b|423@UZ_Z_@vpl7#c8J> z`cwb*syxs2nD2Ea<$>-;K$3cA{_7d25p!>2q$5Y%Uwotg+jQ#n-1pAvPc?|{@w3H~ zx8tM?7p;MBn9pk6Fa5)`s=YDpyL{?Dqd!iFzwwmch~l1x7{-6c8`58n@UsILNh>5J zfjAdu%Q!!iIvt!EhCesoB%lBH=#R;d_tIX;XI#DOQCfqZ>h`vbmwfmoU4M7h5AuIT zf6Rif&f;5sq%`07*Y1ZPuT*C; zKK$e1DgLFtNYaC!dyVlA2||ErXZQE6|Cy}OJ>oe}e7)8$u|>UHOruk&fBc1bFY|Tq z@IFEKE<(Oi{&SXpmjT3mp!+x^$;h59tEVk950&%K6C?{qX`JWf!F=2X4&~B2|LXM8rum-hd@!vl< z4ux->&zJf4&voYO9p5B%|8FYlN5B6QasMfk@A>|<|4jb)#TmpQ{3rDbap=3+?I)`L z6S9*qn^5eXQ+Fm`u*PHC<{NWj+qP}nwrx8T8xtoJb7I@Jeez%D`h0`aH@#M0?(VK# zyQ-e&moLZZFZ8INaiHJ(=u8tOd_8?9AhxUS`a&P~QCj#F5B)uc`TdWk(e3yG zl7t$A068TpE;2SdU0*^(Mo3CcPw@5|9-LFtQqu7kGBL0oy&DFE7PXU-kdBPX==S=3 zaJ;?w$ou-4lyg!s!RqOMx7;ZeaS2_@h36U0<0spV-MPE*Q*NFpnMvAen-i=IkM8E4 z&)1J51Ym4*P*}|Th>)0|sI088w79&yz{I?`w5+HgJSnM|_}I9Zm-n{|gZ(KHd1FmC zpNJY1+<$^i?})jQ-FMFxF^w31BkLoLQIlpF8yxRoqNK*DDJ#k?Ely9)zPAkv%8F|$ zexTRYL_ZeaB%>o!|765PA^33NPrr_A?2RqWN;=y+D4B_wW`WE z>O)z0@0@y;oW3H2o*odTprgwwO6dlw%Ahn#;5Lk?#Sr{<9VxhHkf(-o~>tBYV;+gPJo0xJ?ndlK+jY_;KYDmp zG%_yiD}G?A2o8)1$HfD}9b3N43hB9Mn6HD=i^Hrto;FTqexkz5Hb`@iDT8_TndSLK5ZD4r22x^@(TSmP0a>w-XoOeKo=z_26|Kx{q$4xH2=q_~zs?E$ z*tC>v474S!x*to<-{)41u{Ew1-V zNJMa8@Gk`k2|00SQW6p>^4`8dQK7)sM$WZA5O;Z9ODhWl-IZoSe0Fze?sD?U;Kf?c zG9f(yV`RBzJGh8|#l*zexP-K%lvF@>MM3rNQgait!yO>d&9(jo34L*8co}6mvA14g zQc@b4=WQT<038`IJAYW z&9$|gXL0?9fQ*BRijSYFvBA^f6DHJ8TU~B`iTv>*dD3Jq*mH%jbTs_Nwbntj@>hH{ z69@amsv=Mx*gH8oH#RmlH8waoJ6v8sLPSMIN9ez}A)@i)Djyyl9Ge;$7zdHVBjTZ9 z@T`|_Q`duIRYxTe`M{WBM*4PdSPoE8&jEf<)0t#xb9x1)HX+DUWqx=<1I~_#l$TQ7 z9$$QR6p`^!lJfd7e|M8}`+=)@Ng4ULcodX%SEO}8Ve+EkI<-7@bV6MCQC#mF|4QBO z{DxXJjpY?8LYbRaN2yFy_L7*LqQ@((aI>_zJ373* z-n}}w*0RqkrS6%Njq<$K&uAj+mG?*p7-E`JzA#_j%Tqqi5adynnVn&ql=n%4d2PO; z(NtMo;ayo(f$7a~D1phD_Ii7JkrRG7L{Ob*w1Ewl9HuU^w)`cSQBhAz$3O+K9_Sa5 zha~`h%E_RF+Lr&5M$vf=gYxmh&a+kfz;rIldr0zr>B>ejCMsS`td6x$~Iz- zrNZzEFE!-{L$GqHD54|fCTOYZtL**UH##`E(SLW=+4A`4Zl8{+Cm##%!nT}xYz`0u z=fbUus8>QYE;K+@te?n!6(c)N!@xW+B@gjl&9tDRrW~CJ9!*O_GAtq)7JGH~^?7&& zvf)|z^KJhXWwjPY)MH?d9KmjTgT|D!S45QL!J&a&E^(vqo#*edshx{#H5ofswelgJxXurFQ^Gkd%`0Rj?ps+;r3pQ|gP*`tuLj7;?ubwRe zdW0X;G(<<1RTL9SP)Q3QFym54AnF=B;zF()fm{`yUmmXoA zB;#Lcf6XZ@m8O^I08OEFdLnA7s`AF3(qeN151YHg^ViZp=Y(!g@zV@-{vVzJM8!pg z#s)?O#l=NLKd1r_%1Z3@CL9TM(NkkiRi)rL4Z7YI3m{f$e2J2pL#nYq ze1T-jkaA|@gxDjEXe$*GBLNi`91*Eko53k3Q)J+yRQ+lWP)Wf?V@qRp57koL+fg69A- zlZ0BNTf;IE;r697OQ-cB+)rhFf`^iv^vU1I_~-=;)Z5+p=TGnV>kHiE*YV~yBv?HV zBbSJTjFgz5q^vOLy6vC`mc^(9WqEl-@AQ`ZBU>7#Nhv@ioFDq((V?*g2(ltQ{m*sr zP5}@Di%~Wljn0*u1!u zh`8^sz?XLm^LFl~kn(0ijD05a%@-~V1REQ5|E-NNhqmTkkK-v533zX1>hyg`^Tr;G z#?CWboa{7x&-%uvkCPV!L_}_7M#5i@W0;GCV9CB0MZ?!~pmC^J;eJ&w2LxHUBpc5lF!7%n#AJ z4-3ih5iM*7@&2Q9eIB!Vi|~jfb3=wX?qZO;p%^j* zauR|D8=}@*9G2HpZmtPpQ>epJjB5iutl`<|G?{;FNG2!==Dd^QXxn#Vlb>T{dvgnj zpPQABiwk09GMu!}lmH3nu71qeXm@9CcQ-gNJUlu&I64|}9cl-el9Gz5;uI@$RRinP zvZBukX|I6TkAG8FKPQ&}_rg+JS5HI7^WDz&@p5ltq5=3uC$&`c^%Z>Ruq8G(Soyvx zJ3o%0_ZvJL7WKUsk&J`{Xpr#sY8|?*59qs^hJk)`Ov3M~b}ZDNm3x7y!zWU3tjgk+ zlK6Y5Z(}5ypE9Ej46I%o5#8zg6OZv~^)zyZ9dWcC6tWMVF9S3vKV*Si56%n=gJ#6jtMl2Xx4XN$k$pmm zla-ecgDeFmYA!PbJ;9sXxc~r+Lj%)XP#{G~6$yE1Q8k@}@ZiwM#Kg$Z zTx|gvG0lm-g}HyTL+CRm6x`CNx~!g&-$*6DOVH958Jpc)oSmJUf6XNvm6D2dc5?lE zYP}txJV{}?5@M>$3rj;242&<179J`(K0-b|LPk0=8Ugu#!mDaBdwv&{071g?UK9|4 zPsoZvfcqyWB_+-?IYy6KVg*h=Jv`mHG_XTrM^Z9CGV`*6QvoAzwG|RkYJe$Fdto3D z5KDr?9s`n4XLP6azF+apeWB&s#f4FC2Z)|Axll;^ElavmMjs(U?3ky}3 z5mOXJhf65N&dSi#Snqrd=Ya)J7qpQv8N44YAHAtJpYCIRdGqk>;06scG=mWW*NGb* zCO1oKMWDC4va9_kCnvWP-yPfDK;R)GP(0YzFflA3Diskf4pnNp4=JOrlaU@9my>~X z0a5R=Gg~|f0a1n7$Kk<7_2V>QXK)s4++Z22Qk;Xy=`y*-N~#_ zUl`+~M4iQRK|3iUQ(p;=PYMegA?M`eWF;oY=U~8?uuJmY#j(N9(ew5g5E2Dli|){# ztk~a^7>e$uCqYwLX?=pF$?Xl!6B`i;I-3fEOEipPR6G#eeG$uwZX(b@0lX&!u~YuL zqPPl@Kp4~npQOtMZpWResgY?GrAWuF3+MFI!nU%GmWqix|^Yi(LTER99x5%FB%4@Q_RK2$H#xz z#^%8cb3V2XqB4*NBs^3VmY544qdNoczjNZ!%D(X60&Q5Q*e8^cj9>T+@T_VW$EJgj znUV9mMaYa+AqVb1zO4Pk_$KMeoA9cpi?YJfBTy?p%<<-w!8V#}HutB$ zn=g*epPS=z<4@`)JS)}Z(0+A~?5e4l$G^!3f203Fn4av)%Jk&qWqoyWGjw$Pn(99b zpHA;ZR-CyV&F~m9QGKl03>HWv=A~h0;Af`*O+ojuZ3eVsk3tEQLIDFq!^eO0;-Ta~ zTwNJ3pI1rTF@bJL2i*Of_A3CSeEri>NiU^lW`8vmZB~Mvdsy~0KS}F=Fy6qnhvs=1ppx9EvGNna;b4>W+NsUnj z;YtC6Azqr65lza-MkJ&kA8wwnpTMyJNul~un(J7!0jU+WjbIF<*z{+gtDS*&BKp$s zlH@5z$_Ivcd~RKZUfe9*gKK|Z-3i_J@bPl>KI#e{^$pJ_mb3MrBalM2%?rfTG*whe zXzBVPrAS!N6ks6uHYr{=Vc+xrV7{G8M@f&5!z#l;S0+1`F@oEE=7WKU4g<=}%}h*8 z0V5%yV4-5eWIyhRZn8bx9|(T|zd_wo(<+LulaCc=6AcAxkF1JlP1;UI6T-LusHf}O zUkT*KN8})E{O%_qA+jzd85ZHt&ps=ca6+f(_Dqem)si;D&CatC#^K`{F~dkyeIi`+ zYijj%a6%yWe|_Zdc>a7^e?5M#>yX;ZeN0JRT!f4wl^tBkcv0nTDnr(cCB3i2!HGis z)DfDOl6EEuDU%eB<1C<*Pn)&O)LiipB^!F-;MA~)aAahx7Yys8GX{e3WaVYp_7B`i zV1^yF)aLMddwp+PJ)wbOL^A#<$)0>+l)OdPk&pZYK#XmFu2--3{gKPX)3V3*#G|AI z33t|xn)-2pDo=>A$*`j+tXid(IewSDFug>{Oz^|U%g_Bf!L(OL*qHe2YjsTXur=zr zpq3TJx;TVs1hr+2eDU5j&B@WleyDsAGxe6+C&yo@sL6k#rD7TY2tyekjvJ|mawHPD z^GowjMO^F=giP#=PfzRkIHhJPj~~442|e~cda}!C9w0nca=*ageMyCR;W>#hC@~JM zKR>stx=VL|@1-2)rHQ?T{Z^~z%1^E;(^qhC2uRQUL89_Xv71WlA$QxE=v_wh_@7}7 zmqcFXx7jp8q#+Ol7Jy}{s%$RI&acm}t|{ndW#jEuj)k^poe|gA?4FyC_MK6&-Brc}Lre=ntWHVSb@L8N3{Mdk*DK9%@$=FjH$70g< zE1pr+v1~w6e+b0xTPCL%0C%-z42{ zv$F%-o6&V-6>LpOBJIn><{pe;zH7)m^I_)tiD&3G^kx>*jGk~_-dn59pQ9#`K|N&_ z)-5sn&Q+YU^-0Cu4~dDgVGBN9`AC0;%Hk9!16yjIm@aI!(QQlF0mQGg#M0uBAW?6Y zlkLx&q5Jp!*V5VfZr;`33U$=nA;mOZG(6G-5j0y7RkN?iz z!jBXP@nQL;WaDBb=_LFCKDBr$T|eNV=I(F!AYrKi>Vg7$%i|rmm8`O+mdL<%br&;5 zy`nlCc5sBd%PW=k0iIqpLXz(0z?POmxKG_|xe5Ul>2{Ay0j&o`^L2jvz+NHy_S|A) zx{6`CM?!I&e4NV?q9-VE^?19_ej<{xq9P!CNLm?M9U&Bw$!q&@pCPJSM~BEqm&aH- zn+rNs%F3eY$E3S^rz-Pb97CQnSte_@(rJ{YFBr<+GcV2ftX|~+_K?a6gov29m%H~8Fg1W? z55#y;9Z_Z39O!f90n*>81>81IzU|Z}$$79m2(Hs1b4yo8w2#KgqF{ToDYiHWO^wV} zn(N2drVMLbYq(V~bH>7-I<~ScB`Y`f7;Dl@D0!Y55>7x#Q)4mDVeof>s-o)B-=6z? z2)wJV!Bki3cM+x}f_`WI#g1NFt#L5i8x54>z=n#Mvdqb%mBpUZC!@p9Z z!vZ1vGb^IMA^{#hmADL4yD*;A_Z2Ce24T;@4EYFza0z1HC&;^N_ERI7{$WYy=6{h? zhFJh^;cjD8TV#r{Qz(#OV5(Gn+1cuvhcXaiz7pI6?A+qd#p#I1$f!68uofHMF5Q@+ zh%HeW#T{=|8Cyd8X?IKr7#lxl^4pr6?!SdbCM7{A$SBCWg}(aM@##7aG>7up!iTLf zG_*8Qj-|4seFCu-)vc8T`t2mk(Nx#kTyNllf}&z=ylWY_r_~HoQT{e{RQ(bWE)N}4 zQ=$P@m$wI)ALZC^Y{Up34BmtEkM_?P6EcM&QjUwh=ClZsnvUc$<@{Gj-!^|bS=mcI zj#!^OG0ys4`IPj&PnrKk_5zEhwkN)|eRL~wr#QLE?g}8XT>bhB%)osTbtM#+7bXQ%bCO|>r^T$nKAn9&R@DC>rW-#gj&uHsffuH3 zv46UXAnR(<()aHOEhs83Ci>!8*Yo6@QA$lmJ1ZxX33vX(yO{H=!#*#M_shNUm%+`= z$nx}Z2@dq*<*uAg}Oy|k`uTN;YCaUX`69iu)ji8AbF{|h_ShdE3C+OIP_ zK>Fs$<(WMCbqWCmsV)?*8%HqU|R>~p$uiWrqMK{1~ z_i(>t;G0*ypdm6#LOvi~=_yw2@3@?}N*|@~U7(nXqM(w@EIoPM?~2lf)-Fm4UaF(W z&I**DBFNt5pKEu2KfLA%?Ft;{Bf0C(zoscH@w8W-O|C9(jlJz0i_0pB*=Sdl3}ZqO z^}UR&uU4m@OHW4=yJ`JU=qVfo@3vx~-xP5h4Cj=D&P{GKYPl#4^~?f}3Is?Eg$Hez zHF6xN!RjlhN>jhl;~~wh(fdnK&?k;t`Do$TOLbjw zdx@#PYxT_rb`B0C7%a3t*uSCty?HI&iuflOjD9kCV#Qchtz(T}vC4#YijL4!uMeL^ zs3=9kcr4&liF|J6?a?TB@$PX~Ma(o>o{$i4ZGgC81#%7||+ z1KtYd+J{emw2-R(=-$y@y|>{%l;JOtsh;Dd?lwfpNV?0~qeERng+?W0g72+snT7*C z>==(@3tniEl1rn&2k(WysK6P-wziEF@1-iR+C+Y1reXjfHM3sLS>R-45dyh1RW%ju zyp(K262e<*;V5op>!gJ%eV6~~rRxxm?RTx^wdc+U$Hp>Plr+1j3}W$byOUQDi%8{l znjDSLJjE7qnxdKVrHQV5#mWwpnOGPWO+IMuzVOCZ#I`cRudTkftHDm-NxcsyJuMS1 zX`=%~t<;{Exjwloecl*m8vNq`VJVj=w-OQebErH%7gKI~LR!_$1QD>S0aDs8fo!6F zsv`?W@LZhXF@@eHYO>QS7V4T^ovH3luGc3L_R_YRhH_p;llMsc38dMlRTDR}1@xkb z=4Sv==e@2J*L&EgDSP}Yx;ypMd1ttoh)8JXq~Yp|4jQgLl42r}Ey78EBinaCu^&o$ zL{MOCbn1mW>5>dXXw&=@RVfpUXm<81P7ksyJObY(*;BRJcy z?1&UOk$E;IggYk_V_IHqPw{{9VwQCHroeN-5B9Gkv?#+=%qKiJ7;L}KifBW6kEFU+ zo{Qo|mSu2yXDK^|4;CJ}*181x0EPQW3V&{*8Emj|2+OCT8XFO$=jX{O}jpdEjy zVHg&Zh={-VIr@0`yuxBbN(oCx#=Cq}@@W~w*o+@(O!BW0v{YuPB%~jd4~qsYQ#M?F z;$uLQv67(;hcM1668F|6{nQ@K#xfa$y=$Q~+cF)d&5nDJ8*XU87iX?WkQ=)2>Y9jM!COey+93BZe=L#ay{HX zaKY14(sUKX<|jWrr35t{#X^Gf@{C2q6fKD@`hR@Uq#czEe(d`$D<`A;2~h5Mi0eGB zehhuUuCIMCqeP%Y~6+Nh82X!gjxA04-WRjNGba$6-D zuWXkgw?4f(w6iA~i|}2*AK(|aGMj4)m7%i1%28Y7{^J`O5QkW5xQm>qI{(Mv4j#dU zH3c(u!6i;YN;V3_3K|^P3uJJ*PTMID=PsE<7oQ;Kd&o@TVcPEEoR*P)PWt_>*m(n9 zcvTD&$G3f?uo670Qssq`A92}iq|^F-Z^ISPzRJ<3*0XxS(e80^@_Q zAK$wybNLY;Xx#nzY)PVa<+a;L!8Fw$EfDtF|g;%d}2OXFHgp3SunV#sicv1ND}08 zG3B@;{v#RXQZbaCV$Rbt+aj~D#N2utDI*itYMQB6e8ugJ8Ivo!2a`cU%=@Q4q9DZd zhz89~cDbHorX&*4J&ocl%UGj8snO})rHNJPfaGHiQ#2nnA(X`C?45_Wsl?FWY2cMG zU!T>~Lu#)(vJLs9Oz{_c;-CzxOn2YQ zd}x0J4x7u{b9F2tGrI8BU(w|1p{=g~AqhRb3<6tLd9!+QY?33CTs;Mylyr>G(J>tc z;>qcOfeFog&F%lvNwV;KDQ8R?6g3>*BAFkp1zyEh7$aN~c3pP}WR(%cV_l#m3r?m>v-s zjk5-LtzN|c4vT#;o^8sD;wU}8-QzP+Q=^PlrHijuIx*+}7=1V->XynMFufeBqySDn zO6S6drv%DFS#pYCy!c6!VJbD-US8fkHK=AUxt$@e6eBFP*VZ$wB7PZNv2|=ui|n3> z9W6b^^y;l{@V)8q7S>YF5#%qAJ;Ae5dPERxJeV$yHz z&O58187SOC`CpOyVd_*fdxSpRG(>PjHW{1- zW{3(Xsfp> zSwW3S@kIrr&gYu0CQ+FLO?~_PQo+j;)TElt&&fmbFk0fLy4SfldSBtkqcmOyO;nl% zpod4H&S^m_VD3II7gk=p2EC;xR72`swp+u>hG+b5Q)d-^UIfwe+Xw5-;fkfv3nS4nC)A7I!2$$VTb@6=kcrG6?GKrlFAYUqaP4$lnO`KI64M08RZ74HA1m2$l zmDM{{9sZVa(hMWh9Fid0`Q&@X zYt)irMVm+|Aaq57_?(sPy*v4?!k5s$co$jNFsbqzeugz9h#m#{q^^+k^V6;E7ysI# zLSjCS;Z##_Rg9(nOmCyVqpN4*`_-a>v!+>fegz!!zf}Pce__{rgZ@4$`t%NAm)Ce+jyyQ`iffn@;d7Ah(}hWpe?u|XLdKk`n%Z+=Q-V*vsF(% zS?X)==kOH$b>`Z7Qy0f~m>^N8P?RG5X$??qRB8UHv4|mD{^BsOqZ3jG`oXY%prmUEo_m zOLt2lHUDX3DPYL<+qry`Hn)wI&<%gAz(mG$dSY<^5>HA_v#Bp6=yyZtbABDNBCzLo zCw~@|s*E5uyGxkh@aVXVbV&0$Hn3^DS+t$@cdYC%kQdiQeHulAEfQ)!&J2f!K+BJ! zZ(?h$>MN{&5D1j-B2+-SL!FjysF=G~!4V3|VHP=Xrm~8JbwwfJ;M{;mTkE(~b%@$x z1vJp`r){LV|MHbz#~@7_L-q<@0{?+>H(q5O;8a>wT-wS(w;`5w_j`W-**w@7p4D*A zlbq>c=c$H20|3{hbVg1;opfjAWv;e$o#)^C?tAaqKqpvY1WQ_Q`l*knBn4v>lRZQo zu6^w{RNY{VW~8M?08BJvWL#1R)D7Xo=$i2bzI*lNV($9;TGTHm9Og6L>xrM*-hx(H z8}lF0iiiRwG{M{F*m~jGg8-e|L#oc{(hYu1SLXF#mlcAcz`64Bf`%@y+k)IPASM(|iKx5G(;X zHPgZNW;{)Xn|a5xs9;w()08MNMCKGqsGZ9Yltkr?#2D3RM15k9UCeUXJC(97t2V8l z*32kQZ@+OG+he30L$%NB-0Y^#QdjdIh1bcy!@NA4bw!1xKP>aonwEwRM%D$ToQHCy z2J$zu;NLaGpHVEbAcOU%6gAC}@@OY~C8iiDs@*4eSlGE4d3aal5-b!_FxpA7R{DIO zpn)H}x;AmUR5>r_3b#kx2y}nyGctbSEF$d5sj+cUvA|bQJ7JLA*oB6>uV7I=#)K}u zY{eTO(8$4V{eo}h3}Em!$RV*zNUm4nDS=!)C}=UwO!_!{h(NKCS>gy{ktm|oKR3C}-*R4SU?980cnE~-@+NUWOObUA5f+y_n z82BMN*=s17K$YtD$_h}cmtI%ZO^xmwrMkoE&Dr0fq1`oyNX&(7ti{s1DR>OB@cI%o z2?37Ga;OFcr0=hecAl>XL)YC!4}Y2&BnX^4BNv#6-? zN*IT`my^4_YE#Fyh7Y6`#D^vh%znNkxN(bhG9>pHnsRHqYD#))dMaw#(djXnSbrl@ zQAUxr6>;nACnFa_TU*EKU!sI0L{W!YzuZIR#z$$WiOEN&Kv0oCy1Bj{kRN_V&43)G zZ6(!w3No=y{SaW{z5ul;6bWf`SKC4}jyKRZ^$K5j49}pOr~`&~2+Y>wgY0-(e4d~q z;)-LdLyNMxp92G+pPRO}!MU707<|Z*?dYzorlO&uqTs8NyYy!lC(#wnT0Z=uHJ@Fw zZDSnBvd$g){y{U8?*PnYb`{KHlVg)oiV;!1r^cn7A>a3fL@%^TT-BKsem=gL6hi8r z`w6g-3X?aq%z&&^bp<4rys?{E^l#;DVx_8uk-8Q}ncDHrFS3grL_yt?nwr znm-oj0CP;>P-!(cH?yCq#8MvAyK?{+-4U}MDm$d?u&b?2deo~l0MCg)ce`z}tE>7T zj>dY4R0lz6_f(3B9qPn`gyScTuuwOy9xrdFBmYA26lM_=ycn5ZrB59Y5 z2~5vwf%-4zN(1_xOOcV12P|svFCdrUW2={Q@M_ow8w$Gw6=FVp^_J6^FQ> zUspLIgr3zX2b6gC)p?KFDn3kBTwYvOD0n5=-G>dW<2i#7K#1bnsIr{Mc0Ulfny1AD%6G)20(It8>*(B*aOjQ=gTZo9r2wAD=&%}V5 z%3_a&g^iu1m0h(Iyn{a)GCD3MCcM~!G6SqC-^uluNiFTA8ptnnQ^BqyAIy=vA#Woy zVj{SiUqO+Ff>rwRnkkt#(@LR-;wB3xmH;u&?1Ytr=9Cp6(zpo<4oM9NDmr^Pq=0{E zF?cu3&He)7t6E8SlZxU|*^v+@3rIcrHSsBsijYk|!csv~Rp;1$wDxEC*_rwt%-p;y zT8UpG@vj|7{gqp9u_@}S3uD(*3MzvX~UF#Ku0Yha8)jmiGIZN8I0m5+Ra{Yc%wblSIB-1a^5AyA)oRP<)7jtPB83c6^Vd&kkv=TyVY&Vg}7B zyCcK6sJdeevL{@?04l|;lS0@z&wv6i8J2-`N(yt|Uq8>n_L`?Q^)Xava)_Fml9-wZ z!j6neHLe!CpZB31+-M4>LNBA93Ub5oS%b)`?@l+Iwv43s02m+&&bele-9G_b+3p_B=n=KPDJd(vGLcY8d?Rc z@4lLq92uE>`t(u9*g+Ee4RUBgS}tM4C)r>CQ8>i6VawWAj)e@F`w=8xG11Br*V;JB z#b9q3$Z%d~4{^$)1hp-0uKsu1yXE<3zlgf2R|LYmE0rd(-o^_V1{o{^KjEZ|U__{o zdqZ#g>+Ss3*1x5r&eHVHM{K^X^KJNgp7X8XsDO?ZcPs_3lF~9VQ20|)OjunqM*?!9 zgAoV>1QQh*9w8E)=Ii{l<73Qp^{t-V{0nbIq;p#FJNm$gP(wF*R?|Mu*d>;V+bM92 z6atGJk-*>4$%%OP??$P(IEEa?D#v^<*i{A1T}fSFg!um~}UJ~NXF8Ltn2qj|RU0BfoFB+B-jtYU4{?@1b{*p0u2*<8GjqCim z4}sGs3n0`-dGbZ5N^^fDlko^2S0?226+?ovkl=UMzt%S35>6(2eS5js7c?@mb)n?u z=k|PNs9O?C#r4LJGdL={a+mv}^oSRuDzP>@ehS$jMl{4ke~QA5{Pb<3Or~h~nMU(_ z`iP8=kio)8$tmybs@|X2ykD_PbCg}&M3sLGYd91-dMG7fS@(r;7xvcTGCYX(l^N?D zZymxP%@0L6PRDK(t`RUhqKxrNCHVloRx|@D@zz>jk>U*1R##sf)Wn>;q|Bt~8Z{ug zQ>*~aid!Pg^Z8s=Pb$YmL&Mny$6dbPFd!gKT1Nt`h6Od0;}D;J=8(vmX}lC9mL@Y> z1W6D9aub*mAu5x2JY8J^Ct_ju?&d@zH<*>U750x8WH89+pv$}dIfLME z^tN>w)k$l=Tc28guO&@lv8#sVyXJJYWmaLy{5VT*#Si3#^FBGVEhnKH{NSB(dMqWI z%(-J51Kjp1#MR{qNs=2QtF+s~MTW{sOwG)GgI1}w^#&If0f7?FjS0DHCgsge zBZE7&Z=_uk;%#<%KOGu;n|yzMSm;(_PiaEWg9?KO={;dIRJ(f(Ol;~~yeMdiVW?q< z)$c`&)LG>@wsNa5hpWh3Zxsd^fgr4Hmd*MMT<(JYiIY|$=A9l*!Q0uZqy#4e!s`8T z;$WqiSRXW0W_k3%Lx+vKEjRB$5F78ORbVOjmY*A-o0-`-beg{Md&ZAWl9oc9*-|L zUGhy~jCIM0u-5K~BQ?QQpZh%8VW;Mzr(9M@NZu*t$D?cgjco++?!we@&^m3eyYrH8pX~ zB%kRt(Za1^wf&U^&-q%<)Hs*-wA6igJ9_Fy|7vlAwW>^ls#)6a|v zPI98Iypnc2g3<83e3q}DaI?!#eiTqrZfj<0ZfsdjKPGo)O`b_mwcU6alOVqMq^JS{ z6?Gv~!0odKeQs57={f@Y6tPqvrZVmKw_qn_fyLPqjUX3DL(7buXs~|9okp8X<_J+gWe~7_A>59JIbf_8kDHB_E!iG&5DMiW`z+9gHr(8zx-mP zStl5v^Sl%+LT2nUM}MATsb-5Wl(ra`3sBO(lXLU)NqhaDHZ4P$H$Ae)R#$8ziSKE> z9Rj4s2@33xGIU&gROnB-RFU-$qiXVT@es%FPR>E(W^%O3s35`B70x^R=DR;V27_EB z!)*+70IzSiym2S3l`e`lH^E6`W>svLE*TU+O^wl zQIOB%u*3YeW}n8jH2MI_5wZXtYV0E{IHx~LsrzLE@13*Bme97ABPV|`oa4r7ED7^` zKFu6G4X+jl9rVp%%hAos21P?&Iy7)ABpp$8|4`rSmD(alV+T^J-$q|Wf|rdx%wg&V z7blZ~=DH41#mj;_Y?=KcXINls9YH&CE|tkGKt|p%-pJn|*}1iV{JrcJH~mlMdGXNW z{(4?;3p#9(?h9a$xZn&E0X8fqU?$XEqw+F_yq%_GT8xi;^O#R#0H|M=py?teEDOF8ZKssdP4a{k%FJC=T94w4S)H`z`h!KnJn{ zu`k3+$0~CAi$5(w-Tl(3WAISTJ*MuPY)54=t`B$^IX?RHu<*^ro~me3WDJ}2 zy{t@2vktj@HMH~C5mV?cfLAN1{x9einGWxWwHVvZkGmx}8BU6ywjmu(!|B;P3W* zY4~-L&!iphFW*m9XK93ZQN7j((oBShyN^HQkl>FORG#|l7TOD9pP~;F4=G)Dlb5&i z!R~i2)qwCzRkrLy@I&%m;1o9=wVdNljH)_tl$n_m-pqzo#Ik@a8ccUG*mtjEu$a&Y zF@OqDZpGW4vBSQS1?)0fT`;3+?+hqJJQdHJgIr^Fp2$~B?TOUY% z{aU}bwm0XZdMa4R-YKHJwJRYfEmK|v2TIWScW&8X*D14^-|Q)oEj`ubgap(x+s_^` z^y&QK*4$L_8xM=znfb4s^kjvVce{5u0*afG&*b@Gn#Zayd6 z-tGCBxzI>f>tDih^c>^HiR?G>?XK^SOTsh%GzA2L8#$n#*@hkYgfs{f^@QxyG_3vW ze zctQ#a5*_pI=0DXpB}_kf!6ax1l+gCr#rDW0G*l8?5U~B~zng^RAqAfxfa5+95uhfa zzbwxRPCEmJ5SUd787VnQmE@CBz%nEs2JKg^Vp91L+kCLCdZi06l62Qte%&3uF0Y^~ z(24;b@5{@@xh+3B;=--GysNFk1}esm36v>2#NsxkGC!oodq>9kD1eJUN!qid@2~bx z(B@TxYx+KrwS&Zt<_L=Tt|Y6GKg1;$dwr2VYOi78P)E+~jB-fd8VQ-CRuCU&iR{_U z#ay^N(PD2T5GgY~U_oL-J_BM9aNV7(An5zR3IyEvh?F1>T%AK#`wl8@${#jPtoBYg?jMoJ3)`HUoRu`+A{3X_WJtrrjB+RPQj2* zs(Ui$Bmvr4L9HD^?bk_pgaaZfI6=|GmqgrIJ2HTc?pqvK@PF95rY=ojEnBv2+qP}n zw(TzaE8Dhh+qP|2b+P;Q-1!CbKFLF}l02Q2mE`1{z4u^4mdek@CnlPS1hBF-xH>np z07pirmv;dV`G{I5+UvB*_R8m`AO!jPMp4_P{J(vmrpCr*l-&K-`}y_z{o(n~UiohB zZEmhUku5(DH$OkG;MV@8US{t5eHgNIVxPtn-NqMoyPnUqnvb%0?lWY&)CSo}f%nYR z)Q}vg-D$#oge~l{Xzpz5DY&$v9U2xAWgcZny9SdNdi*}hb6F}#{O8hC_wQ?1#-JQJ z&N)fN!1p3v;iJ~dKfv*p8q?PyzHkQx=SPRAU{%gKE`BY7l=qfC*H5Y>`~Y^LT9}O1 z(Gqq!JU@|to;)h55u};g$+Oe}sv>CG<>%%z$$c>CE5DEwtONx8sudj1>5{eV$a86N!*wM?6oTB`ktEs|>hj-656?!b+ zGsOPy*mK2ji|U|7=;+-*Cbs{hkw8IgMf>hzi@o!CM;B&5r1{{(Xu@X_ zT{r{f5HiCBeUK;JuKcHsWwE>lx7(J*T23XFp8GP3DNR{Mry+cRKurjjI z!n@q~T6Xg29a4Acw)wCOw^InFvR#xRzXRM5;t&wuUfnp<(@#o9_&nH^F)WG)`u26P zDkhdPEAMPw$>OAT2B$8T8<8Nzj8#Iu!ZAS8Ce} zCp|-3T;u)l`ne?Ks$BG8E!Ued^Tr4cw);}13HjG4@G>nfC^0h&4EJMwa>~d(x|?j$ z;a{TuYq8Bi0YsaNvbDH7Ik&X3Fo6XP3Ejl&oZl~djSK+X?XXu#E7hR{PPEc1cxjF5 z>5?E-e3Pn~g!eWTmx4mw{Xd4)KR(V+9vuv%Laz$0R?)N_XS1Gs63pnPPR_%Af|r?_ z|LD~CVVyYClMjjpBXSr#&LnXf_b~RBFA)kKb;VAB$?qOL#oY8zWEL{P1E#iL{}fSL z?Y9dv^QvW|7wXRYOmUPNTl@u1$MWL)m2(ReR1NwSr(AI)Ymz$NsZRf+Docp)+e4u5 zSNoI2&EFQ!S7Kic^PVvfdTP{}*rwM;qoU9i!R;@Gg)cUYiLwT(12g|1_Pv zH1Buf<*R8!v%f!i4w?eb6NZ{RCZFT~J?eu+>^UuB-0kwcFGQ`+c{*$FJ>U8L3rP?< zs(!h{Y1ZZ)iG^!CVr_^rQ{#a0NimGmW|pTfAIypERI6nZG8Z2=RZD&#~HR8e}}Qob-$yo@AkN^@BS8m z%D3A4yFu!d^K;DG?>e0>=y$g?I9A);F3@bZtLeGZ{Cg7huf(4Ypx=L*UU3iTDYNUl zU<6<~y;1unj+W$cIsI-(-=i@i|2_nxz9-;b02w&B(DcBcY+54x^&os%zU#To=JZ2| zt~#~sae3&=Uhj37P8HPmn7th)rQG+L``DG`3^>!FqG|t?E?B~cH4OQT$QMpH85ZA8 zDB$u!ZKPN*U;Y=ZuKbYnHX@JjedPYvZ`@e92eMN{kAUlNdd(XCzqPUm{`K9jQ?MR< z0aITLU7usOf<6zLzus9lX0qq}zPdFB2xjYh-;>-&$6UtkbBI38(54s`fePa`A+ zUmmYsC61x>VKZ$T531n8KE_DB+M|3sCtC)Db#Qt81hn*f33>)i*}`MQD^V#a%l`5s z#1$ykzQOqbcD}ij034OH*(sak7~Zjt$cvvd^6COwlu@oGqVj8>c-q{x z{qi$LyzQhIls?G^2=#dJU=bwMy|p!!e~43|{{307$|xu%@`fejWiVq#pbdo*|JbS~ z%w&E%O4z`fsJdX_=Di}Y3$UNBoItTac&boD$&@vA+KH}58K8b(Xg|Mwsl+!;%Lm`g zKfJ+_PzS(vEV23S`=Srx*IQkR0lI955z^c(%gK2j% z>oz@#18jR-$MEu@+`}&bGrr-Szl5KHRYCv6DZwg;9=Awc zQ?th~10P#f2B!3*jdo~?LiH|u`ys+`LhXOc;#a^;+C^>(V@KhbD{0aEmN@vz`9m*< z;}VbL51XQwGPN?PgsS-c)G;w~S{DQR)3g&Mam}-q0O88AGk=ENOu}{z#VR=2BmA@H zcO}W%W?EMs zJx(*SXV0WA<}VHH6hSJTE<>G>JoAa0QI;jsM_-z%I@8#*=J3BEEv zUj8Ca3xMT;m?hIirCtuMQN5cgA55qp(zUiQbp8z0E6}KSi@waWv$ecE&dXEQ=Vfx= z!1R4C$L={~{4!O93a^rZDsB`E(h4(R?4yo9v_Po9jB-ix8te`}7<_B{H<3bI#P6BZ4rla%aIBgn z3^nkpre^ddbhugIf|=QvGizJ5(mi?kU2w2vX}_u}iI+YART=;MMN^Wu)TJI7g?Y?xux{_mbmQ{hqTBwn9CDto}#Q(M$=Nvg`PR*tbI zd$xFn^9fLYs*4E&Fy^;Bt(*!9GlZcSo?&;KOL*s0pu!cG9jMOT&5jHb$;7I@-bIyg z)HnqFqO)&E{1QZDwEWMw_$2M{(%*;Cy)5eAu^>7;j{OGNV!rqJHv{92>(h3BLG z7MerH1lAI0Zgt`1BE>Z^4!C!8S;>J9!d@&s0ji>SXKZCN=#<~(4?()RpS9iig_4Nn z1E>@i#d!cqKakQMj6ADCNS${Sf+25-1e)I)vCmyC2jlMAtf#&YGkX=|#6rMaE*|%j zWT6x$k#P_;4b!5+UWmTk>y{!e;cwg2`^=rbDG{miBrg}d=@-GzW{`nTNasU0W#8#g zymy6GL*C8szl;YprBS+$TWD0u?987h@vlR&WuPYz_?w-A^O;9X~UzAnaT@ zhZ88JCCbepr%WXwby47OVh<(gBMDdBOpCSRqquo5HT?b?`-nc#I+q;(V0WEqd+p;;dYG;)Iu?)A4(y>TWYEv%$z0jZyt@ znN7J=K2|BaTyr`$fiAp8o!R&0J0Xno1AlOQiL+?+ox++U^C8;@Y*DRhEHWEp&i%u9 z5o9AMgUX2e)z@HlMyRbGH9#_3ds%uQ0zz^nDY@Z_z}+5tU%Ag$sm-AwfGlwRB*At_ zkrHGVY%Dg}L8I@o?X@Z4wxds{`Js>fJcho`4emYF+_>}sPfsdGO(9vyV3H!?JZ&f) zk_ANHY|E5G+K7W%6#ll|T~|^XxUV>`W+Uuj_A&7?w1u7O7tRYBvR{Wfx3b1B<$=Ud zN_vCpVtm1f#jZWdWyP30lK^lU zwgO0?-~)IL2GOFRxo&g8?^hV~@3c?lWZ$YhO!sYJ_MZuN^H-A-U%<9gKaVF zeK6!ei3ijMw|;>~s6d7;^j3UVp8E0gqSN@wX{>c+Yq8=f_U%7*L799liY zAC=#8L>m1~lI=koh%y} z{^C_8madjqwY1q{Vh)zK5czTwM{?g<#A6nq&L)3h(J8A746FGW?xQH3nX<~n8o_c&2Gf!LGD%>m^*BIs zuw6B*^OqbWcAXf5JpulvIJ_g;$RdXj^iL_A59}BF0be_QWDQv|j}bCP(AL~F+PTe~ zntGi4X8rIEYp#UM^VEM$4^?HZ8oz>8P$HZgSIX@qSACyz{cf}{ohmq^K^fXr!%U@n zAYM&}TqoIf{<=mL%`BSp3w>I-j86)b?b}&ZlNcc>@g<0x_RFAxZc#TT^HPVJs3314 zmZr(;5}8RTLot^oqi%A|H%Ln(U9E|^stRP3ApqbDS(tIg)utavO`&)UMD~z~4S~8? zs*c^uI_b5|!nrB0HFv;NH}nbwgL>RK5YT&1Aljy z*l^Wjr3hEOlEqdzJMkoikzRDpV42vT7nuUQS0VaVT-B?C%H*P$$b^=%9?o$Xz_031 z)w`0pAbBstG6-hbm_|2y&Dd6T@>;U9lR&tI&nq-9d- zzquiY=C*9>r<)xn%>>pXKnW52xE>A%{=f5oH^Se)=R)PXHXK*2Hlu8^5{*g=&skMx zF41(dNmLfi!9)*y^NXVy&V|=w7@uhSPr(VZ(M4p^O+_ba>eJ`1B8ya+r!J*B)tp(k z3hnEJT50yYao65`f_Mp5WF+K*flPVeqEa%I{?b`H7n{0WplEeXropGY=%Rjja*>xJ# z@I_txB(Q48%0yOtQDx0$om)3= zIdkc79YTCknF9UTARq>usO660K?rXw=iL=RX#$ zau!6mY9UsB+xG1^TsbUr6umIw4d{CIEj+zJryXMQGVI8%Jxd@mOT!cV2qAGrn`7}- zh`>KqeOivc$7RDUaYrYux!Oe1?Jct9<=qAg-(4~Hzt#la(HS#B>W zs4ym{Ze8{m)8lNh8jiCVopiY9wubFt*Wm*(iXbpK5~tqer4+hP?NB;G$}ZiXr}gkz z)EF+8%J(QrWC$b?M_~4XgKY2 zyp$K+)RDtxJa}$WOVrDkZyi%*?(n9j$kw5giW6uvS~VC?t^3vK&)R;PxKz6b{pO`@ z8r3SXuqE+qqoU4ZV|X;w>B~4 zp2xLhvmeRM*=ZY0DEPMOk+s;cU!P}Lnj$Gk$0|hpcyQx?c~qB}q0DF0K>Ce7jW3gn zF=Bg``XE7-v2Qvx8Cb*b98%>ma(h^sAl6u)eqR02dL)VHQg*cp`Rz! z!}lyMv~G>Y(%T-#LUfyG&#J`5;O3=Y$4eK_McmpD#QXU!SgS>6&D4Jn4b;Xe7HOFH zY}>EWdOu>ZTZ+`3j$V_&>>S--$)eLf#MD&>j$1f$-&w%Q`$92HE~@Fq zjF#CVcDcV^%mfd9&d8cYFl>KpwBxiG3_npeuim-w;4cr~Xu3Ue!Qc8ANOgJmLyA8{ z;k(>>Rlz5#a%k3g&^cl$OjyK&%wMWI+frfyMr_cVN^{2D*|{c4(*X2$%~_kT6q9+V zuHIBC&7yA^H8_=Uu?5Sc^Omh5irAqJ<6K+ECe4oB^!A3d2+gBD{hG8iy2aOoXs9M> z;~tP(6~wVz!YPXK&T7z}!8SruIKH@NIS&MY2*0=qqA1AmH z(O#!DSlli zQC@P=j`B56aQ%Hx2%B9c3&7+JM>?k&HXk&!kmdi?bxJl{!QpF%_~3f%e4xW_zUzDz zo+a1&p`Rt0vt?bkAXtj=J~n(@;C&yIom`B>*O6{DL(bsX>{24=u^Z; zK(U!lpAr1 zoNrH;8G3k|(Uq$UM>EWJxSuuP&1M(j$gFqXELEganH}~Bg74YV7mqtooxwL2(wpH4 zZyP?EX|-$d@pzTlmHQqgV}PN~pk4!MOmaCe8BhDHXu4BZxn3l;E7zmh;fkdld_aeQ zyHx91t0Nm%V_1GM1V)tO35TJeqX%NBV>uj7t>5@;^ru3tdiGt;gmHN2o$gdt$N&cz zQa{4)ahu8s!hvZw@Xcg7&+elpGURuy1(foL5}tVnqxh+LvzU*pi2(jbo@wj!l*bC~L^=~Mb-Y(m z8JK4+`b^vHKVMO(H)xysP!b3cBu8@mYHg}jBd{4lBDHXj45-Q}XFh3FV~{#Q34M_2 z?1|ywe1;yz4Epg`aCqp|vri+~-=QAa`u+RgJhL=A9R0E;?@$UHS!s}NLK=jjTc9^V zhtQ~N7$R;vWI)fV5V-o?meJDk?IsHJY1d9zClis7K#NTM=lHj4cWSb!UFc%21%MxH zII_UrMdqjJy*tPAaGKWp2=DV$}0lzmvA<1JmiSQZh+Z z4t8U71_d0gO{S6`JVdS-Z>y@w?^vil+Zn%sy&-loq}JU4(30*T;}hVa1KDb)-)VpY zyTFaY;D!MZhLBzuKD$h2g}>B(5Z>*R>ke)@NriTgY0y0IzU79YP-2 z1*Ag0m@Hay{Yi_rm!nNFhHmBqEL2w*r4dv<{R4*L5PUFotN*2U_q3?>M+XXuhQpGgVZ$Rm6&ph zE{$tNpjz(Zr*^eud21R&z*JW>{SWq>d(R;4F7)OMR!^Nca?PD~5YRwcjI$N(*;j0N zHm5oP-8JSbCjYKuzh7v{`2`#J5<#ST@S>3GB862{K)5r=GQ9Hki?Fi8=#-~VP|c&V zdUekB8Rga#hPQ8Bt>2@9P<%s_U_mkTc*h>SS)VzCPF>b#AJ+ZWhj7zCQ~(o?B>I!v zphW{-Srr!f>Bs3ZM+$5O2JYsVlFB6#)vao9|5gE_9`VnDwX5GaQ%r;|Plc7a(Opfq zkil8Ep8-tT`No5a*_#vMaJWF&-3ClS;(BvqqJ+}qTDVeiyj12{;)H5yFn)^(GU(K< z4vKTy;>bb3?cFhB>1x(oRC3IC~6~e=I8WFAJx+kN$`)-`Ngx_yx6bbT#m#TD!=qP$(~*(XB>Z9 z@QL_E@gilwA!B;C-2%$cV2ASv7^NnN9w5F4hJlRbjd8+h4Om-$3eURxpdc{WrB$x) z(8@3iYe#B_DKt5{Qo{m!ot+M88&@RFmewp-?OQe}4LtPV&aTal*x*GxH@Uj&K9*-a zSUpcmx{};s+LAU6R%ihnNm>*|sJ2;*@TBJjXI$gS-KN%zPs5KA8#b*~nUV_1!hTU; zW6r%oeK7w7wKRobKT~!D1`P3hIC8l8eCmC$tw3qdt$Xe34o7`QoLlPv9b{NM_^JX5 z;e$5=kLUI%qqe0ml1tN_<6#vR?G7BS6<^8FM5x+eSj`6F3NXnH>AC44fPz$+NSWO< z)KOfinlkE5)+I#e-tNk{c@qjO7ad(av?~b`wJ-?CdL;=0IB({XM3}4*dra38bSlV5 zTjq!@x$p4x!^oI_()`UJjTg^Jb}}Qwvu3 z@NyAfrSz||l{+)s&(lS&JBx5^a3rwC_$<{J_bEuave3U{Mup2I`OWtDOI2`a{eY2)-hoyR5)k3w@?LRJ&I|*AiH^)v( zx+g=6WkC(W?zbfhA=#FKydox|;=k+ol;m2wG^I4Z z!sLwR)p;ieQkH?IGDjTKX@&eAeNcTuRvq|~yOUQTe0ZmML>SuAvOm0_mrFIfq}t-B ztye37w}=Y5N7$=T;Wcgt?zek2w&OUuxiGaE_R*@{8B7s;H9Dfwm|k*cnHjiFYm)6h z9?x8KxWE@rkSpPQ%w4uus!7%KFHXncHBcst$u}k^IgyGyjq{0i1cYe+p+gl zSoCg+b@4LhVmy9VWVBW>&i6_Hd5KG~=W>K* zBEOnl{fDXrrrDS;+bbl2_Vu=kweFwNX0)kG@l0dCGTB6vRjFLEi@)_SA)Ef?V)BmPwyKnszW=DG8CuUX+ODKEfv**yQ zsk?B1v>4A#LZfdN&9b)dP!SW-AVn-d@Hu;{kPWBh2;RvTZMX+J+3Jk3`q-<)?8+d8 zs4<%^fo%JJZTgj1bdUh$HFwOTdp|BXk;z$d^BIXcGEzoJD(?*mpaFa2!<0|gT6X*4 zFpq?gK21Sqp}=2{>wMV59-Cl#HKI(2pbNNeeST-rxx6E zTc70M(jL7l=ptaSsN&bHK`dVmu&`VUa{}l|+a=urMCWZzB=*R!(MN_4R^p9bIIm~( zst8$jNS0uP;!|2`&Eyo~Y6>QGv#B`^V}nK2n1U1}q@WzqkI(1~1OKY9v3FakGu%}z zU4k-2Z8zGoE2brT39pH;U{6-hNK_kY*pElKx|d?XR8h>X#5l82t}5TaEEk%3N4WR; zYmfzO)5wJ9iTZR!3}7i6jV7E2m3wGkf`@}X5|;BY@7P7m*jSKbx}PkQW5m*asMPW|;NyC1TbqBII(SVca&Bws+HuF7 z7z{$wIU9PoYj3K*Ow-_=;alnp*h(;aCJpyA^{Vw6+xEc#1wdy>&Sm=ktW=53pUpDozG8+r_a(~sY5Kcnm={VKOpbJYjA z99c7^wCsw_+21IXn+#NEfz5HwZYHv1}zty413 z*6P}?$XyB4nFna^MxGJ_ce`gv2y|9^QpEMlFsMt_M2V76ElfNNaW?2DZ@Ku|^kR;V|KNYa7cZJ zc%aF{L={`9aF0vSZ|Zg@15e}@Zh*J0O=okyhX=3%h1k!{`z`I>+h#Xrq$kUo$cxxF zt3{)|8dz)vj7=|%-dR#4qQ>j0I`*8u&+sVih8cHyh-TV_j77SbBWbLtRhhG&L!WA> zKe^Cr?u|)i$aKsXHADps^O6s?z0FQ4PhEGaitosNg|SbIm4;iP2OqXjVny1j2VAN@ z$~Q^agwe>^5QO6d3^uZEXF4j3nEWI3mr}2Wrw{h9>b#|yQ>T4eV9DvaLHZMMy{*U_ zjUzWKLOG$=bJ>x4GE^LhHfvpyIVSQiP%kDpPCoRZmdO^VQ8K!A1_R!A{o!nR?O3*i z22o^sM5{+d&j7$w z_QfdzDm%6sF>e;U9NB&?X`R34T?EF6Qy$Z|kfH>4jj*jpAgykdi&p)`;mqq!22X=- z@=s1xh5k(X_y_cfX49P1_wob7=z753 z#vNna?KmJOR6OS1J5D(V^cmMK{OV@@iI$}oW8o@IA z_@gCP=d1D8N&In~_HF#zX0tcjP48HKHEbL&P}TNNRa0Y_K*5J!f9^{7w}SZGNLv^B z>&aNL1QRs`1sl_nrtxb(wZ8Q4>@<)$+zG%FMtT%Qnk`mW3e4*Qay@ZiJ&`*zJkqwfJ_kOmpgy z++aMb4;n_}x>E0qN_)|*vo(C&?AQyE9WoiI@uDbrnkX%-c?|Vtv`ZLk2|_Xv5IwhK zWsx15oW~!8H)Fx(w%)gw$Qj48j_4f;hx2NEerZhnY&-K8$;WZE!!m_8J%|C^FZPf@*Xaw!xfb=u3E;r2Kr_R}1Z| zsi-^CM)RAAD&)jUpe~-72zhS?k6i1@qT<=q3#}b4>KOLgF0^UI9Zy);7Vldsf?wf?;xtp{}F2hRuXZ!8esqRGV z+fs>+*{YA6h8Cddf4Y}IpjG6B5hh}E)tM@-Wb^2hVoC6E5X>gU36+nywWt)^@@n;x zCY_~S&94~R$X-gR+1%*rbHtQTZsGW12C~y5*xL`NY;^tu|5v=oV(ImSX4ev2F34j^0bhms9AsP#-m!k8mQfNDz}7P z$M}SG{H0z`HOMP@A}4741Y6>`#XeJ2?pT;>EyjpYSE;L$)-t2qG0EewW*N(R+)pKX z(ZSMg?v(XU)Q8zp{I4g9BQc^@9bR3|cynD0c8J;U>K~olR)~x<-%n>N+!wDa3fZQm zV9{%>+j!Pd3<@*%(G93YY#Z0TU0OLHh=vA-&{E^dR-{=To{qR_u3@jWE=)`rPW+l?lctoo7V1wB@;chR;2kJYHGSn3 z*mZxlGGofk3qanrs!6L)H+LB6ImjpVoz)OUKK^99r>YO4(t=`IBa}yk>SqwvBdEBx z2;eX5G6|ImQrZP8*m_NbOrk2b+ZA3Z^*M3l0?UJSDPoWZ#}(m7y1%O5HraY5d=#!T z+QC6mxV0L@;{M}eY74BxCAnf68qq98Mw6w;IF3mOAHMVx0E`*%re}O8H*QnM zq-OStn?-{#U-|ZkokDI%`UVmd4l8BlWibIchxR3r2+pOC8yLbOs<=bxwNIfp4Z9n{ ztVu_p+Hr}Q9kew}Ry@yh$_|UHBa;MOZY+Z`Y+t02?_oJ`sbv$*8&R<{Xdm~mu(4Vef>{yv$F!KcEY>+Tnu&&Hro5<_}FTHVidZP<@s|G$A5U!>Q z4eDET!fD{IU^@cRy=vN6myo2vgxw+dI8S2olqpK6_J%bWudR`Uw#xdPNq}Ua(qq|h z;-)kpWTmRE6BeiU%yDbl=4+U%OyQoJ-IG-m8u z5MDA-?Jl>99q;q~U{%W%v<;l4#qK;pF40RAIU3Hc<1ACSb@l378=Z!&5LOu~!{{?v z!H?Freqv7zdn_k!n1c1sK@NJ#I45eItVVCTO)-#)`E4bs4911pZTPat3wbbL=mDKV z8D(-Ay2Qm8y+ow%T;P@QL`s<49AJ@*M{%|CJB0z_cDM|Q_uij(Sq%w zArOYwv$cpgDHVdbj$f1-qv3;Ds@8VEef4IngphSZC^DcYs%LGoeVSrLKy?F^bD?x! z#13t}%W>uJ4U#~#aeeh6`ZXXtN+QEl=2Gqbx>oxZD z*0keJF-aDwd4Q(}^$D@y7glpQ*NkY>daptR>E4hyX1F>9Kv!p~)NW2V=1g>4g@q}J za!JR>eWhf3FZ>nE?oT(CX7eoK7@L$MhM%PEFfK#D4C95devOyCt4^7Hi<$jZDoC^X zI@pKJ^$Eoc%BY~ODRu{i&+~;pL5PO&r_oAYqdSZq%+l6X2SHgwQ_eWe^~{QRuLvm4 zgqznh({Src!;(A+S?pirEHor7F&ATei%wVQH7Sc{f!I|>1XA9bW{Jm!*`7VLRG%cO zAtTWp$9lOa1cMxewW1p4AM?Ns5TfJNsKaoDJczB^qfMGk9Y=A4QU?7wIH{^0JQ5T5 zuz)38uveo5<|7*(T6<5PqtD}62mUHo9d9PwTUc#I24*evNf++{@ydSCN>>v9ECghw zT(8*$MM)kL+Ah3x8JA1OWO`+NAW4-80zF^fs>C+QkmpOAN;|$zv9@@t{X^cB^eqwh zKz5OXs8#sL_(@NyHe8Z<)6qv|gjgH-CG&l!jCeKxl??FWf~T81#G~mtWScfdgU@cP ziu>LG`emjyoy|@kAFDYYDLy@Ioho~ZxBmm-fbkQ~>PVwnfQv1eTLxz}OkkAF6}ZRZe5u{ISy*0q z09Ct`b}b{fMz_7?XG!?PGM~Yf!uX1Tta< zH&JaBQ*A0Yv$E2-O;jtx-s;VP2%zP5`~+a?ci4DXeo6br@;4rNhh&*2Bu}@ zQP(TA+H|56o1mFch={M;oYP9TDmOd}jHJpGeq1t+0Zm#Bw@*w88d8+X$B0C#X}n~^ zp9(vLm^ihBs}NJquPiuBZ9!fP-p$1&>B4@+((Lw73po5%w@JZr{8QdmkT^W@?!kGZ zt!g6m=O&6W?x(PL0bEQB@T+@f?lvVtJmvRs{&Cx4JesIi`i1)V>Y<5MYSE8D^O;l0p44le$CEZP%AxDX4MT zWoR6Afhq|L-(RoGcuU!;FW~#a+k=MKovEn%Go(?Fkqau3B3Q8*I!S)(ew*-<{e+l8 zVOSNT7Qv7|6jyS^Z_YXgT^&QUZvb`Jznn4gnz>M)WbJ|*L+y-ak>czN1mgiP- zv&yN;M~MOp?Q1GR>oTbPM&=L6ym!D4ioJ`ahs23JBE_0nqEK|Ks=75WYgWJ^GLnk) z%GHlVoHdSBqAlyH32HQne?{WdHf9$lb=SG`^Y3^bv8R9ml$;Xs!B#b|OTf)lJ;c~1aiQF?edexdZgbRue!M0W` z!e1Asu@@r^=RWbDK+rf22_ixjYBMiseOj)CJ{M6Y0Mdxl4H`0xCqL5`iG&!_hah~o z@5Ei|a}DqhE0AE!g{L7e-&^MrWiX)+QW>Bi^~CaY)d}FlcT%@=O1Ie~W7l%nD=yc( ztQ~?}^J{8a97Li+fwt1HeekNs$yTZ2J z;JUy^^k*CZwyF|KVriMyv+oz5vWpob!EuqE9-l~L7<0gMAMGs6=~87dlnh5=SI?nx zKeJq-m|b=VyITyRo_%ghpIl!)1Zl`v`fA)iv0R>`YmR5W8>D4&V;vCJIF=-zvc5_m zds~6Rpfsbd%mHASqh$;tz&avQ42&x&)6F+F%g+#G(AhC5<**TMW#XG zFp*j-oGm&j9fb&&Xrp3Lt7*x}`4v*QMnVo{xN2x;y&2`g_g%kSgP%-$j?rjJDw2L8 zS%1UPcxSg)R;4RVLX0MK4OUPhVB}hO2;q|i*dT&KPT>$@`X`=IECft@Oi0`>)H<-s zNVo?sOHg062o4wxt`|tQswgoG%3+gsuKu;I6=#@3xeO zkk_YC9m@>`-juG6KFkebJMQvF53y}F^5!s@5ibPW852oQuT(te`JsK9FqsrVooD(J zoDV0f*oamXS<`eV!QrF{mG`?r#gsbxyG&J)vvHOKWx0G?ljAgFfq&qwO13UtL_*kC znJOP?buPFg*7%b@~`&&>$lhlwxTx7X$%itrl8KG+^Y225CP*aFS5I4y+IBtGu)ofYugkKjs zp+h&IiwJoJ)R+#46}vB`>0SXSky95LRAntDdc}N$re?7^iln92G!#cgh}4WR;mL|C zd6*ci-o;cRA>t}7(a%FVpzvR@U3(*+=)SWN>mKBnb zX`UYzH0Z6oS4Chcj~oz)fM(^Fc2@)ql2tRcx`Hxq$0M|Wz+WrMdrg360|I zApesPn=9dP4@`*1G3?&V%(#IXoxA8EM8TNM{8=-M>JiimH7KE6>dg5(_2nM4WP(NJsHGm#dQoH#kTj;#x1tWa@z>Dmv` z987HBHVoQzei#94Z;}z1VGL(J%=FB>v;vS$x@YYT7ASJg9wR~OD*#U68EsJ9 z0n{z7j#SdnesF0{kQxPozefG+&;rWSB?41?4n+c)a#0i_oGP_`Nd>o|c&x>hesrFk zc%>f{X)NCE+h!vOblgeD zw%xIfH@0m%9d>ME2Yc@?-#ORkADp_Zn;NS|jkTV7Fz2?L+Y2A(O9a-uotp)7#&^w@ zK?K!uImusVMY9ZCS23nj6ZiSr;(eAH4M?eqbt@w-Nn@;6wYFB5_`Q~y5hoR%u^sI8 z+^3M%WQwlO7JRf3S+7UYFGNb8^(39GwN z&OQ~+1!3OF0qd9d$=1!AA&(|CDP!JDz;KPZNvBFGd=O=C#-bD8ud24 z#(^=4ZWeRJzot57QED;+GSsdFwXZC~K)GdhljkB1>*;&p*(j~GY>s5o!ANpxMRJKE zw(GX()wJ}&3u9=86z-D~>U+eSpfP4qm=G60j4dJH%gg2_3d*~+z(oaznYEwQ(<2*( zGqc3G5LYmmkd+t|YmSDxRj4(J#x0J8le-=@c2kpM{#Tkn6FC0E{TCM;$`Qx>oc;nE zd^jSoB^E-~Y0cvS>xPdd$IqpTVO#Y_;9UetB>4u}3kouC(KXSqEEck)o(ngAi4;d& z;y@ln@NayRTKcNP=4k~XUmeIZ_Gn@3Db3z<12){HZV5OPUD_!+;gi?{CIe_-L$ zofyAFSuQLnAIfuaOV=9|s^$xs%ZRpU?_jm=JmfTx6_l=VrH0-O&ZCf6T9#*6kLKNM z*yj{QcFO}(< zi)u1v<2^E%vwR;Z#PK|tFwMx3MPEIp_iI9ej&OB~nTkTq{&~~rii(4RwZ*RlOlEBO zSBv7hxif>44KoDDt9(m>GL?o5UHM)824YF-%H1@s zO~OalWkLKfJXd481`t<2PGJlqi@2cGowP!WAQG0t2N;}^2ndthtuN2q|5WCA#CeM= zqKp-3&2{ahbl5(f4wNCkE^{GdO^V;^UVDXMpc6kw8fSbmz?9T!@@v976F$K#cD>0#dmjkASXI*#}3P; z5OUE2zp%u=2w2xi5{uo4TuylmB6;ftd{KMnrzJ?l!=*NJWKN~L6!bdOBs@#IiRd-% zd-UgKs2^eiO0y*(S?5Z=D>d(8j7jDQs-h;@No;oaP?B%Zl<>6ZD(9;)UDK{VNe~bR z7Tl?_dd(ohUTm=in(tatej?kfcvmI^QqHM}^l-EBr^`ALdSOFXsPZmt+FnGq6jNi& z#6tPFie#(ynGt>9+gERJyG$;6Jxpp3+AR#e5zlyt8G%Pe&UnW~1~y^#m`^T^i8?iH@6wD&luDouiSH zaXtb*gv}ynZ)^#IVwfFpC8O+?Lp%VwoW8xkL=^RdD+^b1ccH9AT$(pq&qLNxuD*YBj#@fyyvYm^m#+1tj>-pP}9 zOx(1>`**^rqEfuxZb*b^=An1@8!Z378@UZqp+TbbZ%AQX5VJ0) z>F5R(SC(1wS>E9dBoI@2>nZ%j(R%YE>4l#VXGYi%d&MGPepXc;LpW|iBNV3Z)JPh< zaxFwxx3dBEzz^@~b>IhH@ZRnm-Dlvxch*Yl&E>!zkn12AFACKEiw7(V_&{+cdNXJW z6f)V{eoIt*^W^=^@bzMPmjoXsiaM{8brhfBjwM?sxItpM0biZ=a6+$-oI6 zf&T0L+oKk}CV{}m`j7M*NI`%UErmGfmj3z`DD249b#q{{{8I1S<9tvMaDQ3X zzczRXH>&gB8>oE)q=lUoAZ)kbNEFx&m-J)>)em|f&-(}jz3~xH?3XVGeh#7n-zH4X zx=E&=`zj2;(J-&K1>qN`z5}pzaCaZ^*@7Q~@3ffWpE(UG`MfSW#Hl%Huqm~dq5)m= z_1&GjK1SriiBHY9yspB*qJi55$xCnRCR9&fAa~dGwHmk2x6|A6iyw|pY~uZ*E64Bc z1w?U|sF}txS2u9vtlb}*G#ktHL_LUaiDzgVIjp$<`iNzFt9a+m@LpDG_~m=WJ^ZpQQT0_qOK|fqqy0UH|rK zpWGV0$Zz!bdvvpVo#BB}JK*J<0E*F;VEBlCeQ)a|OSttaph-C)*K69QG!Uq!`V&tO zGPysgO{D5VQa&J@UjBSMkT>a3=Y28#{i*O~4+GxE~%Hxzk zmgotnaV8g&rlV=h{sg0{Z@iY7A3TKX z7X2gH_8Wy{m5bjvWkfoG?V|HafBr&!+yZ!Yk2m0u<`0m5@wT?(`kxU%eF4DtN{iuR z`&BuG=yl-1`Gxs;30ZYjevlr6s+>V`jU}vu(4_{(-utxVO%zlo@#pwgc$E&G&-Ua* zFu9#0J>hxDQa6^9=~V;dnot zWd`5lDT4QwRc=1lO~?kBcJid#TBxG0S6evjdICUHww_=>2#awR%uB@yb$S`?pnp3| z)z~i6ZGFpq%{6crZqaR^ZXx_MmO@23z~`!pbo=<;XrJJg3~qeFSL0->Q?*vg2IxMc zQh}=HE&hFja|@tU-6xCg9}Gp&EEZA@mIySPdtcupJE|~*(g2|?RpdlrRk*BFSzlCL zQT!=`ULXRt13_=oiF-?rzRGty>VbjA{!2T*z|LKK!lCSU202nI#>+x2$-Xo}jbH{L z08*w)Gn~#h1q#ISL);fy0-e9Vr=l~)jV9r|J-;UIMcW%*_+7oXw5sJ5w`JdKiRgWA z1UnSIeSWvv$X~A4kt$8?bi+3+ye_3fNLKd&{CL$`JkwKLS*izhNIZ3mLiT6H2$N3t zu%<-rW%bgw+Th;S_uoxBlhE+^DZwcAbqSjZi%asR=jV#8LarZLlw%c36>XkmtVs|>^K-E<9*Q3&$2Y(7Ph*= zdpNAI>Qflq$=>xRdW4-pUeFKQan1~B1e=`|cn%+($t7=!dZ>$xaV;$x)DHCEd@$!H zyMf;&g&x{9zwNK>osAoB$n)k0P_EqmiJ@P1=JoH8SMf2u^^k-myWKWt|4tY54d_}y zW&^TZjh0%koyBtZtCPRW8HNg3>M;y zt)<3NELY}*`7Y@vX;w-+v1bxLtAKE!4eVZ%QdcTQ5{Gl8j&BF=mKw&BZS4Zz)@Ma@ zB5q(9A7~O|SIwQwqx(Mx!?Iz1@&;fE^D6b8`^ulkgT}p$@sx2w d(MGjBbXOVY? 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�N`MqTCNX!%&kdy8A?hcgMs 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